taggedjs 2.4.12 → 2.4.14
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/bundle.js +862 -424
- package/bundle.js.map +1 -1
- package/js/Clones.type.d.ts +4 -1
- package/js/Clones.type.js +1 -1
- package/js/Clones.type.js.map +1 -1
- package/js/Tag.class.d.ts +7 -10
- package/js/Tag.class.js +120 -63
- package/js/Tag.class.js.map +1 -1
- package/js/Tag.utils.d.ts +5 -5
- package/js/Tag.utils.js +1 -1
- package/js/Tag.utils.js.map +1 -1
- package/js/TemplaterResult.class.d.ts +5 -1
- package/js/TemplaterResult.class.js +19 -12
- package/js/TemplaterResult.class.js.map +1 -1
- package/js/alterProps.function.d.ts +2 -0
- package/js/alterProps.function.js +18 -12
- package/js/alterProps.function.js.map +1 -1
- package/js/checkDestroyPrevious.function.d.ts +3 -1
- package/js/checkDestroyPrevious.function.js +33 -11
- package/js/checkDestroyPrevious.function.js.map +1 -1
- package/js/destroyTag.function.js +4 -4
- package/js/destroyTag.function.js.map +1 -1
- package/js/hasTagSupportChanged.function.js +0 -3
- package/js/hasTagSupportChanged.function.js.map +1 -1
- package/js/index.d.ts +1 -2
- package/js/index.js +1 -2
- package/js/index.js.map +1 -1
- package/js/insertAfter.function.d.ts +2 -0
- package/js/insertAfter.function.js +6 -0
- package/js/insertAfter.function.js.map +1 -0
- package/js/interpolateElement.d.ts +3 -2
- package/js/interpolateElement.js +3 -2
- package/js/interpolateElement.js.map +1 -1
- package/js/interpolateTemplate.d.ts +2 -3
- package/js/interpolateTemplate.js +6 -24
- package/js/interpolateTemplate.js.map +1 -1
- package/js/interpolations.js +2 -1
- package/js/interpolations.js.map +1 -1
- package/js/isInstance.d.ts +2 -2
- package/js/isInstance.js.map +1 -1
- package/js/processAttribute.function.d.ts +1 -0
- package/js/processAttribute.function.js +3 -3
- package/js/processAttribute.function.js.map +1 -1
- package/js/processNewValue.function.js +1 -1
- package/js/processNewValue.function.js.map +1 -1
- package/js/processRegularValue.function.d.ts +2 -2
- package/js/processRegularValue.function.js +7 -6
- package/js/processRegularValue.function.js.map +1 -1
- package/js/processSubjectComponent.function.d.ts +4 -3
- package/js/processSubjectComponent.function.js +26 -18
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +4 -9
- package/js/processSubjectValue.function.js +6 -54
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTag.function.d.ts +7 -0
- package/js/processTag.function.js +59 -0
- package/js/processTag.function.js.map +1 -0
- package/js/processTagArray.d.ts +7 -5
- package/js/processTagArray.js +55 -18
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +1 -1
- package/js/processTagResult.function.js +26 -32
- package/js/processTagResult.function.js.map +1 -1
- package/js/render.d.ts +2 -1
- package/js/render.js.map +1 -1
- package/js/renderExistingTag.function.js +4 -3
- package/js/renderExistingTag.function.js.map +1 -1
- package/js/subject/Subject.class.d.ts +24 -0
- package/js/subject/Subject.class.js +103 -0
- package/js/subject/Subject.class.js.map +1 -0
- package/js/subject/Subject.utils.d.ts +27 -0
- package/js/subject/Subject.utils.js +4 -0
- package/js/subject/Subject.utils.js.map +1 -0
- package/js/subject/ValueSubject.d.ts +9 -0
- package/js/subject/ValueSubject.js +15 -0
- package/js/subject/ValueSubject.js.map +1 -0
- package/js/subject/combineLatest.function.d.ts +2 -0
- package/js/subject/combineLatest.function.js +24 -0
- package/js/subject/combineLatest.function.js.map +1 -0
- package/js/subject/index.d.ts +4 -0
- package/js/subject/index.js +5 -0
- package/js/subject/index.js.map +1 -0
- package/js/subject/will.functions.d.ts +8 -0
- package/js/subject/will.functions.js +32 -0
- package/js/subject/will.functions.js.map +1 -0
- package/js/tag.d.ts +1 -1
- package/js/tag.js +2 -2
- package/js/tag.js.map +1 -1
- package/js/tagElement.js +1 -1
- package/js/tagElement.js.map +1 -1
- package/js/updateBeforeTemplate.function.d.ts +3 -0
- package/js/updateBeforeTemplate.function.js +16 -0
- package/js/updateBeforeTemplate.function.js.map +1 -0
- package/js/updateExistingTagComponent.function.d.ts +2 -1
- package/js/updateExistingTagComponent.function.js +55 -24
- package/js/updateExistingTagComponent.function.js.map +1 -1
- package/js/updateExistingValue.function.d.ts +3 -2
- package/js/updateExistingValue.function.js +35 -11
- package/js/updateExistingValue.function.js.map +1 -1
- package/package.json +1 -1
- /package/js/{errors.d.ts → Errors.d.ts} +0 -0
- /package/js/{errors.js → Errors.js} +0 -0
- /package/js/{errors.js.map → Errors.js.map} +0 -0
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { processSubjectComponent } from './processSubjectComponent.function';
|
|
2
2
|
import { isTagArray, isTagComponent, isTagInstance } from './isInstance';
|
|
3
3
|
import { processTagArray } from './processTagArray';
|
|
4
|
-
import { TagSupport } from './TagSupport.class';
|
|
5
|
-
import { ValueSubject } from './ValueSubject';
|
|
6
4
|
import { processRegularValue } from './processRegularValue.function';
|
|
5
|
+
import { processTag } from './processTag.function';
|
|
7
6
|
var ValueTypes;
|
|
8
7
|
(function (ValueTypes) {
|
|
9
8
|
ValueTypes["tag"] = "tag";
|
|
@@ -24,67 +23,20 @@ function getValueType(value) {
|
|
|
24
23
|
return ValueTypes.value;
|
|
25
24
|
}
|
|
26
25
|
export function processSubjectValue(value, subject, // could be tag via result.tag
|
|
27
|
-
|
|
26
|
+
insertBefore, // <template end interpolate /> (will be removed)
|
|
28
27
|
ownerTag, // owner
|
|
29
28
|
options) {
|
|
30
29
|
const valueType = getValueType(value);
|
|
31
30
|
switch (valueType) {
|
|
32
31
|
case ValueTypes.tag:
|
|
33
|
-
processTag(value, subject,
|
|
32
|
+
processTag(value, subject, insertBefore, ownerTag);
|
|
34
33
|
return;
|
|
35
34
|
case ValueTypes.tagArray:
|
|
36
|
-
return processTagArray(subject, value,
|
|
35
|
+
return processTagArray(subject, value, insertBefore, ownerTag, options);
|
|
37
36
|
case ValueTypes.tagComponent:
|
|
38
|
-
processSubjectComponent(value, subject,
|
|
37
|
+
processSubjectComponent(value, subject, insertBefore, ownerTag, options);
|
|
39
38
|
return;
|
|
40
39
|
}
|
|
41
|
-
processRegularValue(value, subject,
|
|
42
|
-
}
|
|
43
|
-
/** Could be a regular tag or a component. Both are Tag.class */
|
|
44
|
-
export function processTag(tag, subject, // could be tag via result.tag
|
|
45
|
-
insertBefore, // <template end interpolate /> (will be removed)
|
|
46
|
-
ownerTag) {
|
|
47
|
-
// first time seeing this tag?
|
|
48
|
-
if (!tag.tagSupport) {
|
|
49
|
-
if (!isTagInstance(tag)) {
|
|
50
|
-
throw new Error('issue non-tag here');
|
|
51
|
-
}
|
|
52
|
-
applyFakeTemplater(tag, ownerTag, subject);
|
|
53
|
-
if (ownerTag.childTags.find(x => x === tag)) {
|
|
54
|
-
throw new Error('about to reattach tag already present - 5');
|
|
55
|
-
}
|
|
56
|
-
ownerTag.childTags.push(tag);
|
|
57
|
-
}
|
|
58
|
-
tag.ownerTag = ownerTag;
|
|
59
|
-
subject.template = insertBefore;
|
|
60
|
-
tag.buildBeforeElement(insertBefore, {
|
|
61
|
-
counts: { added: 0, removed: 0 },
|
|
62
|
-
forceElement: true, test: false,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
export function applyFakeTemplater(tag, ownerTag, subject) {
|
|
66
|
-
if (!ownerTag) {
|
|
67
|
-
throw new Error('no owner error');
|
|
68
|
-
}
|
|
69
|
-
const fakeTemplater = getFakeTemplater();
|
|
70
|
-
tag.tagSupport = new TagSupport(ownerTag.tagSupport, fakeTemplater, // the template is provided via html`` call
|
|
71
|
-
subject);
|
|
72
|
-
fakeTemplater.global.oldest = tag;
|
|
73
|
-
fakeTemplater.global.newest = tag;
|
|
74
|
-
fakeTemplater.tagSupport = tag.tagSupport;
|
|
75
|
-
// asking me to render will cause my parent to render
|
|
76
|
-
tag.ownerTag = ownerTag;
|
|
77
|
-
}
|
|
78
|
-
function getFakeTemplater() {
|
|
79
|
-
return {
|
|
80
|
-
global: {
|
|
81
|
-
renderCount: 0,
|
|
82
|
-
providers: [],
|
|
83
|
-
context: {},
|
|
84
|
-
},
|
|
85
|
-
children: new ValueSubject([]), // no children
|
|
86
|
-
props: {},
|
|
87
|
-
isTag: true,
|
|
88
|
-
};
|
|
40
|
+
processRegularValue(value, subject, insertBefore);
|
|
89
41
|
}
|
|
90
42
|
//# sourceMappingURL=processSubjectValue.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAOpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,IAAK,UAKJ;AALD,WAAK,UAAU;IACb,yBAAW,CAAA;IACX,oCAAsB,CAAA;IACtB,4CAA8B,CAAA;IAC9B,6BAAe,CAAA;AACjB,CAAC,EALI,UAAU,KAAV,UAAU,QAKd;AAED,SAAS,YAAY,CAAC,KAAU;IAC9B,IAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAA;AACzB,CAAC;AAcD,MAAM,UAAU,mBAAmB,CACjC,KAA4B,EAC5B,OAA2B,EAAE,8BAA8B;AAC3D,YAA0B,EAAE,iDAAiD;AAC7E,QAAa,EAAE,QAAQ;AACvB,OAAuB;IAEvB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,GAAG;YACjB,UAAU,CACR,KAAK,EACL,OAAqB,EACrB,YAAY,EACZ,QAAQ,CACT,CAAA;YACD,OAAM;QAER,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO,eAAe,CACpB,OAA0B,EAC1B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,CACR,CAAA;QAEH,KAAK,UAAU,CAAC,YAAY;YAC1B,uBAAuB,CACrB,KAAwB,EACxB,OAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,OAAO,CACR,CAAA;YACD,OAAM;IACV,CAAC;IAED,mBAAmB,CACjB,KAAK,EACL,OAAyB,EACzB,YAAY,CACb,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InsertBefore } from './Clones.type';
|
|
2
|
+
import { Tag } from './Tag.class';
|
|
3
|
+
import { TagSubject } from './Tag.utils';
|
|
4
|
+
/** Could be a regular tag or a component. Both are Tag.class */
|
|
5
|
+
export declare function processTag(tag: Tag, subject: TagSubject, // could be tag via result.tag
|
|
6
|
+
insertBefore: InsertBefore, ownerTag: Tag): void;
|
|
7
|
+
export declare function applyFakeTemplater(tag: Tag, ownerTag: Tag, subject: TagSubject): void;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { isTagInstance } from './isInstance';
|
|
2
|
+
import { TagSupport } from './TagSupport.class';
|
|
3
|
+
import { ValueSubject } from './subject';
|
|
4
|
+
/** Could be a regular tag or a component. Both are Tag.class */
|
|
5
|
+
export function processTag(tag, subject, // could be tag via result.tag
|
|
6
|
+
insertBefore, ownerTag) {
|
|
7
|
+
// first time seeing this tag?
|
|
8
|
+
if (!tag.tagSupport) {
|
|
9
|
+
if (!isTagInstance(tag)) {
|
|
10
|
+
throw new Error('issue non-tag here');
|
|
11
|
+
}
|
|
12
|
+
applyFakeTemplater(tag, ownerTag, subject);
|
|
13
|
+
if (ownerTag.childTags.find(x => x === tag)) {
|
|
14
|
+
throw new Error('about to reattach tag already present - 5');
|
|
15
|
+
}
|
|
16
|
+
ownerTag.childTags.push(tag);
|
|
17
|
+
}
|
|
18
|
+
tag.ownerTag = ownerTag;
|
|
19
|
+
if (insertBefore.tagName !== 'TEMPLATE') {
|
|
20
|
+
throw new Error(`;;;; - ${insertBefore.nodeName}`);
|
|
21
|
+
}
|
|
22
|
+
tag.buildBeforeElement(insertBefore, {
|
|
23
|
+
counts: { added: 0, removed: 0 },
|
|
24
|
+
forceElement: true,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export function applyFakeTemplater(tag, ownerTag, subject) {
|
|
28
|
+
if (!ownerTag) {
|
|
29
|
+
throw new Error('no owner error');
|
|
30
|
+
}
|
|
31
|
+
const fakeTemplater = getFakeTemplater();
|
|
32
|
+
tag.tagSupport = new TagSupport(ownerTag.tagSupport, fakeTemplater, // the template is provided via html`` call
|
|
33
|
+
subject);
|
|
34
|
+
fakeTemplater.global.oldest = tag;
|
|
35
|
+
fakeTemplater.global.newest = tag;
|
|
36
|
+
fakeTemplater.tagSupport = tag.tagSupport;
|
|
37
|
+
// asking me to render will cause my parent to render
|
|
38
|
+
tag.ownerTag = ownerTag;
|
|
39
|
+
}
|
|
40
|
+
function getFakeTemplater() {
|
|
41
|
+
return {
|
|
42
|
+
global: {
|
|
43
|
+
renderCount: 0,
|
|
44
|
+
providers: [],
|
|
45
|
+
context: {},
|
|
46
|
+
subscriptions: [],
|
|
47
|
+
deleted: false,
|
|
48
|
+
newestTemplater: {},
|
|
49
|
+
},
|
|
50
|
+
children: new ValueSubject([]), // no children
|
|
51
|
+
props: {},
|
|
52
|
+
isTag: true,
|
|
53
|
+
isTemplater: false,
|
|
54
|
+
tagged: false,
|
|
55
|
+
wrapper: (() => undefined),
|
|
56
|
+
tagSupport: {},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=processTag.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../ts/processTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAI5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CACxB,GAAQ,EACR,OAAmB,EAAE,8BAA8B;AACnD,YAA0B,EAC1B,QAAa;IAEb,8BAA8B;IAC9B,IAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,IAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE1C,IAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAU,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEvB,IAAI,YAAoB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,UAAU,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM,EAAE,EAAC,KAAK,EAAC,CAAC,EAAE,OAAO,EAAC,CAAC,EAAC;QAC5B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAQ,EACR,QAAa,EACb,OAAmB;IAEnB,IAAG,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,GAAG,CAAC,UAAU,GAAG,IAAI,UAAU,CAC7B,QAAQ,CAAC,UAAU,EACnB,aAAa,EAAE,2CAA2C;IAC1D,OAAO,CACR,CAAA;IAED,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;IACjC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;IACjC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;IAEzC,qDAAqD;IACrD,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACzB,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,MAAM,EAAC;YACL,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,KAAK;YAEd,eAAe,EAAE,EAAqB;SACvC;QACD,QAAQ,EAAE,IAAI,YAAY,CAAQ,EAAE,CAAC,EAAE,cAAc;QACrD,KAAK,EAAE,EAAW;QAElB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAuB;QAChD,UAAU,EAAE,EAAgB;KACV,CAAA;AACtB,CAAC"}
|
package/js/processTagArray.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { Clones } from './Clones.type';
|
|
1
|
+
import { Clones, InsertBefore } from './Clones.type';
|
|
2
2
|
import { Tag } from './Tag.class';
|
|
3
|
-
import { ValueSubject } from './ValueSubject';
|
|
4
|
-
import { Counts
|
|
3
|
+
import { ValueSubject } from './subject/ValueSubject';
|
|
4
|
+
import { Counts } from './interpolateTemplate';
|
|
5
5
|
export type LastArrayItem = {
|
|
6
6
|
tag: Tag;
|
|
7
7
|
index: number;
|
|
8
8
|
deleted?: boolean;
|
|
9
9
|
};
|
|
10
10
|
export type TagArraySubject = ValueSubject<Tag[]> & {
|
|
11
|
+
insertBefore: InsertBefore;
|
|
12
|
+
placeholderElm?: InsertBefore;
|
|
13
|
+
parentAsPlaceholder?: ParentNode;
|
|
11
14
|
lastArray?: LastArrayItem[];
|
|
12
|
-
template: Element | Text | Template;
|
|
13
15
|
isChildSubject?: boolean;
|
|
14
16
|
};
|
|
15
17
|
export declare function processTagArray(subject: TagArraySubject, value: Tag[], // arry of Tag classes
|
|
16
|
-
|
|
18
|
+
insertBefore: InsertBefore, // <template end interpolate />
|
|
17
19
|
ownerTag: Tag, options: {
|
|
18
20
|
counts: Counts;
|
|
19
21
|
forceElement?: boolean;
|
package/js/processTagArray.js
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import { ValueSubject } from './ValueSubject';
|
|
1
|
+
import { ValueSubject } from './subject/ValueSubject';
|
|
2
2
|
import { ArrayNoKeyError } from './errors';
|
|
3
3
|
import { destroyArrayTag } from './checkDestroyPrevious.function';
|
|
4
|
-
import { applyFakeTemplater } from './
|
|
4
|
+
import { applyFakeTemplater } from './processTag.function';
|
|
5
|
+
import { insertAfter } from './insertAfter.function';
|
|
5
6
|
export function processTagArray(subject, value, // arry of Tag classes
|
|
6
|
-
|
|
7
|
+
insertBefore, // <template end interpolate />
|
|
7
8
|
ownerTag, options) {
|
|
8
9
|
const clones = ownerTag.clones; // []
|
|
9
10
|
let lastArray = subject.lastArray = subject.lastArray || [];
|
|
10
|
-
subject.
|
|
11
|
+
if (subject.placeholderElm) {
|
|
12
|
+
const parentPlaceholder = subject.parentAsPlaceholder;
|
|
13
|
+
if (parentPlaceholder) {
|
|
14
|
+
parentPlaceholder.appendChild(insertBefore);
|
|
15
|
+
delete subject.placeholderElm;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
insertAfter(insertBefore, subject.placeholderElm);
|
|
19
|
+
}
|
|
20
|
+
delete subject.placeholderElm;
|
|
21
|
+
}
|
|
11
22
|
let removed = 0;
|
|
12
23
|
/** 🗑️ remove previous items first */
|
|
13
24
|
lastArray = subject.lastArray = subject.lastArray.filter((item, index) => {
|
|
@@ -15,8 +26,9 @@ ownerTag, options) {
|
|
|
15
26
|
const at = index - removed;
|
|
16
27
|
const lessLength = newLength < at;
|
|
17
28
|
const subTag = value[index - removed];
|
|
18
|
-
const subArrayValue = subTag?.arrayValue;
|
|
19
|
-
const
|
|
29
|
+
const subArrayValue = subTag?.memory.arrayValue;
|
|
30
|
+
const tag = item.tag;
|
|
31
|
+
const destroyItem = lessLength || !areLikeValues(subArrayValue, tag.memory.arrayValue);
|
|
20
32
|
if (destroyItem) {
|
|
21
33
|
const last = lastArray[index];
|
|
22
34
|
const tag = last.tag;
|
|
@@ -29,7 +41,7 @@ ownerTag, options) {
|
|
|
29
41
|
return true;
|
|
30
42
|
});
|
|
31
43
|
// const masterBefore = template || (template as any).clone
|
|
32
|
-
const before =
|
|
44
|
+
const before = insertBefore; // || (subject.value as any).insertBefore || (insertBefore as any).clone
|
|
33
45
|
value.forEach((subTag, index) => {
|
|
34
46
|
const previous = lastArray[index];
|
|
35
47
|
const previousSupport = previous?.tag.tagSupport;
|
|
@@ -40,8 +52,8 @@ ownerTag, options) {
|
|
|
40
52
|
previousSupport.templater.global.newest = subTag;
|
|
41
53
|
}
|
|
42
54
|
// check for html``.key()
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
55
|
+
const keySet = 'arrayValue' in subTag.memory;
|
|
56
|
+
if (!keySet) {
|
|
45
57
|
const details = {
|
|
46
58
|
template: subTag.getTemplate().string,
|
|
47
59
|
array: value,
|
|
@@ -54,23 +66,46 @@ ownerTag, options) {
|
|
|
54
66
|
}
|
|
55
67
|
const couldBeSame = lastArray.length > index;
|
|
56
68
|
if (couldBeSame) {
|
|
57
|
-
const
|
|
69
|
+
const prevSupport = previous.tag.tagSupport;
|
|
70
|
+
const prevGlobal = prevSupport.templater.global;
|
|
71
|
+
const isSame = areLikeValues(previous.tag.memory.arrayValue, subTag.memory.arrayValue);
|
|
58
72
|
if (isSame) {
|
|
59
|
-
subTag.tagSupport = subTag.tagSupport ||
|
|
60
|
-
const oldest =
|
|
73
|
+
subTag.tagSupport = subTag.tagSupport || prevSupport;
|
|
74
|
+
const oldest = prevGlobal.oldest;
|
|
61
75
|
oldest.updateByTag(subTag);
|
|
62
76
|
return [];
|
|
63
77
|
}
|
|
64
|
-
|
|
78
|
+
// TODO: should not get here?
|
|
79
|
+
processAddTagArrayItem(before, subTag, index, options, lastArray);
|
|
65
80
|
throw new Error('item should be back');
|
|
66
81
|
// return [] // removed: item should have been previously deleted and will be added back
|
|
67
82
|
}
|
|
68
|
-
processAddTagArrayItem(before, subTag, index, options, lastArray
|
|
83
|
+
processAddTagArrayItem(before, subTag, index, options, lastArray);
|
|
69
84
|
ownerTag.childTags.push(subTag);
|
|
70
85
|
});
|
|
86
|
+
if (value.length) {
|
|
87
|
+
const lastClone = insertBefore.previousSibling;
|
|
88
|
+
setPlaceholderElm(lastClone, insertBefore, subject);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const placeholderElm = insertBefore.previousSibling;
|
|
92
|
+
if (placeholderElm) {
|
|
93
|
+
setPlaceholderElm(placeholderElm, insertBefore, subject);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const parentNode = insertBefore.parentNode;
|
|
97
|
+
setPlaceholderElm(parentNode, insertBefore, subject);
|
|
98
|
+
subject.parentAsPlaceholder = parentNode;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
71
101
|
return clones;
|
|
72
102
|
}
|
|
73
|
-
function
|
|
103
|
+
function setPlaceholderElm(lastClone, insertBefore, subject) {
|
|
104
|
+
subject.placeholderElm = lastClone;
|
|
105
|
+
const parentNode = insertBefore.parentNode;
|
|
106
|
+
parentNode.removeChild(insertBefore);
|
|
107
|
+
}
|
|
108
|
+
function processAddTagArrayItem(before, subTag, index, options, lastArray) {
|
|
74
109
|
const lastValue = {
|
|
75
110
|
tag: subTag, index
|
|
76
111
|
};
|
|
@@ -80,11 +115,13 @@ function processAddTagArrayItem(before, subTag, index, options, lastArray, test)
|
|
|
80
115
|
added: options.counts.added + index,
|
|
81
116
|
removed: options.counts.removed,
|
|
82
117
|
};
|
|
83
|
-
|
|
84
|
-
if (!lastFirstChild.parentNode) {
|
|
118
|
+
if (!before.parentNode) {
|
|
85
119
|
throw new Error('issue adding array item');
|
|
86
120
|
}
|
|
87
|
-
|
|
121
|
+
const newTempElm = document.createElement('template');
|
|
122
|
+
before.parentNode.insertBefore(newTempElm, before);
|
|
123
|
+
subTag.buildBeforeElement(newTempElm, // before,
|
|
124
|
+
{ counts, forceElement: options.forceElement });
|
|
88
125
|
}
|
|
89
126
|
/** compare two values. If both values are arrays then the items will be compared */
|
|
90
127
|
function areLikeValues(valueA, valueB) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Counts, Template } from './interpolateTemplate';
|
|
|
3
3
|
import { TagArraySubject } from './processTagArray';
|
|
4
4
|
import { TagSubject } from './Tag.utils';
|
|
5
5
|
export declare function processTagResult(tag: Tag, subject: TagArraySubject | TagSubject | Function, // used for recording past and current value
|
|
6
|
-
insertBefore: Element | Text | Template, // <template end interpolate />
|
|
6
|
+
insertBefore: Element | Text | Template | ChildNode, // <template end interpolate />
|
|
7
7
|
{ counts, forceElement, }: {
|
|
8
8
|
counts: Counts;
|
|
9
9
|
forceElement?: boolean;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { destroyTagMemory } from './destroyTag.function';
|
|
2
1
|
export function processTagResult(tag, subject, // used for recording past and current value
|
|
3
2
|
insertBefore, // <template end interpolate />
|
|
4
3
|
{ counts, forceElement, }) {
|
|
@@ -10,41 +9,36 @@ insertBefore, // <template end interpolate />
|
|
|
10
9
|
const existingTag = subjectTag.tag;
|
|
11
10
|
const previousTag = existingTag?.tagSupport.templater.global.oldest || undefined; // || tag.tagSupport.oldest // subjectTag.tag
|
|
12
11
|
const justUpdate = previousTag; // && !forceElement
|
|
13
|
-
if (previousTag) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const newTag = subject(previousTag.tagSupport);
|
|
21
|
-
previousTag.updateByTag(newTag);
|
|
22
|
-
if (!newTag.tagSupport.templater.global.oldest) {
|
|
23
|
-
throw new Error('maybe 0');
|
|
24
|
-
}
|
|
25
|
-
subjectTag.tag = newTag;
|
|
26
|
-
if (!newTag.hasLiveElements) {
|
|
27
|
-
throw new Error('44444 - 2');
|
|
28
|
-
}
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
previousTag.updateByTag(tag);
|
|
32
|
-
if (!tag.tagSupport.templater.global.oldest) {
|
|
33
|
-
throw new Error('maybe 1');
|
|
34
|
-
}
|
|
35
|
-
subjectTag.tag = tag;
|
|
36
|
-
if (!tag.hasLiveElements) {
|
|
37
|
-
throw new Error('44444 - 3');
|
|
38
|
-
}
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
destroyTagMemory(previousTag, subject);
|
|
42
|
-
throw new Error('585 - think we never get here');
|
|
12
|
+
if (previousTag && justUpdate) {
|
|
13
|
+
/*
|
|
14
|
+
const areLike = previousTag.isLikeTag(tag)
|
|
15
|
+
|
|
16
|
+
// are we just updating an if we already had?
|
|
17
|
+
if(areLike) {
|
|
18
|
+
return processTagResultUpdate(tag, subjectTag, previousTag)
|
|
43
19
|
}
|
|
20
|
+
*/
|
|
21
|
+
return processTagResultUpdate(tag, subjectTag, previousTag);
|
|
22
|
+
}
|
|
23
|
+
if (insertBefore.nodeName !== 'TEMPLATE') {
|
|
24
|
+
throw new Error(';;;;');
|
|
44
25
|
}
|
|
45
26
|
tag.buildBeforeElement(insertBefore, {
|
|
46
27
|
counts,
|
|
47
|
-
forceElement,
|
|
28
|
+
forceElement,
|
|
48
29
|
});
|
|
49
30
|
}
|
|
31
|
+
function processTagResultUpdate(tag, subject, // used for recording past and current value
|
|
32
|
+
previousTag) {
|
|
33
|
+
// components
|
|
34
|
+
if (subject instanceof Function) {
|
|
35
|
+
const newTag = subject(previousTag.tagSupport);
|
|
36
|
+
previousTag.updateByTag(newTag);
|
|
37
|
+
subject.tag = newTag;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
previousTag.updateByTag(tag);
|
|
41
|
+
subject.tag = tag;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
50
44
|
//# sourceMappingURL=processTagResult.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,OAAgD,EAAE,4CAA4C;AAC9F,YAAmD,EAAE,+BAA+B;AACpF,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAqB,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAA;IAClC,MAAM,WAAW,GAAG,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,IAAI,SAAS,CAAA,CAAC,6CAA6C;IACrI,MAAM,UAAU,GAAG,WAAW,CAAA,CAAC,mBAAmB;IAElD,IAAG,WAAW,IAAI,UAAU,EAAE,CAAC;QAC7B;;;;;;;UAOE;QACF,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED,IAAG,YAAY,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;IACD,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACnC,MAAM;QACN,YAAY;KACb,CAAC,CAAA;AACJ,CAAC;AAGD,SAAS,sBAAsB,CAC7B,GAAQ,EACR,OAAmB,EAAE,4CAA4C;AACjE,WAAgB;IAEhB,aAAa;IACb,IAAG,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAQ,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACnD,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,GAAG,MAAM,CAAA;QAEpB,OAAM;IACR,CAAC;IAED,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IAEjB,OAAM;AACR,CAAC"}
|
package/js/render.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { InsertBefore } from "./Clones.type";
|
|
2
|
+
export declare function buildClones(temporary: Element, insertBefore: InsertBefore): ChildNode[];
|
package/js/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../ts/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../ts/render.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,SAAkB,EAClB,YAA0B;IAE1B,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAwB,CAAA;IAC7D,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAA;IAE7C,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAA;QAC/C,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxB,WAAW,GAAG,eAAe,CAAA;IAC/B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CACnB,WAAsB,EACtB,YAA0B;IAE1B,MAAM,UAAU,GAAG,YAAY,CAAC,UAAwB,CAAA;IACxD,UAAU,CAAC,YAAY,CACrB,WAAW,EACX,YAAY,CACb,CAAA;AACH,CAAC"}
|
|
@@ -4,7 +4,8 @@ import { isLikeTags } from './isLikeTags.function';
|
|
|
4
4
|
/** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
|
|
5
5
|
export function renderExistingTag(oldestTag, // existing tag already there
|
|
6
6
|
newTemplater, tagSupport, subject) {
|
|
7
|
-
|
|
7
|
+
const tag = subject.tag;
|
|
8
|
+
newTemplater.global = tag.tagSupport.templater.global;
|
|
8
9
|
if (!oldestTag.hasLiveElements) {
|
|
9
10
|
throw new Error('1080 - should have live elements');
|
|
10
11
|
}
|
|
@@ -17,8 +18,8 @@ newTemplater, tagSupport, subject) {
|
|
|
17
18
|
return latestTag;
|
|
18
19
|
}
|
|
19
20
|
const oldTemplater = tagSupport.templater || newTemplater;
|
|
20
|
-
const
|
|
21
|
-
subject, oldestTag.ownerTag);
|
|
21
|
+
const toRedrawTag = subject.tag || oldTemplater.global.newest || oldTemplater.global.oldest; // hmmmmmm, why not newest?
|
|
22
|
+
const redraw = renderWithSupport(newTemplater.tagSupport, toRedrawTag, subject, oldestTag.ownerTag);
|
|
22
23
|
const oldest = tagSupport.templater.global.oldest || oldestTag;
|
|
23
24
|
redraw.tagSupport.templater.global.oldest = oldest;
|
|
24
25
|
if (isLikeTags(latestTag, redraw)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../ts/renderExistingTag.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAmB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAC/B,SAAc,EAAE,6BAA6B;AAC7C,YAA6B,EAC7B,UAA0B,EAC1B,OAAmB;IAEnB,
|
|
1
|
+
{"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../ts/renderExistingTag.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAmB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAC/B,SAAc,EAAE,6BAA6B;AAC7C,YAA6B,EAC7B,UAA0B,EAC1B,OAAmB;IAEnB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAU,CAAA;IAC9B,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAErD,IAAG,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAA;IAC9D,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAE/B,oGAAoG;IACpG,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAa,CAAA;IAC3D,IAAG,cAAc,KAAK,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9D,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,IAAI,YAAY,CAAA;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAA,CAAC,2BAA2B;IACvH,MAAM,MAAM,GAAG,iBAAiB,CAC9B,YAAY,CAAC,UAAU,EACvB,WAAW,EACX,OAAO,EACP,SAAS,CAAC,QAAQ,CACnB,CAAA;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IAC9D,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAElD,IAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAA;QACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OperatorFunction, SubjectLike, SubjectSubscriber, Subscription } from "./Subject.utils";
|
|
2
|
+
export declare class Subject<T> implements SubjectLike<T> {
|
|
3
|
+
value?: T | undefined;
|
|
4
|
+
methods: OperatorFunction<any, any, any>[];
|
|
5
|
+
isSubject: boolean;
|
|
6
|
+
subscribers: SubjectSubscriber<T>[];
|
|
7
|
+
subscribeWith?: (x: SubjectSubscriber<T>) => Subscription;
|
|
8
|
+
constructor(value?: T | undefined);
|
|
9
|
+
subscribe(callback: SubjectSubscriber<T>): Subscription;
|
|
10
|
+
set(value: any): void;
|
|
11
|
+
next: (value: any) => void;
|
|
12
|
+
toPromise(): Promise<T>;
|
|
13
|
+
pipe(): Subject<T>;
|
|
14
|
+
pipe<A, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>): Subject<A>;
|
|
15
|
+
pipe<A, B, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>): Subject<B>;
|
|
16
|
+
pipe<A, B, C, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>): Subject<C>;
|
|
17
|
+
pipe<A, B, C, D, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>): Subject<D>;
|
|
18
|
+
pipe<A, B, C, D, E, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>): Subject<E>;
|
|
19
|
+
pipe<A, B, C, D, E, F, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>): Subject<F>;
|
|
20
|
+
pipe<A, B, C, D, E, F, G, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>): Subject<G>;
|
|
21
|
+
pipe<A, B, C, D, E, F, G, H, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>, op8: OperatorFunction<G, H, RESOLVE>): Subject<H>;
|
|
22
|
+
pipe<A, B, C, D, E, F, G, H, I, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>, op8: OperatorFunction<G, H, RESOLVE>, op9: OperatorFunction<H, I, RESOLVE>): Subject<I>;
|
|
23
|
+
pipe<A, B, C, D, E, F, G, H, I, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>, op8: OperatorFunction<G, H, RESOLVE>, op9: OperatorFunction<H, I, RESOLVE>, ...operations: OperatorFunction<any, any, any>[]): Subject<unknown>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export class Subject {
|
|
2
|
+
value;
|
|
3
|
+
methods = [];
|
|
4
|
+
isSubject = true;
|
|
5
|
+
subscribers = [];
|
|
6
|
+
subscribeWith;
|
|
7
|
+
// unsubcount = 0 // 🔬 testing
|
|
8
|
+
constructor(value) {
|
|
9
|
+
this.value = value;
|
|
10
|
+
}
|
|
11
|
+
subscribe(callback) {
|
|
12
|
+
// are we within a pipe?
|
|
13
|
+
const subscribeWith = this.subscribeWith;
|
|
14
|
+
if (subscribeWith) {
|
|
15
|
+
// are we in a pipe?
|
|
16
|
+
if (this.methods.length) {
|
|
17
|
+
const orgCallback = callback;
|
|
18
|
+
callback = (value, subscription) => {
|
|
19
|
+
runPipedMethods(value, subscription, this.methods, lastValue => orgCallback(lastValue, subscription));
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return subscribeWith(callback);
|
|
23
|
+
}
|
|
24
|
+
this.subscribers.push(callback);
|
|
25
|
+
SubjectClass.globalSubs.push(callback); // 🔬 testing
|
|
26
|
+
const subscription = getSubscription(this, callback);
|
|
27
|
+
return subscription;
|
|
28
|
+
}
|
|
29
|
+
set(value) {
|
|
30
|
+
this.value = value;
|
|
31
|
+
// Notify all subscribers with the new value
|
|
32
|
+
this.subscribers.forEach((callback) => {
|
|
33
|
+
callback.value = value;
|
|
34
|
+
callback(value);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
next = this.set;
|
|
38
|
+
toPromise() {
|
|
39
|
+
return new Promise((res, rej) => {
|
|
40
|
+
const subscription = this.subscribe(x => {
|
|
41
|
+
subscription.unsubscribe();
|
|
42
|
+
res(x);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
pipe(...operations) {
|
|
47
|
+
const subject = new Subject();
|
|
48
|
+
subject.methods = operations;
|
|
49
|
+
subject.subscribeWith = (x) => this.subscribe(x);
|
|
50
|
+
return subject;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function removeSubFromArray(subscribers, callback) {
|
|
54
|
+
const index = subscribers.indexOf(callback);
|
|
55
|
+
if (index !== -1) {
|
|
56
|
+
subscribers.splice(index, 1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const SubjectClass = Subject;
|
|
60
|
+
SubjectClass.globalSubs = []; // 🔬 for testing
|
|
61
|
+
SubjectClass.globalSubCount$ = new Subject(); // for ease of debugging
|
|
62
|
+
SubjectClass.globalSubCount$.set(0);
|
|
63
|
+
function getSubscription(subject, callback) {
|
|
64
|
+
const countSubject = SubjectClass.globalSubCount$;
|
|
65
|
+
SubjectClass.globalSubCount$.set(countSubject.value + 1);
|
|
66
|
+
const subscription = () => {
|
|
67
|
+
subscription.unsubscribe();
|
|
68
|
+
};
|
|
69
|
+
subscription.subscriptions = [];
|
|
70
|
+
// Return a function to unsubscribe from the BehaviorSubject
|
|
71
|
+
subscription.unsubscribe = () => {
|
|
72
|
+
removeSubFromArray(subject.subscribers, callback); // each will be called when update comes in
|
|
73
|
+
removeSubFromArray(SubjectClass.globalSubs, callback); // 🔬 testing
|
|
74
|
+
SubjectClass.globalSubCount$.set(countSubject.value - 1);
|
|
75
|
+
// any double unsubscribes will be ignored
|
|
76
|
+
subscription.unsubscribe = () => subscription;
|
|
77
|
+
// unsubscribe from any combined subjects
|
|
78
|
+
subscription.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
79
|
+
return subscription;
|
|
80
|
+
};
|
|
81
|
+
subscription.add = (sub) => {
|
|
82
|
+
subscription.subscriptions.push(sub);
|
|
83
|
+
return subscription;
|
|
84
|
+
};
|
|
85
|
+
return subscription;
|
|
86
|
+
}
|
|
87
|
+
function runPipedMethods(value, subscription, methods, onComplete) {
|
|
88
|
+
const cloneMethods = [...methods];
|
|
89
|
+
const firstMethod = cloneMethods.shift();
|
|
90
|
+
const next = (newValue) => {
|
|
91
|
+
if (cloneMethods.length) {
|
|
92
|
+
return runPipedMethods(newValue, subscription, cloneMethods, onComplete);
|
|
93
|
+
}
|
|
94
|
+
onComplete(newValue);
|
|
95
|
+
// return newValue = next
|
|
96
|
+
};
|
|
97
|
+
let handler = next;
|
|
98
|
+
const setHandler = (x) => handler = x;
|
|
99
|
+
const pipeUtils = { setHandler, next };
|
|
100
|
+
const methodResponse = firstMethod(value, pipeUtils);
|
|
101
|
+
handler(methodResponse);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=Subject.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subject.class.js","sourceRoot":"","sources":["../../ts/subject/Subject.class.ts"],"names":[],"mappings":"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"}
|