grainjs 0.1.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/README.md +54 -9
  2. package/dist/cjs/index.d.ts +6 -2
  3. package/dist/cjs/index.js +24 -17
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/lib/PriorityQueue.d.ts +1 -1
  6. package/dist/cjs/lib/PriorityQueue.js +1 -0
  7. package/dist/cjs/lib/PriorityQueue.js.map +1 -1
  8. package/dist/cjs/lib/_computed_queue.d.ts +18 -0
  9. package/dist/cjs/lib/_computed_queue.js +6 -1
  10. package/dist/cjs/lib/_computed_queue.js.map +1 -1
  11. package/dist/cjs/lib/binding.d.ts +16 -10
  12. package/dist/cjs/lib/binding.js +22 -27
  13. package/dist/cjs/lib/binding.js.map +1 -1
  14. package/dist/cjs/lib/browserGlobals.d.ts +4 -1
  15. package/dist/cjs/lib/browserGlobals.js +2 -0
  16. package/dist/cjs/lib/browserGlobals.js.map +1 -1
  17. package/dist/cjs/lib/computed.d.ts +11 -7
  18. package/dist/cjs/lib/computed.js +16 -0
  19. package/dist/cjs/lib/computed.js.map +1 -1
  20. package/dist/cjs/lib/dispose.d.ts +106 -14
  21. package/dist/cjs/lib/dispose.js +76 -11
  22. package/dist/cjs/lib/dispose.js.map +1 -1
  23. package/dist/cjs/lib/dom.d.ts +21 -17
  24. package/dist/cjs/lib/dom.js +33 -26
  25. package/dist/cjs/lib/dom.js.map +1 -1
  26. package/dist/cjs/lib/domComponent.d.ts +71 -0
  27. package/dist/cjs/lib/domComponent.js +15 -0
  28. package/dist/cjs/lib/domComponent.js.map +1 -0
  29. package/dist/cjs/lib/domComputed.d.ts +89 -0
  30. package/dist/cjs/lib/domComputed.js +92 -0
  31. package/dist/cjs/lib/domComputed.js.map +1 -0
  32. package/dist/cjs/lib/{_domDispose.d.ts → domDispose.d.ts} +12 -2
  33. package/dist/cjs/lib/{_domDispose.js → domDispose.js} +21 -8
  34. package/dist/cjs/lib/domDispose.js.map +1 -0
  35. package/dist/cjs/lib/{_domForEach.d.ts → domForEach.d.ts} +2 -2
  36. package/dist/cjs/lib/domForEach.js +72 -0
  37. package/dist/cjs/lib/domForEach.js.map +1 -0
  38. package/dist/cjs/lib/{_domImpl.d.ts → domImpl.d.ts} +15 -12
  39. package/dist/cjs/lib/{_domImpl.js → domImpl.js} +23 -6
  40. package/dist/cjs/lib/domImpl.js.map +1 -0
  41. package/dist/cjs/lib/{_domMethods.d.ts → domMethods.d.ts} +27 -62
  42. package/dist/cjs/lib/{_domMethods.js → domMethods.js} +21 -76
  43. package/dist/cjs/lib/domMethods.js.map +1 -0
  44. package/dist/cjs/lib/domevent.d.ts +32 -21
  45. package/dist/cjs/lib/domevent.js +33 -12
  46. package/dist/cjs/lib/domevent.js.map +1 -1
  47. package/dist/cjs/lib/emit.d.ts +25 -2
  48. package/dist/cjs/lib/emit.js +3 -1
  49. package/dist/cjs/lib/emit.js.map +1 -1
  50. package/dist/cjs/lib/kowrap.d.ts +45 -3
  51. package/dist/cjs/lib/kowrap.js +93 -10
  52. package/dist/cjs/lib/kowrap.js.map +1 -1
  53. package/dist/cjs/lib/obsArray.d.ts +8 -8
  54. package/dist/cjs/lib/obsArray.js +1 -0
  55. package/dist/cjs/lib/obsArray.js.map +1 -1
  56. package/dist/cjs/lib/observable.d.ts +6 -1
  57. package/dist/cjs/lib/observable.js +11 -2
  58. package/dist/cjs/lib/observable.js.map +1 -1
  59. package/dist/cjs/lib/pureComputed.d.ts +3 -3
  60. package/dist/cjs/lib/pureComputed.js +2 -1
  61. package/dist/cjs/lib/pureComputed.js.map +1 -1
  62. package/dist/cjs/lib/styled.d.ts +76 -11
  63. package/dist/cjs/lib/styled.js +55 -23
  64. package/dist/cjs/lib/styled.js.map +1 -1
  65. package/dist/cjs/lib/subscribe.d.ts +15 -6
  66. package/dist/cjs/lib/subscribe.js +6 -2
  67. package/dist/cjs/lib/subscribe.js.map +1 -1
  68. package/dist/cjs/lib/util.js +1 -0
  69. package/dist/cjs/lib/util.js.map +1 -1
  70. package/dist/cjs/lib/widgets/input.d.ts +2 -2
  71. package/dist/cjs/lib/widgets/input.js +2 -2
  72. package/dist/cjs/lib/widgets/input.js.map +1 -1
  73. package/dist/cjs/lib/widgets/select.d.ts +1 -1
  74. package/dist/cjs/lib/widgets/select.js +1 -0
  75. package/dist/cjs/lib/widgets/select.js.map +1 -1
  76. package/dist/esm/index.js +6 -2
  77. package/dist/esm/index.js.map +1 -1
  78. package/dist/esm/lib/PriorityQueue.js.map +1 -1
  79. package/dist/esm/lib/_computed_queue.js +5 -1
  80. package/dist/esm/lib/_computed_queue.js.map +1 -1
  81. package/dist/esm/lib/binding.js +20 -27
  82. package/dist/esm/lib/binding.js.map +1 -1
  83. package/dist/esm/lib/browserGlobals.js +1 -0
  84. package/dist/esm/lib/browserGlobals.js.map +1 -1
  85. package/dist/esm/lib/computed.js +15 -0
  86. package/dist/esm/lib/computed.js.map +1 -1
  87. package/dist/esm/lib/dispose.js +74 -11
  88. package/dist/esm/lib/dispose.js.map +1 -1
  89. package/dist/esm/lib/dom.js +21 -17
  90. package/dist/esm/lib/dom.js.map +1 -1
  91. package/dist/esm/lib/domComponent.js +11 -0
  92. package/dist/esm/lib/domComponent.js.map +1 -0
  93. package/dist/esm/lib/domComputed.js +84 -0
  94. package/dist/esm/lib/domComputed.js.map +1 -0
  95. package/dist/esm/lib/{_domDispose.js → domDispose.js} +19 -8
  96. package/dist/esm/lib/domDispose.js.map +1 -0
  97. package/dist/esm/lib/domForEach.js +68 -0
  98. package/dist/esm/lib/domForEach.js.map +1 -0
  99. package/dist/esm/lib/{_domImpl.js → domImpl.js} +20 -4
  100. package/dist/esm/lib/domImpl.js.map +1 -0
  101. package/dist/esm/lib/{_domMethods.js → domMethods.js} +8 -63
  102. package/dist/esm/lib/domMethods.js.map +1 -0
  103. package/dist/esm/lib/domevent.js +30 -11
  104. package/dist/esm/lib/domevent.js.map +1 -1
  105. package/dist/esm/lib/emit.js +2 -1
  106. package/dist/esm/lib/emit.js.map +1 -1
  107. package/dist/esm/lib/kowrap.js +90 -10
  108. package/dist/esm/lib/kowrap.js.map +1 -1
  109. package/dist/esm/lib/obsArray.js.map +1 -1
  110. package/dist/esm/lib/observable.js +9 -1
  111. package/dist/esm/lib/observable.js.map +1 -1
  112. package/dist/esm/lib/pureComputed.js +1 -1
  113. package/dist/esm/lib/pureComputed.js.map +1 -1
  114. package/dist/esm/lib/styled.js +52 -22
  115. package/dist/esm/lib/styled.js.map +1 -1
  116. package/dist/esm/lib/subscribe.js +5 -2
  117. package/dist/esm/lib/subscribe.js.map +1 -1
  118. package/dist/esm/lib/util.js.map +1 -1
  119. package/dist/esm/lib/widgets/input.js +1 -2
  120. package/dist/esm/lib/widgets/input.js.map +1 -1
  121. package/dist/esm/lib/widgets/select.js.map +1 -1
  122. package/dist/grain-full.debug.js +1627 -1222
  123. package/dist/grain-full.min.js +1 -1
  124. package/dist/grain-full.min.js.map +1 -1
  125. package/index.ts +6 -2
  126. package/lib/_computed_queue.ts +7 -1
  127. package/lib/binding.ts +33 -28
  128. package/lib/browserGlobals.ts +3 -1
  129. package/lib/computed.ts +37 -7
  130. package/lib/dispose.ts +81 -33
  131. package/lib/dom.ts +24 -18
  132. package/lib/domComponent.ts +89 -0
  133. package/lib/domComputed.ts +146 -0
  134. package/lib/{_domDispose.ts → domDispose.ts} +26 -8
  135. package/lib/{_domForEach.ts → domForEach.ts} +12 -11
  136. package/lib/{_domImpl.ts → domImpl.ts} +36 -30
  137. package/lib/{_domMethods.ts → domMethods.ts} +33 -103
  138. package/lib/domevent.ts +59 -22
  139. package/lib/emit.ts +2 -1
  140. package/lib/kowrap.ts +109 -11
  141. package/lib/obsArray.ts +2 -2
  142. package/lib/observable.ts +10 -2
  143. package/lib/pureComputed.ts +7 -6
  144. package/lib/styled.ts +65 -39
  145. package/lib/subscribe.ts +24 -8
  146. package/lib/widgets/input.ts +9 -7
  147. package/lib/widgets/select.ts +3 -3
  148. package/package.json +41 -42
  149. package/dist/cjs/lib/_domComponent.d.ts +0 -84
  150. package/dist/cjs/lib/_domComponent.js +0 -160
  151. package/dist/cjs/lib/_domComponent.js.map +0 -1
  152. package/dist/cjs/lib/_domDispose.js.map +0 -1
  153. package/dist/cjs/lib/_domForEach.js +0 -71
  154. package/dist/cjs/lib/_domForEach.js.map +0 -1
  155. package/dist/cjs/lib/_domImpl.js.map +0 -1
  156. package/dist/cjs/lib/_domMethods.js.map +0 -1
  157. package/dist/esm/lib/_domComponent.js +0 -155
  158. package/dist/esm/lib/_domComponent.js.map +0 -1
  159. package/dist/esm/lib/_domDispose.js.map +0 -1
  160. package/dist/esm/lib/_domForEach.js +0 -68
  161. package/dist/esm/lib/_domForEach.js.map +0 -1
  162. package/dist/esm/lib/_domImpl.js.map +0 -1
  163. package/dist/esm/lib/_domMethods.js.map +0 -1
  164. package/lib/_domComponent.ts +0 -167
@@ -1,2 +1,2 @@
1
- !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).grainjs=e()}}(function(){return function(){return function e(t,s,n){function o(r,u){if(!s[r]){if(!t[r]){var c="function"==typeof require&&require;if(!u&&c)return c(r,!0);if(i)return i(r,!0);var l=new Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}var d=s[r]={exports:{}};t[r][0].call(d.exports,function(e){return o(t[r][1][e]||e)},d,d.exports,e,t,s,n)}return s[r].exports}for(var i="function"==typeof require&&require,r=0;r<n.length;r++)o(n[r]);return o}}()({1:[function(e,t,s){"use strict";function n(e){for(var t in e)s.hasOwnProperty(t)||(s[t]=e[t])}Object.defineProperty(s,"__esModule",{value:!0});var o=e("./lib/computed");s.Computed=o.Computed,s.computed=o.computed,n(e("./lib/dispose")),n(e("./lib/dom")),n(e("./lib/emit")),n(e("./lib/kowrap")),n(e("./lib/obsArray")),n(e("./lib/observable")),n(e("./lib/styled"));var i=e("./lib/subscribe");s.Subscription=i.Subscription,s.subscribe=i.subscribe,n(e("./lib/util"))},{"./lib/computed":11,"./lib/dispose":12,"./lib/dom":13,"./lib/emit":15,"./lib/kowrap":16,"./lib/obsArray":17,"./lib/observable":18,"./lib/styled":19,"./lib/subscribe":20,"./lib/util":21}],2:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});s.PriorityQueue=class{constructor(e){this._isPrior=e,this._items=[]}get size(){return this._items.length}push(e){const t=this._items,s=this._isPrior;let n=this._items.length;for(;n>0;){const o=n-1>>1,i=t[o];if(s(i,e))break;t[n]=i,n=o}t[n]=e}peek(){return this._items[0]}pop(){if(this._items.length<=1)return this._items.pop();const e=this._items,t=this._isPrior,s=e[0],n=e.pop(),o=this._items.length;let i=0,r=1;for(;r<o;){const s=r+1,u=s<o&&t(e[s],e[r])?s:r;if(t(n,e[u]))break;e[i]=e[u],r=(i=u)+i+1}return e[i]=n,s}}},{}],3:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./PriorityQueue");class o{constructor(e,t){this._priority=0,this._enqueued=!1,this._callback=e,this._context=t}static isPrioritySmaller(e,t){return e._priority<t._priority}useDep(e){const t=e?e._priority:0;t>=this._priority&&(this._priority=t+1)}recompute(){this._priority=0,this._callback.call(this._context)}enqueue(){this._enqueued||(this._enqueued=!0,i.push(this))}}s.DepItem=o;const i=new n.PriorityQueue(o.isPrioritySmaller),r=[];let u=0;function c(){if(0===u&&i.size>0){u++;try{do{const e=i.pop();r.push(e),e.recompute()}while(i.size>0)}finally{for(const e of r)e._enqueued=!1;r.length=0,u--}}}s._getPriority=function(e){const t=e._getDepItem();return t?t._priority:0},s.compute=c,s.bundleChanges=function(e){try{return u++,e()}finally{u--,c()}}},{"./PriorityQueue":2}],4:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./_domDispose"),o=e("./_domImpl"),i=e("./_domMethods"),r=e("./dispose"),u=e("./browserGlobals");class c{constructor(e){this._parentElem=e}autoDispose(e){e.mount(this._parentElem)}}s.Component=class extends r.Disposable{constructor(){super(),this._markerPre=u.G.document.createComment("A"),this._markerPost=u.G.document.createComment("B"),this._contentToMount=null,n.onDisposeElem(this._markerPost,()=>{this._markerPre=this._markerPost=void 0,this.dispose()}),this.onDispose(this._unmount,this)}static create(e,...t){const s=e instanceof u.G.Element?new c(e):e;return r.Disposable.create.call(this,s,...t)}mount(e){if(!this._markerPost)throw new Error("Component mount() called when already disposed");if(this._markerPost.parentNode)throw new Error("Component mount() called twice");o.update(e,this._markerPre,this._contentToMount,this._markerPost),this._contentToMount=null}setContent(e){this._markerPost&&(this._markerPost.parentNode?i.replaceContent(this._markerPre,this._markerPost,e):this._contentToMount=e)}_unmount(){if(this._markerPost&&this._markerPost.parentNode){const e=this._markerPost.parentNode;i.replaceContent(this._markerPre,this._markerPost,null),e.removeChild(this._markerPre),e.removeChild(this._markerPost)}this._markerPre=this._markerPost=void 0}},s.create=function(e,...t){return s=>{e.create(s,...t)}},s.createInit=function(e,...t){return s=>{t.pop()(e.create(s,...t))}}},{"./_domDispose":5,"./_domImpl":7,"./_domMethods":8,"./browserGlobals":10,"./dispose":12}],5:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=new WeakMap;function o(e){let t=n.get(e);if(t){let s=e;do{n.delete(s),t(e),s=t,t=n.get(s)}while(t)}}function i(e,t){const s=n.get(e);n.set(e,t),s&&n.set(t,s)}function r(e,t){t&&i(e,()=>t.dispose())}s.domDispose=function(e){!function e(t,s){let n=t.firstChild;for(;n;)e(n,s),n=n.nextSibling;s(t)}(e,o)},s.onDisposeElem=i,s.onDispose=function(e){return t=>i(t,e)},s.autoDisposeElem=r,s.autoDispose=function(e){if(e)return t=>r(t,e)}},{}],6:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./_domDispose"),o=e("./_domImpl"),i=e("./_domMethods"),r=e("./obsArray"),u=e("./browserGlobals");s.forEach=function(e,t){return s=>{const c=u.G.document.createComment("a"),l=u.G.document.createComment("b");if(s.appendChild(c),s.appendChild(l),Array.isArray(e))return void i.replaceContent(c,l,e.map(t));const d=r.computedArray(e,t);d.addListener((e,t,r)=>{if(r){for(const e of r.deleted)e&&e.parentNode===s&&(n.domDispose(e),s.removeChild(e));if(r.numAdded>0){const t=r.start+r.numAdded;let n=l;for(let o=t;o<e.length;o++){const t=e[o];if(t&&t.parentNode===s){n=t;break}}const i=o.frag(e.slice(r.start,t));s.insertBefore(i,n)}}else i.replaceContent(c,l,e)}),i.replaceContent(c,l,d.get())}}},{"./_domDispose":5,"./_domImpl":7,"./_domMethods":8,"./browserGlobals":10,"./obsArray":17}],7:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./_domDispose"),o=e("./_domMethods"),i=e("./browserGlobals");function r(e){return i.G.document.createElement(e)}function u(e){return i.G.document.createElementNS("http://www.w3.org/2000/svg",e)}function c(e,t){let s,n,o,i=t.indexOf(".");const r=t.indexOf("#");if(-1===i?i=t.length:o=t.substring(i+1).replace(/\./g," "),-1===r)s=t.substring(0,i);else{if(r>i)throw new Error(`ID must come before classes in dom("${t}")`);s=t.substring(0,r),n=t.substring(r+1,i)}const u=e(s);return n&&u.setAttribute("id",n),o&&u.setAttribute("class",o),u}function l(e,t){for(const s of t)a(e,s);return e}function d(e,t){try{return l(e,t)}catch(t){throw n.domDispose(e),t}}function a(e,t){if("function"==typeof t){const s=t(e);void 0!==s&&null!==s&&a(e,s)}else Array.isArray(t)?l(e,t):void 0===t||null===t||(t instanceof i.G.Node?e.appendChild(t):"object"==typeof t?o.attrsElem(e,t):e.appendChild(i.G.document.createTextNode(t)))}s.dom=function(e,...t){return d(c(r,e),t)},s.svg=function(e,...t){return d(c(u,e),t)},s.update=function(e,...t){return l(e,t)},s.frag=function(...e){return d(i.G.document.createDocumentFragment(),e)},s.find=function(e){return i.G.document.querySelector(e)},s.findAll=function(e){return i.G.document.querySelectorAll(e)}},{"./_domDispose":5,"./_domMethods":8,"./browserGlobals":10}],8:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./_domDispose"),o=e("./_domImpl"),i=e("./binding"),r=e("./browserGlobals"),u=new WeakMap;function c(e,t,s){n.autoDisposeElem(e,i.subscribe(t,s))}function l(e,t){for(const s of Object.keys(t)){const n=t[s];null!=n&&!1!==n&&e.setAttribute(s,!0===n?"":n)}}function d(e,t,s){null===s||void 0===s?e.removeAttribute(t):e.setAttribute(t,s)}function a(e,t,s){d(e,t,s?"":null)}function h(e,t,s){e.style[t]=s}function p(e,t,s){e[t]=s}function _(e,t){e.style.display=t?"":"none"}function m(e,t){e.style.display=t?"none":""}function f(e,t,s=!0){e.classList.toggle(t,Boolean(s))}function b(e,t){return"string"!=typeof e?g("",e):t&&"boolean"!=typeof t?s=>c(s,t,t=>f(s,e,t)):s=>f(s,e,t)}function g(e,t){return s=>{let n=null;c(s,t,t=>{n&&s.classList.remove(n),(n=t?e+t:null)&&s.classList.add(n)})}}function y(e,t,s){const o=u.get(e);o?o[t]=s:(n.onDisposeElem(e,()=>u.delete(e)),u.set(e,{[t]:s}))}function v(e,t,s){const i=e.parentNode;if(i){let u;for(let s=e.nextSibling;s&&s!==t;s=u)u=s.nextSibling,n.domDispose(s),i.removeChild(s);s&&i.insertBefore(s instanceof r.G.Node?s:o.frag(s),t)}}function w(e,t){const s=t||C;return t=>{const n=r.G.document.createComment("a"),o=r.G.document.createComment("b");t.appendChild(n),t.appendChild(o),c(t,e,e=>v(n,o,s(e)))}}function C(e){return e}s.attrsElem=l,s.attrs=function(e){return t=>l(t,e)},s.attrElem=d,s.attr=function(e,t){return s=>c(s,t,t=>d(s,e,t))},s.boolAttrElem=a,s.boolAttr=function(e,t){return s=>c(s,t,t=>a(s,e,t))},s.textElem=function(e,t){e.appendChild(r.G.document.createTextNode(t))},s.text=function(e){return t=>{const s=r.G.document.createTextNode("");c(t,e,e=>{s.nodeValue=e}),t.appendChild(s)}},s.styleElem=h,s.style=function(e,t){return s=>c(s,t,t=>h(s,e,t))},s.propElem=p,s.prop=function(e,t){return s=>c(s,t,t=>p(s,e,t))},s.showElem=_,s.show=function(e){return t=>c(t,e,e=>_(t,e))},s.hideElem=m,s.hide=function(e){return t=>c(t,e,e=>m(t,e))},s.clsElem=f,s.cls=b,s.clsPrefix=function(e,t,s){return"string"!=typeof t?g(e,t):b(e+t,s)},s.dataElem=y,s.data=function(e,t){return s=>c(s,t,t=>y(s,e,t))},s.getData=function(e,t){const s=u.get(e);return s&&s[t]},s.replaceContent=v,s.domComputed=w,s.maybe=function(e,t){return w(e,e=>e?t(e):null)}},{"./_domDispose":5,"./_domImpl":7,"./binding":9,"./browserGlobals":10}],9:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./computed"),o=e("./observable");s.subscribe=function(e,t){if("function"==typeof e){const s=e;if("function"==typeof s.peek){let e=s.peek();const n=s.subscribe(s=>{const n=e;e=s,t(s,n)});return t(e,void 0),n}const o=n.computed(e);return o.addListener(t),t(o.get(),void 0),o}if(e instanceof o.Observable){const s=e.addListener(t);return t(e.get(),void 0),s}return t(e,void 0),null}},{"./computed":11,"./observable":18}],10:[function(e,t,s){"use strict";function n(e,t){e.DocumentFragment=t.DocumentFragment,e.Element=t.Element,e.Node=t.Node,e.document=t.document,e.window=t.window}Object.defineProperty(s,"__esModule",{value:!0});const o={};n(o,"undefined"!=typeof window?window:{}),s.G=Object.assign({},o);const i=[o];s.pushGlobals=function(e){i.push(e),n(s.G,e)},s.popGlobals=function(){i.length>1&&i.pop(),n(s.G,i[i.length-1])}},{}],11:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./observable"),o=e("./subscribe");function i(){throw new Error("Can't write to non-writable computed")}class r extends n.Observable{constructor(e,t){super(void 0),this._callback=e,this._write=i,this._sub=new o.Subscription(this._read.bind(this),t,this)}_getDepItem(){return this._sub._getDepItem()}set(e){this._write(e)}onWrite(e){return this._write=e,this}dispose(){this._sub.dispose(),super.dispose()}_read(e,...t){super.set(this._callback(e,...t))}}s.Computed=r,s.computed=function(...e){const t=e.pop();return new r(t,e)}},{"./observable":18,"./subscribe":20}],12:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./emit");let o={autoDispose(e){}};class i{constructor(){this._disposalList=new l,o.autoDispose(this)}static create(e,...t){const s=o,n=new r;try{return o=n,u(e,new this(...t))}catch(e){try{n.clear()}catch(e){console.error("Error disposing partially constructed %s:",this.name,e)}throw e}finally{n.release(),o=s}}autoDispose(e){return this.onDispose(e.dispose,e),e}onDispose(e,t){this._disposalList.addListener(e,t)}wipeOnDispose(){this.onDispose(this._wipeOutObject,this)}isDisposed(){return null===this._disposalList}dispose(){const e=this._disposalList;this._disposalList=null,e.callAndDispose(this)}_wipeOutObject(){for(const e of Object.keys(this))this[e]=null}}s.Disposable=i;class r{constructor(){this._owned=null}static create(e){return u(e,new r)}autoDispose(e){return this._owned&&this._owned.dispose(),this._owned=e,e instanceof i&&e.onDispose(this.release,this),e}release(){const e=this._owned;return this._owned=null,e}clear(){this._owned&&(this._owned.dispose(),this._owned=null)}get(){return this._owned}isEmpty(){return!this._owned}dispose(){this.clear()}}function u(e,t){return e&&e.autoDispose(t),t}function c(e){return e&&e.constructor&&e.constructor.name?e.constructor.name:""+e}s.Holder=r,s.setDisposeOwner=u;class l extends n.LLink{constructor(){super()}addListener(e,t){const s=new d(e,t);this._insertBefore(this._next,s)}callAndDispose(e){try{d.callAll(this._next,this,e)}finally{this._disposeList()}}}class d extends n.LLink{constructor(e,t){super(),this.callback=e,this.context=t}static callAll(e,t,s){for(;e!==t;){const t=e;try{t.callback.call(t.context)}catch(e){console.error("While disposing %s, error disposing %s: %s",c(s),c(this),e)}e=t._next}}}},{"./emit":15}],13:[function(e,t,s){"use strict";function n(e){for(var t in e)s.hasOwnProperty(t)||(s[t]=e[t])}Object.defineProperty(s,"__esModule",{value:!0});var o=e("./_domImpl");s.svg=o.svg,s.update=o.update,s.frag=o.frag,s.find=o.find,s.findAll=o.findAll,n(e("./_domComponent")),n(e("./_domDispose")),n(e("./_domForEach")),n(e("./_domMethods")),n(e("./domevent"));const i=e("./_domComponent"),r=e("./_domDispose"),u=e("./_domForEach"),c=e("./_domImpl"),l=e("./_domMethods"),d=e("./domevent");function a(e,...t){return c.dom(e,...t)}s.dom=a,function(e){e.svg=c.svg,e.frag=c.frag,e.update=c.update,e.find=c.find,e.findAll=c.findAll,e.domDispose=r.domDispose,e.onDisposeElem=r.onDisposeElem,e.onDispose=r.onDispose,e.autoDisposeElem=r.autoDisposeElem,e.autoDispose=r.autoDispose,e.attrsElem=l.attrsElem,e.attrs=l.attrs,e.attrElem=l.attrElem,e.attr=l.attr,e.boolAttrElem=l.boolAttrElem,e.boolAttr=l.boolAttr,e.textElem=l.textElem,e.text=l.text,e.styleElem=l.styleElem,e.style=l.style,e.propElem=l.propElem,e.prop=l.prop,e.showElem=l.showElem,e.show=l.show,e.hideElem=l.hideElem,e.hide=l.hide,e.clsElem=l.clsElem,e.cls=l.cls,e.clsPrefix=l.clsPrefix,e.dataElem=l.dataElem,e.data=l.data,e.getData=l.getData,e.replaceContent=l.replaceContent,e.domComputed=l.domComputed,e.maybe=l.maybe,e.forEach=u.forEach,e.Component=i.Component,e.create=i.create,e.createInit=i.createInit,e.onElem=d.onElem,e.on=d.on,e.onMatchElem=d.onMatchElem,e.onMatch=d.onMatch,e.onKeyPressElem=d.onKeyPressElem,e.onKeyPress=d.onKeyPress}(a=s.dom||(s.dom={}))},{"./_domComponent":4,"./_domDispose":5,"./_domForEach":6,"./_domImpl":7,"./_domMethods":8,"./domevent":14}],14:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});class n{constructor(e,t,s,n,o){this.elem=e,this.eventType=t,this.callback=s,this.useCapture=n,this.selector=o,this.elem.addEventListener(this.eventType,this,this.useCapture)}handleEvent(e){(0,this.callback)(e,this.elem)}dispose(){this.elem.removeEventListener(this.eventType,this,this.useCapture)}}class o extends n{handleEvent(e){const t=function(e,t,s){for(let n=e;n&&n!==t;n=n.parentElement)if(n.matches(s))return n;return null}(e.target,this.elem,this.selector);if(t){(0,this.callback)(e,t)}}}function i(e,t,s,{useCapture:o=!1}={}){return new n(e,t,s,o)}function r(e,t){return i(e,"keypress",(e,s)=>{const n=t[e.key];n&&n(e,s)})}s.onElem=i,s.on=function(e,t,{useCapture:s=!1}={}){return o=>{new n(o,e,t,s)}},s.onMatchElem=function(e,t,s,n,{useCapture:i=!1}={}){return new o(e,s,n,i,t)},s.onMatch=function(e,t,s,{useCapture:n=!1}={}){return i=>{new o(i,t,s,n,e)}},s.onKeyPressElem=r,s.onKeyPress=function(e){return t=>{r(t,e)}}},{}],15:[function(e,t,s){"use strict";function n(){}Object.defineProperty(s,"__esModule",{value:!0});class o{constructor(){this._next=null,this._prev=null,this._next=this,this._prev=this}isDisposed(){return!this._next}_insertBefore(e,t){const s=e._prev;s._next=t,e._prev=t,t._prev=s,t._next=e}_removeNode(e){e._prev&&(e._prev._next=e._next,e._next._prev=e._prev),e._prev=e._next=null}_disposeList(){let e=this,t=e._next;for(;null!==t;)e._next=e._prev=null,t=(e=t)._next}}s.LLink=o;s.Emitter=class extends o{constructor(){super(),this._changeCB=n,this._changeCBContext=void 0}addListener(e,t){return new i(this,e,t)}emit(...e){i.callAll(this._next,this,e)}setChangeCB(e,t){this._changeCB=e||n,this._changeCBContext=t}_triggerChangeCB(){this._changeCB.call(this._changeCBContext,this.hasListeners())}hasListeners(){return this._next!==this}dispose(){this._disposeList(),this._changeCB=n,this._changeCBContext=void 0}};class i extends o{constructor(e,t,s){super(),this.emitter=e,this.callback=t,this.context=s,this._insertBefore(e,this),e._triggerChangeCB()}static callAll(e,t,s){for(;e!==t;){const t=e;t.callback.call(t.context,...s),e=t._next}}dispose(){this.isDisposed()||(this._removeNode(this),this.emitter._triggerChangeCB())}}s.Listener=i},{}],16:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./observable"),o=new WeakMap,i=new WeakMap;s.fromKo=function(e){const t=o.get(e);if(t)return t;const s=n.observable(e.peek());return o.set(e,s),e.subscribe(e=>s.set(e)),s},s.toKo=function(e,t){const s=i.get(t);if(s)return s;const n=e.observable(t.get());return i.set(t,n),t.addListener(e=>n(e)),n}},{"./observable":18}],17:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./dispose"),o=e("./observable"),i=e("./subscribe");class r extends o.BaseObservable{constructor(){super(...arguments),this._ownedItems=void 0}addListener(e,t){return super.addListener(e,t)}autoDispose(e){return this._ownedItems||(this._ownedItems=new Set),this._ownedItems.add(e),e}dispose(){if(this._ownedItems){for(const e of this.get())this._ownedItems.delete(e)&&e.dispose();this._ownedItems=void 0}super.dispose()}_setWithSplice(e,t){return this._setWithArg(e,t)}_disposeOwned(e){if(this._ownedItems)if(e)for(const t of e.deleted)this._ownedItems.delete(t)&&t.dispose();else{const e=this._ownedItems;this._ownedItems=new Set;for(const t of this.get())e.delete(t)&&this._ownedItems.add(t);for(const t of e)t.dispose()}}}s.ObsArray=r;class u extends r{push(...e){const t=this.get(),s=t.length,n=t.push(...e);return this._setWithSplice(t,{start:s,numAdded:e.length,deleted:[]}),n}pop(){const e=this.get();if(0===e.length)return;const t=e.pop();return this._setWithSplice(e,{start:e.length,numAdded:0,deleted:[t]}),t}unshift(...e){const t=this.get(),s=t.unshift(...e);return this._setWithSplice(t,{start:0,numAdded:e.length,deleted:[]}),s}shift(){const e=this.get();if(0===e.length)return;const t=e.shift();return this._setWithSplice(e,{start:0,numAdded:0,deleted:[t]}),t}splice(e,t=1/0,...s){const n=this.get(),o=n.length;e=Math.min(o,Math.max(0,e<0?o+e:e));const i=n.splice(e,t,...s);return this._setWithSplice(n,{start:e,numAdded:s.length,deleted:i}),i}}s.MutableObsArray=u,s.obsArray=function(e=[]){return new u(e)};class c extends r{constructor(e,t){var s;super([]),this._mapper=t,this._sub=(s=e,Array.isArray(s.get())?i.subscribe(e,t=>this._syncMap(e)):i.subscribe(e,(e,t)=>(e(t),this._syncMap(t))))}dispose(){this._unsync(),this._sub.dispose(),super.dispose()}_syncMap(e){this._source!==e?(this._unsync(),this._listener=e.addListener(this._recordChange,this),this._source=e,this._rebuild(e)):this._lastSplice?this._applySplice(e,this._lastSplice):this._rebuild(e),this._lastSplice=void 0}_unsync(){this._listener&&(this._listener.dispose(),this._listener=void 0,this._source=void 0)}_rebuild(e){this.set(e.get().map((e,t)=>this._mapper.call(void 0,e,t,this)))}_applySplice(e,t){const s=e.get(),n=[];for(let e=t.start,o=0;o<t.numAdded;e++,o++)n.push(this._mapper.call(void 0,s[e],e,this));const o=this.get(),i=o.splice(t.start,t.deleted.length,...n);this._setWithSplice(o,{start:t.start,numAdded:n.length,deleted:i})}_recordChange(e,t,s){s&&void 0===this._lastSplice?this._lastSplice=s:this._lastSplice=!1}}s.ComputedArray=c,s.computedArray=function(e,t){return new c(e,t)},s.makeLiveIndex=function(e,t,s=0){return n.setDisposeOwner(e,new l(t,s))};class l extends o.Observable{constructor(e,t=0){super(null),this._obsArray=e,this._isLive=!0,this.set(t),this._listener=e.addListener(this._onArrayChange,this)}set(e){const t=this._obsArray.get().length;super.set(0===t?null:Math.max(0,Math.min(t-1,e||0)))}setLive(e){this._isLive=e}dispose(){this._listener.dispose(),super.dispose()}_onArrayChange(e,t,s){const n=this.get();this.set(null!==n&&s?this._isLive&&n>=s.start+s.deleted.length?n+s.numAdded-s.deleted.length:this._isLive&&n>=s.start+s.numAdded?s.start+s.numAdded:n:0)}}s.LiveIndex=l},{"./dispose":12,"./observable":18,"./subscribe":20}],18:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./_computed_queue"),o=e("./emit");var i=e("./_computed_queue");s.bundleChanges=i.bundleChanges;class r{constructor(e){this._onChange=new o.Emitter,this._value=e}get(){return this._value}set(e){e!==this._value&&this.setAndTrigger(e)}setAndTrigger(e){const t=this._value;this._value=e,this._onChange.emit(e,t),this._disposeOwned(),n.compute()}addListener(e,t){return this._onChange.addListener(e,t)}hasListeners(){return this._onChange.hasListeners()}setListenerChangeCB(e,t){this._onChange.setChangeCB(e,t)}_getDepItem(){return null}dispose(){this._disposeOwned(),this._onChange.dispose(),this._value=void 0}isDisposed(){return this._onChange.isDisposed()}_disposeOwned(e){}_setWithArg(e,t){const s=this._value;this._value=e,this._onChange.emit(e,s,t),this._disposeOwned(t),n.compute()}}s.BaseObservable=r;class u extends r{constructor(){super(...arguments),this._owned=void 0}static holder(e){const t=new u(e);return t._owned=e,t}autoDispose(e){return this.setAndTrigger(e),this._owned=e,e}_disposeOwned(){this._owned&&(this._owned.dispose(),this._owned=void 0)}}s.Observable=u,s.observable=function(e){return new u(e)},s.obsHolder=function(e){return u.holder(e)}},{"./_computed_queue":3,"./emit":15}],19:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./browserGlobals"),o=e("./dom");s.styled=function(e,t){const s=new i(t),n="string"==typeof e?(...t)=>o.dom(e,...t,s.use()):(...t)=>e(...t,s.use());return Object.assign(n,{className:s.className,cls:o.dom.clsPrefix.bind(null,s.className)})};class i{constructor(e){this._styles=e,this._mounted=!1,this.className=i._nextClassName(),i._unmounted.add(this)}static _nextClassName(){return`_grain${this._next++}`}static _mountAll(){const e=Array.from(this._unmounted,e=>(function(e,t){const s=[],n=t.replace(/([^;]*)\s*{([^}]*)\s*}/g,(t,n,o)=>{const i=n.replace(/&/g,"."+e);return s.push(`${i} {${o}}`),""});return`.${e} {${n}}\n`+s.join("\n")})(e.className,e._styles)).join("\n\n");n.G.document.head.appendChild(o.dom("style",e));for(const e of this._unmounted)e._mounted=!0;this._unmounted.clear()}use(){return this._mounted||i._mountAll(),e=>{e.classList.add(this.className)}}}i._next=1,i._unmounted=new Set},{"./browserGlobals":10,"./dom":13}],20:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0});const n=e("./_computed_queue"),o=[];class i{constructor(e,t,s){this._depItem=new n.DepItem(this._evaluate,this),this._dependencies=t.length>0?t:o,this._depListeners=t.length>0?t.map(e=>this._subscribeTo(e)):o,this._dynDeps=new Map,this._callback=e,this._useFunc=this._useDependency.bind(this),s&&(this._useFunc.owner=s),this._evaluate()}dispose(){this._callback=null;for(const e of this._depListeners)e.dispose();for(const e of this._dynDeps.values())e.dispose()}_getDepItem(){return this._depItem}_useDependency(e){let t=this._dynDeps.get(e);return t||(t=this._subscribeTo(e),this._dynDeps.set(e,t)),t._inUse=!0,this._depItem.useDep(e._getDepItem()),e.get()}_evaluate(){if(null!==this._callback)try{const e=[this._useFunc];for(let t=0,s=this._dependencies.length;t<s;t++)e[t+1]=this._dependencies[t].get(),this._depItem.useDep(this._dependencies[t]._getDepItem());return this._callback.apply(void 0,e)}finally{this._dynDeps.forEach((e,t)=>{e._inUse?e._inUse=!1:(this._dynDeps.delete(t),e.dispose())})}}_subscribeTo(e){return e.addListener(this._enqueue,this)}_enqueue(){this._depItem.enqueue()}}s.Subscription=i,s.subscribe=function(...e){const t=e.pop();return new i(t,e)}},{"./_computed_queue":3}],21:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.bindB=function(e,t){switch(t.length){case 0:return()=>e();case 1:return()=>e(t[0]);case 2:return()=>e(t[0],t[1]);case 3:return()=>e(t[0],t[1],t[2]);case 4:return()=>e(t[0],t[1],t[2],t[3]);case 5:return()=>e(t[0],t[1],t[2],t[3],t[4]);case 6:return()=>e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return()=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6]);case 8:return()=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);default:return()=>e.apply(void 0,t)}},s.bindUB=function(e,t){switch(t.length){case 0:return t=>e(t);case 1:return s=>e(s,t[0]);case 2:return s=>e(s,t[0],t[1]);case 3:return s=>e(s,t[0],t[1],t[2]);case 4:return s=>e(s,t[0],t[1],t[2],t[3]);case 5:return s=>e(s,t[0],t[1],t[2],t[3],t[4]);case 6:return s=>e(s,t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return s=>e(s,t[0],t[1],t[2],t[3],t[4],t[5],t[6]);case 8:return s=>e(s,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);default:return s=>e(s,...t)}},s.bindBU=function(e,t){switch(t.length){case 0:return t=>e(t);case 1:return s=>e(t[0],s);case 2:return s=>e(t[0],t[1],s);case 3:return s=>e(t[0],t[1],t[2],s);case 4:return s=>e(t[0],t[1],t[2],t[3],s);case 5:return s=>e(t[0],t[1],t[2],t[3],t[4],s);case 6:return s=>e(t[0],t[1],t[2],t[3],t[4],t[5],s);case 7:return s=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],s);case 8:return s=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],s);default:return s=>e(...t,s)}}},{}]},{},[1])(1)});
1
+ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).grainjs=e()}}(function(){return function(){return function e(t,s,n){function i(r,u){if(!s[r]){if(!t[r]){var l="function"==typeof require&&require;if(!u&&l)return l(r,!0);if(o)return o(r,!0);var d=new Error("Cannot find module '"+r+"'");throw d.code="MODULE_NOT_FOUND",d}var c=s[r]={exports:{}};t[r][0].call(c.exports,function(e){return i(t[r][1][e]||e)},c,c.exports,e,t,s,n)}return s[r].exports}for(var o="function"==typeof require&&require,r=0;r<n.length;r++)i(n[r]);return i}}()({1:[function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(s,"__esModule",{value:!0}),i(e("./lib/binding"),s),i(e("./lib/computed"),s),i(e("./lib/dispose"),s),i(e("./lib/dom"),s),i(e("./lib/emit"),s),i(e("./lib/kowrap"),s),i(e("./lib/obsArray"),s),i(e("./lib/observable"),s),i(e("./lib/pureComputed"),s),i(e("./lib/styled"),s),i(e("./lib/subscribe"),s),i(e("./lib/util"),s),i(e("./lib/widgets/input"),s),i(e("./lib/widgets/select"),s)},{"./lib/binding":4,"./lib/computed":6,"./lib/dispose":7,"./lib/dom":8,"./lib/emit":16,"./lib/kowrap":17,"./lib/obsArray":18,"./lib/observable":19,"./lib/pureComputed":20,"./lib/styled":21,"./lib/subscribe":22,"./lib/util":23,"./lib/widgets/input":24,"./lib/widgets/select":25}],2:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.PriorityQueue=void 0;s.PriorityQueue=class{constructor(e){this._isPrior=e,this._items=[]}get size(){return this._items.length}push(e){const t=this._items,s=this._isPrior;let n=this._items.length;for(;n>0;){const i=n-1>>1,o=t[i];if(s(o,e))break;t[n]=o,n=i}t[n]=e}peek(){return this._items[0]}pop(){if(this._items.length<=1)return this._items.pop();const e=this._items,t=this._isPrior,s=e[0],n=e.pop(),i=this._items.length;let o=0,r=1;for(;r<i;){const s=r+1,u=s<i&&t(e[s],e[r])?s:r;if(t(n,e[u]))break;e[o]=e[u],r=(o=u)+o+1}return e[o]=n,s}}},{}],3:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.bundleChanges=s.compute=s._getPriority=s.DepItem=void 0;const n=e("./PriorityQueue");class i{constructor(e,t){this._priority=0,this._enqueued=!1,this._creation=++r,this._callback=e,this._context=t}static isPrioritySmaller(e,t){return e._priority<t._priority||e._priority===t._priority&&e._creation<t._creation}useDep(e){const t=e?e._priority:0;t>=this._priority&&(this._priority=t+1)}recompute(){this._priority=0,this._callback.call(this._context)}enqueue(){this._enqueued||(this._enqueued=!0,o.push(this))}}s.DepItem=i;const o=new n.PriorityQueue(i.isPrioritySmaller);let r=0;const u=[];let l=0;function d(){if(0===l&&o.size>0){l++;try{do{const e=o.pop();u.push(e),e.recompute()}while(o.size>0)}finally{for(const e of u)e._enqueued=!1;u.length=0,l--}}}s._getPriority=function(e){const t=e._getDepItem();return t?t._priority:0},s.compute=d,s.bundleChanges=function(e){try{return l++,e()}finally{l--,d()}}},{"./PriorityQueue":2}],4:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.subscribeElem=s.subscribeBindable=void 0;const n=e("./computed"),i=e("./domDispose"),o=e("./observable"),r=e("./subscribe");function u(e,t){if("function"==typeof e){const s=e;if("function"==typeof s.peek){const e=s.subscribe(e=>t(e));return t(s.peek()),e}const i=n.computed(e);return i.addListener(e=>t(e)),t(i.get()),i}return e instanceof o.BaseObservable?r.subscribe(e,(e,s)=>t(s)):(t(e),null)}s.subscribeBindable=u,s.subscribeElem=function(e,t,s){i.autoDisposeElem(e,u(t,s))}},{"./computed":6,"./domDispose":11,"./observable":19,"./subscribe":22}],5:[function(e,t,s){"use strict";function n(e,t){e.DocumentFragment=t.DocumentFragment,e.Element=t.Element,e.Node=t.Node,e.document=t.document,e.window=t.window}Object.defineProperty(s,"__esModule",{value:!0}),s.popGlobals=s.pushGlobals=s.G=void 0;const i={};n(i,"undefined"!=typeof window?window:{}),s.G=Object.assign({},i);const o=[i];s.pushGlobals=function(e){o.push(e),n(s.G,e)},s.popGlobals=function(){o.length>1&&o.pop(),n(s.G,o[o.length-1])}},{}],6:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.computed=s.Computed=void 0;const n=e("./dispose"),i=e("./observable"),o=e("./subscribe");function r(){throw new Error("Can't write to non-writable computed")}class u extends i.Observable{constructor(e,t){super(void 0),this._callback=e,this._write=r,this._sub=new o.Subscription(this._read.bind(this),t,this)}static create(e,...t){const s=t.pop();return n.setDisposeOwner(e,new u(s,t))}_getDepItem(){return this._sub._getDepItem()}set(e){this._write(e)}onWrite(e){return this._write=e,this}dispose(){this._sub.dispose(),super.dispose()}_read(e,...t){super.set(this._callback(e,...t))}}s.Computed=u,s.computed=function(...e){const t=e.pop();return new u(t,e)}},{"./dispose":7,"./observable":19,"./subscribe":22}],7:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.setDisposeOwner=s.MultiHolder=s.Holder=s.Disposable=void 0;const n=e("./emit"),i={autoDispose(e){}};let o=i;class r{constructor(){this._disposalList=new c,o.autoDispose(this),o=i}static create(e,...t){const s=o,n=new u;try{return o=n,l(e,new this(...t))}catch(e){try{n.clear()}catch(e){console.error("Error disposing partially constructed %s:",this.name,e)}throw e}finally{n.release(),o=s}}autoDispose(e){return this.onDispose(e.dispose,e),e}onDispose(e,t){return this._disposalList.addListener(e,t)}wipeOnDispose(){this.onDispose(this._wipeOutObject,this)}isDisposed(){return null===this._disposalList}dispose(){const e=this._disposalList;e?(this._disposalList=null,e.callAndDispose(this)):console.error("Error disposing %s which is already disposed",d(this))}_wipeOutObject(){for(const e of Object.keys(this))this[e]=null}}s.Disposable=r;class u{constructor(){this._owned=null,this._disposalListener=void 0}static create(e){return l(e,new u)}autoDispose(e){return this.clear(),this._owned=e,e instanceof r&&(this._disposalListener=e.onDispose(this._onOutsideDispose,this)),e}release(){this._unlisten();const e=this._owned;return this._owned=null,e}clear(){this._unlisten();const e=this._owned;e&&(this._owned=null,e.dispose())}get(){return this._owned}isEmpty(){return!this._owned}dispose(){this.clear()}_unlisten(){const e=this._disposalListener;e&&(this._disposalListener=void 0,e.dispose())}_onOutsideDispose(){this._disposalListener=void 0,this._owned=null}}s.Holder=u;function l(e,t){return e&&e.autoDispose(t),t}function d(e){return e&&e.constructor&&e.constructor.name?e.constructor.name:""+e}s.MultiHolder=class extends r{},s.setDisposeOwner=l;class c extends n.LLink{constructor(){super()}addListener(e,t){const s=new a(e,t);return this._insertBefore(this._next,s),s}callAndDispose(e){try{a.callAll(this._next,this,e)}finally{this._disposeList()}}}class a extends n.LLink{constructor(e,t){super(),this.callback=e,this.context=t}static callAll(e,t,s){for(;e!==t;){const t=e;try{t.callback.call(t.context)}catch(e){console.error("While disposing %s, error disposing %s: %s",d(s),d(this),e)}e=t._next}}dispose(){this.isDisposed()||this._removeNode(this)}}},{"./emit":16}],8:[function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(s,"__esModule",{value:!0}),s.dom=void 0,i(e("./domImpl"),s),i(e("./domComponent"),s),i(e("./domComputed"),s),i(e("./domDispose"),s),i(e("./domForEach"),s),i(e("./domMethods"),s),i(e("./domevent"),s);const o=e("./domComponent"),r=e("./domComputed"),u=e("./domDispose"),l=e("./domForEach"),d=e("./domImpl"),c=e("./domMethods"),a=e("./domevent"),p=e("./domImpl");function h(e,...t){return p.dom(e,...t)}s.dom=h,function(e){e.svg=d.svg,e.frag=d.frag,e.update=d.update,e.find=d.find,e.findAll=d.findAll,e.domDispose=u.domDispose,e.onDisposeElem=u.onDisposeElem,e.onDispose=u.onDispose,e.autoDisposeElem=u.autoDisposeElem,e.autoDispose=u.autoDispose,e.attrsElem=c.attrsElem,e.attrs=c.attrs,e.attrElem=c.attrElem,e.attr=c.attr,e.boolAttrElem=c.boolAttrElem,e.boolAttr=c.boolAttr,e.textElem=c.textElem,e.text=c.text,e.styleElem=c.styleElem,e.style=c.style,e.propElem=c.propElem,e.prop=c.prop,e.showElem=c.showElem,e.show=c.show,e.hideElem=c.hideElem,e.hide=c.hide,e.clsElem=c.clsElem,e.cls=c.cls,e.clsPrefix=c.clsPrefix,e.dataElem=c.dataElem,e.data=c.data,e.getData=c.getData,e.replaceContent=r.replaceContent,e.domComputed=r.domComputed,e.domComputedOwned=r.domComputedOwned,e.maybe=r.maybe,e.maybeOwned=r.maybeOwned,e.forEach=l.forEach,e.create=o.create,e.onElem=a.onElem,e.on=a.on,e.onMatchElem=a.onMatchElem,e.onMatch=a.onMatch,e.onKeyElem=a.onKeyElem,e.onKeyPress=a.onKeyPress,e.onKeyDown=a.onKeyDown}(h=s.dom||(s.dom={}))},{"./domComponent":9,"./domComputed":10,"./domDispose":11,"./domForEach":12,"./domImpl":13,"./domMethods":14,"./domevent":15}],9:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.create=void 0;const n=e("./domComputed");s.create=function(e,...t){return n.domComputedOwned(null,s=>{const n="create"in e?e.create(s,...t):e(s,...t);return n&&"object"==typeof n&&"buildDom"in n?n.buildDom():n})}},{"./domComputed":10}],10:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.maybeOwned=s.maybe=s.domComputedOwned=s.domComputed=s.replaceContent=void 0;const n=e("./binding"),i=e("./dispose"),o=e("./domDispose"),r=e("./domImpl"),u=e("./browserGlobals");function l(e,t,s){const n=e.parentNode;if(n){let i;for(let s=e.nextSibling;s&&s!==t;s=i)i=s.nextSibling,o.domDispose(s),n.removeChild(s);s&&n.insertBefore(s instanceof u.G.Node?s:r.frag(s),t)}}function d(e,t=function(e){return e}){const s=u.G.document.createComment("a"),i=u.G.document.createComment("b");return[s,i,o=>{n.subscribeElem(i,e,e=>l(s,i,t(e)))}]}function c(e,t){const s=i.Holder.create(null),[n,r,u]=d(e,e=>t(i.MultiHolder.create(s),e));return o.autoDisposeElem(r,s),[n,r,u]}s.replaceContent=l,s.domComputed=d,s.domComputedOwned=c,s.maybe=function(e,t){return d(e,e=>e?t(e):null)},s.maybeOwned=function(e,t){return c(e,(e,s)=>s?t(e,s):null)}},{"./binding":4,"./browserGlobals":5,"./dispose":7,"./domDispose":11,"./domImpl":13}],11:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.autoDispose=s.autoDisposeElem=s.onDispose=s.onDisposeElem=s.domDispose=s.domDisposeHooks=s._disposeNode=void 0;const n=new WeakMap;function i(e){let t=n.get(e);if(t){let s=e;do{n.delete(s),t(e),s=t,t=n.get(s)}while(t)}}function o(e,t){const s=n.get(e);n.set(e,t),s&&n.set(t,s)}function r(e,t){t&&o(e,()=>t.dispose())}s._disposeNode=i,s.domDisposeHooks={disposeNode:i,disposeRecursive:function(e){!function e(t,s){let n=t.firstChild;for(;n;)e(n,s),n=n.nextSibling;s(t)}(e,s.domDisposeHooks.disposeNode)}},s.domDispose=function(e){s.domDisposeHooks.disposeRecursive(e)},s.onDisposeElem=o,s.onDispose=function(e){return t=>o(t,e)},s.autoDisposeElem=r,s.autoDispose=function(e){if(e)return t=>r(t,e)}},{}],12:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.forEach=void 0;const n=e("./domComputed"),i=e("./domDispose"),o=e("./domImpl"),r=e("./obsArray"),u=e("./browserGlobals");s.forEach=function(e,t){const s=u.G.document.createComment("a"),l=u.G.document.createComment("b");return[s,l,u=>{if(Array.isArray(e))return void n.replaceContent(s,l,e.map(t));const d=r.computedArray(e,t);i.autoDisposeElem(l,d),d.addListener((e,t,r)=>{if(r){for(const e of r.deleted)e&&e.parentNode===u&&(i.domDispose(e),u.removeChild(e));if(r.numAdded>0){const t=r.start+r.numAdded;let s=l;for(let n=t;n<e.length;n++){const t=e[n];if(t&&t.parentNode===u){s=t;break}}const n=o.frag(e.slice(r.start,t));u.insertBefore(n,s)}}else n.replaceContent(s,l,e)}),n.replaceContent(s,l,d.get())}]}},{"./browserGlobals":5,"./domComputed":10,"./domDispose":11,"./domImpl":13,"./obsArray":18}],13:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.findAll=s.find=s.frag=s.update=s.svg=s.dom=void 0;const n=e("./domDispose"),i=e("./domMethods"),o=e("./browserGlobals");function r(e){return o.G.document.createElement(e)}function u(e){return o.G.document.createElementNS("http://www.w3.org/2000/svg",e)}function l(e,t){let s,n,i,o=t.indexOf(".");const r=t.indexOf("#");if(-1===o?o=t.length:i=t.substring(o+1).replace(/\./g," "),-1===r)s=t.substring(0,o);else{if(r>o)throw new Error(`ID must come before classes in dom("${t}")`);s=t.substring(0,r),n=t.substring(r+1,o)}const u=e(s);return n&&u.setAttribute("id",n),i&&u.setAttribute("class",i),u}function d(e,t){for(const s of t)a(e,s);return e}function c(e,t){try{return d(e,t)}catch(t){throw n.domDispose(e),t}}function a(e,t){if("function"==typeof t){const s=t(e);void 0!==s&&null!==s&&a(e,s)}else Array.isArray(t)?d(e,t):void 0===t||null===t||(t instanceof o.G.Node?e.appendChild(t):"object"==typeof t?i.attrsElem(e,t):e.appendChild(o.G.document.createTextNode(t)))}s.dom=function(e,...t){return c(l(r,e),t)},s.svg=function(e,...t){return c(l(u,e),t)},s.update=function(e,...t){return d(e,t)},s.frag=function(...e){return c(o.G.document.createDocumentFragment(),e)},s.find=function(e){return o.G.document.querySelector(e)},s.findAll=function(e){return o.G.document.querySelectorAll(e)}},{"./browserGlobals":5,"./domDispose":11,"./domMethods":14}],14:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.noTestId=s.makeTestId=s.getData=s.data=s.dataElem=s.clsPrefix=s.cls=s.clsElem=s.hide=s.hideElem=s.show=s.showElem=s.prop=s.propElem=s.style=s.styleElem=s.text=s.textElem=s.boolAttr=s.boolAttrElem=s.attr=s.attrElem=s.attrs=s.attrsElem=void 0;const n=e("./binding"),i=e("./domDispose"),o=e("./browserGlobals"),r=new WeakMap;function u(e,t){for(const s of Object.keys(t)){const n=t[s];null!=n&&!1!==n&&e.setAttribute(s,!0===n?"":n)}}function l(e,t,s){null===s||void 0===s?e.removeAttribute(t):e.setAttribute(t,s)}function d(e,t,s){l(e,t,s?"":null)}function c(e,t,s){e.style[t]=s}function a(e,t,s){e[t]=s}function p(e,t){e.style.display=t?"":"none"}function h(e,t){e.style.display=t?"none":""}function m(e,t,s=!0){e.classList.toggle(t,Boolean(s))}function _(e,t){return"string"!=typeof e?f("",e):t&&"boolean"!=typeof t?s=>n.subscribeElem(s,t,t=>m(s,e,t)):s=>m(s,e,t)}function b(e,t,s){return"string"!=typeof t?f(e,t):_(e+t,s)}function f(e,t){return s=>{let i=null;n.subscribeElem(s,t,t=>{i&&s.classList.remove(i),(i=t?e+t:null)&&s.classList.add(i)})}}function g(e,t,s){const n=r.get(e);n?n[t]=s:(i.onDisposeElem(e,()=>r.delete(e)),r.set(e,{[t]:s}))}s.attrsElem=u,s.attrs=function(e){return t=>u(t,e)},s.attrElem=l,s.attr=function(e,t){return s=>n.subscribeElem(s,t,t=>l(s,e,t))},s.boolAttrElem=d,s.boolAttr=function(e,t){return s=>n.subscribeElem(s,t,t=>d(s,e,t))},s.textElem=function(e,t){e.appendChild(o.G.document.createTextNode(t))},s.text=function(e){return t=>{const s=o.G.document.createTextNode("");n.subscribeElem(t,e,e=>{s.nodeValue=e}),t.appendChild(s)}},s.styleElem=c,s.style=function(e,t){return s=>n.subscribeElem(s,t,t=>c(s,e,t))},s.propElem=a,s.prop=function(e,t){return s=>n.subscribeElem(s,t,t=>a(s,e,t))},s.showElem=p,s.show=function(e){return t=>n.subscribeElem(t,e,e=>p(t,e))},s.hideElem=h,s.hide=function(e){return t=>n.subscribeElem(t,e,e=>h(t,e))},s.clsElem=m,s.cls=_,s.clsPrefix=b,s.dataElem=g,s.data=function(e,t){return s=>n.subscribeElem(s,t,t=>g(s,e,t))},s.getData=function(e,t){const s=r.get(e);return s&&s[t]},s.makeTestId=function(e){return b.bind(null,e)};s.noTestId=(e=>null)},{"./binding":4,"./browserGlobals":5,"./domDispose":11}],15:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.onKeyDown=s.onKeyPress=s.onKeyElem=s.onMatch=s.onMatchElem=s.on=s.onElem=void 0;class n{constructor(e,t,s,n,i){this.elem=e,this.eventType=t,this.callback=s,this.useCapture=n,this.selector=i,this.elem.addEventListener(this.eventType,this,this.useCapture)}handleEvent(e){(0,this.callback)(e,this.elem)}dispose(){this.elem.removeEventListener(this.eventType,this,this.useCapture)}}class i extends n{handleEvent(e){const t=function(e,t,s){for(let n=e;n&&n!==t;n=n.parentElement)if(n.matches(s))return n;return null}(e.target,this.elem,this.selector);if(t){(0,this.callback)(e,t)}}}function o(e,t,s,{useCapture:i=!1}={}){return new n(e,t,s,i)}function r(e,t,s){return e.tabIndex>=0||e.setAttribute("tabindex","-1"),o(e,t,(e,t)=>{const n=s[e.key],i=n||s[e.key+"$"];i&&(n&&(e.stopPropagation(),e.preventDefault()),i(e,t))})}s.onElem=o,s.on=function(e,t,{useCapture:s=!1}={}){return i=>{new n(i,e,t,s)}},s.onMatchElem=function(e,t,s,n,{useCapture:o=!1}={}){return new i(e,s,n,o,t)},s.onMatch=function(e,t,s,{useCapture:n=!1}={}){return o=>{new i(o,t,s,n,e)}},s.onKeyElem=r,s.onKeyPress=function(e){return t=>{r(t,"keypress",e)}},s.onKeyDown=function(e){return t=>{r(t,"keydown",e)}}},{}],16:[function(e,t,s){"use strict";function n(){}Object.defineProperty(s,"__esModule",{value:!0}),s.Listener=s.Emitter=s.LLink=void 0;class i{constructor(){this._next=null,this._prev=null,this._next=this,this._prev=this}isDisposed(){return!this._next}_insertBefore(e,t){const s=e._prev;s._next=t,e._prev=t,t._prev=s,t._next=e}_removeNode(e){e._prev&&(e._prev._next=e._next,e._next._prev=e._prev),e._prev=e._next=null}_disposeList(){let e=this,t=e._next;for(;null!==t;)e._next=e._prev=null,t=(e=t)._next}}s.LLink=i;s.Emitter=class extends i{constructor(){super(),this._changeCB=n,this._changeCBContext=void 0}addListener(e,t){return new o(this,e,t)}emit(...e){o.callAll(this._next,this,e)}setChangeCB(e,t){this._changeCB=e||n,this._changeCBContext=t}_triggerChangeCB(){this._changeCB.call(this._changeCBContext,this.hasListeners())}hasListeners(){return this._next!==this}dispose(){this._disposeList(),this._changeCB=n,this._changeCBContext=void 0}};class o extends i{constructor(e,t,s){super(),this.emitter=e,this.callback=t,this.context=s,this._insertBefore(e,this),e._triggerChangeCB()}static callAll(e,t,s){for(;e!==t;){const t=e;t.callback.call(t.context,...s),e=t._next}}dispose(){this.isDisposed()||(this._removeNode(this),this.emitter._triggerChangeCB())}}s.Listener=o},{}],17:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.setupKoDisposal=s.toKo=s.KoWrapObs=s.fromKo=void 0;const n=e("./domDispose"),i=e("./observable"),o=new WeakMap,r=new WeakMap;s.fromKo=function(e){return o.get(e)||o.set(e,new u(e)).get(e)};class u extends i.Observable{constructor(e){super(e.peek()),this._koObs=e,this._koSub=null,this.setListenerChangeCB(e=>{e?this._koSub||(this._value=this._koObs.peek(),this._koSub=this._koObs.subscribe(e=>this.setAndTrigger(e))):(this._koSub.dispose(),this._koSub=null)})}get(){return this._koObs.peek()}set(e){i.bundleChanges(()=>this._koObs(e))}dispose(){throw new Error("KoWrapObs should not be disposed")}}s.KoWrapObs=u,s.toKo=function(e,t){const s=r.get(t);if(s)return s;const n=e.observable(t.get());return r.set(t,n),t.addListener(e=>n(e)),n};let l=!1;s.setupKoDisposal=function(e){if(l)return;l=!0;const t=e.utils.domNodeDisposal,s=t.cleanExternalData,i=n.domDisposeHooks.disposeRecursive;function o(e){s(e),n.domDisposeHooks.disposeNode(e)}t.cleanExternalData=o,n.domDisposeHooks.disposeRecursive=function(n){i(n),t.cleanExternalData=s;try{e.cleanNode(n)}finally{t.cleanExternalData=o}}}},{"./domDispose":11,"./observable":19}],18:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.LiveIndex=s.makeLiveIndex=s.computedArray=s.ComputedArray=s.obsArray=s.MutableObsArray=s.ObsArray=void 0;const n=e("./dispose"),i=e("./observable"),o=e("./subscribe");class r extends i.BaseObservable{constructor(){super(...arguments),this._ownedItems=void 0}addListener(e,t){return super.addListener(e,t)}autoDispose(e){return this._ownedItems||(this._ownedItems=new Set),this._ownedItems.add(e),e}dispose(){if(this._ownedItems){for(const e of this.get())this._ownedItems.delete(e)&&e.dispose();this._ownedItems=void 0}super.dispose()}_setWithSplice(e,t){return this._setWithArg(e,t)}_disposeOwned(e){if(this._ownedItems)if(e)for(const t of e.deleted)this._ownedItems.delete(t)&&t.dispose();else{const e=this._ownedItems;this._ownedItems=new Set;for(const t of this.get())e.delete(t)&&this._ownedItems.add(t);for(const t of e)t.dispose()}}}s.ObsArray=r;class u extends r{push(...e){const t=this.get(),s=t.length,n=t.push(...e);return this._setWithSplice(t,{start:s,numAdded:e.length,deleted:[]}),n}pop(){const e=this.get();if(0===e.length)return;const t=e.pop();return this._setWithSplice(e,{start:e.length,numAdded:0,deleted:[t]}),t}unshift(...e){const t=this.get(),s=t.unshift(...e);return this._setWithSplice(t,{start:0,numAdded:e.length,deleted:[]}),s}shift(){const e=this.get();if(0===e.length)return;const t=e.shift();return this._setWithSplice(e,{start:0,numAdded:0,deleted:[t]}),t}splice(e,t=1/0,...s){const n=this.get(),i=n.length;e=Math.min(i,Math.max(0,e<0?i+e:e));const o=n.splice(e,t,...s);return this._setWithSplice(n,{start:e,numAdded:s.length,deleted:o}),o}}s.MutableObsArray=u,s.obsArray=function(e=[]){return new u(e)};class l extends r{constructor(e,t){var s;super([]),this._mapper=t,this._sub=(s=e,Array.isArray(s.get())?o.subscribe(e,t=>this._syncMap(e)):o.subscribe(e,(e,t)=>(e(t),this._syncMap(t))))}dispose(){this._unsync(),this._sub.dispose(),super.dispose()}_syncMap(e){this._source!==e?(this._unsync(),this._listener=e.addListener(this._recordChange,this),this._source=e,this._rebuild(e)):this._lastSplice?this._applySplice(e,this._lastSplice):this._rebuild(e),this._lastSplice=void 0}_unsync(){this._listener&&(this._listener.dispose(),this._listener=void 0,this._source=void 0)}_rebuild(e){this.set(e.get().map((e,t)=>this._mapper.call(void 0,e,t,this)))}_applySplice(e,t){const s=e.get(),n=[];for(let e=t.start,i=0;i<t.numAdded;e++,i++)n.push(this._mapper.call(void 0,s[e],e,this));const i=this.get(),o=i.splice(t.start,t.deleted.length,...n);this._setWithSplice(i,{start:t.start,numAdded:n.length,deleted:o})}_recordChange(e,t,s){s&&void 0===this._lastSplice?this._lastSplice=s:this._lastSplice=!1}}s.ComputedArray=l,s.computedArray=function(e,t){return new l(e,t)},s.makeLiveIndex=function(e,t,s=0){return n.setDisposeOwner(e,new d(t,s))};class d extends i.Observable{constructor(e,t=0){super(null),this._obsArray=e,this._isLive=!0,this.set(t),this._listener=e.addListener(this._onArrayChange,this)}set(e){const t=this._obsArray.get().length;super.set(0===t?null:Math.max(0,Math.min(t-1,e||0)))}setLive(e){this._isLive=e}dispose(){this._listener.dispose(),super.dispose()}_onArrayChange(e,t,s){const n=this.get();this.set(null!==n&&s?this._isLive&&n>=s.start+s.deleted.length?n+s.numAdded-s.deleted.length:this._isLive&&n>=s.start+s.numAdded?s.start+s.numAdded:n:0)}}s.LiveIndex=d},{"./dispose":7,"./observable":19,"./subscribe":22}],19:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.obsHolder=s.observable=s.Observable=s.BaseObservable=s.bundleChanges=void 0;const n=e("./_computed_queue"),i=e("./dispose"),o=e("./emit");var r=e("./_computed_queue");Object.defineProperty(s,"bundleChanges",{enumerable:!0,get:function(){return r.bundleChanges}});class u{constructor(e){this._onChange=new o.Emitter,this._value=e}get(){return this._value}set(e){e!==this._value&&this.setAndTrigger(e)}setAndTrigger(e){const t=this._value;this._value=e,this._onChange.emit(e,t),this._disposeOwned(),n.compute()}addListener(e,t){return this._onChange.addListener(e,t)}hasListeners(){return this._onChange.hasListeners()}setListenerChangeCB(e,t){this._onChange.setChangeCB(e,t)}_getDepItem(){return null}dispose(){this._disposeOwned(),this._onChange.dispose(),this._value=void 0}isDisposed(){return this._onChange.isDisposed()}_disposeOwned(e){}_setWithArg(e,t){const s=this._value;this._value=e,this._onChange.emit(e,s,t),this._disposeOwned(t),n.compute()}}s.BaseObservable=u;class l extends u{constructor(){super(...arguments),this._owned=void 0}static holder(e){const t=new l(e);return t._owned=e,t}static create(e,t){return i.setDisposeOwner(e,new l(t))}autoDispose(e){return this.setAndTrigger(e),this._owned=e,e}_disposeOwned(){this._owned&&(this._owned.dispose(),this._owned=void 0)}}s.Observable=l,s.observable=function(e){return new l(e)},s.obsHolder=function(e){return l.holder(e)}},{"./_computed_queue":3,"./dispose":7,"./emit":16}],20:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.pureComputed=s.PureComputed=void 0;const n=e("./observable"),i=e("./subscribe");function o(){throw new Error("Can't write to non-writable pureComputed")}function r(e){return"get"in e?e.get():e.peek()}const u=[];class l extends n.Observable{constructor(e,t){super(void 0),this._callback=e,this._write=o,this._dependencies=t.length>0?t:u,this._sub=null,this._inCall=!1,this.setListenerChangeCB(this._onListenerChange,this)}_getDepItem(){return this._activate(),this._sub._getDepItem()}get(){if(!this._sub&&!this._inCall){this._inCall=!0;try{const e=[r];for(let t=0,s=this._dependencies.length;t<s;t++)e[t+1]=this._dependencies[t].get();super.set(this._callback.apply(void 0,e))}finally{this._inCall=!1}}return super.get()}set(e){this._write(e)}onWrite(e){return this._write=e,this}dispose(){this._sub&&this._sub.dispose(),this._sub=!0,super.dispose()}_activate(){this._sub||(this._sub=new i.Subscription(this._read.bind(this),this._dependencies))}_onListenerChange(e){e?this._activate():this._sub&&(this._sub.dispose(),this._sub=null)}_read(e,...t){super.set(this._callback(e,...t))}}s.PureComputed=l,s.pureComputed=function(...e){const t=e.pop();return new l(t,e)}},{"./observable":19,"./subscribe":22}],21:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.keyframes=s.styled=void 0;const n=e("./browserGlobals"),i=e("./domImpl"),o=e("./domMethods");s.styled=function(e,t){const s=new u(t),n="string"==typeof e?(...t)=>s.addToElem(i.dom(e,...t)):(...t)=>s.addToElem(e(...t));return Object.assign(n,{className:s.className,cls:o.clsPrefix.bind(null,s.className)})},s.keyframes=function(e){return new l(e).className};const r={};class u{constructor(e){this._styles=e,this._mounted=!1,this.className=u._nextClassName(),u._unmounted.add(this)}static _nextClassName(){return`_grain${function(){const e=n.G.window||r;return e._grainNextStyleNum=(e._grainNextStyleNum||0)+1}()}_`}static _mountAll(){const e=Array.from(this._unmounted,e=>e._createRules()).join("\n\n");n.G.document.head.appendChild(i.dom("style",e));for(const e of this._unmounted)e._mounted=!0;this._unmounted.clear()}addToElem(e){return this._mounted||u._mountAll(),e.classList.add(this.className),e}_createRules(){return function(e,t){const s=t.search(/[^;]*\{/);return`& {${s<0?t:t.slice(0,s)}\n}\n${s<0?"":t.slice(s)}`.replace(/&/g,e)}("."+this.className,this._styles)}}u._unmounted=new Set;class l extends u{_createRules(){return`@keyframes ${this.className} {${this._styles}}`}}},{"./browserGlobals":5,"./domImpl":13,"./domMethods":14}],22:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.subscribe=s.Subscription=void 0;const n=e("./_computed_queue"),i=e("./kowrap"),o=[];class r{constructor(e,t,s){this._depItem=new n.DepItem(this._evaluate,this),this._dependencies=t.length>0?t:o,this._depListeners=t.length>0?t.map(e=>this._subscribeTo(e)):o,this._dynDeps=new Map,this._callback=e,this._useFunc=this._useDependency.bind(this),s&&(this._useFunc.owner=s),this._evaluate()}dispose(){this._callback=null;for(const e of this._depListeners)e.dispose();for(const e of this._dynDeps.values())e.dispose()}_getDepItem(){return this._depItem}_useDependency(e){const t="_getDepItem"in e?e:i.fromKo(e);let s=this._dynDeps.get(t);return s||(s=this._subscribeTo(t),this._dynDeps.set(t,s)),s._inUse=!0,this._depItem.useDep(t._getDepItem()),t.get()}_evaluate(){if(null!==this._callback)try{const e=[this._useFunc];for(let t=0,s=this._dependencies.length;t<s;t++)e[t+1]=this._dependencies[t].get(),this._depItem.useDep(this._dependencies[t]._getDepItem());return this._callback.apply(void 0,e)}finally{this._dynDeps.forEach((e,t)=>{e._inUse?e._inUse=!1:(this._dynDeps.delete(t),e.dispose())})}}_subscribeTo(e){return("_getDepItem"in e?e:i.fromKo(e)).addListener(this._enqueue,this)}_enqueue(){this._depItem.enqueue()}}s.Subscription=r,s.subscribe=function(...e){const t=e.pop();return new r(t,e)}},{"./_computed_queue":3,"./kowrap":17}],23:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.bindBU=s.bindUB=s.bindB=void 0,s.bindB=function(e,t){switch(t.length){case 0:return()=>e();case 1:return()=>e(t[0]);case 2:return()=>e(t[0],t[1]);case 3:return()=>e(t[0],t[1],t[2]);case 4:return()=>e(t[0],t[1],t[2],t[3]);case 5:return()=>e(t[0],t[1],t[2],t[3],t[4]);case 6:return()=>e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return()=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6]);case 8:return()=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);default:return()=>e.apply(void 0,t)}},s.bindUB=function(e,t){switch(t.length){case 0:return t=>e(t);case 1:return s=>e(s,t[0]);case 2:return s=>e(s,t[0],t[1]);case 3:return s=>e(s,t[0],t[1],t[2]);case 4:return s=>e(s,t[0],t[1],t[2],t[3]);case 5:return s=>e(s,t[0],t[1],t[2],t[3],t[4]);case 6:return s=>e(s,t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return s=>e(s,t[0],t[1],t[2],t[3],t[4],t[5],t[6]);case 8:return s=>e(s,t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]);default:return s=>e(s,...t)}},s.bindBU=function(e,t){switch(t.length){case 0:return t=>e(t);case 1:return s=>e(t[0],s);case 2:return s=>e(t[0],t[1],s);case 3:return s=>e(t[0],t[1],t[2],s);case 4:return s=>e(t[0],t[1],t[2],t[3],s);case 5:return s=>e(t[0],t[1],t[2],t[3],t[4],s);case 6:return s=>e(t[0],t[1],t[2],t[3],t[4],t[5],s);case 7:return s=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],s);case 8:return s=>e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],s);default:return s=>e(...t,s)}}},{}],24:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.input=void 0;const n=e("../../index");s.input=function(e,t,...s){const i=t.isValid;function o(t){n.bundleChanges(()=>{e.set(t.value),i&&i.set(t.validity.valid)})}return n.dom("input",...s,n.dom.prop("value",e),i?t=>n.dom.autoDisposeElem(t,n.subscribe(e,e=>i.set(t.checkValidity()))):null,t.onInput?n.dom.on("input",(e,t)=>o(t)):null,n.dom.on("change",(e,t)=>o(t)),n.dom.onKeyPress({Enter:(e,t)=>o(t)}))}},{"../../index":1}],25:[function(e,t,s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.select=void 0;const n=e("../../index");function i(e){return Array.isArray(e)?e:e.get()}function o(e){return"string"==typeof e?e:e.value}s.select=function(e,t,s={}){const{defLabel:r=""}=s;return n.dom("select",n.dom("option",n.dom.hide(!0),r),n.dom.forEach(t,t=>{const s="string"==typeof t?{value:t,label:t}:t;return n.dom("option",{disabled:s.disabled,selected:s.value===e.get()},s.label)}),s=>n.dom.autoDisposeElem(s,n.subscribe(e,(e,n)=>{const r=i(t).findIndex(e=>o(e)===n);s.selectedIndex=r+1})),n.dom.on("change",(s,n)=>{const r=n.selectedIndex,u=i(t)[r-1];void 0!==u&&e.set(o(u))}))}},{"../../index":1}]},{},[1])(1)});
2
2
  //# sourceMappingURL=grain-full.min.js.map