taggedjs 2.4.16 → 2.4.31
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 +1851 -1732
- package/bundle.js.map +1 -1
- package/js/Clones.type.d.ts +1 -1
- package/js/{errors.d.ts → Errors.d.ts} +3 -0
- package/js/{errors.js → Errors.js} +6 -0
- package/js/{errors.js.map → Errors.js.map} +1 -1
- package/js/Tag.class.d.ts +6 -41
- package/js/Tag.class.js +2 -347
- package/js/Tag.class.js.map +1 -1
- package/js/TagSupport.class.d.ts +40 -6
- package/js/TagSupport.class.js +268 -30
- package/js/TagSupport.class.js.map +1 -1
- package/js/TemplaterResult.class.d.ts +16 -16
- package/js/TemplaterResult.class.js +35 -46
- package/js/TemplaterResult.class.js.map +1 -1
- package/js/afterInterpolateElement.function.d.ts +4 -0
- package/js/afterInterpolateElement.function.js +14 -0
- package/js/afterInterpolateElement.function.js.map +1 -0
- package/js/alterProps.function.d.ts +2 -4
- package/js/alterProps.function.js +7 -15
- package/js/alterProps.function.js.map +1 -1
- package/js/bindSubjectCallback.function.js +0 -3
- package/js/bindSubjectCallback.function.js.map +1 -1
- package/js/checkDestroyPrevious.function.d.ts +5 -5
- package/js/checkDestroyPrevious.function.js +20 -17
- package/js/checkDestroyPrevious.function.js.map +1 -1
- package/js/cloneValueArray.function.d.ts +2 -0
- package/js/cloneValueArray.function.js +19 -0
- package/js/cloneValueArray.function.js.map +1 -0
- package/js/deepFunctions.js +36 -29
- package/js/deepFunctions.js.map +1 -1
- package/js/destroy.support.d.ts +6 -0
- package/js/destroy.support.js +10 -0
- package/js/destroy.support.js.map +1 -0
- package/js/destroyTag.function.d.ts +2 -3
- package/js/destroyTag.function.js +7 -11
- package/js/destroyTag.function.js.map +1 -1
- package/js/hasTagSupportChanged.function.js +0 -12
- package/js/hasTagSupportChanged.function.js.map +1 -1
- package/js/index.d.ts +3 -10
- package/js/index.js +3 -13
- package/js/index.js.map +1 -1
- package/js/interpolateTemplate.js +0 -5
- package/js/interpolateTemplate.js.map +1 -1
- package/js/interpolations/bindSubjectCallback.function.d.ts +7 -0
- package/js/interpolations/bindSubjectCallback.function.js +40 -0
- package/js/interpolations/bindSubjectCallback.function.js.map +1 -0
- package/js/interpolations/elementInitCheck.d.ts +2 -0
- package/js/interpolations/elementInitCheck.js +18 -0
- package/js/interpolations/elementInitCheck.js.map +1 -0
- package/js/interpolations/inputAttribute.d.ts +1 -0
- package/js/interpolations/inputAttribute.js +19 -0
- package/js/interpolations/inputAttribute.js.map +1 -0
- package/js/interpolations/interpolateAttributes.d.ts +4 -0
- package/js/interpolations/interpolateAttributes.js +20 -0
- package/js/interpolations/interpolateAttributes.js.map +1 -0
- package/js/interpolations/interpolateContentTemplates.d.ts +9 -0
- package/js/interpolations/interpolateContentTemplates.js +42 -0
- package/js/interpolations/interpolateContentTemplates.js.map +1 -0
- package/js/interpolations/interpolateElement.d.ts +14 -0
- package/js/interpolations/interpolateElement.js +36 -0
- package/js/interpolations/interpolateElement.js.map +1 -0
- package/js/interpolations/interpolateTemplate.d.ts +32 -0
- package/js/interpolations/interpolateTemplate.js +80 -0
- package/js/interpolations/interpolateTemplate.js.map +1 -0
- package/js/interpolations/interpolations.d.ts +7 -0
- package/js/interpolations/interpolations.js +18 -0
- package/js/interpolations/interpolations.js.map +1 -0
- package/js/interpolations/processAttribute.function.d.ts +5 -0
- package/js/interpolations/processAttribute.function.js +122 -0
- package/js/interpolations/processAttribute.function.js.map +1 -0
- package/js/interpolations/scanTextAreaValue.function.d.ts +3 -0
- package/js/interpolations/scanTextAreaValue.function.js +16 -0
- package/js/interpolations/scanTextAreaValue.function.js.map +1 -0
- package/js/interpolations.js +1 -2
- package/js/interpolations.js.map +1 -1
- package/js/isInstance.d.ts +4 -1
- package/js/isInstance.js +12 -4
- package/js/isInstance.js.map +1 -1
- package/js/isLikeTags.function.d.ts +3 -1
- package/js/isLikeTags.function.js +15 -6
- package/js/isLikeTags.function.js.map +1 -1
- package/js/processNewValue.function.d.ts +3 -2
- package/js/processNewValue.function.js +27 -11
- package/js/processNewValue.function.js.map +1 -1
- package/js/processRegularValue.function.d.ts +1 -1
- package/js/processSubjectComponent.function.d.ts +5 -5
- package/js/processSubjectComponent.function.js +27 -35
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +11 -7
- package/js/processSubjectValue.function.js +20 -7
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTag.function.d.ts +8 -4
- package/js/processTag.function.js +23 -39
- package/js/processTag.function.js.map +1 -1
- package/js/processTagArray.d.ts +6 -4
- package/js/processTagArray.js +41 -39
- package/js/processTagArray.js.map +1 -1
- package/js/processTagResult.function.d.ts +4 -4
- package/js/processTagResult.function.js +14 -30
- package/js/processTagResult.function.js.map +1 -1
- package/js/renderExistingTag.function.d.ts +6 -6
- package/js/renderExistingTag.function.js +27 -23
- package/js/renderExistingTag.function.js.map +1 -1
- package/js/renderTagSupport.function.d.ts +2 -3
- package/js/renderTagSupport.function.js +17 -20
- package/js/renderTagSupport.function.js.map +1 -1
- package/js/setTagPlaceholder.function.d.ts +2 -0
- package/js/setTagPlaceholder.function.js +8 -0
- package/js/setTagPlaceholder.function.js.map +1 -0
- package/js/state/callbackMaker.function.d.ts +3 -0
- package/js/state/callbackMaker.function.js +51 -0
- package/js/state/callbackMaker.function.js.map +1 -0
- package/js/state/getCallback.d.ts +3 -0
- package/js/state/getCallback.js +51 -0
- package/js/state/getCallback.js.map +1 -0
- package/js/state/index.d.ts +10 -0
- package/js/state/index.js +10 -0
- package/js/state/index.js.map +1 -0
- package/js/state/letState.function.d.ts +3 -0
- package/js/state/letState.function.js +42 -0
- package/js/state/letState.function.js.map +1 -0
- package/js/state/onDestroy.d.ts +2 -0
- package/js/state/onDestroy.js +17 -0
- package/js/state/onDestroy.js.map +1 -0
- package/js/state/onInit.d.ts +2 -0
- package/js/state/onInit.js +16 -0
- package/js/state/onInit.js.map +1 -0
- package/js/state/provider.utils.d.ts +2 -0
- package/js/state/provider.utils.js +40 -0
- package/js/state/provider.utils.js.map +1 -0
- package/js/state/providers.d.ts +23 -0
- package/js/state/providers.js +83 -0
- package/js/state/providers.js.map +1 -0
- package/js/state/setProp.function.d.ts +3 -0
- package/js/state/setProp.function.js +37 -0
- package/js/state/setProp.function.js.map +1 -0
- package/js/state/setUse.function.d.ts +25 -0
- package/js/state/setUse.function.js +14 -0
- package/js/state/setUse.function.js.map +1 -0
- package/js/state/state.function.d.ts +2 -0
- package/js/state/state.function.js +34 -0
- package/js/state/state.function.js.map +1 -0
- package/js/state/state.utils.d.ts +20 -0
- package/js/state/state.utils.js +91 -0
- package/js/state/state.utils.js.map +1 -0
- package/js/state/watch.function.d.ts +8 -0
- package/js/state/watch.function.js +25 -0
- package/js/state/watch.function.js.map +1 -0
- package/js/subject/Subject.class.d.ts +10 -6
- package/js/subject/Subject.class.js +29 -13
- package/js/subject/Subject.class.js.map +1 -1
- package/js/subject/Subject.utils.d.ts +7 -5
- package/js/subject/Subject.utils.js.map +1 -1
- package/js/subject/ValueSubject.d.ts +2 -2
- package/js/subject/ValueSubject.js.map +1 -1
- package/js/subject/combineLatest.function.js.map +1 -1
- package/js/subject.types.d.ts +18 -0
- package/js/subject.types.js +2 -0
- package/js/subject.types.js.map +1 -0
- package/js/tag.d.ts +1 -1
- package/js/tag.js +26 -32
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +3 -7
- package/js/tagElement.js +24 -24
- package/js/tagElement.js.map +1 -1
- package/js/tagRunner.d.ts +7 -6
- package/js/tagRunner.js +17 -9
- package/js/tagRunner.js.map +1 -1
- package/js/updateBeforeTemplate.function.d.ts +1 -1
- package/js/updateBeforeTemplate.function.js.map +1 -1
- package/js/updateContextItem.function.d.ts +3 -0
- package/js/updateContextItem.function.js +43 -0
- package/js/updateContextItem.function.js.map +1 -0
- package/js/updateExistingTagComponent.function.d.ts +4 -4
- package/js/updateExistingTagComponent.function.js +49 -88
- package/js/updateExistingTagComponent.function.js.map +1 -1
- package/js/updateExistingValue.function.d.ts +2 -7
- package/js/updateExistingValue.function.js +94 -50
- package/js/updateExistingValue.function.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { TemplaterResult } from './TemplaterResult.class';
|
|
4
|
-
import { TagSubject } from './Tag.utils';
|
|
1
|
+
import { BaseTagSupport, TagSupport } from './TagSupport.class';
|
|
2
|
+
import { TagSubject } from './subject.types';
|
|
5
3
|
/** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
|
|
6
|
-
export declare function renderExistingTag(
|
|
7
|
-
|
|
4
|
+
export declare function renderExistingTag(oldestSupport: TagSupport, // oldest with elements on html
|
|
5
|
+
newSupport: TagSupport, // new to be rendered
|
|
6
|
+
ownerSupport: BaseTagSupport, // ownerSupport
|
|
7
|
+
subject: TagSubject): TagSupport;
|
|
@@ -1,31 +1,35 @@
|
|
|
1
|
-
import { providersChangeCheck } from './provider.utils';
|
|
1
|
+
import { providersChangeCheck } from './state/provider.utils';
|
|
2
2
|
import { renderWithSupport } from './TemplaterResult.class';
|
|
3
3
|
import { isLikeTags } from './isLikeTags.function';
|
|
4
4
|
/** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
|
|
5
|
-
export function renderExistingTag(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
export function renderExistingTag(oldestSupport, // oldest with elements on html
|
|
6
|
+
newSupport, // new to be rendered
|
|
7
|
+
ownerSupport, // ownerSupport
|
|
8
|
+
subject) {
|
|
9
|
+
const lastSupport = subject.tagSupport;
|
|
10
|
+
const global = lastSupport.global;
|
|
11
|
+
// share point between renders
|
|
12
|
+
newSupport.global = global;
|
|
13
|
+
const preRenderCount = global.renderCount;
|
|
14
|
+
providersChangeCheck(oldestSupport);
|
|
14
15
|
// When the providers were checked, a render to myself occurred and I do not need to re-render again
|
|
15
|
-
const
|
|
16
|
-
if (preRenderCount !==
|
|
17
|
-
|
|
18
|
-
return
|
|
16
|
+
const prevSupport = global.newest;
|
|
17
|
+
if (preRenderCount !== global.renderCount) {
|
|
18
|
+
oldestSupport.updateBy(prevSupport);
|
|
19
|
+
return prevSupport; // already rendered during triggered events
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
const toRedrawTag =
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
// ??? changed during mirroring - lastSupport keeps having less info than newest
|
|
22
|
+
// const toRedrawTag = lastSupport || prevSupport || tagSupport.global.oldest
|
|
23
|
+
const toRedrawTag = prevSupport || lastSupport || global.oldest;
|
|
24
|
+
const reSupport = renderWithSupport(newSupport, toRedrawTag, subject,
|
|
25
|
+
// oldestSupport,
|
|
26
|
+
ownerSupport);
|
|
27
|
+
const oldest = global.oldest || oldestSupport;
|
|
28
|
+
reSupport.global.oldest = oldest;
|
|
29
|
+
if (isLikeTags(prevSupport, reSupport)) {
|
|
30
|
+
subject.tagSupport = reSupport;
|
|
31
|
+
oldest.updateBy(reSupport);
|
|
28
32
|
}
|
|
29
|
-
return
|
|
33
|
+
return reSupport;
|
|
30
34
|
}
|
|
31
35
|
//# sourceMappingURL=renderExistingTag.function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../ts/renderExistingTag.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../ts/renderExistingTag.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAC/B,aAAyB,EAAE,+BAA+B;AAC1D,UAAsB,EAAE,qBAAqB;AAC7C,YAA4B,EAAE,eAAe;AAC7C,OAAmB;IAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,UAAwB,CAAA;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;IAEjC,8BAA8B;IAC9B,UAAU,CAAC,MAAM,GAAG,MAAM,CAAA;IAE1B,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAA;IACzC,oBAAoB,CAAC,aAAa,CAAC,CAAA;IAEnC,oGAAoG;IACpG,MAAM,WAAW,GAAG,MAAM,CAAC,MAAoB,CAAA;IAC/C,IAAG,cAAc,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,WAAW,CAAA,CAAC,2CAA2C;IAChE,CAAC;IAED,gFAAgF;IAChF,6EAA6E;IAC7E,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,CAAA;IAE/D,MAAM,SAAS,GAAG,iBAAiB,CACjC,UAAU,EACV,WAAW,EACX,OAAO;IACP,iBAAiB;IACjB,YAA0B,CAC3B,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAA;IAC7C,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAEhC,IAAG,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAA;QAC9B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BaseTagSupport } from './TagSupport.class';
|
|
1
|
+
import { TagSupport } from './TagSupport.class';
|
|
3
2
|
/** Main function used by all other callers to render/update display of a tag component */
|
|
4
|
-
export declare function renderTagSupport(tagSupport:
|
|
3
|
+
export declare function renderTagSupport(tagSupport: TagSupport, renderUp: boolean): TagSupport;
|
|
@@ -1,39 +1,36 @@
|
|
|
1
1
|
import { deepEqual } from './deepFunctions';
|
|
2
|
-
import { isTagInstance } from './isInstance';
|
|
3
2
|
import { renderExistingTag } from './renderExistingTag.function';
|
|
4
3
|
/** Main function used by all other callers to render/update display of a tag component */
|
|
5
4
|
export function renderTagSupport(tagSupport, renderUp) {
|
|
6
|
-
const global = tagSupport.
|
|
7
|
-
|
|
5
|
+
const global = tagSupport.global;
|
|
6
|
+
const templater = tagSupport.templater;
|
|
7
|
+
// is it just a vanilla tag, not component?
|
|
8
|
+
if (!templater.wrapper) { // || isTagTemplater(templater)
|
|
8
9
|
const newTag = global.newest;
|
|
9
|
-
const ownerTag = newTag.
|
|
10
|
+
const ownerTag = newTag.ownerTagSupport;
|
|
10
11
|
++global.renderCount;
|
|
11
|
-
return renderTagSupport(ownerTag
|
|
12
|
+
return renderTagSupport(ownerTag, true);
|
|
12
13
|
}
|
|
13
|
-
// const oldTagSetup = this
|
|
14
14
|
const subject = tagSupport.subject;
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const newest = subjectTag?.tagSupport.templater.global.newest;
|
|
18
|
-
let ownerTag;
|
|
15
|
+
const newest = global.newest;
|
|
16
|
+
let ownerSupport;
|
|
19
17
|
let selfPropChange = false;
|
|
20
18
|
const shouldRenderUp = renderUp && newest;
|
|
21
19
|
if (shouldRenderUp) {
|
|
22
|
-
|
|
23
|
-
if (
|
|
20
|
+
ownerSupport = newest.ownerTagSupport;
|
|
21
|
+
if (ownerSupport) {
|
|
24
22
|
const nowProps = templater.props;
|
|
25
|
-
const latestProps = newest.
|
|
23
|
+
const latestProps = newest.propsConfig.latestCloned;
|
|
26
24
|
selfPropChange = !deepEqual(nowProps, latestProps);
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
|
-
const useTagSupport = global.newest
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
const renderOwner = ownerTag && selfPropChange;
|
|
27
|
+
// const useTagSupport = global.newest as TagSupport // oldTagSetup
|
|
28
|
+
const oldest = tagSupport.global.oldest;
|
|
29
|
+
const tag = renderExistingTag(oldest, tagSupport, ownerSupport, // useTagSupport,
|
|
30
|
+
subject);
|
|
31
|
+
const renderOwner = ownerSupport && selfPropChange;
|
|
35
32
|
if (renderOwner) {
|
|
36
|
-
const ownerTagSupport =
|
|
33
|
+
const ownerTagSupport = ownerSupport;
|
|
37
34
|
renderTagSupport(ownerTagSupport, true);
|
|
38
35
|
return tag;
|
|
39
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderTagSupport.function.js","sourceRoot":"","sources":["../ts/renderTagSupport.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderTagSupport.function.js","sourceRoot":"","sources":["../ts/renderTagSupport.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEhE,0FAA0F;AAC1F,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,QAAiB;IAEjB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAEtC,2CAA2C;IAE3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAG,CAAC,CAAA,gCAAgC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,eAA6B,CAAA;QACrD,EAAE,MAAM,CAAC,WAAW,CAAA;QACpB,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAE5B,IAAI,YAAoC,CAAA;IACxC,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,MAAM,cAAc,GAAG,QAAQ,IAAI,MAAM,CAAA;IAEzC,IAAG,cAAc,EAAE,CAAC;QAClB,YAAY,GAAG,MAAM,CAAC,eAAe,CAAA;QACrC,IAAG,YAAY,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAY,CAAA;YACvC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAA;YACnD,cAAc,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAoB,CAAA;IAErD,MAAM,GAAG,GAAG,iBAAiB,CAC3B,MAAM,EACN,UAAwB,EACxB,YAA0B,EAAE,iBAAiB;IAC7C,OAAO,CACR,CAAA;IAED,MAAM,WAAW,GAAG,YAAY,IAAI,cAAc,CAAA;IAClD,IAAG,WAAW,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,YAA0B,CAAA;QAElD,gBAAgB,CACd,eAAe,EACf,IAAI,CACL,CAAA;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function setTagPlaceholder(global) {
|
|
2
|
+
const insertBefore = global.insertBefore;
|
|
3
|
+
const placeholder = global.placeholder = document.createTextNode('');
|
|
4
|
+
const parentNode = insertBefore.parentNode;
|
|
5
|
+
parentNode.insertBefore(placeholder, insertBefore);
|
|
6
|
+
parentNode.removeChild(insertBefore);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=setTagPlaceholder.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setTagPlaceholder.function.js","sourceRoot":"","sources":["../ts/setTagPlaceholder.function.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAC/B,MAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,CAAC,YAA4B,CAAA;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IACpE,MAAM,UAAU,GAAG,YAAY,CAAC,UAAwB,CAAA;IACxD,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAClD,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
type Callback<A, B, C, D, E, F> = <T>(a: A, b: B, c: C, d: D, e: E, f: F) => (T | void);
|
|
2
|
+
export declare const callbackMaker: () => <A, B, C, D, E, F>(callback: Callback<A, B, C, D, E, F>) => (a?: A | undefined, b?: B | undefined, c?: C | undefined, d?: D | undefined, e?: E | undefined, f?: F | undefined) => void;
|
|
3
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
import { getStateValue } from "./state.utils";
|
|
3
|
+
import { renderTagSupport } from "../renderTagSupport.function";
|
|
4
|
+
import { SyncCallbackError } from "../errors";
|
|
5
|
+
let innerCallback = (callback) => (a, b, c, d, e, f) => {
|
|
6
|
+
throw new SyncCallbackError('Callback function was called immediately in sync and must instead be call async');
|
|
7
|
+
};
|
|
8
|
+
export const callbackMaker = () => innerCallback;
|
|
9
|
+
const originalGetter = innerCallback; // callbackMaker
|
|
10
|
+
setUse({
|
|
11
|
+
beforeRender: (tagSupport) => initMemory(tagSupport),
|
|
12
|
+
beforeRedraw: (tagSupport) => initMemory(tagSupport),
|
|
13
|
+
afterRender: (_tagSupport) => {
|
|
14
|
+
innerCallback = originalGetter; // prevent crossing callbacks with another tag
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
function updateState(stateFrom, stateTo) {
|
|
18
|
+
stateFrom.forEach((state, index) => {
|
|
19
|
+
const fromValue = getStateValue(state);
|
|
20
|
+
const callback = stateTo[index].callback;
|
|
21
|
+
if (callback) {
|
|
22
|
+
callback(fromValue); // set the value
|
|
23
|
+
}
|
|
24
|
+
stateTo[index].lastValue = fromValue; // record the value
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function initMemory(tagSupport) {
|
|
28
|
+
const oldState = setUse.memory.stateConfig.array;
|
|
29
|
+
innerCallback = (callback) => {
|
|
30
|
+
const trigger = (...args) => triggerStateUpdate(tagSupport, callback, oldState, ...args);
|
|
31
|
+
return trigger;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function triggerStateUpdate(tagSupport, callback, oldState, ...args) {
|
|
35
|
+
const state = tagSupport.memory.state;
|
|
36
|
+
// ensure that the oldest has the latest values first
|
|
37
|
+
updateState(state, oldState);
|
|
38
|
+
// run the callback
|
|
39
|
+
const promise = callback(...args);
|
|
40
|
+
// send the oldest state changes into the newest
|
|
41
|
+
updateState(oldState, state);
|
|
42
|
+
renderTagSupport(tagSupport, false);
|
|
43
|
+
if (promise instanceof Promise) {
|
|
44
|
+
promise.finally(() => {
|
|
45
|
+
// send the oldest state changes into the newest
|
|
46
|
+
updateState(oldState, state);
|
|
47
|
+
renderTagSupport(tagSupport, false);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=callbackMaker.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbackMaker.function.js","sourceRoot":"","sources":["../../ts/state/callbackMaker.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAA2B,aAAa,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAwB7C,IAAI,aAAa,GAAG,CAClB,QAA+B,EAC/B,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAQ,EAAE;IAChD,MAAM,IAAI,iBAAiB,CAAC,iFAAiF,CAAC,CAAA;AAChH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;AAEhD,MAAM,cAAc,GAAG,aAAa,CAAA,CAAC,gBAAgB;AAErD,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,WAAW,EAAE,CAAC,WAA2B,EAAE,EAAE;QAC3C,aAAa,GAAG,cAAc,CAAA,CAAC,8CAA8C;IAC/E,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,WAAW,CAClB,SAA2B,EAC3B,OAAyB;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;QAExC,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,CAAE,SAAS,CAAE,CAAA,CAAC,gBAAgB;QACxC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,CAAC,mBAAmB;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAE,UAA0B;IAC7C,MAAM,QAAQ,GAAqB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IAClE,aAAa,GAAG,CACd,QAAgD,EAChD,EAAE;QACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QAC/F,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,UAA0B,EAC1B,QAA+C,EAC/C,QAA0B,EAC1B,GAAG,IAAW;IAEd,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAc,CAAA;IAE9C,qDAAqD;IACrD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE5B,mBAAmB;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAiC,CAAC,CAAA;IAE9D,gDAAgD;IAChD,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE5B,gBAAgB,CACd,UAAwB,EACxB,KAAK,CACN,CAAA;IAED,IAAG,OAAO,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,gDAAgD;YAChD,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE5B,gBAAgB,CACd,UAAwB,EACxB,KAAK,CACN,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
import { getStateValue } from "./state.utils";
|
|
3
|
+
import { renderTagSupport } from "../renderTagSupport.function";
|
|
4
|
+
let innerCallback = (callback) => () => {
|
|
5
|
+
throw new Error('Callback function was called immediately in sync and must instead be call async');
|
|
6
|
+
};
|
|
7
|
+
export const getCallback = () => innerCallback;
|
|
8
|
+
const originalGetter = innerCallback; // getCallback
|
|
9
|
+
setUse({
|
|
10
|
+
beforeRender: (tagSupport) => initMemory(tagSupport),
|
|
11
|
+
beforeRedraw: (tagSupport) => initMemory(tagSupport),
|
|
12
|
+
afterRender: (_tagSupport) => {
|
|
13
|
+
innerCallback = originalGetter; // prevent crossing callbacks with another tag
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
function updateState(stateFrom, stateTo) {
|
|
17
|
+
stateFrom.forEach((state, index) => {
|
|
18
|
+
const fromValue = getStateValue(state);
|
|
19
|
+
const callback = stateTo[index].callback;
|
|
20
|
+
if (callback) {
|
|
21
|
+
callback(fromValue); // set the value
|
|
22
|
+
}
|
|
23
|
+
stateTo[index].lastValue = fromValue; // record the value
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function initMemory(tagSupport) {
|
|
27
|
+
const oldState = setUse.memory.stateConfig.array;
|
|
28
|
+
innerCallback = (callback) => {
|
|
29
|
+
const trigger = (...args) => triggerStateUpdate(tagSupport, callback, oldState, ...args);
|
|
30
|
+
return trigger;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function triggerStateUpdate(tagSupport, callback, oldState, ...args) {
|
|
34
|
+
const state = tagSupport.memory.state;
|
|
35
|
+
const newest = state.newest;
|
|
36
|
+
// ensure that the oldest has the latest values first
|
|
37
|
+
updateState(newest, oldState);
|
|
38
|
+
// run the callback
|
|
39
|
+
const promise = callback(...args);
|
|
40
|
+
// send the oldest state changes into the newest
|
|
41
|
+
updateState(oldState, newest);
|
|
42
|
+
renderTagSupport(tagSupport, false);
|
|
43
|
+
if (promise instanceof Promise) {
|
|
44
|
+
promise.finally(() => {
|
|
45
|
+
// send the oldest state changes into the newest
|
|
46
|
+
updateState(oldState, newest);
|
|
47
|
+
renderTagSupport(tagSupport, false);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=getCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCallback.js","sourceRoot":"","sources":["../../ts/state/getCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAA2B,aAAa,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAI/D,IAAI,aAAa,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,GAAS,EAAE;IACrD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;AACpG,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;AAE9C,MAAM,cAAc,GAAG,aAAa,CAAA,CAAC,cAAc;AAEnD,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACpE,WAAW,EAAE,CAAC,WAA2B,EAAE,EAAE;QAC3C,aAAa,GAAG,cAAc,CAAA,CAAC,8CAA8C;IAC/E,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,WAAW,CAClB,SAA2B,EAC3B,OAAyB;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;QAExC,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,CAAE,SAAS,CAAE,CAAA,CAAC,gBAAgB;QACxC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,CAAC,mBAAmB;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAKD,SAAS,UAAU,CAAE,UAA0B;IAC7C,MAAM,QAAQ,GAAqB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IAClE,aAAa,GAAG,CACd,QAAkB,EAClB,EAAE;QACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QAC/F,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,UAA0B,EAC1B,QAAkB,EAClB,QAA0B,EAC1B,GAAG,IAAW;IAEd,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAc,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE3B,qDAAqD;IACrD,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE7B,mBAAmB;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IAEjC,gDAAgD;IAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE7B,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;IAED,IAAG,OAAO,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,gDAAgD;YAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAE7B,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./watch.function";
|
|
2
|
+
export { setUse } from "./setUse.function";
|
|
3
|
+
export { state } from "./state.function";
|
|
4
|
+
export { letState } from "./letState.function";
|
|
5
|
+
export { setProp } from "./setProp.function";
|
|
6
|
+
export { StateConfigArray, State } from "./state.utils";
|
|
7
|
+
export { providers } from "./providers";
|
|
8
|
+
export * from "./callbackMaker.function";
|
|
9
|
+
export * from "./onInit";
|
|
10
|
+
export * from "./onDestroy";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./watch.function";
|
|
2
|
+
export { setUse } from "./setUse.function";
|
|
3
|
+
export { state } from "./state.function";
|
|
4
|
+
export { letState } from "./letState.function";
|
|
5
|
+
export { setProp } from "./setProp.function";
|
|
6
|
+
export { providers } from "./providers";
|
|
7
|
+
export * from "./callbackMaker.function";
|
|
8
|
+
export * from "./onInit";
|
|
9
|
+
export * from "./onDestroy";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { getStateValue } from './state.utils';
|
|
2
|
+
import { setUse } from './setUse.function';
|
|
3
|
+
/** Used for variables that need to remain the same variable during render passes */
|
|
4
|
+
export function letState(defaultValue) {
|
|
5
|
+
const config = setUse.memory.stateConfig;
|
|
6
|
+
const rearray = config.rearray;
|
|
7
|
+
let getSetMethod;
|
|
8
|
+
const restate = rearray[config.array.length];
|
|
9
|
+
if (restate) {
|
|
10
|
+
let oldValue = getStateValue(restate);
|
|
11
|
+
getSetMethod = ((x) => [oldValue, oldValue = x]);
|
|
12
|
+
const push = {
|
|
13
|
+
get: () => getStateValue(push),
|
|
14
|
+
callback: getSetMethod,
|
|
15
|
+
lastValue: oldValue,
|
|
16
|
+
defaultValue: restate.defaultValue,
|
|
17
|
+
};
|
|
18
|
+
config.array.push(push);
|
|
19
|
+
return makeStateResult(oldValue, push);
|
|
20
|
+
}
|
|
21
|
+
// State first time run
|
|
22
|
+
const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
|
|
23
|
+
let initValue = defaultFn();
|
|
24
|
+
getSetMethod = ((x) => [initValue, initValue = x]);
|
|
25
|
+
const push = {
|
|
26
|
+
get: () => getStateValue(push),
|
|
27
|
+
callback: getSetMethod,
|
|
28
|
+
lastValue: initValue,
|
|
29
|
+
defaultValue: initValue,
|
|
30
|
+
};
|
|
31
|
+
config.array.push(push);
|
|
32
|
+
return makeStateResult(initValue, push);
|
|
33
|
+
}
|
|
34
|
+
function makeStateResult(initValue, push) {
|
|
35
|
+
// return initValue
|
|
36
|
+
const result = (y) => {
|
|
37
|
+
push.callback = y || (x => [initValue, initValue = x]);
|
|
38
|
+
return initValue;
|
|
39
|
+
};
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=letState.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"letState.function.js","sourceRoot":"","sources":["../../ts/state/letState.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,oFAAoF;AACpF,MAAM,UAAU,QAAQ,CACtB,YAA2B;IAE3B,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAA2B,CAAA;IAClD,IAAI,YAA4B,CAAA;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAG,OAAO,EAAE,CAAC;QACX,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;QAE1C,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,IAAI,GAAuB;YAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;YACnC,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,YAAY,YAAY,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAA;IACtF,IAAI,SAAS,GAAG,SAAS,EAAE,CAAA;IAE3B,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,IAAI,GAAuB;QAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;QACnC,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,eAAe,CACtB,SAAY,EACZ,IAAwB;IAExB,mBAAmB;IACnB,MAAM,MAAM,GAAI,CAAC,CAAM,EAAE,EAAE;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
/** When undefined, it means a tag is being built for the first time so do run destroy(s) */
|
|
3
|
+
let destroyCurrentTagSupport;
|
|
4
|
+
export function onDestroy(callback) {
|
|
5
|
+
destroyCurrentTagSupport.global.destroyCallback = callback;
|
|
6
|
+
}
|
|
7
|
+
setUse({
|
|
8
|
+
beforeRender: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
9
|
+
beforeRedraw: tagSupport => destroyCurrentTagSupport = tagSupport,
|
|
10
|
+
beforeDestroy: (tagSupport, tag) => {
|
|
11
|
+
const callback = tagSupport.global.destroyCallback;
|
|
12
|
+
if (callback) {
|
|
13
|
+
callback();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=onDestroy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../../ts/state/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,4FAA4F;AAC5F,IAAI,wBAAwC,CAAA;AAE5C,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,wBAAwB,CAAC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAA;AAC5D,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,wBAAwB,GAAG,UAAU;IACjE,aAAa,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAA;QAElD,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { setUse } from "./setUse.function";
|
|
2
|
+
function setCurrentTagSupport(support) {
|
|
3
|
+
setUse.memory.initCurrentSupport = support;
|
|
4
|
+
}
|
|
5
|
+
export function onInit(callback) {
|
|
6
|
+
const tagSupport = setUse.memory.initCurrentSupport;
|
|
7
|
+
if (!tagSupport.global.init) {
|
|
8
|
+
tagSupport.global.init = callback;
|
|
9
|
+
callback(); // fire init
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
setUse({
|
|
13
|
+
beforeRender: tagSupport => setCurrentTagSupport(tagSupport),
|
|
14
|
+
beforeRedraw: tagSupport => setCurrentTagSupport(tagSupport),
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=onInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onInit.js","sourceRoot":"","sources":["../../ts/state/onInit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,SAAS,oBAAoB,CAAC,OAAoC;IAChE,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,OAAqB,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAA;IACnD,IAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;QACjC,QAAQ,EAAE,CAAA,CAAC,YAAY;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC;IACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;IAC5D,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;CAC7D,CAAC,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { deepClone, deepEqual } from '../deepFunctions';
|
|
2
|
+
import { renderTagSupport } from '../renderTagSupport.function';
|
|
3
|
+
export function providersChangeCheck(tagSupport) {
|
|
4
|
+
const global = tagSupport.global;
|
|
5
|
+
const providersWithChanges = global.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
|
|
6
|
+
// reset clones
|
|
7
|
+
providersWithChanges.forEach(provider => {
|
|
8
|
+
const appElement = tagSupport.getAppElement();
|
|
9
|
+
handleProviderChanges(appElement, provider);
|
|
10
|
+
provider.clone = deepClone(provider.instance);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function handleProviderChanges(appElement, provider) {
|
|
14
|
+
const tagsWithProvider = getTagsWithProvider(appElement, provider);
|
|
15
|
+
tagsWithProvider.forEach(({ tagSupport, renderCount, provider }) => {
|
|
16
|
+
if (tagSupport.global.deleted) {
|
|
17
|
+
return; // i was deleted after another tag processed
|
|
18
|
+
}
|
|
19
|
+
const notRendered = renderCount === tagSupport.global.renderCount;
|
|
20
|
+
if (notRendered) {
|
|
21
|
+
provider.clone = deepClone(provider.instance);
|
|
22
|
+
renderTagSupport(tagSupport, false);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function getTagsWithProvider(tagSupport, provider, memory = []) {
|
|
27
|
+
const global = tagSupport.global;
|
|
28
|
+
const compare = global.providers;
|
|
29
|
+
const hasProvider = compare.find(xProvider => xProvider.constructMethod === provider.constructMethod);
|
|
30
|
+
if (hasProvider) {
|
|
31
|
+
memory.push({
|
|
32
|
+
tagSupport,
|
|
33
|
+
renderCount: global.renderCount,
|
|
34
|
+
provider: hasProvider,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
tagSupport.childTags.forEach(child => getTagsWithProvider(child, provider, memory));
|
|
38
|
+
return memory;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=provider.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.utils.js","sourceRoot":"","sources":["../../ts/state/provider.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAG/D,MAAM,UAAU,oBAAoB,CAClC,UAAsB;IAEtB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC9D,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAA;IAED,eAAe;IACf,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACtC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAA;QAE7C,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3C,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAsB,EACtB,QAAkB;IAElB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAElE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE;QAC/D,IAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAM,CAAC,4CAA4C;QACrD,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,KAAK,UAAU,CAAC,MAAM,CAAC,WAAW,CAAA;QACjE,IAAG,WAAW,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,gBAAgB,CACd,UAAU,EACV,KAAK,CACN,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAsB,EACtB,QAAkB,EAClB,SAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAA;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,CACpE,CAAA;IAED,IAAG,WAAW,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,UAAU;YACV,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CACvD,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TagSupport } from '../TagSupport.class';
|
|
2
|
+
export type Provider = {
|
|
3
|
+
constructMethod: any;
|
|
4
|
+
instance: any;
|
|
5
|
+
clone: any;
|
|
6
|
+
};
|
|
7
|
+
type ProviderConstructor<T> = (new (...args: any[]) => T) | (() => T);
|
|
8
|
+
export type ProviderConfig = {
|
|
9
|
+
providers: Provider[];
|
|
10
|
+
ownerSupport?: TagSupport;
|
|
11
|
+
};
|
|
12
|
+
type functionProvider<T> = () => T;
|
|
13
|
+
type classProvider<T> = new (...args: any[]) => T;
|
|
14
|
+
export declare const providers: {
|
|
15
|
+
create: <T>(constructMethod: classProvider<T> | functionProvider<T>) => T;
|
|
16
|
+
/**
|
|
17
|
+
* @template T
|
|
18
|
+
* @param {(new (...args: any[]) => T) | () => T} constructor
|
|
19
|
+
* @returns {T}
|
|
20
|
+
*/
|
|
21
|
+
inject: <T_1>(constructor: ProviderConstructor<T_1>) => T_1;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { deepClone } from '../deepFunctions';
|
|
2
|
+
import { setUse } from './setUse.function';
|
|
3
|
+
setUse.memory.providerConfig = {
|
|
4
|
+
providers: [],
|
|
5
|
+
ownerSupport: undefined,
|
|
6
|
+
};
|
|
7
|
+
function get(constructMethod) {
|
|
8
|
+
const config = setUse.memory.providerConfig;
|
|
9
|
+
const providers = config.providers;
|
|
10
|
+
return providers.find(provider => provider.constructMethod === constructMethod);
|
|
11
|
+
}
|
|
12
|
+
export const providers = {
|
|
13
|
+
create: (constructMethod) => {
|
|
14
|
+
const existing = get(constructMethod);
|
|
15
|
+
if (existing) {
|
|
16
|
+
existing.clone = deepClone(existing.instance);
|
|
17
|
+
return existing.instance;
|
|
18
|
+
}
|
|
19
|
+
// Providers with provider requirements just need to use providers.create() and providers.inject()
|
|
20
|
+
const instance = constructMethod.constructor ? new constructMethod() : constructMethod();
|
|
21
|
+
const config = setUse.memory.providerConfig;
|
|
22
|
+
config.providers.push({
|
|
23
|
+
constructMethod,
|
|
24
|
+
instance,
|
|
25
|
+
clone: deepClone(instance)
|
|
26
|
+
});
|
|
27
|
+
return instance;
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* @template T
|
|
31
|
+
* @param {(new (...args: any[]) => T) | () => T} constructor
|
|
32
|
+
* @returns {T}
|
|
33
|
+
*/
|
|
34
|
+
inject: (constructor) => {
|
|
35
|
+
const oldValue = get(constructor);
|
|
36
|
+
if (oldValue) {
|
|
37
|
+
return oldValue.instance;
|
|
38
|
+
}
|
|
39
|
+
const config = setUse.memory.providerConfig;
|
|
40
|
+
let owner = {
|
|
41
|
+
ownerTagSupport: config.ownerSupport
|
|
42
|
+
};
|
|
43
|
+
while (owner.ownerTagSupport) {
|
|
44
|
+
const ownerProviders = owner.ownerTagSupport.global.providers;
|
|
45
|
+
const provider = ownerProviders.find(provider => {
|
|
46
|
+
if (provider.constructMethod === constructor) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
if (provider) {
|
|
51
|
+
provider.clone = deepClone(provider.instance); // keep a copy of the latest before any change occur
|
|
52
|
+
config.providers.push(provider);
|
|
53
|
+
return provider.instance;
|
|
54
|
+
}
|
|
55
|
+
owner = owner.ownerTagSupport; // cause reloop
|
|
56
|
+
}
|
|
57
|
+
const msg = `Could not inject provider: ${constructor.name} ${constructor}`;
|
|
58
|
+
console.warn(`${msg}. Available providers`, config.providers);
|
|
59
|
+
throw new Error(msg);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
setUse({
|
|
63
|
+
beforeRender: (tagSupport, ownerSupport) => {
|
|
64
|
+
run(tagSupport, ownerSupport);
|
|
65
|
+
},
|
|
66
|
+
beforeRedraw: (tagSupport, newTagSupport) => {
|
|
67
|
+
run(tagSupport, newTagSupport.ownerTagSupport);
|
|
68
|
+
},
|
|
69
|
+
afterRender: (tagSupport) => {
|
|
70
|
+
const config = setUse.memory.providerConfig;
|
|
71
|
+
tagSupport.global.providers = [...config.providers];
|
|
72
|
+
config.providers.length = 0;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
function run(tagSupport, ownerSupport) {
|
|
76
|
+
const config = setUse.memory.providerConfig;
|
|
77
|
+
config.ownerSupport = ownerSupport;
|
|
78
|
+
if (tagSupport.global.providers.length) {
|
|
79
|
+
config.providers.length = 0;
|
|
80
|
+
config.providers.push(...tagSupport.global.providers);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../ts/state/providers.ts"],"names":[],"mappings":"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"}
|