UNPKG

30.7 kBPlain TextView Raw
1{"code":"function iter$__(a){ let v; return a ? ((v=a.toIterable) ? v.call(a) : a) : a; };;\nfunction defineName$__(cls,name){\n\tObject.defineProperty(cls,\"name\",{value:name,configurable:true});\n};;\nfunction inheritClass$__(cls){\n\tObject.getPrototypeOf(cls.prototype).constructor?.inherited?.(cls);\n};;\nfunction extend$__(target,ext){\n\t// @ts-ignore\n\tconst descriptors = Object.getOwnPropertyDescriptors(ext);\n\tdelete descriptors.constructor;\n\tif(target.extend__ instanceof Function){\n\t\ttarget.extend__(descriptors,ext);\n\t} else {\n\t\t// @ts-ignore\n\t\tObject.defineProperties(target,descriptors);\n\t}\n\treturn target;\n};\nconst $__init__$ = Symbol.for('#__init__'), $__patch__$ = Symbol.for('#__patch__'), $__initor__$ = Symbol.for('#__initor__'), $__inited__$ = Symbol.for('#__inited__'), $__hooks__$ = Symbol.for('#__hooks__'), $imba$ = Symbol.for('#imba'), $insertInto$ = Symbol.for('#insertInto'), $removeFrom$ = Symbol.for('#removeFrom'), $all$ = Symbol.for('#all'), $phase$ = Symbol.for('#phase'), $nodes$ = Symbol.for('#nodes'), $sizes$ = Symbol.for('#sizes'), $mode$ = Symbol.for('#mode'), $enabled$ = Symbol.for('#enabled'), $easer$ = Symbol.for('#easer'), $anims$ = Symbol.for('#anims'), $_easer_$ = Symbol.for('#_easer_');\nvar $1 = Symbol(), $2 = Symbol();\n\n/*body*/\nimport {Element,get_document} from './core';\nimport {Emitter} from '../utils';\n\nclass Transitions extends Emitter {\n\t[$__patch__$]($$ = {},fields = true){\n\t\tvar $3;\n\t\tsuper[$__patch__$] && super[$__patch__$]($$,fields);\n\t\t($3 = $$.selectors) !== undefined && (this.selectors = $3);\n\t\t\n\t}\n\tconstructor(){\n\t\tsuper(...arguments);\n\t\tsuper[$__init__$] || this[$__init__$]();this[$__initor__$]===$1 && (this[$__hooks__$]&&this[$__hooks__$].inited(this),this[$__inited__$] && this[$__inited__$]());\n\t}\n\t[$__init__$]($$ = null,deep = true,fields = true){\n\t\tvar $4;\n\t\tdeep && super[$__init__$] && super[$__init__$](...arguments);\n\t\tthis.selectors = ($$ && ($4 = $$.selectors) !== undefined) ? ($4) : {};\n\t\t\n\t}\n\taddSelectors(add,group){\n\t\t\n\t\tlet arr = this.selectors[group] ||= [];\n\t\tarr.push(...add);\n\t\treturn true;\n\t}\n\t\n\tgetSelectors(...groups){\n\t\t\n\t\tlet sels = [];\n\t\tfor (let $5 = 0, $6 = iter$__(groups), $7 = $6.length; $5 < $7; $5++) {\n\t\t\tlet group = $6[$5];\n\t\t\tif (this.selectors[group]) {\n\t\t\t\t\n\t\t\t\tsels.push(...this.selectors[group]);\n\t\t\t};\n\t\t};\n\t\treturn (sels && sels.length) ? sels.join(',') : null;\n\t}\n\t\n\tnodesForBase(base,kind = 'transition'){\n\t\t\n\t\tlet hits = [base];\n\t\tlet query = (this.selectors[kind] || []).join(',');\n\t\tif (query == '') { return hits };\n\t\t\n\t\tlet elements = base.querySelectorAll(query);\n\t\t\n\t\tfor (let $8 = 0, $9 = iter$__(elements), $10 = $9.length; $8 < $10; $8++) {\n\t\t\tlet el = $9[$8];\n\t\t\tif (el.closest('._ease_') == base) {\n\t\t\t\t\n\t\t\t\thits.push(el);\n\t\t\t};\n\t\t};\n\t\thits[$all$] = elements;\n\t\treturn hits;\n\t}\n\t\n\tnodesWithSize(nodes,dir = 'in'){\n\t\t\n\t\tlet sel = this.getSelectors('_off_sized',(\"_\" + dir + \"_sized\"));\n\t\tif (!(sel)) { return [] };\n\t\treturn nodes.filter(function(_0) { return _0.matches(sel); });\n\t}\n\tstatic {\n\t\tthis.prototype[$__initor__$] = $1;defineName$__(this,'Transitions');inheritClass$__(this);}\n};\n\nexport const transitions = new Transitions;\n\nlet instance = globalThis.imba ||= {};\ninstance.transitions = transitions;\n\nexport class Easer extends Emitter {\n\t\n\tconstructor(target){\n\t\t\n\t\tsuper();\n\t\tthis.dom = target;\n\t\tthis[$phase$] = null;\n\t\tthis[$nodes$] = [];\n\t\tthis[$sizes$] = new Map;\n\t\tthis[$__initor__$]===$2 && (this[$__hooks__$]&&this[$__hooks__$].inited(this),this[$__inited__$] && this[$__inited__$]());\n\t}\n\t\n\tlog(...params){\n\t\t\n\t\treturn;\n\t}\n\t\n\tget flags(){\n\t\t\n\t\treturn this.dom.flags;\n\t}\n\t\n\tflag(flags){\n\t\t\n\t\tfor (let $11 = 0, $12 = iter$__(this[$nodes$]), $13 = $12.length; $11 < $13; $11++) {\n\t\t\tlet node = $12[$11];\n\t\t\tnode.flags.add(flags);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tunflag(flags){\n\t\t\n\t\tfor (let $14 = 0, $15 = iter$__(this[$nodes$]), $16 = $15.length; $14 < $16; $14++) {\n\t\t\tlet node = $15[$14];\n\t\t\tnode.flags.remove(flags);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tcommit(){\n\t\t\n\t\treturn this.dom.offsetWidth;\n\t}\n\t\n\tenable(mode){\n\t\t\n\t\tif (mode) {\n\t\t\t\n\t\t\tthis[$mode$] = mode;\n\t\t};\n\t\tif (!((this[$enabled$] != true) ? ((this[$enabled$] = true,true)) : false)) { return this };\n\t\t// TODO support attach/detach deopt api\n\t\tthis.dom[$insertInto$] = this[$insertInto$].bind(this);\n\t\tthis.dom[$removeFrom$] = this[$removeFrom$].bind(this);\n\t\treturn this.flags.add('_ease_');\n\t}\n\t\n\tdisable(){\n\t\t\n\t\tthis.flags.remove('_ease_');\n\t\treturn true;\n\t}\n\t\n\tset phase(val){\n\t\t\n\t\tlet prev = this[$phase$];\n\t\t\n\t\tif ((this[$phase$] != val) ? ((this[$phase$] = val,true)) : false) {\n\t\t\t\n\t\t\tif (prev) { this.unflag((\"@\" + prev)) };\n\t\t\tif (val) { this.flag((\"@\" + val)) };\n\t\t\t\n\t\t\t// clearing all the node animations\n\t\t\tif (!(val)) {\n\t\t\t\t\n\t\t\t\tthis.unflag('@out');\n\t\t\t\tthis.unflag('@in');\n\t\t\t\tthis.unflag('@off');\n\t\t\t\tthis[$nodes$] = null;\n\t\t\t};\n\t\t\t\n\t\t\tif (val == 'enter' && prev == 'leave') {\n\t\t\t\t\n\t\t\t\tthis.dom?.transitionΞoutΞcancel?.(this);\n\t\t\t};\n\t\t\tif (val == 'leave' && prev == 'enter') {\n\t\t\t\t\n\t\t\t\tthis.dom?.transitionΞinΞcancel?.(this);\n\t\t\t};\n\t\t\tif (val == 'enter') {\n\t\t\t\t\n\t\t\t\tthis.dom?.transitionΞin?.(this);\n\t\t\t};\n\t\t\tif (val == 'leave') {\n\t\t\t\t\n\t\t\t\tthis.dom?.transitionΞout?.(this);\n\t\t\t};\n\t\t\tif (prev == 'leave' && !(val)) {\n\t\t\t\t\n\t\t\t\tthis.dom?.transitionΞoutΞend?.(this);\n\t\t\t};\n\t\t\tif (prev == 'enter' && !(val)) {\n\t\t\t\t\n\t\t\t\tthis.dom?.transitionΞinΞend?.(this);\n\t\t\t};\n\t\t};\n\t}\n\t\n\tget phase(){\n\t\t\n\t\treturn this[$phase$];\n\t}\n\t\n\tget leavingΦ(){\n\t\t\n\t\treturn this.phase == 'leave';\n\t}\n\t\n\tget enteringΦ(){\n\t\t\n\t\treturn this.phase == 'enter';\n\t}\n\t\n\tget idleΦ(){\n\t\t\n\t\treturn this.phase == null;\n\t}\n\t\n\ttrack(cb){\n\t\tvar self = this;\n\t\t\n\t\tlet anims = {before: get_document().getAnimations()};\n\t\tthis.commit();\n\t\tcb();\n\t\tthis.commit();\n\t\tanims.after = get_document().getAnimations();\n\t\tanims.fresh = anims.after.filter(function(_0) {\n\t\t\t\n\t\t\treturn anims.before.indexOf(_0) == -1;\n\t\t});\n\t\tanims.deep = anims.fresh.filter(function(_0) {\n\t\t\tlet el;\n\t\t\t\n\t\t\tif (el = _0.effect.target) {\n\t\t\t\t\n\t\t\t\tif (el.closest('._ease_') != self.dom) { return true };\n\t\t\t};\n\t\t\treturn false;\n\t\t});\n\t\tanims.own = anims.fresh.filter(function(_0) { return anims.deep.indexOf(_0) == -1; });\n\t\t\n\t\tif (anims.own.length) {\n\t\t\t\n\t\t\tanims.finished = new Promise(function(resolve) {\n\t\t\t\t\n\t\t\t\tlet all = new Set(anims.own);\n\t\t\t\tlet finish = function() {\n\t\t\t\t\t\n\t\t\t\t\tall.delete(this);\n\t\t\t\t\tif (all.size == 0) {\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn resolve();\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfor (let $17 = 0, $18 = iter$__(anims.own), $19 = $18.length; $17 < $19; $17++) {\n\t\t\t\t\tlet anim = $18[$17];\n\t\t\t\t\tanim[$easer$] = self;\n\t\t\t\t\tanim.addEventListener('finish',finish,{once: true});\n\t\t\t\t\tanim.addEventListener('cancel',finish,{once: true});\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t});\n\t\t} else {\n\t\t\t\n\t\t\tanims.finished = Promise.resolve(true);\n\t\t};\n\t\treturn anims;\n\t}\n\t\n\tgetAnimatedNodes(){\n\t\t\n\t\treturn transitions.nodesForBase(this.dom);\n\t}\n\t\n\tgetNodeSizes(dir = 'in',nodes = this[$nodes$]){\n\t\t\n\t\tlet hits = transitions.nodesWithSize(nodes,dir);\n\t\tlet map = new Map;\n\t\t\n\t\tfor (let $20 = 0, $21 = iter$__(hits), $22 = $21.length; $20 < $22; $20++) {\n\t\t\tlet node = $21[$20];\n\t\t\tlet style = (this && this[$imba$] || globalThis[$imba$]).window.getComputedStyle(node);\n\t\t\tmap.set(node,{\n\t\t\t\twidth: style.width,// node.offsetWidth\n\t\t\t\theight: style.height// node.offsetHeight\n\t\t\t});\n\t\t};\n\t\treturn map;\n\t}\n\t\n\tapplyNodeSizes(map){\n\t\t\n\t\tfor (let [node,rect] of iter$__(map)){\n\t\t\t\n\t\t\tnode.style.width = rect.width;// + 'px'\n\t\t\tnode.style.height = rect.height;// + 'px'\n\t\t};\n\t\treturn map;\n\t}\n\t\n\tclearNodeSizes(map){\n\t\t\n\t\tif (!(map)) { return };\n\t\t\n\t\tfor (let [node,rect] of iter$__(map)){\n\t\t\t\n\t\t\tnode.style.removeProperty('width');\n\t\t\tnode.style.removeProperty('height');\n\t\t};\n\t\treturn map;\n\t}\n\t\n\t[$insertInto$](parent,before){\n\t\tvar self = this;\n\t\t\n\t\tlet sizes;\n\t\tif (this.enteringΦ) {\n\t\t\t\n\t\t\treturn this.dom;\n\t\t};\n\t\tlet finish = function() {\n\t\t\t\n\t\t\tif (sizes) { self.clearNodeSizes(sizes) };\n\t\t\tif (self.enteringΦ) { return self.phase = null };\n\t\t};\n\t\t\n\t\tif (this.leavingΦ) {\n\t\t\t\n\t\t\tlet anims = this.track(function() {\n\t\t\t\t\n\t\t\t\tself.phase = 'enter';\n\t\t\t\tself.unflag('@off');\n\t\t\t\treturn self.unflag('@out');\n\t\t\t});\n\t\t\t\n\t\t\t// what if there are no animations?\n\t\t\tanims.finished.then(finish,function(_0) { return self.log('error cancel leave',_0); });\n\t\t\treturn this.dom;\n\t\t};\n\t\t\n\t\tlet parConnected = get_document().contains(parent);\n\t\t\n\t\tbefore ? parent.insertBefore(this.dom,before) : parent.appendChild(this.dom);\n\t\t\n\t\tthis[$nodes$] = this.getAnimatedNodes();\n\t\t\n\t\t// Could it be better to set the flags before adding it to the dom?\n\t\t\n\t\tthis.flag('_instant_');\n\t\tthis.unflag('@out');\n\t\tthis.commit();\n\t\t// must be certain that they don't have a size set directly?\n\t\tsizes = this[$nodes$].sized = this.getNodeSizes('in');\n\t\t\n\t\tthis.dom?.transitionΞinΞinit?.(this);\n\t\tthis.flag('@off');\n\t\tthis.flag('@in');\n\t\tthis.flag('@enter');\n\t\t\n\t\tthis.commit();\n\t\tthis.unflag('_instant_');\n\t\t\n\t\tlet anims = this[$anims$] = this.track(function() {\n\t\t\t\n\t\t\tself.phase = 'enter';\n\t\t\tself.applyNodeSizes(sizes);\n\t\t\tself.unflag('@off');\n\t\t\treturn self.unflag('@in');\n\t\t});\n\t\t\n\t\tanims.finished.then(finish,function(_0) {\n\t\t\t\n\t\t\tself.clearNodeSizes(sizes);\n\t\t\treturn self.log('cancelled insert into',_0);\n\t\t});\n\t\treturn this.dom;\n\t}\n\t\n\t[$removeFrom$](parent){\n\t\tvar self = this;\n\t\t\n\t\tif (this.leavingΦ) {\n\t\t\t\n\t\t\treturn;\n\t\t};\n\t\t\n\t\tlet sizes;\n\t\tlet finalize = function() {\n\t\t\t\n\t\t\tif (self.phase == 'leave') {\n\t\t\t\t\n\t\t\t\tself.dom.emit('easeoutend',{});\n\t\t\t\tparent.removeChild(self.dom);\n\t\t\t\treturn self.phase = null;\n\t\t\t};\n\t\t};\n\t\t\n\t\tif (this.enteringΦ && this[$mode$] != 'forward') {\n\t\t\t\n\t\t\tlet anims = this.track(function() {\n\t\t\t\t\n\t\t\t\tself.flag('@off');\n\t\t\t\tself.flag('@in');\n\t\t\t\tself.unflag('@out');\n\t\t\t\tself.phase = 'leave';\n\t\t\t\treturn self.clearNodeSizes(self[$nodes$].sized);\n\t\t\t});\n\t\t\tthis.log(\"cancel enter anims own\",anims.own,anims);\n\t\t\tanims.finished.then(finalize,function(_0) { return self.log('error cancel entering',_0); });\n\t\t\treturn;\n\t\t};\n\t\t\n\t\tthis[$nodes$] = this.getAnimatedNodes();\n\t\tsizes = this.getNodeSizes('out');\n\t\tthis.applyNodeSizes(sizes);\n\t\tthis.flag('@leave');\n\t\tlet anims = this[$anims$] = this.track(function() {\n\t\t\t\n\t\t\tself.phase = 'leave';\n\t\t\tself.flag('@off');\n\t\t\tself.flag('@out');\n\t\t\treturn self.clearNodeSizes(sizes);\n\t\t});\n\t\t\n\t\t// do it in the same tick if we find no running animations(!)\n\t\tif (!(anims.own.length)) {\n\t\t\t\n\t\t\tfinalize();\n\t\t\treturn;\n\t\t};\n\t\t\n\t\tanims.finished.then(finalize,function() {\n\t\t\t\n\t\t\treturn true;\n\t\t});\n\t\treturn;\n\t}\n\tstatic {\n\t\tthis.prototype[$__initor__$] = $2;defineName$__(this,'Easer');inheritClass$__(this);}\n};\n\nclass ΩElement {\n\t\n\t\n\t// called when element is getting ready to enter\t\n\ttransitionΞinΞinit(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\t// called when element is ready to enter\t\n\ttransitionΞin(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\t// called when element has finished entering\n\ttransitionΞinΞend(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\t// called when element has been asked to leave while entering\n\ttransitionΞinΞcancel(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\t// called when element starts to leave\n\ttransitionΞout(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\t// called when element is done leaving\n\ttransitionΞoutΞend(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\t// called when element re-enters while leaving\n\ttransitionΞoutΞcancel(transition){\n\t\t\n\t\treturn true;\n\t}\n\t\n\tget ease(){\n\t\t\n\t\treturn this[$_easer_$] ||= new Easer(this);\n\t}\n\t\n\t/**\n\t@param {any} value\n\t*/\n\tset ease(value){\n\t\t\n\t\tif (value == false) {\n\t\t\t\n\t\t\tthis[$_easer_$]?.disable?.();\n\t\t\treturn;\n\t\t};\n\t\t\n\t\tthis.ease.enable(value);\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Element');}\n};\nextend$__(Element.prototype,ΩElement.prototype);\n;\n\nexport function use_dom_transitions(){\n\t\n\tglobalThis.imba.uses_dom_transitions = true;\n\treturn true;\n};\n","map":{"version":3,"file":"transitions.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/dom/transitions.imba"],"sourcesContent":["import {Element,get_document} from './core'\nimport {Emitter} from '../utils'\n\nclass Transitions < Emitter\n\tselectors = {}\n\n\tdef addSelectors add, group\n\t\tlet arr = selectors[group] ||= []\n\t\tarr.push(...add)\n\t\tyes\n\n\tdef getSelectors ...groups\n\t\tlet sels = []\n\t\tfor group in groups\n\t\t\tif selectors[group]\n\t\t\t\tsels.push(...selectors[group])\n\t\tsels and sels.length ? sels.join(',') : null\n\n\tdef nodesForBase base, kind = 'transition'\n\t\tlet hits = [base]\n\t\tlet query = (selectors[kind] or []).join(',')\n\t\treturn hits if query == ''\n\n\t\tlet elements = base.querySelectorAll(query)\n\n\t\tfor el in elements\n\t\t\tif el.closest('._ease_') == base\n\t\t\t\thits.push(el)\n\t\thits.#all = elements\n\t\treturn hits\n\n\tdef nodesWithSize nodes, dir = 'in'\n\t\tlet sel = getSelectors('_off_sized',\"_{dir}_sized\")\n\t\treturn [] unless sel\n\t\tnodes.filter do $1.matches(sel)\n\nexport const transitions = new Transitions\n\nlet instance = global.imba ||= {}\ninstance.transitions = transitions\n\nexport class Easer < Emitter\n\tdef constructor target\n\t\tsuper()\n\t\tdom = target\n\t\t#phase = null\n\t\t#nodes = []\n\t\t#sizes = new Map\n\n\tdef log ...params\n\t\treturn\n\n\tget flags\n\t\tdom.flags\n\n\tdef flag flags\n\t\tfor node in #nodes\n\t\t\tnode.flags.add(flags)\n\t\tself\n\n\tdef unflag flags\n\t\tfor node in #nodes\n\t\t\tnode.flags.remove(flags)\t\t\t\n\t\tself\n\n\tdef commit\n\t\tdom.offsetWidth\n\n\tdef enable mode\n\t\tif mode\n\t\t\t#mode = mode\n\t\treturn self unless #enabled =? yes\n\t\t# TODO support attach/detach deopt api\n\t\tdom.#insertInto = #insertInto.bind(self)\n\t\tdom.#removeFrom = #removeFrom.bind(self)\n\t\tflags.add('_ease_')\n\n\tdef disable\n\t\tflags.remove('_ease_')\n\t\tyes\n\n\tset phase val\n\t\tlet prev = #phase\n\n\t\tif #phase =? val\n\t\t\tunflag(\"@{prev}\") if prev\n\t\t\tflag(\"@{val}\") if val\n\n\t\t\t# clearing all the node animations\n\t\t\tunless val\n\t\t\t\tunflag('@out')\n\t\t\t\tunflag('@in')\n\t\t\t\tunflag('@off')\n\t\t\t\t#nodes = null\n\n\t\t\tif val == 'enter' and prev == 'leave'\n\t\t\t\tdom..transition-out-cancel(self)\n\t\t\tif val == 'leave' and prev == 'enter'\n\t\t\t\tdom..transition-in-cancel(self)\n\t\t\tif val == 'enter'\n\t\t\t\tdom..transition-in(self)\n\t\t\tif val == 'leave'\n\t\t\t\tdom..transition-out(self)\n\t\t\tif prev == 'leave' and !val\n\t\t\t\tdom..transition-out-end(self)\n\t\t\tif prev == 'enter' and !val\n\t\t\t\tdom..transition-in-end(self)\n\n\tget phase\n\t\t#phase\n\n\tget leaving?\n\t\tphase == 'leave'\n\n\tget entering?\n\t\tphase == 'enter'\n\n\tget idle?\n\t\tphase == null\n\n\tdef track cb\n\t\tlet anims = {before: get_document!.getAnimations!}\n\t\tcommit!\n\t\tcb()\n\t\tcommit!\n\t\tanims.after = get_document!.getAnimations!\n\t\tanims.fresh = anims.after.filter do\n\t\t\t\tanims.before.indexOf($1) == -1\n\t\tanims.deep = anims.fresh.filter do\n\t\t\tif let el = $1.effect.target\n\t\t\t\treturn yes if el.closest('._ease_') != dom\n\t\t\treturn no\n\t\tanims.own = anims.fresh.filter do anims.deep.indexOf($1) == -1\n\n\t\tif anims.own.length\n\t\t\tanims.finished = new Promise do(resolve)\n\t\t\t\tlet all = new Set(anims.own)\n\t\t\t\tlet finish = do\n\t\t\t\t\tall.delete(this)\n\t\t\t\t\tif all.size == 0\n\t\t\t\t\t\tresolve()\n\n\t\t\t\tfor anim in anims.own\n\t\t\t\t\tanim.#easer = self\n\t\t\t\t\tanim.addEventListener('finish',finish,once:yes)\n\t\t\t\t\tanim.addEventListener('cancel',finish,once:yes)\n\t\t\t\treturn\n\t\telse\n\t\t\tanims.finished = Promise.resolve(yes)\n\t\treturn anims\n\n\tdef getAnimatedNodes\n\t\treturn transitions.nodesForBase(dom)\n\n\tdef getNodeSizes dir = 'in', nodes = #nodes\n\t\tlet hits = transitions.nodesWithSize(nodes,dir)\n\t\tlet map = new Map\n\n\t\tfor node in hits\n\t\t\tlet style = window.getComputedStyle(node)\n\t\t\tmap.set(node,{\n\t\t\t\twidth: style.width # node.offsetWidth\n\t\t\t\theight: style.height # node.offsetHeight\n\t\t\t})\n\t\tmap\n\n\tdef applyNodeSizes map\n\t\tfor [node,rect] of map\n\t\t\tnode.style.width = rect.width # + 'px'\n\t\t\tnode.style.height = rect.height # + 'px'\n\t\tmap\n\n\tdef clearNodeSizes map\n\t\treturn unless map\n\n\t\tfor [node,rect] of map\n\t\t\tnode.style.removeProperty('width')\n\t\t\tnode.style.removeProperty('height')\n\t\tmap\n\n\tdef #insertInto parent, before\n\t\tlet sizes\n\t\tif entering?\n\t\t\treturn dom\n\t\tlet finish = do\n\t\t\tclearNodeSizes(sizes) if sizes\n\t\t\tphase = null if entering?\n\n\t\tif leaving?\n\t\t\tlet anims = track do\n\t\t\t\tphase = 'enter'\n\t\t\t\tunflag('@off')\n\t\t\t\tunflag('@out')\n\n\t\t\t# what if there are no animations?\n\t\t\tanims.finished.then(finish) do log('error cancel leave',$1)\n\t\t\treturn dom\n\n\t\tlet parConnected = get_document!.contains(parent)\n\n\t\tbefore ? parent.insertBefore(dom,before) : parent.appendChild(dom)\n\n\t\t#nodes = getAnimatedNodes!\n\n\t\t# Could it be better to set the flags before adding it to the dom?\n\n\t\tflag('_instant_')\n\t\tunflag('@out')\n\t\tcommit!\n\t\t# must be certain that they don't have a size set directly?\n\t\tsizes = #nodes.sized = getNodeSizes('in')\n\n\t\tdom..transition-in-init(self)\n\t\tflag('@off')\n\t\tflag('@in')\n\t\tflag('@enter')\n\n\t\tcommit!\n\t\tunflag('_instant_')\n\n\t\tlet anims = #anims = track do\n\t\t\tphase = 'enter'\n\t\t\tapplyNodeSizes(sizes)\n\t\t\tunflag('@off')\n\t\t\tunflag('@in')\n\n\t\tanims.finished.then(finish) do\n\t\t\tclearNodeSizes(sizes)\n\t\t\tlog('cancelled insert into',$1)\n\t\treturn dom\n\n\tdef #removeFrom parent\n\t\tif leaving?\n\t\t\treturn\n\n\t\tlet sizes\n\t\tlet finalize = do\n\t\t\tif phase == 'leave'\n\t\t\t\tdom.emit('easeoutend',{})\n\t\t\t\tparent.removeChild(dom)\n\t\t\t\tphase = null\n\n\t\tif entering? and #mode != 'forward'\n\t\t\tlet anims = track do\n\t\t\t\tflag('@off')\n\t\t\t\tflag('@in')\n\t\t\t\tunflag('@out')\n\t\t\t\tphase = 'leave'\n\t\t\t\tclearNodeSizes(#nodes.sized)\n\t\t\tlog \"cancel enter anims own\",anims.own,anims\n\t\t\tanims.finished.then(finalize) do log('error cancel entering',$1)\n\t\t\treturn\n\n\t\t#nodes = getAnimatedNodes!\n\t\tsizes = getNodeSizes('out')\n\t\tapplyNodeSizes(sizes)\n\t\tflag('@leave')\n\t\tlet anims = #anims = track do\n\t\t\tphase = 'leave'\n\t\t\tflag('@off')\n\t\t\tflag('@out')\n\t\t\tclearNodeSizes(sizes)\n\n\t\t# do it in the same tick if we find no running animations(!)\n\t\tunless anims.own.length\n\t\t\tfinalize!\n\t\t\treturn\n\n\t\tanims.finished.then(finalize) do\n\t\t\tyes\n\t\treturn\n\nextend class Element\n\n\t# called when element is getting ready to enter\t\n\tdef transition-in-init transition\n\t\tyes\n\n\t# called when element is ready to enter\t\n\tdef transition-in transition\n\t\tyes\n\n\t# called when element has finished entering\n\tdef transition-in-end transition\n\t\tyes\n\n\t# called when element has been asked to leave while entering\n\tdef transition-in-cancel transition\n\t\tyes\n\n\t# called when element starts to leave\n\tdef transition-out transition\n\t\tyes\n\n\t# called when element is done leaving\n\tdef transition-out-end transition\n\t\tyes\n\n\t# called when element re-enters while leaving\n\tdef transition-out-cancel transition\n\t\tyes\n\n\tget ease\n\t\t#_easer_ ||= new Easer(self)\n\n\tset ease value\\any\n\t\tif value == no\n\t\t\t#_easer_..disable!\n\t\t\treturn\n\n\t\tease.enable(value)\n\nexport def use_dom_transitions\n\tglobal.imba.uses_dom_transitions = yes\n\tyes"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file