@joist/element 4.0.0-next.31 → 4.0.0-next.32

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.31",
3
+ "version": "4.0.0-next.32",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -0,0 +1,34 @@
1
+ import { assert } from 'chai';
2
+
3
+ import { attrChanged } from './attr-changed.js';
4
+ import { attr } from './attr.js';
5
+ import { element } from './element.js';
6
+
7
+ it('should call specific attrbute callback', () => {
8
+ let args: string[] = [];
9
+
10
+ @element({
11
+ tagName: 'attr-changed-1'
12
+ })
13
+ class MyElement extends HTMLElement {
14
+ @attr()
15
+ accessor test = 'hello';
16
+
17
+ @attrChanged('test')
18
+ onTestChanged(oldValue: string, newValue: string) {
19
+ args = [oldValue, newValue];
20
+ }
21
+ }
22
+
23
+ const el = new MyElement();
24
+
25
+ document.body.append(el);
26
+
27
+ assert.deepEqual(args, [null, 'hello']);
28
+
29
+ el.setAttribute('test', 'world');
30
+
31
+ assert.deepEqual(args, ['hello', 'world']);
32
+
33
+ el.remove();
34
+ });
@@ -0,0 +1,15 @@
1
+ import { metadataStore } from './metadata.js';
2
+
3
+ export function attrChanged(name: string) {
4
+ return function attrChangedDecorator<This extends HTMLElement>(
5
+ cb: Function,
6
+ ctx: ClassMethodDecoratorContext<This>
7
+ ) {
8
+ const meta = metadataStore.read(ctx.metadata);
9
+ const val = meta.attrChanges.get(name) ?? new Set();
10
+
11
+ val.add(cb);
12
+
13
+ meta.attrChanges.set(name, val);
14
+ };
15
+ }
@@ -168,3 +168,24 @@ it('non reflective attributes should still read new attribute values', async ()
168
168
 
169
169
  expect(el.value).to.equal('bar');
170
170
  });
171
+
172
+ it('should allow a manually defined attribute name', async () => {
173
+ @element({
174
+ tagName: 'attr-test-7'
175
+ })
176
+ class MyElement extends HTMLElement {
177
+ @attr({
178
+ name: 'aria-label'
179
+ })
180
+ accessor value = '';
181
+ }
182
+
183
+ const el = new MyElement();
184
+ el.setAttribute('aria-label', 'TEST');
185
+
186
+ document.body.append(el);
187
+
188
+ expect(el.value).to.equal('TEST');
189
+
190
+ el.remove();
191
+ });
package/src/lib/attr.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { metadataStore } from './metadata.js';
2
2
 
3
3
  export interface AttrOpts {
4
+ name?: string;
4
5
  observed?: boolean;
5
6
  reflect?: boolean;
6
7
  }
@@ -10,8 +11,8 @@ export function attr(opts?: AttrOpts) {
10
11
  { get, set }: ClassAccessorDecoratorTarget<This, unknown>,
11
12
  ctx: ClassAccessorDecoratorContext<This>
12
13
  ): ClassAccessorDecoratorResult<This, any> {
13
- const attrName = parseAttrName(ctx.name);
14
- const meta = metadataStore.read(ctx.metadata);
14
+ const attrName = opts?.name ?? parseAttrName(ctx.name);
15
+ const meta = metadataStore.read<This>(ctx.metadata);
15
16
  const reflect = opts?.reflect ?? true;
16
17
 
17
18
  meta.attrs.set(attrName, {
@@ -26,11 +27,19 @@ export function attr(opts?: AttrOpts) {
26
27
  set(value: unknown) {
27
28
  if (reflect) {
28
29
  if (value === true) {
29
- this.setAttribute(attrName, '');
30
+ if (!this.hasAttribute(attrName)) {
31
+ this.setAttribute(attrName, '');
32
+ }
30
33
  } else if (value === false) {
31
- this.removeAttribute(attrName);
34
+ if (this.hasAttribute(attrName)) {
35
+ this.removeAttribute(attrName);
36
+ }
32
37
  } else {
33
- this.setAttribute(attrName, String(value));
38
+ const strValue = String(value);
39
+
40
+ if (this.getAttribute(attrName) !== strValue) {
41
+ this.setAttribute(attrName, strValue);
42
+ }
34
43
  }
35
44
  }
36
45
 
@@ -25,13 +25,7 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
25
25
 
26
26
  const def = {
27
27
  [Base.name]: class extends Base {
28
- static observedAttributes: string[] = [];
29
-
30
- static {
31
- for (let [attrName] of meta.attrs) {
32
- this.observedAttributes.push(attrName);
33
- }
34
- }
28
+ static observedAttributes: string[] = Array.from(meta.attrs.keys());
35
29
 
36
30
  constructor(...args: any[]) {
37
31
  super(...args);
@@ -73,6 +67,7 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
73
67
 
74
68
  attributeChangedCallback(name: string, oldValue: string, newValue: string) {
75
69
  const attr = meta.attrs.get(name);
70
+ const cbs = meta.attrChanges.get(name);
76
71
 
77
72
  if (attr) {
78
73
  if (oldValue !== newValue) {
@@ -90,11 +85,15 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
90
85
  }
91
86
  }
92
87
 
93
- if (attr.observe) {
94
- if (super.attributeChangedCallback) {
95
- super.attributeChangedCallback(name, oldValue, newValue);
88
+ if (cbs) {
89
+ for (let cb of cbs) {
90
+ cb.call(this, oldValue, newValue);
96
91
  }
97
92
  }
93
+
94
+ if (super.attributeChangedCallback) {
95
+ super.attributeChangedCallback(name, oldValue, newValue);
96
+ }
98
97
  }
99
98
  }
100
99
  }
@@ -114,11 +113,17 @@ function reflectAttributeValues<T extends HTMLElement>(el: T, attrs: AttrMetadat
114
113
  if (typeof value === 'boolean') {
115
114
  if (value === true) {
116
115
  // set boolean attribute
117
- el.setAttribute(attrName, '');
116
+ if (!el.hasAttribute(attrName)) {
117
+ el.setAttribute(attrName, '');
118
+ }
118
119
  }
119
120
  } else {
120
121
  // set key/value attribute
121
- el.setAttribute(attrName, String(value));
122
+ const strValue = String(value);
123
+
124
+ if (el.getAttribute(attrName) !== strValue) {
125
+ el.setAttribute(attrName, strValue);
126
+ }
122
127
  }
123
128
  }
124
129
  }
@@ -17,9 +17,11 @@ export interface Listener<T> {
17
17
  }
18
18
 
19
19
  export class AttrMetadata extends Map<string, AttrDef> {}
20
+ export class AttrChangeMetadata extends Map<string, Set<Function>> {}
20
21
 
21
22
  export class ElementMetadata<T> {
22
23
  attrs = new AttrMetadata();
24
+ attrChanges = new AttrChangeMetadata();
23
25
  listeners: Listener<T>[] = [];
24
26
  onReady = new Set<Function>();
25
27
  }
package/src/lib.ts CHANGED
@@ -4,3 +4,4 @@ export { listen } from './lib/listen.js';
4
4
  export { element } from './lib/element.js';
5
5
  export { query } from './lib/query.js';
6
6
  export { ready } from './lib/lifecycle.js';
7
+ export { attrChanged } from './lib/attr-changed.js';
@@ -0,0 +1 @@
1
+ export declare function attrChanged(name: string): <This extends HTMLElement>(cb: Function, ctx: ClassMethodDecoratorContext<This>) => void;
@@ -0,0 +1,10 @@
1
+ import { metadataStore } from './metadata.js';
2
+ export function attrChanged(name) {
3
+ return function attrChangedDecorator(cb, ctx) {
4
+ const meta = metadataStore.read(ctx.metadata);
5
+ const val = meta.attrChanges.get(name) ?? new Set();
6
+ val.add(cb);
7
+ meta.attrChanges.set(name, val);
8
+ };
9
+ }
10
+ //# sourceMappingURL=attr-changed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attr-changed.js","sourceRoot":"","sources":["../../src/lib/attr-changed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,oBAAoB,CAClC,EAAY,EACZ,GAAsC;QAEtC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAEpD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { assert } from 'chai';
3
+ import { attrChanged } from './attr-changed.js';
4
+ import { attr } from './attr.js';
5
+ import { element } from './element.js';
6
+ it('should call specific attrbute callback', () => {
7
+ let args = [];
8
+ let MyElement = (() => {
9
+ let _classDecorators = [element({
10
+ tagName: 'attr-changed-1'
11
+ })];
12
+ let _classDescriptor;
13
+ let _classExtraInitializers = [];
14
+ let _classThis;
15
+ let _classSuper = HTMLElement;
16
+ let _instanceExtraInitializers = [];
17
+ let _test_decorators;
18
+ let _test_initializers = [];
19
+ let _test_extraInitializers = [];
20
+ let _onTestChanged_decorators;
21
+ var MyElement = class extends _classSuper {
22
+ static { _classThis = this; }
23
+ static {
24
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
25
+ _test_decorators = [attr()];
26
+ _onTestChanged_decorators = [attrChanged('test')];
27
+ __esDecorate(this, null, _test_decorators, { kind: "accessor", name: "test", static: false, private: false, access: { has: obj => "test" in obj, get: obj => obj.test, set: (obj, value) => { obj.test = value; } }, metadata: _metadata }, _test_initializers, _test_extraInitializers);
28
+ __esDecorate(this, null, _onTestChanged_decorators, { kind: "method", name: "onTestChanged", static: false, private: false, access: { has: obj => "onTestChanged" in obj, get: obj => obj.onTestChanged }, metadata: _metadata }, null, _instanceExtraInitializers);
29
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
30
+ MyElement = _classThis = _classDescriptor.value;
31
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
32
+ __runInitializers(_classThis, _classExtraInitializers);
33
+ }
34
+ #test_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _test_initializers, 'hello'));
35
+ get test() { return this.#test_accessor_storage; }
36
+ set test(value) { this.#test_accessor_storage = value; }
37
+ onTestChanged(oldValue, newValue) {
38
+ args = [oldValue, newValue];
39
+ }
40
+ constructor() {
41
+ super(...arguments);
42
+ __runInitializers(this, _test_extraInitializers);
43
+ }
44
+ };
45
+ return MyElement = _classThis;
46
+ })();
47
+ const el = new MyElement();
48
+ document.body.append(el);
49
+ assert.deepEqual(args, [null, 'hello']);
50
+ el.setAttribute('test', 'world');
51
+ assert.deepEqual(args, ['hello', 'world']);
52
+ el.remove();
53
+ });
54
+ //# sourceMappingURL=attr-changed.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attr-changed.test.js","sourceRoot":"","sources":["../../src/lib/attr-changed.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAChD,IAAI,IAAI,GAAa,EAAE,CAAC;QAKlB,SAAS;gCAHd,OAAO,CAAC;gBACP,OAAO,EAAE,gBAAgB;aAC1B,CAAC;;;;0BACsB,WAAW;;;;;;6BAAnB,SAAQ,WAAW;;;;oCAChC,IAAI,EAAE;6CAGN,WAAW,CAAC,MAAM,CAAC;gBAFpB,iKAAS,IAAI,6BAAJ,IAAI,mFAAW;gBAGxB,0LAAA,aAAa,6DAEZ;gBAPH,6KAQC;;;gBARK,uDAAS;;YAEb,0BAFI,mDAAS,8CAEG,OAAO,GAAC;YAAxB,IAAS,IAAI,0CAAW;YAAxB,IAAS,IAAI,gDAAW;YAGxB,aAAa,CAAC,QAAgB,EAAE,QAAgB;gBAC9C,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9B,CAAC;;;;;;;;IAGH,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAExC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3C,EAAE,CAAC,MAAM,EAAE,CAAC;AACd,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export interface AttrOpts {
2
+ name?: string;
2
3
  observed?: boolean;
3
4
  reflect?: boolean;
4
5
  }
@@ -1,7 +1,7 @@
1
1
  import { metadataStore } from './metadata.js';
2
2
  export function attr(opts) {
3
3
  return function attrDecorator({ get, set }, ctx) {
4
- const attrName = parseAttrName(ctx.name);
4
+ const attrName = opts?.name ?? parseAttrName(ctx.name);
5
5
  const meta = metadataStore.read(ctx.metadata);
6
6
  const reflect = opts?.reflect ?? true;
7
7
  meta.attrs.set(attrName, {
@@ -15,13 +15,20 @@ export function attr(opts) {
15
15
  set(value) {
16
16
  if (reflect) {
17
17
  if (value === true) {
18
- this.setAttribute(attrName, '');
18
+ if (!this.hasAttribute(attrName)) {
19
+ this.setAttribute(attrName, '');
20
+ }
19
21
  }
20
22
  else if (value === false) {
21
- this.removeAttribute(attrName);
23
+ if (this.hasAttribute(attrName)) {
24
+ this.removeAttribute(attrName);
25
+ }
22
26
  }
23
27
  else {
24
- this.setAttribute(attrName, String(value));
28
+ const strValue = String(value);
29
+ if (this.getAttribute(attrName) !== strValue) {
30
+ this.setAttribute(attrName, strValue);
31
+ }
25
32
  }
26
33
  }
27
34
  set.call(this, value);
@@ -1 +1 @@
1
- {"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,MAAM,UAAU,IAAI,CAAC,IAAe;IAClC,OAAO,SAAS,aAAa,CAC3B,EAAE,GAAG,EAAE,GAAG,EAA+C,EACzD,GAAwC;QAExC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,GAAG,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;YAC/B,OAAO;YACP,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,CAAC,KAAc;gBAChB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAClC,CAAC;yBAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC3B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAoB;IACzC,IAAI,KAAa,CAAC;IAElB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ9C,MAAM,UAAU,IAAI,CAAC,IAAe;IAClC,OAAO,SAAS,aAAa,CAC3B,EAAE,GAAG,EAAE,GAAG,EAA+C,EACzD,GAAwC;QAExC,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,GAAG,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;YAC/B,OAAO;YACP,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,CAAC,KAAc;gBAChB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAChC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBAE/B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAoB;IACzC,IAAI,KAAa,CAAC;IAElB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC"}
@@ -362,4 +362,45 @@ it('non reflective attributes should still read new attribute values', async ()
362
362
  el.setAttribute('value', 'bar');
363
363
  expect(el.value).to.equal('bar');
364
364
  });
365
+ it('should allow a manually defined attribute name', async () => {
366
+ let MyElement = (() => {
367
+ let _classDecorators = [element({
368
+ tagName: 'attr-test-7'
369
+ })];
370
+ let _classDescriptor;
371
+ let _classExtraInitializers = [];
372
+ let _classThis;
373
+ let _classSuper = HTMLElement;
374
+ let _value_decorators;
375
+ let _value_initializers = [];
376
+ let _value_extraInitializers = [];
377
+ var MyElement = class extends _classSuper {
378
+ static { _classThis = this; }
379
+ static {
380
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
381
+ _value_decorators = [attr({
382
+ name: 'aria-label'
383
+ })];
384
+ __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);
385
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
386
+ MyElement = _classThis = _classDescriptor.value;
387
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
388
+ __runInitializers(_classThis, _classExtraInitializers);
389
+ }
390
+ #value_accessor_storage = __runInitializers(this, _value_initializers, '');
391
+ get value() { return this.#value_accessor_storage; }
392
+ set value(value) { this.#value_accessor_storage = value; }
393
+ constructor() {
394
+ super(...arguments);
395
+ __runInitializers(this, _value_extraInitializers);
396
+ }
397
+ };
398
+ return MyElement = _classThis;
399
+ })();
400
+ const el = new MyElement();
401
+ el.setAttribute('aria-label', 'TEST');
402
+ document.body.append(el);
403
+ expect(el.value).to.equal('TEST');
404
+ el.remove();
405
+ });
365
406
  //# sourceMappingURL=attr.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,7 @@ export function element(opts) {
11
11
  });
12
12
  const def = {
13
13
  [Base.name]: class extends Base {
14
- static observedAttributes = [];
15
- static {
16
- for (let [attrName] of meta.attrs) {
17
- this.observedAttributes.push(attrName);
18
- }
19
- }
14
+ static observedAttributes = Array.from(meta.attrs.keys());
20
15
  constructor(...args) {
21
16
  super(...args);
22
17
  if (opts?.shadowDom) {
@@ -50,6 +45,7 @@ export function element(opts) {
50
45
  }
51
46
  attributeChangedCallback(name, oldValue, newValue) {
52
47
  const attr = meta.attrs.get(name);
48
+ const cbs = meta.attrChanges.get(name);
53
49
  if (attr) {
54
50
  if (oldValue !== newValue) {
55
51
  const ogValue = attr.getPropValue.call(this);
@@ -63,11 +59,14 @@ export function element(opts) {
63
59
  attr.setPropValue.call(this, newValue);
64
60
  }
65
61
  }
66
- if (attr.observe) {
67
- if (super.attributeChangedCallback) {
68
- super.attributeChangedCallback(name, oldValue, newValue);
62
+ if (cbs) {
63
+ for (let cb of cbs) {
64
+ cb.call(this, oldValue, newValue);
69
65
  }
70
66
  }
67
+ if (super.attributeChangedCallback) {
68
+ super.attributeChangedCallback(name, oldValue, newValue);
69
+ }
71
70
  }
72
71
  }
73
72
  }
@@ -82,11 +81,16 @@ function reflectAttributeValues(el, attrs) {
82
81
  if (value !== null && value !== undefined && value !== '') {
83
82
  if (typeof value === 'boolean') {
84
83
  if (value === true) {
85
- el.setAttribute(attrName, '');
84
+ if (!el.hasAttribute(attrName)) {
85
+ el.setAttribute(attrName, '');
86
+ }
86
87
  }
87
88
  }
88
89
  else {
89
- el.setAttribute(attrName, String(value));
90
+ const strValue = String(value);
91
+ if (el.getAttribute(attrName) !== strValue) {
92
+ el.setAttribute(attrName, strValue);
93
+ }
90
94
  }
91
95
  }
92
96
  }
@@ -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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"}
@@ -13,8 +13,11 @@ export interface Listener<T> {
13
13
  }
14
14
  export declare class AttrMetadata extends Map<string, AttrDef> {
15
15
  }
16
+ export declare class AttrChangeMetadata extends Map<string, Set<Function>> {
17
+ }
16
18
  export declare class ElementMetadata<T> {
17
19
  attrs: AttrMetadata;
20
+ attrChanges: AttrChangeMetadata;
18
21
  listeners: Listener<T>[];
19
22
  onReady: Set<Function>;
20
23
  }
@@ -1,8 +1,11 @@
1
1
  Symbol.metadata ??= Symbol('Symbol.metadata');
2
2
  export class AttrMetadata extends Map {
3
3
  }
4
+ export class AttrChangeMetadata extends Map {
5
+ }
4
6
  export class ElementMetadata {
5
7
  attrs = new AttrMetadata();
8
+ attrChanges = new AttrChangeMetadata();
6
9
  listeners = [];
7
10
  onReady = new Set();
8
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAkBvD,MAAM,OAAO,YAAa,SAAQ,GAAoB;CAAG;AAEzD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IAC3B,SAAS,GAAkB,EAAE,CAAC;IAC9B,OAAO,GAAG,IAAI,GAAG,EAAY,CAAC;CAC/B;AAED,MAAM,OAAO,aAAc,SAAQ,OAAyC;IAC1E,IAAI,CAAI,KAAa;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAkBvD,MAAM,OAAO,YAAa,SAAQ,GAAoB;CAAG;AACzD,MAAM,OAAO,kBAAmB,SAAQ,GAA0B;CAAG;AAErE,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IAC3B,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACvC,SAAS,GAAkB,EAAE,CAAC;IAC9B,OAAO,GAAG,IAAI,GAAG,EAAY,CAAC;CAC/B;AAED,MAAM,OAAO,aAAc,SAAQ,OAAyC;IAC1E,IAAI,CAAI,KAAa;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
package/target/lib.d.ts CHANGED
@@ -4,3 +4,4 @@ export { listen } from './lib/listen.js';
4
4
  export { element } from './lib/element.js';
5
5
  export { query } from './lib/query.js';
6
6
  export { ready } from './lib/lifecycle.js';
7
+ export { attrChanged } from './lib/attr-changed.js';
package/target/lib.js CHANGED
@@ -4,4 +4,5 @@ export { listen } from './lib/listen.js';
4
4
  export { element } from './lib/element.js';
5
5
  export { query } from './lib/query.js';
6
6
  export { ready } from './lib/lifecycle.js';
7
+ export { attrChanged } from './lib/attr-changed.js';
7
8
  //# sourceMappingURL=lib.js.map
package/target/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}