@noctuatech/uswds 0.0.20 → 0.0.22

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 (41) hide show
  1. package/assets/uswds.min.js +1 -1
  2. package/package.json +5 -5
  3. package/src/lib/card/card.stories.ts +5 -5
  4. package/src/lib/config/config.element.ts +9 -10
  5. package/src/lib/icon/icon.element.ts +14 -28
  6. package/src/lib/input/input.element.ts +11 -12
  7. package/src/lib/input/input.stories.ts +1 -1
  8. package/src/lib/input-mask/input-mask.element.ts +4 -5
  9. package/src/lib/input-mask/input-mask.stories.ts +0 -1
  10. package/src/lib/input-mask/maskable.element.ts +1 -1
  11. package/src/lib/services/http.service.ts +8 -0
  12. package/src/lib/services/icon.service.test.ts +63 -0
  13. package/src/lib/services/icon.service.ts +47 -0
  14. package/target/lib/card/card.stories.js +5 -5
  15. package/target/lib/config/config.element.d.ts +3 -3
  16. package/target/lib/config/config.element.js +16 -8
  17. package/target/lib/config/config.element.js.map +1 -1
  18. package/target/lib/icon/icon.element.d.ts +1 -3
  19. package/target/lib/icon/icon.element.js +17 -21
  20. package/target/lib/icon/icon.element.js.map +1 -1
  21. package/target/lib/input/input.element.d.ts +2 -2
  22. package/target/lib/input/input.element.js +22 -10
  23. package/target/lib/input/input.element.js.map +1 -1
  24. package/target/lib/input/input.stories.js +1 -1
  25. package/target/lib/input-mask/input-mask.element.js +4 -4
  26. package/target/lib/input-mask/input-mask.element.js.map +1 -1
  27. package/target/lib/input-mask/input-mask.stories.js +0 -1
  28. package/target/lib/input-mask/input-mask.stories.js.map +1 -1
  29. package/target/lib/input-mask/maskable.element.d.ts +1 -1
  30. package/target/lib/services/http.service.d.ts +3 -0
  31. package/target/lib/services/http.service.js +24 -0
  32. package/target/lib/services/http.service.js.map +1 -0
  33. package/target/lib/services/icon.service.d.ts +4 -0
  34. package/target/lib/services/icon.service.js +54 -0
  35. package/target/lib/services/icon.service.js.map +1 -0
  36. package/target/lib/services/icon.service.test.js +52 -0
  37. package/target/lib/services/icon.service.test.js.map +1 -0
  38. package/src/lib/icon/icon-element.test.ts +0 -0
  39. package/target/lib/icon/icon-element.test.js +0 -2
  40. package/target/lib/icon/icon-element.test.js.map +0 -1
  41. /package/target/lib/{icon/icon-element.test.d.ts → services/icon.service.test.d.ts} +0 -0
@@ -0,0 +1,63 @@
1
+ import { Injector } from "@joist/di";
2
+ import { assert } from "@open-wc/testing";
3
+
4
+ import { HttpService } from "./http.service.js";
5
+ import { IconService } from "./icon.service.js";
6
+
7
+ describe("IconService", () => {
8
+ it("should fetch icon if not in cache", async () => {
9
+ let callCount = 0;
10
+
11
+ const app = new Injector({
12
+ providers: [
13
+ [
14
+ HttpService,
15
+ {
16
+ use: class extends HttpService {
17
+ async fetch(): Promise<Response> {
18
+ callCount++;
19
+ return new Response("<svg></svg>");
20
+ }
21
+ },
22
+ },
23
+ ],
24
+ ],
25
+ });
26
+
27
+ const icon = app.inject(IconService);
28
+
29
+ const res = await icon.getIcon("test");
30
+
31
+ assert.equal(res.nodeName, "svg");
32
+ assert.equal(callCount, 1);
33
+ });
34
+
35
+ it("should not fetch new icon if the icon is found in the cache", async () => {
36
+ let callCount = 0;
37
+
38
+ const app = new Injector({
39
+ providers: [
40
+ [
41
+ HttpService,
42
+ {
43
+ use: class extends HttpService {
44
+ async fetch(): Promise<Response> {
45
+ callCount++;
46
+ return new Response("<svg></svg>");
47
+ }
48
+ },
49
+ },
50
+ ],
51
+ ],
52
+ });
53
+
54
+ const icon = app.inject(IconService);
55
+
56
+ await icon.getIcon("test");
57
+
58
+ const res = await icon.getIcon("test");
59
+
60
+ assert.equal(res.nodeName, "svg");
61
+ assert.equal(callCount, 1);
62
+ });
63
+ });
@@ -0,0 +1,47 @@
1
+ import { inject, injectable } from "@joist/di";
2
+
3
+ import { HttpService } from "./http.service.js";
4
+ import { USAConfig } from "../config/config.element.js";
5
+
6
+ @injectable()
7
+ export class IconService {
8
+ #config = inject(USAConfig);
9
+ #http = inject(HttpService);
10
+ #iconCache: Map<string, Promise<HTMLTemplateElement>> = new Map();
11
+
12
+ async getIcon(icon: string): Promise<Node> {
13
+ const config = this.#config();
14
+ const http = this.#http();
15
+
16
+ const cached = this.#iconCache.get(icon);
17
+
18
+ if (cached) {
19
+ return cached.then((res) => {
20
+ return res.content.firstElementChild!.cloneNode(true);
21
+ });
22
+ }
23
+
24
+ const svg = http
25
+ .fetch(`${config.iconPath}${icon}.svg`)
26
+ .then((res) => {
27
+ switch (res.status) {
28
+ case 200:
29
+ return res.text();
30
+ }
31
+
32
+ return "";
33
+ })
34
+ .then((res) => {
35
+ const template = document.createElement("template");
36
+ template.innerHTML = res;
37
+
38
+ return template;
39
+ });
40
+
41
+ this.#iconCache.set(icon, svg);
42
+
43
+ return svg.then((res) => {
44
+ return res.content.firstElementChild!.cloneNode(true);
45
+ });
46
+ }
47
+ }
@@ -27,7 +27,7 @@ export const Primary = {
27
27
 
28
28
  <usa-card>
29
29
  <usa-card-media>
30
- <img src="/img/built-to-grow--alt.jpg" alt="A placeholder image" />
30
+ <img src="./img/built-to-grow--alt.jpg" alt="A placeholder image" />
31
31
  </usa-card-media>
32
32
 
33
33
  <usa-card-header>Card with media</usa-card-header>
@@ -46,7 +46,7 @@ export const Primary = {
46
46
  <usa-card-header>Media with heaer first</usa-card-header>
47
47
 
48
48
  <usa-card-media>
49
- <img src="/img/built-to-grow--alt.jpg" alt="A placeholder image" />
49
+ <img src="./img/built-to-grow--alt.jpg" alt="A placeholder image" />
50
50
  </usa-card-media>
51
51
 
52
52
  <usa-card-body>
@@ -61,7 +61,7 @@ export const Primary = {
61
61
 
62
62
  <usa-card>
63
63
  <usa-card-media variant="inset">
64
- <img src="/img/built-to-grow--alt.jpg" alt="A placeholder image" />
64
+ <img src="./img/built-to-grow--alt.jpg" alt="A placeholder image" />
65
65
  </usa-card-media>
66
66
 
67
67
  <usa-card-header>Inset media</usa-card-header>
@@ -88,7 +88,7 @@ export const Flag = {
88
88
  <usa-card-group variant="flag">
89
89
  <usa-card variant="flag">
90
90
  <usa-card-media>
91
- <img src="/img/built-to-grow--alt.jpg" alt="A placeholder image" />
91
+ <img src="./img/built-to-grow--alt.jpg" alt="A placeholder image" />
92
92
  </usa-card-media>
93
93
 
94
94
  <usa-card-header>Card with media</usa-card-header>
@@ -105,7 +105,7 @@ export const Flag = {
105
105
 
106
106
  <usa-card variant="flag">
107
107
  <usa-card-media variant="inset">
108
- <img src="/img/built-to-grow--alt.jpg" alt="A placeholder image" />
108
+ <img src="./img/built-to-grow--alt.jpg" alt="A placeholder image" />
109
109
  </usa-card-media>
110
110
 
111
111
  <usa-card-header>Card with media</usa-card-header>
@@ -1,8 +1,8 @@
1
+ import { Injector } from "@joist/di";
1
2
  export declare class USAConfig {
2
3
  iconPath: string;
3
4
  }
4
- export declare class USAConfigElement extends HTMLElement implements USAConfig {
5
- #private;
5
+ export declare class USAConfigElement extends HTMLElement {
6
6
  accessor iconPath: string;
7
- connectedCallback(): void;
7
+ onInjectorCreated({ providers }: Injector): void;
8
8
  }
@@ -1,11 +1,13 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { inject, injectable, Injector } from "@joist/di";
2
+ import { created, injectable } from "@joist/di";
3
3
  import { attr, css, element, html } from "@joist/element";
4
4
  export class USAConfig {
5
5
  iconPath = "";
6
6
  }
7
7
  let USAConfigElement = (() => {
8
- let _classDecorators = [element({
8
+ let _classDecorators = [injectable({
9
+ name: "USAConfigElement",
10
+ }), element({
9
11
  tagName: "usa-config",
10
12
  shadowDom: [
11
13
  css `
@@ -15,14 +17,16 @@ let USAConfigElement = (() => {
15
17
  `,
16
18
  html `<slot></slot>`,
17
19
  ],
18
- }), injectable()];
20
+ })];
19
21
  let _classDescriptor;
20
22
  let _classExtraInitializers = [];
21
23
  let _classThis;
22
24
  let _classSuper = HTMLElement;
25
+ let _instanceExtraInitializers = [];
23
26
  let _iconPath_decorators;
24
27
  let _iconPath_initializers = [];
25
28
  let _iconPath_extraInitializers = [];
29
+ let _onInjectorCreated_decorators;
26
30
  var USAConfigElement = class extends _classSuper {
27
31
  static { _classThis = this; }
28
32
  static {
@@ -30,19 +34,23 @@ let USAConfigElement = (() => {
30
34
  _iconPath_decorators = [attr({
31
35
  name: "icon-path",
32
36
  })];
37
+ _onInjectorCreated_decorators = [created()];
33
38
  __esDecorate(this, null, _iconPath_decorators, { kind: "accessor", name: "iconPath", static: false, private: false, access: { has: obj => "iconPath" in obj, get: obj => obj.iconPath, set: (obj, value) => { obj.iconPath = value; } }, metadata: _metadata }, _iconPath_initializers, _iconPath_extraInitializers);
39
+ __esDecorate(this, null, _onInjectorCreated_decorators, { kind: "method", name: "onInjectorCreated", static: false, private: false, access: { has: obj => "onInjectorCreated" in obj, get: obj => obj.onInjectorCreated }, metadata: _metadata }, null, _instanceExtraInitializers);
34
40
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
35
41
  USAConfigElement = _classThis = _classDescriptor.value;
36
42
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
37
43
  __runInitializers(_classThis, _classExtraInitializers);
38
44
  }
39
- #iconPath_accessor_storage = __runInitializers(this, _iconPath_initializers, "/assets/usa-icons/");
45
+ #iconPath_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _iconPath_initializers, "/assets/usa-icons/"));
40
46
  get iconPath() { return this.#iconPath_accessor_storage; }
41
47
  set iconPath(value) { this.#iconPath_accessor_storage = value; }
42
- #injector = (__runInitializers(this, _iconPath_extraInitializers), inject(Injector));
43
- connectedCallback() {
44
- const { providers } = this.#injector();
45
- providers.push({ provide: USAConfig, factory: () => this });
48
+ onInjectorCreated({ providers }) {
49
+ providers.set(USAConfig, { factory: () => this });
50
+ }
51
+ constructor() {
52
+ super(...arguments);
53
+ __runInitializers(this, _iconPath_extraInitializers);
46
54
  }
47
55
  };
48
56
  return USAConfigElement = _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"config.element.js","sourceRoot":"","sources":["../../../src/lib/config/config.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,OAAO,SAAS;IACpB,QAAQ,GAAG,EAAE,CAAC;CACf;IAcY,gBAAgB;4BAZ5B,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;KAIF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC,EACD,UAAU,EAAE;;;;sBACyB,WAAW;;;;gCAAnB,SAAQ,WAAW;;;;oCAC9C,IAAI,CAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB,CAAC;YACF,6KAAS,QAAQ,6BAAR,QAAQ,2FAAwB;YAJ3C,6KAaC;;;YAbY,uDAAgB;;QAI3B,6EAAoB,oBAAoB,EAAC;QAAzC,IAAS,QAAQ,8CAAwB;QAAzC,IAAS,QAAQ,oDAAwB;QAEzC,SAAS,0DAAG,MAAM,CAAC,QAAQ,CAAC,EAAC;QAE7B,iBAAiB;YACf,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAEvC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;;;;SAZU,gBAAgB"}
1
+ {"version":3,"file":"config.element.js","sourceRoot":"","sources":["../../../src/lib/config/config.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAY,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,OAAO,SAAS;IACpB,QAAQ,GAAW,EAAE,CAAC;CACvB;IAgBY,gBAAgB;4BAd5B,UAAU,CAAC;YACV,IAAI,EAAE,kBAAkB;SACzB,CAAC,EACD,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;KAIF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBACoC,WAAW;;;;;;gCAAnB,SAAQ,WAAW;;;;oCAC9C,IAAI,CAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB,CAAC;6CAGD,OAAO,EAAE;YAFV,6KAAS,QAAQ,6BAAR,QAAQ,2FAAwB;YAGzC,sMAAA,iBAAiB,6DAEhB;YATH,6KAUC;;;YAVY,uDAAgB;;QAI3B,8BAJW,mDAAgB,kDAIP,oBAAoB,GAAC;QAAzC,IAAS,QAAQ,8CAAwB;QAAzC,IAAS,QAAQ,oDAAwB;QAGzC,iBAAiB,CAAC,EAAE,SAAS,EAAY;YACvC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;;;;;;;;SATU,gBAAgB"}
@@ -4,12 +4,10 @@ declare global {
4
4
  "usa-icon": USAIconElement;
5
5
  }
6
6
  }
7
- export declare const ICON_CACHE: Map<string, Promise<string>>;
8
7
  export declare class USAIconElement extends HTMLElement {
9
8
  #private;
10
9
  accessor icon: USAIcon;
11
10
  ariaHidden: string | null;
12
- connectedCallback(): void;
11
+ onInjected(): void;
13
12
  attributeChangedCallback(): void;
14
- fetchIcon(): Promise<string>;
15
13
  }
@@ -1,8 +1,7 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { attr, css, element } from "@joist/element";
3
- import { inject, injectable } from "@joist/di";
4
- import { USAConfig } from "../config/config.element.js";
5
- export const ICON_CACHE = new Map();
3
+ import { inject, injectable, injected } from "@joist/di";
4
+ import { IconService } from "../services/icon.service.js";
6
5
  let USAIconElement = (() => {
7
6
  let _classDecorators = [element({
8
7
  tagName: "usa-icon",
@@ -27,48 +26,45 @@ let USAIconElement = (() => {
27
26
  let _classExtraInitializers = [];
28
27
  let _classThis;
29
28
  let _classSuper = HTMLElement;
29
+ let _instanceExtraInitializers = [];
30
30
  let _icon_decorators;
31
31
  let _icon_initializers = [];
32
32
  let _icon_extraInitializers = [];
33
+ let _onInjected_decorators;
33
34
  var USAIconElement = class extends _classSuper {
34
35
  static { _classThis = this; }
35
36
  static {
36
37
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
37
38
  _icon_decorators = [attr()];
39
+ _onInjected_decorators = [injected()];
38
40
  __esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
41
+ __esDecorate(this, null, _onInjected_decorators, { kind: "method", name: "onInjected", static: false, private: false, access: { has: obj => "onInjected" in obj, get: obj => obj.onInjected }, metadata: _metadata }, null, _instanceExtraInitializers);
39
42
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
40
43
  USAIconElement = _classThis = _classDescriptor.value;
41
44
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
42
45
  __runInitializers(_classThis, _classExtraInitializers);
43
46
  }
44
- #icon_accessor_storage = __runInitializers(this, _icon_initializers, "accessibility_new");
47
+ #icon_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _icon_initializers, "accessibility_new"));
45
48
  get icon() { return this.#icon_accessor_storage; }
46
49
  set icon(value) { this.#icon_accessor_storage = value; }
47
50
  ariaHidden = (__runInitializers(this, _icon_extraInitializers), "true");
48
- #shadow = this.attachShadow({ mode: "open" });
49
- #config = inject(USAConfig);
50
- #connected = false;
51
- connectedCallback() {
52
- this.#connected = true;
51
+ #icon = inject(IconService);
52
+ #injected = false;
53
+ get #shadow() {
54
+ return this.shadowRoot;
55
+ }
56
+ onInjected() {
57
+ this.#injected = true;
53
58
  this.#updateIcon();
54
59
  }
55
60
  attributeChangedCallback() {
56
- if (this.#connected) {
61
+ if (this.#injected) {
57
62
  this.#updateIcon();
58
63
  }
59
64
  }
60
65
  async #updateIcon() {
61
- this.#shadow.innerHTML = await this.fetchIcon();
62
- }
63
- async fetchIcon() {
64
- const cached = ICON_CACHE.get(this.icon);
65
- if (cached) {
66
- return cached;
67
- }
68
- const config = this.#config();
69
- const svg = fetch(`${config.iconPath}/${this.icon}.svg`).then((res) => res.text());
70
- ICON_CACHE.set(this.icon, svg);
71
- return svg;
66
+ const icon = this.#icon();
67
+ this.#shadow.append(await icon.getIcon(this.icon));
72
68
  }
73
69
  };
74
70
  return USAIconElement = _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"icon.element.js","sourceRoot":"","sources":["../../../src/lib/icon/icon.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAQxD,MAAM,CAAC,MAAM,UAAU,GAAiC,IAAI,GAAG,EAAE,CAAC;IAsBrD,cAAc;4BApB1B,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;KAaF;aACF;SACF,CAAC,EACD,UAAU,EAAE;;;;sBACuB,WAAW;;;;8BAAnB,SAAQ,WAAW;;;;gCAC5C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAgC;YAF/C,6KA0CC;;;YA1CY,uDAAc;;QAEzB,qEAAyB,mBAAmB,EAAC;QAA7C,IAAS,IAAI,0CAAgC;QAA7C,IAAS,IAAI,gDAAgC;QAE7C,UAAU,sDAAkB,MAAM,EAAC;QAEnC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5B,UAAU,GAAG,KAAK,CAAC;QAEnB,iBAAiB;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,wBAAwB;YACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YACf,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,SAAS;YACb,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAE9B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACpE,GAAG,CAAC,IAAI,EAAE,CACX,CAAC;YAEF,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE/B,OAAO,GAAG,CAAC;QACb,CAAC;;;;SAzCU,cAAc"}
1
+ {"version":3,"file":"icon.element.js","sourceRoot":"","sources":["../../../src/lib/icon/icon.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;IA4B7C,cAAc;4BApB1B,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;KAaF;aACF;SACF,CAAC,EACD,UAAU,EAAE;;;;sBACuB,WAAW;;;;;;8BAAnB,SAAQ,WAAW;;;;gCAC5C,IAAI,EAAE;sCAYN,QAAQ,EAAE;YAXX,iKAAS,IAAI,6BAAJ,IAAI,mFAAgC;YAY7C,iLAAA,UAAU,6DAGT;YAjBH,6KA8BC;;;YA9BY,uDAAc;;QAEzB,0BAFW,mDAAc,8CAEA,mBAAmB,GAAC;QAA7C,IAAS,IAAI,0CAAgC;QAA7C,IAAS,IAAI,gDAAgC;QAE7C,UAAU,sDAAkB,MAAM,EAAC;QAEnC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,SAAS,GAAG,KAAK,CAAC;QAElB,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,UAAW,CAAC;QAC1B,CAAC;QAGD,UAAU;YACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,wBAAwB;YACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;;;;SA7BU,cAAc"}
@@ -11,8 +11,8 @@ export declare class USATextInputElement extends HTMLElement implements Maskable
11
11
  accessor autocomplete: AutoFill;
12
12
  accessor placeholder: string;
13
13
  accessor value: string;
14
- get selectionStart(): number | null;
15
- setSelectionRange(start: number, end: number): void;
14
+ accessor selectionStart: number | null;
15
+ accessor selectionEnd: number | null;
16
16
  onReady(): void;
17
17
  onChange(): void;
18
18
  onInputChange(): void;
@@ -69,6 +69,12 @@ let USATextInputElement = (() => {
69
69
  let _value_decorators;
70
70
  let _value_initializers = [];
71
71
  let _value_extraInitializers = [];
72
+ let _selectionStart_decorators;
73
+ let _selectionStart_initializers = [];
74
+ let _selectionStart_extraInitializers = [];
75
+ let _selectionEnd_decorators;
76
+ let _selectionEnd_initializers = [];
77
+ let _selectionEnd_extraInitializers = [];
72
78
  let _onReady_decorators;
73
79
  let _onChange_decorators;
74
80
  let _onInputChange_decorators;
@@ -82,6 +88,8 @@ let USATextInputElement = (() => {
82
88
  _value_decorators = [attr({
83
89
  reflect: false,
84
90
  }), observe()];
91
+ _selectionStart_decorators = [observe()];
92
+ _selectionEnd_decorators = [observe()];
85
93
  _onReady_decorators = [ready()];
86
94
  _onChange_decorators = [effect()];
87
95
  _onInputChange_decorators = [listen("input")];
@@ -89,6 +97,8 @@ let USATextInputElement = (() => {
89
97
  __esDecorate(this, null, _autocomplete_decorators, { kind: "accessor", name: "autocomplete", static: false, private: false, access: { has: obj => "autocomplete" in obj, get: obj => obj.autocomplete, set: (obj, value) => { obj.autocomplete = value; } }, metadata: _metadata }, _autocomplete_initializers, _autocomplete_extraInitializers);
90
98
  __esDecorate(this, null, _placeholder_decorators, { kind: "accessor", name: "placeholder", static: false, private: false, access: { has: obj => "placeholder" in obj, get: obj => obj.placeholder, set: (obj, value) => { obj.placeholder = value; } }, metadata: _metadata }, _placeholder_initializers, _placeholder_extraInitializers);
91
99
  __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);
100
+ __esDecorate(this, null, _selectionStart_decorators, { kind: "accessor", name: "selectionStart", static: false, private: false, access: { has: obj => "selectionStart" in obj, get: obj => obj.selectionStart, set: (obj, value) => { obj.selectionStart = value; } }, metadata: _metadata }, _selectionStart_initializers, _selectionStart_extraInitializers);
101
+ __esDecorate(this, null, _selectionEnd_decorators, { kind: "accessor", name: "selectionEnd", static: false, private: false, access: { has: obj => "selectionEnd" in obj, get: obj => obj.selectionEnd, set: (obj, value) => { obj.selectionEnd = value; } }, metadata: _metadata }, _selectionEnd_initializers, _selectionEnd_extraInitializers);
92
102
  __esDecorate(this, null, _onReady_decorators, { kind: "method", name: "onReady", static: false, private: false, access: { has: obj => "onReady" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);
93
103
  __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
94
104
  __esDecorate(this, null, _onInputChange_decorators, { kind: "method", name: "onInputChange", static: false, private: false, access: { has: obj => "onInputChange" in obj, get: obj => obj.onInputChange }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -109,16 +119,14 @@ let USATextInputElement = (() => {
109
119
  #value_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _value_initializers, ""));
110
120
  get value() { return this.#value_accessor_storage; }
111
121
  set value(value) { this.#value_accessor_storage = value; }
112
- get selectionStart() {
113
- const { selectionStart } = this.#input();
114
- return selectionStart;
115
- }
116
- #internals = (__runInitializers(this, _value_extraInitializers), this.attachInternals());
122
+ #selectionStart_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _selectionStart_initializers, null));
123
+ get selectionStart() { return this.#selectionStart_accessor_storage; }
124
+ set selectionStart(value) { this.#selectionStart_accessor_storage = value; }
125
+ #selectionEnd_accessor_storage = (__runInitializers(this, _selectionStart_extraInitializers), __runInitializers(this, _selectionEnd_initializers, null));
126
+ get selectionEnd() { return this.#selectionEnd_accessor_storage; }
127
+ set selectionEnd(value) { this.#selectionEnd_accessor_storage = value; }
128
+ #internals = (__runInitializers(this, _selectionEnd_extraInitializers), this.attachInternals());
117
129
  #input = query("input");
118
- setSelectionRange(start, end) {
119
- const input = this.#input();
120
- input.setSelectionRange(start, end);
121
- }
122
130
  onReady() {
123
131
  const input = this.#input();
124
132
  input.autofocus = this.autofocus;
@@ -126,11 +134,15 @@ let USATextInputElement = (() => {
126
134
  onChange() {
127
135
  const input = this.#input();
128
136
  input.value = this.value;
137
+ input.selectionStart = this.selectionStart;
138
+ input.selectionEnd = this.selectionEnd;
129
139
  }
130
140
  onInputChange() {
131
141
  const input = this.#input();
132
- this.#internals.setFormValue(input.value);
133
142
  this.value = input.value;
143
+ this.selectionStart = input.selectionStart;
144
+ this.selectionEnd = input.selectionEnd;
145
+ this.#internals.setFormValue(input.value);
134
146
  }
135
147
  attributeChangedCallback(attr) {
136
148
  const input = this.#input();
@@ -1 +1 @@
1
- {"version":3,"file":"input.element.js","sourceRoot":"","sources":["../../../src/lib/input/input.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.element.js","sourceRoot":"","sources":["../../../src/lib/input/input.element.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ const meta = {
6
6
  render() {
7
7
  return html `
8
8
  <form>
9
- <usa-input name="fname" value="Danny" autocomplete="off" foo="test">
9
+ <usa-input name="fname" value="Danny" autocomplete="off">
10
10
  First name
11
11
  </usa-input>
12
12
 
@@ -56,14 +56,14 @@ let USAInputMaskElement = (() => {
56
56
  input.value = formatted;
57
57
  const offset = input.value.length - prev.length;
58
58
  const maskChar = mask[selectionStart - 1];
59
- // This is a hack to make sure that changes are propagated appropriately
60
- await Promise.resolve();
61
59
  // check if the current value is not a space for characters and has an offset greater then 0
62
60
  if (maskChar && !PATTERN_CHARS.includes(maskChar) && offset > 0) {
63
- input.setSelectionRange(selectionStart + offset, selectionStart + offset);
61
+ input.selectionStart = selectionStart + offset;
62
+ input.selectionEnd = selectionStart + offset;
64
63
  }
65
64
  else {
66
- input.setSelectionRange(selectionStart, selectionStart);
65
+ input.selectionStart = selectionStart;
66
+ input.selectionEnd = selectionStart;
67
67
  }
68
68
  if (prev !== input.value) {
69
69
  input.dispatchEvent(new Event("input", { bubbles: true }));
@@ -1 +1 @@
1
- {"version":3,"file":"input-mask.element.js","sourceRoot":"","sources":["../../../src/lib/input-mask/input-mask.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-mask.element.js","sourceRoot":"","sources":["../../../src/lib/input-mask/input-mask.element.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ const meta = {
11
11
  placeholder=${args.mask}
12
12
  autocomplete="off"
13
13
  mask=${args.mask}
14
- value="3042616138"
15
14
  >
16
15
  Phone:
17
16
  </usa-input>
@@ -1 +1 @@
1
- {"version":3,"file":"input-mask.stories.js","sourceRoot":"","sources":["../../../src/lib/input-mask/input-mask.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;;;wBAIS,IAAI,CAAC,IAAI;;iBAEhB,IAAI,CAAC,IAAI;;;;;;KAMrB,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,gBAAgB;KACvB;CACkC,CAAC;AAEtC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"input-mask.stories.js","sourceRoot":"","sources":["../../../src/lib/input-mask/input-mask.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;;;wBAIS,IAAI,CAAC,IAAI;;iBAEhB,IAAI,CAAC,IAAI;;;;;KAKrB,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,gBAAgB;KACvB;CACkC,CAAC;AAEtC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export interface MaskableElement extends HTMLElement {
2
2
  value: string;
3
3
  selectionStart: number | null;
4
- setSelectionRange(start: number, end: number): void;
4
+ selectionEnd: number | null;
5
5
  }
@@ -0,0 +1,3 @@
1
+ export declare class HttpService {
2
+ fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
3
+ }
@@ -0,0 +1,24 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { injectable } from "@joist/di";
3
+ let HttpService = (() => {
4
+ let _classDecorators = [injectable()];
5
+ let _classDescriptor;
6
+ let _classExtraInitializers = [];
7
+ let _classThis;
8
+ var HttpService = class {
9
+ static { _classThis = this; }
10
+ static {
11
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
12
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
13
+ HttpService = _classThis = _classDescriptor.value;
14
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
15
+ __runInitializers(_classThis, _classExtraInitializers);
16
+ }
17
+ fetch(input, init) {
18
+ return fetch(input, init);
19
+ }
20
+ };
21
+ return HttpService = _classThis;
22
+ })();
23
+ export { HttpService };
24
+ //# sourceMappingURL=http.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../../src/lib/services/http.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;IAG1B,WAAW;4BADvB,UAAU,EAAE;;;;;;;;YACb,6KAIC;;;YAJY,uDAAW;;QACtB,KAAK,CAAC,KAAwB,EAAE,IAAkB;YAChD,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;;;;SAHU,WAAW"}
@@ -0,0 +1,4 @@
1
+ export declare class IconService {
2
+ #private;
3
+ getIcon(icon: string): Promise<Node>;
4
+ }
@@ -0,0 +1,54 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { inject, injectable } from "@joist/di";
3
+ import { HttpService } from "./http.service.js";
4
+ import { USAConfig } from "../config/config.element.js";
5
+ let IconService = (() => {
6
+ let _classDecorators = [injectable()];
7
+ let _classDescriptor;
8
+ let _classExtraInitializers = [];
9
+ let _classThis;
10
+ var IconService = class {
11
+ static { _classThis = this; }
12
+ static {
13
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
14
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
15
+ IconService = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
17
+ __runInitializers(_classThis, _classExtraInitializers);
18
+ }
19
+ #config = inject(USAConfig);
20
+ #http = inject(HttpService);
21
+ #iconCache = new Map();
22
+ async getIcon(icon) {
23
+ const config = this.#config();
24
+ const http = this.#http();
25
+ const cached = this.#iconCache.get(icon);
26
+ if (cached) {
27
+ return cached.then((res) => {
28
+ return res.content.firstElementChild.cloneNode(true);
29
+ });
30
+ }
31
+ const svg = http
32
+ .fetch(`${config.iconPath}${icon}.svg`)
33
+ .then((res) => {
34
+ switch (res.status) {
35
+ case 200:
36
+ return res.text();
37
+ }
38
+ return "";
39
+ })
40
+ .then((res) => {
41
+ const template = document.createElement("template");
42
+ template.innerHTML = res;
43
+ return template;
44
+ });
45
+ this.#iconCache.set(icon, svg);
46
+ return svg.then((res) => {
47
+ return res.content.firstElementChild.cloneNode(true);
48
+ });
49
+ }
50
+ };
51
+ return IconService = _classThis;
52
+ })();
53
+ export { IconService };
54
+ //# sourceMappingURL=icon.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.service.js","sourceRoot":"","sources":["../../../src/lib/services/icon.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;IAG3C,WAAW;4BADvB,UAAU,EAAE;;;;;;;;YACb,6KAwCC;;;YAxCY,uDAAW;;QACtB,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,UAAU,GAA8C,IAAI,GAAG,EAAE,CAAC;QAElE,KAAK,CAAC,OAAO,CAAC,IAAY;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,GAAG,IAAI;iBACb,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC;iBACtC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;oBACnB,KAAK,GAAG;wBACN,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;gBACtB,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACpD,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;gBAEzB,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE/B,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtB,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACL,CAAC;;;;SAvCU,WAAW"}