diff --git a/dist/sparrow.common.js b/dist/sparrow.common.js index f2e481f..fcccc49 100644 --- a/dist/sparrow.common.js +++ b/dist/sparrow.common.js @@ -523,6 +523,7 @@ var Application = function () { proxyMethod(instance, this, 'on', true); proxyMethod(instance, this, 'model', true); proxyMethod(instance, this, 'show', true); + proxyMethod(instance, this, 'hide', true); proxyMethod(instance, this, 'wrap', true); proxyMethod(instance, this, 'watch', true); proxyMethod(instance, this, 'nextTick'); @@ -702,9 +703,6 @@ var Application = function () { onHide = onHide || onShow; } - onShow = onShow || 'show'; - onHide = onHide || 'hide'; - var toggleHandler = function toggleHandler(handler) { return function () { if (typeof handler === 'string') { @@ -723,14 +721,17 @@ var Application = function () { }(); }; + onShow = toggleHandler(onShow || 'show'); + onHide = toggleHandler(onHide || 'hide'); + var handler = function handler(value, oldValue, ctrl) { var valueBool = value == true || value != 0; if (valueBool != (oldValue == true || oldValue != 0)) { if (valueBool) { - toggleHandler(onShow)(value, oldValue, ctrl); + onShow(value, oldValue, ctrl); } else { - toggleHandler(onHide)(value, oldValue, ctrl); + onHide(value, oldValue, ctrl); } } }; @@ -739,6 +740,31 @@ var Application = function () { return this; } + }, { + key: "hide", + value: function hide(selector, key) { + var onShow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var onHide = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + var getter = function () { + if (typeof key === 'function') { + return function () { + return key.call(this); + }; + } else { + return function () { + return this[key]; + }; + } + }.call(this); + + var shouldHide = function shouldHide() { + var value = getter.call(this); + return value != true && value == 0; + }; + + this.show(selector, shouldHide, onShow, onHide); + } }, { key: "wrap", value: function wrap(selector, handler) { diff --git a/dist/sparrow.js.map b/dist/sparrow.js.map index f80b5b0..6ceb352 100644 --- a/dist/sparrow.js.map +++ b/dist/sparrow.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 7823b627365ba1ae634c","webpack:///./src/util/utilities.js","webpack:///./src/sparrow.js","webpack:///./src/util/environment.js","webpack:///./src/app.js","webpack:///./src/observer/queue.js","webpack:///./src/observer/watcher.js","webpack:///./src/dom/element.js","webpack:///./src/dom/form.js","webpack:///./src/error/error.js","webpack:///./src/event.js","webpack:///./src/observer/dispatcher.js","webpack:///./src/observer/observer.js","webpack:///./src/observer/scheduler.js","webpack:///./src/promise/promise.js","webpack:///./src/util/registry.js","webpack:///./src/index.js"],"names":["nullFunction","Utilities","data","path","def","indexOf","paths","split","key","shift","has","get","join","value","set","remove","arr","element","length","index","splice","Array","isArray","isObject","hasOwnProperty","object","enumerable","Object","defineProperty","writable","configurable","toReturn","i","flatObject","flattenObject","x","$","isPlainObject","test","toString","string","str","charCodeAt","method","target","arg","len","arguments","call","apply","zepto","isZ","plugin","Sparrow","options","el","Error","domready","document","ready","$options","$mount","app","init","name","fn","customOptions","$this","extend","_name","prototype","$createElement","createElement","Promise","inBrowser","window","UA","navigator","userAgent","toLowerCase","isIE","isIE9","isEdge","isAndroid","isIOS","proxy","proxyMethod","defaultOptions","uid","Application","id","watcher","watchers","currentWatcher","watcherStack","elements","_isMounted","registry","instance","$data","event","observerFactory","hook","initState","mount","error","warn","$el","isJquery","selector","map","update","forceUpdate","callback","$element","find","html","text","isFormElement","attr","watch","biding","oldValue","ctrl","eventName","delegate","self","handler","on","val","outerHTML","substr","tagName","onShow","onHide","toggleHandler","valueBool","getter","shouldHide","show","wrapper","execute","forEach","user","push","immediate","unwatch","teardown","refresh","nextTick","resolve","then","pop","initData","methods","initMethods","computed","initComputed","initWatchers","isReserved","create","bind","watches","setter","cache","lazy","getCachedValue","source","proxyGetter","proxySetter","chain","methodName","r","TaskQueue","pending","tasks","getHandler","_resolve","slice","task","isNative","p","catch","console","err","setTimeout","MutationObserver","counter","observer","textNode","createTextNode","String","observe","characterData","deep","sync","deferred","Watcher","active","expression","dispatcherIds","dispatchers","newDisptacherIds","newDisptachers","pushStack","popStack","resetDispatchers","run","scheduler","enqueueWatcher","defer","k","addDispatcher","dispatcher","detach","temp","attach","removeElement","removeDispatcher","attrs","children","ele","setAttribute","addChildren","append","Element","appendChild","each","child","nodeName","attributes","FormHelper","tag","INPUT","SELECT","TEXTAREA","filter","prop","ErrorHandler","message","format","log","EventHandler","events","listen","n","off","args","Dispatcher","undefined","Observer","define","hasProto","arrayProto","replaceMethods","ObserverFactory","__observer__","replaceArrayMethods","isExtensible","keys","reactive","Math","max","ob","notify","property","getOwnPropertyDescriptor","childObserver","attachArray","newValue","arrayMethods","original","mutator","result","inserted","__proto__","State","WAITING","RUNNING","maxCircularNumber","Scheduler","queue","state","circular","setState","sort","a","b","reset","PromiseAdapter","Deferred","reject","when","onFulfilled","onRejected","promises","promise","v","reason","Registry","store","jQuery","Zepto"],"mappings":"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","file":"sparrow.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7823b627365ba1ae634c"," \n \n \n \n \n \n\nimport Sparrow from \"../sparrow\";\n\nexport default class Utilities {\n static get (data, path, def) {\n if (path.indexOf('.') !== -1) {\n let paths = path.split('.');\n let key = paths.shift();\n\n if (!Utilities.has(data, key)) {\n return def;\n }\n\n return Utilities.get(data[key], paths.join('.'), def);\n }\n\n return Utilities.has(data, path) ? data[path] : def;\n }\n\n static set (data, path, value) {\n if (path.indexOf('.') !== -1) {\n let paths = path.split('.');\n let key = paths.shift();\n\n if (!Utilities.has(data, key)) {\n data[key] = {};\n }\n\n data[key] = Utilities.set(data[key], paths.join('.'), value);\n\n return data;\n }\n\n data[path] = value;\n\n return data;\n }\n\n static remove (data, path) {\n if (path.indexOf('.') !== -1) {\n let paths = path.split('.');\n let key = paths.shift();\n\n if (!Utilities.has(data, key)) {\n return data;\n }\n\n Utilities.remove(data[key], paths.join('.'));\n\n return data;\n }\n\n remove(data, path);\n\n return data;\n }\n\n static removeElement (arr, element) {\n if (arr.length) {\n const index = arr.indexOf(element);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n }\n\n static has (data, key) {\n if (Array.isArray(data)) {\n return typeof data[key] !== 'undefined';\n } else if (Utilities.isObject(data)) {\n return data.hasOwnProperty(key);\n }\n\n return false;\n }\n\n static define (object, key, value, enumerable = true) {\n Object.defineProperty(object, key, {\n value: value,\n enumerable: enumerable,\n writable: true,\n configurable: true\n });\n }\n\n static flatten (data) {\n const toReturn = {};\n\n for (let i in data) {\n if (!data.hasOwnProperty(i)) continue;\n\n if ((typeof data[i]) == 'object') {\n let flatObject = flattenObject(data[i]);\n for (let x in flatObject) {\n if (!flatObject.hasOwnProperty(x)) {\n continue;\n }\n\n toReturn[i + '.' + x] = flatObject[x];\n }\n } else {\n toReturn[i] = data[i];\n }\n }\n\n return toReturn;\n }\n\n static isObject (data) {\n return typeof data === 'object' && data !== null;\n }\n\n static isPlainObject (data) {\n return Sparrow.$.isPlainObject(data);\n }\n\n static isNative (object) {\n return /native code/.test(object.toString());\n }\n\n static isReserved (string) {\n const str = (string + '').charCodeAt(0);\n return str === '$' || str === '_';\n }\n\n static bind (method, target) {\n return (function (arg) {\n const len = arguments.length;\n if (len === 1) {\n return method.call(target, arg);\n } else if (len === 0) {\n return method.call(target);\n }\n\n return method.apply(target, arguments);\n });\n }\n\n static isJquery (object) {\n if (!Utilities.isObject(object)) {\n return false;\n }\n\n if (object instanceof Sparrow.$ || 'jquery' in object) {\n return true;\n }\n\n if ('zepto' in Sparrow.$) {\n return Sparrow.$.zepto.isZ(object);\n }\n\n return false;\n }\n}\n\nfunction remove (data, key) {\n if (Array.isArray(data)) {\n if (data.length) {\n data.splice(key, 1);\n }\n\n return data;\n } else if (Utilities.isObject(data)) {\n delete data[key];\n\n return data;\n }\n\n return data;\n}\n\nexport function nullFunction () {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/utilities.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Application from './app';\r\nimport createElement from './dom/element';\r\n\r\nconst plugin = \"sparrow\";\r\n\r\nexport default class Sparrow {\r\n constructor (options = {}, $ = null) {\r\n let el = null;\r\n $ = $ || Sparrow.$;\r\n\r\n if (!$) {\r\n throw new Error('Sparrow.$ is NULL, please set jQuery or Zepto object into it.');\r\n }\r\n\r\n if (options.domready) {\r\n el = options.el;\r\n options.el = null;\r\n\r\n $(document).ready($ => {\r\n this.$options.el = el;\r\n this.$mount(el);\r\n });\r\n }\r\n\r\n this.app = new Application($);\r\n this.app.init(this, options);\r\n }\r\n\r\n static set $(value) {\r\n Object.defineProperty(Sparrow, '$', {\r\n value: value\r\n });\r\n\r\n Sparrow.$._name = ('zepto' in Sparrow.$) ? 'Zepto' : 'jQuery';\r\n\r\n Sparrow.plugin(plugin);\r\n }\r\n\r\n static plugin (name, options = {}) {\r\n const $ = Sparrow.$;\r\n\r\n if (!$) {\r\n throw new Error('Sparrow.$ is NULL, please set jQuery or Zepto object into it.');\r\n }\r\n\r\n if (typeof $.fn === 'undefined') {\r\n $('body'); \r\n throw new Error('Sparrow.$.fn not exists, are you sure you inject a jQuery / Zepto object?');\r\n }\r\n\r\n $.fn[name] = function (customOptions) {\r\n const $this = $(this[0]);\r\n\r\n if (!$this.data(name)) {\r\n options = $.extend(true, {}, options, customOptions);\r\n options.el = $this;\r\n\r\n $this.data(name, new Sparrow(options));\r\n }\r\n\r\n return $this.data(name);\r\n };\r\n }\r\n}\r\n\r\nSparrow.prototype.$createElement = Sparrow.createElement = createElement;\r\nSparrow.Promise = Application.Promise;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sparrow.js"," \n \n \n \n \n \n\n \nexport const inBrowser = typeof window !== 'undefined';\nexport const UA = inBrowser && window.navigator.userAgent.toLowerCase();\nexport const isIE = UA && /msie|trident/.test(UA);\nexport const isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nexport const isEdge = UA && UA.indexOf('edge/') > 0;\nexport const isAndroid = UA && UA.indexOf('android') > 0;\nexport const isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/environment.js"," \n \n \n \n \n \n\nimport { ObserverFactory } from './observer/observer';\nimport Watcher from \"./observer/watcher\";\nimport Registry from \"./util/registry\";\nimport Scheduler from \"./observer/scheduler\";\nimport TaskQueue from \"./observer/queue\";\nimport ErrorHandler from \"./error/error\";\nimport Utilities, { nullFunction } from \"./util/utilities\";\nimport PromiseAdapter from \"./promise/promise\";\nimport EventHandler from \"./event\";\nimport FormHelper from \"./dom/form\";\n\n \n \n \n \n \nconst defaultOptions = {\n data: {}\n};\n\nlet uid = 0;\n\nexport default class Application {\n constructor ($) {\n this.id = ++uid;\n this.$ = $;\n this.watcher = null;\n this.watchers = [];\n this.currentWatcher = null;\n this.watcherStack = [];\n this.elements = {};\n\n this._isMounted = false;\n\n this.registry = new Registry(this, {\n 'observerFactory': new ObserverFactory(this),\n 'scheduler': new Scheduler(this),\n 'error': new ErrorHandler,\n 'event': new EventHandler(this)\n });\n }\n\n init(instance, options = {}) {\n this.options = this.$.extend({}, defaultOptions, options);\n this.data = options.data;\n this.instance = instance;\n\n \n instance.$ = this.$;\n instance.$data = this.options.data;\n instance.$options = this.options;\n proxyMethod(instance, this, 'find');\n proxyMethod(instance, this, 'async');\n proxyMethod(instance, this, 'mount', true);\n proxyMethod(instance, this, 'bind', true);\n proxyMethod(instance, this, 'on', true);\n proxyMethod(instance, this, 'model', true);\n proxyMethod(instance, this, 'show', true);\n proxyMethod(instance, this, 'hide', true);\n proxyMethod(instance, this, 'wrap', true);\n proxyMethod(instance, this, 'watch', true);\n proxyMethod(instance, this, 'nextTick');\n proxyMethod(instance, this, 'forceUpdate', true);\n proxyMethod(instance, this.event, 'listen', true);\n proxyMethod(instance, this.event, 'off', true);\n proxyMethod(instance, this.event, 'once', true);\n proxyMethod(instance, this.event, 'emit', true);\n proxyMethod(instance, this.observerFactory, 'set', true);\n proxyMethod(instance, this.observerFactory, 'delete', true);\n\n this.hook('beforeCreate');\n\n initState(this);\n\n \n this.hook('created');\n\n if (options.el) {\n this.mount(options.el);\n }\n\n \n }\n\n mount (el) {\n if (this._isMounted) {\n this.error.warn('This app has been already mounted.');\n return;\n }\n\n this.hook('beforeMount');\n\n const $el = Utilities.isJquery(el) ? el : this.$(el);\n\n if ($el.length === 0) {\n if (process.env.NODE_ENV === 'development') {\n const str = $el.selector ? $el.selector : $el[0] + '';\n this.error.warn(`Can not mount ${str}, element not found. Consider change selector or call after \"domready\".`);\n }\n\n return;\n }\n\n this.instance.$el = this.$el;\n\n this._isMounted = true;\n\n this.hook('configure');\n\n this.hook('mounted');\n\n this.watcher = new Watcher(this, function () {\n this.app.watchers.map(watcher => watcher.update());\n }, nullFunction);\n\n this.forceUpdate();\n }\n\n forceUpdate () {\n if (this.watcher) {\n this.watcher.update();\n }\n }\n\n hook (name) {\n if (this.options.hasOwnProperty(name) && typeof this.options[name] === 'function') {\n this.options[name].call(this.instance);\n }\n }\n\n bind (selector, key, callback) {\n const $element = this.find(selector);\n\n \n if (typeof callback === 'string') {\n const name = callback;\n callback = ($element, value) => {\n switch (name) {\n case ':html':\n $element.html(value);\n break;\n\n case ':text':\n $element.text(value);\n break;\n\n case ':value':\n if (FormHelper.isFormElement($element)) {\n FormHelper.update($element);\n }\n break;\n default:\n $element.attr(name, value);\n }\n };\n }\n\n this.watch(key, function biding (value, oldValue, ctrl) {\n callback.call(this.instance, $element, value, oldValue, ctrl);\n });\n\n return this;\n }\n\n on (selector, eventName, callback, delegate = false) {\n const $element = this.find(selector);\n let self = this;\n\n const handler = function (event) {\n callback.call(self.instance, self.$(this), event);\n };\n\n if (delegate) {\n this.$el.on(eventName, selector, handler);\n } else {\n $element.on(eventName, handler);\n }\n\n return this;\n }\n\n model (selector, key, delegate = false) {\n const handler = function ($element, event) {\n let value;\n switch ($element.attr('type')) {\n case 'radio':\n value = $element[0].value;\n break;\n default:\n value = $element.val();\n }\n\n return Utilities.set(this.$data, key, value);\n };\n\n const $element = this.find(selector);\n\n if (process.env.NODE_ENV === 'development' && !FormHelper.isFormElement($element)) {\n this.error.warn(\n 'Please only use two-way-binding on input, select or textarea elements. The element you selected: ' +\n $element[0].outerHTML.substr(0, 50) + '...'\n );\n }\n\n this.watch(function () {\n const value = Utilities.get(this.$data, key);\n if ($element.val() !== value) {\n FormHelper.update($element, value);\n }\n }, nullFunction);\n\n this.on(selector, 'change', handler, delegate);\n\n if ($element[0].tagName !== 'SELECT') {\n this.on(selector, 'input', handler, delegate);\n }\n\n return this;\n }\n\n show (selector, key, onShow = null, onHide = null) {\n const $element = this.find(selector);\n\n if (onShow !== null) {\n onHide = onHide || onShow;\n }\n\n const toggleHandler = ((handler) => {\n return (() => {\n if (typeof handler === 'string') {\n if (process.env.NODE_ENV === 'development' && typeof $element[handler] !== 'function') {\n this.error.error(`Method: ${handler}() not found in ${Sparrow.$._name} object.`);\n }\n\n return () => $element[handler]();\n } else if (typeof handler === 'function') {\n return (value, oldValue, ctrl) => handler.call(this.instance, $element, value, oldValue, ctrl);\n }\n })();\n });\n\n onShow = toggleHandler(onShow || 'show');\n onHide = toggleHandler(onHide || 'hide');\n\n const handler = function (value, oldValue, ctrl) {\n const valueBool = (value == true || value != 0);\n\n if (valueBool != (oldValue == true || oldValue != 0)) {\n if (valueBool) {\n onShow(value, oldValue, ctrl);\n } else {\n onHide(value, oldValue, ctrl);\n }\n }\n };\n\n this.watch(key, handler);\n\n return this;\n }\n\n hide (selector, key, onShow = null, onHide = null) {\n const getter = (function () {\n if (typeof key === 'function') {\n return function () {\n return key.call(this);\n };\n } else {\n return function () {\n return this[key];\n };\n }\n }).call(this);\n\n const shouldHide = function () {\n const value = getter.call(this);\n return value != true && value == 0;\n };\n\n this.show(selector, shouldHide, onShow, onHide);\n }\n\n wrap (selector, handler) {\n const $element = this.find(selector);\n const self = this;\n const wrapper = {\n execute: function () {\n handler.call(this, $element, this);\n }\n };\n\n ['bind', 'on', 'model', 'show'].forEach(function (method) {\n wrapper['$' + method] = function () {\n self[method]($element, ...arguments);\n return this;\n };\n });\n\n wrapper.execute($element);\n\n return this;\n }\n\n watch (path, callback, options = {}) {\n options.user = true;\n\n const watcher = new Watcher(this, path, callback, options);\n this.watchers.push(watcher);\n\n if (options.immediate) {\n callback.call(this.instance, watcher.get());\n }\n\n return (function unwatch () {\n watcher.teardown();\n });\n }\n\n find (selector, refresh = false) {\n if (typeof selector === 'object' && !Utilities.isJquery(selector)) {\n return this.$(selector);\n }\n\n if (selector === 'string') {\n if (!this.elements.hasOwnProperty(selector) || refresh) {\n this.elements[selector] = this.$el.find(selector);\n }\n\n return this.elements[selector];\n }\n\n return this.$(selector);\n }\n\n nextTick (callback) {\n return TaskQueue.nextTick(callback);\n }\n\n async (handler) {\n return new Application.Promise(resolve => {\n Application.Promise.resolve()\n .then(handler)\n .then((value) => resolve(value))\n });\n }\n\n pushStack (watcher) {\n if (this.currentWatcher) {\n this.watcherStack.push(this.currentWatcher);\n }\n\n this.currentWatcher = watcher;\n }\n\n popStack () {\n this.currentWatcher = this.watcherStack.pop();\n }\n}\n\nfunction initState (app) {\n \n initData(app, app.options.data);\n\n if (app.options.methods) {\n initMethods(app, app.options.methods);\n }\n\n if (app.options.computed) {\n initComputed(app, app.options.computed);\n }\n\n if (app.options.watch) {\n initWatchers(app, app.options.watch);\n }\n}\n\nfunction initData (app, data) {\n \n for (let key in data) {\n if (!Utilities.isReserved(key)) {\n proxy(app.instance, data, key);\n }\n }\n\n app.observerFactory.create(data);\n}\n\nfunction initMethods (app, methods) {\n for (let key in methods) {\n const method = methods[key];\n if (!app.options.data[key] && typeof method === 'function') {\n \n app.instance[key] = Utilities.bind(method, app.instance);\n }\n }\n}\n\nfunction initWatchers (app, watches) {\n for (let key in watches) {\n let handler = watches[key];\n let options;\n\n if (Utilities.isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n\n if (typeof handler === 'string') {\n handler = app[handler];\n }\n\n app.watch(key, handler, options);\n }\n}\n\nfunction initComputed (app, computed) {\n for (let key in computed) {\n const handler = computed[key];\n let setter = nullFunction;\n let getter;\n let cache;\n\n getter = typeof handler === 'function' ? handler : handler.get;\n getter = Utilities.bind(getter, app.instance);\n\n const watcher = new Watcher(app, key, getter, {lazy: true});\n\n if (!app.hasOwnProperty(key)) {\n\n if (typeof handler !== 'function') {\n setter = handler.set;\n cache = handler.cache;\n getter = cache === false ? nullFunction : function () {\n return watcher.getCachedValue();\n };\n }\n\n setter = Utilities.bind(setter, app.instance);\n\n Object.defineProperty(app.data, key, {\n enumerable: true,\n configurable: true,\n get: getter,\n set: setter\n });\n }\n }\n}\n\nexport function proxy (target, source, key) {\n Object.defineProperty(target, key, {\n get: function proxyGetter () {\n return source[key]\n },\n set: function proxySetter (value) {\n source[key] = value;\n }\n });\n}\n\nexport function proxyMethod (target, source, key, chain = false) {\n const methodName = '$' + key;\n target[methodName] = function (...args) {\n const r = source[key](...args);\n\n return chain ? target : r;\n }\n}\n\nApplication.Promise = PromiseAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./src/app.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport { nullFunction } from \"../util/utilities\";\r\nimport Utilities from \"../util/utilities\";\r\nimport { isIOS } from \"../util/environment\";\r\nimport Application from \"../app\";\r\n\r\nconst TaskQueue = {\r\n pending: false,\r\n tasks: [],\r\n handler: null,\r\n nextTick: function (callback, target, app) {\r\n const handler = this.getHandler();\r\n\r\n let _resolve;\r\n this.tasks.push(() => {\r\n if (callback) {\r\n callback.call(target);\r\n }\r\n\r\n if (_resolve) {\r\n _resolve(target);\r\n }\r\n });\r\n\r\n if (!this.pending) {\r\n this.pending = true;\r\n\r\n if (app) {\r\n app.hook('beforeUpdate');\r\n }\r\n\r\n handler();\r\n }\r\n\r\n if (!callback && typeof Promise !== 'undefined') {\r\n return Application.Promise(resolve => {\r\n _resolve = resolve;\r\n });\r\n }\r\n },\r\n execute: function () {\r\n TaskQueue.pending = false;\r\n const tasks = TaskQueue.tasks.slice(0);\r\n TaskQueue.tasks.length = 0;\r\n\r\n tasks.forEach(task => task());\r\n },\r\n \r\n \r\n \r\n getHandler: function () {\r\n if (typeof this.handler !== 'function') {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n if (typeof Promise !== 'undefined' && Utilities.isNative(Promise)) {\r\n const p = Promise.resolve();\r\n this.handler = () => {\r\n p.then(this.execute).catch(err => console.error(err));\r\n\r\n \r\n \r\n \r\n \r\n \r\n if (isIOS) {\r\n setTimeout(nullFunction);\r\n }\r\n };\r\n } else if (typeof MutationObserver !== 'undefined' && (\r\n Utilities.isNative(MutationObserver) ||\r\n \r\n MutationObserver.toString() === '[object MutationObserverConstructor]'\r\n )) {\r\n \r\n \r\n let counter = 1;\r\n const observer = new MutationObserver(this.execute);\r\n const textNode = document.createTextNode(String(counter));\r\n observer.observe(textNode, {\r\n characterData: true\r\n });\r\n this.handler = () => {\r\n counter = (counter + 1) % 2;\r\n textNode.data = String(counter)\r\n }\r\n } else {\r\n \r\n \r\n this.handler = () => {\r\n setTimeout(this.execute, 0);\r\n }\r\n }\r\n }\r\n\r\n return this.handler;\r\n }\r\n};\r\n\r\nexport default TaskQueue;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/queue.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport Utilities from \"../util/utilities\";\r\n\r\nlet uid = 0;\r\n\r\nconst defaultOptions = {\r\n deep: false,\r\n user: false,\r\n sync: false,\r\n computed: false,\r\n deferred: false\r\n};\r\n\r\nexport default class Watcher {\r\n constructor (app, path, callback, options = {}) {\r\n this.options = app.$.extend({}, defaultOptions, options);\r\n\r\n this.id = ++uid;\r\n this.path = path;\r\n this.callback = callback;\r\n this.app = app;\r\n this.active = true;\r\n this.ctrl = null;\r\n this.deep = this.options.deep;\r\n this.user = this.options.user;\r\n this.sync = this.options.sync;\r\n this.computed = this.options.computed;\r\n this.deferred = this.options.deferred;\r\n this.expression = process.env.NODE_ENV === 'development' ? path + '' : '';\r\n this.dispatcherIds = [];\r\n this.dispatchers = [];\r\n this.newDisptacherIds = [];\r\n this.newDisptachers = [];\r\n\r\n if (typeof this.path === 'function') {\r\n this.getter = this.path;\r\n } else {\r\n this.getter = function (value) {\r\n return Utilities.get(value, path);\r\n }\r\n }\r\n\r\n \r\n }\r\n\r\n get () {\r\n this.app.pushStack(this);\r\n\r\n let value;\r\n\r\n value = this.getter.call(this.app.instance, this.app.data);\r\n\r\n \r\n\r\n this.app.popStack();\r\n\r\n this.resetDispatchers();\r\n\r\n return value;\r\n }\r\n\r\n update (ctrl = null) {\r\n this.ctrl = ctrl;\r\n\r\n if (this.computed) {\r\n this.deferred = true;\r\n } else if (this.sync) {\r\n this.run();\r\n } else {\r\n this.app.scheduler.enqueueWatcher(this);\r\n }\r\n }\r\n\r\n run () {\r\n if (this.active) {\r\n const value = this.get();\r\n\r\n if (value !== this.value || this.deep || Utilities.isObject(value)) {\r\n const oldValue = this.value;\r\n this.value = value;\r\n\r\n this.callback.call(this.app.instance, value, oldValue, this.ctrl);\r\n }\r\n }\r\n\r\n this.ctrl = null;\r\n }\r\n\r\n getCachedValue () {\r\n if (this.defer) {\r\n this.get();\r\n this.defer = false;\r\n }\r\n\r\n \r\n if (this.app.currentWatcher) {\r\n for (let k in this.watcher.dispatchers) {\r\n this.app.currentWatcher.addDispatcher(this.dispatchers[k]);\r\n }\r\n }\r\n\r\n return this.value;\r\n }\r\n\r\n resetDispatchers () {\r\n this.dispatchers.map(dispatcher => {\r\n if (this.newDisptacherIds.indexOf(dispatcher.id) === -1) {\r\n dispatcher.detach(this);\r\n }\r\n });\r\n\r\n let temp;\r\n temp = this.newDisptachers;\r\n this.dispatchers = this.newDisptachers;\r\n this.newDisptachers = temp;\r\n this.newDisptachers.length = 0;\r\n\r\n temp = this.newDisptacherIds;\r\n this.dispatcherIds = this.newDisptacherIds;\r\n this.newDisptacherIds = temp;\r\n this.newDisptacherIds.length = 0;\r\n }\r\n\r\n addDispatcher(dispatcher) {\r\n const id = dispatcher.id;\r\n\r\n if (this.newDisptacherIds.indexOf(id) === -1) {\r\n this.newDisptacherIds.push(id);\r\n this.newDisptachers.push(dispatcher);\r\n\r\n if (this.dispatcherIds.indexOf(id) === -1) {\r\n dispatcher.attach(this);\r\n }\r\n }\r\n }\r\n\r\n removeDispatcher (dispatcher) {\r\n Utilities.removeElement(this.dispatchers, dispatcher);\r\n dispatcher.detach(this);\r\n }\r\n\r\n teardown () {\r\n this.dispatchers.map(dispatcher => {\r\n this.removeDispatcher(dispatcher);\r\n Utilities.removeElement(this.watchers, this);\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/watcher.js"," \n \n \n \n \n \n\nimport Utilities from \"../util/utilities\";\nimport Sparrow from \"../sparrow\";\n\nexport default function createElement (name, attrs = {}, children = null) {\n const ele = document.createElement(name);\n\n for (let key in attrs) {\n const value = attrs[key];\n\n ele.setAttribute(key, value);\n }\n\n addChildren(ele, children);\n\n return ele;\n}\n\nfunction addChildren (ele, children) {\n if (children !== null) {\n if (typeof children === 'string' || typeof children === 'number') {\n ele.append(children);\n } else if (children instanceof Element) {\n ele.appendChild(children);\n } else if (children instanceof Sparrow.$ || Utilities.isJquery(children)) {\n children.each(function () {\n ele.appendChild(this);\n });\n } else if (Array.isArray(children) || Utilities.isObject(children)) {\n for (let k in children) {\n let child = children[k];\n if (child.hasOwnProperty('nodeName')) {\n child = createElement(child.nodeName, child.attributes, child.children);\n ele.appendChild(child);\n } else {\n addChildren(ele, child);\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/dom/element.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport Utilities from \"../util/utilities\";\r\n\r\nexport default class FormHelper {\r\n static isFormElement ($element) {\r\n const tag = Utilities.isJquery($element) ? $element[0].tagName : $element.tagName;\r\n\r\n return [FormHelper.INPUT, FormHelper.SELECT, FormHelper.TEXTAREA].indexOf(tag) !== -1;\r\n }\r\n\r\n static update ($element, value) {\r\n const method = 'update' + $element[0].tagName;\r\n\r\n FormHelper[method]($element, value);\r\n }\r\n\r\n static updateINPUT($element, value) {\r\n switch ($element.attr('type')) {\r\n case 'radio':\r\n case 'checkbox':\r\n $element.filter(`[value=${value}]`).prop('checked', true);\r\n break;\r\n default:\r\n $element.val(value);\r\n }\r\n }\r\n\r\n static updateTEXTAREA($element, value) {\r\n $element.val(value);\r\n }\r\n\r\n static updateSELECT($element, value) {\r\n $element.val(value);\r\n }\r\n}\r\n\r\nFormHelper.INPUT = 'INPUT';\r\nFormHelper.SELECT = 'SELECT';\r\nFormHelper.TEXTAREA = 'TEXTAREA';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/dom/form.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default class ErrorHandler {\r\n constructor (app) {\r\n this.app = app;\r\n }\r\n\r\n warn (message) {\r\n console.warn(this.format(message));\r\n }\r\n\r\n error (message) {\r\n console.error(this.format(message));\r\n }\r\n\r\n log (message) {\r\n console.log(this.format(message));\r\n }\r\n\r\n format (message) {\r\n return `[Sparrow]: ${message}`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/error/error.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default class EventHandler {\r\n constructor (app) {\r\n this.app = app;\r\n this.events = {};\r\n }\r\n\r\n listen (name, callback) {\r\n if (Array.isArray(name)) {\r\n name.map(n => this.listen(n, callback));\r\n return this;\r\n }\r\n\r\n if (!this.events.hasOwnProperty(name)) {\r\n this.events[name] = [];\r\n }\r\n\r\n this.events[name].push(callback);\r\n\r\n return this;\r\n }\r\n\r\n once (name, callback) {\r\n const fn = () => {\r\n const r = callback.apply(this.app.instance, arguments);\r\n\r\n this.off(name);\r\n\r\n return r;\r\n };\r\n\r\n return this.listen(name, fn);\r\n }\r\n\r\n off (name = null, callback = null) {\r\n if (name === null) {\r\n this.events = {};\r\n } else if (Array.isArray(name)) {\r\n name.map(n => this.listen(n, callback));\r\n return this;\r\n }\r\n\r\n if (!this.events.hasOwnProperty(name)) {\r\n return this;\r\n }\r\n\r\n if (callback === null) {\r\n this.events[name] = [];\r\n } else if (typeof callback === 'function' && Array.isArray(this.events[name])) {\r\n for (let k in this.events[name]) {\r\n const fn = this.events[name][k];\r\n\r\n if (fn === callback) {\r\n this.events[name].splice(k, 1);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n emit (name, ...args) {\r\n if (!this.events.hasOwnProperty(name)) {\r\n return this;\r\n }\r\n\r\n if (!Array.isArray(this.events[name])) {\r\n return this;\r\n }\r\n\r\n for (let k in this.events[name]) {\r\n const callback = this.events[name][k];\r\n callback.call(this.app.instance, ...args);\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/event.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Watcher from './watcher';\r\nimport Utilities from \"../util/utilities\";\r\n\r\nlet uid = 0;\r\n\r\n \r\n \r\n \r\nexport default class Dispatcher {\r\n \r\n \r\n \r\n \r\n \r\n constructor (app, watchers = []) {\r\n this.id = ++uid;\r\n this.watchers = watchers;\r\n this.app = app;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n attach (watcher) {\r\n this.watchers.push(watcher);\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n detach (watcher) {\r\n Utilities.removeElement(this.watchers, watcher);\r\n\r\n watcher.removeDispatcher();\r\n\r\n return this;\r\n }\r\n\r\n \r\n \r\n \r\n attachCurrent () {\r\n if (this.app.currentWatcher) {\r\n this.app.currentWatcher.addDispatcher(this);\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n notify (ctrl = undefined) {\r\n this.watchers.forEach(watcher => watcher.update(ctrl));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/dispatcher.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Utilities from '../util/utilities';\r\nimport Dispatcher from './dispatcher';\r\n\r\n \r\n \r\n \r\nexport default class Observer {\r\n \r\n \r\n \r\n \r\n \r\n \r\n constructor (value, dispatcher) {\r\n this.value = value;\r\n this.dispatcher = dispatcher;\r\n\r\n Utilities.define(value, '__observer__', this, false);\r\n }\r\n}\r\n\r\nconst hasProto = '__proto__' in {};\r\nconst arrayProto = Array.prototype;\r\nconst replaceMethods = [\r\n 'push',\r\n 'pop',\r\n 'shift',\r\n 'unshift',\r\n 'splice',\r\n 'sort',\r\n 'reverse'\r\n];\r\n\r\nexport class ObserverFactory {\r\n \r\n \r\n \r\n \r\n \r\n constructor (app) {\r\n this.app = app;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n create (value) {\r\n if (!Utilities.isObject(value)) {\r\n return null;\r\n }\r\n\r\n let observer;\r\n\r\n if (!value.hasOwnProperty('__observer__') && value.__observer__ instanceof Observer) {\r\n observer = value.__observer__;\r\n } else if (Array.isArray(value)) {\r\n observer = new Observer(value, new Dispatcher(this.app));\r\n\r\n this.replaceArrayMethods(value);\r\n\r\n value.forEach(val => this.create(val));\r\n } else if (Utilities.isPlainObject(value) && Object.isExtensible(value)) {\r\n observer = new Observer(value, new Dispatcher(this.app));\r\n\r\n Object.keys(value).forEach((key) => this.reactive(value, key, value[key]));\r\n }\r\n\r\n return observer;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n set (object, key, value) {\r\n if (Array.isArray(object)) {\r\n object.length = Math.max(object.length, key);\r\n object.splice(key, 1, value);\r\n return value;\r\n }\r\n\r\n if (Utilities.has(object, key)) {\r\n object[key] = value;\r\n return value;\r\n }\r\n\r\n const ob = object.__observer__;\r\n if (!ob) {\r\n ob[key] = value;\r\n return value;\r\n }\r\n\r\n this.reactive(object, key, value);\r\n ob.dispatcher.notify();\r\n return value;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n delete (object, key) {\r\n if (Array.isArray(object)) {\r\n object.splice(key, 1);\r\n return;\r\n }\r\n\r\n const ob = object.__observer__;\r\n\r\n if (!Utilities.has(object, key)) {\r\n return;\r\n }\r\n\r\n delete object[key];\r\n\r\n if (!ob) {\r\n return\r\n }\r\n\r\n ob.dispatcher.notify();\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n reactive (object, key, value) {\r\n const property = Object.getOwnPropertyDescriptor(object, key);\r\n const dispatcher = new Dispatcher(this.app);\r\n const self = this;\r\n\r\n if (property && property.configurable === false) {\r\n return;\r\n }\r\n\r\n const getter = property && property.get;\r\n const setter = property && property.set;\r\n\r\n let childObserver = this.create(value);\r\n\r\n Object.defineProperty(object, key, {\r\n get: function () {\r\n value = getter ? getter.call(object) : value;\r\n\r\n \r\n \r\n \r\n \r\n if (self.app.currentWatcher) {\r\n self.app.currentWatcher.addDispatcher(dispatcher);\r\n\r\n \r\n if (childObserver) {\r\n self.app.currentWatcher.addDispatcher(childObserver.dispatcher);\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n self.attachArray(value);\r\n }\r\n }\r\n\r\n return value;\r\n },\r\n set: function (newValue) {\r\n const oldValue = getter ? getter.call(object) : value;\r\n\r\n if (newValue === oldValue || (newValue !== newValue && oldValue !== oldValue)) {\r\n return;\r\n }\r\n\r\n if (setter) {\r\n setter.call(object, newValue);\r\n } else {\r\n value = newValue;\r\n }\r\n\r\n childObserver = self.create(newValue);\r\n\r\n dispatcher.notify();\r\n }\r\n });\r\n }\r\n\r\n \r\n \r\n \r\n \r\n attachArray (value = []) {\r\n for (let key in value) {\r\n const ele = value[key];\r\n ele && ele.__observer__ && this.app.currentWatcher.addDispatcher(ele.__observer__.dispatcher);\r\n\r\n if (Array.isArray(ele)) {\r\n this.attachArray(ele);\r\n }\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n replaceArrayMethods (value) {\r\n const self = this;\r\n const arrayMethods = Object.create(arrayProto);\r\n\r\n replaceMethods.forEach(function (method) {\r\n \r\n const original = arrayProto[method];\r\n\r\n Utilities.define(arrayMethods, method, function mutator () {\r\n let i = arguments.length;\r\n const args = new Array(i);\r\n\r\n while (i--) {\r\n args[i] = arguments[i]\r\n }\r\n\r\n const result = original.apply(this, args);\r\n const ob = this.__observer__;\r\n\r\n let inserted;\r\n\r\n switch (method) {\r\n case 'push':\r\n inserted = args;\r\n break;\r\n case 'unshift':\r\n inserted = args;\r\n break;\r\n case 'splice':\r\n inserted = args.slice(2);\r\n break;\r\n }\r\n\r\n if (inserted) {\r\n self.create(inserted);\r\n }\r\n\r\n \r\n ob.dispatcher.notify({\r\n method: method,\r\n args: args\r\n });\r\n\r\n return result;\r\n });\r\n });\r\n\r\n if (hasProto) {\r\n value.__proto__ = arrayMethods;\r\n return value;\r\n }\r\n\r\n arrayMethods.forEach((method, key) => Utilities.define(value, key, method));\r\n return value;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/observer.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport TaskQueue from \"./queue\";\r\n\r\nconst State = {\r\n WAITING: 'waiting',\r\n RUNNING: 'running'\r\n};\r\n\r\nconst maxCircularNumber = 1000;\r\n\r\nexport default class Scheduler {\r\n constructor (app) {\r\n this.app = app;\r\n this.queue = [];\r\n this.watchers = {};\r\n this.index = 0;\r\n this.state = State.WAITING;\r\n this.circular = [];\r\n }\r\n\r\n setState (state) {\r\n this.state = state;\r\n }\r\n\r\n is (state) {\r\n return this.state === state;\r\n }\r\n\r\n enqueueWatcher (watcher) {\r\n \r\n if (!this.watchers[watcher.id]) {\r\n this.watchers[watcher.id] = true;\r\n\r\n switch (this.state) {\r\n case State.WAITING:\r\n this.queue.push(watcher);\r\n\r\n this.setState(State.RUNNING);\r\n\r\n TaskQueue.nextTick(this.execute, this, this.app);\r\n break;\r\n\r\n case State.RUNNING:\r\n \r\n \r\n let i = this.queue.length - 1;\r\n\r\n while (i >= 0 && this.queue[i].id > watcher.id) {\r\n i--\r\n }\r\n\r\n this.queue.splice(Math.max(i, this.index) + 1, 0, watcher);\r\n }\r\n }\r\n }\r\n\r\n execute () {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.queue.sort((a, b) => a.id - b.id);\r\n\r\n \r\n \r\n for (this.index = 0; this.index < this.queue.length; this.index++) {\r\n const watcher = this.queue[this.index];\r\n this.watchers[watcher.id] = null;\r\n watcher.run();\r\n\r\n \r\n if (process.env.NODE_ENV === 'development' && this.watchers[watcher.id] != null) {\r\n this.circular[id] = (this.circular[id] || 0) + 1;\r\n if (this.circular[id] > maxCircularNumber) {\r\n this.app.error.warn(\r\n `Infinite loop for max 1000 times for key: ${watcher.path} ` +\r\n `and expression: ${watcher.expression}`\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.reset();\r\n }\r\n\r\n reset () {\r\n this.queue.length = 0;\r\n this.watchers = {};\r\n this.circular = {};\r\n this.setState(State.WAITING);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/scheduler.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport Utilities from \"../util/utilities\";\r\nimport Sparrow from \"../sparrow\";\r\n\r\nexport default class PromiseAdapter {\r\n constructor (callback) {\r\n const deferred = Sparrow.$.Deferred();\r\n const resolve = deferred.resolve;\r\n const reject = deferred.reject;\r\n\r\n callback(resolve, reject);\r\n\r\n this.defer = Sparrow.$.when(deferred);\r\n }\r\n\r\n then (onFulfilled, onRejected) {\r\n return this.defer.then(onFulfilled, onRejected);\r\n }\r\n\r\n catch (onRejected) {\r\n return this.defer.catch(onRejected);\r\n }\r\n\r\n static all (promises) {\r\n return Sparrow.$.when(...promises);\r\n }\r\n\r\n static race (promises) {\r\n let _resolve;\r\n\r\n return new PromiseAdapter(resolve => {\r\n _resolve = resolve;\r\n\r\n promises.map(promise => {\r\n promise.then((v) => {\r\n if (_resolve) {\r\n resolve(v);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n static resolve (object) {\r\n if (object instanceof PromiseAdapter) {\r\n object.defer.resolve();\r\n\r\n return object;\r\n }\r\n\r\n const promise = new PromiseAdapter(resolve => resolve(object));\r\n\r\n if (Utilities.isObject(object) && object.hasOwnProperty('then')) {\r\n return promise.then(object.then);\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n static reject (reason) {\r\n return new PromiseAdapter((resolve, reject) => reject(reason));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/promise/promise.js"," \n \n \n \n \n \n\nexport default class Registry {\n constructor (app, store = {}) {\n this.app = app;\n this.store = {};\n\n for (let name in store) {\n this.set(name, store[name]);\n }\n }\n\n get (name) {\n return this.store[name];\n }\n\n set (name, value) {\n this.store[name] = value;\n\n Object.defineProperty(this.app, name, {\n get: () => {\n return this.get(name);\n }\n });\n\n return this;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/registry.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Sparrow from \"./sparrow\";\r\nimport { inBrowser } from \"./util/environment\";\r\n\r\nif (inBrowser) {\r\n let $ = window.jQuery || window.Zepto || window.$ || null;\r\n\r\n if ($) {\r\n Sparrow.$ = $;\r\n }\r\n}\r\n\r\nexport default Sparrow;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap cdab448c9c664a3accdb","webpack:///./src/util/utilities.js","webpack:///./src/sparrow.js","webpack:///./src/util/environment.js","webpack:///./src/app.js","webpack:///./src/observer/queue.js","webpack:///./src/observer/watcher.js","webpack:///./src/dom/element.js","webpack:///./src/dom/form.js","webpack:///./src/error/error.js","webpack:///./src/event.js","webpack:///./src/observer/dispatcher.js","webpack:///./src/observer/observer.js","webpack:///./src/observer/scheduler.js","webpack:///./src/promise/promise.js","webpack:///./src/util/registry.js","webpack:///./src/index.js"],"names":["nullFunction","Utilities","data","path","def","indexOf","paths","split","key","shift","has","get","join","value","set","remove","arr","element","length","index","splice","Array","isArray","isObject","hasOwnProperty","object","enumerable","Object","defineProperty","writable","configurable","toReturn","i","flatObject","flattenObject","x","$","isPlainObject","test","toString","string","str","charCodeAt","method","target","arg","len","arguments","call","apply","zepto","isZ","plugin","Sparrow","options","el","Error","domready","document","ready","$options","$mount","app","init","name","fn","customOptions","$this","extend","_name","prototype","$createElement","createElement","Promise","inBrowser","window","UA","navigator","userAgent","toLowerCase","isIE","isIE9","isEdge","isAndroid","isIOS","proxy","proxyMethod","defaultOptions","uid","Application","id","watcher","watchers","currentWatcher","watcherStack","elements","_isMounted","registry","instance","$data","event","observerFactory","hook","initState","mount","error","warn","$el","isJquery","selector","map","update","forceUpdate","callback","$element","find","html","text","isFormElement","attr","watch","biding","oldValue","ctrl","eventName","delegate","self","handler","on","val","outerHTML","substr","tagName","onShow","onHide","toggleHandler","valueBool","getter","shouldHide","show","wrapper","execute","forEach","user","push","immediate","unwatch","teardown","refresh","nextTick","resolve","then","pop","initData","methods","initMethods","computed","initComputed","initWatchers","isReserved","create","bind","watches","setter","cache","lazy","getCachedValue","source","proxyGetter","proxySetter","chain","methodName","r","TaskQueue","pending","tasks","getHandler","_resolve","slice","task","isNative","p","catch","console","err","setTimeout","MutationObserver","counter","observer","textNode","createTextNode","String","observe","characterData","deep","sync","deferred","Watcher","active","expression","dispatcherIds","dispatchers","newDisptacherIds","newDisptachers","pushStack","popStack","resetDispatchers","run","scheduler","enqueueWatcher","defer","k","addDispatcher","dispatcher","detach","temp","attach","removeElement","removeDispatcher","attrs","children","ele","setAttribute","addChildren","append","Element","appendChild","each","child","nodeName","attributes","FormHelper","tag","INPUT","SELECT","TEXTAREA","filter","prop","ErrorHandler","message","format","log","EventHandler","events","listen","n","off","args","Dispatcher","undefined","Observer","define","hasProto","arrayProto","replaceMethods","ObserverFactory","__observer__","replaceArrayMethods","isExtensible","keys","reactive","Math","max","ob","notify","property","getOwnPropertyDescriptor","childObserver","attachArray","newValue","arrayMethods","original","mutator","result","inserted","__proto__","State","WAITING","RUNNING","maxCircularNumber","Scheduler","queue","state","circular","setState","sort","a","b","reset","PromiseAdapter","Deferred","reject","when","onFulfilled","onRejected","promises","promise","v","reason","Registry","store","jQuery","Zepto"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;QCiHgBA,Y,GAAAA,Y;;AA1KhB;;;;;;;;IAEqBC,S;;;;;;;wBACPC,I,EAAMC,I,EAAMC,G,EAAK;AAC3B,UAAID,KAAKE,OAAL,CAAa,GAAb,MAAsB,CAAC,CAA3B,EAA8B;AAC5B,YAAIC,QAAQH,KAAKI,KAAL,CAAW,GAAX,CAAZ;AACA,YAAIC,MAAMF,MAAMG,KAAN,EAAV;;AAEA,YAAI,CAACR,UAAUS,GAAV,CAAcR,IAAd,EAAoBM,GAApB,CAAL,EAA+B;AAC7B,iBAAOJ,GAAP;AACD;;AAED,eAAOH,UAAUU,GAAV,CAAcT,KAAKM,GAAL,CAAd,EAAyBF,MAAMM,IAAN,CAAW,GAAX,CAAzB,EAA0CR,GAA1C,CAAP;AACD;;AAED,aAAOH,UAAUS,GAAV,CAAcR,IAAd,EAAoBC,IAApB,IAA4BD,KAAKC,IAAL,CAA5B,GAAyCC,GAAhD;AACD;;;wBAEWF,I,EAAMC,I,EAAMU,K,EAAO;AAC7B,UAAIV,KAAKE,OAAL,CAAa,GAAb,MAAsB,CAAC,CAA3B,EAA8B;AAC5B,YAAIC,QAAQH,KAAKI,KAAL,CAAW,GAAX,CAAZ;AACA,YAAIC,MAAMF,MAAMG,KAAN,EAAV;;AAEA,YAAI,CAACR,UAAUS,GAAV,CAAcR,IAAd,EAAoBM,GAApB,CAAL,EAA+B;AAC7BN,eAAKM,GAAL,IAAY,EAAZ;AACD;;AAEDN,aAAKM,GAAL,IAAYP,UAAUa,GAAV,CAAcZ,KAAKM,GAAL,CAAd,EAAyBF,MAAMM,IAAN,CAAW,GAAX,CAAzB,EAA0CC,KAA1C,CAAZ;;AAEA,eAAOX,IAAP;AACD;;AAEDA,WAAKC,IAAL,IAAaU,KAAb;;AAEA,aAAOX,IAAP;AACD;;;2BAEcA,I,EAAMC,I,EAAM;AACzB,UAAIA,KAAKE,OAAL,CAAa,GAAb,MAAsB,CAAC,CAA3B,EAA8B;AAC5B,YAAIC,QAAQH,KAAKI,KAAL,CAAW,GAAX,CAAZ;AACA,YAAIC,MAAMF,MAAMG,KAAN,EAAV;;AAEA,YAAI,CAACR,UAAUS,GAAV,CAAcR,IAAd,EAAoBM,GAApB,CAAL,EAA+B;AAC7B,iBAAON,IAAP;AACD;;AAEDD,kBAAUc,MAAV,CAAiBb,KAAKM,GAAL,CAAjB,EAA4BF,MAAMM,IAAN,CAAW,GAAX,CAA5B;;AAEA,eAAOV,IAAP;AACD;;AAEDa,cAAOb,IAAP,EAAaC,IAAb;;AAEA,aAAOD,IAAP;AACD;;;kCAEqBc,G,EAAKC,O,EAAS;AAClC,UAAID,IAAIE,MAAR,EAAgB;AACd,YAAMC,QAAQH,IAAIX,OAAJ,CAAYY,OAAZ,CAAd;AACA,YAAIE,QAAQ,CAAC,CAAb,EAAgB;AACd,iBAAOH,IAAII,MAAJ,CAAWD,KAAX,EAAkB,CAAlB,CAAP;AACD;AACF;AACF;;;wBAEWjB,I,EAAMM,G,EAAK;AACrB,UAAIa,MAAMC,OAAN,CAAcpB,IAAd,CAAJ,EAAyB;AACvB,eAAO,OAAOA,KAAKM,GAAL,CAAP,KAAqB,WAA5B;AACD,OAFD,MAEO,IAAIP,UAAUsB,QAAV,CAAmBrB,IAAnB,CAAJ,EAA8B;AACnC,eAAOA,KAAKsB,cAAL,CAAoBhB,GAApB,CAAP;AACD;;AAED,aAAO,KAAP;AACD;;;2BAEciB,M,EAAQjB,G,EAAKK,K,EAA0B;AAAA,UAAnBa,UAAmB,uEAAN,IAAM;;AACpDC,aAAOC,cAAP,CAAsBH,MAAtB,EAA8BjB,GAA9B,EAAmC;AACjCK,eAAOA,KAD0B;AAEjCa,oBAAYA,UAFqB;AAGjCG,kBAAU,IAHuB;AAIjCC,sBAAc;AAJmB,OAAnC;AAMD;;;4BAEe5B,I,EAAM;AACpB,UAAM6B,WAAW,EAAjB;;AAEA,WAAK,IAAIC,CAAT,IAAc9B,IAAd,EAAoB;AAClB,YAAI,CAACA,KAAKsB,cAAL,CAAoBQ,CAApB,CAAL,EAA6B;;AAE7B,YAAI,QAAQ9B,KAAK8B,CAAL,CAAR,KAAoB,QAAxB,EAAkC;AAChC,cAAIC,aAAaC,cAAchC,KAAK8B,CAAL,CAAd,CAAjB;AACA,eAAK,IAAIG,CAAT,IAAcF,UAAd,EAA0B;AACxB,gBAAI,CAACA,WAAWT,cAAX,CAA0BW,CAA1B,CAAL,EAAmC;AACjC;AACD;;AAEDJ,qBAASC,IAAI,GAAJ,GAAUG,CAAnB,IAAwBF,WAAWE,CAAX,CAAxB;AACD;AACF,SATD,MASO;AACLJ,mBAASC,CAAT,IAAc9B,KAAK8B,CAAL,CAAd;AACD;AACF;;AAED,aAAOD,QAAP;AACD;;;6BAEgB7B,I,EAAM;AACrB,aAAO,QAAOA,IAAP,yCAAOA,IAAP,OAAgB,QAAhB,IAA4BA,SAAS,IAA5C;AACD;;;kCAEqBA,I,EAAM;AAC1B,aAAO,kBAAQkC,CAAR,CAAUC,aAAV,CAAwBnC,IAAxB,CAAP;AACD;;;6BAEgBuB,M,EAAQ;AACvB,aAAO,eAAca,IAAd,CAAmBb,OAAOc,QAAP,EAAnB;AAAP;AACD;;;+BAEkBC,M,EAAQ;AACzB,UAAMC,MAAM,CAACD,SAAS,EAAV,EAAcE,UAAd,CAAyB,CAAzB,CAAZ;AACA,aAAOD,QAAQ,GAAR,IAAeA,QAAQ,GAA9B;AACD;;;yBAEYE,M,EAAQC,M,EAAQ;AAC3B,aAAQ,UAAUC,GAAV,EAAe;AACrB,YAAMC,MAAMC,UAAU7B,MAAtB;AACA,YAAI4B,QAAQ,CAAZ,EAAe;AACb,iBAAOH,OAAOK,IAAP,CAAYJ,MAAZ,EAAoBC,GAApB,CAAP;AACD,SAFD,MAEO,IAAIC,QAAQ,CAAZ,EAAe;AACpB,iBAAOH,OAAOK,IAAP,CAAYJ,MAAZ,CAAP;AACD;;AAED,eAAOD,OAAOM,KAAP,CAAaL,MAAb,EAAqBG,SAArB,CAAP;AACD,OATD;AAUD;;;6BAEgBtB,M,EAAQ;AACvB,UAAI,CAACxB,UAAUsB,QAAV,CAAmBE,MAAnB,CAAL,EAAiC;AAC/B,eAAO,KAAP;AACD;;AAED,UAAIA,kBAAkB,kBAAQW,CAA1B,IAA+B,YAAYX,MAA/C,EAAuD;AACrD,eAAO,IAAP;AACD;;AAED,UAAI,WAAW,kBAAQW,CAAvB,EAA0B;AACxB,eAAO,kBAAQA,CAAR,CAAUc,KAAV,CAAgBC,GAAhB,CAAoB1B,MAApB,CAAP;AACD;;AAED,aAAO,KAAP;AACD;;;;;;kBArJkBxB,S;;;AAwJrB,SAASc,OAAT,CAAiBb,IAAjB,EAAuBM,GAAvB,EAA4B;AAC1B,MAAIa,MAAMC,OAAN,CAAcpB,IAAd,CAAJ,EAAyB;AACvB,QAAIA,KAAKgB,MAAT,EAAiB;AACfhB,WAAKkB,MAAL,CAAYZ,GAAZ,EAAiB,CAAjB;AACD;;AAED,WAAON,IAAP;AACD,GAND,MAMO,IAAID,UAAUsB,QAAV,CAAmBrB,IAAnB,CAAJ,EAA8B;AACnC,WAAOA,KAAKM,GAAL,CAAP;;AAEA,WAAON,IAAP;AACD;;AAED,SAAOA,IAAP;AACD;;AAEM,SAASF,YAAT,GAAyB,CAC/B,C;;;;;;;;;;;;;;;AC3KD;;;;AACA;;;;;;;;AAEA,IAAMoD,SAAS,SAAf;;IAEqBC,O;AACnB,qBAAqC;AAAA;;AAAA,QAAxBC,OAAwB,uEAAd,EAAc;AAAA,QAAVlB,CAAU,uEAAN,IAAM;;AAAA;;AACnC,QAAImB,KAAK,IAAT;AACAnB,QAAIA,KAAKiB,QAAQjB,CAAjB;;AAEA,QAAI,CAACA,CAAL,EAAQ;AACN,YAAM,IAAIoB,KAAJ,CAAU,+DAAV,CAAN;AACD;;AAED,QAAIF,QAAQG,QAAZ,EAAsB;AACpBF,WAAKD,QAAQC,EAAb;AACAD,cAAQC,EAAR,GAAa,IAAb;;AAEAnB,QAAEsB,QAAF,EAAYC,KAAZ,CAAkB,aAAK;AACrB,cAAKC,QAAL,CAAcL,EAAd,GAAmBA,EAAnB;AACA,cAAKM,MAAL,CAAYN,EAAZ;AACD,OAHD;AAID;;AAED,SAAKO,GAAL,GAAW,kBAAgB1B,CAAhB,CAAX;AACA,SAAK0B,GAAL,CAASC,IAAT,CAAc,IAAd,EAAoBT,OAApB;AACD;;;;2BAYcU,I,EAAoB;AAAA,UAAdV,OAAc,uEAAJ,EAAI;;AACjC,UAAMlB,IAAIiB,QAAQjB,CAAlB;;AAEA,UAAI,CAACA,CAAL,EAAQ;AACN,cAAM,IAAIoB,KAAJ,CAAU,+DAAV,CAAN;AACD;;AAED,UAAI,OAAOpB,EAAE6B,EAAT,KAAgB,WAApB,EAAiC;AAC/B7B,UAAE,MAAF;AACA,cAAM,IAAIoB,KAAJ,CAAU,2EAAV,CAAN;AACD;;AAEDpB,QAAE6B,EAAF,CAAKD,IAAL,IAAa,UAAUE,aAAV,EAAyB;AACpC,YAAMC,QAAQ/B,EAAE,KAAK,CAAL,CAAF,CAAd;;AAEA,YAAI,CAAC+B,MAAMjE,IAAN,CAAW8D,IAAX,CAAL,EAAuB;AACrBV,oBAAUlB,EAAEgC,MAAF,CAAS,IAAT,EAAe,EAAf,EAAmBd,OAAnB,EAA4BY,aAA5B,CAAV;AACAZ,kBAAQC,EAAR,GAAaY,KAAb;;AAEAA,gBAAMjE,IAAN,CAAW8D,IAAX,EAAiB,IAAIX,OAAJ,CAAYC,OAAZ,CAAjB;AACD;;AAED,eAAOa,MAAMjE,IAAN,CAAW8D,IAAX,CAAP;AACD,OAXD;AAYD;;;sBAlCYnD,K,EAAO;AAClBc,aAAOC,cAAP,CAAsByB,OAAtB,EAA+B,GAA/B,EAAoC;AAClCxC,eAAOA;AAD2B,OAApC;;AAIAwC,cAAQjB,CAAR,CAAUiC,KAAV,GAAmB,WAAWhB,QAAQjB,CAApB,GAAyB,OAAzB,GAAmC,QAArD;;AAEAiB,cAAQD,MAAR,CAAeA,MAAf;AACD;;;;;;kBA/BkBC,O;;;AA4DrBA,QAAQiB,SAAR,CAAkBC,cAAlB,GAAmClB,QAAQmB,aAAR,oBAAnC;AACAnB,QAAQoB,OAAR,GAAkB,cAAYA,OAA9B;;;;;;;;;;;;;ACjEO,IAAMC,gCAAY,OAAOC,MAAP,KAAkB,WAApC;AACA,IAAMC,kBAAKF,aAAaC,OAAOE,SAAP,CAAiBC,SAAjB,CAA2BC,WAA3B,EAAxB;AACA,IAAMC,sBAAOJ,MAAM,eAAetC,IAAf,CAAoBsC,EAApB,CAAnB;AACA,IAAMK,wBAAQL,MAAMA,GAAGvE,OAAH,CAAW,UAAX,IAAyB,CAA7C;AACA,IAAM6E,0BAASN,MAAMA,GAAGvE,OAAH,CAAW,OAAX,IAAsB,CAA3C;AACA,IAAM8E,gCAAYP,MAAMA,GAAGvE,OAAH,CAAW,SAAX,IAAwB,CAAhD;AACA,IAAM+E,wBAAQR,MAAM,uBAAuBtC,IAAvB,CAA4BsC,EAA5B,CAApB,C;;;;;;;;;;;;;;;;;QC0bSS,K,GAAAA,K;QAWAC,W,GAAAA,W;;AA5chB;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;AAOA,IAAMC,iBAAiB;AACrBrF,QAAM;AADe,CAAvB;;AAIA,IAAIsF,MAAM,CAAV;;IAEqBC,W;AACnB,uBAAarD,CAAb,EAAgB;AAAA;;AACd,SAAKsD,EAAL,GAAU,EAAEF,GAAZ;AACA,SAAKpD,CAAL,GAASA,CAAT;AACA,SAAKuD,OAAL,GAAe,IAAf;AACA,SAAKC,QAAL,GAAgB,EAAhB;AACA,SAAKC,cAAL,GAAsB,IAAtB;AACA,SAAKC,YAAL,GAAoB,EAApB;AACA,SAAKC,QAAL,GAAgB,EAAhB;;AAEA,SAAKC,UAAL,GAAkB,KAAlB;;AAEA,SAAKC,QAAL,GAAgB,uBAAa,IAAb,EAAmB;AACjC,yBAAmB,8BAAoB,IAApB,CADc;AAEjC,mBAAa,wBAAc,IAAd,CAFoB;AAGjC,eAAS,qBAHwB;AAIjC,eAAS,oBAAiB,IAAjB;AAJwB,KAAnB,CAAhB;AAMD;;;;yBAEIC,Q,EAAwB;AAAA,UAAd5C,OAAc,uEAAJ,EAAI;;AAC3B,WAAKA,OAAL,GAAe,KAAKlB,CAAL,CAAOgC,MAAP,CAAc,EAAd,EAAkBmB,cAAlB,EAAkCjC,OAAlC,CAAf;AACA,WAAKpD,IAAL,GAAYoD,QAAQpD,IAApB;AACA,WAAKgG,QAAL,GAAgBA,QAAhB;;AAGAA,eAAS9D,CAAT,GAAa,KAAKA,CAAlB;AACA8D,eAASC,KAAT,GAAiB,KAAK7C,OAAL,CAAapD,IAA9B;AACAgG,eAAStC,QAAT,GAAoB,KAAKN,OAAzB;AACAgC,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,MAA5B;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,OAA5B;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,OAA5B,EAAqC,IAArC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,MAA5B,EAAoC,IAApC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,IAA5B,EAAkC,IAAlC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,OAA5B,EAAqC,IAArC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,MAA5B,EAAoC,IAApC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,MAA5B,EAAoC,IAApC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,MAA5B,EAAoC,IAApC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,OAA5B,EAAqC,IAArC;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,UAA5B;AACAZ,kBAAYY,QAAZ,EAAsB,IAAtB,EAA4B,aAA5B,EAA2C,IAA3C;AACAZ,kBAAYY,QAAZ,EAAsB,KAAKE,KAA3B,EAAkC,QAAlC,EAA4C,IAA5C;AACAd,kBAAYY,QAAZ,EAAsB,KAAKE,KAA3B,EAAkC,KAAlC,EAAyC,IAAzC;AACAd,kBAAYY,QAAZ,EAAsB,KAAKE,KAA3B,EAAkC,MAAlC,EAA0C,IAA1C;AACAd,kBAAYY,QAAZ,EAAsB,KAAKE,KAA3B,EAAkC,MAAlC,EAA0C,IAA1C;AACAd,kBAAYY,QAAZ,EAAsB,KAAKG,eAA3B,EAA4C,KAA5C,EAAmD,IAAnD;AACAf,kBAAYY,QAAZ,EAAsB,KAAKG,eAA3B,EAA4C,QAA5C,EAAsD,IAAtD;;AAEA,WAAKC,IAAL,CAAU,cAAV;;AAEAC,gBAAU,IAAV;;AAGA,WAAKD,IAAL,CAAU,SAAV;;AAEA,UAAIhD,QAAQC,EAAZ,EAAgB;AACd,aAAKiD,KAAL,CAAWlD,QAAQC,EAAnB;AACD;AAGF;;;0BAEMA,E,EAAI;AACT,UAAI,KAAKyC,UAAT,EAAqB;AACnB,aAAKS,KAAL,CAAWC,IAAX,CAAgB,oCAAhB;AACA;AACD;;AAED,WAAKJ,IAAL,CAAU,aAAV;;AAEA,UAAMK,MAAM,oBAAUC,QAAV,CAAmBrD,EAAnB,IAAyBA,EAAzB,GAA8B,KAAKnB,CAAL,CAAOmB,EAAP,CAA1C;;AAEA,UAAIoD,IAAIzF,MAAJ,KAAe,CAAnB,EAAsB;AACpB,YAAI,IAAJ,EAA4C;AAC1C,cAAMuB,MAAMkE,IAAIE,QAAJ,GAAeF,IAAIE,QAAnB,GAA8BF,IAAI,CAAJ,IAAS,EAAnD;AACA,eAAKF,KAAL,CAAWC,IAAX,oBAAiCjE,GAAjC;AACD;;AAED;AACD;;AAED,WAAKyD,QAAL,CAAcS,GAAd,GAAoB,KAAKA,GAAzB;;AAEA,WAAKX,UAAL,GAAkB,IAAlB;;AAEA,WAAKM,IAAL,CAAU,WAAV;;AAEA,WAAKA,IAAL,CAAU,SAAV;;AAEA,WAAKX,OAAL,GAAe,sBAAY,IAAZ,EAAkB,YAAY;AAC3C,aAAK7B,GAAL,CAAS8B,QAAT,CAAkBkB,GAAlB,CAAsB;AAAA,iBAAWnB,QAAQoB,MAAR,EAAX;AAAA,SAAtB;AACD,OAFc,0BAAf;;AAIA,WAAKC,WAAL;AACD;;;kCAEc;AACb,UAAI,KAAKrB,OAAT,EAAkB;AAChB,aAAKA,OAAL,CAAaoB,MAAb;AACD;AACF;;;yBAEK/C,I,EAAM;AACV,UAAI,KAAKV,OAAL,CAAa9B,cAAb,CAA4BwC,IAA5B,KAAqC,OAAO,KAAKV,OAAL,CAAaU,IAAb,CAAP,KAA8B,UAAvE,EAAmF;AACjF,aAAKV,OAAL,CAAaU,IAAb,EAAmBhB,IAAnB,CAAwB,KAAKkD,QAA7B;AACD;AACF;;;yBAEKW,Q,EAAUrG,G,EAAKyG,Q,EAAU;AAC7B,UAAMC,WAAW,KAAKC,IAAL,CAAUN,QAAV,CAAjB;;AAGA,UAAI,OAAOI,QAAP,KAAoB,QAAxB,EAAkC;AAChC,YAAMjD,OAAOiD,QAAb;AACAA,mBAAW,kBAACC,QAAD,EAAWrG,KAAX,EAAqB;AAC9B,kBAAQmD,IAAR;AACE,iBAAK,OAAL;AACEkD,uBAASE,IAAT,CAAcvG,KAAd;AACA;;AAEF,iBAAK,OAAL;AACEqG,uBAASG,IAAT,CAAcxG,KAAd;AACA;;AAEF,iBAAK,QAAL;AACE,kBAAI,eAAWyG,aAAX,CAAyBJ,QAAzB,CAAJ,EAAwC;AACtC,+BAAWH,MAAX,CAAkBG,QAAlB;AACD;AACD;AACF;AACEA,uBAASK,IAAT,CAAcvD,IAAd,EAAoBnD,KAApB;AAfJ;AAiBD,SAlBD;AAmBD;;AAED,WAAK2G,KAAL,CAAWhH,GAAX,EAAgB,SAASiH,MAAT,CAAiB5G,KAAjB,EAAwB6G,QAAxB,EAAkCC,IAAlC,EAAwC;AACtDV,iBAASjE,IAAT,CAAc,KAAKkD,QAAnB,EAA6BgB,QAA7B,EAAuCrG,KAAvC,EAA8C6G,QAA9C,EAAwDC,IAAxD;AACD,OAFD;;AAIA,aAAO,IAAP;AACD;;;uBAEGd,Q,EAAUe,S,EAAWX,Q,EAA4B;AAAA,UAAlBY,QAAkB,uEAAP,KAAO;;AACnD,UAAMX,WAAW,KAAKC,IAAL,CAAUN,QAAV,CAAjB;AACA,UAAIiB,OAAO,IAAX;;AAEA,UAAMC,UAAU,SAAVA,OAAU,CAAU3B,KAAV,EAAiB;AAC/Ba,iBAASjE,IAAT,CAAc8E,KAAK5B,QAAnB,EAA6B4B,KAAK1F,CAAL,CAAO,IAAP,CAA7B,EAA2CgE,KAA3C;AACD,OAFD;;AAIA,UAAIyB,QAAJ,EAAc;AACZ,aAAKlB,GAAL,CAASqB,EAAT,CAAYJ,SAAZ,EAAuBf,QAAvB,EAAiCkB,OAAjC;AACD,OAFD,MAEO;AACLb,iBAASc,EAAT,CAAYJ,SAAZ,EAAuBG,OAAvB;AACD;;AAED,aAAO,IAAP;AACD;;;0BAEMlB,Q,EAAUrG,G,EAAuB;AAAA,UAAlBqH,QAAkB,uEAAP,KAAO;;AACtC,UAAME,UAAU,SAAVA,OAAU,CAAUb,QAAV,EAAoBd,KAApB,EAA2B;AACzC,YAAIvF,cAAJ;AACA,gBAAQqG,SAASK,IAAT,CAAc,MAAd,CAAR;AACE,eAAK,OAAL;AACE1G,oBAAQqG,SAAS,CAAT,EAAYrG,KAApB;AACA;AACF;AACEA,oBAAQqG,SAASe,GAAT,EAAR;AALJ;;AAQA,eAAO,oBAAUnH,GAAV,CAAc,KAAKqF,KAAnB,EAA0B3F,GAA1B,EAA+BK,KAA/B,CAAP;AACD,OAXD;;AAaA,UAAMqG,WAAW,KAAKC,IAAL,CAAUN,QAAV,CAAjB;;AAEA,UAAI,kBAAyB,aAAzB,IAA0C,CAAC,eAAWS,aAAX,CAAyBJ,QAAzB,CAA/C,EAAmF;AACjF,aAAKT,KAAL,CAAWC,IAAX,CACE,sGACAQ,SAAS,CAAT,EAAYgB,SAAZ,CAAsBC,MAAtB,CAA6B,CAA7B,EAAgC,EAAhC,CADA,GACsC,KAFxC;AAID;;AAED,WAAKX,KAAL,CAAW,YAAY;AACrB,YAAM3G,QAAQ,oBAAUF,GAAV,CAAc,KAAKwF,KAAnB,EAA0B3F,GAA1B,CAAd;AACA,YAAI0G,SAASe,GAAT,OAAmBpH,KAAvB,EAA8B;AAC5B,yBAAWkG,MAAX,CAAkBG,QAAlB,EAA4BrG,KAA5B;AACD;AACF,OALD;;AAOA,WAAKmH,EAAL,CAAQnB,QAAR,EAAkB,QAAlB,EAA4BkB,OAA5B,EAAqCF,QAArC;;AAEA,UAAIX,SAAS,CAAT,EAAYkB,OAAZ,KAAwB,QAA5B,EAAsC;AACpC,aAAKJ,EAAL,CAAQnB,QAAR,EAAkB,OAAlB,EAA2BkB,OAA3B,EAAoCF,QAApC;AACD;;AAED,aAAO,IAAP;AACD;;;yBAEKhB,Q,EAAUrG,G,EAAmC;AAAA;;AAAA,UAA9B6H,MAA8B,uEAArB,IAAqB;AAAA,UAAfC,MAAe,uEAAN,IAAM;;AACjD,UAAMpB,WAAW,KAAKC,IAAL,CAAUN,QAAV,CAAjB;;AAEA,UAAIwB,WAAW,IAAf,EAAqB;AACnBC,iBAASA,UAAUD,MAAnB;AACD;;AAED,UAAME,gBAAiB,SAAjBA,aAAiB,CAACR,OAAD,EAAa;AAClC,eAAQ,YAAM;AACZ,cAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,gBAAI,kBAAyB,aAAzB,IAA0C,OAAOb,SAASa,OAAT,CAAP,KAA6B,UAA3E,EAAuF;AACrF,oBAAKtB,KAAL,CAAWA,KAAX,cAA4BsB,OAA5B,wBAAsD1E,QAAQjB,CAAR,CAAUiC,KAAhE;AACD;;AAED,mBAAO;AAAA,qBAAM6C,SAASa,OAAT,GAAN;AAAA,aAAP;AACD,WAND,MAMO,IAAI,OAAOA,OAAP,KAAmB,UAAvB,EAAmC;AACxC,mBAAO,UAAClH,KAAD,EAAQ6G,QAAR,EAAkBC,IAAlB;AAAA,qBAA2BI,QAAQ/E,IAAR,CAAa,MAAKkD,QAAlB,EAA4BgB,QAA5B,EAAsCrG,KAAtC,EAA6C6G,QAA7C,EAAuDC,IAAvD,CAA3B;AAAA,aAAP;AACD;AACF,SAVM,EAAP;AAWD,OAZD;;AAcAU,eAASE,cAAcF,UAAU,MAAxB,CAAT;AACAC,eAASC,cAAcD,UAAU,MAAxB,CAAT;;AAEA,UAAMP,UAAU,SAAVA,OAAU,CAAUlH,KAAV,EAAiB6G,QAAjB,EAA2BC,IAA3B,EAAiC;AAC/C,YAAMa,YAAa3H,SAAS,IAAT,IAAiBA,SAAS,CAA7C;;AAEA,YAAI2H,cAAcd,YAAY,IAAZ,IAAoBA,YAAY,CAA9C,CAAJ,EAAsD;AACpD,cAAIc,SAAJ,EAAe;AACbH,mBAAOxH,KAAP,EAAc6G,QAAd,EAAwBC,IAAxB;AACD,WAFD,MAEO;AACLW,mBAAOzH,KAAP,EAAc6G,QAAd,EAAwBC,IAAxB;AACD;AACF;AACF,OAVD;;AAYA,WAAKH,KAAL,CAAWhH,GAAX,EAAgBuH,OAAhB;;AAEA,aAAO,IAAP;AACD;;;yBAEKlB,Q,EAAUrG,G,EAAmC;AAAA,UAA9B6H,MAA8B,uEAArB,IAAqB;AAAA,UAAfC,MAAe,uEAAN,IAAM;;AACjD,UAAMG,SAAU,YAAY;AAC1B,YAAI,OAAOjI,GAAP,KAAe,UAAnB,EAA+B;AAC7B,iBAAO,YAAY;AACjB,mBAAOA,IAAIwC,IAAJ,CAAS,IAAT,CAAP;AACD,WAFD;AAGD,SAJD,MAIO;AACL,iBAAO,YAAY;AACjB,mBAAO,KAAKxC,GAAL,CAAP;AACD,WAFD;AAGD;AACF,OAVc,CAUZwC,IAVY,CAUP,IAVO,CAAf;;AAYA,UAAM0F,aAAa,SAAbA,UAAa,GAAY;AAC7B,YAAM7H,QAAQ4H,OAAOzF,IAAP,CAAY,IAAZ,CAAd;AACA,eAAOnC,SAAS,IAAT,IAAiBA,SAAS,CAAjC;AACD,OAHD;;AAKA,WAAK8H,IAAL,CAAU9B,QAAV,EAAoB6B,UAApB,EAAgCL,MAAhC,EAAwCC,MAAxC;AACD;;;yBAEKzB,Q,EAAUkB,O,EAAS;AACvB,UAAMb,WAAW,KAAKC,IAAL,CAAUN,QAAV,CAAjB;AACA,UAAMiB,OAAO,IAAb;AACA,UAAMc,UAAU;AACdC,iBAAS,mBAAY;AACnBd,kBAAQ/E,IAAR,CAAa,IAAb,EAAmBkE,QAAnB,EAA6B,IAA7B;AACD;AAHa,OAAhB;;AAMA,OAAC,MAAD,EAAS,IAAT,EAAe,OAAf,EAAwB,MAAxB,EAAgC4B,OAAhC,CAAwC,UAAUnG,MAAV,EAAkB;AACxDiG,gBAAQ,MAAMjG,MAAd,IAAwB,YAAY;AAClCmF,eAAKnF,MAAL,eAAauE,QAAb,oCAA0BnE,SAA1B;AACA,iBAAO,IAAP;AACD,SAHD;AAID,OALD;;AAOA6F,cAAQC,OAAR,CAAgB3B,QAAhB;;AAEA,aAAO,IAAP;AACD;;;0BAEM/G,I,EAAM8G,Q,EAAwB;AAAA,UAAd3D,OAAc,uEAAJ,EAAI;;AACnCA,cAAQyF,IAAR,GAAe,IAAf;;AAEA,UAAMpD,UAAU,sBAAY,IAAZ,EAAkBxF,IAAlB,EAAwB8G,QAAxB,EAAkC3D,OAAlC,CAAhB;AACA,WAAKsC,QAAL,CAAcoD,IAAd,CAAmBrD,OAAnB;;AAEA,UAAIrC,QAAQ2F,SAAZ,EAAuB;AACrBhC,iBAASjE,IAAT,CAAc,KAAKkD,QAAnB,EAA6BP,QAAQhF,GAAR,EAA7B;AACD;;AAED,aAAQ,SAASuI,OAAT,GAAoB;AAC1BvD,gBAAQwD,QAAR;AACD,OAFD;AAGD;;;yBAEKtC,Q,EAA2B;AAAA,UAAjBuC,OAAiB,uEAAP,KAAO;;AAC/B,UAAI,QAAOvC,QAAP,yCAAOA,QAAP,OAAoB,QAApB,IAAgC,CAAC,oBAAUD,QAAV,CAAmBC,QAAnB,CAArC,EAAmE;AACjE,eAAO,KAAKzE,CAAL,CAAOyE,QAAP,CAAP;AACD;;AAED,UAAIA,aAAa,QAAjB,EAA2B;AACzB,YAAI,CAAC,KAAKd,QAAL,CAAcvE,cAAd,CAA6BqF,QAA7B,CAAD,IAA2CuC,OAA/C,EAAwD;AACtD,eAAKrD,QAAL,CAAcc,QAAd,IAA0B,KAAKF,GAAL,CAASQ,IAAT,CAAcN,QAAd,CAA1B;AACD;;AAED,eAAO,KAAKd,QAAL,CAAcc,QAAd,CAAP;AACD;;AAED,aAAO,KAAKzE,CAAL,CAAOyE,QAAP,CAAP;AACD;;;6BAESI,Q,EAAU;AAClB,aAAO,gBAAUoC,QAAV,CAAmBpC,QAAnB,CAAP;AACD;;;0BAEMc,O,EAAS;AACd,aAAO,IAAItC,YAAYhB,OAAhB,CAAwB,mBAAW;AACxCgB,oBAAYhB,OAAZ,CAAoB6E,OAApB,GACGC,IADH,CACQxB,OADR,EAEGwB,IAFH,CAEQ,UAAC1I,KAAD;AAAA,iBAAWyI,QAAQzI,KAAR,CAAX;AAAA,SAFR;AAGD,OAJM,CAAP;AAKD;;;8BAEU8E,O,EAAS;AAClB,UAAI,KAAKE,cAAT,EAAyB;AACvB,aAAKC,YAAL,CAAkBkD,IAAlB,CAAuB,KAAKnD,cAA5B;AACD;;AAED,WAAKA,cAAL,GAAsBF,OAAtB;AACD;;;+BAEW;AACV,WAAKE,cAAL,GAAsB,KAAKC,YAAL,CAAkB0D,GAAlB,EAAtB;AACD;;;;;;kBA9UkB/D,W;;;AAiVrB,SAASc,SAAT,CAAoBzC,GAApB,EAAyB;;AAEvB2F,WAAS3F,GAAT,EAAcA,IAAIR,OAAJ,CAAYpD,IAA1B;;AAEA,MAAI4D,IAAIR,OAAJ,CAAYoG,OAAhB,EAAyB;AACvBC,gBAAY7F,GAAZ,EAAiBA,IAAIR,OAAJ,CAAYoG,OAA7B;AACD;;AAED,MAAI5F,IAAIR,OAAJ,CAAYsG,QAAhB,EAA0B;AACxBC,iBAAa/F,GAAb,EAAkBA,IAAIR,OAAJ,CAAYsG,QAA9B;AACD;;AAED,MAAI9F,IAAIR,OAAJ,CAAYkE,KAAhB,EAAuB;AACrBsC,iBAAahG,GAAb,EAAkBA,IAAIR,OAAJ,CAAYkE,KAA9B;AACD;AACF;;AAED,SAASiC,QAAT,CAAmB3F,GAAnB,EAAwB5D,IAAxB,EAA8B;;AAE5B,OAAK,IAAIM,GAAT,IAAgBN,IAAhB,EAAsB;AACpB,QAAI,CAAC,oBAAU6J,UAAV,CAAqBvJ,GAArB,CAAL,EAAgC;AAC9B6E,YAAMvB,IAAIoC,QAAV,EAAoBhG,IAApB,EAA0BM,GAA1B;AACD;AACF;;AAEDsD,MAAIuC,eAAJ,CAAoB2D,MAApB,CAA2B9J,IAA3B;AACD;;AAED,SAASyJ,WAAT,CAAsB7F,GAAtB,EAA2B4F,OAA3B,EAAoC;AAClC,OAAK,IAAIlJ,GAAT,IAAgBkJ,OAAhB,EAAyB;AACvB,QAAM/G,SAAS+G,QAAQlJ,GAAR,CAAf;AACA,QAAI,CAACsD,IAAIR,OAAJ,CAAYpD,IAAZ,CAAiBM,GAAjB,CAAD,IAA0B,OAAOmC,MAAP,KAAkB,UAAhD,EAA4D;;AAE1DmB,UAAIoC,QAAJ,CAAa1F,GAAb,IAAoB,oBAAUyJ,IAAV,CAAetH,MAAf,EAAuBmB,IAAIoC,QAA3B,CAApB;AACD;AACF;AACF;;AAED,SAAS4D,YAAT,CAAuBhG,GAAvB,EAA4BoG,OAA5B,EAAqC;AACnC,OAAK,IAAI1J,GAAT,IAAgB0J,OAAhB,EAAyB;AACvB,QAAInC,UAAUmC,QAAQ1J,GAAR,CAAd;AACA,QAAI8C,gBAAJ;;AAEA,QAAI,oBAAUjB,aAAV,CAAwB0F,OAAxB,CAAJ,EAAsC;AACpCzE,gBAAUyE,OAAV;AACAA,gBAAUA,QAAQA,OAAlB;AACD;;AAED,QAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/BA,gBAAUjE,IAAIiE,OAAJ,CAAV;AACD;;AAEDjE,QAAI0D,KAAJ,CAAUhH,GAAV,EAAeuH,OAAf,EAAwBzE,OAAxB;AACD;AACF;;AAED,SAASuG,YAAT,CAAuB/F,GAAvB,EAA4B8F,QAA5B,EAAsC;AAAA,6BAC3BpJ,GAD2B;AAElC,QAAMuH,UAAU6B,SAASpJ,GAAT,CAAhB;AACA,QAAI2J,gCAAJ;AACA,QAAI1B,eAAJ;AACA,QAAI2B,cAAJ;;AAEA3B,aAAS,OAAOV,OAAP,KAAmB,UAAnB,GAAgCA,OAAhC,GAA0CA,QAAQpH,GAA3D;AACA8H,aAAS,oBAAUwB,IAAV,CAAexB,MAAf,EAAuB3E,IAAIoC,QAA3B,CAAT;;AAEA,QAAMP,UAAU,sBAAY7B,GAAZ,EAAiBtD,GAAjB,EAAsBiI,MAAtB,EAA8B,EAAC4B,MAAM,IAAP,EAA9B,CAAhB;;AAEA,QAAI,CAACvG,IAAItC,cAAJ,CAAmBhB,GAAnB,CAAL,EAA8B;;AAE5B,UAAI,OAAOuH,OAAP,KAAmB,UAAvB,EAAmC;AACjCoC,iBAASpC,QAAQjH,GAAjB;AACAsJ,gBAASrC,QAAQqC,KAAjB;AACA3B,iBAAS2B,UAAU,KAAV,6BAAiC,YAAY;AACpD,iBAAOzE,QAAQ2E,cAAR,EAAP;AACD,SAFD;AAGD;;AAEDH,eAAS,oBAAUF,IAAV,CAAeE,MAAf,EAAuBrG,IAAIoC,QAA3B,CAAT;;AAEAvE,aAAOC,cAAP,CAAsBkC,IAAI5D,IAA1B,EAAgCM,GAAhC,EAAqC;AACnCkB,oBAAY,IADuB;AAEnCI,sBAAc,IAFqB;AAGnCnB,aAAK8H,MAH8B;AAInC3H,aAAKqJ;AAJ8B,OAArC;AAMD;AA9BiC;;AACpC,OAAK,IAAI3J,GAAT,IAAgBoJ,QAAhB,EAA0B;AAAA,UAAjBpJ,GAAiB;AA8BzB;AACF;;AAEM,SAAS6E,KAAT,CAAgBzC,MAAhB,EAAwB2H,MAAxB,EAAgC/J,GAAhC,EAAqC;AAC1CmB,SAAOC,cAAP,CAAsBgB,MAAtB,EAA8BpC,GAA9B,EAAmC;AACjCG,SAAK,SAAS6J,WAAT,GAAwB;AAC3B,aAAOD,OAAO/J,GAAP,CAAP;AACD,KAHgC;AAIjCM,SAAK,SAAS2J,WAAT,CAAsB5J,KAAtB,EAA6B;AAChC0J,aAAO/J,GAAP,IAAcK,KAAd;AACD;AANgC,GAAnC;AAQD;;AAEM,SAASyE,WAAT,CAAsB1C,MAAtB,EAA8B2H,MAA9B,EAAsC/J,GAAtC,EAA0D;AAAA,MAAfkK,KAAe,uEAAP,KAAO;;AAC/D,MAAMC,aAAa,MAAMnK,GAAzB;AACAoC,SAAO+H,UAAP,IAAqB,YAAmB;AACtC,QAAMC,IAAIL,OAAO/J,GAAP,0BAAV;;AAEA,WAAOkK,QAAQ9H,MAAR,GAAiBgI,CAAxB;AACD,GAJD;AAKD;;AAEDnF,YAAYhB,OAAZ,qB;;;;;;;;;;;;;ACrdA;;;;AAEA;;AACA;;;;;;AAEA,IAAMoG,YAAY;AAChBC,WAAS,KADO;AAEhBC,SAAO,EAFS;AAGhBhD,WAAS,IAHO;AAIhBsB,YAAU,kBAAUpC,QAAV,EAAoBrE,MAApB,EAA4BkB,GAA5B,EAAiC;AACzC,QAAMiE,UAAU,KAAKiD,UAAL,EAAhB;;AAEA,QAAIC,iBAAJ;AACA,SAAKF,KAAL,CAAW/B,IAAX,CAAgB,YAAM;AACpB,UAAI/B,QAAJ,EAAc;AACZA,iBAASjE,IAAT,CAAcJ,MAAd;AACD;;AAED,UAAIqI,QAAJ,EAAc;AACZA,iBAASrI,MAAT;AACD;AACF,KARD;;AAUA,QAAI,CAAC,KAAKkI,OAAV,EAAmB;AACjB,WAAKA,OAAL,GAAe,IAAf;;AAEA,UAAIhH,GAAJ,EAAS;AACPA,YAAIwC,IAAJ,CAAS,cAAT;AACD;;AAEDyB;AACD;;AAED,QAAI,CAACd,QAAD,IAAa,OAAOxC,OAAP,KAAmB,WAApC,EAAiD;AAC/C,aAAO,cAAYA,OAAZ,CAAoB,mBAAW;AACpCwG,mBAAW3B,OAAX;AACD,OAFM,CAAP;AAGD;AACF,GAjCe;AAkChBT,WAAS,mBAAY;AACnBgC,cAAUC,OAAV,GAAoB,KAApB;AACA,QAAMC,QAAQF,UAAUE,KAAV,CAAgBG,KAAhB,CAAsB,CAAtB,CAAd;AACAL,cAAUE,KAAV,CAAgB7J,MAAhB,GAAyB,CAAzB;;AAEA6J,UAAMjC,OAAN,CAAc;AAAA,aAAQqC,MAAR;AAAA,KAAd;AACD,GAxCe;;AA4ChBH,cAAY,sBAAY;AAAA;;AACtB,QAAI,OAAO,KAAKjD,OAAZ,KAAwB,UAA5B,EAAwC;;AAQtC,UAAI,OAAOtD,OAAP,KAAmB,WAAnB,IAAkC,oBAAU2G,QAAV,CAAmB3G,OAAnB,CAAtC,EAAmE;AACjE,YAAM4G,IAAI5G,QAAQ6E,OAAR,EAAV;AACA,aAAKvB,OAAL,GAAe,YAAM;AACnBsD,YAAE9B,IAAF,CAAO,MAAKV,OAAZ,EAAqByC,KAArB,CAA2B;AAAA,mBAAOC,QAAQ9E,KAAR,CAAc+E,GAAd,CAAP;AAAA,WAA3B;;AAOA,kCAAW;AACTC;AACD;AACF,SAXD;AAYD,OAdD,MAcO,IAAI,OAAOC,gBAAP,KAA4B,WAA5B,KACP,oBAAUN,QAAV,CAAmBM,gBAAnB,KAEAA,iBAAiBnJ,QAAjB,OAAgC,sCAHzB,CAAJ,EAIF;;AAGH,YAAIoJ,UAAU,CAAd;AACA,YAAMC,WAAW,IAAIF,gBAAJ,CAAqB,KAAK7C,OAA1B,CAAjB;AACA,YAAMgD,WAAWnI,SAASoI,cAAT,CAAwBC,OAAOJ,OAAP,CAAxB,CAAjB;AACAC,iBAASI,OAAT,CAAiBH,QAAjB,EAA2B;AACzBI,yBAAe;AADU,SAA3B;AAGA,aAAKlE,OAAL,GAAe,YAAM;AACnB4D,oBAAU,CAACA,UAAU,CAAX,IAAgB,CAA1B;AACAE,mBAAS3L,IAAT,GAAgB6L,OAAOJ,OAAP,CAAhB;AACD,SAHD;AAID,OAjBM,MAiBA;;AAGL,aAAK5D,OAAL,GAAe,YAAM;AACnB0D,qBAAW,MAAK5C,OAAhB,EAAyB,CAAzB;AACD,SAFD;AAGD;AACF;;AAED,WAAO,KAAKd,OAAZ;AACD;AA9Fe,CAAlB;;kBAiGe8C,S;;;;;;;;;;;;;;;;ACvGf;;;;;;;;AAEA,IAAIrF,MAAM,CAAV;;AAEA,IAAMD,iBAAiB;AACrB2G,QAAM,KADe;AAErBnD,QAAM,KAFe;AAGrBoD,QAAM,KAHe;AAIrBvC,YAAU,KAJW;AAKrBwC,YAAU;AALW,CAAvB;;IAQqBC,O;AACnB,mBAAavI,GAAb,EAAkB3D,IAAlB,EAAwB8G,QAAxB,EAAgD;AAAA,QAAd3D,OAAc,uEAAJ,EAAI;;AAAA;;AAC9C,SAAKA,OAAL,GAAeQ,IAAI1B,CAAJ,CAAMgC,MAAN,CAAa,EAAb,EAAiBmB,cAAjB,EAAiCjC,OAAjC,CAAf;;AAEA,SAAKoC,EAAL,GAAY,EAAEF,GAAd;AACA,SAAKrF,IAAL,GAAYA,IAAZ;AACA,SAAK8G,QAAL,GAAgBA,QAAhB;AACA,SAAKnD,GAAL,GAAWA,GAAX;AACA,SAAKwI,MAAL,GAAc,IAAd;AACA,SAAK3E,IAAL,GAAY,IAAZ;AACA,SAAKuE,IAAL,GAAY,KAAK5I,OAAL,CAAa4I,IAAzB;AACA,SAAKnD,IAAL,GAAY,KAAKzF,OAAL,CAAayF,IAAzB;AACA,SAAKoD,IAAL,GAAY,KAAK7I,OAAL,CAAa6I,IAAzB;AACA,SAAKvC,QAAL,GAAgB,KAAKtG,OAAL,CAAasG,QAA7B;AACA,SAAKwC,QAAL,GAAgB,KAAK9I,OAAL,CAAa8I,QAA7B;AACA,SAAKG,UAAL,GAAkB,QAAyCpM,OAAO,EAAhD,GAAqD,EAAvE;AACA,SAAKqM,aAAL,GAAqB,EAArB;AACA,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,gBAAL,GAAwB,EAAxB;AACA,SAAKC,cAAL,GAAsB,EAAtB;;AAEA,QAAI,OAAO,KAAKxM,IAAZ,KAAqB,UAAzB,EAAqC;AACnC,WAAKsI,MAAL,GAAc,KAAKtI,IAAnB;AACD,KAFD,MAEO;AACL,WAAKsI,MAAL,GAAc,UAAU5H,KAAV,EAAiB;AAC7B,eAAO,oBAAUF,GAAV,CAAcE,KAAd,EAAqBV,IAArB,CAAP;AACD,OAFD;AAGD;AAGF;;;;0BAEM;AACL,WAAK2D,GAAL,CAAS8I,SAAT,CAAmB,IAAnB;;AAEA,UAAI/L,cAAJ;;AAEAA,cAAQ,KAAK4H,MAAL,CAAYzF,IAAZ,CAAiB,KAAKc,GAAL,CAASoC,QAA1B,EAAoC,KAAKpC,GAAL,CAAS5D,IAA7C,CAAR;;AAIA,WAAK4D,GAAL,CAAS+I,QAAT;;AAEA,WAAKC,gBAAL;;AAEA,aAAOjM,KAAP;AACD;;;6BAEoB;AAAA,UAAb8G,IAAa,uEAAN,IAAM;;AACnB,WAAKA,IAAL,GAAYA,IAAZ;;AAEA,UAAI,KAAKiC,QAAT,EAAmB;AACjB,aAAKwC,QAAL,GAAgB,IAAhB;AACD,OAFD,MAEO,IAAI,KAAKD,IAAT,EAAe;AACpB,aAAKY,GAAL;AACD,OAFM,MAEA;AACL,aAAKjJ,GAAL,CAASkJ,SAAT,CAAmBC,cAAnB,CAAkC,IAAlC;AACD;AACF;;;0BAEM;AACL,UAAI,KAAKX,MAAT,EAAiB;AACf,YAAMzL,QAAQ,KAAKF,GAAL,EAAd;;AAEA,YAAIE,UAAU,KAAKA,KAAf,IAAwB,KAAKqL,IAA7B,IAAqC,oBAAU3K,QAAV,CAAmBV,KAAnB,CAAzC,EAAoE;AAClE,cAAM6G,WAAW,KAAK7G,KAAtB;AACA,eAAKA,KAAL,GAAaA,KAAb;;AAEA,eAAKoG,QAAL,CAAcjE,IAAd,CAAmB,KAAKc,GAAL,CAASoC,QAA5B,EAAsCrF,KAAtC,EAA6C6G,QAA7C,EAAuD,KAAKC,IAA5D;AACD;AACF;;AAED,WAAKA,IAAL,GAAY,IAAZ;AACD;;;qCAEiB;AAChB,UAAI,KAAKuF,KAAT,EAAgB;AACd,aAAKvM,GAAL;AACA,aAAKuM,KAAL,GAAa,KAAb;AACD;;AAGD,UAAI,KAAKpJ,GAAL,CAAS+B,cAAb,EAA6B;AAC3B,aAAK,IAAIsH,CAAT,IAAc,KAAKxH,OAAL,CAAa8G,WAA3B,EAAwC;AACtC,eAAK3I,GAAL,CAAS+B,cAAT,CAAwBuH,aAAxB,CAAsC,KAAKX,WAAL,CAAiBU,CAAjB,CAAtC;AACD;AACF;;AAED,aAAO,KAAKtM,KAAZ;AACD;;;uCAEmB;AAAA;;AAClB,WAAK4L,WAAL,CAAiB3F,GAAjB,CAAqB,sBAAc;AACjC,YAAI,MAAK4F,gBAAL,CAAsBrM,OAAtB,CAA8BgN,WAAW3H,EAAzC,MAAiD,CAAC,CAAtD,EAAyD;AACvD2H,qBAAWC,MAAX;AACD;AACF,OAJD;;AAMA,UAAIC,aAAJ;AACAA,aAAO,KAAKZ,cAAZ;AACA,WAAKF,WAAL,GAAmB,KAAKE,cAAxB;AACA,WAAKA,cAAL,GAAsBY,IAAtB;AACA,WAAKZ,cAAL,CAAoBzL,MAApB,GAA6B,CAA7B;;AAEAqM,aAAO,KAAKb,gBAAZ;AACA,WAAKF,aAAL,GAAqB,KAAKE,gBAA1B;AACA,WAAKA,gBAAL,GAAwBa,IAAxB;AACA,WAAKb,gBAAL,CAAsBxL,MAAtB,GAA+B,CAA/B;AACD;;;kCAEamM,U,EAAY;AACxB,UAAM3H,KAAK2H,WAAW3H,EAAtB;;AAEA,UAAI,KAAKgH,gBAAL,CAAsBrM,OAAtB,CAA8BqF,EAA9B,MAAsC,CAAC,CAA3C,EAA8C;AAC5C,aAAKgH,gBAAL,CAAsB1D,IAAtB,CAA2BtD,EAA3B;AACA,aAAKiH,cAAL,CAAoB3D,IAApB,CAAyBqE,UAAzB;;AAEA,YAAI,KAAKb,aAAL,CAAmBnM,OAAnB,CAA2BqF,EAA3B,MAAmC,CAAC,CAAxC,EAA2C;AACzC2H,qBAAWG,MAAX,CAAkB,IAAlB;AACD;AACF;AACF;;;qCAEiBH,U,EAAY;AAC5B,0BAAUI,aAAV,CAAwB,KAAKhB,WAA7B,EAA0CY,UAA1C;AACAA,iBAAWC,MAAX,CAAkB,IAAlB;AACD;;;+BAEW;AAAA;;AACV,WAAKb,WAAL,CAAiB3F,GAAjB,CAAqB,sBAAc;AACjC,eAAK4G,gBAAL,CAAsBL,UAAtB;AACA,4BAAUI,aAAV,CAAwB,OAAK7H,QAA7B;AACD,OAHD;AAID;;;;;;kBArIkByG,O;;;;;;;;;;;;;kBCRG7H,a;;AAHxB;;;;AACA;;;;;;AAEe,SAASA,aAAT,CAAwBR,IAAxB,EAA2D;AAAA,MAA7B2J,KAA6B,uEAArB,EAAqB;AAAA,MAAjBC,QAAiB,uEAAN,IAAM;;AACxE,MAAMC,MAAMnK,SAASc,aAAT,CAAuBR,IAAvB,CAAZ;;AAEA,OAAK,IAAIxD,GAAT,IAAgBmN,KAAhB,EAAuB;AACrB,QAAM9M,QAAQ8M,MAAMnN,GAAN,CAAd;;AAEAqN,QAAIC,YAAJ,CAAiBtN,GAAjB,EAAsBK,KAAtB;AACD;;AAEDkN,cAAYF,GAAZ,EAAiBD,QAAjB;;AAEA,SAAOC,GAAP;AACD;;AAED,SAASE,WAAT,CAAsBF,GAAtB,EAA2BD,QAA3B,EAAqC;AACnC,MAAIA,aAAa,IAAjB,EAAuB;AACrB,QAAI,OAAOA,QAAP,KAAoB,QAApB,IAAgC,OAAOA,QAAP,KAAoB,QAAxD,EAAkE;AAChEC,UAAIG,MAAJ,CAAWJ,QAAX;AACD,KAFD,MAEO,IAAIA,oBAAoBK,OAAxB,EAAiC;AACtCJ,UAAIK,WAAJ,CAAgBN,QAAhB;AACD,KAFM,MAEA,IAAIA,oBAAoB,kBAAQxL,CAA5B,IAAiC,oBAAUwE,QAAV,CAAmBgH,QAAnB,CAArC,EAAmE;AACxEA,eAASO,IAAT,CAAc,YAAY;AACxBN,YAAIK,WAAJ,CAAgB,IAAhB;AACD,OAFD;AAGD,KAJM,MAIA,IAAI7M,MAAMC,OAAN,CAAcsM,QAAd,KAA2B,oBAAUrM,QAAV,CAAmBqM,QAAnB,CAA/B,EAA6D;AAClE,WAAK,IAAIT,CAAT,IAAcS,QAAd,EAAwB;AACtB,YAAIQ,QAAQR,SAAST,CAAT,CAAZ;AACA,YAAIiB,MAAM5M,cAAN,CAAqB,UAArB,CAAJ,EAAsC;AACpC4M,kBAAQ5J,cAAc4J,MAAMC,QAApB,EAA8BD,MAAME,UAApC,EAAgDF,MAAMR,QAAtD,CAAR;AACAC,cAAIK,WAAJ,CAAgBE,KAAhB;AACD,SAHD,MAGO;AACLL,sBAAYF,GAAZ,EAAiBO,KAAjB;AACD;AACF;AACF;AACF;AACF;;;;;;;;;;;;;;;;ACxCD;;;;;;;;IAEqBG,U;;;;;;;kCACGrH,Q,EAAU;AAC9B,UAAMsH,MAAM,oBAAU5H,QAAV,CAAmBM,QAAnB,IAA+BA,SAAS,CAAT,EAAYkB,OAA3C,GAAqDlB,SAASkB,OAA1E;;AAEA,aAAO,CAACmG,WAAWE,KAAZ,EAAmBF,WAAWG,MAA9B,EAAsCH,WAAWI,QAAjD,EAA2DtO,OAA3D,CAAmEmO,GAAnE,MAA4E,CAAC,CAApF;AACD;;;2BAEctH,Q,EAAUrG,K,EAAO;AAC9B,UAAM8B,SAAS,WAAWuE,SAAS,CAAT,EAAYkB,OAAtC;;AAEAmG,iBAAW5L,MAAX,EAAmBuE,QAAnB,EAA6BrG,KAA7B;AACD;;;gCAEkBqG,Q,EAAUrG,K,EAAO;AAClC,cAAQqG,SAASK,IAAT,CAAc,MAAd,CAAR;AACE,aAAK,OAAL;AACA,aAAK,UAAL;AACEL,mBAAS0H,MAAT,aAA0B/N,KAA1B,QAAoCgO,IAApC,CAAyC,SAAzC,EAAoD,IAApD;AACA;AACF;AACE3H,mBAASe,GAAT,CAAapH,KAAb;AANJ;AAQD;;;mCAEqBqG,Q,EAAUrG,K,EAAO;AACrCqG,eAASe,GAAT,CAAapH,KAAb;AACD;;;iCAEmBqG,Q,EAAUrG,K,EAAO;AACnCqG,eAASe,GAAT,CAAapH,KAAb;AACD;;;;;;kBA9BkB0N,U;;;AAiCrBA,WAAWE,KAAX,GAAmB,OAAnB;AACAF,WAAWG,MAAX,GAAoB,QAApB;AACAH,WAAWI,QAAX,GAAsB,UAAtB;;;;;;;;;;;;;;;;;;ICpCqBG,Y;AACnB,wBAAahL,GAAb,EAAkB;AAAA;;AAChB,SAAKA,GAAL,GAAWA,GAAX;AACD;;;;yBAEKiL,O,EAAS;AACbxD,cAAQ7E,IAAR,CAAa,KAAKsI,MAAL,CAAYD,OAAZ,CAAb;AACD;;;0BAEMA,O,EAAS;AACdxD,cAAQ9E,KAAR,CAAc,KAAKuI,MAAL,CAAYD,OAAZ,CAAd;AACD;;;wBAEIA,O,EAAS;AACZxD,cAAQ0D,GAAR,CAAY,KAAKD,MAAL,CAAYD,OAAZ,CAAZ;AACD;;;2BAEOA,O,EAAS;AACf,6BAAqBA,OAArB;AACD;;;;;;kBAnBkBD,Y;;;;;;;;;;;;;;;;;;ICAAI,Y;AACnB,wBAAapL,GAAb,EAAkB;AAAA;;AAChB,SAAKA,GAAL,GAAWA,GAAX;AACA,SAAKqL,MAAL,GAAc,EAAd;AACD;;;;2BAEOnL,I,EAAMiD,Q,EAAU;AAAA;;AACtB,UAAI5F,MAAMC,OAAN,CAAc0C,IAAd,CAAJ,EAAyB;AACvBA,aAAK8C,GAAL,CAAS;AAAA,iBAAK,MAAKsI,MAAL,CAAYC,CAAZ,EAAepI,QAAf,CAAL;AAAA,SAAT;AACA,eAAO,IAAP;AACD;;AAED,UAAI,CAAC,KAAKkI,MAAL,CAAY3N,cAAZ,CAA2BwC,IAA3B,CAAL,EAAuC;AACrC,aAAKmL,MAAL,CAAYnL,IAAZ,IAAoB,EAApB;AACD;;AAED,WAAKmL,MAAL,CAAYnL,IAAZ,EAAkBgF,IAAlB,CAAuB/B,QAAvB;;AAEA,aAAO,IAAP;AACD;;;yBAEKjD,I,EAAMiD,Q,EAAU;AAAA;AAAA;;AACpB,UAAMhD,KAAK,SAALA,EAAK,GAAM;AACf,YAAM2G,IAAI3D,SAAShE,KAAT,CAAe,OAAKa,GAAL,CAASoC,QAAxB,aAAV;;AAEA,eAAKoJ,GAAL,CAAStL,IAAT;;AAEA,eAAO4G,CAAP;AACD,OAND;;AAQA,aAAO,KAAKwE,MAAL,CAAYpL,IAAZ,EAAkBC,EAAlB,CAAP;AACD;;;0BAEkC;AAAA;;AAAA,UAA9BD,IAA8B,uEAAvB,IAAuB;AAAA,UAAjBiD,QAAiB,uEAAN,IAAM;;AACjC,UAAIjD,SAAS,IAAb,EAAmB;AACjB,aAAKmL,MAAL,GAAc,EAAd;AACD,OAFD,MAEO,IAAI9N,MAAMC,OAAN,CAAc0C,IAAd,CAAJ,EAAyB;AAC9BA,aAAK8C,GAAL,CAAS;AAAA,iBAAK,OAAKsI,MAAL,CAAYC,CAAZ,EAAepI,QAAf,CAAL;AAAA,SAAT;AACA,eAAO,IAAP;AACD;;AAED,UAAI,CAAC,KAAKkI,MAAL,CAAY3N,cAAZ,CAA2BwC,IAA3B,CAAL,EAAuC;AACrC,eAAO,IAAP;AACD;;AAED,UAAIiD,aAAa,IAAjB,EAAuB;AACrB,aAAKkI,MAAL,CAAYnL,IAAZ,IAAoB,EAApB;AACD,OAFD,MAEO,IAAI,OAAOiD,QAAP,KAAoB,UAApB,IAAkC5F,MAAMC,OAAN,CAAc,KAAK6N,MAAL,CAAYnL,IAAZ,CAAd,CAAtC,EAAwE;AAC7E,aAAK,IAAImJ,CAAT,IAAc,KAAKgC,MAAL,CAAYnL,IAAZ,CAAd,EAAiC;AAC/B,cAAMC,KAAK,KAAKkL,MAAL,CAAYnL,IAAZ,EAAkBmJ,CAAlB,CAAX;;AAEA,cAAIlJ,OAAOgD,QAAX,EAAqB;AACnB,iBAAKkI,MAAL,CAAYnL,IAAZ,EAAkB5C,MAAlB,CAAyB+L,CAAzB,EAA4B,CAA5B;AACD;AACF;AACF;;AAED,aAAO,IAAP;AACD;;;yBAEKnJ,I,EAAe;AACnB,UAAI,CAAC,KAAKmL,MAAL,CAAY3N,cAAZ,CAA2BwC,IAA3B,CAAL,EAAuC;AACrC,eAAO,IAAP;AACD;;AAED,UAAI,CAAC3C,MAAMC,OAAN,CAAc,KAAK6N,MAAL,CAAYnL,IAAZ,CAAd,CAAL,EAAuC;AACrC,eAAO,IAAP;AACD;;AAPkB,wCAANuL,IAAM;AAANA,YAAM;AAAA;;AASnB,WAAK,IAAIpC,CAAT,IAAc,KAAKgC,MAAL,CAAYnL,IAAZ,CAAd,EAAiC;AAC/B,YAAMiD,WAAW,KAAKkI,MAAL,CAAYnL,IAAZ,EAAkBmJ,CAAlB,CAAjB;AACAlG,iBAASjE,IAAT,kBAAc,KAAKc,GAAL,CAASoC,QAAvB,SAAoCqJ,IAApC;AACD;;AAED,aAAO,IAAP;AACD;;;;;;kBA3EkBL,Y;;;;;;;;;;;;;;;;ACArB;;;;AACA;;;;;;;;AAEA,IAAI1J,MAAM,CAAV;;IAKqBgK,U;AAMnB,sBAAa1L,GAAb,EAAiC;AAAA,QAAf8B,QAAe,uEAAJ,EAAI;;AAAA;;AAC/B,SAAKF,EAAL,GAAU,EAAEF,GAAZ;AACA,SAAKI,QAAL,GAAgBA,QAAhB;AACA,SAAK9B,GAAL,GAAWA,GAAX;AACD;;;;2BAMO6B,O,EAAS;AACf,WAAKC,QAAL,CAAcoD,IAAd,CAAmBrD,OAAnB;AACD;;;2BAOOA,O,EAAS;AACf,0BAAU8H,aAAV,CAAwB,KAAK7H,QAA7B,EAAuCD,OAAvC;;AAEAA,cAAQ+H,gBAAR;;AAEA,aAAO,IAAP;AACD;;;oCAKgB;AACf,UAAI,KAAK5J,GAAL,CAAS+B,cAAb,EAA6B;AAC3B,aAAK/B,GAAL,CAAS+B,cAAT,CAAwBuH,aAAxB,CAAsC,IAAtC;AACD;AACF;;;6BAOyB;AAAA,UAAlBzF,IAAkB,uEAAX8H,SAAW;;AACxB,WAAK7J,QAAL,CAAckD,OAAd,CAAsB;AAAA,eAAWnD,QAAQoB,MAAR,CAAeY,IAAf,CAAX;AAAA,OAAtB;AACD;;;;;;kBAjDkB6H,U;;;;;;;;;;;;;;;;;ACRrB;;;;AACA;;;;;;;;IAKqBE,Q,GAOnB,kBAAa7O,KAAb,EAAoBwM,UAApB,EAAgC;AAAA;;AAC9B,OAAKxM,KAAL,GAAaA,KAAb;AACA,OAAKwM,UAAL,GAAkBA,UAAlB;;AAEA,sBAAUsC,MAAV,CAAiB9O,KAAjB,EAAwB,cAAxB,EAAwC,IAAxC,EAA8C,KAA9C;AACD,C;;kBAZkB6O,Q;;;AAerB,IAAME,WAAW,eAAe,EAAhC;AACA,IAAMC,aAAaxO,MAAMiD,SAAzB;AACA,IAAMwL,iBAAiB,CACrB,MADqB,EAErB,KAFqB,EAGrB,OAHqB,EAIrB,SAJqB,EAKrB,QALqB,EAMrB,MANqB,EAOrB,SAPqB,CAAvB;;IAUaC,e,WAAAA,e;AAMX,2BAAajM,GAAb,EAAkB;AAAA;;AAChB,SAAKA,GAAL,GAAWA,GAAX;AACD;;;;2BASOjD,K,EAAO;AAAA;;AACb,UAAI,CAAC,oBAAUU,QAAV,CAAmBV,KAAnB,CAAL,EAAgC;AAC9B,eAAO,IAAP;AACD;;AAED,UAAI+K,iBAAJ;;AAEA,UAAI,CAAC/K,MAAMW,cAAN,CAAqB,cAArB,CAAD,IAAyCX,MAAMmP,YAAN,YAA8BN,QAA3E,EAAqF;AACnF9D,mBAAW/K,MAAMmP,YAAjB;AACD,OAFD,MAEO,IAAI3O,MAAMC,OAAN,CAAcT,KAAd,CAAJ,EAA0B;AAC/B+K,mBAAW,IAAI8D,QAAJ,CAAa7O,KAAb,EAAoB,yBAAe,KAAKiD,GAApB,CAApB,CAAX;;AAEA,aAAKmM,mBAAL,CAAyBpP,KAAzB;;AAEAA,cAAMiI,OAAN,CAAc;AAAA,iBAAO,MAAKkB,MAAL,CAAY/B,GAAZ,CAAP;AAAA,SAAd;AACD,OANM,MAMA,IAAI,oBAAU5F,aAAV,CAAwBxB,KAAxB,KAAkCc,OAAOuO,YAAP,CAAoBrP,KAApB,CAAtC,EAAkE;AACvE+K,mBAAW,IAAI8D,QAAJ,CAAa7O,KAAb,EAAoB,yBAAe,KAAKiD,GAApB,CAApB,CAAX;;AAEAnC,eAAOwO,IAAP,CAAYtP,KAAZ,EAAmBiI,OAAnB,CAA2B,UAACtI,GAAD;AAAA,iBAAS,MAAK4P,QAAL,CAAcvP,KAAd,EAAqBL,GAArB,EAA0BK,MAAML,GAAN,CAA1B,CAAT;AAAA,SAA3B;AACD;;AAED,aAAOoL,QAAP;AACD;;;wBAWInK,M,EAAQjB,G,EAAKK,K,EAAO;AACvB,UAAIQ,MAAMC,OAAN,CAAcG,MAAd,CAAJ,EAA2B;AACzBA,eAAOP,MAAP,GAAgBmP,KAAKC,GAAL,CAAS7O,OAAOP,MAAhB,EAAwBV,GAAxB,CAAhB;AACAiB,eAAOL,MAAP,CAAcZ,GAAd,EAAmB,CAAnB,EAAsBK,KAAtB;AACA,eAAOA,KAAP;AACD;;AAED,UAAI,oBAAUH,GAAV,CAAce,MAAd,EAAsBjB,GAAtB,CAAJ,EAAgC;AAC9BiB,eAAOjB,GAAP,IAAcK,KAAd;AACA,eAAOA,KAAP;AACD;;AAED,UAAM0P,KAAK9O,OAAOuO,YAAlB;AACA,UAAI,CAACO,EAAL,EAAS;AACPA,WAAG/P,GAAH,IAAUK,KAAV;AACA,eAAOA,KAAP;AACD;;AAED,WAAKuP,QAAL,CAAc3O,MAAd,EAAsBjB,GAAtB,EAA2BK,KAA3B;AACA0P,SAAGlD,UAAH,CAAcmD,MAAd;AACA,aAAO3P,KAAP;AACD;;;4BAQOY,M,EAAQjB,G,EAAK;AACnB,UAAIa,MAAMC,OAAN,CAAcG,MAAd,CAAJ,EAA2B;AACzBA,eAAOL,MAAP,CAAcZ,GAAd,EAAmB,CAAnB;AACA;AACD;;AAED,UAAM+P,KAAK9O,OAAOuO,YAAlB;;AAEA,UAAI,CAAC,oBAAUtP,GAAV,CAAce,MAAd,EAAsBjB,GAAtB,CAAL,EAAiC;AAC/B;AACD;;AAED,aAAOiB,OAAOjB,GAAP,CAAP;;AAEA,UAAI,CAAC+P,EAAL,EAAS;AACP;AACD;;AAEDA,SAAGlD,UAAH,CAAcmD,MAAd;AACD;;;6BAYS/O,M,EAAQjB,G,EAAKK,K,EAAO;AAC5B,UAAM4P,WAAW9O,OAAO+O,wBAAP,CAAgCjP,MAAhC,EAAwCjB,GAAxC,CAAjB;AACA,UAAM6M,aAAa,yBAAe,KAAKvJ,GAApB,CAAnB;AACA,UAAMgE,OAAO,IAAb;;AAEA,UAAI2I,YAAYA,SAAS3O,YAAT,KAA0B,KAA1C,EAAiD;AAC/C;AACD;;AAED,UAAM2G,SAASgI,YAAYA,SAAS9P,GAApC;AACA,UAAMwJ,SAASsG,YAAYA,SAAS3P,GAApC;;AAEA,UAAI6P,gBAAgB,KAAK3G,MAAL,CAAYnJ,KAAZ,CAApB;;AAEAc,aAAOC,cAAP,CAAsBH,MAAtB,EAA8BjB,GAA9B,EAAmC;AACjCG,aAAK,eAAY;AACfE,kBAAQ4H,SAASA,OAAOzF,IAAP,CAAYvB,MAAZ,CAAT,GAA+BZ,KAAvC;;AAMA,cAAIiH,KAAKhE,GAAL,CAAS+B,cAAb,EAA6B;AAC3BiC,iBAAKhE,GAAL,CAAS+B,cAAT,CAAwBuH,aAAxB,CAAsCC,UAAtC;;AAGA,gBAAIsD,aAAJ,EAAmB;AACjB7I,mBAAKhE,GAAL,CAAS+B,cAAT,CAAwBuH,aAAxB,CAAsCuD,cAActD,UAApD;AACD;;AAED,gBAAIhM,MAAMC,OAAN,CAAcT,KAAd,CAAJ,EAA0B;AACxBiH,mBAAK8I,WAAL,CAAiB/P,KAAjB;AACD;AACF;;AAED,iBAAOA,KAAP;AACD,SAtBgC;AAuBjCC,aAAK,aAAU+P,QAAV,EAAoB;AACvB,cAAMnJ,WAAWe,SAASA,OAAOzF,IAAP,CAAYvB,MAAZ,CAAT,GAA+BZ,KAAhD;;AAEA,cAAIgQ,aAAanJ,QAAb,IAA0BmJ,aAAaA,QAAb,IAAyBnJ,aAAaA,QAApE,EAA+E;AAC7E;AACD;;AAED,cAAIyC,MAAJ,EAAY;AACVA,mBAAOnH,IAAP,CAAYvB,MAAZ,EAAoBoP,QAApB;AACD,WAFD,MAEO;AACLhQ,oBAAQgQ,QAAR;AACD;;AAEDF,0BAAgB7I,KAAKkC,MAAL,CAAY6G,QAAZ,CAAhB;;AAEAxD,qBAAWmD,MAAX;AACD;AAvCgC,OAAnC;AAyCD;;;kCAMwB;AAAA,UAAZ3P,KAAY,uEAAJ,EAAI;;AACvB,WAAK,IAAIL,GAAT,IAAgBK,KAAhB,EAAuB;AACrB,YAAMgN,MAAMhN,MAAML,GAAN,CAAZ;AACAqN,eAAOA,IAAImC,YAAX,IAA2B,KAAKlM,GAAL,CAAS+B,cAAT,CAAwBuH,aAAxB,CAAsCS,IAAImC,YAAJ,CAAiB3C,UAAvD,CAA3B;;AAEA,YAAIhM,MAAMC,OAAN,CAAcuM,GAAd,CAAJ,EAAwB;AACtB,eAAK+C,WAAL,CAAiB/C,GAAjB;AACD;AACF;AACF;;;wCAOoBhN,K,EAAO;AAC1B,UAAMiH,OAAO,IAAb;AACA,UAAMgJ,eAAenP,OAAOqI,MAAP,CAAc6F,UAAd,CAArB;;AAEAC,qBAAehH,OAAf,CAAuB,UAAUnG,MAAV,EAAkB;;AAEvC,YAAMoO,WAAWlB,WAAWlN,MAAX,CAAjB;;AAEA,4BAAUgN,MAAV,CAAiBmB,YAAjB,EAA+BnO,MAA/B,EAAuC,SAASqO,OAAT,GAAoB;AACzD,cAAIhP,IAAIe,UAAU7B,MAAlB;AACA,cAAMqO,OAAO,IAAIlO,KAAJ,CAAUW,CAAV,CAAb;;AAEA,iBAAOA,GAAP,EAAY;AACVuN,iBAAKvN,CAAL,IAAUe,UAAUf,CAAV,CAAV;AACD;;AAED,cAAMiP,SAASF,SAAS9N,KAAT,CAAe,IAAf,EAAqBsM,IAArB,CAAf;AACA,cAAMgB,KAAK,KAAKP,YAAhB;;AAEA,cAAIkB,iBAAJ;;AAEA,kBAAQvO,MAAR;AACE,iBAAK,MAAL;AACEuO,yBAAW3B,IAAX;AACA;AACF,iBAAK,SAAL;AACE2B,yBAAW3B,IAAX;AACA;AACF,iBAAK,QAAL;AACE2B,yBAAW3B,KAAKrE,KAAL,CAAW,CAAX,CAAX;AACA;AATJ;;AAYA,cAAIgG,QAAJ,EAAc;AACZpJ,iBAAKkC,MAAL,CAAYkH,QAAZ;AACD;;AAGDX,aAAGlD,UAAH,CAAcmD,MAAd,CAAqB;AACnB7N,oBAAQA,MADW;AAEnB4M,kBAAMA;AAFa,WAArB;;AAKA,iBAAO0B,MAAP;AACD,SApCD;AAqCD,OAzCD;;AA2CA,UAAIrB,QAAJ,EAAc;AACZ/O,cAAMsQ,SAAN,GAAkBL,YAAlB;AACA,eAAOjQ,KAAP;AACD;;AAEDiQ,mBAAahI,OAAb,CAAqB,UAACnG,MAAD,EAASnC,GAAT;AAAA,eAAiB,oBAAUmP,MAAV,CAAiB9O,KAAjB,EAAwBL,GAAxB,EAA6BmC,MAA7B,CAAjB;AAAA,OAArB;AACA,aAAO9B,KAAP;AACD;;;;;;;;;;;;;;;;;;;ACnRH;;;;;;;;AAEA,IAAMuQ,QAAQ;AACZC,WAAS,SADG;AAEZC,WAAS;AAFG,CAAd;;AAKA,IAAMC,oBAAoB,IAA1B;;IAEqBC,S;AACnB,qBAAa1N,GAAb,EAAkB;AAAA;;AAChB,SAAKA,GAAL,GAAWA,GAAX;AACA,SAAK2N,KAAL,GAAa,EAAb;AACA,SAAK7L,QAAL,GAAgB,EAAhB;AACA,SAAKzE,KAAL,GAAa,CAAb;AACA,SAAKuQ,KAAL,GAAaN,MAAMC,OAAnB;AACA,SAAKM,QAAL,GAAgB,EAAhB;AACD;;;;6BAESD,K,EAAO;AACf,WAAKA,KAAL,GAAaA,KAAb;AACD;;;uBAEGA,K,EAAO;AACT,aAAO,KAAKA,KAAL,KAAeA,KAAtB;AACD;;;mCAEe/L,O,EAAS;;AAEvB,UAAI,CAAC,KAAKC,QAAL,CAAcD,QAAQD,EAAtB,CAAL,EAAgC;AAC9B,aAAKE,QAAL,CAAcD,QAAQD,EAAtB,IAA4B,IAA5B;;AAEA,gBAAQ,KAAKgM,KAAb;AACE,eAAKN,MAAMC,OAAX;AACE,iBAAKI,KAAL,CAAWzI,IAAX,CAAgBrD,OAAhB;;AAEA,iBAAKiM,QAAL,CAAcR,MAAME,OAApB;;AAEA,4BAAUjI,QAAV,CAAmB,KAAKR,OAAxB,EAAiC,IAAjC,EAAuC,KAAK/E,GAA5C;AACA;;AAEF,eAAKsN,MAAME,OAAX;;AAGE,gBAAItP,IAAI,KAAKyP,KAAL,CAAWvQ,MAAX,GAAoB,CAA5B;;AAEA,mBAAOc,KAAK,CAAL,IAAU,KAAKyP,KAAL,CAAWzP,CAAX,EAAc0D,EAAd,GAAmBC,QAAQD,EAA5C,EAAgD;AAC9C1D;AACD;;AAED,iBAAKyP,KAAL,CAAWrQ,MAAX,CAAkBiP,KAAKC,GAAL,CAAStO,CAAT,EAAY,KAAKb,KAAjB,IAA0B,CAA5C,EAA+C,CAA/C,EAAkDwE,OAAlD;AAlBJ;AAoBD;AACF;;;8BAEU;;AAST,WAAK8L,KAAL,CAAWI,IAAX,CAAgB,UAACC,CAAD,EAAIC,CAAJ;AAAA,eAAUD,EAAEpM,EAAF,GAAOqM,EAAErM,EAAnB;AAAA,OAAhB;;AAIA,WAAK,KAAKvE,KAAL,GAAa,CAAlB,EAAqB,KAAKA,KAAL,GAAa,KAAKsQ,KAAL,CAAWvQ,MAA7C,EAAqD,KAAKC,KAAL,EAArD,EAAmE;AACjE,YAAMwE,UAAU,KAAK8L,KAAL,CAAW,KAAKtQ,KAAhB,CAAhB;AACA,aAAKyE,QAAL,CAAcD,QAAQD,EAAtB,IAA4B,IAA5B;AACAC,gBAAQoH,GAAR;;AAGA,YAAI,kBAAyB,aAAzB,IAA0C,KAAKnH,QAAL,CAAcD,QAAQD,EAAtB,KAA6B,IAA3E,EAAiF;AAC/E,eAAKiM,QAAL,CAAcjM,EAAd,IAAoB,CAAC,KAAKiM,QAAL,CAAcjM,EAAd,KAAqB,CAAtB,IAA2B,CAA/C;AACA,cAAI,KAAKiM,QAAL,CAAcjM,EAAd,IAAoB6L,iBAAxB,EAA2C;AACzC,iBAAKzN,GAAL,CAAS2C,KAAT,CAAeC,IAAf,CACE,+CAA6Cf,QAAQxF,IAArD,+BACmBwF,QAAQ4G,UAD3B,CADF;AAIA;AACD;AACF;AACF;;AAED,WAAKyF,KAAL;AACD;;;4BAEQ;AACP,WAAKP,KAAL,CAAWvQ,MAAX,GAAoB,CAApB;AACA,WAAK0E,QAAL,GAAgB,EAAhB;AACA,WAAK+L,QAAL,GAAgB,EAAhB;AACA,WAAKC,QAAL,CAAcR,MAAMC,OAApB;AACD;;;;;;kBArFkBG,S;;;;;;;;;;;;;;;;ACTrB;;;;AACA;;;;;;;;;;IAEqBS,c;AACnB,0BAAahL,QAAb,EAAuB;AAAA;;AACrB,QAAMmF,WAAW,kBAAQhK,CAAR,CAAU8P,QAAV,EAAjB;AACA,QAAM5I,UAAU8C,SAAS9C,OAAzB;AACA,QAAM6I,SAAS/F,SAAS+F,MAAxB;;AAEAlL,aAASqC,OAAT,EAAkB6I,MAAlB;;AAEA,SAAKjF,KAAL,GAAa,kBAAQ9K,CAAR,CAAUgQ,IAAV,CAAehG,QAAf,CAAb;AACD;;;;yBAEKiG,W,EAAaC,U,EAAY;AAC7B,aAAO,KAAKpF,KAAL,CAAW3D,IAAX,CAAgB8I,WAAhB,EAA6BC,UAA7B,CAAP;AACD;;;2BAEMA,U,EAAY;AACjB,aAAO,KAAKpF,KAAL,CAAW5B,KAAX,CAAiBgH,UAAjB,CAAP;AACD;;;wBAEWC,Q,EAAU;AAAA;;AACpB,aAAO,gCAAQnQ,CAAR,EAAUgQ,IAAV,sCAAkBG,QAAlB,EAAP;AACD;;;yBAEYA,Q,EAAU;AACrB,UAAItH,iBAAJ;;AAEA,aAAO,IAAIgH,cAAJ,CAAmB,mBAAW;AACnChH,mBAAW3B,OAAX;;AAEAiJ,iBAASzL,GAAT,CAAa,mBAAW;AACtB0L,kBAAQjJ,IAAR,CAAa,UAACkJ,CAAD,EAAO;AAClB,gBAAIxH,QAAJ,EAAc;AACZ3B,sBAAQmJ,CAAR;AACD;AACF,WAJD;AAKD,SAND;AAOD,OAVM,CAAP;AAWD;;;4BAEehR,M,EAAQ;AACtB,UAAIA,kBAAkBwQ,cAAtB,EAAsC;AACpCxQ,eAAOyL,KAAP,CAAa5D,OAAb;;AAEA,eAAO7H,MAAP;AACD;;AAED,UAAM+Q,UAAU,IAAIP,cAAJ,CAAmB;AAAA,eAAW3I,QAAQ7H,MAAR,CAAX;AAAA,OAAnB,CAAhB;;AAEA,UAAI,oBAAUF,QAAV,CAAmBE,MAAnB,KAA8BA,OAAOD,cAAP,CAAsB,MAAtB,CAAlC,EAAiE;AAC/D,eAAOgR,QAAQjJ,IAAR,CAAa9H,OAAO8H,IAApB,CAAP;AACD;;AAED,aAAOiJ,OAAP;AACD;;;2BAEcE,M,EAAQ;AACrB,aAAO,IAAIT,cAAJ,CAAmB,UAAC3I,OAAD,EAAU6I,MAAV;AAAA,eAAqBA,OAAOO,MAAP,CAArB;AAAA,OAAnB,CAAP;AACD;;;;;;kBAzDkBT,c;;;;;;;;;;;;;;;;;;ICFAU,Q;AACnB,oBAAa7O,GAAb,EAA8B;AAAA,QAAZ8O,KAAY,uEAAJ,EAAI;;AAAA;;AAC5B,SAAK9O,GAAL,GAAWA,GAAX;AACA,SAAK8O,KAAL,GAAa,EAAb;;AAEA,SAAK,IAAI5O,IAAT,IAAiB4O,KAAjB,EAAwB;AACtB,WAAK9R,GAAL,CAASkD,IAAT,EAAe4O,MAAM5O,IAAN,CAAf;AACD;AACF;;;;wBAEIA,I,EAAM;AACT,aAAO,KAAK4O,KAAL,CAAW5O,IAAX,CAAP;AACD;;;wBAEIA,I,EAAMnD,K,EAAO;AAAA;;AAChB,WAAK+R,KAAL,CAAW5O,IAAX,IAAmBnD,KAAnB;;AAEAc,aAAOC,cAAP,CAAsB,KAAKkC,GAA3B,EAAgCE,IAAhC,EAAsC;AACpCrD,aAAK,eAAM;AACT,iBAAO,MAAKA,GAAL,CAASqD,IAAT,CAAP;AACD;AAHmC,OAAtC;;AAMA,aAAO,IAAP;AACD;;;;;;kBAxBkB2O,Q;;;;;;;;;;;;;;ACArB;;;;AACA;;;;AAEA,4BAAe;AACb,MAAIvQ,IAAIuC,OAAOkO,MAAP,IAAiBlO,OAAOmO,KAAxB,IAAiCnO,OAAOvC,CAAxC,IAA6C,IAArD;;AAEA,MAAIA,CAAJ,EAAO;AACL,sBAAQA,CAAR,GAAYA,CAAZ;AACD;AACF","file":"sparrow.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap cdab448c9c664a3accdb"," \n \n \n \n \n \n\nimport Sparrow from \"../sparrow\";\n\nexport default class Utilities {\n static get (data, path, def) {\n if (path.indexOf('.') !== -1) {\n let paths = path.split('.');\n let key = paths.shift();\n\n if (!Utilities.has(data, key)) {\n return def;\n }\n\n return Utilities.get(data[key], paths.join('.'), def);\n }\n\n return Utilities.has(data, path) ? data[path] : def;\n }\n\n static set (data, path, value) {\n if (path.indexOf('.') !== -1) {\n let paths = path.split('.');\n let key = paths.shift();\n\n if (!Utilities.has(data, key)) {\n data[key] = {};\n }\n\n data[key] = Utilities.set(data[key], paths.join('.'), value);\n\n return data;\n }\n\n data[path] = value;\n\n return data;\n }\n\n static remove (data, path) {\n if (path.indexOf('.') !== -1) {\n let paths = path.split('.');\n let key = paths.shift();\n\n if (!Utilities.has(data, key)) {\n return data;\n }\n\n Utilities.remove(data[key], paths.join('.'));\n\n return data;\n }\n\n remove(data, path);\n\n return data;\n }\n\n static removeElement (arr, element) {\n if (arr.length) {\n const index = arr.indexOf(element);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n }\n\n static has (data, key) {\n if (Array.isArray(data)) {\n return typeof data[key] !== 'undefined';\n } else if (Utilities.isObject(data)) {\n return data.hasOwnProperty(key);\n }\n\n return false;\n }\n\n static define (object, key, value, enumerable = true) {\n Object.defineProperty(object, key, {\n value: value,\n enumerable: enumerable,\n writable: true,\n configurable: true\n });\n }\n\n static flatten (data) {\n const toReturn = {};\n\n for (let i in data) {\n if (!data.hasOwnProperty(i)) continue;\n\n if ((typeof data[i]) == 'object') {\n let flatObject = flattenObject(data[i]);\n for (let x in flatObject) {\n if (!flatObject.hasOwnProperty(x)) {\n continue;\n }\n\n toReturn[i + '.' + x] = flatObject[x];\n }\n } else {\n toReturn[i] = data[i];\n }\n }\n\n return toReturn;\n }\n\n static isObject (data) {\n return typeof data === 'object' && data !== null;\n }\n\n static isPlainObject (data) {\n return Sparrow.$.isPlainObject(data);\n }\n\n static isNative (object) {\n return /native code/.test(object.toString());\n }\n\n static isReserved (string) {\n const str = (string + '').charCodeAt(0);\n return str === '$' || str === '_';\n }\n\n static bind (method, target) {\n return (function (arg) {\n const len = arguments.length;\n if (len === 1) {\n return method.call(target, arg);\n } else if (len === 0) {\n return method.call(target);\n }\n\n return method.apply(target, arguments);\n });\n }\n\n static isJquery (object) {\n if (!Utilities.isObject(object)) {\n return false;\n }\n\n if (object instanceof Sparrow.$ || 'jquery' in object) {\n return true;\n }\n\n if ('zepto' in Sparrow.$) {\n return Sparrow.$.zepto.isZ(object);\n }\n\n return false;\n }\n}\n\nfunction remove (data, key) {\n if (Array.isArray(data)) {\n if (data.length) {\n data.splice(key, 1);\n }\n\n return data;\n } else if (Utilities.isObject(data)) {\n delete data[key];\n\n return data;\n }\n\n return data;\n}\n\nexport function nullFunction () {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/utilities.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Application from './app';\r\nimport createElement from './dom/element';\r\n\r\nconst plugin = \"sparrow\";\r\n\r\nexport default class Sparrow {\r\n constructor (options = {}, $ = null) {\r\n let el = null;\r\n $ = $ || Sparrow.$;\r\n\r\n if (!$) {\r\n throw new Error('Sparrow.$ is NULL, please set jQuery or Zepto object into it.');\r\n }\r\n\r\n if (options.domready) {\r\n el = options.el;\r\n options.el = null;\r\n\r\n $(document).ready($ => {\r\n this.$options.el = el;\r\n this.$mount(el);\r\n });\r\n }\r\n\r\n this.app = new Application($);\r\n this.app.init(this, options);\r\n }\r\n\r\n static set $(value) {\r\n Object.defineProperty(Sparrow, '$', {\r\n value: value\r\n });\r\n\r\n Sparrow.$._name = ('zepto' in Sparrow.$) ? 'Zepto' : 'jQuery';\r\n\r\n Sparrow.plugin(plugin);\r\n }\r\n\r\n static plugin (name, options = {}) {\r\n const $ = Sparrow.$;\r\n\r\n if (!$) {\r\n throw new Error('Sparrow.$ is NULL, please set jQuery or Zepto object into it.');\r\n }\r\n\r\n if (typeof $.fn === 'undefined') {\r\n $('body'); \r\n throw new Error('Sparrow.$.fn not exists, are you sure you inject a jQuery / Zepto object?');\r\n }\r\n\r\n $.fn[name] = function (customOptions) {\r\n const $this = $(this[0]);\r\n\r\n if (!$this.data(name)) {\r\n options = $.extend(true, {}, options, customOptions);\r\n options.el = $this;\r\n\r\n $this.data(name, new Sparrow(options));\r\n }\r\n\r\n return $this.data(name);\r\n };\r\n }\r\n}\r\n\r\nSparrow.prototype.$createElement = Sparrow.createElement = createElement;\r\nSparrow.Promise = Application.Promise;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sparrow.js"," \n \n \n \n \n \n\n \nexport const inBrowser = typeof window !== 'undefined';\nexport const UA = inBrowser && window.navigator.userAgent.toLowerCase();\nexport const isIE = UA && /msie|trident/.test(UA);\nexport const isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nexport const isEdge = UA && UA.indexOf('edge/') > 0;\nexport const isAndroid = UA && UA.indexOf('android') > 0;\nexport const isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/environment.js"," \n \n \n \n \n \n\nimport { ObserverFactory } from './observer/observer';\nimport Watcher from \"./observer/watcher\";\nimport Registry from \"./util/registry\";\nimport Scheduler from \"./observer/scheduler\";\nimport TaskQueue from \"./observer/queue\";\nimport ErrorHandler from \"./error/error\";\nimport Utilities, { nullFunction } from \"./util/utilities\";\nimport PromiseAdapter from \"./promise/promise\";\nimport EventHandler from \"./event\";\nimport FormHelper from \"./dom/form\";\n\n \n \n \n \n \nconst defaultOptions = {\n data: {}\n};\n\nlet uid = 0;\n\nexport default class Application {\n constructor ($) {\n this.id = ++uid;\n this.$ = $;\n this.watcher = null;\n this.watchers = [];\n this.currentWatcher = null;\n this.watcherStack = [];\n this.elements = {};\n\n this._isMounted = false;\n\n this.registry = new Registry(this, {\n 'observerFactory': new ObserverFactory(this),\n 'scheduler': new Scheduler(this),\n 'error': new ErrorHandler,\n 'event': new EventHandler(this)\n });\n }\n\n init(instance, options = {}) {\n this.options = this.$.extend({}, defaultOptions, options);\n this.data = options.data;\n this.instance = instance;\n\n \n instance.$ = this.$;\n instance.$data = this.options.data;\n instance.$options = this.options;\n proxyMethod(instance, this, 'find');\n proxyMethod(instance, this, 'async');\n proxyMethod(instance, this, 'mount', true);\n proxyMethod(instance, this, 'bind', true);\n proxyMethod(instance, this, 'on', true);\n proxyMethod(instance, this, 'model', true);\n proxyMethod(instance, this, 'show', true);\n proxyMethod(instance, this, 'hide', true);\n proxyMethod(instance, this, 'wrap', true);\n proxyMethod(instance, this, 'watch', true);\n proxyMethod(instance, this, 'nextTick');\n proxyMethod(instance, this, 'forceUpdate', true);\n proxyMethod(instance, this.event, 'listen', true);\n proxyMethod(instance, this.event, 'off', true);\n proxyMethod(instance, this.event, 'once', true);\n proxyMethod(instance, this.event, 'emit', true);\n proxyMethod(instance, this.observerFactory, 'set', true);\n proxyMethod(instance, this.observerFactory, 'delete', true);\n\n this.hook('beforeCreate');\n\n initState(this);\n\n \n this.hook('created');\n\n if (options.el) {\n this.mount(options.el);\n }\n\n \n }\n\n mount (el) {\n if (this._isMounted) {\n this.error.warn('This app has been already mounted.');\n return;\n }\n\n this.hook('beforeMount');\n\n const $el = Utilities.isJquery(el) ? el : this.$(el);\n\n if ($el.length === 0) {\n if (process.env.NODE_ENV === 'development') {\n const str = $el.selector ? $el.selector : $el[0] + '';\n this.error.warn(`Can not mount ${str}, element not found. Consider change selector or call after \"domready\".`);\n }\n\n return;\n }\n\n this.instance.$el = this.$el;\n\n this._isMounted = true;\n\n this.hook('configure');\n\n this.hook('mounted');\n\n this.watcher = new Watcher(this, function () {\n this.app.watchers.map(watcher => watcher.update());\n }, nullFunction);\n\n this.forceUpdate();\n }\n\n forceUpdate () {\n if (this.watcher) {\n this.watcher.update();\n }\n }\n\n hook (name) {\n if (this.options.hasOwnProperty(name) && typeof this.options[name] === 'function') {\n this.options[name].call(this.instance);\n }\n }\n\n bind (selector, key, callback) {\n const $element = this.find(selector);\n\n \n if (typeof callback === 'string') {\n const name = callback;\n callback = ($element, value) => {\n switch (name) {\n case ':html':\n $element.html(value);\n break;\n\n case ':text':\n $element.text(value);\n break;\n\n case ':value':\n if (FormHelper.isFormElement($element)) {\n FormHelper.update($element);\n }\n break;\n default:\n $element.attr(name, value);\n }\n };\n }\n\n this.watch(key, function biding (value, oldValue, ctrl) {\n callback.call(this.instance, $element, value, oldValue, ctrl);\n });\n\n return this;\n }\n\n on (selector, eventName, callback, delegate = false) {\n const $element = this.find(selector);\n let self = this;\n\n const handler = function (event) {\n callback.call(self.instance, self.$(this), event);\n };\n\n if (delegate) {\n this.$el.on(eventName, selector, handler);\n } else {\n $element.on(eventName, handler);\n }\n\n return this;\n }\n\n model (selector, key, delegate = false) {\n const handler = function ($element, event) {\n let value;\n switch ($element.attr('type')) {\n case 'radio':\n value = $element[0].value;\n break;\n default:\n value = $element.val();\n }\n\n return Utilities.set(this.$data, key, value);\n };\n\n const $element = this.find(selector);\n\n if (process.env.NODE_ENV === 'development' && !FormHelper.isFormElement($element)) {\n this.error.warn(\n 'Please only use two-way-binding on input, select or textarea elements. The element you selected: ' +\n $element[0].outerHTML.substr(0, 50) + '...'\n );\n }\n\n this.watch(function () {\n const value = Utilities.get(this.$data, key);\n if ($element.val() !== value) {\n FormHelper.update($element, value);\n }\n }, nullFunction);\n\n this.on(selector, 'change', handler, delegate);\n\n if ($element[0].tagName !== 'SELECT') {\n this.on(selector, 'input', handler, delegate);\n }\n\n return this;\n }\n\n show (selector, key, onShow = null, onHide = null) {\n const $element = this.find(selector);\n\n if (onShow !== null) {\n onHide = onHide || onShow;\n }\n\n const toggleHandler = ((handler) => {\n return (() => {\n if (typeof handler === 'string') {\n if (process.env.NODE_ENV === 'development' && typeof $element[handler] !== 'function') {\n this.error.error(`Method: ${handler}() not found in ${Sparrow.$._name} object.`);\n }\n\n return () => $element[handler]();\n } else if (typeof handler === 'function') {\n return (value, oldValue, ctrl) => handler.call(this.instance, $element, value, oldValue, ctrl);\n }\n })();\n });\n\n onShow = toggleHandler(onShow || 'show');\n onHide = toggleHandler(onHide || 'hide');\n\n const handler = function (value, oldValue, ctrl) {\n const valueBool = (value == true || value != 0);\n\n if (valueBool != (oldValue == true || oldValue != 0)) {\n if (valueBool) {\n onShow(value, oldValue, ctrl);\n } else {\n onHide(value, oldValue, ctrl);\n }\n }\n };\n\n this.watch(key, handler);\n\n return this;\n }\n\n hide (selector, key, onShow = null, onHide = null) {\n const getter = (function () {\n if (typeof key === 'function') {\n return function () {\n return key.call(this);\n };\n } else {\n return function () {\n return this[key];\n };\n }\n }).call(this);\n\n const shouldHide = function () {\n const value = getter.call(this);\n return value != true && value == 0;\n };\n\n this.show(selector, shouldHide, onShow, onHide);\n }\n\n wrap (selector, handler) {\n const $element = this.find(selector);\n const self = this;\n const wrapper = {\n execute: function () {\n handler.call(this, $element, this);\n }\n };\n\n ['bind', 'on', 'model', 'show'].forEach(function (method) {\n wrapper['$' + method] = function () {\n self[method]($element, ...arguments);\n return this;\n };\n });\n\n wrapper.execute($element);\n\n return this;\n }\n\n watch (path, callback, options = {}) {\n options.user = true;\n\n const watcher = new Watcher(this, path, callback, options);\n this.watchers.push(watcher);\n\n if (options.immediate) {\n callback.call(this.instance, watcher.get());\n }\n\n return (function unwatch () {\n watcher.teardown();\n });\n }\n\n find (selector, refresh = false) {\n if (typeof selector === 'object' && !Utilities.isJquery(selector)) {\n return this.$(selector);\n }\n\n if (selector === 'string') {\n if (!this.elements.hasOwnProperty(selector) || refresh) {\n this.elements[selector] = this.$el.find(selector);\n }\n\n return this.elements[selector];\n }\n\n return this.$(selector);\n }\n\n nextTick (callback) {\n return TaskQueue.nextTick(callback);\n }\n\n async (handler) {\n return new Application.Promise(resolve => {\n Application.Promise.resolve()\n .then(handler)\n .then((value) => resolve(value))\n });\n }\n\n pushStack (watcher) {\n if (this.currentWatcher) {\n this.watcherStack.push(this.currentWatcher);\n }\n\n this.currentWatcher = watcher;\n }\n\n popStack () {\n this.currentWatcher = this.watcherStack.pop();\n }\n}\n\nfunction initState (app) {\n \n initData(app, app.options.data);\n\n if (app.options.methods) {\n initMethods(app, app.options.methods);\n }\n\n if (app.options.computed) {\n initComputed(app, app.options.computed);\n }\n\n if (app.options.watch) {\n initWatchers(app, app.options.watch);\n }\n}\n\nfunction initData (app, data) {\n \n for (let key in data) {\n if (!Utilities.isReserved(key)) {\n proxy(app.instance, data, key);\n }\n }\n\n app.observerFactory.create(data);\n}\n\nfunction initMethods (app, methods) {\n for (let key in methods) {\n const method = methods[key];\n if (!app.options.data[key] && typeof method === 'function') {\n \n app.instance[key] = Utilities.bind(method, app.instance);\n }\n }\n}\n\nfunction initWatchers (app, watches) {\n for (let key in watches) {\n let handler = watches[key];\n let options;\n\n if (Utilities.isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n\n if (typeof handler === 'string') {\n handler = app[handler];\n }\n\n app.watch(key, handler, options);\n }\n}\n\nfunction initComputed (app, computed) {\n for (let key in computed) {\n const handler = computed[key];\n let setter = nullFunction;\n let getter;\n let cache;\n\n getter = typeof handler === 'function' ? handler : handler.get;\n getter = Utilities.bind(getter, app.instance);\n\n const watcher = new Watcher(app, key, getter, {lazy: true});\n\n if (!app.hasOwnProperty(key)) {\n\n if (typeof handler !== 'function') {\n setter = handler.set;\n cache = handler.cache;\n getter = cache === false ? nullFunction : function () {\n return watcher.getCachedValue();\n };\n }\n\n setter = Utilities.bind(setter, app.instance);\n\n Object.defineProperty(app.data, key, {\n enumerable: true,\n configurable: true,\n get: getter,\n set: setter\n });\n }\n }\n}\n\nexport function proxy (target, source, key) {\n Object.defineProperty(target, key, {\n get: function proxyGetter () {\n return source[key]\n },\n set: function proxySetter (value) {\n source[key] = value;\n }\n });\n}\n\nexport function proxyMethod (target, source, key, chain = false) {\n const methodName = '$' + key;\n target[methodName] = function (...args) {\n const r = source[key](...args);\n\n return chain ? target : r;\n }\n}\n\nApplication.Promise = PromiseAdapter;\n\n\n\n// WEBPACK FOOTER //\n// ./src/app.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport { nullFunction } from \"../util/utilities\";\r\nimport Utilities from \"../util/utilities\";\r\nimport { isIOS } from \"../util/environment\";\r\nimport Application from \"../app\";\r\n\r\nconst TaskQueue = {\r\n pending: false,\r\n tasks: [],\r\n handler: null,\r\n nextTick: function (callback, target, app) {\r\n const handler = this.getHandler();\r\n\r\n let _resolve;\r\n this.tasks.push(() => {\r\n if (callback) {\r\n callback.call(target);\r\n }\r\n\r\n if (_resolve) {\r\n _resolve(target);\r\n }\r\n });\r\n\r\n if (!this.pending) {\r\n this.pending = true;\r\n\r\n if (app) {\r\n app.hook('beforeUpdate');\r\n }\r\n\r\n handler();\r\n }\r\n\r\n if (!callback && typeof Promise !== 'undefined') {\r\n return Application.Promise(resolve => {\r\n _resolve = resolve;\r\n });\r\n }\r\n },\r\n execute: function () {\r\n TaskQueue.pending = false;\r\n const tasks = TaskQueue.tasks.slice(0);\r\n TaskQueue.tasks.length = 0;\r\n\r\n tasks.forEach(task => task());\r\n },\r\n \r\n \r\n \r\n getHandler: function () {\r\n if (typeof this.handler !== 'function') {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n if (typeof Promise !== 'undefined' && Utilities.isNative(Promise)) {\r\n const p = Promise.resolve();\r\n this.handler = () => {\r\n p.then(this.execute).catch(err => console.error(err));\r\n\r\n \r\n \r\n \r\n \r\n \r\n if (isIOS) {\r\n setTimeout(nullFunction);\r\n }\r\n };\r\n } else if (typeof MutationObserver !== 'undefined' && (\r\n Utilities.isNative(MutationObserver) ||\r\n \r\n MutationObserver.toString() === '[object MutationObserverConstructor]'\r\n )) {\r\n \r\n \r\n let counter = 1;\r\n const observer = new MutationObserver(this.execute);\r\n const textNode = document.createTextNode(String(counter));\r\n observer.observe(textNode, {\r\n characterData: true\r\n });\r\n this.handler = () => {\r\n counter = (counter + 1) % 2;\r\n textNode.data = String(counter)\r\n }\r\n } else {\r\n \r\n \r\n this.handler = () => {\r\n setTimeout(this.execute, 0);\r\n }\r\n }\r\n }\r\n\r\n return this.handler;\r\n }\r\n};\r\n\r\nexport default TaskQueue;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/queue.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport Utilities from \"../util/utilities\";\r\n\r\nlet uid = 0;\r\n\r\nconst defaultOptions = {\r\n deep: false,\r\n user: false,\r\n sync: false,\r\n computed: false,\r\n deferred: false\r\n};\r\n\r\nexport default class Watcher {\r\n constructor (app, path, callback, options = {}) {\r\n this.options = app.$.extend({}, defaultOptions, options);\r\n\r\n this.id = ++uid;\r\n this.path = path;\r\n this.callback = callback;\r\n this.app = app;\r\n this.active = true;\r\n this.ctrl = null;\r\n this.deep = this.options.deep;\r\n this.user = this.options.user;\r\n this.sync = this.options.sync;\r\n this.computed = this.options.computed;\r\n this.deferred = this.options.deferred;\r\n this.expression = process.env.NODE_ENV === 'development' ? path + '' : '';\r\n this.dispatcherIds = [];\r\n this.dispatchers = [];\r\n this.newDisptacherIds = [];\r\n this.newDisptachers = [];\r\n\r\n if (typeof this.path === 'function') {\r\n this.getter = this.path;\r\n } else {\r\n this.getter = function (value) {\r\n return Utilities.get(value, path);\r\n }\r\n }\r\n\r\n \r\n }\r\n\r\n get () {\r\n this.app.pushStack(this);\r\n\r\n let value;\r\n\r\n value = this.getter.call(this.app.instance, this.app.data);\r\n\r\n \r\n\r\n this.app.popStack();\r\n\r\n this.resetDispatchers();\r\n\r\n return value;\r\n }\r\n\r\n update (ctrl = null) {\r\n this.ctrl = ctrl;\r\n\r\n if (this.computed) {\r\n this.deferred = true;\r\n } else if (this.sync) {\r\n this.run();\r\n } else {\r\n this.app.scheduler.enqueueWatcher(this);\r\n }\r\n }\r\n\r\n run () {\r\n if (this.active) {\r\n const value = this.get();\r\n\r\n if (value !== this.value || this.deep || Utilities.isObject(value)) {\r\n const oldValue = this.value;\r\n this.value = value;\r\n\r\n this.callback.call(this.app.instance, value, oldValue, this.ctrl);\r\n }\r\n }\r\n\r\n this.ctrl = null;\r\n }\r\n\r\n getCachedValue () {\r\n if (this.defer) {\r\n this.get();\r\n this.defer = false;\r\n }\r\n\r\n \r\n if (this.app.currentWatcher) {\r\n for (let k in this.watcher.dispatchers) {\r\n this.app.currentWatcher.addDispatcher(this.dispatchers[k]);\r\n }\r\n }\r\n\r\n return this.value;\r\n }\r\n\r\n resetDispatchers () {\r\n this.dispatchers.map(dispatcher => {\r\n if (this.newDisptacherIds.indexOf(dispatcher.id) === -1) {\r\n dispatcher.detach(this);\r\n }\r\n });\r\n\r\n let temp;\r\n temp = this.newDisptachers;\r\n this.dispatchers = this.newDisptachers;\r\n this.newDisptachers = temp;\r\n this.newDisptachers.length = 0;\r\n\r\n temp = this.newDisptacherIds;\r\n this.dispatcherIds = this.newDisptacherIds;\r\n this.newDisptacherIds = temp;\r\n this.newDisptacherIds.length = 0;\r\n }\r\n\r\n addDispatcher(dispatcher) {\r\n const id = dispatcher.id;\r\n\r\n if (this.newDisptacherIds.indexOf(id) === -1) {\r\n this.newDisptacherIds.push(id);\r\n this.newDisptachers.push(dispatcher);\r\n\r\n if (this.dispatcherIds.indexOf(id) === -1) {\r\n dispatcher.attach(this);\r\n }\r\n }\r\n }\r\n\r\n removeDispatcher (dispatcher) {\r\n Utilities.removeElement(this.dispatchers, dispatcher);\r\n dispatcher.detach(this);\r\n }\r\n\r\n teardown () {\r\n this.dispatchers.map(dispatcher => {\r\n this.removeDispatcher(dispatcher);\r\n Utilities.removeElement(this.watchers, this);\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/watcher.js"," \n \n \n \n \n \n\nimport Utilities from \"../util/utilities\";\nimport Sparrow from \"../sparrow\";\n\nexport default function createElement (name, attrs = {}, children = null) {\n const ele = document.createElement(name);\n\n for (let key in attrs) {\n const value = attrs[key];\n\n ele.setAttribute(key, value);\n }\n\n addChildren(ele, children);\n\n return ele;\n}\n\nfunction addChildren (ele, children) {\n if (children !== null) {\n if (typeof children === 'string' || typeof children === 'number') {\n ele.append(children);\n } else if (children instanceof Element) {\n ele.appendChild(children);\n } else if (children instanceof Sparrow.$ || Utilities.isJquery(children)) {\n children.each(function () {\n ele.appendChild(this);\n });\n } else if (Array.isArray(children) || Utilities.isObject(children)) {\n for (let k in children) {\n let child = children[k];\n if (child.hasOwnProperty('nodeName')) {\n child = createElement(child.nodeName, child.attributes, child.children);\n ele.appendChild(child);\n } else {\n addChildren(ele, child);\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/dom/element.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport Utilities from \"../util/utilities\";\r\n\r\nexport default class FormHelper {\r\n static isFormElement ($element) {\r\n const tag = Utilities.isJquery($element) ? $element[0].tagName : $element.tagName;\r\n\r\n return [FormHelper.INPUT, FormHelper.SELECT, FormHelper.TEXTAREA].indexOf(tag) !== -1;\r\n }\r\n\r\n static update ($element, value) {\r\n const method = 'update' + $element[0].tagName;\r\n\r\n FormHelper[method]($element, value);\r\n }\r\n\r\n static updateINPUT($element, value) {\r\n switch ($element.attr('type')) {\r\n case 'radio':\r\n case 'checkbox':\r\n $element.filter(`[value=${value}]`).prop('checked', true);\r\n break;\r\n default:\r\n $element.val(value);\r\n }\r\n }\r\n\r\n static updateTEXTAREA($element, value) {\r\n $element.val(value);\r\n }\r\n\r\n static updateSELECT($element, value) {\r\n $element.val(value);\r\n }\r\n}\r\n\r\nFormHelper.INPUT = 'INPUT';\r\nFormHelper.SELECT = 'SELECT';\r\nFormHelper.TEXTAREA = 'TEXTAREA';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/dom/form.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default class ErrorHandler {\r\n constructor (app) {\r\n this.app = app;\r\n }\r\n\r\n warn (message) {\r\n console.warn(this.format(message));\r\n }\r\n\r\n error (message) {\r\n console.error(this.format(message));\r\n }\r\n\r\n log (message) {\r\n console.log(this.format(message));\r\n }\r\n\r\n format (message) {\r\n return `[Sparrow]: ${message}`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/error/error.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default class EventHandler {\r\n constructor (app) {\r\n this.app = app;\r\n this.events = {};\r\n }\r\n\r\n listen (name, callback) {\r\n if (Array.isArray(name)) {\r\n name.map(n => this.listen(n, callback));\r\n return this;\r\n }\r\n\r\n if (!this.events.hasOwnProperty(name)) {\r\n this.events[name] = [];\r\n }\r\n\r\n this.events[name].push(callback);\r\n\r\n return this;\r\n }\r\n\r\n once (name, callback) {\r\n const fn = () => {\r\n const r = callback.apply(this.app.instance, arguments);\r\n\r\n this.off(name);\r\n\r\n return r;\r\n };\r\n\r\n return this.listen(name, fn);\r\n }\r\n\r\n off (name = null, callback = null) {\r\n if (name === null) {\r\n this.events = {};\r\n } else if (Array.isArray(name)) {\r\n name.map(n => this.listen(n, callback));\r\n return this;\r\n }\r\n\r\n if (!this.events.hasOwnProperty(name)) {\r\n return this;\r\n }\r\n\r\n if (callback === null) {\r\n this.events[name] = [];\r\n } else if (typeof callback === 'function' && Array.isArray(this.events[name])) {\r\n for (let k in this.events[name]) {\r\n const fn = this.events[name][k];\r\n\r\n if (fn === callback) {\r\n this.events[name].splice(k, 1);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n emit (name, ...args) {\r\n if (!this.events.hasOwnProperty(name)) {\r\n return this;\r\n }\r\n\r\n if (!Array.isArray(this.events[name])) {\r\n return this;\r\n }\r\n\r\n for (let k in this.events[name]) {\r\n const callback = this.events[name][k];\r\n callback.call(this.app.instance, ...args);\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/event.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Watcher from './watcher';\r\nimport Utilities from \"../util/utilities\";\r\n\r\nlet uid = 0;\r\n\r\n \r\n \r\n \r\nexport default class Dispatcher {\r\n \r\n \r\n \r\n \r\n \r\n constructor (app, watchers = []) {\r\n this.id = ++uid;\r\n this.watchers = watchers;\r\n this.app = app;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n attach (watcher) {\r\n this.watchers.push(watcher);\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n detach (watcher) {\r\n Utilities.removeElement(this.watchers, watcher);\r\n\r\n watcher.removeDispatcher();\r\n\r\n return this;\r\n }\r\n\r\n \r\n \r\n \r\n attachCurrent () {\r\n if (this.app.currentWatcher) {\r\n this.app.currentWatcher.addDispatcher(this);\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n notify (ctrl = undefined) {\r\n this.watchers.forEach(watcher => watcher.update(ctrl));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/dispatcher.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Utilities from '../util/utilities';\r\nimport Dispatcher from './dispatcher';\r\n\r\n \r\n \r\n \r\nexport default class Observer {\r\n \r\n \r\n \r\n \r\n \r\n \r\n constructor (value, dispatcher) {\r\n this.value = value;\r\n this.dispatcher = dispatcher;\r\n\r\n Utilities.define(value, '__observer__', this, false);\r\n }\r\n}\r\n\r\nconst hasProto = '__proto__' in {};\r\nconst arrayProto = Array.prototype;\r\nconst replaceMethods = [\r\n 'push',\r\n 'pop',\r\n 'shift',\r\n 'unshift',\r\n 'splice',\r\n 'sort',\r\n 'reverse'\r\n];\r\n\r\nexport class ObserverFactory {\r\n \r\n \r\n \r\n \r\n \r\n constructor (app) {\r\n this.app = app;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n create (value) {\r\n if (!Utilities.isObject(value)) {\r\n return null;\r\n }\r\n\r\n let observer;\r\n\r\n if (!value.hasOwnProperty('__observer__') && value.__observer__ instanceof Observer) {\r\n observer = value.__observer__;\r\n } else if (Array.isArray(value)) {\r\n observer = new Observer(value, new Dispatcher(this.app));\r\n\r\n this.replaceArrayMethods(value);\r\n\r\n value.forEach(val => this.create(val));\r\n } else if (Utilities.isPlainObject(value) && Object.isExtensible(value)) {\r\n observer = new Observer(value, new Dispatcher(this.app));\r\n\r\n Object.keys(value).forEach((key) => this.reactive(value, key, value[key]));\r\n }\r\n\r\n return observer;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n set (object, key, value) {\r\n if (Array.isArray(object)) {\r\n object.length = Math.max(object.length, key);\r\n object.splice(key, 1, value);\r\n return value;\r\n }\r\n\r\n if (Utilities.has(object, key)) {\r\n object[key] = value;\r\n return value;\r\n }\r\n\r\n const ob = object.__observer__;\r\n if (!ob) {\r\n ob[key] = value;\r\n return value;\r\n }\r\n\r\n this.reactive(object, key, value);\r\n ob.dispatcher.notify();\r\n return value;\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n delete (object, key) {\r\n if (Array.isArray(object)) {\r\n object.splice(key, 1);\r\n return;\r\n }\r\n\r\n const ob = object.__observer__;\r\n\r\n if (!Utilities.has(object, key)) {\r\n return;\r\n }\r\n\r\n delete object[key];\r\n\r\n if (!ob) {\r\n return\r\n }\r\n\r\n ob.dispatcher.notify();\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n reactive (object, key, value) {\r\n const property = Object.getOwnPropertyDescriptor(object, key);\r\n const dispatcher = new Dispatcher(this.app);\r\n const self = this;\r\n\r\n if (property && property.configurable === false) {\r\n return;\r\n }\r\n\r\n const getter = property && property.get;\r\n const setter = property && property.set;\r\n\r\n let childObserver = this.create(value);\r\n\r\n Object.defineProperty(object, key, {\r\n get: function () {\r\n value = getter ? getter.call(object) : value;\r\n\r\n \r\n \r\n \r\n \r\n if (self.app.currentWatcher) {\r\n self.app.currentWatcher.addDispatcher(dispatcher);\r\n\r\n \r\n if (childObserver) {\r\n self.app.currentWatcher.addDispatcher(childObserver.dispatcher);\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n self.attachArray(value);\r\n }\r\n }\r\n\r\n return value;\r\n },\r\n set: function (newValue) {\r\n const oldValue = getter ? getter.call(object) : value;\r\n\r\n if (newValue === oldValue || (newValue !== newValue && oldValue !== oldValue)) {\r\n return;\r\n }\r\n\r\n if (setter) {\r\n setter.call(object, newValue);\r\n } else {\r\n value = newValue;\r\n }\r\n\r\n childObserver = self.create(newValue);\r\n\r\n dispatcher.notify();\r\n }\r\n });\r\n }\r\n\r\n \r\n \r\n \r\n \r\n attachArray (value = []) {\r\n for (let key in value) {\r\n const ele = value[key];\r\n ele && ele.__observer__ && this.app.currentWatcher.addDispatcher(ele.__observer__.dispatcher);\r\n\r\n if (Array.isArray(ele)) {\r\n this.attachArray(ele);\r\n }\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n replaceArrayMethods (value) {\r\n const self = this;\r\n const arrayMethods = Object.create(arrayProto);\r\n\r\n replaceMethods.forEach(function (method) {\r\n \r\n const original = arrayProto[method];\r\n\r\n Utilities.define(arrayMethods, method, function mutator () {\r\n let i = arguments.length;\r\n const args = new Array(i);\r\n\r\n while (i--) {\r\n args[i] = arguments[i]\r\n }\r\n\r\n const result = original.apply(this, args);\r\n const ob = this.__observer__;\r\n\r\n let inserted;\r\n\r\n switch (method) {\r\n case 'push':\r\n inserted = args;\r\n break;\r\n case 'unshift':\r\n inserted = args;\r\n break;\r\n case 'splice':\r\n inserted = args.slice(2);\r\n break;\r\n }\r\n\r\n if (inserted) {\r\n self.create(inserted);\r\n }\r\n\r\n \r\n ob.dispatcher.notify({\r\n method: method,\r\n args: args\r\n });\r\n\r\n return result;\r\n });\r\n });\r\n\r\n if (hasProto) {\r\n value.__proto__ = arrayMethods;\r\n return value;\r\n }\r\n\r\n arrayMethods.forEach((method, key) => Utilities.define(value, key, method));\r\n return value;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/observer.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport TaskQueue from \"./queue\";\r\n\r\nconst State = {\r\n WAITING: 'waiting',\r\n RUNNING: 'running'\r\n};\r\n\r\nconst maxCircularNumber = 1000;\r\n\r\nexport default class Scheduler {\r\n constructor (app) {\r\n this.app = app;\r\n this.queue = [];\r\n this.watchers = {};\r\n this.index = 0;\r\n this.state = State.WAITING;\r\n this.circular = [];\r\n }\r\n\r\n setState (state) {\r\n this.state = state;\r\n }\r\n\r\n is (state) {\r\n return this.state === state;\r\n }\r\n\r\n enqueueWatcher (watcher) {\r\n \r\n if (!this.watchers[watcher.id]) {\r\n this.watchers[watcher.id] = true;\r\n\r\n switch (this.state) {\r\n case State.WAITING:\r\n this.queue.push(watcher);\r\n\r\n this.setState(State.RUNNING);\r\n\r\n TaskQueue.nextTick(this.execute, this, this.app);\r\n break;\r\n\r\n case State.RUNNING:\r\n \r\n \r\n let i = this.queue.length - 1;\r\n\r\n while (i >= 0 && this.queue[i].id > watcher.id) {\r\n i--\r\n }\r\n\r\n this.queue.splice(Math.max(i, this.index) + 1, 0, watcher);\r\n }\r\n }\r\n }\r\n\r\n execute () {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.queue.sort((a, b) => a.id - b.id);\r\n\r\n \r\n \r\n for (this.index = 0; this.index < this.queue.length; this.index++) {\r\n const watcher = this.queue[this.index];\r\n this.watchers[watcher.id] = null;\r\n watcher.run();\r\n\r\n \r\n if (process.env.NODE_ENV === 'development' && this.watchers[watcher.id] != null) {\r\n this.circular[id] = (this.circular[id] || 0) + 1;\r\n if (this.circular[id] > maxCircularNumber) {\r\n this.app.error.warn(\r\n `Infinite loop for max 1000 times for key: ${watcher.path} ` +\r\n `and expression: ${watcher.expression}`\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.reset();\r\n }\r\n\r\n reset () {\r\n this.queue.length = 0;\r\n this.watchers = {};\r\n this.circular = {};\r\n this.setState(State.WAITING);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/observer/scheduler.js"," \r\n \r\n \r\n \r\n \r\n \r\nimport Utilities from \"../util/utilities\";\r\nimport Sparrow from \"../sparrow\";\r\n\r\nexport default class PromiseAdapter {\r\n constructor (callback) {\r\n const deferred = Sparrow.$.Deferred();\r\n const resolve = deferred.resolve;\r\n const reject = deferred.reject;\r\n\r\n callback(resolve, reject);\r\n\r\n this.defer = Sparrow.$.when(deferred);\r\n }\r\n\r\n then (onFulfilled, onRejected) {\r\n return this.defer.then(onFulfilled, onRejected);\r\n }\r\n\r\n catch (onRejected) {\r\n return this.defer.catch(onRejected);\r\n }\r\n\r\n static all (promises) {\r\n return Sparrow.$.when(...promises);\r\n }\r\n\r\n static race (promises) {\r\n let _resolve;\r\n\r\n return new PromiseAdapter(resolve => {\r\n _resolve = resolve;\r\n\r\n promises.map(promise => {\r\n promise.then((v) => {\r\n if (_resolve) {\r\n resolve(v);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n static resolve (object) {\r\n if (object instanceof PromiseAdapter) {\r\n object.defer.resolve();\r\n\r\n return object;\r\n }\r\n\r\n const promise = new PromiseAdapter(resolve => resolve(object));\r\n\r\n if (Utilities.isObject(object) && object.hasOwnProperty('then')) {\r\n return promise.then(object.then);\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n static reject (reason) {\r\n return new PromiseAdapter((resolve, reject) => reject(reason));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/promise/promise.js"," \n \n \n \n \n \n\nexport default class Registry {\n constructor (app, store = {}) {\n this.app = app;\n this.store = {};\n\n for (let name in store) {\n this.set(name, store[name]);\n }\n }\n\n get (name) {\n return this.store[name];\n }\n\n set (name, value) {\n this.store[name] = value;\n\n Object.defineProperty(this.app, name, {\n get: () => {\n return this.get(name);\n }\n });\n\n return this;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/registry.js"," \r\n \r\n \r\n \r\n \r\n \r\n\r\nimport Sparrow from \"./sparrow\";\r\nimport { inBrowser } from \"./util/environment\";\r\n\r\nif (inBrowser) {\r\n let $ = window.jQuery || window.Zepto || window.$ || null;\r\n\r\n if ($) {\r\n Sparrow.$ = $;\r\n }\r\n}\r\n\r\nexport default Sparrow;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/sparrow.min.js b/dist/sparrow.min.js index 31029af..682cdc1 100644 --- a/dist/sparrow.min.js +++ b/dist/sparrow.min.js @@ -1,2 +1,2 @@ -var Sparrow=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=15)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){return Array.isArray(e)?(e.length&&e.splice(t,1),e):l.isObject(e)?(delete e[t],e):e}function u(){}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=function(){function e(e,t){for(var n=0;n-1)return e.splice(n,1)}}},{key:"has",value:function(t,n){return Array.isArray(t)?"undefined"!=typeof t[n]:!!e.isObject(t)&&t.hasOwnProperty(n)}},{key:"define",value:function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];Object.defineProperty(e,t,{value:n,enumerable:r,writable:!0,configurable:!0})}},{key:"flatten",value:function(e){var t={};for(var n in e)if(e.hasOwnProperty(n))if("object"==o(e[n])){var r=flattenObject(e[n]);for(var i in r)r.hasOwnProperty(i)&&(t[n+"."+i]=r[i])}else t[n]=e[n];return t}},{key:"isObject",value:function(e){return"object"===("undefined"==typeof e?"undefined":o(e))&&null!==e}},{key:"isPlainObject",value:function(e){return f.default.$.isPlainObject(e)}},{key:"isNative",value:function(e){return/native code/.test(e.toString())}},{key:"isReserved",value:function(e){var t=(e+"").charCodeAt(0);return"$"===t||"_"===t}},{key:"bind",value:function(e,t){return function(n){var r=arguments.length;return 1===r?e.call(t,n):0===r?e.call(t):e.apply(t,arguments)}}},{key:"isJquery",value:function(t){return!!e.isObject(t)&&(t instanceof f.default.$||"jquery"in t||"zepto"in f.default.$&&f.default.$.zepto.isZ(t))}}]),e}();t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;i(this,e);var a=null;if(r=r||e.$,!r)throw new Error("Sparrow.$ is NULL, please set jQuery or Zepto object into it.");n.domready&&(a=n.el,n.el=null,r(document).ready(function(e){t.$options.el=a,t.$mount(a)})),this.app=new o.default(r),this.app.init(this,n)}return a(e,null,[{key:"plugin",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.$;if(!r)throw new Error("Sparrow.$ is NULL, please set jQuery or Zepto object into it.");if("undefined"==typeof r.fn)throw r("body"),new Error("Sparrow.$.fn not exists, are you sure you inject a jQuery / Zepto object?");r.fn[t]=function(i){var a=r(this[0]);return a.data(t)||(n=r.extend(!0,{},n,i),n.el=a,a.data(t,new e(n))),a.data(t)}}},{key:"$",set:function(t){Object.defineProperty(e,"$",{value:t}),e.$._name="zepto"in e.$?"Zepto":"jQuery",e.plugin(f)}}]),e}();t.default=l,l.prototype.$createElement=l.createElement=c.default,l.Promise=o.default.Promise,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.inBrowser="undefined"!=typeof window,i=t.UA=r&&window.navigator.userAgent.toLowerCase();t.isIE=i&&/msie|trident/.test(i),t.isIE9=i&&i.indexOf("msie 9.0")>0,t.isEdge=i&&i.indexOf("edge/")>0,t.isAndroid=i&&i.indexOf("android")>0,t.isIOS=i&&/iphone|ipad|ipod|ios/.test(i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){u(e,e.options.data),e.options.methods&&o(e,e.options.methods),e.options.computed&&c(e,e.options.computed),e.options.watch&&s(e,e.options.watch)}function u(e,t){for(var n in t)x.default.isReserved(n)||f(e.instance,t,n);e.observerFactory.create(t)}function o(e,t){for(var n in t){var r=t[n];e.options.data[n]||"function"!=typeof r||(e.instance[n]=x.default.bind(r,e.instance))}}function s(e,t){for(var n in t){var r=t[n],i=void 0;x.default.isPlainObject(r)&&(i=r,r=r.handler),"string"==typeof r&&(r=e[r]),e.watch(n,r,i)}}function c(e,t){var n=function(n){var r=t[n],i=P.nullFunction,a=void 0,u=void 0;a="function"==typeof r?r:r.get,a=x.default.bind(a,e.instance);var o=new y.default(e,n,a,{lazy:!0});e.hasOwnProperty(n)||("function"!=typeof r&&(i=r.set,u=r.cache,a=u===!1?P.nullFunction:function(){return o.getCachedValue()}),i=x.default.bind(i,e.instance),Object.defineProperty(e.data,n,{enumerable:!0,configurable:!0,get:a,set:i}))};for(var r in t)n(r)}function f(e,t,n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){t[n]=e}})}function l(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i="$"+n;e[i]=function(){var i=t[n].apply(t,arguments);return r?e:i}}Object.defineProperty(t,"__esModule",{value:!0});var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};this.options=this.$.extend({},I,t),this.data=t.data,this.instance=e,e.$=this.$,e.$data=this.options.data,e.$options=this.options,l(e,this,"find"),l(e,this,"async"),l(e,this,"mount",!0),l(e,this,"bind",!0),l(e,this,"on",!0),l(e,this,"model",!0),l(e,this,"show",!0),l(e,this,"wrap",!0),l(e,this,"watch",!0),l(e,this,"nextTick"),l(e,this,"forceUpdate",!0),l(e,this.event,"listen",!0),l(e,this.event,"off",!0),l(e,this.event,"once",!0),l(e,this.event,"emit",!0),l(e,this.observerFactory,"set",!0),l(e,this.observerFactory,"delete",!0),this.hook("beforeCreate"),a(this),this.hook("created"),t.el&&this.mount(t.el)}},{key:"mount",value:function(e){if(this._isMounted)return void this.error.warn("This app has been already mounted.");this.hook("beforeMount");var t=x.default.isJquery(e)?e:this.$(e);if(0!==t.length)this.instance.$el=this.$el,this._isMounted=!0,this.hook("configure"),this.hook("mounted"),this.watcher=new y.default(this,function(){this.app.watchers.map(function(e){return e.update()})},P.nullFunction),this.forceUpdate();else;}},{key:"forceUpdate",value:function(){this.watcher&&this.watcher.update()}},{key:"hook",value:function(e){this.options.hasOwnProperty(e)&&"function"==typeof this.options[e]&&this.options[e].call(this.instance)}},{key:"bind",value:function(e,t,n){var r=this.find(e);if("string"==typeof n){var i=n;n=function(e,t){switch(i){case":html":e.html(t);break;case":text":e.text(t);break;case":value":S.default.isFormElement(e)&&S.default.update(e);break;default:e.attr(i,t)}}}return this.watch(t,function(e,t,i){n.call(this.instance,r,e,t,i)}),this}},{key:"on",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this.find(e),a=this,u=function(e){n.call(a.instance,a.$(this),e)};return r?this.$el.on(t,e,u):i.on(t,u),this}},{key:"model",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(e,n){var r=void 0;switch(e.attr("type")){case"radio":r=e[0].value;break;default:r=e.val()}return x.default.set(this.$data,t,r)},i=this.find(e);return this.watch(function(){var e=x.default.get(this.$data,t);i.val()!==e&&S.default.update(i,e)},P.nullFunction),this.on(e,"change",r,n),"SELECT"!==i[0].tagName&&this.on(e,"input",r,n),this}},{key:"show",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=this.find(e);null!==r&&(i=i||r),r=r||"show",i=i||"hide";var u=function(e){return function(){return"string"==typeof e?function(){return a[e]()}:"function"==typeof e?function(t,r,i){return e.call(n.instance,a,t,r,i)}:void 0}()},o=function(e,t,n){var a=1==e||0!=e;a!=(1==t||0!=t)&&(a?u(r)(e,t,n):u(i)(e,t,n))};return this.watch(t,o),this}},{key:"wrap",value:function(e,t){var n=this.find(e),r=this,i={execute:function(){t.call(this,n,this)}};return["bind","on","model","show"].forEach(function(e){i["$"+e]=function(){return r[e].apply(r,[n].concat(Array.prototype.slice.call(arguments))),this}}),i.execute(n),this}},{key:"watch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.user=!0;var r=new y.default(this,e,t,n);return this.watchers.push(r),n.immediate&&t.call(this.instance,r.get()),function(){r.teardown()}}},{key:"find",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return("object"!==("undefined"==typeof e?"undefined":h(e))||x.default.isJquery(e))&&"string"===e?(this.elements.hasOwnProperty(e)&&!t||(this.elements[e]=this.$el.find(e)),this.elements[e]):this.$(e)}},{key:"nextTick",value:function(e){return _.default.nextTick(e)}},{key:"async",value:function(t){return new e.Promise(function(n){e.Promise.resolve().then(t).then(function(e){return n(e)})})}},{key:"pushStack",value:function(e){this.currentWatcher&&this.watcherStack.push(this.currentWatcher),this.currentWatcher=e}},{key:"popStack",value:function(){this.currentWatcher=this.watcherStack.pop()}}]),e}();t.default=D,D.Promise=E.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),a=r(i),u=n(2),o=n(3),s=r(o),c={pending:!1,tasks:[],handler:null,nextTick:function(e,t,n){var r=this.getHandler(),i=void 0;if(this.tasks.push(function(){e&&e.call(t),i&&i(t)}),this.pending||(this.pending=!0,n&&n.hook("beforeUpdate"),r()),!e&&"undefined"!=typeof Promise)return s.default.Promise(function(e){i=e})},execute:function(){c.pending=!1;var e=c.tasks.slice(0);c.tasks.length=0,e.forEach(function(e){return e()})},getHandler:function(){var e=this;if("function"!=typeof this.handler)if("undefined"!=typeof Promise&&a.default.isNative(Promise)){var t=Promise.resolve();this.handler=function(){t.then(e.execute).catch(function(e){return console.error(e)}),u.isIOS&&setTimeout(i.nullFunction)}}else if("undefined"==typeof MutationObserver||!a.default.isNative(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())this.handler=function(){setTimeout(e.execute,0)};else{var n=1,r=new MutationObserver(this.execute),o=document.createTextNode(String(n));r.observe(o,{characterData:!0}),this.handler=function(){n=(n+1)%2,o.data=String(n)}}return this.handler}};t.default=c,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:{};i(this,e),this.options=t.$.extend({},c,a),this.id=++s,this.path=n,this.callback=r,this.app=t,this.active=!0,this.ctrl=null,this.deep=this.options.deep,this.user=this.options.user,this.sync=this.options.sync,this.computed=this.options.computed,this.deferred=this.options.deferred,this.expression="",this.dispatcherIds=[],this.dispatchers=[],this.newDisptacherIds=[],this.newDisptachers=[],"function"==typeof this.path?this.getter=this.path:this.getter=function(e){return o.default.get(e,n)}}return a(e,[{key:"get",value:function(){this.app.pushStack(this);var e=void 0;return e=this.getter.call(this.app.instance,this.app.data),this.app.popStack(),this.resetDispatchers(),e}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.ctrl=e,this.computed?this.deferred=!0:this.sync?this.run():this.app.scheduler.enqueueWatcher(this)}},{key:"run",value:function(){if(this.active){var e=this.get();if(e!==this.value||this.deep||o.default.isObject(e)){var t=this.value;this.value=e,this.callback.call(this.app.instance,e,t,this.ctrl)}}this.ctrl=null}},{key:"getCachedValue",value:function(){if(this.defer&&(this.get(),this.defer=!1),this.app.currentWatcher)for(var e in this.watcher.dispatchers)this.app.currentWatcher.addDispatcher(this.dispatchers[e]);return this.value}},{key:"resetDispatchers",value:function(){var e=this;this.dispatchers.map(function(t){e.newDisptacherIds.indexOf(t.id)===-1&&t.detach(e)});var t=void 0;t=this.newDisptachers,this.dispatchers=this.newDisptachers,this.newDisptachers=t,this.newDisptachers.length=0,t=this.newDisptacherIds,this.dispatcherIds=this.newDisptacherIds,this.newDisptacherIds=t,this.newDisptacherIds.length=0}},{key:"addDispatcher",value:function(e){var t=e.id;this.newDisptacherIds.indexOf(t)===-1&&(this.newDisptacherIds.push(t),this.newDisptachers.push(e),this.dispatcherIds.indexOf(t)===-1&&e.attach(this))}},{key:"removeDispatcher",value:function(e){o.default.removeElement(this.dispatchers,e),e.detach(this)}},{key:"teardown",value:function(){var e=this;this.dispatchers.map(function(t){e.removeDispatcher(t),o.default.removeElement(e.watchers,e)})}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=document.createElement(e);for(var i in t){var u=t[i];r.setAttribute(i,u)}return a(r,n),r}function a(e,t){if(null!==t)if("string"==typeof t||"number"==typeof t)e.append(t);else if(t instanceof Element)e.appendChild(t);else if(t instanceof c.default.$||o.default.isJquery(t))t.each(function(){e.appendChild(this)});else if(Array.isArray(t)||o.default.isObject(t))for(var n in t){var r=t[n];r.hasOwnProperty("nodeName")?(r=i(r.nodeName,r.attributes,r.children),e.appendChild(r)):a(e,r)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var u=n(0),o=r(u),s=n(1),c=r(s);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===t)this.events={};else if(Array.isArray(t))return t.map(function(t){return e.listen(t,n)}),this;if(!this.events.hasOwnProperty(t))return this;if(null===n)this.events[t]=[];else if("function"==typeof n&&Array.isArray(this.events[t]))for(var r in this.events[t]){var i=this.events[t][r];i===n&&this.events[t].splice(r,1)}return this}},{key:"emit",value:function(e){if(!this.events.hasOwnProperty(e))return this;if(!Array.isArray(this.events[e]))return this;for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:[];i(this,e),this.id=++c,this.watchers=n,this.app=t}return a(e,[{key:"attach",value:function(e){this.watchers.push(e)}},{key:"detach",value:function(e){return s.default.removeElement(this.watchers,e),e.removeDispatcher(),this}},{key:"attachCurrent",value:function(){this.app.currentWatcher&&this.app.currentWatcher.addDispatcher(this)}},{key:"notify",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;this.watchers.forEach(function(t){return t.update(e)})}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.ObserverFactory=void 0;var a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[];for(var t in e){var n=e[t];n&&n.__observer__&&this.app.currentWatcher.addDispatcher(n.__observer__.dispatcher),Array.isArray(n)&&this.attachArray(n)}}},{key:"replaceArrayMethods",value:function(e){var t=this,n=Object.create(h);return d.forEach(function(e){var r=h[e];o.default.define(n,e,function(){for(var n=arguments.length,i=new Array(n);n--;)i[n]=arguments[n];var a=r.apply(this,i),u=this.__observer__,o=void 0;switch(e){case"push":o=i;break;case"unshift":o=i;break;case"splice":o=i.slice(2)}return o&&t.create(o),u.dispatcher.notify({method:e,args:i}),a})}),l?(e.__proto__=n,e):(n.forEach(function(t,n){return o.default.define(e,n,t)}),e)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n=0&&this.queue[t].id>e.id;)t--;this.queue.splice(Math.max(t,this.index)+1,0,e)}}},{key:"execute",value:function(){for(this.queue.sort(function(e,t){return e.id-t.id}),this.index=0;this.index1&&void 0!==arguments[1]?arguments[1]:{};r(this,e),this.app=t,this.store={};for(var i in n)this.set(i,n[i])}return i(e,[{key:"get",value:function(e){return this.store[e]}},{key:"set",value:function(e,t){var n=this;return this.store[e]=t,Object.defineProperty(this.app,e,{get:function(){return n.get(e)}}),this}}]),e}();t.default=a,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),a=r(i),u=n(2);if(u.inBrowser){var o=window.jQuery||window.Zepto||window.$||null;o&&(a.default.$=o)}t.default=a.default,e.exports=t.default}]); +var Sparrow=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=15)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){return Array.isArray(e)?(e.length&&e.splice(t,1),e):l.isObject(e)?(delete e[t],e):e}function u(){}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=function(){function e(e,t){for(var n=0;n-1)return e.splice(n,1)}}},{key:"has",value:function(t,n){return Array.isArray(t)?"undefined"!=typeof t[n]:!!e.isObject(t)&&t.hasOwnProperty(n)}},{key:"define",value:function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];Object.defineProperty(e,t,{value:n,enumerable:r,writable:!0,configurable:!0})}},{key:"flatten",value:function(e){var t={};for(var n in e)if(e.hasOwnProperty(n))if("object"==o(e[n])){var r=flattenObject(e[n]);for(var i in r)r.hasOwnProperty(i)&&(t[n+"."+i]=r[i])}else t[n]=e[n];return t}},{key:"isObject",value:function(e){return"object"===("undefined"==typeof e?"undefined":o(e))&&null!==e}},{key:"isPlainObject",value:function(e){return f.default.$.isPlainObject(e)}},{key:"isNative",value:function(e){return/native code/.test(e.toString())}},{key:"isReserved",value:function(e){var t=(e+"").charCodeAt(0);return"$"===t||"_"===t}},{key:"bind",value:function(e,t){return function(n){var r=arguments.length;return 1===r?e.call(t,n):0===r?e.call(t):e.apply(t,arguments)}}},{key:"isJquery",value:function(t){return!!e.isObject(t)&&(t instanceof f.default.$||"jquery"in t||"zepto"in f.default.$&&f.default.$.zepto.isZ(t))}}]),e}();t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;i(this,e);var a=null;if(r=r||e.$,!r)throw new Error("Sparrow.$ is NULL, please set jQuery or Zepto object into it.");n.domready&&(a=n.el,n.el=null,r(document).ready(function(e){t.$options.el=a,t.$mount(a)})),this.app=new o.default(r),this.app.init(this,n)}return a(e,null,[{key:"plugin",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.$;if(!r)throw new Error("Sparrow.$ is NULL, please set jQuery or Zepto object into it.");if("undefined"==typeof r.fn)throw r("body"),new Error("Sparrow.$.fn not exists, are you sure you inject a jQuery / Zepto object?");r.fn[t]=function(i){var a=r(this[0]);return a.data(t)||(n=r.extend(!0,{},n,i),n.el=a,a.data(t,new e(n))),a.data(t)}}},{key:"$",set:function(t){Object.defineProperty(e,"$",{value:t}),e.$._name="zepto"in e.$?"Zepto":"jQuery",e.plugin(f)}}]),e}();t.default=l,l.prototype.$createElement=l.createElement=c.default,l.Promise=o.default.Promise,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.inBrowser="undefined"!=typeof window,i=t.UA=r&&window.navigator.userAgent.toLowerCase();t.isIE=i&&/msie|trident/.test(i),t.isIE9=i&&i.indexOf("msie 9.0")>0,t.isEdge=i&&i.indexOf("edge/")>0,t.isAndroid=i&&i.indexOf("android")>0,t.isIOS=i&&/iphone|ipad|ipod|ios/.test(i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){u(e,e.options.data),e.options.methods&&o(e,e.options.methods),e.options.computed&&c(e,e.options.computed),e.options.watch&&s(e,e.options.watch)}function u(e,t){for(var n in t)x.default.isReserved(n)||f(e.instance,t,n);e.observerFactory.create(t)}function o(e,t){for(var n in t){var r=t[n];e.options.data[n]||"function"!=typeof r||(e.instance[n]=x.default.bind(r,e.instance))}}function s(e,t){for(var n in t){var r=t[n],i=void 0;x.default.isPlainObject(r)&&(i=r,r=r.handler),"string"==typeof r&&(r=e[r]),e.watch(n,r,i)}}function c(e,t){var n=function(n){var r=t[n],i=P.nullFunction,a=void 0,u=void 0;a="function"==typeof r?r:r.get,a=x.default.bind(a,e.instance);var o=new y.default(e,n,a,{lazy:!0});e.hasOwnProperty(n)||("function"!=typeof r&&(i=r.set,u=r.cache,a=u===!1?P.nullFunction:function(){return o.getCachedValue()}),i=x.default.bind(i,e.instance),Object.defineProperty(e.data,n,{enumerable:!0,configurable:!0,get:a,set:i}))};for(var r in t)n(r)}function f(e,t,n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){t[n]=e}})}function l(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i="$"+n;e[i]=function(){var i=t[n].apply(t,arguments);return r?e:i}}Object.defineProperty(t,"__esModule",{value:!0});var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};this.options=this.$.extend({},I,t),this.data=t.data,this.instance=e,e.$=this.$,e.$data=this.options.data,e.$options=this.options,l(e,this,"find"),l(e,this,"async"),l(e,this,"mount",!0),l(e,this,"bind",!0),l(e,this,"on",!0),l(e,this,"model",!0),l(e,this,"show",!0),l(e,this,"hide",!0),l(e,this,"wrap",!0),l(e,this,"watch",!0),l(e,this,"nextTick"),l(e,this,"forceUpdate",!0),l(e,this.event,"listen",!0),l(e,this.event,"off",!0),l(e,this.event,"once",!0),l(e,this.event,"emit",!0),l(e,this.observerFactory,"set",!0),l(e,this.observerFactory,"delete",!0),this.hook("beforeCreate"),a(this),this.hook("created"),t.el&&this.mount(t.el)}},{key:"mount",value:function(e){if(this._isMounted)return void this.error.warn("This app has been already mounted.");this.hook("beforeMount");var t=x.default.isJquery(e)?e:this.$(e);if(0!==t.length)this.instance.$el=this.$el,this._isMounted=!0,this.hook("configure"),this.hook("mounted"),this.watcher=new y.default(this,function(){this.app.watchers.map(function(e){return e.update()})},P.nullFunction),this.forceUpdate();else;}},{key:"forceUpdate",value:function(){this.watcher&&this.watcher.update()}},{key:"hook",value:function(e){this.options.hasOwnProperty(e)&&"function"==typeof this.options[e]&&this.options[e].call(this.instance)}},{key:"bind",value:function(e,t,n){var r=this.find(e);if("string"==typeof n){var i=n;n=function(e,t){switch(i){case":html":e.html(t);break;case":text":e.text(t);break;case":value":S.default.isFormElement(e)&&S.default.update(e);break;default:e.attr(i,t)}}}return this.watch(t,function(e,t,i){n.call(this.instance,r,e,t,i)}),this}},{key:"on",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this.find(e),a=this,u=function(e){n.call(a.instance,a.$(this),e)};return r?this.$el.on(t,e,u):i.on(t,u),this}},{key:"model",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(e,n){var r=void 0;switch(e.attr("type")){case"radio":r=e[0].value;break;default:r=e.val()}return x.default.set(this.$data,t,r)},i=this.find(e);return this.watch(function(){var e=x.default.get(this.$data,t);i.val()!==e&&S.default.update(i,e)},P.nullFunction),this.on(e,"change",r,n),"SELECT"!==i[0].tagName&&this.on(e,"input",r,n),this}},{key:"show",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=this.find(e);null!==r&&(i=i||r);var u=function(e){return function(){return"string"==typeof e?function(){return a[e]()}:"function"==typeof e?function(t,r,i){return e.call(n.instance,a,t,r,i)}:void 0}()};r=u(r||"show"),i=u(i||"hide");var o=function(e,t,n){var a=1==e||0!=e;a!=(1==t||0!=t)&&(a?r(e,t,n):i(e,t,n))};return this.watch(t,o),this}},{key:"hide",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=function(){return"function"==typeof t?function(){return t.call(this)}:function(){return this[t]}}.call(this),a=function(){var e=i.call(this);return 1!=e&&0==e};this.show(e,a,n,r)}},{key:"wrap",value:function(e,t){var n=this.find(e),r=this,i={execute:function(){t.call(this,n,this)}};return["bind","on","model","show"].forEach(function(e){i["$"+e]=function(){return r[e].apply(r,[n].concat(Array.prototype.slice.call(arguments))),this}}),i.execute(n),this}},{key:"watch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.user=!0;var r=new y.default(this,e,t,n);return this.watchers.push(r),n.immediate&&t.call(this.instance,r.get()),function(){r.teardown()}}},{key:"find",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return("object"!==("undefined"==typeof e?"undefined":h(e))||x.default.isJquery(e))&&"string"===e?(this.elements.hasOwnProperty(e)&&!t||(this.elements[e]=this.$el.find(e)),this.elements[e]):this.$(e)}},{key:"nextTick",value:function(e){return _.default.nextTick(e)}},{key:"async",value:function(t){return new e.Promise(function(n){e.Promise.resolve().then(t).then(function(e){return n(e)})})}},{key:"pushStack",value:function(e){this.currentWatcher&&this.watcherStack.push(this.currentWatcher),this.currentWatcher=e}},{key:"popStack",value:function(){this.currentWatcher=this.watcherStack.pop()}}]),e}();t.default=D,D.Promise=E.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),a=r(i),u=n(2),o=n(3),s=r(o),c={pending:!1,tasks:[],handler:null,nextTick:function(e,t,n){var r=this.getHandler(),i=void 0;if(this.tasks.push(function(){e&&e.call(t),i&&i(t)}),this.pending||(this.pending=!0,n&&n.hook("beforeUpdate"),r()),!e&&"undefined"!=typeof Promise)return s.default.Promise(function(e){i=e})},execute:function(){c.pending=!1;var e=c.tasks.slice(0);c.tasks.length=0,e.forEach(function(e){return e()})},getHandler:function(){var e=this;if("function"!=typeof this.handler)if("undefined"!=typeof Promise&&a.default.isNative(Promise)){var t=Promise.resolve();this.handler=function(){t.then(e.execute).catch(function(e){return console.error(e)}),u.isIOS&&setTimeout(i.nullFunction)}}else if("undefined"==typeof MutationObserver||!a.default.isNative(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())this.handler=function(){setTimeout(e.execute,0)};else{var n=1,r=new MutationObserver(this.execute),o=document.createTextNode(String(n));r.observe(o,{characterData:!0}),this.handler=function(){n=(n+1)%2,o.data=String(n)}}return this.handler}};t.default=c,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:{};i(this,e),this.options=t.$.extend({},c,a),this.id=++s,this.path=n,this.callback=r,this.app=t,this.active=!0,this.ctrl=null,this.deep=this.options.deep,this.user=this.options.user,this.sync=this.options.sync,this.computed=this.options.computed,this.deferred=this.options.deferred,this.expression="",this.dispatcherIds=[],this.dispatchers=[],this.newDisptacherIds=[],this.newDisptachers=[],"function"==typeof this.path?this.getter=this.path:this.getter=function(e){return o.default.get(e,n)}}return a(e,[{key:"get",value:function(){this.app.pushStack(this);var e=void 0;return e=this.getter.call(this.app.instance,this.app.data),this.app.popStack(),this.resetDispatchers(),e}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.ctrl=e,this.computed?this.deferred=!0:this.sync?this.run():this.app.scheduler.enqueueWatcher(this)}},{key:"run",value:function(){if(this.active){var e=this.get();if(e!==this.value||this.deep||o.default.isObject(e)){var t=this.value;this.value=e,this.callback.call(this.app.instance,e,t,this.ctrl)}}this.ctrl=null}},{key:"getCachedValue",value:function(){if(this.defer&&(this.get(),this.defer=!1),this.app.currentWatcher)for(var e in this.watcher.dispatchers)this.app.currentWatcher.addDispatcher(this.dispatchers[e]);return this.value}},{key:"resetDispatchers",value:function(){var e=this;this.dispatchers.map(function(t){e.newDisptacherIds.indexOf(t.id)===-1&&t.detach(e)});var t=void 0;t=this.newDisptachers,this.dispatchers=this.newDisptachers,this.newDisptachers=t,this.newDisptachers.length=0,t=this.newDisptacherIds,this.dispatcherIds=this.newDisptacherIds,this.newDisptacherIds=t,this.newDisptacherIds.length=0}},{key:"addDispatcher",value:function(e){var t=e.id;this.newDisptacherIds.indexOf(t)===-1&&(this.newDisptacherIds.push(t),this.newDisptachers.push(e),this.dispatcherIds.indexOf(t)===-1&&e.attach(this))}},{key:"removeDispatcher",value:function(e){o.default.removeElement(this.dispatchers,e),e.detach(this)}},{key:"teardown",value:function(){var e=this;this.dispatchers.map(function(t){e.removeDispatcher(t),o.default.removeElement(e.watchers,e)})}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=document.createElement(e);for(var i in t){var u=t[i];r.setAttribute(i,u)}return a(r,n),r}function a(e,t){if(null!==t)if("string"==typeof t||"number"==typeof t)e.append(t);else if(t instanceof Element)e.appendChild(t);else if(t instanceof c.default.$||o.default.isJquery(t))t.each(function(){e.appendChild(this)});else if(Array.isArray(t)||o.default.isObject(t))for(var n in t){var r=t[n];r.hasOwnProperty("nodeName")?(r=i(r.nodeName,r.attributes,r.children),e.appendChild(r)):a(e,r)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var u=n(0),o=r(u),s=n(1),c=r(s);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===t)this.events={};else if(Array.isArray(t))return t.map(function(t){return e.listen(t,n)}),this;if(!this.events.hasOwnProperty(t))return this;if(null===n)this.events[t]=[];else if("function"==typeof n&&Array.isArray(this.events[t]))for(var r in this.events[t]){var i=this.events[t][r];i===n&&this.events[t].splice(r,1)}return this}},{key:"emit",value:function(e){if(!this.events.hasOwnProperty(e))return this;if(!Array.isArray(this.events[e]))return this;for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:[];i(this,e),this.id=++c,this.watchers=n,this.app=t}return a(e,[{key:"attach",value:function(e){this.watchers.push(e)}},{key:"detach",value:function(e){return s.default.removeElement(this.watchers,e),e.removeDispatcher(),this}},{key:"attachCurrent",value:function(){this.app.currentWatcher&&this.app.currentWatcher.addDispatcher(this)}},{key:"notify",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;this.watchers.forEach(function(t){return t.update(e)})}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.ObserverFactory=void 0;var a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[];for(var t in e){var n=e[t];n&&n.__observer__&&this.app.currentWatcher.addDispatcher(n.__observer__.dispatcher),Array.isArray(n)&&this.attachArray(n)}}},{key:"replaceArrayMethods",value:function(e){var t=this,n=Object.create(h);return d.forEach(function(e){var r=h[e];o.default.define(n,e,function(){for(var n=arguments.length,i=new Array(n);n--;)i[n]=arguments[n];var a=r.apply(this,i),u=this.__observer__,o=void 0;switch(e){case"push":o=i;break;case"unshift":o=i;break;case"splice":o=i.slice(2)}return o&&t.create(o),u.dispatcher.notify({method:e,args:i}),a})}),l?(e.__proto__=n,e):(n.forEach(function(t,n){return o.default.define(e,n,t)}),e)}}]),e}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n=0&&this.queue[t].id>e.id;)t--;this.queue.splice(Math.max(t,this.index)+1,0,e)}}},{key:"execute",value:function(){for(this.queue.sort(function(e,t){return e.id-t.id}),this.index=0;this.index1&&void 0!==arguments[1]?arguments[1]:{};r(this,e),this.app=t,this.store={};for(var i in n)this.set(i,n[i])}return i(e,[{key:"get",value:function(e){return this.store[e]}},{key:"set",value:function(e,t){var n=this;return this.store[e]=t,Object.defineProperty(this.app,e,{get:function(){return n.get(e)}}),this}}]),e}();t.default=a,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),a=r(i),u=n(2);if(u.inBrowser){var o=window.jQuery||window.Zepto||window.$||null;o&&(a.default.$=o)}t.default=a.default,e.exports=t.default}]); //# sourceMappingURL=sparrow.js.map \ No newline at end of file