updateProgress = (vnode) => {
                                    let period = login.fields.otp.params.period;
                                    let remaining = period - ((Date.now() / 1000) % period);
                                    vnode.dom.style.transition = "none";
                                    vnode.dom.style.width = `${(remaining / period) * 100}%`;
                                    setTimeout(function () {
                                        vnode.dom.style.transition = `width linear ${remaining}s`;
                                        vnode.dom.style.width = "0%";
                                    }, 100);
                                    setTimeout(function () {
                                        m.redraw();
                                    }, remaining);
                                }
Generates vnodes for render

@since 3.6.0

@param object vnode
@return []Vnode