@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.
- package/assets/uswds.min.js +1 -1
- package/package.json +5 -5
- package/src/lib/card/card.stories.ts +5 -5
- package/src/lib/config/config.element.ts +9 -10
- package/src/lib/icon/icon.element.ts +14 -28
- package/src/lib/input/input.element.ts +11 -12
- package/src/lib/input/input.stories.ts +1 -1
- package/src/lib/input-mask/input-mask.element.ts +4 -5
- package/src/lib/input-mask/input-mask.stories.ts +0 -1
- package/src/lib/input-mask/maskable.element.ts +1 -1
- package/src/lib/services/http.service.ts +8 -0
- package/src/lib/services/icon.service.test.ts +63 -0
- package/src/lib/services/icon.service.ts +47 -0
- package/target/lib/card/card.stories.js +5 -5
- package/target/lib/config/config.element.d.ts +3 -3
- package/target/lib/config/config.element.js +16 -8
- package/target/lib/config/config.element.js.map +1 -1
- package/target/lib/icon/icon.element.d.ts +1 -3
- package/target/lib/icon/icon.element.js +17 -21
- package/target/lib/icon/icon.element.js.map +1 -1
- package/target/lib/input/input.element.d.ts +2 -2
- package/target/lib/input/input.element.js +22 -10
- package/target/lib/input/input.element.js.map +1 -1
- package/target/lib/input/input.stories.js +1 -1
- package/target/lib/input-mask/input-mask.element.js +4 -4
- package/target/lib/input-mask/input-mask.element.js.map +1 -1
- package/target/lib/input-mask/input-mask.stories.js +0 -1
- package/target/lib/input-mask/input-mask.stories.js.map +1 -1
- package/target/lib/input-mask/maskable.element.d.ts +1 -1
- package/target/lib/services/http.service.d.ts +3 -0
- package/target/lib/services/http.service.js +24 -0
- package/target/lib/services/http.service.js.map +1 -0
- package/target/lib/services/icon.service.d.ts +4 -0
- package/target/lib/services/icon.service.js +54 -0
- package/target/lib/services/icon.service.js.map +1 -0
- package/target/lib/services/icon.service.test.js +52 -0
- package/target/lib/services/icon.service.test.js.map +1 -0
- package/src/lib/icon/icon-element.test.ts +0 -0
- package/target/lib/icon/icon-element.test.js +0 -2
- package/target/lib/icon/icon-element.test.js.map +0 -1
- /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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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
|
|
5
|
-
#private;
|
|
5
|
+
export declare class USAConfigElement extends HTMLElement {
|
|
6
6
|
accessor iconPath: string;
|
|
7
|
-
|
|
7
|
+
onInjectorCreated({ providers }: Injector): void;
|
|
8
8
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import {
|
|
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 = [
|
|
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
|
-
})
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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,
|
|
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
|
-
|
|
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 {
|
|
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
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
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.#
|
|
61
|
+
if (this.#injected) {
|
|
57
62
|
this.#updateIcon();
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
65
|
async #updateIcon() {
|
|
61
|
-
|
|
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;
|
|
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
|
-
|
|
15
|
-
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;IA4DvC,mBAAmB;4BAlD/B,OAAO,CAAC;YACP,OAAO,EAAE,WAAW;YACpB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,IAAI;aACrB;YACD,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCF;gBACD,IAAI,CAAA;;;;;;KAMH;aACF;SACF,CAAC;;;;sBAEQ,WAAW
|
|
1
|
+
{"version":3,"file":"input.element.js","sourceRoot":"","sources":["../../../src/lib/input/input.element.ts"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
61
|
+
input.selectionStart = selectionStart + offset;
|
|
62
|
+
input.selectionEnd = selectionStart + offset;
|
|
64
63
|
}
|
|
65
64
|
else {
|
|
66
|
-
input.
|
|
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":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;IAmB9D,mBAAmB;4BAX/B,OAAO,CAAC;YACP,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;KAIF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBACuC,WAAW;;;;;;;mCAAnB,SAAQ,WAAW;;;;gCACjD,IAAI,EAAE;mCAWN,MAAM,CAAC,OAAO,CAAC;
|
|
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 +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
|
|
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"}
|
|
@@ -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,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"}
|