ember-primitives 0.16.0 → 0.17.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/declarations/components/dialog.d.ts +4 -4
- package/declarations/components/form.d.ts +19 -1
- package/declarations/components/form.d.ts.map +1 -1
- package/declarations/components/link.d.ts +35 -13
- package/declarations/components/link.d.ts.map +1 -1
- package/declarations/components/one-time-password/input.d.ts +1 -1
- package/declarations/components/popover.d.ts +1 -7
- package/declarations/components/popover.d.ts.map +1 -1
- package/declarations/helpers/link.d.ts +29 -0
- package/declarations/helpers/link.d.ts.map +1 -0
- package/declarations/helpers.d.ts +1 -0
- package/declarations/helpers.d.ts.map +1 -1
- package/dist/_app_/helpers/link.js +1 -0
- package/dist/components/accordion/content.js +1 -1
- package/dist/components/accordion/header.js +1 -1
- package/dist/components/accordion/item.js +1 -1
- package/dist/components/accordion/trigger.js +1 -1
- package/dist/components/accordion.js +3 -3
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/avatar.js +4 -4
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/dialog.js +4 -4
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/form.js +49 -6
- package/dist/components/form.js.map +1 -1
- package/dist/components/link.js +11 -77
- package/dist/components/link.js.map +1 -1
- package/dist/components/menu.js +6 -6
- package/dist/components/menu.js.map +1 -1
- package/dist/components/one-time-password/buttons.js +2 -2
- package/dist/components/one-time-password/buttons.js.map +1 -1
- package/dist/components/one-time-password/input.js +4 -4
- package/dist/components/one-time-password/input.js.map +1 -1
- package/dist/components/one-time-password/otp.js +2 -2
- package/dist/components/one-time-password/otp.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal-targets.js +2 -2
- package/dist/components/portal-targets.js.map +1 -1
- package/dist/components/portal.js +2 -2
- package/dist/components/portal.js.map +1 -1
- package/dist/components/progress.js +4 -4
- package/dist/components/progress.js.map +1 -1
- package/dist/components/scroller.js +2 -2
- package/dist/components/scroller.js.map +1 -1
- package/dist/components/shadowed.js +4 -4
- package/dist/components/shadowed.js.map +1 -1
- package/dist/components/switch.js +4 -4
- package/dist/components/switch.js.map +1 -1
- package/dist/components/toggle-group.js +6 -6
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +2 -2
- package/dist/components/toggle.js.map +1 -1
- package/dist/floating-ui/component.js +2 -2
- package/dist/floating-ui/component.js.map +1 -1
- package/dist/helpers/link.js +79 -0
- package/dist/helpers/link.js.map +1 -0
- package/dist/helpers.js +1 -0
- package/dist/helpers.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/{item-kSSfp2r5.js → item-DmpElnSZ.js} +9 -9
- package/dist/{item-kSSfp2r5.js.map → item-DmpElnSZ.js.map} +1 -1
- package/package.json +18 -17
package/dist/components/form.js
CHANGED
|
@@ -5,10 +5,53 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* A utility function for extracting the FormData as an object
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
function dataFromEvent(
|
|
13
|
+
/**
|
|
14
|
+
* The submit event from the event listener on the form.
|
|
15
|
+
* The currentTarget must be a `<form>`
|
|
16
|
+
*
|
|
17
|
+
*
|
|
18
|
+
* Each input within your `<form>` should have a `name` attribute.
|
|
19
|
+
* (or else the `<form>` element doesn't know what inputs are relevant)
|
|
20
|
+
*/
|
|
21
|
+
event1) {
|
|
22
|
+
assert('An unexpected event was passed to formDataFrom in <Form>', 'currentTarget' in event1 && event1.currentTarget instanceof HTMLFormElement);
|
|
23
|
+
let form1 = event1.currentTarget;
|
|
24
|
+
let formData1 = new FormData(form1);
|
|
11
25
|
let data1 = Object.fromEntries(formData1.entries());
|
|
26
|
+
// Gather fields from the form, and set any missing
|
|
27
|
+
// values to undefined.
|
|
28
|
+
let fields1 = form1.querySelectorAll('input,select');
|
|
29
|
+
for (let field1 of fields1) {
|
|
30
|
+
let name1 = field1.getAttribute('name');
|
|
31
|
+
// The field is probably invalid
|
|
32
|
+
if (!name1) continue;
|
|
33
|
+
let hasSubmitted1 = (name1 in data1);
|
|
34
|
+
if (!hasSubmitted1) data1[name1] = '';
|
|
35
|
+
// If the field is a `select`, we need to better
|
|
36
|
+
// handle the value, since only the most recently
|
|
37
|
+
// clicked will beb available
|
|
38
|
+
if (field1 instanceof HTMLSelectElement) {
|
|
39
|
+
if (field1.hasAttribute('multiple')) {
|
|
40
|
+
let options1 = field1.querySelectorAll('option');
|
|
41
|
+
let values1 = [];
|
|
42
|
+
for (let option1 of options1) {
|
|
43
|
+
if (option1.selected) {
|
|
44
|
+
values1.push(option1.value);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
data1[field1.name] = values1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return data1;
|
|
52
|
+
}
|
|
53
|
+
const handleInput = (onChange1, event1, eventType1 = 'input') => {
|
|
54
|
+
let data1 = dataFromEvent(event1);
|
|
12
55
|
onChange1(data1, eventType1, event1);
|
|
13
56
|
};
|
|
14
57
|
const handleSubmit = (onChange1, event1) => {
|
|
@@ -16,14 +59,14 @@ const handleSubmit = (onChange1, event1) => {
|
|
|
16
59
|
handleInput(onChange1, event1, 'submit');
|
|
17
60
|
};
|
|
18
61
|
const Form = setComponentTemplate(precompileTemplate("\n <form {{on \"input\" (fn handleInput @onChange)}} {{on \"submit\" (fn handleSubmit @onChange)}} ...attributes>\n {{yield}}\n </form>\n", {
|
|
62
|
+
strictMode: true,
|
|
19
63
|
scope: () => ({
|
|
20
64
|
on,
|
|
21
65
|
fn,
|
|
22
66
|
handleInput,
|
|
23
67
|
handleSubmit
|
|
24
|
-
})
|
|
25
|
-
strictMode: true
|
|
68
|
+
})
|
|
26
69
|
}), templateOnly());
|
|
27
70
|
|
|
28
|
-
export { Form, Form as default };
|
|
71
|
+
export { Form, dataFromEvent, Form as default };
|
|
29
72
|
//# sourceMappingURL=form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sources":["../../src/components/form.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport type { TOC } from '@ember/component/template-only';\ntype FormDataEntryValue = NonNullable<ReturnType<FormData['get']>>;\ntype Data = {\n [key: string]: FormDataEntryValue;\n};\nconst handleInput = (onChange1: (data: Data, eventType: 'input' | 'submit', event: Event) => void, event1: Event | SubmitEvent, eventType1: 'input' | 'submit' = 'input')=>{\n assert('An unexpected event was passed to handleInput in <Form>', 'currentTarget' in event1 && event1.currentTarget instanceof HTMLFormElement);\n let formData1 = new FormData(event1.currentTarget);\n let data1 = Object.fromEntries(formData1.entries());\n onChange1(data1, eventType1, event1);\n};\nconst handleSubmit = (onChange1: (data: Data, eventType: 'input' | 'submit', event: Event | SubmitEvent) => void, event1: SubmitEvent)=>{\n event1.preventDefault();\n handleInput(onChange1, event1, 'submit');\n};\nexport interface Signature {\n Element: HTMLFormElement;\n Args: {\n /**\n * Any time the value of any field is changed this function will be called.\n */ onChange: (/**\n * The data from the form as an Object of `{ [field name] => value }` pairs.\n * This is generated from the native [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n *\n * Additional fields/inputs/controls can be added to this data by specifying a\n * \"name\" attribute.\n */ data: Data, /**\n * Indicates whether the `onChange` function was called from the `input` or `submit` event handlers.\n */ eventType: 'input' | 'submit', /**\n * The raw event, if needed.\n */ event: Event | SubmitEvent) => void;\n };\n Blocks: {\n /**\n * The main content for the form. This is where inputs / fields / controls would go.\n * Within the `<form>` content, `<button type=\"submit\">` will submit the form, which\n * triggers the `@onChange` event.\n */ default: [];\n };\n}\nexport const Form: TOC<Signature> = template(`\n <form\n {{on \"input\" (fn handleInput @onChange)}}\n {{on \"submit\" (fn handleSubmit @onChange)}}\n ...attributes\n >\n {{yield}}\n </form>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Form;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL2Zvcm0uZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBmbiB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbnR5cGUgRm9ybURhdGFFbnRyeVZhbHVlID0gTm9uTnVsbGFibGU8UmV0dXJuVHlwZTxGb3JtRGF0YVsnZ2V0J10-PjtcbnR5cGUgRGF0YSA9IHsgW2tleTogc3RyaW5nXTogRm9ybURhdGFFbnRyeVZhbHVlIH07XG5cbmNvbnN0IGhhbmRsZUlucHV0ID0gKFxuICBvbkNoYW5nZTogKGRhdGE6IERhdGEsIGV2ZW50VHlwZTogJ2lucHV0JyB8ICdzdWJtaXQnLCBldmVudDogRXZlbnQpID0-IHZvaWQsXG4gIGV2ZW50OiBFdmVudCB8IFN1Ym1pdEV2ZW50LFxuICBldmVudFR5cGU6ICdpbnB1dCcgfCAnc3VibWl0JyA9ICdpbnB1dCdcbikgPT4ge1xuICBhc3NlcnQoXG4gICAgJ0FuIHVuZXhwZWN0ZWQgZXZlbnQgd2FzIHBhc3NlZCB0byBoYW5kbGVJbnB1dCBpbiA8Rm9ybT4nLFxuICAgICdjdXJyZW50VGFyZ2V0JyBpbiBldmVudCAmJiBldmVudC5jdXJyZW50VGFyZ2V0IGluc3RhbmNlb2YgSFRNTEZvcm1FbGVtZW50XG4gICk7XG5cbiAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICBsZXQgZGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhmb3JtRGF0YS5lbnRyaWVzKCkpO1xuXG4gIG9uQ2hhbmdlKGRhdGEsIGV2ZW50VHlwZSwgZXZlbnQpO1xufTtcblxuY29uc3QgaGFuZGxlU3VibWl0ID0gKFxuICBvbkNoYW5nZTogKGRhdGE6IERhdGEsIGV2ZW50VHlwZTogJ2lucHV0JyB8ICdzdWJtaXQnLCBldmVudDogRXZlbnQgfCBTdWJtaXRFdmVudCkgPT4gdm9pZCxcbiAgZXZlbnQ6IFN1Ym1pdEV2ZW50XG4pID0-IHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgaGFuZGxlSW5wdXQob25DaGFuZ2UsIGV2ZW50LCAnc3VibWl0Jyk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxGb3JtRWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqICBBbnkgdGltZSB0aGUgdmFsdWUgb2YgYW55IGZpZWxkIGlzIGNoYW5nZWQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZTogKFxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgZGF0YSBmcm9tIHRoZSBmb3JtIGFzIGFuIE9iamVjdCBvZiBgeyBbZmllbGQgbmFtZV0gPT4gdmFsdWUgfWAgcGFpcnMuXG4gICAgICAgKiBUaGlzIGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBuYXRpdmUgW0Zvcm1EYXRhXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRm9ybURhdGEpXG4gICAgICAgKlxuICAgICAgICogQWRkaXRpb25hbCBmaWVsZHMvaW5wdXRzL2NvbnRyb2xzIGNhbiBiZSBhZGRlZCB0byB0aGlzIGRhdGEgYnkgc3BlY2lmeWluZyBhXG4gICAgICAgKiBcIm5hbWVcIiBhdHRyaWJ1dGUuXG4gICAgICAgKi9cbiAgICAgIGRhdGE6IERhdGEsXG4gICAgICAvKipcbiAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBgb25DaGFuZ2VgIGZ1bmN0aW9uIHdhcyBjYWxsZWQgZnJvbSB0aGUgYGlucHV0YCBvciBgc3VibWl0YCBldmVudCBoYW5kbGVycy5cbiAgICAgICAqL1xuICAgICAgZXZlbnRUeXBlOiAnaW5wdXQnIHwgJ3N1Ym1pdCcsXG4gICAgICAvKipcbiAgICAgICAqIFRoZSByYXcgZXZlbnQsIGlmIG5lZWRlZC5cbiAgICAgICAqL1xuICAgICAgZXZlbnQ6IEV2ZW50IHwgU3VibWl0RXZlbnRcbiAgICApID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBtYWluIGNvbnRlbnQgZm9yIHRoZSBmb3JtLiBUaGlzIGlzIHdoZXJlIGlucHV0cyAvIGZpZWxkcyAvIGNvbnRyb2xzIHdvdWxkIGdvLlxuICAgICAqIFdpdGhpbiB0aGUgYDxmb3JtPmAgY29udGVudCwgYDxidXR0b24gdHlwZT1cInN1Ym1pdFwiPmAgd2lsbCBzdWJtaXQgdGhlIGZvcm0sIHdoaWNoXG4gICAgICogdHJpZ2dlcnMgdGhlIGBAb25DaGFuZ2VgIGV2ZW50LlxuICAgICAqL1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgRm9ybTogVE9DPFNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxmb3JtXG4gICAge3tvbiBcImlucHV0XCIgKGZuIGhhbmRsZUlucHV0IEBvbkNoYW5nZSl9fVxuICAgIHt7b24gXCJzdWJtaXRcIiAoZm4gaGFuZGxlU3VibWl0IEBvbkNoYW5nZSl9fVxuICAgIC4uLmF0dHJpYnV0ZXNcbiAgPlxuICAgIHt7eWllbGR9fVxuICA8L2Zvcm0-XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgRm9ybTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLEVBQUUsUUFBUSxnQkFBZ0I7QUFDbkMsU0FBUyxFQUFFLFFBQVEsa0JBQWtCO0FBRXJDLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztLQUVyRCxxQkFBcUIsWUFBWSxXQUFXLFNBQVM7S0FDckQ7S0FBVSxLQUFLLE1BQU0sR0FBRzs7QUFFN0IsTUFBTSxjQUFjLENBQ2xCLFlBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxVQUFVLE9BQU8sVUFBVSxJQUFJLEVBQzNFLFFBQU8sUUFBUSxhQUNmLFlBQVcsVUFBVSxXQUFXLE9BQU87SUFFdkMsT0FDRSwyREFDQSxtQkFBbUIsVUFBUyxPQUFNLGFBQWEsWUFBWTtJQUc3RCxJQUFJLFlBQVcsSUFBSSxTQUFTLE9BQU0sYUFBYTtJQUMvQyxJQUFJLFFBQU8sT0FBTyxXQUFXLENBQUMsVUFBUyxPQUFPO0lBRTlDLFVBQVMsT0FBTSxZQUFXO0FBQzVCO0FBRUEsTUFBTSxlQUFlLENBQ25CLFlBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxVQUFVLE9BQU8sUUFBUSxnQkFBZ0IsSUFBSSxFQUN6RixRQUFPO0lBRVAsT0FBTSxjQUFjO0lBQ3BCLFlBQVksV0FBVSxRQUFPO0FBQy9CO0FBRUEsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7O0tBRUMsR0FDRCxXQUNFOzs7Ozs7T0FNQyxHQUNELE1BQU0sTUFDTjs7T0FFQyxHQUNELFdBQVcsVUFBVSxVQUNyQjs7T0FFQyxHQUNELE9BQU8sUUFBUSxnQkFDWixJQUFJOztJQUVYO1FBQ0U7Ozs7S0FJQyxHQUNEOzs7QUFJSixPQUFPLE1BQU0sTUFBTSxJQUFJLGFBQWEsU0FBVSxDQUFBOzs7Ozs7OztBQVE5QyxDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLGVBQWUsS0FBSyJ9"],"names":["handleInput","onChange1","event1","eventType1","assert","currentTarget","HTMLFormElement","formData1","FormData","data1","Object","fromEntries","entries","handleSubmit","preventDefault","Form","setComponentTemplate","precompileTemplate","scope","on","fn","strictMode","templateOnly"],"mappings":";;;;;;;AASA,MAAMA,WAAA,GAAcA,CAClBC,SAA2E,EAC3EC,MAAe,EACfC,UAAqB,GAAW,OAAO,KAAA;EAEvCC,MAAA,CACE,2DACA,eAAmBF,IAAAA,MAAA,IAASA,MAAA,CAAMG,aAAa,YAAYC,eAAA,CAAA,CAAA;AAG7D,EAAA,IAAIC,SAAA,GAAW,IAAIC,QAAA,CAASN,MAAA,CAAMG,aAAa,CAAA,CAAA;EAC/C,IAAII,KAAA,GAAOC,MAAA,CAAOC,WAAW,CAACJ,SAAA,CAASK,OAAO,EAAA,CAAA,CAAA;AAE9CX,EAAAA,SAAA,CAASQ,KAAA,EAAMN,UAAA,EAAWD,MAAA,CAAA,CAAA;AAC5B,CAAA,CAAA;AAEA,MAAMW,YAAA,GAAeA,CACnBZ,SAAyF,EACzFC,MAAO,KAAA;AAEPA,EAAAA,MAAA,CAAMY,cAAc,EAAA,CAAA;AACpBd,EAAAA,WAAA,CAAYC,SAAA,EAAUC,MAAA,EAAO,QAAA,CAAA,CAAA;AAC/B,CAAA,CAAA;MAqCaa,IAAU,GAAAC,oBAAA,CAAaC,kBAAA,CAQpC,gJAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;IAAAC,EAAA;IAAApB,WAAA;AAAAa,IAAAA,YAAAA;AAAA,GAAA,CAAA;EAAAQ,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../src/components/form.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport type { TOC } from '@ember/component/template-only';\ntype FormDataEntryValue = NonNullable<ReturnType<FormData['get']>>;\ntype Data = {\n [key: string]: FormDataEntryValue | string[];\n};\n/**\n * A utility function for extracting the FormData as an object\n *\n */ export function dataFromEvent(/**\n * The submit event from the event listener on the form.\n * The currentTarget must be a `<form>`\n *\n *\n * Each input within your `<form>` should have a `name` attribute.\n * (or else the `<form>` element doesn't know what inputs are relevant)\n */ event1: {\n currentTarget: EventTarget | null;\n}): {\n [name: string]: FormDataEntryValue | string[];\n} {\n assert('An unexpected event was passed to formDataFrom in <Form>', 'currentTarget' in event1 && event1.currentTarget instanceof HTMLFormElement);\n let form1 = event1.currentTarget;\n let formData1 = new FormData(form1);\n let data1: Data = Object.fromEntries(formData1.entries());\n // Gather fields from the form, and set any missing\n // values to undefined.\n let fields1 = form1.querySelectorAll('input,select');\n for (let field1 of fields1){\n let name1 = field1.getAttribute('name');\n // The field is probably invalid\n if (!name1) continue;\n let hasSubmitted1 = name1 in data1;\n if (!hasSubmitted1) data1[name1] = '';\n // If the field is a `select`, we need to better\n // handle the value, since only the most recently\n // clicked will beb available\n if (field1 instanceof HTMLSelectElement) {\n if (field1.hasAttribute('multiple')) {\n let options1 = field1.querySelectorAll('option');\n let values1 = [];\n for (let option1 of options1){\n if (option1.selected) {\n values1.push(option1.value);\n }\n }\n data1[field1.name] = values1;\n }\n }\n }\n return data1;\n}\nconst handleInput = (onChange1: (data: Data, eventType: 'input' | 'submit', event: Event) => void, event1: Event | SubmitEvent, eventType1: 'input' | 'submit' = 'input')=>{\n let data1 = dataFromEvent(event1);\n onChange1(data1, eventType1, event1);\n};\nconst handleSubmit = (onChange1: (data: Data, eventType: 'input' | 'submit', event: Event | SubmitEvent) => void, event1: SubmitEvent)=>{\n event1.preventDefault();\n handleInput(onChange1, event1, 'submit');\n};\nexport interface Signature {\n Element: HTMLFormElement;\n Args: {\n /**\n * Any time the value of any field is changed this function will be called.\n */ onChange: (/**\n * The data from the form as an Object of `{ [field name] => value }` pairs.\n * This is generated from the native [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n *\n * Additional fields/inputs/controls can be added to this data by specifying a\n * \"name\" attribute.\n */ data: Data, /**\n * Indicates whether the `onChange` function was called from the `input` or `submit` event handlers.\n */ eventType: 'input' | 'submit', /**\n * The raw event, if needed.\n */ event: Event | SubmitEvent) => void;\n };\n Blocks: {\n /**\n * The main content for the form. This is where inputs / fields / controls would go.\n * Within the `<form>` content, `<button type=\"submit\">` will submit the form, which\n * triggers the `@onChange` event.\n */ default: [];\n };\n}\nexport const Form: TOC<Signature> = template(`\n <form\n {{on \"input\" (fn handleInput @onChange)}}\n {{on \"submit\" (fn handleSubmit @onChange)}}\n ...attributes\n >\n {{yield}}\n </form>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Form;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL2Zvcm0uZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBmbiB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbnR5cGUgRm9ybURhdGFFbnRyeVZhbHVlID0gTm9uTnVsbGFibGU8UmV0dXJuVHlwZTxGb3JtRGF0YVsnZ2V0J10-PjtcbnR5cGUgRGF0YSA9IHsgW2tleTogc3RyaW5nXTogRm9ybURhdGFFbnRyeVZhbHVlIHwgc3RyaW5nW10gfTtcblxuLyoqXG4gKiBBIHV0aWxpdHkgZnVuY3Rpb24gZm9yIGV4dHJhY3RpbmcgdGhlIEZvcm1EYXRhIGFzIGFuIG9iamVjdFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFGcm9tRXZlbnQoXG4gIC8qKlxuICAgKiBUaGUgc3VibWl0IGV2ZW50IGZyb20gdGhlIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBmb3JtLlxuICAgKiBUaGUgY3VycmVudFRhcmdldCBtdXN0IGJlIGEgYDxmb3JtPmBcbiAgICpcbiAgICpcbiAgICogRWFjaCBpbnB1dCB3aXRoaW4geW91ciBgPGZvcm0-YCBzaG91bGQgaGF2ZSBhIGBuYW1lYCBhdHRyaWJ1dGUuXG4gICAqIChvciBlbHNlIHRoZSBgPGZvcm0-YCBlbGVtZW50IGRvZXNuJ3Qga25vdyB3aGF0IGlucHV0cyBhcmUgcmVsZXZhbnQpXG4gICAqL1xuICBldmVudDogeyBjdXJyZW50VGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwgfVxuKToge1xuICBbbmFtZTogc3RyaW5nXTogRm9ybURhdGFFbnRyeVZhbHVlIHwgc3RyaW5nW107XG59IHtcbiAgYXNzZXJ0KFxuICAgICdBbiB1bmV4cGVjdGVkIGV2ZW50IHdhcyBwYXNzZWQgdG8gZm9ybURhdGFGcm9tIGluIDxGb3JtPicsXG4gICAgJ2N1cnJlbnRUYXJnZXQnIGluIGV2ZW50ICYmIGV2ZW50LmN1cnJlbnRUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnRcbiAgKTtcblxuICBsZXQgZm9ybSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YShmb3JtKTtcbiAgbGV0IGRhdGE6IERhdGEgPSBPYmplY3QuZnJvbUVudHJpZXMoZm9ybURhdGEuZW50cmllcygpKTtcblxuICAvLyBHYXRoZXIgZmllbGRzIGZyb20gdGhlIGZvcm0sIGFuZCBzZXQgYW55IG1pc3NpbmdcbiAgLy8gdmFsdWVzIHRvIHVuZGVmaW5lZC5cbiAgbGV0IGZpZWxkcyA9IGZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsc2VsZWN0Jyk7XG5cbiAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgbGV0IG5hbWUgPSBmaWVsZC5nZXRBdHRyaWJ1dGUoJ25hbWUnKTtcblxuICAgIC8vIFRoZSBmaWVsZCBpcyBwcm9iYWJseSBpbnZhbGlkXG4gICAgaWYgKCFuYW1lKSBjb250aW51ZTtcblxuICAgIGxldCBoYXNTdWJtaXR0ZWQgPSBuYW1lIGluIGRhdGE7XG5cbiAgICBpZiAoIWhhc1N1Ym1pdHRlZCkgZGF0YVtuYW1lXSA9ICcnO1xuXG4gICAgLy8gSWYgdGhlIGZpZWxkIGlzIGEgYHNlbGVjdGAsIHdlIG5lZWQgdG8gYmV0dGVyXG4gICAgLy8gaGFuZGxlIHRoZSB2YWx1ZSwgc2luY2Ugb25seSB0aGUgbW9zdCByZWNlbnRseVxuICAgIC8vIGNsaWNrZWQgd2lsbCBiZWIgYXZhaWxhYmxlXG4gICAgaWYgKGZpZWxkIGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpIHtcbiAgICAgIGlmIChmaWVsZC5oYXNBdHRyaWJ1dGUoJ211bHRpcGxlJykpIHtcbiAgICAgICAgbGV0IG9wdGlvbnMgPSBmaWVsZC5xdWVyeVNlbGVjdG9yQWxsKCdvcHRpb24nKTtcbiAgICAgICAgbGV0IHZhbHVlcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2gob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdmFsdWVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG5jb25zdCBoYW5kbGVJbnB1dCA9IChcbiAgb25DaGFuZ2U6IChkYXRhOiBEYXRhLCBldmVudFR5cGU6ICdpbnB1dCcgfCAnc3VibWl0JywgZXZlbnQ6IEV2ZW50KSA9PiB2b2lkLFxuICBldmVudDogRXZlbnQgfCBTdWJtaXRFdmVudCxcbiAgZXZlbnRUeXBlOiAnaW5wdXQnIHwgJ3N1Ym1pdCcgPSAnaW5wdXQnXG4pID0-IHtcbiAgbGV0IGRhdGEgPSBkYXRhRnJvbUV2ZW50KGV2ZW50KTtcblxuICBvbkNoYW5nZShkYXRhLCBldmVudFR5cGUsIGV2ZW50KTtcbn07XG5cbmNvbnN0IGhhbmRsZVN1Ym1pdCA9IChcbiAgb25DaGFuZ2U6IChkYXRhOiBEYXRhLCBldmVudFR5cGU6ICdpbnB1dCcgfCAnc3VibWl0JywgZXZlbnQ6IEV2ZW50IHwgU3VibWl0RXZlbnQpID0-IHZvaWQsXG4gIGV2ZW50OiBTdWJtaXRFdmVudFxuKSA9PiB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIGhhbmRsZUlucHV0KG9uQ2hhbmdlLCBldmVudCwgJ3N1Ym1pdCcpO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRm9ybUVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiAgQW55IHRpbWUgdGhlIHZhbHVlIG9mIGFueSBmaWVsZCBpcyBjaGFuZ2VkIHRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQuXG4gICAgICovXG4gICAgb25DaGFuZ2U6IChcbiAgICAgIC8qKlxuICAgICAgICogVGhlIGRhdGEgZnJvbSB0aGUgZm9ybSBhcyBhbiBPYmplY3Qgb2YgYHsgW2ZpZWxkIG5hbWVdID0-IHZhbHVlIH1gIHBhaXJzLlxuICAgICAgICogVGhpcyBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgbmF0aXZlIFtGb3JtRGF0YV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Zvcm1EYXRhKVxuICAgICAgICpcbiAgICAgICAqIEFkZGl0aW9uYWwgZmllbGRzL2lucHV0cy9jb250cm9scyBjYW4gYmUgYWRkZWQgdG8gdGhpcyBkYXRhIGJ5IHNwZWNpZnlpbmcgYVxuICAgICAgICogXCJuYW1lXCIgYXR0cmlidXRlLlxuICAgICAgICovXG4gICAgICBkYXRhOiBEYXRhLFxuICAgICAgLyoqXG4gICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgYG9uQ2hhbmdlYCBmdW5jdGlvbiB3YXMgY2FsbGVkIGZyb20gdGhlIGBpbnB1dGAgb3IgYHN1Ym1pdGAgZXZlbnQgaGFuZGxlcnMuXG4gICAgICAgKi9cbiAgICAgIGV2ZW50VHlwZTogJ2lucHV0JyB8ICdzdWJtaXQnLFxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgcmF3IGV2ZW50LCBpZiBuZWVkZWQuXG4gICAgICAgKi9cbiAgICAgIGV2ZW50OiBFdmVudCB8IFN1Ym1pdEV2ZW50XG4gICAgKSA9PiB2b2lkO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWFpbiBjb250ZW50IGZvciB0aGUgZm9ybS4gVGhpcyBpcyB3aGVyZSBpbnB1dHMgLyBmaWVsZHMgLyBjb250cm9scyB3b3VsZCBnby5cbiAgICAgKiBXaXRoaW4gdGhlIGA8Zm9ybT5gIGNvbnRlbnQsIGA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIj5gIHdpbGwgc3VibWl0IHRoZSBmb3JtLCB3aGljaFxuICAgICAqIHRyaWdnZXJzIHRoZSBgQG9uQ2hhbmdlYCBldmVudC5cbiAgICAgKi9cbiAgICBkZWZhdWx0OiBbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEZvcm06IFRPQzxTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICA8Zm9ybVxuICAgIHt7b24gXCJpbnB1dFwiIChmbiBoYW5kbGVJbnB1dCBAb25DaGFuZ2UpfX1cbiAgICB7e29uIFwic3VibWl0XCIgKGZuIGhhbmRsZVN1Ym1pdCBAb25DaGFuZ2UpfX1cbiAgICAuLi5hdHRyaWJ1dGVzXG4gID5cbiAgICB7e3lpZWxkfX1cbiAgPC9mb3JtPlxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVMsTUFBTSxRQUFRLGVBQWU7QUFDdEMsU0FBUyxFQUFFLFFBQVEsZ0JBQWdCO0FBQ25DLFNBQVMsRUFBRSxRQUFRLGtCQUFrQjtBQUVyQyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7S0FFckQscUJBQXFCLFlBQVksV0FBVyxTQUFTO0tBQ3JEO0tBQVUsS0FBSyxNQUFNLEdBQUcscUJBQXFCLE1BQU07O0FBRXhEOzs7Q0FHQyxHQUNELE9BQU8sU0FBUyxjQUNkOzs7Ozs7O0dBT0MsR0FDRDtJQUFTLGVBQWUsY0FBYyxJQUFJO0NBQUU7S0FFM0MsTUFBTSxNQUFNLEdBQUcscUJBQXFCLE1BQU07O0lBRTNDLE9BQ0UsNERBQ0EsbUJBQW1CLFVBQVMsT0FBTSxhQUFhLFlBQVk7SUFHN0QsSUFBSSxRQUFPLE9BQU0sYUFBYTtJQUM5QixJQUFJLFlBQVcsSUFBSSxTQUFTO0lBQzVCLElBQUksT0FBTSxPQUFPLE9BQU8sV0FBVyxDQUFDLFVBQVMsT0FBTztJQUVwRCxtREFBbUQ7SUFDbkQsdUJBQXVCO0lBQ3ZCLElBQUksVUFBUyxNQUFLLGdCQUFnQixDQUFDO0lBRW5DLEtBQUssSUFBSSxVQUFTLFFBQVE7UUFDeEIsSUFBSSxRQUFPLE9BQU0sWUFBWSxDQUFDO1FBRTlCLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsT0FBTTtRQUVYLElBQUksZ0JBQWUsU0FBUTtRQUUzQixJQUFJLENBQUMsZUFBYyxLQUFJLENBQUMsTUFBSyxHQUFHO1FBRWhDLGdEQUFnRDtRQUNoRCxpREFBaUQ7UUFDakQsNkJBQTZCO1FBQzdCLElBQUksa0JBQWlCLG1CQUFtQjtZQUN0QyxJQUFJLE9BQU0sWUFBWSxDQUFDLGFBQWE7Z0JBQ2xDLElBQUksV0FBVSxPQUFNLGdCQUFnQixDQUFDO2dCQUNyQyxJQUFJLFVBQVMsRUFBRTtnQkFFZixLQUFLLElBQUksV0FBVSxTQUFTO29CQUMxQixJQUFJLFFBQU8sUUFBUSxFQUFFO3dCQUNuQixRQUFPLElBQUksQ0FBQyxRQUFPLEtBQUs7b0JBQzFCO2dCQUNGO2dCQUVBLEtBQUksQ0FBQyxPQUFNLElBQUksQ0FBQyxHQUFHO1lBQ3JCO1FBQ0Y7SUFDRjtJQUVBLE9BQU87QUFDVDtBQUVBLE1BQU0sY0FBYyxDQUNsQixZQUFXLE1BQU0sTUFBTSxXQUFXLFVBQVUsVUFBVSxPQUFPLFVBQVUsSUFBSSxFQUMzRSxRQUFPLFFBQVEsYUFDZixZQUFXLFVBQVUsV0FBVyxPQUFPO0lBRXZDLElBQUksUUFBTyxjQUFjO0lBRXpCLFVBQVMsT0FBTSxZQUFXO0FBQzVCO0FBRUEsTUFBTSxlQUFlLENBQ25CLFlBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxVQUFVLE9BQU8sUUFBUSxnQkFBZ0IsSUFBSSxFQUN6RixRQUFPO0lBRVAsT0FBTSxjQUFjO0lBQ3BCLFlBQVksV0FBVSxRQUFPO0FBQy9CO0FBRUEsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7O0tBRUMsR0FDRCxXQUNFOzs7Ozs7T0FNQyxHQUNELE1BQU0sTUFDTjs7T0FFQyxHQUNELFdBQVcsVUFBVSxVQUNyQjs7T0FFQyxHQUNELE9BQU8sUUFBUSxnQkFDWixJQUFJOztJQUVYO1FBQ0U7Ozs7S0FJQyxHQUNEOzs7QUFJSixPQUFPLE1BQU0sTUFBTSxJQUFJLGFBQWEsU0FBVSxDQUFBOzs7Ozs7OztBQVE5QyxDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLGVBQWUsS0FBSyJ9"],"names":["dataFromEvent","event1","assert","currentTarget","HTMLFormElement","form1","formData1","FormData","data1","Object","fromEntries","entries","fields1","querySelectorAll","field1","name1","getAttribute","hasSubmitted1","HTMLSelectElement","hasAttribute","options1","values1","option1","selected","push","value","name","handleInput","onChange1","eventType1","handleSubmit","preventDefault","Form","setComponentTemplate","precompileTemplate","strictMode","scope","on","fn","templateOnly"],"mappings":";;;;;;;AASA;;;;AAIO,SAASA,aAAAA;AACd;;;;;;;;AAQAC,MAA4C;EAI5CC,MAAA,CACE,4DACA,eAAmBD,IAAAA,MAAA,IAASA,MAAA,CAAME,aAAa,YAAYC,eAAA,CAAA,CAAA;AAG7D,EAAA,IAAIC,KAAA,GAAOJ,MAAA,CAAME,aAAa,CAAA;AAC9B,EAAA,IAAIG,SAAA,GAAW,IAAIC,QAAA,CAASF,KAAA,CAAA,CAAA;EAC5B,IAAIG,KAAM,GAAOC,MAAA,CAAOC,WAAW,CAACJ,SAAA,CAASK,OAAO,EAAA,CAAA,CAAA;AAEpD;AACA;AACA,EAAA,IAAIC,OAAA,GAASP,KAAA,CAAKQ,gBAAgB,CAAC,cAAA,CAAA,CAAA;AAEnC,EAAA,KAAK,IAAIC,MAAA,IAASF,OAAA,EAAQ;AACxB,IAAA,IAAIG,KAAA,GAAOD,MAAA,CAAME,YAAY,CAAC,MAAA,CAAA,CAAA;AAE9B;IACA,IAAI,CAACD,KAAA,EAAM,SAAA;AAEX,IAAA,IAAIE,aAAA,IAAeF,KAAA,IAAQP,KAAA,CAAA,CAAA;AAE3B,IAAA,IAAI,CAACS,aAAA,EAAcT,KAAI,CAACO,KAAA,CAAK,GAAG,EAAA,CAAA;AAEhC;AACA;AACA;IACA,IAAID,MAAA,YAAiBI,iBAAA,EAAmB;AACtC,MAAA,IAAIJ,MAAA,CAAMK,YAAY,CAAC,UAAa,CAAA,EAAA;AAClC,QAAA,IAAIC,QAAA,GAAUN,MAAA,CAAMD,gBAAgB,CAAC,QAAA,CAAA,CAAA;QACrC,IAAIQ,OAAA,GAAS,EAAE,CAAA;AAEf,QAAA,KAAK,IAAIC,OAAA,IAAUF,QAAA,EAAS;UAC1B,IAAIE,OAAA,CAAOC,QAAQ,EAAE;AACnBF,YAAAA,OAAA,CAAOG,IAAI,CAACF,OAAA,CAAOG,KAAK,CAAA,CAAA;AAC1B,WAAA;AACF,SAAA;AAEAjB,QAAAA,KAAI,CAACM,MAAA,CAAMY,IAAI,CAAC,GAAGL,OAAA,CAAA;AACrB,OAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,OAAOb,KAAA,CAAA;AACT,CAAA;AAEA,MAAMmB,WAAA,GAAcA,CAClBC,SAA2E,EAC3E3B,MAAe,EACf4B,UAAqB,GAAW,OAAO,KAAA;AAEvC,EAAA,IAAIrB,KAAA,GAAOR,aAAA,CAAcC,MAAA,CAAA,CAAA;AAEzB2B,EAAAA,SAAA,CAASpB,KAAA,EAAMqB,UAAA,EAAW5B,MAAA,CAAA,CAAA;AAC5B,CAAA,CAAA;AAEA,MAAM6B,YAAA,GAAeA,CACnBF,SAAyF,EACzF3B,MAAO,KAAA;AAEPA,EAAAA,MAAA,CAAM8B,cAAc,EAAA,CAAA;AACpBJ,EAAAA,WAAA,CAAYC,SAAA,EAAU3B,MAAA,EAAO,QAAA,CAAA,CAAA;AAC/B,CAAA,CAAA;MAqCa+B,IAAU,GAAAC,oBAAA,CAAaC,kBAAA,CAQpC,gJAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;IAAAC,EAAA;IAAAX,WAAA;AAAAG,IAAAA,YAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAS,YAAA,EAAA;;;;"}
|
package/dist/components/link.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import Component from '@glimmer/component';
|
|
2
|
-
import { assert } from '@ember/debug';
|
|
3
1
|
import { hash } from '@ember/helper';
|
|
4
2
|
import { on } from '@ember/modifier';
|
|
5
|
-
import {
|
|
6
|
-
import { handle } from '../proper-links.js';
|
|
3
|
+
import { link } from '../helpers/link.js';
|
|
7
4
|
import { ExternalLink } from './external-link.js';
|
|
8
5
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
9
6
|
import { setComponentTemplate } from '@ember/component';
|
|
10
|
-
import
|
|
7
|
+
import templateOnly from '@ember/component/template-only';
|
|
11
8
|
|
|
12
9
|
/**
|
|
13
10
|
* TODO: make template-only component,
|
|
@@ -21,78 +18,15 @@ import { g, i } from 'decorator-transforms/runtime';
|
|
|
21
18
|
*
|
|
22
19
|
* [mdn-a]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
|
|
23
20
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
strictMode: true
|
|
34
|
-
}), this);
|
|
35
|
-
}
|
|
36
|
-
static {
|
|
37
|
-
g(this.prototype, "router", [service]);
|
|
38
|
-
}
|
|
39
|
-
#router = (i(this, "router"), void 0);
|
|
40
|
-
handleClick = event1 => {
|
|
41
|
-
assert('[BUG]', event1.target instanceof HTMLAnchorElement);
|
|
42
|
-
handle(this.router, event1.target, [], event1);
|
|
43
|
-
};
|
|
44
|
-
get isActive() {
|
|
45
|
-
let {
|
|
46
|
-
href: href1,
|
|
47
|
-
includeActiveQueryParams: includeActiveQueryParams1
|
|
48
|
-
} = this.args;
|
|
49
|
-
return isActive(this.router, href1, includeActiveQueryParams1);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function isExternal(href1) {
|
|
53
|
-
if (!href1) return false;
|
|
54
|
-
if (href1.startsWith('#')) return false;
|
|
55
|
-
if (href1.startsWith('/')) return false;
|
|
56
|
-
return location.origin !== new URL(href1).origin;
|
|
57
|
-
}
|
|
58
|
-
function isActive(router1, href1, includeQueryParams1) {
|
|
59
|
-
if (!includeQueryParams1) {
|
|
60
|
-
/**
|
|
61
|
-
* is Active doesn't understand `href`, so we have to convert to RouteInfo-esque
|
|
62
|
-
*/
|
|
63
|
-
let info1 = router1.recognize(href1);
|
|
64
|
-
if (info1) {
|
|
65
|
-
let dynamicSegments1 = getParams(info1);
|
|
66
|
-
return router1.isActive(info1.name, ...dynamicSegments1);
|
|
67
|
-
}
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
let url1 = new URL(href1, location.origin);
|
|
71
|
-
let hrefQueryParams1 = new URLSearchParams(url1.searchParams);
|
|
72
|
-
let hrefPath1 = url1.pathname;
|
|
73
|
-
const currentPath1 = router1.currentURL?.split('?')[0];
|
|
74
|
-
if (!currentPath1) return false;
|
|
75
|
-
if (hrefPath1 !== currentPath1) return false;
|
|
76
|
-
const currentQueryParams1 = router1.currentRoute?.queryParams;
|
|
77
|
-
if (!currentQueryParams1) return false;
|
|
78
|
-
if (includeQueryParams1 === true) {
|
|
79
|
-
return Object.entries(currentQueryParams1).every(([key1, value1]) => {
|
|
80
|
-
return hrefQueryParams1.get(key1) === value1;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return includeQueryParams1.every(key1 => {
|
|
84
|
-
return hrefQueryParams1.get(key1) === currentQueryParams1[key1];
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
function getParams(currentRouteInfo1) {
|
|
88
|
-
let params1 = [];
|
|
89
|
-
while (currentRouteInfo1?.parent) {
|
|
90
|
-
let currentParams1 = currentRouteInfo1.params;
|
|
91
|
-
params1 = currentParams1 ? [currentParams1, ...params1] : params1;
|
|
92
|
-
currentRouteInfo1 = currentRouteInfo1.parent;
|
|
93
|
-
}
|
|
94
|
-
return params1.map(Object.values).flat();
|
|
95
|
-
}
|
|
21
|
+
const Link = setComponentTemplate(precompileTemplate("\n {{#let (link @href includeActiveQueryParams=@includeActiveQueryParams activeOnSubPaths=@activeOnSubPaths) as |l|}}\n {{#if l.isExternal}}\n <ExternalLink href={{@href}} ...attributes>\n {{yield (hash isExternal=true isActive=false)}}\n </ExternalLink>\n {{else}}\n <a data-active={{l.isActive}} href={{if @href @href \"##missing##\"}} {{on \"click\" l.handleClick}} ...attributes>\n {{yield (hash isExternal=false isActive=l.isActive)}}\n </a>\n {{/if}}\n {{/let}}\n", {
|
|
22
|
+
strictMode: true,
|
|
23
|
+
scope: () => ({
|
|
24
|
+
link,
|
|
25
|
+
ExternalLink,
|
|
26
|
+
hash,
|
|
27
|
+
on
|
|
28
|
+
})
|
|
29
|
+
}), templateOnly());
|
|
96
30
|
|
|
97
31
|
export { Link, Link as default };
|
|
98
32
|
//# sourceMappingURL=link.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sources":["../../src/components/link.gts"],"sourcesContent":["/**\n * TODO: make template-only component,\n * and use class-based modifier?\n *\n * This would require that modifiers could run pre-render\n */ import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { service } from '@ember/service';\nimport { handle } from '../proper-links.ts';\nimport { ExternalLink } from './external-link.gts';\nimport type RouterService from '@ember/routing/router-service';\nexport interface Signature {\n Element: HTMLAnchorElement;\n Args: {\n /**\n * the `href` string value to set on the anchor element.\n */ href: string;\n /**\n * When calculating the \"active\" state of the link, you may decide\n * whether or not you want to _require_ that all query params be considered (true)\n * or specify individual query params, ignoring anything not specified.\n *\n * For example:\n *\n * ```gjs live preview\n * import { Link } from 'ember-primitives';\n *\n * <template>\n * <Link @href=\"/\" @includeActiveQueryParams={{true}} as |a|>\n * ...\n * </Link>\n * </template>\n * ```\n *\n * the data-active state here will only be \"true\" on\n * - `/`\n * - `/?foo=2`\n * - `/?foo=&bar=`\n *\n */ includeActiveQueryParams?: true | string[];\n };\n Blocks: {\n default: [{\n /**\n * Indicates if the passed `href` is pointing to an external site.\n * Useful if you want your links to have additional context for when\n * a user is about to leave your site.\n *\n * For example:\n *\n * ```gjs live preview\n * import { Link } from 'ember-primitives';\n *\n * const MyLink = <template>\n * <Link @href={{@href}} as |a|>\n * {{yield}}\n * {{#if a.isExternal}}\n * ➚\n * {{/if}}\n * </Link>\n * </template>;\n *\n * <template>\n * <MyLink @href=\"https://developer.mozilla.org\">MDN</MyLink> \n * <MyLink @href=\"/\">Home</MyLink>\n * </template>\n * ```\n */ isExternal: boolean;\n /**\n * Indicates if the passed `href` is *active*, or the user is on the same basepath.\n * This allows consumers to style their link if they wish or style their text.\n * The active state will also be present on a `data-active` attribute on the generated anchor tag.\n *\n *\n * For example\n * ```gjs\n * import { Link, service } from 'ember-primitives';\n *\n * const MyLink = <template>\n * <Link @href=\"...\"> as |a|>\n * <span class=\"{{if a.isActive 'underline'}}\">\n * {{yield}}\n * </span>\n * </Link>\n * </template>\n *\n * <template>\n * {{#let (service 'router') as |router|}}\n * <MyLink @href={{router.currentURL}}>Ths page</MyLink> \n * <MyLink @href=\"/\">Home</MyLink>\n * {{/let}}\n * </template>\n * ```\n *\n * By default, the query params are omitted from `isActive` calculation, but you may\n * configure the query params to be included if you wish\n * See: `@includeActiveQueryParams`\n *\n * Note that external links are never active.\n */ isActive: boolean;\n }];\n };\n}\n/**\n * A light wrapper around the [Anchor element][mdn-a], which will appropriately make your link an external link if the passed `@href` is not on the same domain.\n *\n *\n * [mdn-a]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a\n */ export class Link extends Component<Signature> {\n static{\n template(`\n {{#if (isExternal @href)}}\n <ExternalLink href={{@href}} ...attributes>\n {{yield (hash isExternal=true isActive=false)}}\n </ExternalLink>\n {{else}}\n <a\n data-active={{this.isActive}}\n href={{if @href @href \"##missing##\"}}\n {{on \"click\" this.handleClick}}\n ...attributes\n >\n {{yield (hash isExternal=false isActive=this.isActive)}}\n </a>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n @service\n router: RouterService;\n handleClick = (event1: MouseEvent)=>{\n assert('[BUG]', event1.target instanceof HTMLAnchorElement);\n handle(this.router, event1.target, [], event1);\n };\n get isActive() {\n let { href: href1, includeActiveQueryParams: includeActiveQueryParams1 } = this.args;\n return isActive(this.router, href1, includeActiveQueryParams1);\n }\n}\nexport default Link;\nfunction isExternal(href1: string) {\n if (!href1) return false;\n if (href1.startsWith('#')) return false;\n if (href1.startsWith('/')) return false;\n return location.origin !== new URL(href1).origin;\n}\nfunction isActive(router1: RouterService, href1: string, includeQueryParams1?: boolean | string[]) {\n if (!includeQueryParams1) {\n /**\n * is Active doesn't understand `href`, so we have to convert to RouteInfo-esque\n */ let info1 = router1.recognize(href1);\n if (info1) {\n let dynamicSegments1 = getParams(info1);\n return router1.isActive(info1.name, ...dynamicSegments1);\n }\n return false;\n }\n let url1 = new URL(href1, location.origin);\n let hrefQueryParams1 = new URLSearchParams(url1.searchParams);\n let hrefPath1 = url1.pathname;\n const currentPath1 = router1.currentURL?.split('?')[0];\n if (!currentPath1) return false;\n if (hrefPath1 !== currentPath1) return false;\n const currentQueryParams1 = router1.currentRoute?.queryParams;\n if (!currentQueryParams1) return false;\n if (includeQueryParams1 === true) {\n return Object.entries(currentQueryParams1).every(([key1, value1])=>{\n return hrefQueryParams1.get(key1) === value1;\n });\n }\n return includeQueryParams1.every((key1)=>{\n return hrefQueryParams1.get(key1) === currentQueryParams1[key1];\n });\n}\ntype RouteInfo = ReturnType<RouterService['recognize']>;\nfunction getParams(currentRouteInfo1: RouteInfo) {\n let params1: Record<string, string | unknown | undefined>[] = [];\n while(currentRouteInfo1?.parent){\n let currentParams1 = currentRouteInfo1.params;\n params1 = currentParams1 ? [\n currentParams1,\n ...params1\n ] : params1;\n currentRouteInfo1 = currentRouteInfo1.parent;\n }\n return params1.map(Object.values).flat();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL2xpbmsuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVE9ETzogbWFrZSB0ZW1wbGF0ZS1vbmx5IGNvbXBvbmVudCxcbiAqIGFuZCB1c2UgY2xhc3MtYmFzZWQgbW9kaWZpZXI_XG4gKlxuICogVGhpcyB3b3VsZCByZXF1aXJlIHRoYXQgbW9kaWZpZXJzIGNvdWxkIHJ1biBwcmUtcmVuZGVyXG4gKi9cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5pbXBvcnQgeyBzZXJ2aWNlIH0gZnJvbSAnQGVtYmVyL3NlcnZpY2UnO1xuXG5pbXBvcnQgeyBoYW5kbGUgfSBmcm9tICcuLi9wcm9wZXItbGlua3MudHMnO1xuaW1wb3J0IHsgRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi9leHRlcm5hbC1saW5rLmd0cyc7XG5cbmltcG9ydCB0eXBlIFJvdXRlclNlcnZpY2UgZnJvbSAnQGVtYmVyL3JvdXRpbmcvcm91dGVyLXNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogdGhlIGBocmVmYCBzdHJpbmcgdmFsdWUgdG8gc2V0IG9uIHRoZSBhbmNob3IgZWxlbWVudC5cbiAgICAgKi9cbiAgICBocmVmOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogV2hlbiBjYWxjdWxhdGluZyB0aGUgXCJhY3RpdmVcIiBzdGF0ZSBvZiB0aGUgbGluaywgeW91IG1heSBkZWNpZGVcbiAgICAgKiB3aGV0aGVyIG9yIG5vdCB5b3Ugd2FudCB0byBfcmVxdWlyZV8gdGhhdCBhbGwgcXVlcnkgcGFyYW1zIGJlIGNvbnNpZGVyZWQgKHRydWUpXG4gICAgICogb3Igc3BlY2lmeSBpbmRpdmlkdWFsIHF1ZXJ5IHBhcmFtcywgaWdub3JpbmcgYW55dGhpbmcgbm90IHNwZWNpZmllZC5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqXG4gICAgICogYGBgZ2pzIGxpdmUgcHJldmlld1xuICAgICAqIGltcG9ydCB7IExpbmsgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgKlxuICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgKiAgIDxMaW5rIEBocmVmPVwiL1wiIEBpbmNsdWRlQWN0aXZlUXVlcnlQYXJhbXM9e3t0cnVlfX0gYXMgfGF8PlxuICAgICAqICAgICAuLi5cbiAgICAgKiAgIDwvTGluaz5cbiAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogdGhlIGRhdGEtYWN0aXZlIHN0YXRlIGhlcmUgd2lsbCBvbmx5IGJlIFwidHJ1ZVwiIG9uXG4gICAgICogLSBgL2BcbiAgICAgKiAtIGAvP2Zvbz0yYFxuICAgICAqIC0gYC8_Zm9vPSZiYXI9YFxuICAgICAqXG4gICAgICovXG4gICAgaW5jbHVkZUFjdGl2ZVF1ZXJ5UGFyYW1zPzogdHJ1ZSB8IHN0cmluZ1tdO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHBhc3NlZCBgaHJlZmAgaXMgcG9pbnRpbmcgdG8gYW4gZXh0ZXJuYWwgc2l0ZS5cbiAgICAgICAgICogVXNlZnVsIGlmIHlvdSB3YW50IHlvdXIgbGlua3MgdG8gaGF2ZSBhZGRpdGlvbmFsIGNvbnRleHQgZm9yIHdoZW5cbiAgICAgICAgICogYSB1c2VyIGlzIGFib3V0IHRvIGxlYXZlIHlvdXIgc2l0ZS5cbiAgICAgICAgICpcbiAgICAgICAgICogRm9yIGV4YW1wbGU6XG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqcyBsaXZlIHByZXZpZXdcbiAgICAgICAgICogaW1wb3J0IHsgTGluayB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiBjb25zdCBNeUxpbmsgPSA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPExpbmsgQGhyZWY9e3tAaHJlZn19IGFzIHxhfD5cbiAgICAgICAgICogICAgIHt7eWllbGR9fVxuICAgICAgICAgKiAgICAge3sjaWYgYS5pc0V4dGVybmFsfX1cbiAgICAgICAgICogICAgICAg4p6aXG4gICAgICAgICAqICAgICB7ey9pZn19XG4gICAgICAgICAqICAgPC9MaW5rPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPjtcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxNeUxpbmsgQGhyZWY9XCJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZ1wiPk1ETjwvTXlMaW5rPiAmbmJzcDsmbmJzcDtcbiAgICAgICAgICogICA8TXlMaW5rIEBocmVmPVwiL1wiPkhvbWU8L015TGluaz5cbiAgICAgICAgICogIDwvdGVtcGxhdGU-XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKi9cbiAgICAgICAgaXNFeHRlcm5hbDogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluZGljYXRlcyBpZiB0aGUgcGFzc2VkIGBocmVmYCBpcyAqYWN0aXZlKiwgb3IgdGhlIHVzZXIgaXMgb24gdGhlIHNhbWUgYmFzZXBhdGguXG4gICAgICAgICAqIFRoaXMgYWxsb3dzIGNvbnN1bWVycyB0byBzdHlsZSB0aGVpciBsaW5rIGlmIHRoZXkgd2lzaCBvciBzdHlsZSB0aGVpciB0ZXh0LlxuICAgICAgICAgKiBUaGUgYWN0aXZlIHN0YXRlIHdpbGwgYWxzbyBiZSBwcmVzZW50IG9uIGEgYGRhdGEtYWN0aXZlYCBhdHRyaWJ1dGUgb24gdGhlIGdlbmVyYXRlZCBhbmNob3IgdGFnLlxuICAgICAgICAgKlxuICAgICAgICAgKlxuICAgICAgICAgKiBGb3IgZXhhbXBsZVxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgTGluaywgc2VydmljZSB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiBjb25zdCBNeUxpbmsgPSA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPExpbmsgQGhyZWY9XCIuLi5cIj4gYXMgfGF8PlxuICAgICAgICAgKiAgICAgPHNwYW4gY2xhc3M9XCJ7e2lmIGEuaXNBY3RpdmUgJ3VuZGVybGluZSd9fVwiPlxuICAgICAgICAgKiAgICAge3t5aWVsZH19XG4gICAgICAgICAqICAgICA8L3NwYW4-XG4gICAgICAgICAqICAgPC9MaW5rPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqIHt7I2xldCAoc2VydmljZSAncm91dGVyJykgYXMgfHJvdXRlcnx9fVxuICAgICAgICAgKiAgICAgPE15TGluayBAaHJlZj17e3JvdXRlci5jdXJyZW50VVJMfX0-VGhzIHBhZ2U8L015TGluaz4gJm5ic3A7Jm5ic3A7XG4gICAgICAgICAqICAgICA8TXlMaW5rIEBocmVmPVwiL1wiPkhvbWU8L015TGluaz5cbiAgICAgICAgICogICB7ey9sZXR9fVxuICAgICAgICAgKiAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqXG4gICAgICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBxdWVyeSBwYXJhbXMgYXJlIG9taXR0ZWQgZnJvbSBgaXNBY3RpdmVgIGNhbGN1bGF0aW9uLCBidXQgeW91IG1heVxuICAgICAgICAgKiBjb25maWd1cmUgdGhlIHF1ZXJ5IHBhcmFtcyB0byBiZSBpbmNsdWRlZCBpZiB5b3Ugd2lzaFxuICAgICAgICAgKiBTZWU6IGBAaW5jbHVkZUFjdGl2ZVF1ZXJ5UGFyYW1zYFxuICAgICAgICAgKlxuICAgICAgICAgKiBOb3RlIHRoYXQgZXh0ZXJuYWwgbGlua3MgYXJlIG5ldmVyIGFjdGl2ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlzQWN0aXZlOiBib29sZWFuO1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufVxuXG4vKipcbiAqIEEgbGlnaHQgd3JhcHBlciBhcm91bmQgdGhlIFtBbmNob3IgZWxlbWVudF1bbWRuLWFdLCB3aGljaCB3aWxsIGFwcHJvcHJpYXRlbHkgbWFrZSB5b3VyIGxpbmsgYW4gZXh0ZXJuYWwgbGluayBpZiB0aGUgcGFzc2VkIGBAaHJlZmAgaXMgbm90IG9uIHRoZSBzYW1lIGRvbWFpbi5cbiAqXG4gKlxuICogW21kbi1hXTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2FcbiAqL1xuZXhwb3J0IGNsYXNzIExpbmsgZXh0ZW5kcyBDb21wb25lbnQ8U2lnbmF0dXJlPiB7XG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiAoaXNFeHRlcm5hbCBAaHJlZil9fVxuICAgICAgPEV4dGVybmFsTGluayBocmVmPXt7QGhyZWZ9fSAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICB7e3lpZWxkIChoYXNoIGlzRXh0ZXJuYWw9dHJ1ZSBpc0FjdGl2ZT1mYWxzZSl9fVxuICAgICAgPC9FeHRlcm5hbExpbms-XG4gICAge3tlbHNlfX1cbiAgICAgIDxhXG4gICAgICAgIGRhdGEtYWN0aXZlPXt7dGhpcy5pc0FjdGl2ZX19XG4gICAgICAgIGhyZWY9e3tpZiBAaHJlZiBAaHJlZiBcIiMjbWlzc2luZyMjXCJ9fVxuICAgICAgICB7e29uIFwiY2xpY2tcIiB0aGlzLmhhbmRsZUNsaWNrfX1cbiAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgPlxuICAgICAgICB7e3lpZWxkIChoYXNoIGlzRXh0ZXJuYWw9ZmFsc2UgaXNBY3RpdmU9dGhpcy5pc0FjdGl2ZSl9fVxuICAgICAgPC9hPlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cblxuICBAc2VydmljZSBkZWNsYXJlIHJvdXRlcjogUm91dGVyU2VydmljZTtcblxuICBoYW5kbGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGFzc2VydCgnW0JVR10nLCBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCk7XG5cbiAgICBoYW5kbGUodGhpcy5yb3V0ZXIsIGV2ZW50LnRhcmdldCwgW10sIGV2ZW50KTtcbiAgfTtcblxuICBnZXQgaXNBY3RpdmUoKSB7XG4gICAgbGV0IHsgaHJlZiwgaW5jbHVkZUFjdGl2ZVF1ZXJ5UGFyYW1zIH0gPSB0aGlzLmFyZ3M7XG5cbiAgICByZXR1cm4gaXNBY3RpdmUodGhpcy5yb3V0ZXIsIGhyZWYsIGluY2x1ZGVBY3RpdmVRdWVyeVBhcmFtcyk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGluaztcblxuZnVuY3Rpb24gaXNFeHRlcm5hbChocmVmOiBzdHJpbmcpIHtcbiAgaWYgKCFocmVmKSByZXR1cm4gZmFsc2U7XG4gIGlmIChocmVmLnN0YXJ0c1dpdGgoJyMnKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoaHJlZi5zdGFydHNXaXRoKCcvJykpIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gbG9jYXRpb24ub3JpZ2luICE9PSBuZXcgVVJMKGhyZWYpLm9yaWdpbjtcbn1cblxuZnVuY3Rpb24gaXNBY3RpdmUocm91dGVyOiBSb3V0ZXJTZXJ2aWNlLCBocmVmOiBzdHJpbmcsIGluY2x1ZGVRdWVyeVBhcmFtcz86IGJvb2xlYW4gfCBzdHJpbmdbXSkge1xuICBpZiAoIWluY2x1ZGVRdWVyeVBhcmFtcykge1xuICAgIC8qKlxuICAgICAqIGlzIEFjdGl2ZSBkb2Vzbid0IHVuZGVyc3RhbmQgYGhyZWZgLCBzbyB3ZSBoYXZlIHRvIGNvbnZlcnQgdG8gUm91dGVJbmZvLWVzcXVlXG4gICAgICovXG4gICAgbGV0IGluZm8gPSByb3V0ZXIucmVjb2duaXplKGhyZWYpO1xuXG4gICAgaWYgKGluZm8pIHtcbiAgICAgIGxldCBkeW5hbWljU2VnbWVudHMgPSBnZXRQYXJhbXMoaW5mbyk7XG5cbiAgICAgIHJldHVybiByb3V0ZXIuaXNBY3RpdmUoaW5mby5uYW1lLCAuLi5keW5hbWljU2VnbWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCB1cmwgPSBuZXcgVVJMKGhyZWYsIGxvY2F0aW9uLm9yaWdpbik7XG4gIGxldCBocmVmUXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5zZWFyY2hQYXJhbXMpO1xuICBsZXQgaHJlZlBhdGggPSB1cmwucGF0aG5hbWU7XG5cbiAgY29uc3QgY3VycmVudFBhdGggPSByb3V0ZXIuY3VycmVudFVSTD8uc3BsaXQoJz8nKVswXTtcblxuICBpZiAoIWN1cnJlbnRQYXRoKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKGhyZWZQYXRoICE9PSBjdXJyZW50UGF0aCkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGN1cnJlbnRRdWVyeVBhcmFtcyA9IHJvdXRlci5jdXJyZW50Um91dGU_LnF1ZXJ5UGFyYW1zO1xuXG4gIGlmICghY3VycmVudFF1ZXJ5UGFyYW1zKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKGluY2x1ZGVRdWVyeVBhcmFtcyA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjdXJyZW50UXVlcnlQYXJhbXMpLmV2ZXJ5KChba2V5LCB2YWx1ZV0pID0-IHtcbiAgICAgIHJldHVybiBocmVmUXVlcnlQYXJhbXMuZ2V0KGtleSkgPT09IHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGluY2x1ZGVRdWVyeVBhcmFtcy5ldmVyeSgoa2V5KSA9PiB7XG4gICAgcmV0dXJuIGhyZWZRdWVyeVBhcmFtcy5nZXQoa2V5KSA9PT0gY3VycmVudFF1ZXJ5UGFyYW1zW2tleV07XG4gIH0pO1xufVxuXG50eXBlIFJvdXRlSW5mbyA9IFJldHVyblR5cGU8Um91dGVyU2VydmljZVsncmVjb2duaXplJ10-O1xuXG5mdW5jdGlvbiBnZXRQYXJhbXMoY3VycmVudFJvdXRlSW5mbzogUm91dGVJbmZvKSB7XG4gIGxldCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVua25vd24gfCB1bmRlZmluZWQ-W10gPSBbXTtcblxuICB3aGlsZSAoY3VycmVudFJvdXRlSW5mbz8ucGFyZW50KSB7XG4gICAgbGV0IGN1cnJlbnRQYXJhbXMgPSBjdXJyZW50Um91dGVJbmZvLnBhcmFtcztcblxuICAgIHBhcmFtcyA9IGN1cnJlbnRQYXJhbXMgPyBbY3VycmVudFBhcmFtcywgLi4ucGFyYW1zXSA6IHBhcmFtcztcbiAgICBjdXJyZW50Um91dGVJbmZvID0gY3VycmVudFJvdXRlSW5mby5wYXJlbnQ7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zLm1hcChPYmplY3QudmFsdWVzKS5mbGF0KCk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7QUFDRCxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxRQUFRLGVBQWU7QUFDdEMsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3JDLFNBQVMsRUFBRSxRQUFRLGtCQUFrQjtBQUNyQyxTQUFTLE9BQU8sUUFBUSxpQkFBaUI7QUFFekMsU0FBUyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVMsWUFBWSxRQUFRLHNCQUFzQjtBQUVuRCxZQUFZLG1CQUFtQixnQ0FBZ0M7QUFFL0QsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7O0tBRUMsR0FDRCxNQUFNLE1BQU07UUFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNCQyxHQUNELDJCQUEyQixJQUFJLEdBQUcsTUFBTTs7SUFFMUM7UUFDRTtnQkFFSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBd0JDLEdBQ0QsWUFBWSxPQUFPO2dCQUNuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQStCQyxHQUNELFVBQVUsT0FBTzs7OztBQU16Qjs7Ozs7Q0FLQyxHQUNELE9BQU8sTUFBTSxhQUFhLFVBQVU7SUFDbEMsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O0VBZVYsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FB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"],"names":["Link","Component","setComponentTemplate","precompileTemplate","scope","isExternal","ExternalLink","hash","on","strictMode","g","this","prototype","service","i","void 0","handleClick","event1","assert","target","HTMLAnchorElement","handle","router","isActive","href","href1","includeActiveQueryParams","includeActiveQueryParams1","args","startsWith","location","origin","URL","router1","includeQueryParams1","info1","recognize","dynamicSegments1","getParams","name","url1","hrefQueryParams1","URLSearchParams","searchParams","hrefPath1","pathname","currentPath1","currentURL","split","currentQueryParams1","currentRoute","queryParams","Object","entries","every","key1","value1","get","currentRouteInfo1","params1","parent","currentParams1","params","map","values","flat"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"link.js","sources":["../../src/components/link.gts"],"sourcesContent":["/**\n * TODO: make template-only component,\n * and use class-based modifier?\n *\n * This would require that modifiers could run pre-render\n */ import { template } from \"@ember/template-compiler\";\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { link } from '../helpers/link.ts';\nimport { ExternalLink } from './external-link.gts';\nimport type { TOC } from '@ember/component/template-only';\nexport interface Signature {\n Element: HTMLAnchorElement;\n Args: {\n /**\n * the `href` string value to set on the anchor element.\n */ href: string;\n /**\n * When calculating the \"active\" state of the link, you may decide\n * whether or not you want to _require_ that all query params be considered (true)\n * or specify individual query params, ignoring anything not specified.\n *\n * For example:\n *\n * ```gjs live preview\n * import { Link } from 'ember-primitives';\n *\n * <template>\n * <Link @href=\"/\" @includeActiveQueryParams={{true}} as |a|>\n * ...\n * </Link>\n * </template>\n * ```\n *\n * the data-active state here will only be \"true\" on\n * - `/`\n * - `/?foo=2`\n * - `/?foo=&bar=`\n *\n */ includeActiveQueryParams?: true | string[];\n /**\n * When calculating the \"active\" state of the link, you may decide\n * whether or not you want to consider sub paths to be active when\n * child routes/urls are active.\n *\n * For example:\n *\n * ```gjs live preview\n * import { Link } from 'ember-primitives';\n *\n * <template>\n * <Link @href=\"/forum/1\" @activeOnSubPaths={{true}} as |a|>\n * ...\n * </Link>\n * </template>\n * ```\n *\n * the data-active state here will be \"true\" on\n * - `/forum/1`\n * - `/forum/1/posts`\n * - `/forum/1/posts/comments`\n * - `/forum/1/*etc*`\n *\n * if `@activeOnSubPaths` is set to false or left off\n * the data-active state here will only be \"true\" on\n * - `/forum/1`\n *\n */ activeOnSubPaths?: true;\n };\n Blocks: {\n default: [{\n /**\n * Indicates if the passed `href` is pointing to an external site.\n * Useful if you want your links to have additional context for when\n * a user is about to leave your site.\n *\n * For example:\n *\n * ```gjs live preview\n * import { Link } from 'ember-primitives';\n *\n * const MyLink = <template>\n * <Link @href={{@href}} as |a|>\n * {{yield}}\n * {{#if a.isExternal}}\n * ➚\n * {{/if}}\n * </Link>\n * </template>;\n *\n * <template>\n * <MyLink @href=\"https://developer.mozilla.org\">MDN</MyLink> \n * <MyLink @href=\"/\">Home</MyLink>\n * </template>\n * ```\n */ isExternal: boolean;\n /**\n * Indicates if the passed `href` is *active*, or the user is on the same basepath.\n * This allows consumers to style their link if they wish or style their text.\n * The active state will also be present on a `data-active` attribute on the generated anchor tag.\n *\n *\n * For example\n * ```gjs\n * import { Link, service } from 'ember-primitives';\n *\n * const MyLink = <template>\n * <Link @href=\"...\"> as |a|>\n * <span class=\"{{if a.isActive 'underline'}}\">\n * {{yield}}\n * </span>\n * </Link>\n * </template>\n *\n * <template>\n * {{#let (service 'router') as |router|}}\n * <MyLink @href={{router.currentURL}}>Ths page</MyLink> \n * <MyLink @href=\"/\">Home</MyLink>\n * {{/let}}\n * </template>\n * ```\n *\n * By default, the query params are omitted from `isActive` calculation, but you may\n * configure the query params to be included if you wish\n * See: `@includeActiveQueryParams`\n *\n * By default, only the exact route/url is considered for the `isActive` calculation,\n * but you may configure sub routes/paths to also be considered active\n * See: `@activeOnSubPaths`\n *\n * Note that external links are never active.\n */ isActive: boolean;\n }];\n };\n}\n/**\n * A light wrapper around the [Anchor element][mdn-a], which will appropriately make your link an external link if the passed `@href` is not on the same domain.\n *\n *\n * [mdn-a]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a\n */ export const Link: TOC<Signature> = template(`\n {{#let (link @href includeActiveQueryParams=@includeActiveQueryParams activeOnSubPaths=@activeOnSubPaths) as |l|}}\n {{#if l.isExternal}}\n <ExternalLink href={{@href}} ...attributes>\n {{yield (hash isExternal=true isActive=false)}}\n </ExternalLink>\n {{else}}\n <a\n data-active={{l.isActive}}\n href={{if @href @href \"##missing##\"}}\n {{on \"click\" l.handleClick}}\n ...attributes\n >\n {{yield (hash isExternal=false isActive=l.isActive)}}\n </a>\n {{/if}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Link;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL2xpbmsuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVE9ETzogbWFrZSB0ZW1wbGF0ZS1vbmx5IGNvbXBvbmVudCxcbiAqIGFuZCB1c2UgY2xhc3MtYmFzZWQgbW9kaWZpZXI_XG4gKlxuICogVGhpcyB3b3VsZCByZXF1aXJlIHRoYXQgbW9kaWZpZXJzIGNvdWxkIHJ1biBwcmUtcmVuZGVyXG4gKi9cbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcblxuaW1wb3J0IHsgbGluayB9IGZyb20gJy4uL2hlbHBlcnMvbGluay50cyc7XG5pbXBvcnQgeyBFeHRlcm5hbExpbmsgfSBmcm9tICcuL2V4dGVybmFsLWxpbmsuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogdGhlIGBocmVmYCBzdHJpbmcgdmFsdWUgdG8gc2V0IG9uIHRoZSBhbmNob3IgZWxlbWVudC5cbiAgICAgKi9cbiAgICBocmVmOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogV2hlbiBjYWxjdWxhdGluZyB0aGUgXCJhY3RpdmVcIiBzdGF0ZSBvZiB0aGUgbGluaywgeW91IG1heSBkZWNpZGVcbiAgICAgKiB3aGV0aGVyIG9yIG5vdCB5b3Ugd2FudCB0byBfcmVxdWlyZV8gdGhhdCBhbGwgcXVlcnkgcGFyYW1zIGJlIGNvbnNpZGVyZWQgKHRydWUpXG4gICAgICogb3Igc3BlY2lmeSBpbmRpdmlkdWFsIHF1ZXJ5IHBhcmFtcywgaWdub3JpbmcgYW55dGhpbmcgbm90IHNwZWNpZmllZC5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqXG4gICAgICogYGBgZ2pzIGxpdmUgcHJldmlld1xuICAgICAqIGltcG9ydCB7IExpbmsgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgKlxuICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgKiAgIDxMaW5rIEBocmVmPVwiL1wiIEBpbmNsdWRlQWN0aXZlUXVlcnlQYXJhbXM9e3t0cnVlfX0gYXMgfGF8PlxuICAgICAqICAgICAuLi5cbiAgICAgKiAgIDwvTGluaz5cbiAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogdGhlIGRhdGEtYWN0aXZlIHN0YXRlIGhlcmUgd2lsbCBvbmx5IGJlIFwidHJ1ZVwiIG9uXG4gICAgICogLSBgL2BcbiAgICAgKiAtIGAvP2Zvbz0yYFxuICAgICAqIC0gYC8_Zm9vPSZiYXI9YFxuICAgICAqXG4gICAgICovXG4gICAgaW5jbHVkZUFjdGl2ZVF1ZXJ5UGFyYW1zPzogdHJ1ZSB8IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIFdoZW4gY2FsY3VsYXRpbmcgdGhlIFwiYWN0aXZlXCIgc3RhdGUgb2YgdGhlIGxpbmssIHlvdSBtYXkgZGVjaWRlXG4gICAgICogd2hldGhlciBvciBub3QgeW91IHdhbnQgdG8gY29uc2lkZXIgc3ViIHBhdGhzIHRvIGJlIGFjdGl2ZSB3aGVuXG4gICAgICogY2hpbGQgcm91dGVzL3VybHMgYXJlIGFjdGl2ZS5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqXG4gICAgICogYGBgZ2pzIGxpdmUgcHJldmlld1xuICAgICAqIGltcG9ydCB7IExpbmsgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgKlxuICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgKiAgIDxMaW5rIEBocmVmPVwiL2ZvcnVtLzFcIiBAYWN0aXZlT25TdWJQYXRocz17e3RydWV9fSBhcyB8YXw-XG4gICAgICogICAgIC4uLlxuICAgICAqICAgPC9MaW5rPlxuICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiB0aGUgZGF0YS1hY3RpdmUgc3RhdGUgaGVyZSB3aWxsIGJlIFwidHJ1ZVwiIG9uXG4gICAgICogLSBgL2ZvcnVtLzFgXG4gICAgICogLSBgL2ZvcnVtLzEvcG9zdHNgXG4gICAgICogLSBgL2ZvcnVtLzEvcG9zdHMvY29tbWVudHNgXG4gICAgICogLSBgL2ZvcnVtLzEvKmV0YypgXG4gICAgICpcbiAgICAgKiBpZiBgQGFjdGl2ZU9uU3ViUGF0aHNgIGlzIHNldCB0byBmYWxzZSBvciBsZWZ0IG9mZlxuICAgICAqIHRoZSBkYXRhLWFjdGl2ZSBzdGF0ZSBoZXJlIHdpbGwgb25seSBiZSBcInRydWVcIiBvblxuICAgICAqIC0gYC9mb3J1bS8xYFxuICAgICAqXG4gICAgICovXG4gICAgYWN0aXZlT25TdWJQYXRocz86IHRydWU7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluZGljYXRlcyBpZiB0aGUgcGFzc2VkIGBocmVmYCBpcyBwb2ludGluZyB0byBhbiBleHRlcm5hbCBzaXRlLlxuICAgICAgICAgKiBVc2VmdWwgaWYgeW91IHdhbnQgeW91ciBsaW5rcyB0byBoYXZlIGFkZGl0aW9uYWwgY29udGV4dCBmb3Igd2hlblxuICAgICAgICAgKiBhIHVzZXIgaXMgYWJvdXQgdG8gbGVhdmUgeW91ciBzaXRlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBGb3IgZXhhbXBsZTpcbiAgICAgICAgICpcbiAgICAgICAgICogYGBgZ2pzIGxpdmUgcHJldmlld1xuICAgICAgICAgKiBpbXBvcnQgeyBMaW5rIH0gZnJvbSAnZW1iZXItcHJpbWl0aXZlcyc7XG4gICAgICAgICAqXG4gICAgICAgICAqIGNvbnN0IE15TGluayA9IDx0ZW1wbGF0ZT5cbiAgICAgICAgICogICA8TGluayBAaHJlZj17e0BocmVmfX0gYXMgfGF8PlxuICAgICAgICAgKiAgICAge3t5aWVsZH19XG4gICAgICAgICAqICAgICB7eyNpZiBhLmlzRXh0ZXJuYWx9fVxuICAgICAgICAgKiAgICAgICDinppcbiAgICAgICAgICogICAgIHt7L2lmfX1cbiAgICAgICAgICogICA8L0xpbms-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-O1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPE15TGluayBAaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnXCI-TUROPC9NeUxpbms-ICZuYnNwOyZuYnNwO1xuICAgICAgICAgKiAgIDxNeUxpbmsgQGhyZWY9XCIvXCI-SG9tZTwvTXlMaW5rPlxuICAgICAgICAgKiAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBpc0V4dGVybmFsOiBib29sZWFuO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5kaWNhdGVzIGlmIHRoZSBwYXNzZWQgYGhyZWZgIGlzICphY3RpdmUqLCBvciB0aGUgdXNlciBpcyBvbiB0aGUgc2FtZSBiYXNlcGF0aC5cbiAgICAgICAgICogVGhpcyBhbGxvd3MgY29uc3VtZXJzIHRvIHN0eWxlIHRoZWlyIGxpbmsgaWYgdGhleSB3aXNoIG9yIHN0eWxlIHRoZWlyIHRleHQuXG4gICAgICAgICAqIFRoZSBhY3RpdmUgc3RhdGUgd2lsbCBhbHNvIGJlIHByZXNlbnQgb24gYSBgZGF0YS1hY3RpdmVgIGF0dHJpYnV0ZSBvbiB0aGUgZ2VuZXJhdGVkIGFuY2hvciB0YWcuXG4gICAgICAgICAqXG4gICAgICAgICAqXG4gICAgICAgICAqIEZvciBleGFtcGxlXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBMaW5rLCBzZXJ2aWNlIH0gZnJvbSAnZW1iZXItcHJpbWl0aXZlcyc7XG4gICAgICAgICAqXG4gICAgICAgICAqIGNvbnN0IE15TGluayA9IDx0ZW1wbGF0ZT5cbiAgICAgICAgICogICA8TGluayBAaHJlZj1cIi4uLlwiPiBhcyB8YXw-XG4gICAgICAgICAqICAgICA8c3BhbiBjbGFzcz1cInt7aWYgYS5pc0FjdGl2ZSAndW5kZXJsaW5lJ319XCI-XG4gICAgICAgICAqICAgICB7e3lpZWxkfX1cbiAgICAgICAgICogICAgIDwvc3Bhbj5cbiAgICAgICAgICogICA8L0xpbms-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICAgICAqXG4gICAgICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgICAgICoge3sjbGV0IChzZXJ2aWNlICdyb3V0ZXInKSBhcyB8cm91dGVyfH19XG4gICAgICAgICAqICAgICA8TXlMaW5rIEBocmVmPXt7cm91dGVyLmN1cnJlbnRVUkx9fT5UaHMgcGFnZTwvTXlMaW5rPiAmbmJzcDsmbmJzcDtcbiAgICAgICAgICogICAgIDxNeUxpbmsgQGhyZWY9XCIvXCI-SG9tZTwvTXlMaW5rPlxuICAgICAgICAgKiAgIHt7L2xldH19XG4gICAgICAgICAqICA8L3RlbXBsYXRlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICpcbiAgICAgICAgICogQnkgZGVmYXVsdCwgdGhlIHF1ZXJ5IHBhcmFtcyBhcmUgb21pdHRlZCBmcm9tIGBpc0FjdGl2ZWAgY2FsY3VsYXRpb24sIGJ1dCB5b3UgbWF5XG4gICAgICAgICAqIGNvbmZpZ3VyZSB0aGUgcXVlcnkgcGFyYW1zIHRvIGJlIGluY2x1ZGVkIGlmIHlvdSB3aXNoXG4gICAgICAgICAqIFNlZTogYEBpbmNsdWRlQWN0aXZlUXVlcnlQYXJhbXNgXG4gICAgICAgICAqXG4gICAgICAgICAqIEJ5IGRlZmF1bHQsIG9ubHkgdGhlIGV4YWN0IHJvdXRlL3VybCBpcyBjb25zaWRlcmVkIGZvciB0aGUgYGlzQWN0aXZlYCBjYWxjdWxhdGlvbixcbiAgICAgICAgICogYnV0IHlvdSBtYXkgY29uZmlndXJlIHN1YiByb3V0ZXMvcGF0aHMgdG8gYWxzbyBiZSBjb25zaWRlcmVkIGFjdGl2ZVxuICAgICAgICAgKiBTZWU6IGBAYWN0aXZlT25TdWJQYXRoc2BcbiAgICAgICAgICpcbiAgICAgICAgICogTm90ZSB0aGF0IGV4dGVybmFsIGxpbmtzIGFyZSBuZXZlciBhY3RpdmUuXG4gICAgICAgICAqL1xuICAgICAgICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGxpZ2h0IHdyYXBwZXIgYXJvdW5kIHRoZSBbQW5jaG9yIGVsZW1lbnRdW21kbi1hXSwgd2hpY2ggd2lsbCBhcHByb3ByaWF0ZWx5IG1ha2UgeW91ciBsaW5rIGFuIGV4dGVybmFsIGxpbmsgaWYgdGhlIHBhc3NlZCBgQGhyZWZgIGlzIG5vdCBvbiB0aGUgc2FtZSBkb21haW4uXG4gKlxuICpcbiAqIFttZG4tYV06IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9hXG4gKi9cbmV4cG9ydCBjb25zdCBMaW5rOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjbGV0IChsaW5rIEBocmVmIGluY2x1ZGVBY3RpdmVRdWVyeVBhcmFtcz1AaW5jbHVkZUFjdGl2ZVF1ZXJ5UGFyYW1zIGFjdGl2ZU9uU3ViUGF0aHM9QGFjdGl2ZU9uU3ViUGF0aHMpIGFzIHxsfH19XG4gICAge3sjaWYgbC5pc0V4dGVybmFsfX1cbiAgICAgIDxFeHRlcm5hbExpbmsgaHJlZj17e0BocmVmfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgICAge3t5aWVsZCAoaGFzaCBpc0V4dGVybmFsPXRydWUgaXNBY3RpdmU9ZmFsc2UpfX1cbiAgICAgIDwvRXh0ZXJuYWxMaW5rPlxuICAgIHt7ZWxzZX19XG4gICAgICA8YVxuICAgICAgICBkYXRhLWFjdGl2ZT17e2wuaXNBY3RpdmV9fVxuICAgICAgICBocmVmPXt7aWYgQGhyZWYgQGhyZWYgXCIjI21pc3NpbmcjI1wifX1cbiAgICAgICAge3tvbiBcImNsaWNrXCIgbC5oYW5kbGVDbGlja319XG4gICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgID5cbiAgICAgICAge3t5aWVsZCAoaGFzaCBpc0V4dGVybmFsPWZhbHNlIGlzQWN0aXZlPWwuaXNBY3RpdmUpfX1cbiAgICAgIDwvYT5cbiAgICB7ey9pZn19XG4gIHt7L2xldH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgTGluaztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Q0FLQztBQUNELFNBQVMsSUFBSSxRQUFRLGdCQUFnQjtBQUNyQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVMsWUFBWSxRQUFRLHNCQUFzQjtBQUVuRCxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFFMUQsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7O0tBRUMsR0FDRCxNQUFNLE1BQU07UUFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNCQyxHQUNELDJCQUEyQixJQUFJLEdBQUcsTUFBTTtRQUN4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkJDLEdBQ0QsbUJBQW1CLElBQUk7O0lBRXpCO1FBQ0U7Z0JBRUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXdCQyxHQUNELFlBQVksT0FBTztnQkFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBbUNDLEdBQ0QsVUFBVSxPQUFPOzs7O0FBTXpCOzs7OztDQUtDLEdBQ0QsT0FBTyxNQUFNLE1BQU0sSUFBSSxhQUFhLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQjlDLENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQSxHQUFFO0FBRVosZUFBZSxLQUFLIn0"],"names":["Link","setComponentTemplate","precompileTemplate","strictMode","scope","link","ExternalLink","hash","on","templateOnly"],"mappings":";;;;;;;;AAAA;;;;;;AAkJA;;;;;;MAMaA,IAAU,GAAAC,oBAAA,CAAaC,kBAAA,CAiBpC,ogBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAC,YAAA;IAAAC,IAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
package/dist/components/menu.js
CHANGED
|
@@ -41,11 +41,11 @@ function focusOnHover(e1) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
const Item = setComponentTemplate(precompileTemplate("\n <button type=\"button\" role=\"menuitem\" {{!-- @glint-ignore !--}} {{(if @onSelect (modifier on \"click\" @onSelect))}} {{on \"pointermove\" focusOnHover}} ...attributes>\n {{yield}}\n </button>\n", {
|
|
44
|
+
strictMode: true,
|
|
44
45
|
scope: () => ({
|
|
45
46
|
on,
|
|
46
47
|
focusOnHover
|
|
47
|
-
})
|
|
48
|
-
strictMode: true
|
|
48
|
+
})
|
|
49
49
|
}), templateOnly());
|
|
50
50
|
const installContent = modifier((element1, _1, {
|
|
51
51
|
isOpen: isOpen1,
|
|
@@ -77,6 +77,7 @@ const installContent = modifier((element1, _1, {
|
|
|
77
77
|
};
|
|
78
78
|
});
|
|
79
79
|
const Content = setComponentTemplate(precompileTemplate("\n {{#if @isOpen.current}}\n <@PopoverContent id={{@contentId}} role=\"menu\" data-tabster={{TABSTER_CONFIG_CONTENT}} tabindex=\"0\" {{installContent isOpen=@isOpen triggerElement=@triggerElement}} {{on \"click\" @isOpen.toggle}} ...attributes>\n {{yield (hash Item=Item Separator=Separator)}}\n </@PopoverContent>\n {{/if}}\n", {
|
|
80
|
+
strictMode: true,
|
|
80
81
|
scope: () => ({
|
|
81
82
|
TABSTER_CONFIG_CONTENT,
|
|
82
83
|
installContent,
|
|
@@ -84,8 +85,7 @@ const Content = setComponentTemplate(precompileTemplate("\n {{#if @isOpen.curre
|
|
|
84
85
|
hash,
|
|
85
86
|
Item,
|
|
86
87
|
Separator
|
|
87
|
-
})
|
|
88
|
-
strictMode: true
|
|
88
|
+
})
|
|
89
89
|
}), templateOnly());
|
|
90
90
|
const trigger = modifier((element1, _1, {
|
|
91
91
|
triggerElement: triggerElement1,
|
|
@@ -119,6 +119,7 @@ class Menu extends Component {
|
|
|
119
119
|
contentId = guidFor(this);
|
|
120
120
|
static {
|
|
121
121
|
setComponentTemplate(precompileTemplate("\n {{#let (IsOpen) (TriggerElement) as |isOpen triggerEl|}}\n <Popover @flipOptions={{@flipOptions}} @middleware={{@middleware}} @offsetOptions={{@offsetOptions}} @placement={{@placement}} @shiftOptions={{@shiftOptions}} @strategy={{@strategy}} @inline={{@inline}} as |p|>\n {{#let (modifier trigger triggerElement=triggerEl isOpen=isOpen contentId=this.contentId setHook=p.setHook) as |triggerModifier|}}\n {{yield (hash trigger=triggerModifier Trigger=(component Trigger triggerModifier=triggerModifier) Content=(component Content PopoverContent=p.Content isOpen=isOpen triggerElement=triggerEl contentId=this.contentId) arrow=p.arrow isOpen=isOpen.current)}}\n {{/let}}\n </Popover>\n {{/let}}\n ", {
|
|
122
|
+
strictMode: true,
|
|
122
123
|
scope: () => ({
|
|
123
124
|
IsOpen,
|
|
124
125
|
TriggerElement,
|
|
@@ -127,8 +128,7 @@ class Menu extends Component {
|
|
|
127
128
|
hash,
|
|
128
129
|
Trigger,
|
|
129
130
|
Content
|
|
130
|
-
})
|
|
131
|
-
strictMode: true
|
|
131
|
+
})
|
|
132
132
|
}), this);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sources":["../../src/components/menu.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier as eModifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport { getTabster, getTabsterAttribute, setTabsterAttribute, Types } from 'tabster';\nimport { Popover, type Signature as PopoverSignature } from './popover.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\ntype Cell<V> = ReturnType<typeof cell>;\ntype PopoverArgs = PopoverSignature['Args'];\ntype PopoverBlockParams = PopoverSignature['Blocks']['default'][0];\nconst TABSTER_CONFIG_CONTENT = getTabsterAttribute({\n mover: {\n direction: Types.MoverDirections.Both,\n cyclic: true\n },\n deloser: {}\n}, true);\nconst TABSTER_CONFIG_TRIGGER = {\n deloser: {}\n};\nexport interface Signature {\n Args: PopoverArgs;\n Blocks: {\n default: [{\n arrow: PopoverBlockParams['arrow'];\n trigger: WithBoundArgs<typeof trigger, 'triggerElement' | 'contentId' | 'isOpen' | 'setHook'>;\n Trigger: WithBoundArgs<typeof Trigger, 'triggerModifier'>;\n Content: WithBoundArgs<typeof Content, 'triggerElement' | 'contentId' | 'isOpen' | 'PopoverContent'>;\n isOpen: boolean;\n }];\n };\n}\nexport interface SeparatorSignature {\n Element: HTMLDivElement;\n Args: {\n };\n Blocks: {\n default: [];\n };\n}\nconst Separator: TOC<SeparatorSignature> = template(`\n <div role=\"separator\" ...attributes>\n {{yield}}\n </div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n/**\n * We focus items on `pointerMove` to achieve the following:\n *\n * - Mouse over an item (it focuses)\n * - Leave mouse where it is and use keyboard to focus a different item\n * - Wiggle mouse without it leaving previously focused item\n * - Previously focused item should re-focus\n *\n * If we used `mouseOver`/`mouseEnter` it would not re-focus when the mouse\n * wiggles. This is to match native menu implementation.\n */ function focusOnHover(e1: PointerEvent) {\n const item1 = e1.currentTarget;\n if (item1 instanceof HTMLElement) {\n item1?.focus();\n }\n}\nexport interface ItemSignature {\n Element: HTMLButtonElement;\n Args: {\n onSelect?: (event: Event) => void;\n };\n Blocks: {\n default: [];\n };\n}\nconst Item: TOC<ItemSignature> = template(`\n <button\n type=\"button\"\n role=\"menuitem\"\n {{! @glint-ignore !}}\n {{(if @onSelect (modifier on \"click\" @onSelect))}}\n {{on \"pointermove\" focusOnHover}}\n ...attributes\n >\n {{yield}}\n </button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nconst installContent = eModifier<{\n Element: HTMLElement;\n Args: {\n Named: {\n isOpen: Cell<boolean>;\n triggerElement: Cell<HTMLElement>;\n };\n };\n}>((element1, _1: [], { isOpen: isOpen1, triggerElement: triggerElement1 })=>{\n // focus first focusable element on the content\n const tabster1 = getTabster(window);\n const firstFocusable1 = tabster1?.focusable.findFirst({\n container: element1\n });\n firstFocusable1?.focus();\n // listen for \"outside\" clicks\n function onDocumentClick1(e1: MouseEvent) {\n if (isOpen1.current && e1.target && !element1.contains(e1.target as HTMLElement) && !triggerElement1.current?.contains(e1.target as HTMLElement)) {\n isOpen1.current = false;\n }\n }\n // listen for the escape key\n function onDocumentKeydown1(e1: KeyboardEvent) {\n if (isOpen1.current && e1.key === 'Escape') {\n isOpen1.current = false;\n }\n }\n document.addEventListener('click', onDocumentClick1);\n document.addEventListener('keydown', onDocumentKeydown1);\n return ()=>{\n document.removeEventListener('click', onDocumentClick1);\n document.removeEventListener('keydown', onDocumentKeydown1);\n };\n});\ninterface PrivateContentSignature {\n Element: HTMLDivElement;\n Args: {\n triggerElement: Cell<HTMLElement>;\n contentId: string;\n isOpen: Cell<boolean>;\n PopoverContent: PopoverBlockParams['Content'];\n };\n Blocks: {\n default: [{\n Item: typeof Item;\n Separator: typeof Separator;\n }];\n };\n}\nexport interface ContentSignature {\n Element: PrivateContentSignature['Element'];\n Args: {\n };\n Blocks: PrivateContentSignature['Blocks'];\n}\nconst Content: TOC<PrivateContentSignature> = template(`\n {{#if @isOpen.current}}\n <@PopoverContent\n id={{@contentId}}\n role=\"menu\"\n data-tabster={{TABSTER_CONFIG_CONTENT}}\n tabindex=\"0\"\n {{installContent isOpen=@isOpen triggerElement=@triggerElement}}\n {{on \"click\" @isOpen.toggle}}\n ...attributes\n >\n {{yield (hash Item=Item Separator=Separator)}}\n </@PopoverContent>\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\ninterface PrivateTriggerModifierSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n triggerElement: Cell<HTMLElement>;\n isOpen: Cell<boolean>;\n contentId: string;\n setHook: PopoverBlockParams['setHook'];\n };\n };\n}\nexport interface TriggerModifierSignature {\n Element: PrivateTriggerModifierSignature['Element'];\n}\nconst trigger = eModifier<PrivateTriggerModifierSignature>((element1, _1: [], { triggerElement: triggerElement1, isOpen: isOpen1, contentId: contentId1, setHook: setHook1 })=>{\n element1.setAttribute('aria-haspopup', 'menu');\n if (isOpen1.current) {\n element1.setAttribute('aria-controls', contentId1);\n element1.setAttribute('aria-expanded', 'true');\n } else {\n element1.removeAttribute('aria-controls');\n element1.setAttribute('aria-expanded', 'false');\n }\n setTabsterAttribute(element1, TABSTER_CONFIG_TRIGGER);\n const onTriggerClick1 = ()=>isOpen1.toggle();\n element1.addEventListener('click', onTriggerClick1);\n triggerElement1.current = element1;\n setHook1(element1);\n return ()=>{\n element1.removeEventListener('click', onTriggerClick1);\n };\n});\ninterface PrivateTriggerSignature {\n Element: HTMLButtonElement;\n Args: {\n triggerModifier: WithBoundArgs<typeof trigger, 'triggerElement' | 'contentId' | 'isOpen' | 'setHook'>;\n };\n Blocks: {\n default: [];\n };\n}\nexport interface TriggerSignature {\n Element: PrivateTriggerSignature['Element'];\n Args: {\n };\n Blocks: PrivateTriggerSignature['Blocks'];\n}\nconst Trigger: TOC<PrivateTriggerSignature> = template(`\n <button type=\"button\" {{@triggerModifier}} ...attributes>\n {{yield}}\n </button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nconst IsOpen = ()=>cell<boolean>(false);\nconst TriggerElement = ()=>cell<HTMLElement>();\nexport class Menu extends Component<Signature> {\n contentId = guidFor(this);\n static{\n template(`\n {{#let (IsOpen) (TriggerElement) as |isOpen triggerEl|}}\n <Popover\n @flipOptions={{@flipOptions}}\n @middleware={{@middleware}}\n @offsetOptions={{@offsetOptions}}\n @placement={{@placement}}\n @shiftOptions={{@shiftOptions}}\n @strategy={{@strategy}}\n @inline={{@inline}}\n as |p|\n >\n {{#let\n (modifier\n trigger\n triggerElement=triggerEl\n isOpen=isOpen\n contentId=this.contentId\n setHook=p.setHook\n )\n as |triggerModifier|\n }}\n {{yield\n (hash\n trigger=triggerModifier\n Trigger=(component Trigger triggerModifier=triggerModifier)\n Content=(component\n Content\n PopoverContent=p.Content\n isOpen=isOpen\n triggerElement=triggerEl\n contentId=this.contentId\n )\n arrow=p.arrow\n isOpen=isOpen.current\n )\n }}\n {{/let}}\n </Popover>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\nexport default Menu;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL21lbnUuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcbmltcG9ydCB7IGd1aWRGb3IgfSBmcm9tICdAZW1iZXIvb2JqZWN0L2ludGVybmFscyc7XG5cbmltcG9ydCB7IG1vZGlmaWVyIGFzIGVNb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcbmltcG9ydCB7IGNlbGwgfSBmcm9tICdlbWJlci1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgZ2V0VGFic3RlciwgZ2V0VGFic3RlckF0dHJpYnV0ZSwgc2V0VGFic3RlckF0dHJpYnV0ZSwgVHlwZXMgfSBmcm9tICd0YWJzdGVyJztcblxuaW1wb3J0IHsgUG9wb3ZlciwgdHlwZSBTaWduYXR1cmUgYXMgUG9wb3ZlclNpZ25hdHVyZSB9IGZyb20gJy4vcG9wb3Zlci5ndHMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG50eXBlIENlbGw8Vj4gPSBSZXR1cm5UeXBlPHR5cGVvZiBjZWxsPFY-PjtcbnR5cGUgUG9wb3ZlckFyZ3MgPSBQb3BvdmVyU2lnbmF0dXJlWydBcmdzJ107XG50eXBlIFBvcG92ZXJCbG9ja1BhcmFtcyA9IFBvcG92ZXJTaWduYXR1cmVbJ0Jsb2NrcyddWydkZWZhdWx0J11bMF07XG5cbmNvbnN0IFRBQlNURVJfQ09ORklHX0NPTlRFTlQgPSBnZXRUYWJzdGVyQXR0cmlidXRlKFxuICB7XG4gICAgbW92ZXI6IHtcbiAgICAgIGRpcmVjdGlvbjogVHlwZXMuTW92ZXJEaXJlY3Rpb25zLkJvdGgsXG4gICAgICBjeWNsaWM6IHRydWUsXG4gICAgfSxcbiAgICBkZWxvc2VyOiB7fSxcbiAgfSxcbiAgdHJ1ZVxuKTtcblxuY29uc3QgVEFCU1RFUl9DT05GSUdfVFJJR0dFUiA9IHtcbiAgZGVsb3Nlcjoge30sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEFyZ3M6IFBvcG92ZXJBcmdzO1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIGFycm93OiBQb3BvdmVyQmxvY2tQYXJhbXNbJ2Fycm93J107XG4gICAgICAgIHRyaWdnZXI6IFdpdGhCb3VuZEFyZ3M8XG4gICAgICAgICAgdHlwZW9mIHRyaWdnZXIsXG4gICAgICAgICAgJ3RyaWdnZXJFbGVtZW50JyB8ICdjb250ZW50SWQnIHwgJ2lzT3BlbicgfCAnc2V0SG9vaydcbiAgICAgICAgPjtcbiAgICAgICAgVHJpZ2dlcjogV2l0aEJvdW5kQXJnczx0eXBlb2YgVHJpZ2dlciwgJ3RyaWdnZXJNb2RpZmllcic-O1xuICAgICAgICBDb250ZW50OiBXaXRoQm91bmRBcmdzPFxuICAgICAgICAgIHR5cGVvZiBDb250ZW50LFxuICAgICAgICAgICd0cmlnZ2VyRWxlbWVudCcgfCAnY29udGVudElkJyB8ICdpc09wZW4nIHwgJ1BvcG92ZXJDb250ZW50J1xuICAgICAgICA-O1xuICAgICAgICBpc09wZW46IGJvb2xlYW47XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VwYXJhdG9yU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHt9O1xuICBCbG9ja3M6IHsgZGVmYXVsdDogW10gfTtcbn1cblxuY29uc3QgU2VwYXJhdG9yOiBUT0M8U2VwYXJhdG9yU2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiByb2xlPVwic2VwYXJhdG9yXCIgLi4uYXR0cmlidXRlcz5cbiAgICB7e3lpZWxkfX1cbiAgPC9kaXY-XG48L3RlbXBsYXRlPjtcblxuLyoqXG4gKiBXZSBmb2N1cyBpdGVtcyBvbiBgcG9pbnRlck1vdmVgIHRvIGFjaGlldmUgdGhlIGZvbGxvd2luZzpcbiAqXG4gKiAtIE1vdXNlIG92ZXIgYW4gaXRlbSAoaXQgZm9jdXNlcylcbiAqIC0gTGVhdmUgbW91c2Ugd2hlcmUgaXQgaXMgYW5kIHVzZSBrZXlib2FyZCB0byBmb2N1cyBhIGRpZmZlcmVudCBpdGVtXG4gKiAtIFdpZ2dsZSBtb3VzZSB3aXRob3V0IGl0IGxlYXZpbmcgcHJldmlvdXNseSBmb2N1c2VkIGl0ZW1cbiAqIC0gUHJldmlvdXNseSBmb2N1c2VkIGl0ZW0gc2hvdWxkIHJlLWZvY3VzXG4gKlxuICogSWYgd2UgdXNlZCBgbW91c2VPdmVyYC9gbW91c2VFbnRlcmAgaXQgd291bGQgbm90IHJlLWZvY3VzIHdoZW4gdGhlIG1vdXNlXG4gKiB3aWdnbGVzLiBUaGlzIGlzIHRvIG1hdGNoIG5hdGl2ZSBtZW51IGltcGxlbWVudGF0aW9uLlxuICovXG5mdW5jdGlvbiBmb2N1c09uSG92ZXIoZTogUG9pbnRlckV2ZW50KSB7XG4gIGNvbnN0IGl0ZW0gPSBlLmN1cnJlbnRUYXJnZXQ7XG5cbiAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgIGl0ZW0_LmZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIEFyZ3M6IHsgb25TZWxlY3Q_OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkIH07XG4gIEJsb2NrczogeyBkZWZhdWx0OiBbXSB9O1xufVxuXG5jb25zdCBJdGVtOiBUT0M8SXRlbVNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgIHt7ISBAZ2xpbnQtaWdub3JlICF9fVxuICAgIHt7KGlmIEBvblNlbGVjdCAobW9kaWZpZXIgb24gXCJjbGlja1wiIEBvblNlbGVjdCkpfX1cbiAgICB7e29uIFwicG9pbnRlcm1vdmVcIiBmb2N1c09uSG92ZXJ9fVxuICAgIC4uLmF0dHJpYnV0ZXNcbiAgPlxuICAgIHt7eWllbGR9fVxuICA8L2J1dHRvbj5cbjwvdGVtcGxhdGU-O1xuXG5jb25zdCBpbnN0YWxsQ29udGVudCA9IGVNb2RpZmllcjx7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgTmFtZWQ6IHtcbiAgICAgIGlzT3BlbjogQ2VsbDxib29sZWFuPjtcbiAgICAgIHRyaWdnZXJFbGVtZW50OiBDZWxsPEhUTUxFbGVtZW50PjtcbiAgICB9O1xuICB9O1xufT4oKGVsZW1lbnQsIF86IFtdLCB7IGlzT3BlbiwgdHJpZ2dlckVsZW1lbnQgfSkgPT4ge1xuICAvLyBmb2N1cyBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbiB0aGUgY29udGVudFxuICBjb25zdCB0YWJzdGVyID0gZ2V0VGFic3Rlcih3aW5kb3cpO1xuICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IHRhYnN0ZXI_LmZvY3VzYWJsZS5maW5kRmlyc3Qoe1xuICAgIGNvbnRhaW5lcjogZWxlbWVudCxcbiAgfSk7XG5cbiAgZmlyc3RGb2N1c2FibGU_LmZvY3VzKCk7XG5cbiAgLy8gbGlzdGVuIGZvciBcIm91dHNpZGVcIiBjbGlja3NcbiAgZnVuY3Rpb24gb25Eb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4uY3VycmVudCAmJlxuICAgICAgZS50YXJnZXQgJiZcbiAgICAgICFlbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgIXRyaWdnZXJFbGVtZW50LmN1cnJlbnQ_LmNvbnRhaW5zKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVxuICAgICkge1xuICAgICAgaXNPcGVuLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBsaXN0ZW4gZm9yIHRoZSBlc2NhcGUga2V5XG4gIGZ1bmN0aW9uIG9uRG9jdW1lbnRLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoaXNPcGVuLmN1cnJlbnQgJiYgZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBpc09wZW4uY3VycmVudCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25Eb2N1bWVudENsaWNrKTtcbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uRG9jdW1lbnRLZXlkb3duKTtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25Eb2N1bWVudENsaWNrKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25Eb2N1bWVudEtleWRvd24pO1xuICB9O1xufSk7XG5cbmludGVyZmFjZSBQcml2YXRlQ29udGVudFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdHJpZ2dlckVsZW1lbnQ6IENlbGw8SFRNTEVsZW1lbnQ-O1xuICAgIGNvbnRlbnRJZDogc3RyaW5nO1xuICAgIGlzT3BlbjogQ2VsbDxib29sZWFuPjtcbiAgICBQb3BvdmVyQ29udGVudDogUG9wb3ZlckJsb2NrUGFyYW1zWydDb250ZW50J107XG4gIH07XG4gIEJsb2NrczogeyBkZWZhdWx0OiBbeyBJdGVtOiB0eXBlb2YgSXRlbTsgU2VwYXJhdG9yOiB0eXBlb2YgU2VwYXJhdG9yIH1dIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IFByaXZhdGVDb250ZW50U2lnbmF0dXJlWydFbGVtZW50J107XG4gIEFyZ3M6IHt9O1xuICBCbG9ja3M6IFByaXZhdGVDb250ZW50U2lnbmF0dXJlWydCbG9ja3MnXTtcbn1cblxuY29uc3QgQ29udGVudDogVE9DPFByaXZhdGVDb250ZW50U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjaWYgQGlzT3Blbi5jdXJyZW50fX1cbiAgICA8QFBvcG92ZXJDb250ZW50XG4gICAgICBpZD17e0Bjb250ZW50SWR9fVxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgZGF0YS10YWJzdGVyPXt7VEFCU1RFUl9DT05GSUdfQ09OVEVOVH19XG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAge3tpbnN0YWxsQ29udGVudCBpc09wZW49QGlzT3BlbiB0cmlnZ2VyRWxlbWVudD1AdHJpZ2dlckVsZW1lbnR9fVxuICAgICAge3tvbiBcImNsaWNrXCIgQGlzT3Blbi50b2dnbGV9fVxuICAgICAgLi4uYXR0cmlidXRlc1xuICAgID5cbiAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT1JdGVtIFNlcGFyYXRvcj1TZXBhcmF0b3IpfX1cbiAgICA8L0BQb3BvdmVyQ29udGVudD5cbiAge3svaWZ9fVxuPC90ZW1wbGF0ZT47XG5cbmludGVyZmFjZSBQcml2YXRlVHJpZ2dlck1vZGlmaWVyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICBOYW1lZDoge1xuICAgICAgdHJpZ2dlckVsZW1lbnQ6IENlbGw8SFRNTEVsZW1lbnQ-O1xuICAgICAgaXNPcGVuOiBDZWxsPGJvb2xlYW4-O1xuICAgICAgY29udGVudElkOiBzdHJpbmc7XG4gICAgICBzZXRIb29rOiBQb3BvdmVyQmxvY2tQYXJhbXNbJ3NldEhvb2snXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJNb2RpZmllclNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IFByaXZhdGVUcmlnZ2VyTW9kaWZpZXJTaWduYXR1cmVbJ0VsZW1lbnQnXTtcbn1cblxuY29uc3QgdHJpZ2dlciA9IGVNb2RpZmllcjxQcml2YXRlVHJpZ2dlck1vZGlmaWVyU2lnbmF0dXJlPihcbiAgKGVsZW1lbnQsIF86IFtdLCB7IHRyaWdnZXJFbGVtZW50LCBpc09wZW4sIGNvbnRlbnRJZCwgc2V0SG9vayB9KSA9PiB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGFzcG9wdXAnLCAnbWVudScpO1xuXG4gICAgaWYgKGlzT3Blbi5jdXJyZW50KSB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIGNvbnRlbnRJZCk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJyk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgIH1cblxuICAgIHNldFRhYnN0ZXJBdHRyaWJ1dGUoZWxlbWVudCwgVEFCU1RFUl9DT05GSUdfVFJJR0dFUik7XG5cbiAgICBjb25zdCBvblRyaWdnZXJDbGljayA9ICgpID0-IGlzT3Blbi50b2dnbGUoKTtcblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvblRyaWdnZXJDbGljayk7XG5cbiAgICB0cmlnZ2VyRWxlbWVudC5jdXJyZW50ID0gZWxlbWVudDtcbiAgICBzZXRIb29rKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuICgpID0-IHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvblRyaWdnZXJDbGljayk7XG4gICAgfTtcbiAgfVxuKTtcblxuaW50ZXJmYWNlIFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICB0cmlnZ2VyTW9kaWZpZXI6IFdpdGhCb3VuZEFyZ3M8XG4gICAgICB0eXBlb2YgdHJpZ2dlcixcbiAgICAgICd0cmlnZ2VyRWxlbWVudCcgfCAnY29udGVudElkJyB8ICdpc09wZW4nIHwgJ3NldEhvb2snXG4gICAgPjtcbiAgfTtcbiAgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlclNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlWydFbGVtZW50J107XG4gIEFyZ3M6IHt9O1xuICBCbG9ja3M6IFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlWydCbG9ja3MnXTtcbn1cblxuY29uc3QgVHJpZ2dlcjogVE9DPFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIge3tAdHJpZ2dlck1vZGlmaWVyfX0gLi4uYXR0cmlidXRlcz5cbiAgICB7e3lpZWxkfX1cbiAgPC9idXR0b24-XG48L3RlbXBsYXRlPjtcblxuY29uc3QgSXNPcGVuID0gKCkgPT4gY2VsbDxib29sZWFuPihmYWxzZSk7XG5jb25zdCBUcmlnZ2VyRWxlbWVudCA9ICgpID0-IGNlbGw8SFRNTEVsZW1lbnQ-KCk7XG5cbmV4cG9ydCBjbGFzcyBNZW51IGV4dGVuZHMgQ29tcG9uZW50PFNpZ25hdHVyZT4ge1xuICBjb250ZW50SWQgPSBndWlkRm9yKHRoaXMpO1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKElzT3BlbikgKFRyaWdnZXJFbGVtZW50KSBhcyB8aXNPcGVuIHRyaWdnZXJFbHx9fVxuICAgICAgPFBvcG92ZXJcbiAgICAgICAgQGZsaXBPcHRpb25zPXt7QGZsaXBPcHRpb25zfX1cbiAgICAgICAgQG1pZGRsZXdhcmU9e3tAbWlkZGxld2FyZX19XG4gICAgICAgIEBvZmZzZXRPcHRpb25zPXt7QG9mZnNldE9wdGlvbnN9fVxuICAgICAgICBAcGxhY2VtZW50PXt7QHBsYWNlbWVudH19XG4gICAgICAgIEBzaGlmdE9wdGlvbnM9e3tAc2hpZnRPcHRpb25zfX1cbiAgICAgICAgQHN0cmF0ZWd5PXt7QHN0cmF0ZWd5fX1cbiAgICAgICAgQGlubGluZT17e0BpbmxpbmV9fVxuICAgICAgICBhcyB8cHxcbiAgICAgID5cbiAgICAgICAge3sjbGV0XG4gICAgICAgICAgKG1vZGlmaWVyXG4gICAgICAgICAgICB0cmlnZ2VyXG4gICAgICAgICAgICB0cmlnZ2VyRWxlbWVudD10cmlnZ2VyRWxcbiAgICAgICAgICAgIGlzT3Blbj1pc09wZW5cbiAgICAgICAgICAgIGNvbnRlbnRJZD10aGlzLmNvbnRlbnRJZFxuICAgICAgICAgICAgc2V0SG9vaz1wLnNldEhvb2tcbiAgICAgICAgICApXG4gICAgICAgICAgYXMgfHRyaWdnZXJNb2RpZmllcnxcbiAgICAgICAgfX1cbiAgICAgICAgICB7e3lpZWxkXG4gICAgICAgICAgICAoaGFzaFxuICAgICAgICAgICAgICB0cmlnZ2VyPXRyaWdnZXJNb2RpZmllclxuICAgICAgICAgICAgICBUcmlnZ2VyPShjb21wb25lbnQgVHJpZ2dlciB0cmlnZ2VyTW9kaWZpZXI9dHJpZ2dlck1vZGlmaWVyKVxuICAgICAgICAgICAgICBDb250ZW50PShjb21wb25lbnRcbiAgICAgICAgICAgICAgICBDb250ZW50XG4gICAgICAgICAgICAgICAgUG9wb3ZlckNvbnRlbnQ9cC5Db250ZW50XG4gICAgICAgICAgICAgICAgaXNPcGVuPWlzT3BlblxuICAgICAgICAgICAgICAgIHRyaWdnZXJFbGVtZW50PXRyaWdnZXJFbFxuICAgICAgICAgICAgICAgIGNvbnRlbnRJZD10aGlzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGFycm93PXAuYXJyb3dcbiAgICAgICAgICAgICAgaXNPcGVuPWlzT3Blbi5jdXJyZW50XG4gICAgICAgICAgICApXG4gICAgICAgICAgfX1cbiAgICAgICAge3svbGV0fX1cbiAgICAgIDwvUG9wb3Zlcj5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsSUFBSSxRQUFRLGdCQUFnQjtBQUNyQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFDckMsU0FBUyxPQUFPLFFBQVEsMEJBQTBCO0FBRWxELFNBQVMsWUFBWSxTQUFTLFFBQVEsaUJBQWlCO0FBQ3ZELFNBQVMsSUFBSSxRQUFRLGtCQUFrQjtBQUN2QyxTQUFTLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLFFBQVEsVUFBVTtBQUV0RixTQUFTLE9BQU8sRUFBRSxLQUFLLGFBQWEsZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBRTVFLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7S0FFaEQsS0FBSyxLQUFLLGtCQUFrQjtLQUM1QixjQUFjLGlCQUFpQjtLQUMvQixxQkFBcUIsaUJBQWlCLFVBQVUsV0FBVztBQUVoRSxNQUFNLHlCQUF5QixvQkFDN0I7SUFDRSxPQUFPO1FBQ0wsV0FBVyxNQUFNLGVBQWUsQ0FBQyxJQUFJO1FBQ3JDLFFBQVE7SUFDVjtJQUNB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"],"names":["TABSTER_CONFIG_CONTENT","getTabsterAttribute","mover","direction","Types","MoverDirections","Both","cyclic","deloser","TABSTER_CONFIG_TRIGGER","Separator","setComponentTemplate","precompileTemplate","strictMode","templateOnly","focusOnHover","e1","item1","currentTarget","HTMLElement","focus","Item","scope","on","installContent","eModifier","element1","_1","isOpen","isOpen1","triggerElement","triggerElement1","tabster1","getTabster","window","firstFocusable1","focusable","findFirst","container","onDocumentClick1","current","target","contains","onDocumentKeydown1","key","document","addEventListener","removeEventListener","Content","hash","trigger","contentId","contentId1","setHook","setHook1","setAttribute","removeAttribute","setTabsterAttribute","onTriggerClick1","toggle","Trigger","IsOpen","cell","TriggerElement","Menu","Component","guidFor","Popover"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","sources":["../../src/components/menu.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier as eModifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport { getTabster, getTabsterAttribute, setTabsterAttribute, Types } from 'tabster';\nimport { Popover, type Signature as PopoverSignature } from './popover.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\ntype Cell<V> = ReturnType<typeof cell>;\ntype PopoverArgs = PopoverSignature['Args'];\ntype PopoverBlockParams = PopoverSignature['Blocks']['default'][0];\nconst TABSTER_CONFIG_CONTENT = getTabsterAttribute({\n mover: {\n direction: Types.MoverDirections.Both,\n cyclic: true\n },\n deloser: {}\n}, true);\nconst TABSTER_CONFIG_TRIGGER = {\n deloser: {}\n};\nexport interface Signature {\n Args: PopoverArgs;\n Blocks: {\n default: [{\n arrow: PopoverBlockParams['arrow'];\n trigger: WithBoundArgs<typeof trigger, 'triggerElement' | 'contentId' | 'isOpen' | 'setHook'>;\n Trigger: WithBoundArgs<typeof Trigger, 'triggerModifier'>;\n Content: WithBoundArgs<typeof Content, 'triggerElement' | 'contentId' | 'isOpen' | 'PopoverContent'>;\n isOpen: boolean;\n }];\n };\n}\nexport interface SeparatorSignature {\n Element: HTMLDivElement;\n Args: {\n };\n Blocks: {\n default: [];\n };\n}\nconst Separator: TOC<SeparatorSignature> = template(`\n <div role=\"separator\" ...attributes>\n {{yield}}\n </div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n/**\n * We focus items on `pointerMove` to achieve the following:\n *\n * - Mouse over an item (it focuses)\n * - Leave mouse where it is and use keyboard to focus a different item\n * - Wiggle mouse without it leaving previously focused item\n * - Previously focused item should re-focus\n *\n * If we used `mouseOver`/`mouseEnter` it would not re-focus when the mouse\n * wiggles. This is to match native menu implementation.\n */ function focusOnHover(e1: PointerEvent) {\n const item1 = e1.currentTarget;\n if (item1 instanceof HTMLElement) {\n item1?.focus();\n }\n}\nexport interface ItemSignature {\n Element: HTMLButtonElement;\n Args: {\n onSelect?: (event: Event) => void;\n };\n Blocks: {\n default: [];\n };\n}\nconst Item: TOC<ItemSignature> = template(`\n <button\n type=\"button\"\n role=\"menuitem\"\n {{! @glint-ignore !}}\n {{(if @onSelect (modifier on \"click\" @onSelect))}}\n {{on \"pointermove\" focusOnHover}}\n ...attributes\n >\n {{yield}}\n </button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nconst installContent = eModifier<{\n Element: HTMLElement;\n Args: {\n Named: {\n isOpen: Cell<boolean>;\n triggerElement: Cell<HTMLElement>;\n };\n };\n}>((element1, _1: [], { isOpen: isOpen1, triggerElement: triggerElement1 })=>{\n // focus first focusable element on the content\n const tabster1 = getTabster(window);\n const firstFocusable1 = tabster1?.focusable.findFirst({\n container: element1\n });\n firstFocusable1?.focus();\n // listen for \"outside\" clicks\n function onDocumentClick1(e1: MouseEvent) {\n if (isOpen1.current && e1.target && !element1.contains(e1.target as HTMLElement) && !triggerElement1.current?.contains(e1.target as HTMLElement)) {\n isOpen1.current = false;\n }\n }\n // listen for the escape key\n function onDocumentKeydown1(e1: KeyboardEvent) {\n if (isOpen1.current && e1.key === 'Escape') {\n isOpen1.current = false;\n }\n }\n document.addEventListener('click', onDocumentClick1);\n document.addEventListener('keydown', onDocumentKeydown1);\n return ()=>{\n document.removeEventListener('click', onDocumentClick1);\n document.removeEventListener('keydown', onDocumentKeydown1);\n };\n});\ninterface PrivateContentSignature {\n Element: HTMLDivElement;\n Args: {\n triggerElement: Cell<HTMLElement>;\n contentId: string;\n isOpen: Cell<boolean>;\n PopoverContent: PopoverBlockParams['Content'];\n };\n Blocks: {\n default: [{\n Item: typeof Item;\n Separator: typeof Separator;\n }];\n };\n}\nexport interface ContentSignature {\n Element: PrivateContentSignature['Element'];\n Args: {\n };\n Blocks: PrivateContentSignature['Blocks'];\n}\nconst Content: TOC<PrivateContentSignature> = template(`\n {{#if @isOpen.current}}\n <@PopoverContent\n id={{@contentId}}\n role=\"menu\"\n data-tabster={{TABSTER_CONFIG_CONTENT}}\n tabindex=\"0\"\n {{installContent isOpen=@isOpen triggerElement=@triggerElement}}\n {{on \"click\" @isOpen.toggle}}\n ...attributes\n >\n {{yield (hash Item=Item Separator=Separator)}}\n </@PopoverContent>\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\ninterface PrivateTriggerModifierSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n triggerElement: Cell<HTMLElement>;\n isOpen: Cell<boolean>;\n contentId: string;\n setHook: PopoverBlockParams['setHook'];\n };\n };\n}\nexport interface TriggerModifierSignature {\n Element: PrivateTriggerModifierSignature['Element'];\n}\nconst trigger = eModifier<PrivateTriggerModifierSignature>((element1, _1: [], { triggerElement: triggerElement1, isOpen: isOpen1, contentId: contentId1, setHook: setHook1 })=>{\n element1.setAttribute('aria-haspopup', 'menu');\n if (isOpen1.current) {\n element1.setAttribute('aria-controls', contentId1);\n element1.setAttribute('aria-expanded', 'true');\n } else {\n element1.removeAttribute('aria-controls');\n element1.setAttribute('aria-expanded', 'false');\n }\n setTabsterAttribute(element1, TABSTER_CONFIG_TRIGGER);\n const onTriggerClick1 = ()=>isOpen1.toggle();\n element1.addEventListener('click', onTriggerClick1);\n triggerElement1.current = element1;\n setHook1(element1);\n return ()=>{\n element1.removeEventListener('click', onTriggerClick1);\n };\n});\ninterface PrivateTriggerSignature {\n Element: HTMLButtonElement;\n Args: {\n triggerModifier: WithBoundArgs<typeof trigger, 'triggerElement' | 'contentId' | 'isOpen' | 'setHook'>;\n };\n Blocks: {\n default: [];\n };\n}\nexport interface TriggerSignature {\n Element: PrivateTriggerSignature['Element'];\n Args: {\n };\n Blocks: PrivateTriggerSignature['Blocks'];\n}\nconst Trigger: TOC<PrivateTriggerSignature> = template(`\n <button type=\"button\" {{@triggerModifier}} ...attributes>\n {{yield}}\n </button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nconst IsOpen = ()=>cell<boolean>(false);\nconst TriggerElement = ()=>cell<HTMLElement>();\nexport class Menu extends Component<Signature> {\n contentId = guidFor(this);\n static{\n template(`\n {{#let (IsOpen) (TriggerElement) as |isOpen triggerEl|}}\n <Popover\n @flipOptions={{@flipOptions}}\n @middleware={{@middleware}}\n @offsetOptions={{@offsetOptions}}\n @placement={{@placement}}\n @shiftOptions={{@shiftOptions}}\n @strategy={{@strategy}}\n @inline={{@inline}}\n as |p|\n >\n {{#let\n (modifier\n trigger\n triggerElement=triggerEl\n isOpen=isOpen\n contentId=this.contentId\n setHook=p.setHook\n )\n as |triggerModifier|\n }}\n {{yield\n (hash\n trigger=triggerModifier\n Trigger=(component Trigger triggerModifier=triggerModifier)\n Content=(component\n Content\n PopoverContent=p.Content\n isOpen=isOpen\n triggerElement=triggerEl\n contentId=this.contentId\n )\n arrow=p.arrow\n isOpen=isOpen.current\n )\n }}\n {{/let}}\n </Popover>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\nexport default Menu;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL21lbnUuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcbmltcG9ydCB7IGd1aWRGb3IgfSBmcm9tICdAZW1iZXIvb2JqZWN0L2ludGVybmFscyc7XG5cbmltcG9ydCB7IG1vZGlmaWVyIGFzIGVNb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcbmltcG9ydCB7IGNlbGwgfSBmcm9tICdlbWJlci1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgZ2V0VGFic3RlciwgZ2V0VGFic3RlckF0dHJpYnV0ZSwgc2V0VGFic3RlckF0dHJpYnV0ZSwgVHlwZXMgfSBmcm9tICd0YWJzdGVyJztcblxuaW1wb3J0IHsgUG9wb3ZlciwgdHlwZSBTaWduYXR1cmUgYXMgUG9wb3ZlclNpZ25hdHVyZSB9IGZyb20gJy4vcG9wb3Zlci5ndHMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG50eXBlIENlbGw8Vj4gPSBSZXR1cm5UeXBlPHR5cGVvZiBjZWxsPFY-PjtcbnR5cGUgUG9wb3ZlckFyZ3MgPSBQb3BvdmVyU2lnbmF0dXJlWydBcmdzJ107XG50eXBlIFBvcG92ZXJCbG9ja1BhcmFtcyA9IFBvcG92ZXJTaWduYXR1cmVbJ0Jsb2NrcyddWydkZWZhdWx0J11bMF07XG5cbmNvbnN0IFRBQlNURVJfQ09ORklHX0NPTlRFTlQgPSBnZXRUYWJzdGVyQXR0cmlidXRlKFxuICB7XG4gICAgbW92ZXI6IHtcbiAgICAgIGRpcmVjdGlvbjogVHlwZXMuTW92ZXJEaXJlY3Rpb25zLkJvdGgsXG4gICAgICBjeWNsaWM6IHRydWUsXG4gICAgfSxcbiAgICBkZWxvc2VyOiB7fSxcbiAgfSxcbiAgdHJ1ZVxuKTtcblxuY29uc3QgVEFCU1RFUl9DT05GSUdfVFJJR0dFUiA9IHtcbiAgZGVsb3Nlcjoge30sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEFyZ3M6IFBvcG92ZXJBcmdzO1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIGFycm93OiBQb3BvdmVyQmxvY2tQYXJhbXNbJ2Fycm93J107XG4gICAgICAgIHRyaWdnZXI6IFdpdGhCb3VuZEFyZ3M8XG4gICAgICAgICAgdHlwZW9mIHRyaWdnZXIsXG4gICAgICAgICAgJ3RyaWdnZXJFbGVtZW50JyB8ICdjb250ZW50SWQnIHwgJ2lzT3BlbicgfCAnc2V0SG9vaydcbiAgICAgICAgPjtcbiAgICAgICAgVHJpZ2dlcjogV2l0aEJvdW5kQXJnczx0eXBlb2YgVHJpZ2dlciwgJ3RyaWdnZXJNb2RpZmllcic-O1xuICAgICAgICBDb250ZW50OiBXaXRoQm91bmRBcmdzPFxuICAgICAgICAgIHR5cGVvZiBDb250ZW50LFxuICAgICAgICAgICd0cmlnZ2VyRWxlbWVudCcgfCAnY29udGVudElkJyB8ICdpc09wZW4nIHwgJ1BvcG92ZXJDb250ZW50J1xuICAgICAgICA-O1xuICAgICAgICBpc09wZW46IGJvb2xlYW47XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VwYXJhdG9yU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHt9O1xuICBCbG9ja3M6IHsgZGVmYXVsdDogW10gfTtcbn1cblxuY29uc3QgU2VwYXJhdG9yOiBUT0M8U2VwYXJhdG9yU2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiByb2xlPVwic2VwYXJhdG9yXCIgLi4uYXR0cmlidXRlcz5cbiAgICB7e3lpZWxkfX1cbiAgPC9kaXY-XG48L3RlbXBsYXRlPjtcblxuLyoqXG4gKiBXZSBmb2N1cyBpdGVtcyBvbiBgcG9pbnRlck1vdmVgIHRvIGFjaGlldmUgdGhlIGZvbGxvd2luZzpcbiAqXG4gKiAtIE1vdXNlIG92ZXIgYW4gaXRlbSAoaXQgZm9jdXNlcylcbiAqIC0gTGVhdmUgbW91c2Ugd2hlcmUgaXQgaXMgYW5kIHVzZSBrZXlib2FyZCB0byBmb2N1cyBhIGRpZmZlcmVudCBpdGVtXG4gKiAtIFdpZ2dsZSBtb3VzZSB3aXRob3V0IGl0IGxlYXZpbmcgcHJldmlvdXNseSBmb2N1c2VkIGl0ZW1cbiAqIC0gUHJldmlvdXNseSBmb2N1c2VkIGl0ZW0gc2hvdWxkIHJlLWZvY3VzXG4gKlxuICogSWYgd2UgdXNlZCBgbW91c2VPdmVyYC9gbW91c2VFbnRlcmAgaXQgd291bGQgbm90IHJlLWZvY3VzIHdoZW4gdGhlIG1vdXNlXG4gKiB3aWdnbGVzLiBUaGlzIGlzIHRvIG1hdGNoIG5hdGl2ZSBtZW51IGltcGxlbWVudGF0aW9uLlxuICovXG5mdW5jdGlvbiBmb2N1c09uSG92ZXIoZTogUG9pbnRlckV2ZW50KSB7XG4gIGNvbnN0IGl0ZW0gPSBlLmN1cnJlbnRUYXJnZXQ7XG5cbiAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgIGl0ZW0_LmZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIEFyZ3M6IHsgb25TZWxlY3Q_OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkIH07XG4gIEJsb2NrczogeyBkZWZhdWx0OiBbXSB9O1xufVxuXG5jb25zdCBJdGVtOiBUT0M8SXRlbVNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgIHt7ISBAZ2xpbnQtaWdub3JlICF9fVxuICAgIHt7KGlmIEBvblNlbGVjdCAobW9kaWZpZXIgb24gXCJjbGlja1wiIEBvblNlbGVjdCkpfX1cbiAgICB7e29uIFwicG9pbnRlcm1vdmVcIiBmb2N1c09uSG92ZXJ9fVxuICAgIC4uLmF0dHJpYnV0ZXNcbiAgPlxuICAgIHt7eWllbGR9fVxuICA8L2J1dHRvbj5cbjwvdGVtcGxhdGU-O1xuXG5jb25zdCBpbnN0YWxsQ29udGVudCA9IGVNb2RpZmllcjx7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgTmFtZWQ6IHtcbiAgICAgIGlzT3BlbjogQ2VsbDxib29sZWFuPjtcbiAgICAgIHRyaWdnZXJFbGVtZW50OiBDZWxsPEhUTUxFbGVtZW50PjtcbiAgICB9O1xuICB9O1xufT4oKGVsZW1lbnQsIF86IFtdLCB7IGlzT3BlbiwgdHJpZ2dlckVsZW1lbnQgfSkgPT4ge1xuICAvLyBmb2N1cyBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbiB0aGUgY29udGVudFxuICBjb25zdCB0YWJzdGVyID0gZ2V0VGFic3Rlcih3aW5kb3cpO1xuICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IHRhYnN0ZXI_LmZvY3VzYWJsZS5maW5kRmlyc3Qoe1xuICAgIGNvbnRhaW5lcjogZWxlbWVudCxcbiAgfSk7XG5cbiAgZmlyc3RGb2N1c2FibGU_LmZvY3VzKCk7XG5cbiAgLy8gbGlzdGVuIGZvciBcIm91dHNpZGVcIiBjbGlja3NcbiAgZnVuY3Rpb24gb25Eb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4uY3VycmVudCAmJlxuICAgICAgZS50YXJnZXQgJiZcbiAgICAgICFlbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgIXRyaWdnZXJFbGVtZW50LmN1cnJlbnQ_LmNvbnRhaW5zKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVxuICAgICkge1xuICAgICAgaXNPcGVuLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBsaXN0ZW4gZm9yIHRoZSBlc2NhcGUga2V5XG4gIGZ1bmN0aW9uIG9uRG9jdW1lbnRLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoaXNPcGVuLmN1cnJlbnQgJiYgZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBpc09wZW4uY3VycmVudCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25Eb2N1bWVudENsaWNrKTtcbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uRG9jdW1lbnRLZXlkb3duKTtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25Eb2N1bWVudENsaWNrKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25Eb2N1bWVudEtleWRvd24pO1xuICB9O1xufSk7XG5cbmludGVyZmFjZSBQcml2YXRlQ29udGVudFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdHJpZ2dlckVsZW1lbnQ6IENlbGw8SFRNTEVsZW1lbnQ-O1xuICAgIGNvbnRlbnRJZDogc3RyaW5nO1xuICAgIGlzT3BlbjogQ2VsbDxib29sZWFuPjtcbiAgICBQb3BvdmVyQ29udGVudDogUG9wb3ZlckJsb2NrUGFyYW1zWydDb250ZW50J107XG4gIH07XG4gIEJsb2NrczogeyBkZWZhdWx0OiBbeyBJdGVtOiB0eXBlb2YgSXRlbTsgU2VwYXJhdG9yOiB0eXBlb2YgU2VwYXJhdG9yIH1dIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IFByaXZhdGVDb250ZW50U2lnbmF0dXJlWydFbGVtZW50J107XG4gIEFyZ3M6IHt9O1xuICBCbG9ja3M6IFByaXZhdGVDb250ZW50U2lnbmF0dXJlWydCbG9ja3MnXTtcbn1cblxuY29uc3QgQ29udGVudDogVE9DPFByaXZhdGVDb250ZW50U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjaWYgQGlzT3Blbi5jdXJyZW50fX1cbiAgICA8QFBvcG92ZXJDb250ZW50XG4gICAgICBpZD17e0Bjb250ZW50SWR9fVxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgZGF0YS10YWJzdGVyPXt7VEFCU1RFUl9DT05GSUdfQ09OVEVOVH19XG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAge3tpbnN0YWxsQ29udGVudCBpc09wZW49QGlzT3BlbiB0cmlnZ2VyRWxlbWVudD1AdHJpZ2dlckVsZW1lbnR9fVxuICAgICAge3tvbiBcImNsaWNrXCIgQGlzT3Blbi50b2dnbGV9fVxuICAgICAgLi4uYXR0cmlidXRlc1xuICAgID5cbiAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT1JdGVtIFNlcGFyYXRvcj1TZXBhcmF0b3IpfX1cbiAgICA8L0BQb3BvdmVyQ29udGVudD5cbiAge3svaWZ9fVxuPC90ZW1wbGF0ZT47XG5cbmludGVyZmFjZSBQcml2YXRlVHJpZ2dlck1vZGlmaWVyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICBOYW1lZDoge1xuICAgICAgdHJpZ2dlckVsZW1lbnQ6IENlbGw8SFRNTEVsZW1lbnQ-O1xuICAgICAgaXNPcGVuOiBDZWxsPGJvb2xlYW4-O1xuICAgICAgY29udGVudElkOiBzdHJpbmc7XG4gICAgICBzZXRIb29rOiBQb3BvdmVyQmxvY2tQYXJhbXNbJ3NldEhvb2snXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJNb2RpZmllclNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IFByaXZhdGVUcmlnZ2VyTW9kaWZpZXJTaWduYXR1cmVbJ0VsZW1lbnQnXTtcbn1cblxuY29uc3QgdHJpZ2dlciA9IGVNb2RpZmllcjxQcml2YXRlVHJpZ2dlck1vZGlmaWVyU2lnbmF0dXJlPihcbiAgKGVsZW1lbnQsIF86IFtdLCB7IHRyaWdnZXJFbGVtZW50LCBpc09wZW4sIGNvbnRlbnRJZCwgc2V0SG9vayB9KSA9PiB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGFzcG9wdXAnLCAnbWVudScpO1xuXG4gICAgaWYgKGlzT3Blbi5jdXJyZW50KSB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIGNvbnRlbnRJZCk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJyk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgIH1cblxuICAgIHNldFRhYnN0ZXJBdHRyaWJ1dGUoZWxlbWVudCwgVEFCU1RFUl9DT05GSUdfVFJJR0dFUik7XG5cbiAgICBjb25zdCBvblRyaWdnZXJDbGljayA9ICgpID0-IGlzT3Blbi50b2dnbGUoKTtcblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvblRyaWdnZXJDbGljayk7XG5cbiAgICB0cmlnZ2VyRWxlbWVudC5jdXJyZW50ID0gZWxlbWVudDtcbiAgICBzZXRIb29rKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuICgpID0-IHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvblRyaWdnZXJDbGljayk7XG4gICAgfTtcbiAgfVxuKTtcblxuaW50ZXJmYWNlIFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICB0cmlnZ2VyTW9kaWZpZXI6IFdpdGhCb3VuZEFyZ3M8XG4gICAgICB0eXBlb2YgdHJpZ2dlcixcbiAgICAgICd0cmlnZ2VyRWxlbWVudCcgfCAnY29udGVudElkJyB8ICdpc09wZW4nIHwgJ3NldEhvb2snXG4gICAgPjtcbiAgfTtcbiAgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlclNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlWydFbGVtZW50J107XG4gIEFyZ3M6IHt9O1xuICBCbG9ja3M6IFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlWydCbG9ja3MnXTtcbn1cblxuY29uc3QgVHJpZ2dlcjogVE9DPFByaXZhdGVUcmlnZ2VyU2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIge3tAdHJpZ2dlck1vZGlmaWVyfX0gLi4uYXR0cmlidXRlcz5cbiAgICB7e3lpZWxkfX1cbiAgPC9idXR0b24-XG48L3RlbXBsYXRlPjtcblxuY29uc3QgSXNPcGVuID0gKCkgPT4gY2VsbDxib29sZWFuPihmYWxzZSk7XG5jb25zdCBUcmlnZ2VyRWxlbWVudCA9ICgpID0-IGNlbGw8SFRNTEVsZW1lbnQ-KCk7XG5cbmV4cG9ydCBjbGFzcyBNZW51IGV4dGVuZHMgQ29tcG9uZW50PFNpZ25hdHVyZT4ge1xuICBjb250ZW50SWQgPSBndWlkRm9yKHRoaXMpO1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKElzT3BlbikgKFRyaWdnZXJFbGVtZW50KSBhcyB8aXNPcGVuIHRyaWdnZXJFbHx9fVxuICAgICAgPFBvcG92ZXJcbiAgICAgICAgQGZsaXBPcHRpb25zPXt7QGZsaXBPcHRpb25zfX1cbiAgICAgICAgQG1pZGRsZXdhcmU9e3tAbWlkZGxld2FyZX19XG4gICAgICAgIEBvZmZzZXRPcHRpb25zPXt7QG9mZnNldE9wdGlvbnN9fVxuICAgICAgICBAcGxhY2VtZW50PXt7QHBsYWNlbWVudH19XG4gICAgICAgIEBzaGlmdE9wdGlvbnM9e3tAc2hpZnRPcHRpb25zfX1cbiAgICAgICAgQHN0cmF0ZWd5PXt7QHN0cmF0ZWd5fX1cbiAgICAgICAgQGlubGluZT17e0BpbmxpbmV9fVxuICAgICAgICBhcyB8cHxcbiAgICAgID5cbiAgICAgICAge3sjbGV0XG4gICAgICAgICAgKG1vZGlmaWVyXG4gICAgICAgICAgICB0cmlnZ2VyXG4gICAgICAgICAgICB0cmlnZ2VyRWxlbWVudD10cmlnZ2VyRWxcbiAgICAgICAgICAgIGlzT3Blbj1pc09wZW5cbiAgICAgICAgICAgIGNvbnRlbnRJZD10aGlzLmNvbnRlbnRJZFxuICAgICAgICAgICAgc2V0SG9vaz1wLnNldEhvb2tcbiAgICAgICAgICApXG4gICAgICAgICAgYXMgfHRyaWdnZXJNb2RpZmllcnxcbiAgICAgICAgfX1cbiAgICAgICAgICB7e3lpZWxkXG4gICAgICAgICAgICAoaGFzaFxuICAgICAgICAgICAgICB0cmlnZ2VyPXRyaWdnZXJNb2RpZmllclxuICAgICAgICAgICAgICBUcmlnZ2VyPShjb21wb25lbnQgVHJpZ2dlciB0cmlnZ2VyTW9kaWZpZXI9dHJpZ2dlck1vZGlmaWVyKVxuICAgICAgICAgICAgICBDb250ZW50PShjb21wb25lbnRcbiAgICAgICAgICAgICAgICBDb250ZW50XG4gICAgICAgICAgICAgICAgUG9wb3ZlckNvbnRlbnQ9cC5Db250ZW50XG4gICAgICAgICAgICAgICAgaXNPcGVuPWlzT3BlblxuICAgICAgICAgICAgICAgIHRyaWdnZXJFbGVtZW50PXRyaWdnZXJFbFxuICAgICAgICAgICAgICAgIGNvbnRlbnRJZD10aGlzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGFycm93PXAuYXJyb3dcbiAgICAgICAgICAgICAgaXNPcGVuPWlzT3Blbi5jdXJyZW50XG4gICAgICAgICAgICApXG4gICAgICAgICAgfX1cbiAgICAgICAge3svbGV0fX1cbiAgICAgIDwvUG9wb3Zlcj5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsSUFBSSxRQUFRLGdCQUFnQjtBQUNyQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFDckMsU0FBUyxPQUFPLFFBQVEsMEJBQTBCO0FBRWxELFNBQVMsWUFBWSxTQUFTLFFBQVEsaUJBQWlCO0FBQ3ZELFNBQVMsSUFBSSxRQUFRLGtCQUFrQjtBQUN2QyxTQUFTLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLFFBQVEsVUFBVTtBQUV0RixTQUFTLE9BQU8sRUFBRSxLQUFLLGFBQWEsZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBRTVFLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7S0FFaEQsS0FBSyxLQUFLLGtCQUFrQjtLQUM1QixjQUFjLGlCQUFpQjtLQUMvQixxQkFBcUIsaUJBQWlCLFVBQVUsV0FBVztBQUVoRSxNQUFNLHlCQUF5QixvQkFDN0I7SUFDRSxPQUFPO1FBQ0wsV0FBVyxNQUFNLGVBQWUsQ0FBQyxJQUFJO1FBQ3JDLFFBQVE7SUFDVjtJQUNB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"],"names":["TABSTER_CONFIG_CONTENT","getTabsterAttribute","mover","direction","Types","MoverDirections","Both","cyclic","deloser","TABSTER_CONFIG_TRIGGER","Separator","setComponentTemplate","precompileTemplate","strictMode","templateOnly","focusOnHover","e1","item1","currentTarget","HTMLElement","focus","Item","scope","on","installContent","eModifier","element1","_1","isOpen","isOpen1","triggerElement","triggerElement1","tabster1","getTabster","window","firstFocusable1","focusable","findFirst","container","onDocumentClick1","current","target","contains","onDocumentKeydown1","key","document","addEventListener","removeEventListener","Content","hash","trigger","contentId","contentId1","setHook","setHook1","setAttribute","removeAttribute","setTabsterAttribute","onTriggerClick1","toggle","Trigger","IsOpen","cell","TriggerElement","Menu","Component","guidFor","Popover"],"mappings":"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"}
|
|
@@ -14,11 +14,11 @@ const Submit = setComponentTemplate(precompileTemplate("\n <button type=\"submi
|
|
|
14
14
|
strictMode: true
|
|
15
15
|
}), templateOnly());
|
|
16
16
|
const Reset = setComponentTemplate(precompileTemplate("\n <button type=\"button\" {{on \"click\" reset}} ...attributes>{{yield}}</button>\n", {
|
|
17
|
+
strictMode: true,
|
|
17
18
|
scope: () => ({
|
|
18
19
|
on,
|
|
19
20
|
reset
|
|
20
|
-
})
|
|
21
|
-
strictMode: true
|
|
21
|
+
})
|
|
22
22
|
}), templateOnly());
|
|
23
23
|
|
|
24
24
|
export { Reset, Submit };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.js","sources":["../../../src/components/one-time-password/buttons.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { on } from '@ember/modifier';\nimport type { TOC } from '@ember/component/template-only';\nconst reset = (event1: Event)=>{\n assert('[BUG]: reset called without an event.target', event1.target instanceof HTMLElement);\n let form1 = event1.target.closest('form');\n assert('Form is missing. Cannot use <Reset> without being contained within a <form>', form1 instanceof HTMLFormElement);\n form1.reset();\n};\nexport const Submit: TOC<{\n Element: HTMLButtonElement;\n Blocks: {\n default: [];\n };\n}> = template(`\n <button type=\"submit\" ...attributes>Submit</button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport const Reset: TOC<{\n Element: HTMLButtonElement;\n Blocks: {\n default: [];\n };\n}> = template(`\n <button type=\"button\" {{on \"click\" reset}} ...attributes>{{yield}}</button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL29uZS10aW1lLXBhc3N3b3JkL2J1dHRvbnMuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuY29uc3QgcmVzZXQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gIGFzc2VydCgnW0JVR106IHJlc2V0IGNhbGxlZCB3aXRob3V0IGFuIGV2ZW50LnRhcmdldCcsIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTtcblxuICBsZXQgZm9ybSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCdmb3JtJyk7XG5cbiAgYXNzZXJ0KFxuICAgICdGb3JtIGlzIG1pc3NpbmcuIENhbm5vdCB1c2UgPFJlc2V0PiB3aXRob3V0IGJlaW5nIGNvbnRhaW5lZCB3aXRoaW4gYSA8Zm9ybT4nLFxuICAgIGZvcm0gaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnRcbiAgKTtcblxuICBmb3JtLnJlc2V0KCk7XG59O1xuXG5leHBvcnQgY29uc3QgU3VibWl0OiBUT0M8e1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH07XG59PiA9IDx0ZW1wbGF0ZT5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgLi4uYXR0cmlidXRlcz5TdWJtaXQ8L2J1dHRvbj5cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgY29uc3QgUmVzZXQ6IFRPQzx7XG4gIEVsZW1lbnQ6IEhUTUxCdXR0b25FbGVtZW50O1xuICBCbG9ja3M6IHsgZGVmYXVsdDogW10gfTtcbn0-ID0gPHRlbXBsYXRlPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB7e29uIFwiY2xpY2tcIiByZXNldH19IC4uLmF0dHJpYnV0ZXM-e3t5aWVsZH19PC9idXR0b24-XG48L3RlbXBsYXRlPjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsY0FBYyxHQUFHLFFBQVEsaUNBQWlDO0FBRTFELE1BQU0sUUFBUSxDQUFDLFFBQU87SUFDcEIsT0FBTywrQ0FBK0MsT0FBTSxNQUFNLFlBQVk7SUFFOUUsSUFBSSxRQUFPLE9BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUVoQyxPQUNFLCtFQUNBLGlCQUFnQjtJQUdsQixNQUFLLEtBQUs7QUFDWjtBQUVBLE9BQU8sTUFBTSxRQUFRO0lBQ25CLFNBQVM7SUFDVDtRQUFVOztLQUNQLFNBQVUsQ0FBQTs7QUFFZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLE9BQU8sTUFBTSxPQUFPO0lBQ2xCLFNBQVM7SUFDVDtRQUFVOztLQUNQLFNBQVUsQ0FBQTs7QUFFZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRSJ9"],"names":["reset","event1","assert","target","HTMLElement","form1","closest","HTMLFormElement","Submit","precompileTemplate","strictMode","templateOnly","Reset","scope","on"],"mappings":";;;;;;AAKA,MAAMA,KAAA,GAASC,MAAO,IAAA;AACpBC,EAAAA,MAAA,CAAO,6CAA+CD,EAAAA,MAAA,CAAME,MAAM,YAAYC,WAAA,CAAA,CAAA;AAE9E,EAAA,IAAIC,KAAA,GAAOJ,MAAA,CAAME,MAAM,CAACG,OAAO,CAAC,MAAA,CAAA,CAAA;AAEhCJ,EAAAA,MAAA,CACE,6EAAA,EACAG,KAAA,YAAgBE,eAAA,CAAA,CAAA;AAGlBF,EAAAA,KAAA,CAAKL,KAAK,EAAA,CAAA;AACZ,CAAA,CAAA;AAEaQ,MAAAA,SAGRC,oBAAAA,CAAAA,kBAAA,CAEL,6DAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,EAAA;AAEGC,MAAAA,QAGRH,oBAAAA,CAAAA,kBAAA,CAEL,uFAAA,EAAA;
|
|
1
|
+
{"version":3,"file":"buttons.js","sources":["../../../src/components/one-time-password/buttons.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { on } from '@ember/modifier';\nimport type { TOC } from '@ember/component/template-only';\nconst reset = (event1: Event)=>{\n assert('[BUG]: reset called without an event.target', event1.target instanceof HTMLElement);\n let form1 = event1.target.closest('form');\n assert('Form is missing. Cannot use <Reset> without being contained within a <form>', form1 instanceof HTMLFormElement);\n form1.reset();\n};\nexport const Submit: TOC<{\n Element: HTMLButtonElement;\n Blocks: {\n default: [];\n };\n}> = template(`\n <button type=\"submit\" ...attributes>Submit</button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport const Reset: TOC<{\n Element: HTMLButtonElement;\n Blocks: {\n default: [];\n };\n}> = template(`\n <button type=\"button\" {{on \"click\" reset}} ...attributes>{{yield}}</button>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL29uZS10aW1lLXBhc3N3b3JkL2J1dHRvbnMuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuY29uc3QgcmVzZXQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gIGFzc2VydCgnW0JVR106IHJlc2V0IGNhbGxlZCB3aXRob3V0IGFuIGV2ZW50LnRhcmdldCcsIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTtcblxuICBsZXQgZm9ybSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCdmb3JtJyk7XG5cbiAgYXNzZXJ0KFxuICAgICdGb3JtIGlzIG1pc3NpbmcuIENhbm5vdCB1c2UgPFJlc2V0PiB3aXRob3V0IGJlaW5nIGNvbnRhaW5lZCB3aXRoaW4gYSA8Zm9ybT4nLFxuICAgIGZvcm0gaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnRcbiAgKTtcblxuICBmb3JtLnJlc2V0KCk7XG59O1xuXG5leHBvcnQgY29uc3QgU3VibWl0OiBUT0M8e1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH07XG59PiA9IDx0ZW1wbGF0ZT5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgLi4uYXR0cmlidXRlcz5TdWJtaXQ8L2J1dHRvbj5cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgY29uc3QgUmVzZXQ6IFRPQzx7XG4gIEVsZW1lbnQ6IEhUTUxCdXR0b25FbGVtZW50O1xuICBCbG9ja3M6IHsgZGVmYXVsdDogW10gfTtcbn0-ID0gPHRlbXBsYXRlPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB7e29uIFwiY2xpY2tcIiByZXNldH19IC4uLmF0dHJpYnV0ZXM-e3t5aWVsZH19PC9idXR0b24-XG48L3RlbXBsYXRlPjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsY0FBYyxHQUFHLFFBQVEsaUNBQWlDO0FBRTFELE1BQU0sUUFBUSxDQUFDLFFBQU87SUFDcEIsT0FBTywrQ0FBK0MsT0FBTSxNQUFNLFlBQVk7SUFFOUUsSUFBSSxRQUFPLE9BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUVoQyxPQUNFLCtFQUNBLGlCQUFnQjtJQUdsQixNQUFLLEtBQUs7QUFDWjtBQUVBLE9BQU8sTUFBTSxRQUFRO0lBQ25CLFNBQVM7SUFDVDtRQUFVOztLQUNQLFNBQVUsQ0FBQTs7QUFFZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLE9BQU8sTUFBTSxPQUFPO0lBQ2xCLFNBQVM7SUFDVDtRQUFVOztLQUNQLFNBQVUsQ0FBQTs7QUFFZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRSJ9"],"names":["reset","event1","assert","target","HTMLElement","form1","closest","HTMLFormElement","Submit","precompileTemplate","strictMode","templateOnly","Reset","scope","on"],"mappings":";;;;;;AAKA,MAAMA,KAAA,GAASC,MAAO,IAAA;AACpBC,EAAAA,MAAA,CAAO,6CAA+CD,EAAAA,MAAA,CAAME,MAAM,YAAYC,WAAA,CAAA,CAAA;AAE9E,EAAA,IAAIC,KAAA,GAAOJ,MAAA,CAAME,MAAM,CAACG,OAAO,CAAC,MAAA,CAAA,CAAA;AAEhCJ,EAAAA,MAAA,CACE,6EAAA,EACAG,KAAA,YAAgBE,eAAA,CAAA,CAAA;AAGlBF,EAAAA,KAAA,CAAKL,KAAK,EAAA,CAAA;AACZ,CAAA,CAAA;AAEaQ,MAAAA,SAGRC,oBAAAA,CAAAA,kBAAA,CAEL,6DAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,EAAA;AAEGC,MAAAA,QAGRH,oBAAAA,CAAAA,kBAAA,CAEL,uFAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAG,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;AAAAd,IAAAA,KAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAW,YAAA,EAAA;;;;"}
|
|
@@ -17,6 +17,7 @@ function labelFor(inputIndex1, labelFn1) {
|
|
|
17
17
|
}
|
|
18
18
|
let waiter = buildWaiter('ember-primitives:OTPInput:handleChange');
|
|
19
19
|
const Fields = setComponentTemplate(precompileTemplate("\n {{#each @fields as |_field i|}}\n <label>\n <span class=\"ember-primitives__sr-only\">{{labelFor i @labelFn}}</span>\n <input name=\"code{{i}}\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" ...attributes {{on \"click\" selectAll}} {{on \"paste\" handlePaste}} {{on \"input\" autoAdvance}} {{on \"input\" @handleChange}} {{on \"keydown\" handleNavigation}} />\n </label>\n {{/each}}\n", {
|
|
20
|
+
strictMode: true,
|
|
20
21
|
scope: () => ({
|
|
21
22
|
labelFor,
|
|
22
23
|
on,
|
|
@@ -24,8 +25,7 @@ const Fields = setComponentTemplate(precompileTemplate("\n {{#each @fields as |
|
|
|
24
25
|
handlePaste,
|
|
25
26
|
autoAdvance,
|
|
26
27
|
handleNavigation
|
|
27
|
-
})
|
|
28
|
-
strictMode: true
|
|
28
|
+
})
|
|
29
29
|
}), templateOnly());
|
|
30
30
|
class OTPInput extends Component {
|
|
31
31
|
/**
|
|
@@ -77,10 +77,10 @@ class OTPInput extends Component {
|
|
|
77
77
|
}
|
|
78
78
|
static {
|
|
79
79
|
setComponentTemplate(precompileTemplate("\n <fieldset ...attributes>\n {{#let (component Fields fields=this.fields handleChange=this.handleChange labelFn=@labelFn) as |CurriedFields|}}\n {{#if (has-block)}}\n {{yield CurriedFields}}\n {{else}}\n <CurriedFields />\n {{/if}}\n {{/let}}\n\n <style>\n .ember-primitives__sr-only { position: absolute; width: 1px; height: 1px; padding: 0;\n margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width:\n 0; }\n </style>\n </fieldset>\n ", {
|
|
80
|
+
strictMode: true,
|
|
80
81
|
scope: () => ({
|
|
81
82
|
Fields
|
|
82
|
-
})
|
|
83
|
-
strictMode: true
|
|
83
|
+
})
|
|
84
84
|
}), this);
|
|
85
85
|
}
|
|
86
86
|
}
|