{ "version": 3, "sources": ["node_modules/imba/src/imba/dom/indexed-list.imba"], "sourcesContent": ["import {createComment} from './core'\nimport {Fragment} from './fragment'\n\nclass IndexedTagFragment < Fragment\n\n\tdef constructor f, parent\n\t\tsuper\n\t\t#domFlags = f\n\t\t#parent = parent\n\n\t\tunless f & $TAG_LAST_CHILD$\n\t\t\t#end = createComment('list')\n\t\t\t# #end.node = self\n\t\t\t\n\t\tself.$ = childNodes\n\t\tself.length = 0\n\t\t\t\n\t\tif parent\n\t\t\tparent.#appendChild(self)\n\t\t\t\n\tdef hasChildNodes\n\t\treturn false if length == 0\n\t\treturn true\n\n\n\tdef #afterVisit len\n\t\tlet from = self.length\n\t\tself.length = len\n\n\t\treturn if from == len\n\t\tlet par = parentNode\n\t\treturn if !par\n\n\t\tlet array = self.childNodes\n\t\tlet end = #end\n\n\t\tif from > len\n\t\t\twhile from > len\n\t\t\t\tpar.#removeChild(array[--from])\n\t\telif len > from\n\t\t\twhile len > from\n\t\t\t\t# console.log 'inserting before now',array[from]\n\t\t\t\tpar.#insertChild(array[from++],end)\n\t\tself.length = len\n\t\treturn\n\t\t\n\tdef #insertInto parent, before\n\t\t# #parent = parent\n\t\tparentNode = parent\n\t\t\n\t\t# if parent isa Node\n\t\t# FIXME need to work with non-dom elements as well\n\t\tif #end\n\t\t\t#end.#insertInto(parent,before)\n\t\t\t\n\t\tbefore = #end\n\n\t\tfor item,i in childNodes\n\t\t\tbreak if i == self.length\n\t\t\t# log 'insert child',parent,item,before\n\t\t\titem.#insertInto(parent,before)\n\t\t\t# log 'insert child',parent,item,before,parent.innerHTML\n\t\treturn self\n\t\t\n\tdef #appendChild item\n\t\t# this should be a noop\n\t\t# log 'list #appendChild',item\n\t\treturn\n\t\t\n\t\t\n\tdef #replaceWith rel, parent\n\t\tlet res = rel.#insertInto(parent,#end)\n\t\t#removeFrom(parent)\n\t\treturn res\n\t\n\tdef #removeFrom parent\n\t\t# log '#removeFrom',parent\n\t\tlet i = length\n\t\twhile i > 0\n\t\t\tlet el = childNodes[--i]\n\t\t\tel.#removeFrom(parent)\n\t\t\t# parent.#removeChild(el)\n\t\tparent.removeChild(#end) if #end\n\t\tparentNode = null\n\t\treturn\n\nexport def createIndexedList bitflags, parent\n\treturn new IndexedTagFragment(bitflags,parent)\n"], "mappings": ";wfAGA,eAA2B,EAAQ,YAHnC,iCAKK,YAAY,EAAG,EAAM,CACxB,MAAA,GAAA,mBACY,UACF,EAEH,EAAI,cACH,EAAc,SAGtB,KAAK,EAAI,KAAA,WACT,KAAK,OAAS,EAEX,GACF,EAAM,GAAc,MAAK,KAAA,KAAA,GAAA,KAAA,IAAA,KAAA,KAEvB,eAAa,CACH,MAAG,MAAA,QAAU,MAIX,EAAG,CACd,GAAA,GAAO,KAAK,OAGT,GAFP,KAAK,OAAS,EAEJ,GAAQ,EAAlB,OACI,GAAA,GAAM,KAAA,WACH,GAAI,CAAA,EAAX,OAEI,GAAA,GAAQ,KAAK,WACb,EAAG,KAAA,GAEP,GAAG,EAAO,OACH,EAAO,GACZ,EAAG,GAAc,EAAK,EAAG,YACtB,EAAM,OACJ,EAAM,GAEX,EAAG,GAAc,EAAM,KAAQ,GACjC,KAAK,OAAS,MAGC,EAAQ,EAAM,CAE7B,KAAA,WAAa,EAIX,KAAA,YACG,GAAa,EAAO,GAEzB,EAAM,KAAA,GAEN,OAAG,GAAA,EAAA,EAAA,EAAW,KAAA,YAAU,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,IAApB,GAAI,EAAA,GACD,GAAG,GAAK,KAAK,OAAM,MAEzB,EAAI,GAAa,EAAO,GAEzB,MAAO,UAES,EAAI,MAMJ,EAAK,EAAM,CACvB,GAAA,GAAM,EAAG,GAAa,EAAM,KAAA,mBACpB,GACL,MAEQ,EAAM,CAEjB,GAAA,GAAI,KAAA,YACF,EAAI,GAET,AADS,KAAA,WAAU,EAAG,GACpB,GAAa,GAES,AAAE,KAAA,IAA3B,EAAO,YAAW,KAAA,IAClB,KAAA,WAAa,OAhFT,EAAkB,KAmFjB,WAAsB,EAAU,EAAM,CAC5C,MAAW,IAAA,GAAmB,EAAS", "names": [] }