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.
- package/README.md +54 -9
- package/dist/cjs/index.d.ts +6 -2
- package/dist/cjs/index.js +24 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/PriorityQueue.d.ts +1 -1
- package/dist/cjs/lib/PriorityQueue.js +1 -0
- package/dist/cjs/lib/PriorityQueue.js.map +1 -1
- package/dist/cjs/lib/_computed_queue.d.ts +18 -0
- package/dist/cjs/lib/_computed_queue.js +6 -1
- package/dist/cjs/lib/_computed_queue.js.map +1 -1
- package/dist/cjs/lib/binding.d.ts +16 -10
- package/dist/cjs/lib/binding.js +22 -27
- package/dist/cjs/lib/binding.js.map +1 -1
- package/dist/cjs/lib/browserGlobals.d.ts +4 -1
- package/dist/cjs/lib/browserGlobals.js +2 -0
- package/dist/cjs/lib/browserGlobals.js.map +1 -1
- package/dist/cjs/lib/computed.d.ts +11 -7
- package/dist/cjs/lib/computed.js +16 -0
- package/dist/cjs/lib/computed.js.map +1 -1
- package/dist/cjs/lib/dispose.d.ts +106 -14
- package/dist/cjs/lib/dispose.js +76 -11
- package/dist/cjs/lib/dispose.js.map +1 -1
- package/dist/cjs/lib/dom.d.ts +21 -17
- package/dist/cjs/lib/dom.js +33 -26
- package/dist/cjs/lib/dom.js.map +1 -1
- package/dist/cjs/lib/domComponent.d.ts +71 -0
- package/dist/cjs/lib/domComponent.js +15 -0
- package/dist/cjs/lib/domComponent.js.map +1 -0
- package/dist/cjs/lib/domComputed.d.ts +89 -0
- package/dist/cjs/lib/domComputed.js +92 -0
- package/dist/cjs/lib/domComputed.js.map +1 -0
- package/dist/cjs/lib/{_domDispose.d.ts → domDispose.d.ts} +12 -2
- package/dist/cjs/lib/{_domDispose.js → domDispose.js} +21 -8
- package/dist/cjs/lib/domDispose.js.map +1 -0
- package/dist/cjs/lib/{_domForEach.d.ts → domForEach.d.ts} +2 -2
- package/dist/cjs/lib/domForEach.js +72 -0
- package/dist/cjs/lib/domForEach.js.map +1 -0
- package/dist/cjs/lib/{_domImpl.d.ts → domImpl.d.ts} +15 -12
- package/dist/cjs/lib/{_domImpl.js → domImpl.js} +23 -6
- package/dist/cjs/lib/domImpl.js.map +1 -0
- package/dist/cjs/lib/{_domMethods.d.ts → domMethods.d.ts} +27 -62
- package/dist/cjs/lib/{_domMethods.js → domMethods.js} +21 -76
- package/dist/cjs/lib/domMethods.js.map +1 -0
- package/dist/cjs/lib/domevent.d.ts +32 -21
- package/dist/cjs/lib/domevent.js +33 -12
- package/dist/cjs/lib/domevent.js.map +1 -1
- package/dist/cjs/lib/emit.d.ts +25 -2
- package/dist/cjs/lib/emit.js +3 -1
- package/dist/cjs/lib/emit.js.map +1 -1
- package/dist/cjs/lib/kowrap.d.ts +45 -3
- package/dist/cjs/lib/kowrap.js +93 -10
- package/dist/cjs/lib/kowrap.js.map +1 -1
- package/dist/cjs/lib/obsArray.d.ts +8 -8
- package/dist/cjs/lib/obsArray.js +1 -0
- package/dist/cjs/lib/obsArray.js.map +1 -1
- package/dist/cjs/lib/observable.d.ts +6 -1
- package/dist/cjs/lib/observable.js +11 -2
- package/dist/cjs/lib/observable.js.map +1 -1
- package/dist/cjs/lib/pureComputed.d.ts +3 -3
- package/dist/cjs/lib/pureComputed.js +2 -1
- package/dist/cjs/lib/pureComputed.js.map +1 -1
- package/dist/cjs/lib/styled.d.ts +76 -11
- package/dist/cjs/lib/styled.js +55 -23
- package/dist/cjs/lib/styled.js.map +1 -1
- package/dist/cjs/lib/subscribe.d.ts +15 -6
- package/dist/cjs/lib/subscribe.js +6 -2
- package/dist/cjs/lib/subscribe.js.map +1 -1
- package/dist/cjs/lib/util.js +1 -0
- package/dist/cjs/lib/util.js.map +1 -1
- package/dist/cjs/lib/widgets/input.d.ts +2 -2
- package/dist/cjs/lib/widgets/input.js +2 -2
- package/dist/cjs/lib/widgets/input.js.map +1 -1
- package/dist/cjs/lib/widgets/select.d.ts +1 -1
- package/dist/cjs/lib/widgets/select.js +1 -0
- package/dist/cjs/lib/widgets/select.js.map +1 -1
- package/dist/esm/index.js +6 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/PriorityQueue.js.map +1 -1
- package/dist/esm/lib/_computed_queue.js +5 -1
- package/dist/esm/lib/_computed_queue.js.map +1 -1
- package/dist/esm/lib/binding.js +20 -27
- package/dist/esm/lib/binding.js.map +1 -1
- package/dist/esm/lib/browserGlobals.js +1 -0
- package/dist/esm/lib/browserGlobals.js.map +1 -1
- package/dist/esm/lib/computed.js +15 -0
- package/dist/esm/lib/computed.js.map +1 -1
- package/dist/esm/lib/dispose.js +74 -11
- package/dist/esm/lib/dispose.js.map +1 -1
- package/dist/esm/lib/dom.js +21 -17
- package/dist/esm/lib/dom.js.map +1 -1
- package/dist/esm/lib/domComponent.js +11 -0
- package/dist/esm/lib/domComponent.js.map +1 -0
- package/dist/esm/lib/domComputed.js +84 -0
- package/dist/esm/lib/domComputed.js.map +1 -0
- package/dist/esm/lib/{_domDispose.js → domDispose.js} +19 -8
- package/dist/esm/lib/domDispose.js.map +1 -0
- package/dist/esm/lib/domForEach.js +68 -0
- package/dist/esm/lib/domForEach.js.map +1 -0
- package/dist/esm/lib/{_domImpl.js → domImpl.js} +20 -4
- package/dist/esm/lib/domImpl.js.map +1 -0
- package/dist/esm/lib/{_domMethods.js → domMethods.js} +8 -63
- package/dist/esm/lib/domMethods.js.map +1 -0
- package/dist/esm/lib/domevent.js +30 -11
- package/dist/esm/lib/domevent.js.map +1 -1
- package/dist/esm/lib/emit.js +2 -1
- package/dist/esm/lib/emit.js.map +1 -1
- package/dist/esm/lib/kowrap.js +90 -10
- package/dist/esm/lib/kowrap.js.map +1 -1
- package/dist/esm/lib/obsArray.js.map +1 -1
- package/dist/esm/lib/observable.js +9 -1
- package/dist/esm/lib/observable.js.map +1 -1
- package/dist/esm/lib/pureComputed.js +1 -1
- package/dist/esm/lib/pureComputed.js.map +1 -1
- package/dist/esm/lib/styled.js +52 -22
- package/dist/esm/lib/styled.js.map +1 -1
- package/dist/esm/lib/subscribe.js +5 -2
- package/dist/esm/lib/subscribe.js.map +1 -1
- package/dist/esm/lib/util.js.map +1 -1
- package/dist/esm/lib/widgets/input.js +1 -2
- package/dist/esm/lib/widgets/input.js.map +1 -1
- package/dist/esm/lib/widgets/select.js.map +1 -1
- package/dist/grain-full.debug.js +1627 -1222
- package/dist/grain-full.min.js +1 -1
- package/dist/grain-full.min.js.map +1 -1
- package/index.ts +6 -2
- package/lib/_computed_queue.ts +7 -1
- package/lib/binding.ts +33 -28
- package/lib/browserGlobals.ts +3 -1
- package/lib/computed.ts +37 -7
- package/lib/dispose.ts +81 -33
- package/lib/dom.ts +24 -18
- package/lib/domComponent.ts +89 -0
- package/lib/domComputed.ts +146 -0
- package/lib/{_domDispose.ts → domDispose.ts} +26 -8
- package/lib/{_domForEach.ts → domForEach.ts} +12 -11
- package/lib/{_domImpl.ts → domImpl.ts} +36 -30
- package/lib/{_domMethods.ts → domMethods.ts} +33 -103
- package/lib/domevent.ts +59 -22
- package/lib/emit.ts +2 -1
- package/lib/kowrap.ts +109 -11
- package/lib/obsArray.ts +2 -2
- package/lib/observable.ts +10 -2
- package/lib/pureComputed.ts +7 -6
- package/lib/styled.ts +65 -39
- package/lib/subscribe.ts +24 -8
- package/lib/widgets/input.ts +9 -7
- package/lib/widgets/select.ts +3 -3
- package/package.json +41 -42
- package/dist/cjs/lib/_domComponent.d.ts +0 -84
- package/dist/cjs/lib/_domComponent.js +0 -160
- package/dist/cjs/lib/_domComponent.js.map +0 -1
- package/dist/cjs/lib/_domDispose.js.map +0 -1
- package/dist/cjs/lib/_domForEach.js +0 -71
- package/dist/cjs/lib/_domForEach.js.map +0 -1
- package/dist/cjs/lib/_domImpl.js.map +0 -1
- package/dist/cjs/lib/_domMethods.js.map +0 -1
- package/dist/esm/lib/_domComponent.js +0 -155
- package/dist/esm/lib/_domComponent.js.map +0 -1
- package/dist/esm/lib/_domDispose.js.map +0 -1
- package/dist/esm/lib/_domForEach.js +0 -68
- package/dist/esm/lib/_domForEach.js.map +0 -1
- package/dist/esm/lib/_domImpl.js.map +0 -1
- package/dist/esm/lib/_domMethods.js.map +0 -1
- package/lib/_domComponent.ts +0 -167
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.input = void 0;
|
|
3
4
|
/**
|
|
4
5
|
* General INPUT widget.
|
|
5
6
|
*/
|
|
@@ -22,8 +23,7 @@ const index_1 = require("../../index");
|
|
|
22
23
|
*/
|
|
23
24
|
function input(obs, options, ...args) {
|
|
24
25
|
const isValid = options.isValid;
|
|
25
|
-
function setValue(
|
|
26
|
-
const elem = _elem;
|
|
26
|
+
function setValue(elem) {
|
|
27
27
|
index_1.bundleChanges(() => {
|
|
28
28
|
obs.set(elem.value);
|
|
29
29
|
if (isValid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../lib/widgets/input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../lib/widgets/input.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,uCAAgF;AAUhF;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,KAAK,CACnB,GAAuB,EAAE,OAAsB,EAAE,GAAG,IAAgC;IAGpF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,SAAS,QAAQ,CAAC,IAAsB;QACtC,qBAAa,CAAC,GAAG,EAAE;YACjB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,OAAO,EAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAAE;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAG,CAAC,OAAO,EAAE,GAAG,IAAI,EACzB,WAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EACtB,CAAC,OAAO,CAAC,CAAC;QACR,CAAC,IAAI,EAAE,EAAE,CAAC,WAAG,CAAC,eAAe,CAAC,IAAI,EAChC,iBAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,EACP,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACrE,WAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC7C,WAAG,CAAC,UAAU,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,CAAC,CACrD,CAAC;AACJ,CAAC;AAvBD,sBAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../lib/widgets/select.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../lib/widgets/select.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,uCAAsE;AAWtE,SAAS,mBAAmB,CAAI,KAAuB;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAI,MAAkB;IAC3C,OAAO,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAE,MAAyB,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,MAAM,CAAI,GAAkB,EAAE,WAAsC,EAC1D,UAA+B,EAAE;IACzD,MAAM,EAAC,QAAQ,GAAG,EAAE,EAAC,GAAG,OAAO,CAAC;IAChC,OAAO,WAAG,CAAC,QAAQ;IACjB,6FAA6F;IAC7F,qFAAqF;IACrF,WAAG,CAAC,QAAQ,EAAE,WAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEvC,kCAAkC;IAClC,WAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QAClC,MAAM,GAAG,GAAmB,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;YACxD,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC,CAAE,MAAyB,CAAC;QAC9D,0FAA0F;QAC1F,uFAAuF;QACvF,OAAO,WAAG,CAAC,QAAQ,EAAE;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,EAAE;SAClC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,uFAAuF;IACvF,4FAA4F;IAC5F,CAAC,IAAI,EAAE,EAAE,CAAC,WAAG,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QACnE,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,CAAC,CAAC,CAAI,wBAAwB;IAC7D,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,WAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAG,wBAAwB;QACpF,4FAA4F;QAC5F,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAtCD,wBAsCC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './lib/binding';
|
|
2
|
+
export * from './lib/computed';
|
|
2
3
|
export * from './lib/dispose';
|
|
3
4
|
export * from './lib/dom';
|
|
4
5
|
export * from './lib/emit';
|
|
5
6
|
export * from './lib/kowrap';
|
|
6
7
|
export * from './lib/obsArray';
|
|
7
8
|
export * from './lib/observable';
|
|
9
|
+
export * from './lib/pureComputed';
|
|
8
10
|
export * from './lib/styled';
|
|
9
|
-
export
|
|
11
|
+
export * from './lib/subscribe';
|
|
10
12
|
export * from './lib/util';
|
|
13
|
+
export * from './lib/widgets/input';
|
|
14
|
+
export * from './lib/widgets/select';
|
|
11
15
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriorityQueue.js","sourceRoot":"","sources":["../../../lib/PriorityQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM;
|
|
1
|
+
{"version":3,"file":"PriorityQueue.js","sourceRoot":"","sources":["../../../lib/PriorityQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,OAAO,aAAa;IAMxB,YAAoB,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;QAL5C,4FAA4F;QAC5F,8FAA8F;QAC9F,8CAA8C;QACtC,WAAM,GAAQ,EAAE,CAAC;IAEsB,CAAC;IAEhD,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjD,IAAI,CAAC,IAAO;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,OAAO,MAAM,GAAG,CAAC,EAAE;YACjB,wFAAwF;YACxF,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAG,iCAAiC;YACrE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBAC1B,MAAM;aACP;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;YACxB,MAAM,GAAG,MAAM,CAAC;SACjB;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAEM,GAAG;QACR,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB,gDAAgD;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,OAAO,GAAG,IAAI,EAAE;YACrB,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7E,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE;gBACjC,MAAM;aACP;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,GAAG,OAAO,CAAC;YACjB,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;SAC/B;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -27,11 +27,13 @@ export class DepItem {
|
|
|
27
27
|
constructor(callback, optContext) {
|
|
28
28
|
this._priority = 0;
|
|
29
29
|
this._enqueued = false;
|
|
30
|
+
// Order of creation, used for ordering items at same priority.
|
|
31
|
+
this._creation = ++_nextCreationNum;
|
|
30
32
|
this._callback = callback;
|
|
31
33
|
this._context = optContext;
|
|
32
34
|
}
|
|
33
35
|
static isPrioritySmaller(a, b) {
|
|
34
|
-
return a._priority < b._priority;
|
|
36
|
+
return a._priority < b._priority || (a._priority === b._priority && a._creation < b._creation);
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* Mark depItem as a dependency of this DepItem. The argument may be null to indicate a leaf (an
|
|
@@ -62,6 +64,8 @@ export class DepItem {
|
|
|
62
64
|
}
|
|
63
65
|
// The main compute queue.
|
|
64
66
|
const queue = new PriorityQueue(DepItem.isPrioritySmaller);
|
|
67
|
+
// Counter for creation order, used to create a stable ordering of DepItems at same priority.
|
|
68
|
+
let _nextCreationNum = 0;
|
|
65
69
|
// Array to keep track of items recomputed during this call to compute(). It could be a local
|
|
66
70
|
// variable in compute(), but is made global to minimize allocations.
|
|
67
71
|
const _seen = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_computed_queue.js","sourceRoot":"","sources":["../../../lib/_computed_queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM;
|
|
1
|
+
{"version":3,"file":"_computed_queue.js","sourceRoot":"","sources":["../../../lib/_computed_queue.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/binding.js
CHANGED
|
@@ -3,31 +3,17 @@
|
|
|
3
3
|
* a plain value, or a function from which it builds a computed.
|
|
4
4
|
*/
|
|
5
5
|
import { computed } from './computed';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* with a context function `use`, allowing it to depend on other observable values (see
|
|
11
|
-
* documentation for `computed`).
|
|
12
|
-
*
|
|
13
|
-
* In all cases, `callback(newValue, oldValue)` is called immediately and whenever the value
|
|
14
|
-
* changes. On the initial call, oldValue is undefined.
|
|
15
|
-
*
|
|
16
|
-
* Returns an object which should be disposed to remove the created subscriptions, or null.
|
|
17
|
-
*/
|
|
18
|
-
export function subscribe(valueObs, callback) {
|
|
6
|
+
import { autoDisposeElem } from './domDispose';
|
|
7
|
+
import { BaseObservable } from './observable';
|
|
8
|
+
import { subscribe } from './subscribe';
|
|
9
|
+
export function subscribeBindable(valueObs, callback) {
|
|
19
10
|
// A plain function (to make a computed from), or a knockout observable.
|
|
20
11
|
if (typeof valueObs === 'function') {
|
|
21
12
|
// Knockout observable.
|
|
22
13
|
const koValue = valueObs;
|
|
23
14
|
if (typeof koValue.peek === 'function') {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const old = savedValue;
|
|
27
|
-
savedValue = val;
|
|
28
|
-
callback(val, old);
|
|
29
|
-
});
|
|
30
|
-
callback(savedValue, undefined);
|
|
15
|
+
const sub = koValue.subscribe((val) => callback(val));
|
|
16
|
+
callback(koValue.peek());
|
|
31
17
|
return sub;
|
|
32
18
|
}
|
|
33
19
|
// Function from which to make a computed. Note that this is also reasonable:
|
|
@@ -35,17 +21,24 @@ export function subscribe(valueObs, callback) {
|
|
|
35
21
|
// The difference is that when valueObs() evaluates to unchanged value, callback would be
|
|
36
22
|
// called in the version above, but not in the version below.
|
|
37
23
|
const comp = computed(valueObs);
|
|
38
|
-
comp.addListener(callback);
|
|
39
|
-
callback(comp.get()
|
|
24
|
+
comp.addListener((val) => callback(val));
|
|
25
|
+
callback(comp.get());
|
|
40
26
|
return comp; // Disposing this will dispose its one listener.
|
|
41
27
|
}
|
|
42
28
|
// An observable.
|
|
43
|
-
if (valueObs instanceof
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return
|
|
29
|
+
if (valueObs instanceof BaseObservable) {
|
|
30
|
+
// Use subscribe() rather than addListener(), so that bundling of changes (implicit and with
|
|
31
|
+
// bundleChanges()) is respected. This matters when callback also uses observables.
|
|
32
|
+
return subscribe(valueObs, (use, val) => callback(val));
|
|
47
33
|
}
|
|
48
|
-
callback(valueObs
|
|
34
|
+
callback(valueObs);
|
|
49
35
|
return null;
|
|
50
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Subscribes a callback to valueObs (which may be a value, observable, or function) using
|
|
39
|
+
* subscribe(), and disposes the subscription with the passed-in element.
|
|
40
|
+
*/
|
|
41
|
+
export function subscribeElem(elem, valueObs, callback) {
|
|
42
|
+
autoDisposeElem(elem, subscribeBindable(valueObs, callback));
|
|
43
|
+
}
|
|
51
44
|
//# sourceMappingURL=binding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../lib/binding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../lib/binding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAa,MAAM,aAAa,CAAC;AAsBlD,MAAM,UAAU,iBAAiB,CAC7B,QAA0B,EAAE,QAA0B;IACxD,wEAAwE;IACxE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAClC,uBAAuB;QACvB,MAAM,OAAO,GAAG,QAAsC,CAAC;QACvD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;YACtC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;SACZ;QAED,6EAA6E;QAC7E,0DAA0D;QAC1D,yFAAyF;QACzF,6DAA6D;QAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAA+B,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,CAAM,gDAAgD;KACnE;IAED,iBAAiB;IACjB,IAAI,QAAQ,YAAY,cAAc,EAAE;QACtC,4FAA4F;QAC5F,mFAAmF;QACnF,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;IAED,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,IAAU,EAAE,QAA0B,EACtC,QAAyC;IACxE,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserGlobals.js","sourceRoot":"","sources":["../../../lib/browserGlobals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"browserGlobals.js","sourceRoot":"","sources":["../../../lib/browserGlobals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUsE,CAAC;AAE1E,SAAS,cAAc,CAAC,IAAqB,EAAE,MAAuB;IACpE,IAAI,CAAC,gBAAgB,GAAI,MAAM,CAAC,gBAAgB,CAAC;IACjD,IAAI,CAAC,OAAO,GAAa,MAAM,CAAC,OAAO,CAAC;IACxC,IAAI,CAAC,IAAI,GAAgB,MAAM,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,QAAQ,GAAY,MAAM,CAAC,QAAQ,CAAC;IACzC,IAAI,CAAC,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC;AACzC,CAAC;AAED,sCAAsC;AACtC,MAAM,OAAO,GAAoB,EAAqB,CAAC;AACvD,cAAc,CAAC,OAAO,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,CAAC,qBAAyB,OAAO,CAAE,CAAC;AAEjD,uFAAuF;AACvF,MAAM,aAAa,GAAsB,CAAC,OAAO,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,EAAE,CAAC;KACrB;IACD,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
package/dist/esm/lib/computed.js
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
* owned value. Note that only the pattern above works, i.e. use.owner may only be used to take
|
|
34
34
|
* ownership of the same disposable that the callback returns.
|
|
35
35
|
*/
|
|
36
|
+
import { setDisposeOwner } from './dispose';
|
|
36
37
|
import { Observable } from './observable';
|
|
37
38
|
import { Subscription } from './subscribe';
|
|
38
39
|
function _noWrite() {
|
|
@@ -50,6 +51,20 @@ export class Computed extends Observable {
|
|
|
50
51
|
this._write = _noWrite;
|
|
51
52
|
this._sub = new Subscription(this._read.bind(this), dependencies, this);
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new Computed, owned by the given owner.
|
|
56
|
+
* @param owner: Object to own this Computed, or null to handle disposal manually.
|
|
57
|
+
* @param ...observables: Zero or more observables on which this computes depends. The callback
|
|
58
|
+
* will get called when any of these changes.
|
|
59
|
+
* @param callback: Read callback that will be called with (use, ...values),
|
|
60
|
+
* i.e. the `use` function and values for all of the ...observables. The callback is called
|
|
61
|
+
* immediately and whenever any dependency changes.
|
|
62
|
+
* @returns {Computed} The newly created computed observable.
|
|
63
|
+
*/
|
|
64
|
+
static create(owner, ...args) {
|
|
65
|
+
const readCb = args.pop();
|
|
66
|
+
return setDisposeOwner(owner, new Computed(readCb, args));
|
|
67
|
+
}
|
|
53
68
|
/**
|
|
54
69
|
* Used by subscriptions to keep track of dependencies.
|
|
55
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../lib/computed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;
|
|
1
|
+
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../lib/computed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAAoB,eAAe,EAAC,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAwB,UAAU,EAAC,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAgB,YAAY,EAAsB,MAAM,aAAa,CAAC;AAE7E,SAAS,QAAQ;IACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC1D,CAAC;AAID,MAAM,OAAO,QAAY,SAAQ,UAAa;IAuC5C;;OAEG;IACH,YAAY,QAA2C,EAAE,YAA6B;QACpF,4FAA4F;QAC5F,qFAAqF;QACrF,KAAK,CAAC,SAAgB,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IA7BD;;;;;;;;;OASG;IACI,MAAM,CAAC,MAAM,CAAI,KAA0C,EAAE,GAAG,IAAW;QAChF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,KAAK,EAAE,IAAI,QAAQ,CAAI,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAkBD;;OAEG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,KAAQ,IAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElD;;;OAGG;IACI,OAAO,CAAC,SAA6B;QAC1C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,GAAQ,EAAE,GAAG,IAAW;QACpC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAY,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;CACF;AA6BD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAW;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,IAAI,QAAQ,CAAM,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,kDAAkD;AAClD,2FAA2F;AAC3F,4FAA4F;AAC5F,+EAA+E;AAC/E,EAAE;AACF,yDAAyD;AACzD,wFAAwF;AACxF,oEAAoE;AACpE,qEAAqE;AACrE,uFAAuF;AACvF,kGAAkG;AAClG,oCAAoC"}
|
package/dist/esm/lib/dispose.js
CHANGED
|
@@ -45,9 +45,29 @@
|
|
|
45
45
|
* this._holder.clear(); // disposes contained object
|
|
46
46
|
* this._holder.release(); // releases contained object
|
|
47
47
|
*
|
|
48
|
+
* If you need a container for multiple objects and dispose them all together, use a MultiHolder:
|
|
49
|
+
* this._mholder = MultiHolder.create(null);
|
|
50
|
+
* Bar.create(this._mholder, 1); // create new Bar(1)
|
|
51
|
+
* Bar.create(this._mholder, 2); // create new Bar(2)
|
|
52
|
+
* this._mholder.dispose(); // disposes both objects
|
|
53
|
+
*
|
|
48
54
|
* If creating your own class with a dispose() method, do NOT throw exceptions from dispose().
|
|
49
55
|
* These cannot be handled properly in all cases. Read here about the same issue in C++:
|
|
50
56
|
* http://bin-login.name/ftp/pub/docs/programming_languages/cpp/cffective_cpp/MAGAZINE/SU_FRAME.HTM#destruct
|
|
57
|
+
*
|
|
58
|
+
* Using a parametrized (generic) class as a Disposable is tricky. E.g.
|
|
59
|
+
* class Bar<T> extends Disposable { ... }
|
|
60
|
+
* // Bar<T>.create(...) <-- doesn't work
|
|
61
|
+
* // Bar.create<T>(...) <-- doesn't work
|
|
62
|
+
* // Bar.create(...) <-- works, but with {} for Bar's type parameters
|
|
63
|
+
*
|
|
64
|
+
* The solution is to expose the constructor type using a helper method:
|
|
65
|
+
* class Bar<T> extends Disposable {
|
|
66
|
+
* // Note the tuple below which must match the constructor parameters of Bar<U>.
|
|
67
|
+
* public static ctor<U>(): IDisposableCtor<Bar<U>, [U, boolean]> { return this; }
|
|
68
|
+
* constructor(a: T, b: boolean) { ... }
|
|
69
|
+
* }
|
|
70
|
+
* Bar.ctor<T>().create(...) // <-- works, creates Bar<T>, and does type-checking!
|
|
51
71
|
*/
|
|
52
72
|
import { LLink } from './emit';
|
|
53
73
|
// Internal "owner" of disposable objects which doesn't actually dispose or keep track of them. It
|
|
@@ -66,7 +86,18 @@ export class Disposable {
|
|
|
66
86
|
this._disposalList = new DisposalList();
|
|
67
87
|
// This registers with a temp Holder when using create(), and is a no-op when using `new Foo`.
|
|
68
88
|
_defaultDisposableOwner.autoDispose(this);
|
|
89
|
+
// Be sure to reset to no-op, so that a (non-recommended) direct call like 'new Bar()', from
|
|
90
|
+
// inside Foo's constructor doesn't use the same Holder that's temporarily holding Foo.
|
|
91
|
+
_defaultDisposableOwner = _noopOwner;
|
|
69
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Create Disposable instances using `Class.create(owner, ...)` rather than `new Class(...)`.
|
|
95
|
+
*
|
|
96
|
+
* This reminds you to provide an owner, and ensures that if the constructor throws an
|
|
97
|
+
* exception, dispose() gets called to clean up the partially-constructed object.
|
|
98
|
+
*
|
|
99
|
+
* Owner may be null if intend to ensure disposal some other way.
|
|
100
|
+
*/
|
|
70
101
|
static create(owner, ...args) {
|
|
71
102
|
const origDefaultOwner = _defaultDisposableOwner;
|
|
72
103
|
const holder = new Holder();
|
|
@@ -100,7 +131,7 @@ export class Disposable {
|
|
|
100
131
|
}
|
|
101
132
|
/** Call the given callback when this.dispose() is called. */
|
|
102
133
|
onDispose(callback, context) {
|
|
103
|
-
this._disposalList.addListener(callback, context);
|
|
134
|
+
return this._disposalList.addListener(callback, context);
|
|
104
135
|
}
|
|
105
136
|
/**
|
|
106
137
|
* Wipe out this object when it is disposed, i.e. set all its properties to null. It is
|
|
@@ -132,8 +163,14 @@ export class Disposable {
|
|
|
132
163
|
*/
|
|
133
164
|
dispose() {
|
|
134
165
|
const disposalList = this._disposalList;
|
|
135
|
-
|
|
136
|
-
|
|
166
|
+
if (!disposalList) {
|
|
167
|
+
// tslint:disable-next-line:no-console
|
|
168
|
+
console.error("Error disposing %s which is already disposed", _describe(this));
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this._disposalList = null;
|
|
172
|
+
disposalList.callAndDispose(this);
|
|
173
|
+
}
|
|
137
174
|
}
|
|
138
175
|
/**
|
|
139
176
|
* Wipe out this object by setting each property to null. This is helpful for objects that are
|
|
@@ -155,38 +192,38 @@ export class Disposable {
|
|
|
155
192
|
*
|
|
156
193
|
* If the object is an instance of Disposable, the holder will also notice when the object gets
|
|
157
194
|
* disposed from outside of it, in which case the holder will become empty again.
|
|
158
|
-
*
|
|
159
|
-
* TODO Holder needs unittests.
|
|
160
195
|
*/
|
|
161
196
|
export class Holder {
|
|
162
197
|
constructor() {
|
|
163
198
|
this._owned = null;
|
|
199
|
+
this._disposalListener = undefined;
|
|
164
200
|
}
|
|
165
201
|
static create(owner) {
|
|
166
202
|
return setDisposeOwner(owner, new Holder());
|
|
167
203
|
}
|
|
168
204
|
/** Take ownership of a new object, disposing the previously held one. */
|
|
169
205
|
autoDispose(obj) {
|
|
170
|
-
|
|
171
|
-
this._owned.dispose();
|
|
172
|
-
}
|
|
206
|
+
this.clear();
|
|
173
207
|
this._owned = obj;
|
|
174
208
|
if (obj instanceof Disposable) {
|
|
175
|
-
obj.onDispose(this.
|
|
209
|
+
this._disposalListener = obj.onDispose(this._onOutsideDispose, this);
|
|
176
210
|
}
|
|
177
211
|
return obj;
|
|
178
212
|
}
|
|
179
213
|
/** Releases the held object without disposing it, emptying the holder. */
|
|
180
214
|
release() {
|
|
215
|
+
this._unlisten();
|
|
181
216
|
const ret = this._owned;
|
|
182
217
|
this._owned = null;
|
|
183
218
|
return ret;
|
|
184
219
|
}
|
|
185
220
|
/** Disposes the held object and empties the holder. */
|
|
186
221
|
clear() {
|
|
187
|
-
|
|
188
|
-
|
|
222
|
+
this._unlisten();
|
|
223
|
+
const owned = this._owned;
|
|
224
|
+
if (owned) {
|
|
189
225
|
this._owned = null;
|
|
226
|
+
owned.dispose();
|
|
190
227
|
}
|
|
191
228
|
}
|
|
192
229
|
/** Returns the held object, or null if the Holder is empty. */
|
|
@@ -195,6 +232,25 @@ export class Holder {
|
|
|
195
232
|
isEmpty() { return !this._owned; }
|
|
196
233
|
/** When the holder is disposed, it disposes the held object if any. */
|
|
197
234
|
dispose() { this.clear(); }
|
|
235
|
+
/** Stop listening for the disposal of this._owned. */
|
|
236
|
+
_unlisten() {
|
|
237
|
+
const disposalListener = this._disposalListener;
|
|
238
|
+
if (disposalListener) {
|
|
239
|
+
this._disposalListener = undefined;
|
|
240
|
+
disposalListener.dispose();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
_onOutsideDispose() {
|
|
244
|
+
this._disposalListener = undefined;
|
|
245
|
+
this._owned = null;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* MultiHolder keeps multiple disposable object. It disposes all held object when the holder
|
|
250
|
+
* itself is disposed. It's actually nothing more than the Disposable base class itself, just
|
|
251
|
+
* exposed with a clearer name that describes its purpose.
|
|
252
|
+
*/
|
|
253
|
+
export class MultiHolder extends Disposable {
|
|
198
254
|
}
|
|
199
255
|
/**
|
|
200
256
|
* Sets owner of obj (i.e. calls owner.autoDispose(obj)) unless owner is null. Returns obj.
|
|
@@ -220,6 +276,7 @@ class DisposalList extends LLink {
|
|
|
220
276
|
addListener(callback, optContext) {
|
|
221
277
|
const lis = new DisposeListener(callback, optContext);
|
|
222
278
|
this._insertBefore(this._next, lis);
|
|
279
|
+
return lis;
|
|
223
280
|
}
|
|
224
281
|
/**
|
|
225
282
|
* Call all callbacks and dispose this object. The owner is required for better reporting of
|
|
@@ -257,5 +314,11 @@ class DisposeListener extends LLink {
|
|
|
257
314
|
begin = lis._next;
|
|
258
315
|
}
|
|
259
316
|
}
|
|
317
|
+
dispose() {
|
|
318
|
+
if (this.isDisposed()) {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
this._removeNode(this);
|
|
322
|
+
}
|
|
260
323
|
}
|
|
261
324
|
//# sourceMappingURL=dispose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../../lib/dispose.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../../lib/dispose.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/dom.js
CHANGED
|
@@ -17,22 +17,25 @@
|
|
|
17
17
|
* identical to the first example above.
|
|
18
18
|
*/
|
|
19
19
|
// We keep various dom-related functions organized in private modules, but they are exposed here.
|
|
20
|
-
export
|
|
21
|
-
export * from './
|
|
22
|
-
export * from './
|
|
23
|
-
export * from './
|
|
24
|
-
export * from './
|
|
20
|
+
export * from './domImpl';
|
|
21
|
+
export * from './domComponent';
|
|
22
|
+
export * from './domComputed';
|
|
23
|
+
export * from './domDispose';
|
|
24
|
+
export * from './domForEach';
|
|
25
|
+
export * from './domMethods';
|
|
25
26
|
export * from './domevent';
|
|
26
|
-
import * as _domComponent from './
|
|
27
|
-
import * as
|
|
28
|
-
import * as
|
|
29
|
-
import * as
|
|
30
|
-
import * as
|
|
27
|
+
import * as _domComponent from './domComponent';
|
|
28
|
+
import * as _domComputed from './domComputed';
|
|
29
|
+
import * as _domDispose from './domDispose';
|
|
30
|
+
import * as _domForEach from './domForEach';
|
|
31
|
+
import * as _domImpl from './domImpl';
|
|
32
|
+
import * as _domMethods from './domMethods';
|
|
31
33
|
import * as domevent from './domevent';
|
|
34
|
+
import { dom as _dom } from './domImpl';
|
|
32
35
|
// We just want to re-export _domImpl.dom, but to allow adding methods to it in a typesafe way,
|
|
33
36
|
// TypeScript wants us to declare a real function in the same file.
|
|
34
37
|
export function dom(tagString, ...args) {
|
|
35
|
-
return
|
|
38
|
+
return _dom(tagString, ...args);
|
|
36
39
|
}
|
|
37
40
|
// Additionally export all methods as properties of dom() function.
|
|
38
41
|
(function (dom) {
|
|
@@ -68,18 +71,19 @@ export function dom(tagString, ...args) {
|
|
|
68
71
|
dom.dataElem = _domMethods.dataElem;
|
|
69
72
|
dom.data = _domMethods.data;
|
|
70
73
|
dom.getData = _domMethods.getData;
|
|
71
|
-
dom.replaceContent =
|
|
72
|
-
dom.domComputed =
|
|
73
|
-
dom.
|
|
74
|
+
dom.replaceContent = _domComputed.replaceContent;
|
|
75
|
+
dom.domComputed = _domComputed.domComputed;
|
|
76
|
+
dom.domComputedOwned = _domComputed.domComputedOwned;
|
|
77
|
+
dom.maybe = _domComputed.maybe;
|
|
78
|
+
dom.maybeOwned = _domComputed.maybeOwned;
|
|
74
79
|
dom.forEach = _domForEach.forEach;
|
|
75
|
-
dom.Component = _domComponent.Component;
|
|
76
80
|
dom.create = _domComponent.create;
|
|
77
|
-
dom.createInit = _domComponent.createInit;
|
|
78
81
|
dom.onElem = domevent.onElem;
|
|
79
82
|
dom.on = domevent.on;
|
|
80
83
|
dom.onMatchElem = domevent.onMatchElem;
|
|
81
84
|
dom.onMatch = domevent.onMatch;
|
|
82
|
-
dom.
|
|
85
|
+
dom.onKeyElem = domevent.onKeyElem;
|
|
83
86
|
dom.onKeyPress = domevent.onKeyPress;
|
|
87
|
+
dom.onKeyDown = domevent.onKeyDown;
|
|
84
88
|
})(dom || (dom = {}));
|
|
85
89
|
//# sourceMappingURL=dom.js.map
|
package/dist/esm/lib/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../lib/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../lib/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAC,GAAG,IAAI,IAAI,EAA6B,MAAM,WAAW,CAAC;AAElE,+FAA+F;AAC/F,mEAAmE;AACnE,MAAM,UAAU,GAAG,CAAsB,SAAc,EAAE,GAAG,IAA4B;IACtF,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,mEAAmE;AACnE,WAAiB,GAAG;IACL,OAAG,GAAe,QAAQ,CAAC,GAAG,CAAC;IAC/B,QAAI,GAAc,QAAQ,CAAC,IAAI,CAAC;IAChC,UAAM,GAAY,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAI,GAAc,QAAQ,CAAC,IAAI,CAAC;IAChC,WAAO,GAAW,QAAQ,CAAC,OAAO,CAAC;IAEnC,cAAU,GAAQ,WAAW,CAAC,UAAU,CAAC;IACzC,iBAAa,GAAK,WAAW,CAAC,aAAa,CAAC;IAC5C,aAAS,GAAS,WAAW,CAAC,SAAS,CAAC;IACxC,mBAAe,GAAG,WAAW,CAAC,eAAe,CAAC;IAC9C,eAAW,GAAO,WAAW,CAAC,WAAW,CAAC;IAE1C,aAAS,GAAS,WAAW,CAAC,SAAS,CAAC;IACxC,SAAK,GAAa,WAAW,CAAC,KAAK,CAAC;IACpC,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,QAAI,GAAc,WAAW,CAAC,IAAI,CAAC;IACnC,gBAAY,GAAM,WAAW,CAAC,YAAY,CAAC;IAC3C,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,QAAI,GAAc,WAAW,CAAC,IAAI,CAAC;IACnC,aAAS,GAAS,WAAW,CAAC,SAAS,CAAC;IACxC,SAAK,GAAa,WAAW,CAAC,KAAK,CAAC;IACpC,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,QAAI,GAAc,WAAW,CAAC,IAAI,CAAC;IACnC,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,QAAI,GAAc,WAAW,CAAC,IAAI,CAAC;IACnC,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,QAAI,GAAc,WAAW,CAAC,IAAI,CAAC;IACnC,WAAO,GAAW,WAAW,CAAC,OAAO,CAAC;IACtC,OAAG,GAAe,WAAW,CAAC,GAAG,CAAC;IAClC,aAAS,GAAS,WAAW,CAAC,SAAS,CAAC;IACxC,YAAQ,GAAU,WAAW,CAAC,QAAQ,CAAC;IACvC,QAAI,GAAc,WAAW,CAAC,IAAI,CAAC;IACnC,WAAO,GAAW,WAAW,CAAC,OAAO,CAAC;IACtC,kBAAc,GAAI,YAAY,CAAC,cAAc,CAAC;IAC9C,eAAW,GAAO,YAAY,CAAC,WAAW,CAAC;IAC3C,oBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;IACjD,SAAK,GAAa,YAAY,CAAC,KAAK,CAAC;IACrC,cAAU,GAAQ,YAAY,CAAC,UAAU,CAAC;IAE1C,WAAO,GAAW,WAAW,CAAC,OAAO,CAAC;IAEtC,UAAM,GAAY,aAAa,CAAC,MAAM,CAAC;IAEvC,UAAM,GAAY,QAAQ,CAAC,MAAM,CAAC;IAClC,MAAE,GAAgB,QAAQ,CAAC,EAAE,CAAC;IAC9B,eAAW,GAAO,QAAQ,CAAC,WAAW,CAAC;IACvC,WAAO,GAAW,QAAQ,CAAC,OAAO,CAAC;IACnC,aAAS,GAAS,QAAQ,CAAC,SAAS,CAAC;IACrC,cAAU,GAAQ,QAAQ,CAAC,UAAU,CAAC;IACtC,aAAS,GAAS,QAAQ,CAAC,SAAS,CAAC;AACpD,CAAC,EApDgB,GAAG,KAAH,GAAG,QAoDnB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { domComputedOwned } from './domComputed';
|
|
2
|
+
export function create(fn, ...args) {
|
|
3
|
+
return domComputedOwned(null, (owner) => {
|
|
4
|
+
const value = ('create' in fn) ?
|
|
5
|
+
fn.create(owner, ...args) :
|
|
6
|
+
fn(owner, ...args);
|
|
7
|
+
return (value && typeof value === 'object' && 'buildDom' in value) ?
|
|
8
|
+
value.buildDom() : value;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=domComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domComponent.js","sourceRoot":"","sources":["../../../lib/domComponent.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAC,gBAAgB,EAAc,MAAM,eAAe,CAAC;AAuB5D,MAAM,UAAU,MAAM,CAAgC,EAAM,EAAE,GAAG,IAAwB;IACvF,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,KAAK,GAAuB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,EAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACtD,EAA4B,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC;YAClE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
|