ember-primitives 0.0.0
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/LICENSE.md +9 -0
- package/README.md +37 -0
- package/addon-main.cjs +5 -0
- package/dist/_app_/color-scheme.js +1 -0
- package/dist/_app_/components/external-link.js +1 -0
- package/dist/_app_/components/link.js +1 -0
- package/dist/_app_/components/popover.js +1 -0
- package/dist/_app_/components/portal-targets.js +1 -0
- package/dist/_app_/components/shadowed.js +1 -0
- package/dist/_app_/components/switch.js +1 -0
- package/dist/_app_/components/typed-elements.js +1 -0
- package/dist/_app_/helpers/service.js +1 -0
- package/dist/_app_/proper-links.js +1 -0
- package/dist/color-scheme.d.ts +23 -0
- package/dist/color-scheme.d.ts.map +1 -0
- package/dist/color-scheme.js +81 -0
- package/dist/color-scheme.js.map +1 -0
- package/dist/components/external-link.d.ts +8 -0
- package/dist/components/external-link.js +19 -0
- package/dist/components/external-link.js.map +1 -0
- package/dist/components/link.d.ts +24 -0
- package/dist/components/link.js +66 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/popover.d.ts +2 -0
- package/dist/components/popover.js +12 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/portal-targets.d.ts +2 -0
- package/dist/components/portal-targets.js +12 -0
- package/dist/components/portal-targets.js.map +1 -0
- package/dist/components/shadowed.d.ts +19 -0
- package/dist/components/shadowed.js +69 -0
- package/dist/components/shadowed.js.map +1 -0
- package/dist/components/switch.d.ts +28 -0
- package/dist/components/switch.js +33 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/typed-elements.d.ts +17 -0
- package/dist/components/typed-elements.js +13 -0
- package/dist/components/typed-elements.js.map +1 -0
- package/dist/components/violations.css +88 -0
- package/dist/helpers/service.d.ts +14 -0
- package/dist/helpers/service.js +15 -0
- package/dist/helpers/service.js.map +1 -0
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.js +2 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/proper-links.d.ts +12 -0
- package/dist/proper-links.js +89 -0
- package/dist/proper-links.js.map +1 -0
- package/dist/template-registry.d.ts +3 -0
- package/dist/template-registry.js +2 -0
- package/dist/template-registry.js.map +1 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +11 -0
- package/dist/utils.js.map +1 -0
- package/package.json +119 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
+
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
ember-primitives
|
|
2
|
+
==============================================================================
|
|
3
|
+
|
|
4
|
+
[Short description of the addon.]
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Compatibility
|
|
8
|
+
------------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
* Ember.js v3.28 or above
|
|
11
|
+
* Embroider or ember-auto-import v2
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Installation
|
|
15
|
+
------------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
ember install ember-primitives
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Usage
|
|
23
|
+
------------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
[Longer description of how to use the addon in apps.]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Contributing
|
|
29
|
+
------------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
See the [Contributing](CONTRIBUTING.md) guide for details.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
License
|
|
35
|
+
------------------------------------------------------------------------------
|
|
36
|
+
|
|
37
|
+
This project is licensed under the [MIT License](LICENSE.md).
|
package/addon-main.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/color-scheme";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/external-link";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/link";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/popover";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/portal-targets";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/shadowed";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/switch";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/components/typed-elements";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/helpers/service";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-primitives/proper-links";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare const colorScheme: {
|
|
2
|
+
update: (value: string) => string;
|
|
3
|
+
current: string | undefined;
|
|
4
|
+
};
|
|
5
|
+
declare function sync(): void;
|
|
6
|
+
declare const prefers: {
|
|
7
|
+
dark: () => boolean;
|
|
8
|
+
light: () => boolean;
|
|
9
|
+
custom: (name: string) => boolean;
|
|
10
|
+
none: () => boolean;
|
|
11
|
+
};
|
|
12
|
+
declare const localPreference: {
|
|
13
|
+
isSet: () => boolean;
|
|
14
|
+
read: () => string | null;
|
|
15
|
+
update: (value: string) => void;
|
|
16
|
+
delete: () => void;
|
|
17
|
+
};
|
|
18
|
+
declare function getColorScheme(element?: HTMLElement): string;
|
|
19
|
+
declare function setColorScheme(element: HTMLElement, value: string): void;
|
|
20
|
+
declare function setColorScheme(value: string): void;
|
|
21
|
+
declare function removeColorScheme(element?: HTMLElement): void;
|
|
22
|
+
export { colorScheme, sync, prefers, localPreference, getColorScheme, setColorScheme, removeColorScheme };
|
|
23
|
+
//# sourceMappingURL=color-scheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-scheme.d.ts","sourceRoot":"","sources":["../src/color-scheme.ts"],"names":[],"mappings":"AAIA,QAAO,MAAM,WAAW;oBACN,MAAM;;CAiBvB,CAAC;AAEF,iBAAgB,IAAI,SA4BnB;AAED,QAAO,MAAM,OAAO;;;mBAGH,MAAM;;CAEtB,CAAC;AAIF,QAAO,MAAM,eAAe;;;oBAGV,MAAM;;CAEvB,CAAC;AAEF,iBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,UAInD;AAED,iBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;AAC1E,iBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;AAgBpD,iBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,WAAW,QAItD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { cell } from 'ember-resources';
|
|
2
|
+
|
|
3
|
+
const _colorScheme = cell();
|
|
4
|
+
const colorScheme = {
|
|
5
|
+
update: value => colorScheme.current = value,
|
|
6
|
+
get current() {
|
|
7
|
+
return _colorScheme.current;
|
|
8
|
+
},
|
|
9
|
+
set current(value) {
|
|
10
|
+
_colorScheme.current = value;
|
|
11
|
+
if (!value) {
|
|
12
|
+
localPreference.delete();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
localPreference.update(value);
|
|
16
|
+
setColorScheme(value);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
function sync() {
|
|
20
|
+
/**
|
|
21
|
+
* If local prefs are set, then we don't care what prefers-color-scheme is
|
|
22
|
+
*/
|
|
23
|
+
if (localPreference.isSet()) {
|
|
24
|
+
let pref = localPreference.read();
|
|
25
|
+
if (pref === 'dark') {
|
|
26
|
+
setColorScheme('dark');
|
|
27
|
+
_colorScheme.current = 'dark';
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
setColorScheme('light');
|
|
31
|
+
_colorScheme.current = 'light';
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (prefers.dark()) {
|
|
35
|
+
setColorScheme('dark');
|
|
36
|
+
_colorScheme.current = 'dark';
|
|
37
|
+
} else if (prefers.light()) {
|
|
38
|
+
setColorScheme('light');
|
|
39
|
+
_colorScheme.current = 'light';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const prefers = {
|
|
43
|
+
dark: () => window.matchMedia('(prefers-color-scheme: dark)').matches,
|
|
44
|
+
light: () => window.matchMedia('(prefers-color-scheme: light)').matches,
|
|
45
|
+
custom: name => window.matchMedia(`(prefers-color-scheme: ${name})`).matches,
|
|
46
|
+
none: () => window.matchMedia('(prefers-color-scheme: no-preference)').matches
|
|
47
|
+
};
|
|
48
|
+
const LOCAL_PREF_KEY = 'ember-primitives/color-scheme#local-preference';
|
|
49
|
+
const localPreference = {
|
|
50
|
+
isSet: () => Boolean(localPreference.read()),
|
|
51
|
+
read: () => localStorage.getItem(LOCAL_PREF_KEY),
|
|
52
|
+
update: value => localStorage.setItem(LOCAL_PREF_KEY, value),
|
|
53
|
+
delete: () => localStorage.removeItem(LOCAL_PREF_KEY)
|
|
54
|
+
};
|
|
55
|
+
function getColorScheme(element) {
|
|
56
|
+
let style = styleOf(element);
|
|
57
|
+
return style.getPropertyValue('color-scheme');
|
|
58
|
+
}
|
|
59
|
+
function setColorScheme(...args) {
|
|
60
|
+
if (typeof args[0] === 'string') {
|
|
61
|
+
styleOf().setProperty('color-scheme', args[0]);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (typeof args[1] === 'string') {
|
|
65
|
+
styleOf(args[0]).setProperty('color-scheme', args[1]);
|
|
66
|
+
}
|
|
67
|
+
throw new Error(`Invalid arity, expected up to 2 args, received ${args.length}`);
|
|
68
|
+
}
|
|
69
|
+
function removeColorScheme(element) {
|
|
70
|
+
let style = styleOf(element);
|
|
71
|
+
style.removeProperty('color-scheme');
|
|
72
|
+
}
|
|
73
|
+
function styleOf(element) {
|
|
74
|
+
if (element) {
|
|
75
|
+
return element.style;
|
|
76
|
+
}
|
|
77
|
+
return document.documentElement.style;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { colorScheme, getColorScheme, localPreference, prefers, removeColorScheme, setColorScheme, sync };
|
|
81
|
+
//# sourceMappingURL=color-scheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-scheme.js","sources":["../src/color-scheme.ts"],"sourcesContent":["import { cell } from 'ember-resources';\n\nconst _colorScheme = cell<string | undefined>();\n\nexport const colorScheme = {\n update: (value: string) => (colorScheme.current = value),\n\n get current(): string | undefined {\n return _colorScheme.current;\n },\n set current(value: string | undefined) {\n _colorScheme.current = value;\n\n if (!value) {\n localPreference.delete();\n\n return;\n }\n\n localPreference.update(value);\n setColorScheme(value);\n },\n};\n\nexport function sync() {\n /**\n * If local prefs are set, then we don't care what prefers-color-scheme is\n */\n if (localPreference.isSet()) {\n let pref = localPreference.read();\n\n if (pref === 'dark') {\n setColorScheme('dark');\n\n _colorScheme.current = 'dark';\n\n return;\n }\n\n setColorScheme('light');\n _colorScheme.current = 'light';\n\n return;\n }\n\n if (prefers.dark()) {\n setColorScheme('dark');\n _colorScheme.current = 'dark';\n } else if (prefers.light()) {\n setColorScheme('light');\n _colorScheme.current = 'light';\n }\n}\n\nexport const prefers = {\n dark: () => window.matchMedia('(prefers-color-scheme: dark)').matches,\n light: () => window.matchMedia('(prefers-color-scheme: light)').matches,\n custom: (name: string) => window.matchMedia(`(prefers-color-scheme: ${name})`).matches,\n none: () => window.matchMedia('(prefers-color-scheme: no-preference)').matches,\n};\n\nconst LOCAL_PREF_KEY = 'ember-primitives/color-scheme#local-preference';\n\nexport const localPreference = {\n isSet: () => Boolean(localPreference.read()),\n read: () => localStorage.getItem(LOCAL_PREF_KEY),\n update: (value: string) => localStorage.setItem(LOCAL_PREF_KEY, value),\n delete: () => localStorage.removeItem(LOCAL_PREF_KEY),\n};\n\nexport function getColorScheme(element?: HTMLElement) {\n let style = styleOf(element);\n\n return style.getPropertyValue('color-scheme');\n}\n\nexport function setColorScheme(element: HTMLElement, value: string): void;\nexport function setColorScheme(value: string): void;\n\nexport function setColorScheme(...args: [string] | [HTMLElement, string]): void {\n if (typeof args[0] === 'string') {\n styleOf().setProperty('color-scheme', args[0]);\n\n return;\n }\n\n if (typeof args[1] === 'string') {\n styleOf(args[0]).setProperty('color-scheme', args[1]);\n }\n\n throw new Error(`Invalid arity, expected up to 2 args, received ${args.length}`);\n}\n\nexport function removeColorScheme(element?: HTMLElement) {\n let style = styleOf(element);\n\n style.removeProperty('color-scheme');\n}\n\nfunction styleOf(element?: HTMLElement) {\n if (element) {\n return element.style;\n }\n\n return document.documentElement.style;\n}\n"],"names":["_colorScheme","cell","colorScheme","update","value","current","localPreference","delete","setColorScheme","sync","isSet","pref","read","prefers","dark","light","window","matchMedia","matches","custom","name","none","LOCAL_PREF_KEY","Boolean","localStorage","getItem","setItem","removeItem","getColorScheme","element","style","styleOf","getPropertyValue","args","setProperty","Error","length","removeColorScheme","removeProperty","document","documentElement"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
|
|
5
|
+
const ExternalLink = setComponentTemplate(precompileTemplate(`
|
|
6
|
+
<a
|
|
7
|
+
target='_blank'
|
|
8
|
+
rel='noreferrer noopener'
|
|
9
|
+
href='##missing##'
|
|
10
|
+
...attributes
|
|
11
|
+
>
|
|
12
|
+
<span>{{yield}}</span>
|
|
13
|
+
</a>
|
|
14
|
+
`, {
|
|
15
|
+
strictMode: true
|
|
16
|
+
}), templateOnly("external-link", "ExternalLink"));
|
|
17
|
+
|
|
18
|
+
export { ExternalLink, ExternalLink as default };
|
|
19
|
+
//# sourceMappingURL=external-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-link.js","sources":["../../src/components/external-link.ts"],"sourcesContent":["import type { TOC } from '@ember/component/template-only';\n\nexport const ExternalLink: TOC<{\n Element: HTMLAnchorElement;\n Blocks: {\n default: [];\n };\n}> = [__GLIMMER_TEMPLATE(`\n <a\n target='_blank'\n rel='noreferrer noopener'\n href='##missing##'\n ...attributes\n >\n <span>{{yield}}</span>\n </a>\n`, { strictMode: true })];\n\nexport default ExternalLink;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtbGluay5qcyIsInNvdXJjZXMiOlsiZXh0ZXJuYWwtbGluay5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5leHBvcnQgY29uc3QgRXh0ZXJuYWxMaW5rOiBUT0M8e1xuICBFbGVtZW50OiBIVE1MQW5jaG9yRWxlbWVudDtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59PiA9IDx0ZW1wbGF0ZT5cbiAgPGFcbiAgICB0YXJnZXQ9J19ibGFuaydcbiAgICByZWw9J25vcmVmZXJyZXIgbm9vcGVuZXInXG4gICAgaHJlZj0nIyNtaXNzaW5nIyMnXG4gICAgLi4uYXR0cmlidXRlc1xuICA+XG4gICAgPHNwYW4+e3t5aWVsZH19PC9zcGFuPlxuICA8L2E+XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZXJuYWxMaW5rO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQ7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBVTtBQUNmOzs7Ozs7O01BT007QUFDTix5QkFBVyxDQUFDO0FBQ1o7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOyJ9"],"names":["ExternalLink","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;MAEaA,YAKX,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACf;;;;;;;;AAQA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAC,YAAA,CAAW,eAAA,EAAA,cAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Component from '@glimmer/component';
|
|
2
|
+
import RouterService from '@ember/routing/router-service';
|
|
3
|
+
/**
|
|
4
|
+
* TODO: make template-only component,
|
|
5
|
+
* and use class-based modifier?
|
|
6
|
+
*/
|
|
7
|
+
interface Signature {
|
|
8
|
+
Element: HTMLAnchorElement;
|
|
9
|
+
Args: {
|
|
10
|
+
href: string;
|
|
11
|
+
};
|
|
12
|
+
Blocks: {
|
|
13
|
+
default: [
|
|
14
|
+
{
|
|
15
|
+
isExternal: boolean;
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
declare class Link extends Component<Signature> {
|
|
21
|
+
router: RouterService;
|
|
22
|
+
handleClick: (event: Event) => void;
|
|
23
|
+
}
|
|
24
|
+
export { Link };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _initializerDefineProperty from '@babel/runtime/helpers/esm/initializerDefineProperty';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
3
|
+
import _applyDecoratedDescriptor from '@babel/runtime/helpers/esm/applyDecoratedDescriptor';
|
|
4
|
+
import '@babel/runtime/helpers/esm/initializerWarningHelper';
|
|
5
|
+
import { setComponentTemplate } from '@ember/component';
|
|
6
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
|
+
import Component from '@glimmer/component';
|
|
8
|
+
import { assert } from '@ember/debug';
|
|
9
|
+
import { hash } from '@ember/helper';
|
|
10
|
+
import { on } from '@ember/modifier';
|
|
11
|
+
import { service } from '@ember/service';
|
|
12
|
+
import { ExternalLink } from './external-link.js';
|
|
13
|
+
|
|
14
|
+
var _class, _descriptor;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* TODO: make template-only component,
|
|
18
|
+
* and use class-based modifier?
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
let Link = (_class = class Link extends Component {
|
|
22
|
+
constructor(...args) {
|
|
23
|
+
super(...args);
|
|
24
|
+
_initializerDefineProperty(this, "router", _descriptor, this);
|
|
25
|
+
_defineProperty(this, "handleClick", event => {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
assert('[BUG]', event.target instanceof HTMLAnchorElement);
|
|
28
|
+
let path = new URL(event.target.href).pathname;
|
|
29
|
+
this.router.transitionTo(path);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [service], {
|
|
33
|
+
configurable: true,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
writable: true,
|
|
36
|
+
initializer: null
|
|
37
|
+
})), _class);
|
|
38
|
+
setComponentTemplate(precompileTemplate(`
|
|
39
|
+
{{#if (isExternal @href)}}
|
|
40
|
+
<ExternalLink href={{@href}} ...attributes>
|
|
41
|
+
{{yield (hash isExternal=true)}}
|
|
42
|
+
</ExternalLink>
|
|
43
|
+
{{else}}
|
|
44
|
+
<a href={{if @href @href '##missing##'}} {{on "click" this.handleClick}} ...attributes>
|
|
45
|
+
{{yield (hash isExternal=false)}}
|
|
46
|
+
</a>
|
|
47
|
+
{{/if}}
|
|
48
|
+
|
|
49
|
+
`, {
|
|
50
|
+
strictMode: true,
|
|
51
|
+
scope: () => ({
|
|
52
|
+
isExternal,
|
|
53
|
+
ExternalLink,
|
|
54
|
+
hash,
|
|
55
|
+
on
|
|
56
|
+
})
|
|
57
|
+
}), Link);
|
|
58
|
+
function isExternal(href) {
|
|
59
|
+
if (!href) return false;
|
|
60
|
+
if (href.startsWith('#')) return false;
|
|
61
|
+
if (href.startsWith('/')) return false;
|
|
62
|
+
return location.origin !== new URL(href).origin;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { Link };
|
|
66
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sources":["../../src/components/link.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { service } from '@ember/service';\n\nimport { ExternalLink } from './external-link';\n\nimport type RouterService from '@ember/routing/router-service';\n\n/**\n * TODO: make template-only component,\n* and use class-based modifier?\n */\n\n interface Signature {\n Element: HTMLAnchorElement;\n Args: {\n href: string;\n };\n Blocks: { default: [{\n isExternal: boolean;\n }]}\n }\n\n\nexport class Link extends Component<Signature> {\n [__GLIMMER_TEMPLATE(`\n {{#if (isExternal @href)}}\n <ExternalLink href={{@href}} ...attributes>\n {{yield (hash isExternal=true)}}\n </ExternalLink>\n {{else}}\n <a href={{if @href @href '##missing##'}} {{on \"click\" this.handleClick}} ...attributes>\n {{yield (hash isExternal=false)}}\n </a>\n {{/if}}\n\n `, { strictMode: true, scope: () => ({isExternal,ExternalLink,hash,on}) })]\n\n @service declare router: RouterService;\n\n handleClick = (event: Event) => {\n event.preventDefault();\n\n assert('[BUG]', event.target instanceof HTMLAnchorElement);\n\n let path = new URL(event.target.href).pathname;\n\n this.router.transitionTo(path);\n }\n}\n\n\nfunction isExternal(href: string) {\n if (!href) return false;\n if (href.startsWith('#')) return false;\n if (href.startsWith('/')) return false;\n\n return location.origin !== new URL(href).origin;\n}\n\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZXMiOlsibGluay5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcbmltcG9ydCB7IHNlcnZpY2UgfSBmcm9tICdAZW1iZXIvc2VydmljZSc7XG5cbmltcG9ydCB7IEV4dGVybmFsTGluayB9IGZyb20gJy4vZXh0ZXJuYWwtbGluayc7XG5cbmltcG9ydCB0eXBlIFJvdXRlclNlcnZpY2UgZnJvbSAnQGVtYmVyL3JvdXRpbmcvcm91dGVyLXNlcnZpY2UnO1xuXG4vKipcbiAgKiBUT0RPOiBtYWtlIHRlbXBsYXRlLW9ubHkgY29tcG9uZW50LFxuKiBhbmQgdXNlIGNsYXNzLWJhc2VkIG1vZGlmaWVyP1xuICAqL1xuXG4gIGludGVyZmFjZSBTaWduYXR1cmUge1xuICAgIEVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50O1xuICAgIEFyZ3M6IHtcbiAgICAgIGhyZWY6IHN0cmluZztcbiAgICB9O1xuICAgIEJsb2NrczogeyBkZWZhdWx0OiBbe1xuICAgICAgaXNFeHRlcm5hbDogYm9vbGVhbjtcbiAgICB9XX1cbiAgfVxuXG5cbmV4cG9ydCBjbGFzcyBMaW5rIGV4dGVuZHMgQ29tcG9uZW50PFNpZ25hdHVyZT4ge1xuICA8dGVtcGxhdGU+XG4gICAge3sjaWYgKGlzRXh0ZXJuYWwgQGhyZWYpfX1cbiAgICAgIDxFeHRlcm5hbExpbmsgaHJlZj17e0BocmVmfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgICAge3t5aWVsZCAoaGFzaCBpc0V4dGVybmFsPXRydWUpfX1cbiAgICAgIDwvRXh0ZXJuYWxMaW5rPlxuICAgIHt7ZWxzZX19XG4gICAgICA8YSBocmVmPXt7aWYgQGhyZWYgQGhyZWYgJyMjbWlzc2luZyMjJ319IHt7b24gXCJjbGlja1wiIHRoaXMuaGFuZGxlQ2xpY2t9fSAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICB7e3lpZWxkIChoYXNoIGlzRXh0ZXJuYWw9ZmFsc2UpfX1cbiAgICAgIDwvYT5cbiAgICB7ey9pZn19XG5cbiAgPC90ZW1wbGF0ZT5cblxuICBAc2VydmljZSBkZWNsYXJlIHJvdXRlcjogUm91dGVyU2VydmljZTtcblxuICBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgYXNzZXJ0KCdbQlVHXScsIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50KTtcblxuICAgIGxldCBwYXRoID0gbmV3IFVSTChldmVudC50YXJnZXQuaHJlZikucGF0aG5hbWU7XG5cbiAgICB0aGlzLnJvdXRlci50cmFuc2l0aW9uVG8ocGF0aCk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBpc0V4dGVybmFsKGhyZWY6IHN0cmluZykge1xuICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgaWYgKGhyZWYuc3RhcnRzV2l0aCgnIycpKSByZXR1cm4gZmFsc2U7XG4gIGlmIChocmVmLnN0YXJ0c1dpdGgoJy8nKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBsb2NhdGlvbi5vcmlnaW4gIT09IG5ldyBVUkwoaHJlZikub3JpZ2luO1xufVxuXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9EO0FBQ0EsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDSDtBQUNBO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDLHFCQUFVO0FBQ1o7Ozs7Ozs7Ozs7Q0FVQyxDQUFDLDJFQUFXO0FBQ2I7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekM7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0I7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25EO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekM7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUNEOyJ9"],"names":["Link","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","event","preventDefault","assert","target","HTMLAnchorElement","path","URL","href","pathname","router","transitionTo","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","setComponentTemplate","precompileTemplate","strictMode","scope","isExternal","ExternalLink","hash","on","startsWith","location","origin"],"mappings":";;;;;;;;;;;;;;;AAUA;AACA;AACA;AACA;;AAaaA,IAAAA,IAAI,IAAAC,MAAA,GAAV,MAAMD,IAAI,SAASE,SAAS,CAAY;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,0BAAA,iBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;IAAAC,eAAA,CAAA,IAAA,EAAA,aAAA,EAgB9BC,KAAY,IAAK;MAC9BA,KAAK,CAACC,cAAc,EAAE,CAAA;MAEtBC,MAAM,CAAC,OAAO,EAAEF,KAAK,CAACG,MAAM,YAAYC,iBAAiB,CAAC,CAAA;AAE1D,MAAA,IAAIC,IAAI,GAAG,IAAIC,GAAG,CAACN,KAAK,CAACG,MAAM,CAACI,IAAI,CAAC,CAACC,QAAQ,CAAA;AAE9C,MAAA,IAAI,CAACC,MAAM,CAACC,YAAY,CAACL,IAAI,CAAC,CAAA;KAC/B,CAAA,CAAA;AAAA,GAAA;AACH,CAAC,GAAAP,WAAA,GAAAa,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,QAAA,EAAA,CAXEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAA,CAAA,GAAAxB,MAAA,EAAA;AAWTyB,oBAAA,CAAAC,kBAAA,CAxBW,CAAA;AACZ;;;;;;;;;;AAUE,EAAA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,IAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAZWjC,IAAI,CAAA,CAAA;AA4BjB,SAAS8B,UAAUA,CAACf,IAAY,EAAE;AAChC,EAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK,CAAA;EACvB,IAAIA,IAAI,CAACmB,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAA;EACtC,IAAInB,IAAI,CAACmB,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAA;EAEtC,OAAOC,QAAQ,CAACC,MAAM,KAAK,IAAItB,GAAG,CAACC,IAAI,CAAC,CAACqB,MAAM,CAAA;AACjD;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
|
|
5
|
+
const Popover = setComponentTemplate(precompileTemplate(`
|
|
6
|
+
TODO
|
|
7
|
+
`, {
|
|
8
|
+
strictMode: true
|
|
9
|
+
}), templateOnly("popover", "Popover"));
|
|
10
|
+
|
|
11
|
+
export { Popover, Popover as default };
|
|
12
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sources":["../../src/components/popover.ts"],"sourcesContent":["\n\nexport const Popover = [__GLIMMER_TEMPLATE(`\n TODO\n`, { strictMode: true })];\n\n\nexport default Popover;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZXMiOlsicG9wb3Zlci5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCBjb25zdCBQb3BvdmVyID0gPHRlbXBsYXRlPlxuICBUT0RPXG48L3RlbXBsYXRlPjtcblxuXG5leHBvcnQgZGVmYXVsdCBQb3BvdmVyO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQVU7QUFDakMsTUFBTTtBQUNOLHlCQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOyJ9"],"names":["Popover","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;MAEaA,OAAO,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACjC;AACA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAC,YAAA,CAAW,SAAA,EAAA,SAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
|
|
5
|
+
const PortalTargets = setComponentTemplate(precompileTemplate(`
|
|
6
|
+
<div id="ember-primitive-portal-targets-popover"></div>
|
|
7
|
+
`, {
|
|
8
|
+
strictMode: true
|
|
9
|
+
}), templateOnly("portal-targets", "PortalTargets"));
|
|
10
|
+
|
|
11
|
+
export { PortalTargets, PortalTargets as default };
|
|
12
|
+
//# sourceMappingURL=portal-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-targets.js","sources":["../../src/components/portal-targets.ts"],"sourcesContent":["export const PortalTargets = [__GLIMMER_TEMPLATE(`\n <div id=\"ember-primitive-portal-targets-popover\"></div>\n`, { strictMode: true })];\n\n\nexport default PortalTargets;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLXRhcmdldHMuanMiLCJzb3VyY2VzIjpbInBvcnRhbC10YXJnZXRzLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUG9ydGFsVGFyZ2V0cyA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiBpZD1cImVtYmVyLXByaW1pdGl2ZS1wb3J0YWwtdGFyZ2V0cy1wb3BvdmVyXCI+PC9kaXY+XG48L3RlbXBsYXRlPjtcblxuXG5leHBvcnQgZGVmYXVsdCBQb3J0YWxUYXJnZXRzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBVTtBQUN2Qyx5REFBeUQ7QUFDekQseUJBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7In0="],"names":["PortalTargets","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;MAAaA,aAAa,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACvC;AACA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAC,YAAA,CAAW,gBAAA,EAAA,eAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TOC } from '@ember/component/template-only';
|
|
2
|
+
/**
|
|
3
|
+
* Render content in a shadow dom, attached to a div
|
|
4
|
+
*/
|
|
5
|
+
declare const Shadowed: TOC<{
|
|
6
|
+
Element: HTMLDivElement;
|
|
7
|
+
Args: {
|
|
8
|
+
/**
|
|
9
|
+
* By default, shadow-dom does not include any styles.
|
|
10
|
+
* Setting this to true will include all the `<style>` tags
|
|
11
|
+
* that are present in the `<head>` element.
|
|
12
|
+
*/
|
|
13
|
+
includeStyles?: boolean;
|
|
14
|
+
};
|
|
15
|
+
Blocks: {
|
|
16
|
+
default: [];
|
|
17
|
+
};
|
|
18
|
+
}>;
|
|
19
|
+
export { Shadowed as default, Shadowed };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
import { modifier } from 'ember-modifier';
|
|
5
|
+
import { cell } from 'ember-resources';
|
|
6
|
+
|
|
7
|
+
const Shadow = () => {
|
|
8
|
+
let shadow = cell();
|
|
9
|
+
return {
|
|
10
|
+
get root() {
|
|
11
|
+
return shadow.current;
|
|
12
|
+
},
|
|
13
|
+
attach: modifier(element => {
|
|
14
|
+
shadow.set(element.attachShadow({
|
|
15
|
+
mode: 'open'
|
|
16
|
+
}));
|
|
17
|
+
})
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// index.html has the production-fingerprinted references to these links
|
|
22
|
+
// Ideally, we'd have some pre-processor scan everything for references to
|
|
23
|
+
// assets in public, but idk how to set that up
|
|
24
|
+
const getStyles = () => [...document.head.querySelectorAll('link')].map(link => link.href);
|
|
25
|
+
const Styles = setComponentTemplate(precompileTemplate(`
|
|
26
|
+
{{#let (getStyles) as |styles|}}
|
|
27
|
+
{{#each styles as |styleHref|}}
|
|
28
|
+
|
|
29
|
+
<link rel='stylesheet' href={{styleHref}} />
|
|
30
|
+
|
|
31
|
+
{{/each}}
|
|
32
|
+
{{/let}}
|
|
33
|
+
`, {
|
|
34
|
+
strictMode: true,
|
|
35
|
+
scope: () => ({
|
|
36
|
+
getStyles
|
|
37
|
+
})
|
|
38
|
+
}), templateOnly("shadowed", "Styles"));
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Render content in a shadow dom, attached to a div
|
|
42
|
+
*/
|
|
43
|
+
const Shadowed = setComponentTemplate(precompileTemplate(`
|
|
44
|
+
{{#let (Shadow) as |shadow|}}
|
|
45
|
+
{{!-- TODO: We need a way in ember to render in to a shadow dom without an effect --}}
|
|
46
|
+
<div {{shadow.attach}} ...attributes></div>
|
|
47
|
+
|
|
48
|
+
{{#if shadow.root}}
|
|
49
|
+
{{#in-element shadow.root}}
|
|
50
|
+
|
|
51
|
+
{{#if @includeStyles}}
|
|
52
|
+
<Styles />
|
|
53
|
+
{{/if}}
|
|
54
|
+
|
|
55
|
+
{{yield}}
|
|
56
|
+
|
|
57
|
+
{{/in-element}}
|
|
58
|
+
{{/if}}
|
|
59
|
+
{{/let}}
|
|
60
|
+
`, {
|
|
61
|
+
strictMode: true,
|
|
62
|
+
scope: () => ({
|
|
63
|
+
Shadow,
|
|
64
|
+
Styles
|
|
65
|
+
})
|
|
66
|
+
}), templateOnly("shadowed", "Shadowed"));
|
|
67
|
+
|
|
68
|
+
export { Shadowed, Shadowed as default };
|
|
69
|
+
//# sourceMappingURL=shadowed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadowed.js","sources":["../../src/components/shadowed.ts"],"sourcesContent":["import { modifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\n\nimport type { TOC } from '@ember/component/template-only';\n\nconst Shadow = () => {\n let shadow = cell<ShadowRoot>();\n\n return {\n get root() { return shadow.current; },\n attach: modifier((element: Element) => {\n shadow.set(element.attachShadow({ mode: 'open' }));\n })\n };\n}\n\n// index.html has the production-fingerprinted references to these links\n// Ideally, we'd have some pre-processor scan everything for references to\n// assets in public, but idk how to set that up\nconst getStyles = () => [...document.head.querySelectorAll('link')].map((link) => link.href);\n\nconst Styles = [__GLIMMER_TEMPLATE(`\n {{#let (getStyles) as |styles|}}\n {{#each styles as |styleHref|}}\n\n <link rel='stylesheet' href={{styleHref}} />\n\n {{/each}}\n {{/let}}\n`, { strictMode: true, scope: () => ({getStyles}) })];\n\n/**\n * Render content in a shadow dom, attached to a div\n */\nexport const Shadowed: TOC<{\n Element: HTMLDivElement;\n Args: {\n /**\n * By default, shadow-dom does not include any styles.\n * Setting this to true will include all the `<style>` tags\n * that are present in the `<head>` element.\n */\n includeStyles?: boolean;\n };\n Blocks: { default: [] };\n}> = [__GLIMMER_TEMPLATE(`\n {{#let (Shadow) as |shadow|}}\n {{!-- TODO: We need a way in ember to render in to a shadow dom without an effect --}}\n <div {{shadow.attach}} ...attributes></div>\n\n {{#if shadow.root}}\n {{#in-element shadow.root}}\n\n {{#if @includeStyles}}\n <Styles />\n {{/if}}\n\n {{yield}}\n\n {{/in-element}}\n {{/if}}\n {{/let}}\n`, { strictMode: true, scope: () => ({Shadow,Styles}) })];\n\nexport default Shadowed;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93ZWQuanMiLCJzb3VyY2VzIjpbInNoYWRvd2VkLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcbmltcG9ydCB7IGNlbGwgfSAgZnJvbSAnZW1iZXItcmVzb3VyY2VzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5jb25zdCBTaGFkb3cgPSAoKSA9PiB7XG4gIGxldCBzaGFkb3cgPSBjZWxsPFNoYWRvd1Jvb3Q+KCk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgcm9vdCgpIHsgcmV0dXJuIHNoYWRvdy5jdXJyZW50OyB9LFxuICAgIGF0dGFjaDogbW9kaWZpZXIoKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgIHNoYWRvdy5zZXQoZWxlbWVudC5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkpO1xuICAgIH0pXG4gIH07XG59XG5cbi8vIGluZGV4Lmh0bWwgaGFzIHRoZSBwcm9kdWN0aW9uLWZpbmdlcnByaW50ZWQgcmVmZXJlbmNlcyB0byB0aGVzZSBsaW5rc1xuLy8gSWRlYWxseSwgd2UnZCBoYXZlIHNvbWUgcHJlLXByb2Nlc3NvciBzY2FuIGV2ZXJ5dGhpbmcgZm9yIHJlZmVyZW5jZXMgdG9cbi8vIGFzc2V0cyBpbiBwdWJsaWMsIGJ1dCBpZGsgaG93IHRvIHNldCB0aGF0IHVwXG5jb25zdCBnZXRTdHlsZXMgPSAoKSA9PiBbLi4uZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rJyldLm1hcCgobGluaykgPT4gbGluay5ocmVmKTtcblxuY29uc3QgU3R5bGVzID0gPHRlbXBsYXRlPlxuICB7eyNsZXQgKGdldFN0eWxlcykgYXMgfHN0eWxlc3x9fVxuICAgIHt7I2VhY2ggc3R5bGVzIGFzIHxzdHlsZUhyZWZ8fX1cblxuICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPXt7c3R5bGVIcmVmfX0gLz5cblxuICAgIHt7L2VhY2h9fVxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbi8qKlxuICAqIFJlbmRlciBjb250ZW50IGluIGEgc2hhZG93IGRvbSwgYXR0YWNoZWQgdG8gYSBkaXZcbiAgKi9cbmV4cG9ydCBjb25zdCBTaGFkb3dlZDogVE9DPHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgICogQnkgZGVmYXVsdCwgc2hhZG93LWRvbSBkb2VzIG5vdCBpbmNsdWRlIGFueSBzdHlsZXMuXG4gICAgICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgaW5jbHVkZSBhbGwgdGhlIGA8c3R5bGU+YCB0YWdzXG4gICAgICAqIHRoYXQgYXJlIHByZXNlbnQgaW4gdGhlIGA8aGVhZD5gIGVsZW1lbnQuXG4gICAgICAqL1xuICAgIGluY2x1ZGVTdHlsZXM/OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHsgZGVmYXVsdDogW10gfTtcbn0+ID0gPHRlbXBsYXRlPlxuICB7eyNsZXQgKFNoYWRvdykgYXMgfHNoYWRvd3x9fVxuICAgIHt7IS0tIFRPRE86IFdlIG5lZWQgYSB3YXkgaW4gZW1iZXIgdG8gcmVuZGVyIGluIHRvIGEgc2hhZG93IGRvbSB3aXRob3V0IGFuIGVmZmVjdCAtLX19XG4gICAgPGRpdiB7e3NoYWRvdy5hdHRhY2h9fSAuLi5hdHRyaWJ1dGVzPjwvZGl2PlxuXG4gICAge3sjaWYgc2hhZG93LnJvb3R9fVxuICAgICAge3sjaW4tZWxlbWVudCBzaGFkb3cucm9vdH19XG5cbiAgICAgICAge3sjaWYgQGluY2x1ZGVTdHlsZXN9fVxuICAgICAgICAgIDxTdHlsZXMgLz5cbiAgICAgICAge3svaWZ9fVxuXG4gICAgICAgIHt7eWllbGR9fVxuXG4gICAgICB7ey9pbi1lbGVtZW50fX1cbiAgICB7ey9pZn19XG4gIHt7L2xldH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgU2hhZG93ZWQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQ7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEM7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0Y7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBVTtBQUN6Qjs7Ozs7O1VBTVU7QUFDVixxREFBVyxDQUFDO0FBQ1o7QUFDQSxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFVO0FBQ2Y7Ozs7Ozs7Ozs7Ozs7OztVQWVVO0FBQ1YseURBQVcsQ0FBQztBQUNaO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7In0="],"names":["Shadow","shadow","cell","root","current","attach","modifier","element","set","attachShadow","mode","getStyles","document","head","querySelectorAll","map","link","href","Styles","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly","Shadowed"],"mappings":";;;;;;AAKA,MAAMA,MAAM,GAAGA,MAAM;AACnB,EAAA,IAAIC,MAAM,GAAGC,IAAI,EAAc,CAAA;EAE/B,OAAO;IACL,IAAIC,IAAIA,GAAG;MAAE,OAAOF,MAAM,CAACG,OAAO,CAAA;KAAG;AACrCC,IAAAA,MAAM,EAAEC,QAAQ,CAAEC,OAAgB,IAAK;AACrCN,MAAAA,MAAM,CAACO,GAAG,CAACD,OAAO,CAACE,YAAY,CAAC;AAAEC,QAAAA,IAAI,EAAE,MAAA;AAAO,OAAC,CAAC,CAAC,CAAA;KACnD,CAAA;GACF,CAAA;AACH,CAAC,CAAA;;AAED;AACA;AACA;AACA,MAAMC,SAAS,GAAGA,MAAM,CAAC,GAAGC,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,CAAC,CAAA;AAE5F,MAAMC,MAAM,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACzB;;;;;;;AAOA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAX,IAAAA,SAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAAAY,YAAA,CAAW,UAAA,EAAA,QAAA,CAAA,CAAA,CAAA;;AAEX;AACA;AACA;MACaC,QAWX,GAAAL,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACf;;;;;;;;;;;;;;;;AAgBA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAtB,MAAA;AAAAkB,IAAAA,MAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAAAK,YAAA,CAAW,UAAA,EAAA,UAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Label } from "./typed-elements.js";
|
|
2
|
+
import { TOC } from '@ember/component/template-only';
|
|
3
|
+
import { WithBoundArgs } from '@glint/template';
|
|
4
|
+
interface Signature {
|
|
5
|
+
Element: HTMLInputElement;
|
|
6
|
+
Args: {
|
|
7
|
+
checked?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
onChange?: (checked: boolean, event: Event) => void;
|
|
10
|
+
};
|
|
11
|
+
Blocks: {
|
|
12
|
+
default?: [
|
|
13
|
+
{
|
|
14
|
+
Control: WithBoundArgs<typeof Checkbox, 'checked' | 'id'>;
|
|
15
|
+
Label: WithBoundArgs<typeof Label, 'for'>;
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
declare const Checkbox: TOC<{
|
|
21
|
+
Element: HTMLInputElement;
|
|
22
|
+
Args: {
|
|
23
|
+
id: string;
|
|
24
|
+
checked?: boolean;
|
|
25
|
+
};
|
|
26
|
+
}>;
|
|
27
|
+
declare const Switch: TOC<Signature>;
|
|
28
|
+
export { Switch as default, Switch };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
import { hash } from '@ember/helper';
|
|
5
|
+
import { uniqueId } from '../utils.js';
|
|
6
|
+
import { Label } from './typed-elements.js';
|
|
7
|
+
|
|
8
|
+
const Checkbox = setComponentTemplate(precompileTemplate(`
|
|
9
|
+
<input id={{@id}} type='checkbox' role='switch' checked={{@checked}} ...attributes />
|
|
10
|
+
`, {
|
|
11
|
+
strictMode: true
|
|
12
|
+
}), templateOnly("switch", "Checkbox"));
|
|
13
|
+
const Switch = setComponentTemplate(precompileTemplate(`
|
|
14
|
+
<div ...attributes data-prim-switch>
|
|
15
|
+
{{! @glint-nocheck }}
|
|
16
|
+
{{#let (uniqueId) as |id|}}
|
|
17
|
+
{{yield
|
|
18
|
+
(hash Control=(component Checkbox checked=@checked id=id) Label=(component Label for=id))
|
|
19
|
+
}}
|
|
20
|
+
{{/let}}
|
|
21
|
+
</div>
|
|
22
|
+
`, {
|
|
23
|
+
strictMode: true,
|
|
24
|
+
scope: () => ({
|
|
25
|
+
uniqueId,
|
|
26
|
+
hash,
|
|
27
|
+
Checkbox,
|
|
28
|
+
Label
|
|
29
|
+
})
|
|
30
|
+
}), templateOnly("switch", "Switch"));
|
|
31
|
+
|
|
32
|
+
export { Switch, Switch as default };
|
|
33
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sources":["../../src/components/switch.ts"],"sourcesContent":["// NOTE: https://github.com/emberjs/ember.js/issues/20165\nimport { hash } from '@ember/helper';\n\nimport { uniqueId } from '../utils';\nimport { Label } from './typed-elements';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface Signature {\n Element: HTMLInputElement;\n Args: {\n checked?: boolean;\n disabled?: boolean;\n onChange?: (checked: boolean, event: Event) => void;\n };\n Blocks: {\n default?: [\n {\n Control: WithBoundArgs<typeof Checkbox, 'checked' | 'id'>;\n Label: WithBoundArgs<typeof Label, 'for'>;\n }\n ];\n };\n}\n\nconst Checkbox: TOC<{\n Element: HTMLInputElement;\n Args: { id: string; checked?: boolean };\n}> = [__GLIMMER_TEMPLATE(`\n <input id={{@id}} type='checkbox' role='switch' checked={{@checked}} ...attributes />\n`, { strictMode: true })];\n\nexport const Switch: TOC<Signature> = [__GLIMMER_TEMPLATE(`\n <div ...attributes data-prim-switch>\n {{! @glint-nocheck }}\n {{#let (uniqueId) as |id|}}\n {{yield\n (hash Control=(component Checkbox checked=@checked id=id) Label=(component Label for=id))\n }}\n {{/let}}\n </div>\n`, { strictMode: true, scope: () => ({uniqueId,hash,Checkbox,Label}) })];\n\nexport default Switch;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmpzIiwic291cmNlcyI6WyJzd2l0Y2guZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8yMDE2NVxuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuXG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExhYmVsIH0gZnJvbSAnLi90eXBlZC1lbGVtZW50cyc7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncyB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmludGVyZmFjZSBTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgY2hlY2tlZD86IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIG9uQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4sIGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdD86IFtcbiAgICAgIHtcbiAgICAgICAgQ29udHJvbDogV2l0aEJvdW5kQXJnczx0eXBlb2YgQ2hlY2tib3gsICdjaGVja2VkJyB8ICdpZCc+O1xuICAgICAgICBMYWJlbDogV2l0aEJvdW5kQXJnczx0eXBlb2YgTGFiZWwsICdmb3InPjtcbiAgICAgIH1cbiAgICBdO1xuICB9O1xufVxuXG5jb25zdCBDaGVja2JveDogVE9DPHtcbiAgRWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcbiAgQXJnczogeyBpZDogc3RyaW5nOyBjaGVja2VkPzogYm9vbGVhbiB9O1xufT4gPSA8dGVtcGxhdGU+XG4gIDxpbnB1dCBpZD17e0BpZH19IHR5cGU9J2NoZWNrYm94JyByb2xlPSdzd2l0Y2gnIGNoZWNrZWQ9e3tAY2hlY2tlZH19IC4uLmF0dHJpYnV0ZXMgLz5cbjwvdGVtcGxhdGU+O1xuXG5leHBvcnQgY29uc3QgU3dpdGNoOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiAuLi5hdHRyaWJ1dGVzIGRhdGEtcHJpbS1zd2l0Y2g+XG4gICAge3shIEBnbGludC1ub2NoZWNrIH19XG4gICAge3sjbGV0ICh1bmlxdWVJZCkgYXMgfGlkfH19XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoIENvbnRyb2w9KGNvbXBvbmVudCBDaGVja2JveCBjaGVja2VkPUBjaGVja2VkIGlkPWlkKSBMYWJlbD0oY29tcG9uZW50IExhYmVsIGZvcj1pZCkpXG4gICAgICB9fVxuICAgIHt7L2xldH19XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFN3aXRjaDtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQ7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFVO0FBQ2YsdUZBQXVGO0FBQ3ZGLHlCQUFXLENBQUM7QUFDWjtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBVTtBQUNoRDs7Ozs7OztRQU9RO0FBQ1Isd0VBQVcsQ0FBQztBQUNaO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzsifQ=="],"names":["Checkbox","setComponentTemplate","precompileTemplate","strictMode","templateOnly","Switch","scope","uniqueId","hash","Label"],"mappings":";;;;;;;AA0BA,MAAMA,QAGJ,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACf;AACA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAC,YAAA,CAAW,QAAA,EAAA,UAAA,CAAA,CAAA,CAAA;MAEEC,MAAsB,GAAAJ,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AAChD;;;;;;;;AAQA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAG,EAAAA,KAAA,EAAAA,OAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAR,QAAA;AAAAS,IAAAA,KAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAAAL,YAAA,CAAW,QAAA,EAAA,QAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TOC } from '@ember/component/template-only';
|
|
2
|
+
declare const Div: TOC<{
|
|
3
|
+
Element: HTMLDivElement;
|
|
4
|
+
Blocks: {
|
|
5
|
+
default: [];
|
|
6
|
+
};
|
|
7
|
+
}>;
|
|
8
|
+
declare const Label: TOC<{
|
|
9
|
+
Element: HTMLLabelElement;
|
|
10
|
+
Args: {
|
|
11
|
+
for: string;
|
|
12
|
+
};
|
|
13
|
+
Blocks: {
|
|
14
|
+
default: [];
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
17
|
+
export { Div, Label };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
|
|
5
|
+
const Div = setComponentTemplate(precompileTemplate(`<div ...attributes>{{yield}}</div>`, {
|
|
6
|
+
strictMode: true
|
|
7
|
+
}), templateOnly("typed-elements", "Div"));
|
|
8
|
+
const Label = setComponentTemplate(precompileTemplate(`<label for={{@for}} ...attributes>{{yield}}</label>`, {
|
|
9
|
+
strictMode: true
|
|
10
|
+
}), templateOnly("typed-elements", "Label"));
|
|
11
|
+
|
|
12
|
+
export { Div, Label };
|
|
13
|
+
//# sourceMappingURL=typed-elements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-elements.js","sources":["../../src/components/typed-elements.ts"],"sourcesContent":["import type { TOC } from '@ember/component/template-only';\n\nexport const Div: TOC<{ Element: HTMLDivElement, Blocks: {default: []} }> = [__GLIMMER_TEMPLATE(`<div ...attributes>{{yield}}</div>`, { strictMode: true })];\n\nexport const Label: TOC<{ Element: HTMLLabelElement, Args: { for: string }, Blocks: { default: []}}> = [__GLIMMER_TEMPLATE(`<label for={{@for}} ...attributes>{{yield}}</label>`, { strictMode: true })];\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtZWxlbWVudHMuanMiLCJzb3VyY2VzIjpbInR5cGVkLWVsZW1lbnRzLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbmV4cG9ydCBjb25zdCBEaXY6IFRPQzx7IEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LCBCbG9ja3M6IHtkZWZhdWx0OiBbXX0gfT4gPSA8dGVtcGxhdGU+PGRpdiAuLi5hdHRyaWJ1dGVzPnt7eWllbGR9fTwvZGl2PjwvdGVtcGxhdGU+O1xuXG5leHBvcnQgY29uc3QgTGFiZWw6IFRPQzx7IEVsZW1lbnQ6IEhUTUxMYWJlbEVsZW1lbnQsIEFyZ3M6IHsgZm9yOiBzdHJpbmcgfSwgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdfX0+ID0gPHRlbXBsYXRlPjxsYWJlbCBmb3I9e3tAZm9yfX0gLi4uYXR0cmlidXRlcz57e3lpZWxkfX08L2xhYmVsPjwvdGVtcGxhdGU+O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQ7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFVLENBQUMsZ0NBQWdDLENBQUMseUJBQVcsQ0FBQztBQUNwSTtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQVUsQ0FBQyxpREFBaUQsQ0FBQyx5QkFBVyxDQUFDOyJ9"],"names":["Div","setComponentTemplate","precompileTemplate","strictMode","templateOnly","Label"],"mappings":";;;;MAEaA,GAA4D,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAkC,kCAAA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAC,YAAA,CAAW,gBAAA,EAAA,KAAA,CAAA,EAAA;MAEtHC,KAAuF,GAAAJ,oBAAA,CAAAC,kBAAA,CAAa,CAAmD,mDAAA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAC,YAAA,CAAW,gBAAA,EAAA,OAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
[aria-label='::missing::'] {
|
|
2
|
+
border: red;
|
|
3
|
+
}
|
|
4
|
+
label [aria-label='::missing::'] {
|
|
5
|
+
border: unset;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* ExternalLink
|
|
10
|
+
*/
|
|
11
|
+
a[href='##missing##'],
|
|
12
|
+
/**
|
|
13
|
+
* Switch
|
|
14
|
+
*/
|
|
15
|
+
div[data-prim-switch]:has(input[role="switch"]):not(:has(label)) input[role="switch"] {
|
|
16
|
+
position: relative;
|
|
17
|
+
border: 1px solid black;
|
|
18
|
+
padding: 0.125rem 0.25rem;
|
|
19
|
+
border-radius: 0.125rem;
|
|
20
|
+
min-width: 10px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:is(
|
|
24
|
+
/**
|
|
25
|
+
* ExternalLink
|
|
26
|
+
*/
|
|
27
|
+
a[href='##missing##'],
|
|
28
|
+
/**
|
|
29
|
+
* Switch
|
|
30
|
+
*/
|
|
31
|
+
div[data-prim-switch]:not(:has(label)):has(input[role="switch"]) input[role="switch"]
|
|
32
|
+
):after {
|
|
33
|
+
color: red;
|
|
34
|
+
position: absolute;
|
|
35
|
+
font-size: 0.75rem;
|
|
36
|
+
font-family: monospace;
|
|
37
|
+
background: black;
|
|
38
|
+
padding: 0.125rem 0.25rem;
|
|
39
|
+
display: flex;
|
|
40
|
+
border-radius: 0.125rem;
|
|
41
|
+
transform: translate(0.5rem, 1rem);
|
|
42
|
+
left: 0;
|
|
43
|
+
bottom: 0;
|
|
44
|
+
width: max-content;
|
|
45
|
+
z-index: 10000000000000000;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
a[href='##missing##']:after {
|
|
49
|
+
content: 'empty href';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
div[data-prim-switch]:not(:has(label)):has(input[role='switch']) input[role='switch']:after {
|
|
53
|
+
content: 'missing label';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@media (prefers-color-scheme: light) {
|
|
57
|
+
:is(
|
|
58
|
+
a[href='##missing##'],
|
|
59
|
+
div[data-prim-switch]:has(input[role='switch']):not(:has(label)) input[role='switch']
|
|
60
|
+
) {
|
|
61
|
+
border-color: black;
|
|
62
|
+
}
|
|
63
|
+
:is(
|
|
64
|
+
a[href='##missing##'],
|
|
65
|
+
div[data-prim-switch]:not(:has(label)):has(input[role='switch']) input[role='switch']
|
|
66
|
+
):after {
|
|
67
|
+
background: white;
|
|
68
|
+
border: 1px solid black;
|
|
69
|
+
color: darkred;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@media (prefers-color-scheme: dark) {
|
|
74
|
+
:is(
|
|
75
|
+
a[href='##missing##'],
|
|
76
|
+
div[data-prim-switch]:has(input[role='switch']):not(:has(label)) input[role='switch']
|
|
77
|
+
) {
|
|
78
|
+
border-color: red;
|
|
79
|
+
}
|
|
80
|
+
:is(
|
|
81
|
+
a[href='##missing##'],
|
|
82
|
+
div[data-prim-switch]:not(:has(label)):has(input[role='switch']) input[role='switch']
|
|
83
|
+
):after {
|
|
84
|
+
background: #222;
|
|
85
|
+
border: 1px solid red;
|
|
86
|
+
color: red;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Helper from '@ember/component/helper';
|
|
2
|
+
import Service from '@ember/service';
|
|
3
|
+
import { Registry } from "@ember/service";
|
|
4
|
+
interface Signature<Key extends keyof Registry> {
|
|
5
|
+
Args: {
|
|
6
|
+
Positional: [Key];
|
|
7
|
+
};
|
|
8
|
+
Return: Registry[Key] & Service;
|
|
9
|
+
}
|
|
10
|
+
declare class GetService<Key extends keyof Registry> extends Helper<Signature<Key>> {
|
|
11
|
+
compute(positional: [Key]): Registry[Key] & Service;
|
|
12
|
+
}
|
|
13
|
+
declare const service: typeof GetService;
|
|
14
|
+
export { GetService as default, service };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Helper from '@ember/component/helper';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
import { getOwner } from '@ember/owner';
|
|
4
|
+
|
|
5
|
+
class GetService extends Helper {
|
|
6
|
+
compute(positional) {
|
|
7
|
+
let owner = getOwner(this);
|
|
8
|
+
assert(`Could not get owner.`, owner);
|
|
9
|
+
return owner.lookup(`service:${positional[0]}`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const service = GetService;
|
|
13
|
+
|
|
14
|
+
export { GetService as default, service };
|
|
15
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sources":["../../src/helpers/service.ts"],"sourcesContent":["import Helper from '@ember/component/helper';\nimport { assert } from '@ember/debug';\nimport { getOwner } from '@ember/owner';\n\nimport type { Registry } from '@ember/service';\nimport type Service from '@ember/service';\n\ninterface Signature<Key extends keyof Registry> {\n Args: {\n Positional: [Key];\n };\n Return: Registry[Key] & Service;\n}\n\nexport default class GetService<Key extends keyof Registry> extends Helper<Signature<Key>> {\n compute(positional: [Key]): Registry[Key] & Service {\n let owner = getOwner(this);\n\n assert(`Could not get owner.`, owner);\n\n return owner.lookup(`service:${positional[0]}`);\n }\n}\n\nexport const service = GetService;\n"],"names":["GetService","Helper","compute","positional","owner","getOwner","assert","lookup","service"],"mappings":";;;;AAce,MAAMA,UAAU,SAAqCC,MAAM,CAAiB;EACzFC,OAAOA,CAACC,UAAiB,EAA2B;AAClD,IAAA,IAAIC,KAAK,GAAGC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE1BC,IAAAA,MAAM,CAAE,CAAA,oBAAA,CAAqB,EAAEF,KAAK,CAAC,CAAA;IAErC,OAAOA,KAAK,CAACG,MAAM,CAAE,CAAA,QAAA,EAAUJ,UAAU,CAAC,CAAC,CAAE,CAAA,CAAC,CAAC,CAAA;AACjD,GAAA;AACF,CAAA;AAEO,MAAMK,OAAO,GAAGR;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { service } from "./helpers/service.js";
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ExternalLink } from "./components/external-link.js";
|
|
2
|
+
export { Link } from "./components/link.js";
|
|
3
|
+
export { Popover } from "./components/popover.js";
|
|
4
|
+
export { Shadowed } from "./components/shadowed.js";
|
|
5
|
+
export { Switch } from "./components/switch.js";
|
|
6
|
+
export * from "./helpers.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { macroCondition, isDevelopingApp, importSync } from '@embroider/macros';
|
|
2
|
+
export { ExternalLink } from './components/external-link.js';
|
|
3
|
+
export { Link } from './components/link.js';
|
|
4
|
+
export { Popover } from './components/popover.js';
|
|
5
|
+
export { Shadowed } from './components/shadowed.js';
|
|
6
|
+
export { Switch } from './components/switch.js';
|
|
7
|
+
export { service } from './helpers/service.js';
|
|
8
|
+
|
|
9
|
+
if (macroCondition(isDevelopingApp())) {
|
|
10
|
+
importSync('./components/violations.css');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';\n\nif (macroCondition(isDevelopingApp())) {\n importSync('./components/violations.css');\n}\n\nexport { ExternalLink } from './components/external-link';\nexport { Link } from './components/link';\nexport { Popover } from './components/popover';\nexport { Shadowed } from './components/shadowed';\nexport { Switch } from './components/switch';\nexport * from './helpers';\n"],"names":["macroCondition","isDevelopingApp","importSync"],"mappings":";;;;;;;;AAEA,IAAIA,cAAc,CAACC,eAAe,EAAE,CAAC,EAAE;EACrCC,UAAU,CAAC,6BAA6B,CAAC,CAAA;AAC3C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import EmberRouter from '@ember/routing/router';
|
|
2
|
+
type RouterType = typeof EmberRouter;
|
|
3
|
+
interface Options {
|
|
4
|
+
ignore?: string[];
|
|
5
|
+
}
|
|
6
|
+
declare function properLinks(options: Options): (klass: RouterType) => RouterType;
|
|
7
|
+
declare function properLinks(klass: RouterType): RouterType;
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
declare function properLinks(options: Options, klass: RouterType): RouterType;
|
|
12
|
+
export { properLinks };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { assert } from '@ember/debug';
|
|
2
|
+
import { registerDestructor } from '@ember/destroyable';
|
|
3
|
+
import { getOwner } from '@ember/owner';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
function properLinks(...args) {
|
|
10
|
+
let options = {};
|
|
11
|
+
let klass = undefined;
|
|
12
|
+
if (args.length === 2) {
|
|
13
|
+
options = args[0];
|
|
14
|
+
klass = args[1];
|
|
15
|
+
} else if (args.length === 1) {
|
|
16
|
+
if (typeof args[0] === 'object') {
|
|
17
|
+
// TODO: how to get first arg type correct?
|
|
18
|
+
return klass => properLinks(args[0], klass);
|
|
19
|
+
} else {
|
|
20
|
+
klass = args[0];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
let ignore = options.ignore || [];
|
|
24
|
+
assert(`klass was not defined. possibile incorrect arity given to properLinks`, klass);
|
|
25
|
+
return class extends klass {
|
|
26
|
+
constructor(...args) {
|
|
27
|
+
super(...args);
|
|
28
|
+
const handler = event => {
|
|
29
|
+
/**
|
|
30
|
+
* event.target may not be an anchor,
|
|
31
|
+
* it may be a span, svg, img, or any number of elements nested in <a>...</a>
|
|
32
|
+
*/
|
|
33
|
+
let interactive = isLink(event);
|
|
34
|
+
if (!interactive) return;
|
|
35
|
+
let owner = getOwner(this);
|
|
36
|
+
assert('owner is not present', owner);
|
|
37
|
+
let routerService = owner.lookup('service:router');
|
|
38
|
+
handle(routerService, interactive, ignore, event);
|
|
39
|
+
return false;
|
|
40
|
+
};
|
|
41
|
+
document.body.addEventListener('click', handler, false);
|
|
42
|
+
registerDestructor(this, () => document.body.removeEventListener('click', handler));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function isLink(event) {
|
|
47
|
+
/**
|
|
48
|
+
* Using composed path in case the link is removed from the DOM
|
|
49
|
+
* before the event handler evaluates
|
|
50
|
+
*/
|
|
51
|
+
let composedPath = event.composedPath();
|
|
52
|
+
for (let element of composedPath) {
|
|
53
|
+
if (element instanceof HTMLAnchorElement) {
|
|
54
|
+
return element;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function handle(router, element, ignore, event) {
|
|
59
|
+
/**
|
|
60
|
+
* The href includes the protocol/host/etc
|
|
61
|
+
* In order to not have the page look like a full page refresh,
|
|
62
|
+
* we need to chop that "origin" off, and just use the path
|
|
63
|
+
*/
|
|
64
|
+
let url = new URL(element.href);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* If the domains are different, we want to fall back to normal link behavior
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
70
|
+
if (location.origin !== url.origin) return;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* We can optionally declare some paths as ignored,
|
|
74
|
+
* or "let the browser do its default thing,
|
|
75
|
+
* because there is other server-based routing to worry about"
|
|
76
|
+
*/
|
|
77
|
+
if (ignore.includes(url.pathname)) return;
|
|
78
|
+
let routeInfo = router.recognize(url.pathname);
|
|
79
|
+
if (routeInfo) {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
event.stopImmediatePropagation();
|
|
82
|
+
event.stopPropagation();
|
|
83
|
+
router.transitionTo(url.pathname);
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { properLinks };
|
|
89
|
+
//# sourceMappingURL=proper-links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proper-links.js","sources":["../src/proper-links.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { getOwner } from '@ember/owner';\n\nimport type EmberRouter from '@ember/routing/router';\nimport type RouterService from '@ember/routing/router-service';\n\ntype RouterType = typeof EmberRouter;\n\ninterface Options {\n ignore?: string[];\n}\n\nexport function properLinks(options: Options): (klass: RouterType) => RouterType;\nexport function properLinks(klass: RouterType): RouterType;\n/**\n * @internal\n */\nexport function properLinks(options: Options, klass: RouterType): RouterType;\n\nexport function properLinks(\n ...args: [Options] | [RouterType] | [Options, RouterType]\n): RouterType | ((klass: RouterType) => RouterType) {\n let options: Options = {};\n let klass: undefined | RouterType = undefined;\n\n if (args.length === 2) {\n options = args[0] as Options;\n klass = args[1] as RouterType;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n // TODO: how to get first arg type correct?\n return (klass: RouterType) => properLinks(args[0] as any, klass);\n } else {\n klass = args[0];\n }\n }\n\n let ignore = options.ignore || [];\n\n assert(`klass was not defined. possibile incorrect arity given to properLinks`, klass);\n\n return class extends klass {\n constructor(...args: object[]) {\n super(...args);\n\n const handler = (event: MouseEvent) => {\n /**\n * event.target may not be an anchor,\n * it may be a span, svg, img, or any number of elements nested in <a>...</a>\n */\n let interactive = isLink(event);\n\n if (!interactive) return;\n\n let owner = getOwner(this);\n\n assert('owner is not present', owner);\n\n let routerService = owner.lookup('service:router');\n\n handle(routerService, interactive, ignore, event);\n\n return false;\n };\n\n document.body.addEventListener('click', handler, false);\n\n registerDestructor(this, () => document.body.removeEventListener('click', handler));\n }\n };\n}\n\nfunction isLink(event: Event) {\n /**\n * Using composed path in case the link is removed from the DOM\n * before the event handler evaluates\n */\n let composedPath = event.composedPath();\n\n for (let element of composedPath) {\n if (element instanceof HTMLAnchorElement) {\n return element;\n }\n }\n}\n\nfunction handle(router: RouterService, element: HTMLAnchorElement, ignore: string[], event: Event) {\n /**\n * The href includes the protocol/host/etc\n * In order to not have the page look like a full page refresh,\n * we need to chop that \"origin\" off, and just use the path\n */\n let url = new URL(element.href);\n\n /**\n * If the domains are different, we want to fall back to normal link behavior\n *\n */\n if (location.origin !== url.origin) return;\n\n /**\n * We can optionally declare some paths as ignored,\n * or \"let the browser do its default thing,\n * because there is other server-based routing to worry about\"\n */\n if (ignore.includes(url.pathname)) return;\n\n let routeInfo = router.recognize(url.pathname);\n\n if (routeInfo) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n router.transitionTo(url.pathname);\n\n return false;\n }\n}\n"],"names":["properLinks","args","options","klass","undefined","length","ignore","assert","constructor","handler","event","interactive","isLink","owner","getOwner","routerService","lookup","handle","document","body","addEventListener","registerDestructor","removeEventListener","composedPath","element","HTMLAnchorElement","router","url","URL","href","location","origin","includes","pathname","routeInfo","recognize","preventDefault","stopImmediatePropagation","stopPropagation","transitionTo"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-registry.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/utils.d.ts
ADDED
package/dist/utils.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// this is copy pasted from https://github.com/emberjs/ember.js/blob/60d2e0cddb353aea0d6e36a72fda971010d92355/packages/%40ember/-internals/glimmer/lib/helpers/unique-id.ts
|
|
2
|
+
// Unfortunately due to https://github.com/emberjs/ember.js/issues/20165 we cannot use the built-in version in template tags
|
|
3
|
+
function uniqueId() {
|
|
4
|
+
// @ts-expect-error this one-liner abuses weird JavaScript semantics that
|
|
5
|
+
// TypeScript (legitimately) doesn't like, but they're nonetheless valid and
|
|
6
|
+
// specced.
|
|
7
|
+
return ([3e7] + -1e3 + -4e3 + -2e3 + -1e11).replace(/[0-3]/g, a => (a * 4 ^ Math.random() * 16 >> (a & 2)).toString(16));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { uniqueId };
|
|
11
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["// this is copy pasted from https://github.com/emberjs/ember.js/blob/60d2e0cddb353aea0d6e36a72fda971010d92355/packages/%40ember/-internals/glimmer/lib/helpers/unique-id.ts\n// Unfortunately due to https://github.com/emberjs/ember.js/issues/20165 we cannot use the built-in version in template tags\nexport function uniqueId() {\n // @ts-expect-error this one-liner abuses weird JavaScript semantics that\n // TypeScript (legitimately) doesn't like, but they're nonetheless valid and\n // specced.\n return ([3e7] + -1e3 + -4e3 + -2e3 + -1e11).replace(/[0-3]/g, (a) =>\n ((a * 4) ^ ((Math.random() * 16) >> (a & 2))).toString(16)\n );\n}\n"],"names":["uniqueId","replace","a","Math","random","toString"],"mappings":"AAAA;AACA;AACO,SAASA,QAAQA,GAAG;AACzB;AACA;AACA;EACA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAEC,OAAO,CAAC,QAAQ,EAAGC,CAAC,IAC9D,CAAEA,CAAC,GAAG,CAAC,GAAMC,IAAI,CAACC,MAAM,EAAE,GAAG,EAAE,KAAMF,CAAC,GAAG,CAAC,CAAE,EAAEG,QAAQ,CAAC,EAAE,CAC3D,CAAC,CAAA;AACH;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ember-primitives",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Making apps easier to build",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ember-addon"
|
|
7
|
+
],
|
|
8
|
+
"repository": "",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": "nullvoxpopuli",
|
|
11
|
+
"files": [
|
|
12
|
+
"addon-main.cjs",
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "rollup --config ./rollup.config.mjs",
|
|
17
|
+
"lint": "pnpm -w exec lint",
|
|
18
|
+
"lint:fix": "pnpm -w exec lint fix",
|
|
19
|
+
"lint:js": "pnpm -w exec lint js",
|
|
20
|
+
"lint:js:fix": "pnpm -w exec lint js:fix",
|
|
21
|
+
"lint:hbs": "pnpm -w exec lint hbs",
|
|
22
|
+
"lint:hbs:fix": "pnpm -w exec lint hbs:fix",
|
|
23
|
+
"lint:package": "pnpm publint",
|
|
24
|
+
"lint:prettier:fix": "pnpm -w exec lint prettier:fix",
|
|
25
|
+
"lint:prettier": "pnpm -w exec lint prettier",
|
|
26
|
+
"lint:types": "glint",
|
|
27
|
+
"start": "rollup --config --watch",
|
|
28
|
+
"test": "echo 'A v2 addon does not have tests, run tests in test-app'",
|
|
29
|
+
"prepack": "rollup --config"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@babel/runtime": "^7.22.3",
|
|
33
|
+
"@embroider/addon-shim": "1.8.6-unstable.d120477",
|
|
34
|
+
"@embroider/macros": "1.11.1-unstable.d120477"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@babel/core": "^7.17.0",
|
|
38
|
+
"@babel/eslint-parser": "^7.21.8",
|
|
39
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
40
|
+
"@babel/plugin-proposal-decorators": "^7.22.3",
|
|
41
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
42
|
+
"@babel/plugin-syntax-decorators": "^7.22.3",
|
|
43
|
+
"@babel/preset-typescript": "^7.21.5",
|
|
44
|
+
"@embroider/addon-dev": "3.1.1-unstable.d120477",
|
|
45
|
+
"@glimmer/component": "^1.1.2",
|
|
46
|
+
"@glimmer/tracking": "^1.1.2",
|
|
47
|
+
"@glint/core": "^1.0.2",
|
|
48
|
+
"@glint/environment-ember-loose": "^1.0.2",
|
|
49
|
+
"@glint/environment-ember-template-imports": "^1.0.2",
|
|
50
|
+
"@glint/template": "^1.0.2",
|
|
51
|
+
"@nullvoxpopuli/eslint-configs": "^3.1.3",
|
|
52
|
+
"@tsconfig/ember": "^2.0.0",
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^5.59.8",
|
|
54
|
+
"@typescript-eslint/parser": "^5.59.8",
|
|
55
|
+
"concurrently": "^8.1.0",
|
|
56
|
+
"ember-modifier": "^4.1.0",
|
|
57
|
+
"ember-resources": "^6.1.0",
|
|
58
|
+
"ember-source": "~5.0.0",
|
|
59
|
+
"ember-template-imports": "^3.4.2",
|
|
60
|
+
"ember-template-lint": "^5.10.0",
|
|
61
|
+
"eslint": "^8.41.0",
|
|
62
|
+
"eslint-config-prettier": "^8.3.0",
|
|
63
|
+
"eslint-plugin-ember": "^11.8.0",
|
|
64
|
+
"eslint-plugin-node": "^11.1.0",
|
|
65
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
66
|
+
"prettier": "^2.8.8",
|
|
67
|
+
"publint": "^0.1.12",
|
|
68
|
+
"rollup": "~3.21.0",
|
|
69
|
+
"rollup-plugin-copy": "^3.4.0",
|
|
70
|
+
"rollup-plugin-glimmer-template-tag": "^0.4.1",
|
|
71
|
+
"rollup-plugin-ts": "^3.2.0",
|
|
72
|
+
"typescript": "^5.1.3"
|
|
73
|
+
},
|
|
74
|
+
"publishConfig": {
|
|
75
|
+
"registry": "https://registry.npmjs.org"
|
|
76
|
+
},
|
|
77
|
+
"ember": {
|
|
78
|
+
"edition": "octane"
|
|
79
|
+
},
|
|
80
|
+
"ember-addon": {
|
|
81
|
+
"version": 2,
|
|
82
|
+
"type": "addon",
|
|
83
|
+
"main": "addon-main.cjs",
|
|
84
|
+
"app-js": {
|
|
85
|
+
"./color-scheme.js": "./dist/_app_/color-scheme.js",
|
|
86
|
+
"./components/external-link.js": "./dist/_app_/components/external-link.js",
|
|
87
|
+
"./components/link.js": "./dist/_app_/components/link.js",
|
|
88
|
+
"./components/popover.js": "./dist/_app_/components/popover.js",
|
|
89
|
+
"./components/portal-targets.js": "./dist/_app_/components/portal-targets.js",
|
|
90
|
+
"./components/shadowed.js": "./dist/_app_/components/shadowed.js",
|
|
91
|
+
"./components/switch.js": "./dist/_app_/components/switch.js",
|
|
92
|
+
"./components/typed-elements.js": "./dist/_app_/components/typed-elements.js",
|
|
93
|
+
"./helpers/service.js": "./dist/_app_/helpers/service.js",
|
|
94
|
+
"./proper-links.js": "./dist/_app_/proper-links.js"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"exports": {
|
|
98
|
+
".": "./dist/index.js",
|
|
99
|
+
"./*": {
|
|
100
|
+
"types": "./dist/*.d.ts",
|
|
101
|
+
"default": "./dist/*.js"
|
|
102
|
+
},
|
|
103
|
+
"./addon-main.js": "./addon-main.cjs"
|
|
104
|
+
},
|
|
105
|
+
"typesVersions": {
|
|
106
|
+
"*": {
|
|
107
|
+
"*": [
|
|
108
|
+
"dist/*"
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"peerDependencies": {
|
|
113
|
+
"@glimmer/component": "^1.1.2",
|
|
114
|
+
"@glimmer/tracking": "^1.1.2",
|
|
115
|
+
"ember-modifier": "^4.1.0",
|
|
116
|
+
"ember-resources": "^6.1.0",
|
|
117
|
+
"ember-source": "~4.12.0"
|
|
118
|
+
}
|
|
119
|
+
}
|