@joist/element 4.2.3-next.2 → 4.2.3-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/package.json +4 -2
  2. package/src/lib/attr.test.ts +69 -18
  3. package/src/lib/attr.ts +5 -6
  4. package/src/lib/element.test.ts +33 -25
  5. package/src/lib/element.ts +21 -27
  6. package/src/lib/listen.test.ts +75 -0
  7. package/src/lib/metadata.ts +5 -7
  8. package/target/lib/attr.d.ts +1 -1
  9. package/target/lib/attr.js +3 -4
  10. package/target/lib/attr.js.map +1 -1
  11. package/target/lib/attr.test.js +90 -17
  12. package/target/lib/attr.test.js.map +1 -1
  13. package/target/lib/element.js +16 -17
  14. package/target/lib/element.js.map +1 -1
  15. package/target/lib/element.test.js +68 -0
  16. package/target/lib/element.test.js.map +1 -1
  17. package/target/lib/listen.test.js +97 -0
  18. package/target/lib/listen.test.js.map +1 -1
  19. package/target/lib/metadata.d.ts +4 -2
  20. package/target/lib/metadata.js.map +1 -1
  21. package/src/lib/templating/README.md +0 -406
  22. package/src/lib/templating/bind.ts +0 -40
  23. package/src/lib/templating/define.ts +0 -5
  24. package/src/lib/templating/elements/async.element.test.ts +0 -90
  25. package/src/lib/templating/elements/async.element.ts +0 -122
  26. package/src/lib/templating/elements/for.element.test.ts +0 -221
  27. package/src/lib/templating/elements/for.element.ts +0 -189
  28. package/src/lib/templating/elements/if.element.test.ts +0 -90
  29. package/src/lib/templating/elements/if.element.ts +0 -93
  30. package/src/lib/templating/elements/props.element.test.ts +0 -62
  31. package/src/lib/templating/elements/props.element.ts +0 -80
  32. package/src/lib/templating/elements/scope.ts +0 -45
  33. package/src/lib/templating/elements/value.element.test.ts +0 -20
  34. package/src/lib/templating/elements/value.element.ts +0 -41
  35. package/src/lib/templating/events.ts +0 -21
  36. package/src/lib/templating/token.test.ts +0 -74
  37. package/src/lib/templating/token.ts +0 -34
  38. package/src/lib/templating.ts +0 -2
  39. package/target/lib/templating/bind.d.ts +0 -1
  40. package/target/lib/templating/bind.js +0 -30
  41. package/target/lib/templating/bind.js.map +0 -1
  42. package/target/lib/templating/define.d.ts +0 -5
  43. package/target/lib/templating/define.js +0 -6
  44. package/target/lib/templating/define.js.map +0 -1
  45. package/target/lib/templating/elements/async.element.d.ts +0 -17
  46. package/target/lib/templating/elements/async.element.js +0 -115
  47. package/target/lib/templating/elements/async.element.js.map +0 -1
  48. package/target/lib/templating/elements/async.element.test.d.ts +0 -1
  49. package/target/lib/templating/elements/async.element.test.js +0 -75
  50. package/target/lib/templating/elements/async.element.test.js.map +0 -1
  51. package/target/lib/templating/elements/for.element.d.ts +0 -24
  52. package/target/lib/templating/elements/for.element.js +0 -186
  53. package/target/lib/templating/elements/for.element.js.map +0 -1
  54. package/target/lib/templating/elements/for.element.test.d.ts +0 -2
  55. package/target/lib/templating/elements/for.element.test.js +0 -153
  56. package/target/lib/templating/elements/for.element.test.js.map +0 -1
  57. package/target/lib/templating/elements/if.element.d.ts +0 -12
  58. package/target/lib/templating/elements/if.element.js +0 -85
  59. package/target/lib/templating/elements/if.element.js.map +0 -1
  60. package/target/lib/templating/elements/if.element.test.d.ts +0 -1
  61. package/target/lib/templating/elements/if.element.test.js +0 -78
  62. package/target/lib/templating/elements/if.element.test.js.map +0 -1
  63. package/target/lib/templating/elements/props.element.d.ts +0 -11
  64. package/target/lib/templating/elements/props.element.js +0 -92
  65. package/target/lib/templating/elements/props.element.js.map +0 -1
  66. package/target/lib/templating/elements/props.element.test.d.ts +0 -1
  67. package/target/lib/templating/elements/props.element.test.js +0 -53
  68. package/target/lib/templating/elements/props.element.test.js.map +0 -1
  69. package/target/lib/templating/elements/scope.d.ts +0 -13
  70. package/target/lib/templating/elements/scope.js +0 -59
  71. package/target/lib/templating/elements/scope.js.map +0 -1
  72. package/target/lib/templating/elements/value.element.d.ts +0 -9
  73. package/target/lib/templating/elements/value.element.js +0 -56
  74. package/target/lib/templating/elements/value.element.js.map +0 -1
  75. package/target/lib/templating/elements/value.element.test.d.ts +0 -1
  76. package/target/lib/templating/elements/value.element.test.js +0 -16
  77. package/target/lib/templating/elements/value.element.test.js.map +0 -1
  78. package/target/lib/templating/events.d.ts +0 -12
  79. package/target/lib/templating/events.js +0 -10
  80. package/target/lib/templating/events.js.map +0 -1
  81. package/target/lib/templating/token.d.ts +0 -8
  82. package/target/lib/templating/token.js +0 -27
  83. package/target/lib/templating/token.js.map +0 -1
  84. package/target/lib/templating/token.test.d.ts +0 -1
  85. package/target/lib/templating/token.test.js +0 -56
  86. package/target/lib/templating/token.test.js.map +0 -1
  87. package/target/lib/templating.d.ts +0 -2
  88. package/target/lib/templating.js +0 -3
  89. package/target/lib/templating.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.element.js","sourceRoot":"","sources":["../../../../src/lib/templating/elements/props.element.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- import "./props.element.js";
@@ -1,53 +0,0 @@
1
- import "./props.element.js";
2
- import { fixtureSync, html } from "@open-wc/testing";
3
- import { assert } from "chai";
4
- it("should pass props to child", () => {
5
- const element = fixtureSync(html `
6
- <div
7
- @joist::value=${(e) => {
8
- if (e.token.bindTo === "href") {
9
- e.update({
10
- oldValue: null,
11
- newValue: "$foo",
12
- });
13
- }
14
- if (e.token.bindTo === "target") {
15
- e.update({
16
- oldValue: null,
17
- newValue: {
18
- value: "_blank",
19
- },
20
- });
21
- }
22
- }}
23
- >
24
- <j-props>
25
- <a $href="href" $target="target.value">Hello World</a>
26
- </j-props>
27
- </div>
28
- `);
29
- const anchor = element.querySelector("a");
30
- assert.equal(anchor?.getAttribute("href"), "$foo");
31
- assert.equal(anchor?.getAttribute("target"), "_blank");
32
- });
33
- it("should pass props to specified child", () => {
34
- const element = fixtureSync(html `
35
- <div
36
- @joist::value=${(e) => {
37
- e.update({
38
- oldValue: null,
39
- newValue: "#foo",
40
- });
41
- }}
42
- >
43
- <j-props>
44
- <a>Default</a>
45
- <a id="test" $href="href">Target</a>
46
- </j-props>
47
- </div>
48
- `);
49
- const anchor = element.querySelectorAll("a");
50
- assert.equal(anchor[0].getAttribute("href"), null);
51
- assert.equal(anchor[1].getAttribute("href"), "#foo");
52
- });
53
- //# sourceMappingURL=props.element.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.element.test.js","sourceRoot":"","sources":["../../../../src/lib/templating/elements/props.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE;oBACR,KAAK,EAAE,QAAQ;iBAChB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;;;;;;GAMJ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;;;;;;;GAOJ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { JoistValueEvent } from "../events.js";
2
- declare global {
3
- interface HTMLElementTagNameMap {
4
- "j-scope": JoistScopeElement;
5
- }
6
- }
7
- export declare class JoistScopeElement extends HTMLElement {
8
- #private;
9
- accessor name: string;
10
- accessor value: string;
11
- onJoistValueFound(e: JoistValueEvent): void;
12
- attributeChangedCallback(_: string, oldValue: string, newValue: string): void;
13
- }
@@ -1,59 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { attr } from "../../attr.js";
3
- import { element } from "../../element.js";
4
- import { listen } from "../../listen.js";
5
- import { css, html } from "../../tags.js";
6
- let JoistScopeElement = (() => {
7
- let _classDecorators = [element({
8
- tagName: "j-value",
9
- shadowDom: [css `:host{display: contents;}`, html `<slot></slot>`],
10
- })];
11
- let _classDescriptor;
12
- let _classExtraInitializers = [];
13
- let _classThis;
14
- let _classSuper = HTMLElement;
15
- let _instanceExtraInitializers = [];
16
- let _name_decorators;
17
- let _name_initializers = [];
18
- let _name_extraInitializers = [];
19
- let _value_decorators;
20
- let _value_initializers = [];
21
- let _value_extraInitializers = [];
22
- let _onJoistValueFound_decorators;
23
- var JoistScopeElement = class extends _classSuper {
24
- static { _classThis = this; }
25
- static {
26
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
27
- _name_decorators = [attr()];
28
- _value_decorators = [attr()];
29
- _onJoistValueFound_decorators = [listen("joist::value")];
30
- __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
31
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
32
- __esDecorate(this, null, _onJoistValueFound_decorators, { kind: "method", name: "onJoistValueFound", static: false, private: false, access: { has: obj => "onJoistValueFound" in obj, get: obj => obj.onJoistValueFound }, metadata: _metadata }, null, _instanceExtraInitializers);
33
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
34
- JoistScopeElement = _classThis = _classDescriptor.value;
35
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
36
- __runInitializers(_classThis, _classExtraInitializers);
37
- }
38
- #name_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _name_initializers, ""));
39
- get name() { return this.#name_accessor_storage; }
40
- set name(value) { this.#name_accessor_storage = value; }
41
- #value_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _value_initializers, ""));
42
- get value() { return this.#value_accessor_storage; }
43
- set value(value) { this.#value_accessor_storage = value; }
44
- #binding = (__runInitializers(this, _value_extraInitializers), null);
45
- onJoistValueFound(e) {
46
- if (e.token.bindTo === this.name) {
47
- e.stopPropagation();
48
- this.#binding = e;
49
- this.#binding.update({ oldValue: null, newValue: this.value });
50
- }
51
- }
52
- attributeChangedCallback(_, oldValue, newValue) {
53
- this.#binding?.update({ oldValue, newValue });
54
- }
55
- };
56
- return JoistScopeElement = _classThis;
57
- })();
58
- export { JoistScopeElement };
59
- //# sourceMappingURL=scope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../../src/lib/templating/elements/scope.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;IAc7B,iBAAiB;4BAL7B,OAAO,CAAC;YACP,OAAO,EAAE,SAAS;YAElB,SAAS,EAAE,CAAC,GAAG,CAAA,2BAA2B,EAAE,IAAI,CAAA,eAAe,CAAC;SACjE,CAAC;;;;sBACqC,WAAW;;;;;;;;;iCAAnB,SAAQ,WAAW;;;;gCAC/C,IAAI,EAAE;iCAGN,IAAI,EAAE;6CAKN,MAAM,CAAC,cAAc,CAAC;YAPvB,iKAAS,IAAI,6BAAJ,IAAI,mFAAM;YAGnB,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAKpB,sMAAA,iBAAiB,6DAQhB;YAlBH,6KA2BC;;;YA3BY,uDAAiB;;QAE5B,0BAFW,mDAAiB,8CAEZ,EAAE,GAAC;QAAnB,IAAS,IAAI,0CAAM;QAAnB,IAAS,IAAI,gDAAM;QAGnB,0HAAiB,EAAE,GAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAEpB,QAAQ,uDAA2B,IAAI,EAAC;QAGxC,iBAAiB,CAAC,CAAkB;YAClC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC,CAAC,eAAe,EAAE,CAAC;gBAEpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAElB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,wBAAwB,CACtB,CAAS,EACT,QAAgB,EAChB,QAAgB;YAEhB,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;;;;SA1BU,iBAAiB"}
@@ -1,9 +0,0 @@
1
- declare global {
2
- interface HTMLElementTagNameMap {
3
- "j-value": JoistValueElement;
4
- }
5
- }
6
- export declare class JoistValueElement extends HTMLElement {
7
- accessor bind: string;
8
- connectedCallback(): void;
9
- }
@@ -1,56 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { attr } from "../../attr.js";
3
- import { element } from "../../element.js";
4
- import { css, html } from "../../tags.js";
5
- import { JoistValueEvent } from "../events.js";
6
- import { JToken } from "../token.js";
7
- let JoistValueElement = (() => {
8
- let _classDecorators = [element({
9
- tagName: "j-value",
10
- shadowDom: [css `:host{display: contents;}`, html `<slot></slot>`],
11
- })];
12
- let _classDescriptor;
13
- let _classExtraInitializers = [];
14
- let _classThis;
15
- let _classSuper = HTMLElement;
16
- let _bind_decorators;
17
- let _bind_initializers = [];
18
- let _bind_extraInitializers = [];
19
- var JoistValueElement = class extends _classSuper {
20
- static { _classThis = this; }
21
- static {
22
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
23
- _bind_decorators = [attr()];
24
- __esDecorate(this, null, _bind_decorators, { kind: "accessor", name: "bind", static: false, private: false, access: { has: obj => "bind" in obj, get: obj => obj.bind, set: (obj, value) => { obj.bind = value; } }, metadata: _metadata }, _bind_initializers, _bind_extraInitializers);
25
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
26
- JoistValueElement = _classThis = _classDescriptor.value;
27
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
28
- __runInitializers(_classThis, _classExtraInitializers);
29
- }
30
- #bind_accessor_storage = __runInitializers(this, _bind_initializers, "");
31
- get bind() { return this.#bind_accessor_storage; }
32
- set bind(value) { this.#bind_accessor_storage = value; }
33
- connectedCallback() {
34
- const token = new JToken(this.bind);
35
- this.dispatchEvent(new JoistValueEvent(token, (value) => {
36
- let valueToWrite;
37
- if (typeof value.newValue === "object" && value.newValue !== null) {
38
- valueToWrite = String(token.readTokenValueFrom(value.newValue));
39
- }
40
- else {
41
- valueToWrite = String(value.newValue);
42
- }
43
- if (this.textContent !== valueToWrite) {
44
- this.textContent = valueToWrite;
45
- }
46
- }));
47
- }
48
- constructor() {
49
- super(...arguments);
50
- __runInitializers(this, _bind_extraInitializers);
51
- }
52
- };
53
- return JoistValueElement = _classThis;
54
- })();
55
- export { JoistValueElement };
56
- //# sourceMappingURL=value.element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.element.js","sourceRoot":"","sources":["../../../../src/lib/templating/elements/value.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;IAaxB,iBAAiB;4BAL7B,OAAO,CAAC;YACP,OAAO,EAAE,SAAS;YAElB,SAAS,EAAE,CAAC,GAAG,CAAA,2BAA2B,EAAE,IAAI,CAAA,eAAe,CAAC;SACjE,CAAC;;;;sBACqC,WAAW;;;;iCAAnB,SAAQ,WAAW;;;;gCAC/C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAM;YAFrB,6KAuBC;;;YAvBY,uDAAiB;;QAE5B,qEAAgB,EAAE,EAAC;QAAnB,IAAS,IAAI,0CAAM;QAAnB,IAAS,IAAI,gDAAM;QAEnB,iBAAiB;YACf,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpC,IAAI,CAAC,aAAa,CAChB,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnC,IAAI,YAAoB,CAAC;gBAEzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAClE,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBAED,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;oBACtC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;;;;;;;;SAtBU,iBAAiB"}
@@ -1 +0,0 @@
1
- import "./value.element.js";
@@ -1,16 +0,0 @@
1
- import "./value.element.js";
2
- import { fixtureSync, html } from "@open-wc/testing";
3
- import { assert } from "chai";
4
- it("should render content when the bind value is truthy", () => {
5
- const element = fixtureSync(html `
6
- <div
7
- @joist::value=${(e) => {
8
- e.update({ oldValue: null, newValue: "Hello World" });
9
- }}
10
- >
11
- <j-value bind="test"></j-value>
12
- </div>
13
- `);
14
- assert.equal(element.textContent?.trim(), "Hello World");
15
- });
16
- //# sourceMappingURL=value.element.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.element.test.js","sourceRoot":"","sources":["../../../../src/lib/templating/elements/value.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACxD,CAAC;;;;GAIJ,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { Change } from "@joist/observable";
2
- import type { JToken } from "./token.js";
3
- declare global {
4
- interface HTMLElementEventMap {
5
- "joist::value": JoistValueEvent;
6
- }
7
- }
8
- export declare class JoistValueEvent extends Event {
9
- readonly token: JToken;
10
- readonly update: (value: Change<unknown>) => void;
11
- constructor(bindTo: JToken, update: (value: Change<unknown>) => void);
12
- }
@@ -1,10 +0,0 @@
1
- export class JoistValueEvent extends Event {
2
- token;
3
- update;
4
- constructor(bindTo, update) {
5
- super("joist::value", { bubbles: true, composed: true });
6
- this.token = bindTo;
7
- this.update = update;
8
- }
9
- }
10
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/lib/templating/events.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,KAAK,CAAS;IACd,MAAM,CAAmC;IAElD,YAAY,MAAc,EAAE,MAAwC;QAClE,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- export declare class JToken {
2
- rawToken: string;
3
- isNegated: boolean;
4
- bindTo: string;
5
- path: string[];
6
- constructor(rawToken: string);
7
- readTokenValueFrom<T = unknown>(obj: object): T;
8
- }
@@ -1,27 +0,0 @@
1
- export class JToken {
2
- rawToken;
3
- isNegated = false;
4
- bindTo;
5
- path = [];
6
- constructor(rawToken) {
7
- this.rawToken = rawToken;
8
- this.isNegated = this.rawToken.startsWith("!");
9
- this.path = this.rawToken.split(".");
10
- this.bindTo = this.path.shift() ?? "";
11
- this.bindTo = this.bindTo.replaceAll("!", "");
12
- }
13
- readTokenValueFrom(obj) {
14
- let pointer = obj;
15
- if (!this.path.length) {
16
- return pointer;
17
- }
18
- for (const part of this.path) {
19
- pointer = pointer[part];
20
- if (pointer === undefined) {
21
- break;
22
- }
23
- }
24
- return pointer;
25
- }
26
- }
27
- //# sourceMappingURL=token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/lib/templating/token.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACjB,QAAQ,CAAS;IACjB,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,CAAS;IACf,IAAI,GAAa,EAAE,CAAC;IAEpB,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,kBAAkB,CAAc,GAAW;QACzC,IAAI,OAAO,GAAQ,GAAG,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAExB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
1
- import { assert } from "chai";
2
- import { JToken } from "./token.js";
3
- describe("JToken", () => {
4
- describe("constructor", () => {
5
- it("should initialize with a raw token", () => {
6
- const token = new JToken("example.token");
7
- assert.equal(token.rawToken, "example.token");
8
- });
9
- it("should set isNegated to true if the token starts with '!'", () => {
10
- const token = new JToken("!example.token");
11
- assert.isTrue(token.isNegated);
12
- });
13
- it("should set isNegated to false if the token does not start with '!'", () => {
14
- const token = new JToken("example.token");
15
- assert.isFalse(token.isNegated);
16
- });
17
- it("should correctly parse the bindTo property", () => {
18
- const token = new JToken("example.token");
19
- assert.equal(token.bindTo, "example");
20
- });
21
- it("should correctly parse the path property", () => {
22
- const token = new JToken("example.token.part");
23
- assert.deepEqual(token.path, ["token", "part"]);
24
- });
25
- it("should remove '!' from bindTo if present", () => {
26
- const token = new JToken("!example.token");
27
- assert.equal(token.bindTo, "example");
28
- });
29
- });
30
- describe("readTokenValueFrom", () => {
31
- it("should read the value from a nested object", () => {
32
- const token = new JToken("example.token.part");
33
- const obj = { token: { part: 42 } };
34
- const value = token.readTokenValueFrom(obj);
35
- assert.equal(value, 42);
36
- });
37
- it("should return undefined if the path does not exist", () => {
38
- const token = new JToken("example.nonexistent.path");
39
- const obj = { token: { part: 42 } };
40
- const value = token.readTokenValueFrom(obj);
41
- assert.isUndefined(value);
42
- });
43
- it("should handle empty paths gracefully", () => {
44
- const token = new JToken("example");
45
- const obj = { foo: 42 };
46
- const value = token.readTokenValueFrom(obj);
47
- assert.deepEqual(value, { foo: 42 });
48
- });
49
- it("should throw an error if the object is null or undefined", () => {
50
- const token = new JToken("example.token");
51
- assert.throws(() => token.readTokenValueFrom(null), TypeError);
52
- assert.throws(() => token.readTokenValueFrom(undefined), TypeError);
53
- });
54
- });
55
- });
56
- //# sourceMappingURL=token.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../src/lib/templating/token.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { bind } from "./templating/bind.js";
2
- export { JoistValueEvent } from "./templating/events.js";
@@ -1,3 +0,0 @@
1
- export { bind } from "./templating/bind.js";
2
- export { JoistValueEvent } from "./templating/events.js";
3
- //# sourceMappingURL=templating.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templating.js","sourceRoot":"","sources":["../../src/lib/templating.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}