-
-
Notifications
You must be signed in to change notification settings - Fork 2k
/
iterator.js.map
1 lines (1 loc) · 5.08 KB
/
iterator.js.map
1
{"version":3,"sources":["component/iterator.js"],"names":["definition","Emitter","functionMerge","getStorageProperty","uuid","property","properties","storage","getDataProperty","data","ComponentIterator","settings","self","this","parent","constructor","call","index","setData","prototype","length","item","initial","seek","parseInt","first","last","previous","loop","next","extends","provide"],"mappings":"CAKC,WACA,YAEA,SAASA,GAAWC,EAASC,GAG5B,QAASC,GAAmBC,EAAMC,GACjC,GAAIC,EAEJ,IAAGA,EAAaC,EAAQH,GACvB,MAAOE,GAAWD,GAIpB,QAASG,GAAgBJ,EAAMC,GAC9B,GAAIC,EAEJ,KAAIA,EAAaC,EAAQH,KAAUE,EAAWG,KAC7C,MAAOH,GAAWG,KAAKJ,GAIzB,QAASK,GAAkBD,EAAME,GAChC,GAAIC,GAAOC,KAAKC,OAAOC,YAAYC,KAAKH,KAUxC,OARAN,GAAQK,EAAKR,OACZO,SAAUT,KAAkBQ,EAAkBC,SAAUA,GACxDM,MAAU,KACVR,KAAU,MAGXA,GAAQG,EAAKM,QAAQT,GAEdG,EA7BR,GAAIL,KA8GJ,OA9EAG,GAAkBS,WAGfC,GAAIA,UACH,MAAOZ,GAAgBK,KAAKT,KAAM,WAAa,GAGhDa,GAAIA,SACH,MAAOd,GAAmBU,KAAKT,KAAM,UAGtCiB,GAAIA,QACH,MAAOb,GAAgBK,KAAKT,KAAMS,KAAKI,QAGzCC,QAAS,SAAST,GACjB,GACCL,GAAME,EAAYK,EADfC,EAAOC,IAeX,OAZmB,gBAATJ,IAAqBA,EAAKW,SACnChB,EAAaQ,EAAKR,KAClBE,EAAaC,EAAQH,GACrBO,EAAaL,EAAWK,SAExBL,EAAWG,KAAOA,EAEM,OAArBE,EAASW,SACXV,EAAKW,KAAKZ,EAASW,UAIdV,GAERW,KAAM,SAASN,GACd,GAAIL,GAAaC,KAChBP,EAAaC,EAAQK,EAAKR,KAQ3B,OANAa,GAAQO,SAASP,EAAO,IAErBA,IAAUX,EAAWW,OAA2C,mBAA3BX,GAAWG,KAAKQ,KACvDX,EAAWW,MAAQA,GAGbL,GAERa,MAAO,WACN,MAAOZ,MAAKU,KAAK,IAElBG,KAAM,WACL,GAAId,GAAOC,IAEX,OAAOD,GAAKW,KAAKX,EAAKQ,OAAS,IAEhCO,SAAU,WACT,GAGCV,GAHGL,EAAaC,KAChBT,EAAaQ,EAAKR,KAClBO,EAAaJ,EAAQH,GAAMO,QAM5B,OAHAM,GAASN,EAASiB,QAAS,GAAShB,EAAKK,MAAQ,GAAKL,EAAKQ,OAASR,EAAKK,MAAQ,EACjFA,EAASN,EAASiB,QAAS,GAAQX,EAAQ,EAAKL,EAAKQ,OAASH,EAAQA,EAE/DL,EAAKW,KAAKN,IAElBY,KAAM,WACL,GAGCZ,GAHGL,EAAaC,KAChBT,EAAaQ,EAAKR,KAClBO,EAAaJ,EAAQH,GAAMO,QAK5B,OAFAM,GAASN,EAASiB,QAAS,GAAShB,EAAKK,MAAQ,GAAKL,EAAKQ,OAASR,EAAKK,MAAQ,EAE1EL,EAAKW,KAAKN,KAIpBP,EAAkBC,UAAaiB,MAAM,EAAMN,QAAS,GAE7CZ,EAAkBoB,QAAQ7B,GAGlC8B,SAAU,aAAc,qBAAuB/B","file":"iterator.js","sourcesContent":["/**\n * @require ../emitter\n * @require ../function/merge\n */\n\n(function() {\n\t'use strict';\n\n\tfunction definition(Emitter, functionMerge) {\n\t\tvar storage = {};\n\n\t\tfunction getStorageProperty(uuid, property) {\n\t\t\tvar properties;\n\n\t\t\tif(properties = storage[uuid]) {\n\t\t\t\treturn properties[property];\n\t\t\t}\n\t\t}\n\n\t\tfunction getDataProperty(uuid, property) {\n\t\t\tvar properties;\n\n\t\t\tif((properties = storage[uuid]) && properties.data) {\n\t\t\t\treturn properties.data[property];\n\t\t\t}\n\t\t}\n\n\t\tfunction ComponentIterator(data, settings) {\n\t\t\tvar self = this.parent.constructor.call(this);\n\n\t\t\tstorage[self.uuid] = {\n\t\t\t\tsettings: functionMerge({}, ComponentIterator.settings, settings),\n\t\t\t\tindex: null,\n\t\t\t\tdata: null\n\t\t\t};\n\n\t\t\tdata && self.setData(data);\n\n\t\t\treturn self;\n\t\t}\n\n\t\tComponentIterator.prototype = {\n\t\t\t// properties\n\t\t\t\t// length\n\t\t\t\t\tget length() {\n\t\t\t\t\t\treturn getDataProperty(this.uuid, 'length') || 0;\n\t\t\t\t\t},\n\t\t\t\t// index\n\t\t\t\t\tget index() {\n\t\t\t\t\t\treturn getStorageProperty(this.uuid, 'index');\n\t\t\t\t\t},\n\t\t\t\t// item\n\t\t\t\t\tget item() {\n\t\t\t\t\t\treturn getDataProperty(this.uuid, this.index);\n\t\t\t\t\t},\n\t\t\t// methods\n\t\t\t\tsetData: function(data) {\n\t\t\t\t\tvar self = this,\n\t\t\t\t\t\tuuid, properties, settings;\n\n\t\t\t\t\tif(typeof data === 'object' && data.length) {\n\t\t\t\t\t\tuuid = self.uuid;\n\t\t\t\t\t\tproperties = storage[uuid];\n\t\t\t\t\t\tsettings = properties.settings;\n\n\t\t\t\t\t\tproperties.data = data;\n\n\t\t\t\t\t\tif(settings.initial !== null) {\n\t\t\t\t\t\t\tself.seek(settings.initial);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn self;\n\t\t\t\t},\n\t\t\t\tseek: function(index) {\n\t\t\t\t\tvar self = this,\n\t\t\t\t\t\tproperties = storage[self.uuid];\n\n\t\t\t\t\tindex = parseInt(index, 10);\n\n\t\t\t\t\tif(index !== properties.index && typeof properties.data[index] !== 'undefined') {\n\t\t\t\t\t\tproperties.index = index;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn self;\n\t\t\t\t},\n\t\t\t\tfirst: function() {\n\t\t\t\t\treturn this.seek(0);\n\t\t\t\t},\n\t\t\t\tlast: function() {\n\t\t\t\t\tvar self = this;\n\n\t\t\t\t\treturn self.seek(self.length - 1);\n\t\t\t\t},\n\t\t\t\tprevious: function() {\n\t\t\t\t\tvar self = this,\n\t\t\t\t\t\tuuid = self.uuid,\n\t\t\t\t\t\tsettings = storage[uuid].settings,\n\t\t\t\t\t\tindex;\n\n\t\t\t\t\tindex = (settings.loop === true) ? (self.index - 1) % self.length : self.index - 1;\n\t\t\t\t\tindex = (settings.loop === true && index < 0) ? self.length + index : index;\n\n\t\t\t\t\treturn self.seek(index);\n\t\t\t\t},\n\t\t\t\tnext: function() {\n\t\t\t\t\tvar self = this,\n\t\t\t\t\t\tuuid = self.uuid,\n\t\t\t\t\t\tsettings = storage[uuid].settings,\n\t\t\t\t\t\tindex;\n\n\t\t\t\t\tindex = (settings.loop === true) ? (self.index + 1) % self.length : self.index + 1;\n\n\t\t\t\t\treturn self.seek(index);\n\t\t\t\t}\n\t\t};\n\n\t\tComponentIterator.settings = { loop: true, initial: 0 };\n\n\t\treturn ComponentIterator.extends(Emitter);\n\t}\n\n\tprovide([ '../emitter', '../function/merge' ], definition);\n}());"]}