@joist/element 4.0.0-next.26 → 4.0.0-next.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/element",
3
- "version": "4.0.0-next.26",
3
+ "version": "4.0.0-next.27",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -23,78 +23,82 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
23
23
  }
24
24
  });
25
25
 
26
- return class JoistElement extends Base {
27
- static observedAttributes: string[] = [];
28
-
29
- static {
30
- for (let [attrName, { observe }] of meta.attrs) {
31
- if (observe) {
32
- this.observedAttributes.push(attrName);
26
+ const def = {
27
+ [Base.name]: class extends Base {
28
+ static observedAttributes: string[] = [];
29
+
30
+ static {
31
+ for (let [attrName, { observe }] of meta.attrs) {
32
+ if (observe) {
33
+ this.observedAttributes.push(attrName);
34
+ }
33
35
  }
34
36
  }
35
- }
36
37
 
37
- constructor(...args: any[]) {
38
- super(...args);
38
+ constructor(...args: any[]) {
39
+ super(...args);
39
40
 
40
- if (opts?.shadowDom) {
41
- if (!this.shadowRoot) {
42
- this.attachShadow({ mode: opts.shadowDomMode ?? 'open' });
43
- }
41
+ if (opts?.shadowDom) {
42
+ if (!this.shadowRoot) {
43
+ this.attachShadow({ mode: opts.shadowDomMode ?? 'open' });
44
+ }
44
45
 
45
- for (let res of opts.shadowDom) {
46
- res.apply(this);
46
+ for (let res of opts.shadowDom) {
47
+ res.apply(this);
48
+ }
47
49
  }
48
- }
49
50
 
50
- for (let { event, cb, selector } of meta.listeners) {
51
- const root = selector(this);
51
+ for (let { event, cb, selector } of meta.listeners) {
52
+ const root = selector(this);
52
53
 
53
- if (root) {
54
- root.addEventListener(event, cb.bind(this));
55
- } else {
56
- throw new Error(`could not add listener to ${root}`);
54
+ if (root) {
55
+ root.addEventListener(event, cb.bind(this));
56
+ } else {
57
+ throw new Error(`could not add listener to ${root}`);
58
+ }
57
59
  }
58
- }
59
60
 
60
- for (let cb of meta.onReady) {
61
- cb.call(this);
61
+ for (let cb of meta.onReady) {
62
+ cb.call(this);
63
+ }
62
64
  }
63
- }
64
65
 
65
- connectedCallback() {
66
- if (this.isConnected) {
67
- reflectAttributeValues(this, meta.attrs);
66
+ connectedCallback() {
67
+ if (this.isConnected) {
68
+ reflectAttributeValues(this, meta.attrs);
68
69
 
69
- if (super.connectedCallback) {
70
- super.connectedCallback();
70
+ if (super.connectedCallback) {
71
+ super.connectedCallback();
72
+ }
71
73
  }
72
74
  }
73
- }
74
75
 
75
- attributeChangedCallback(name: string, oldValue: string, newValue: string) {
76
- const attr = meta.attrs.get(name);
77
-
78
- if (attr && oldValue !== newValue) {
79
- const ogValue = attr.getPropValue.call(this);
80
-
81
- if (newValue === '') {
82
- // treat as boolean
83
- attr.setPropValue.call(this, true);
84
- } else if (typeof ogValue === 'number') {
85
- // treat as number
86
- attr.setPropValue.call(this, Number(newValue));
87
- } else {
88
- // treat as string
89
- attr.setPropValue.call(this, newValue);
76
+ attributeChangedCallback(name: string, oldValue: string, newValue: string) {
77
+ const attr = meta.attrs.get(name);
78
+
79
+ if (attr && oldValue !== newValue) {
80
+ const ogValue = attr.getPropValue.call(this);
81
+
82
+ if (newValue === '') {
83
+ // treat as boolean
84
+ attr.setPropValue.call(this, true);
85
+ } else if (typeof ogValue === 'number') {
86
+ // treat as number
87
+ attr.setPropValue.call(this, Number(newValue));
88
+ } else {
89
+ // treat as string
90
+ attr.setPropValue.call(this, newValue);
91
+ }
90
92
  }
91
- }
92
93
 
93
- if (super.attributeChangedCallback) {
94
- super.attributeChangedCallback(name, oldValue, newValue);
94
+ if (super.attributeChangedCallback) {
95
+ super.attributeChangedCallback(name, oldValue, newValue);
96
+ }
95
97
  }
96
98
  }
97
99
  };
100
+
101
+ return def[Base.name];
98
102
  };
99
103
  }
100
104
 
@@ -9,65 +9,68 @@ export function element(opts) {
9
9
  }
10
10
  }
11
11
  });
12
- return class JoistElement extends Base {
13
- static observedAttributes = [];
14
- static {
15
- for (let [attrName, { observe }] of meta.attrs) {
16
- if (observe) {
17
- this.observedAttributes.push(attrName);
12
+ const def = {
13
+ [Base.name]: class extends Base {
14
+ static observedAttributes = [];
15
+ static {
16
+ for (let [attrName, { observe }] of meta.attrs) {
17
+ if (observe) {
18
+ this.observedAttributes.push(attrName);
19
+ }
18
20
  }
19
21
  }
20
- }
21
- constructor(...args) {
22
- super(...args);
23
- if (opts?.shadowDom) {
24
- if (!this.shadowRoot) {
25
- this.attachShadow({ mode: opts.shadowDomMode ?? 'open' });
26
- }
27
- for (let res of opts.shadowDom) {
28
- res.apply(this);
22
+ constructor(...args) {
23
+ super(...args);
24
+ if (opts?.shadowDom) {
25
+ if (!this.shadowRoot) {
26
+ this.attachShadow({ mode: opts.shadowDomMode ?? 'open' });
27
+ }
28
+ for (let res of opts.shadowDom) {
29
+ res.apply(this);
30
+ }
29
31
  }
30
- }
31
- for (let { event, cb, selector } of meta.listeners) {
32
- const root = selector(this);
33
- if (root) {
34
- root.addEventListener(event, cb.bind(this));
32
+ for (let { event, cb, selector } of meta.listeners) {
33
+ const root = selector(this);
34
+ if (root) {
35
+ root.addEventListener(event, cb.bind(this));
36
+ }
37
+ else {
38
+ throw new Error(`could not add listener to ${root}`);
39
+ }
35
40
  }
36
- else {
37
- throw new Error(`could not add listener to ${root}`);
41
+ for (let cb of meta.onReady) {
42
+ cb.call(this);
38
43
  }
39
44
  }
40
- for (let cb of meta.onReady) {
41
- cb.call(this);
42
- }
43
- }
44
- connectedCallback() {
45
- if (this.isConnected) {
46
- reflectAttributeValues(this, meta.attrs);
47
- if (super.connectedCallback) {
48
- super.connectedCallback();
45
+ connectedCallback() {
46
+ if (this.isConnected) {
47
+ reflectAttributeValues(this, meta.attrs);
48
+ if (super.connectedCallback) {
49
+ super.connectedCallback();
50
+ }
49
51
  }
50
52
  }
51
- }
52
- attributeChangedCallback(name, oldValue, newValue) {
53
- const attr = meta.attrs.get(name);
54
- if (attr && oldValue !== newValue) {
55
- const ogValue = attr.getPropValue.call(this);
56
- if (newValue === '') {
57
- attr.setPropValue.call(this, true);
53
+ attributeChangedCallback(name, oldValue, newValue) {
54
+ const attr = meta.attrs.get(name);
55
+ if (attr && oldValue !== newValue) {
56
+ const ogValue = attr.getPropValue.call(this);
57
+ if (newValue === '') {
58
+ attr.setPropValue.call(this, true);
59
+ }
60
+ else if (typeof ogValue === 'number') {
61
+ attr.setPropValue.call(this, Number(newValue));
62
+ }
63
+ else {
64
+ attr.setPropValue.call(this, newValue);
65
+ }
58
66
  }
59
- else if (typeof ogValue === 'number') {
60
- attr.setPropValue.call(this, Number(newValue));
67
+ if (super.attributeChangedCallback) {
68
+ super.attributeChangedCallback(name, oldValue, newValue);
61
69
  }
62
- else {
63
- attr.setPropValue.call(this, newValue);
64
- }
65
- }
66
- if (super.attributeChangedCallback) {
67
- super.attributeChangedCallback(name, oldValue, newValue);
68
70
  }
69
71
  }
70
72
  };
73
+ return def[Base.name];
71
74
  };
72
75
  }
73
76
  function reflectAttributeValues(el, attrs) {
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}