UNPKG

5.68 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ArrayExpression.ion"],"names":["ion","DynamicExpression","ArrayExpression","constructor","elements","Error","context","properties","observeElements","notifyIfActive",{"type":"Identifier","name":"notifyIfActive","loc":{"start":{"line":14,"column":8,"fixed":true,"source":"ion/runtime/ArrayExpression.ion"},"end":{"line":14,"column":22,"fixed":true,"source":"ion/runtime/ArrayExpression.ion"}}},"isActive","notify","setArgumentValue","key","value","argumentValues","unobserve","itemObserver","observe","activate","item","createRuntime","expressions","expressionWatchers","length","bind","expression","watch","setValue","deactivate","unwatch","test","Context","e","type","result","watcher","JSON","stringify"],"mappings":"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","sourcesContent":["const\n ion = import '../'\n DynamicExpression = import './DynamicExpression'\n\nexport class ArrayExpression extends DynamicExpression\n constructor: ->\n super\n if not @elements?\n throw new Error(\"elements is required\")\n if not @context?\n throw new Error(\"context is required\")\n properties:\n observeElements: false\n notifyIfActive: ->\n if @isActive\n @notify()\n setArgumentValue: (key, value) ->\n if @argumentValues[key] isnt value\n if @observeElements\n ion.unobserve(@argumentValues[key], @itemObserver)\n @argumentValues[key] = value\n if @observeElements\n # console.log \"observe items=============\" + JSON.stringify value\n ion.observe(\n value\n @itemObserver ?= =>\n # console.log '=========observed========' + JSON.stringify(value)\n @notifyIfActive()\n )\n @notifyIfActive()\n activate: ->\n if not @argumentValues?\n @expressions = [@context.createRuntime(item) for item in @elements]\n @argumentValues = []\n @expressionWatchers = []\n for let key = 0; key < @expressions.length; key++\n @expressionWatchers[key] = @setArgumentValue.bind(@, key)\n for expression, key in @expressions\n expression.watch(@expressionWatchers[key])\n super\n @setValue(@argumentValues)\n deactivate: ->\n for expression, key in @expressions\n expression.unwatch(@expressionWatchers[key])\n super\n test: ->\n const Context = import './Context'\n let e = new ArrayExpression(\n context: new Context()\n elements: []\n {type:'Literal', value: 1}\n {type:'Literal', value: 2}\n )\n let result = undefined\n const watcher(value) ->\n result = value\n e.watch(watcher)\n assert JSON.stringify(result) is \"[1,2]\"\n"]}
\No newline at end of file