ember-primitives 0.16.0 → 0.18.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 +34 -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/-private/typed-elements.js.map +1 -1
- 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/external-link.js.map +1 -1
- package/dist/components/form.js +49 -6
- package/dist/components/form.js.map +1 -1
- package/dist/components/layout/sticky-footer/index.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-DmpElnSZ.js.map +1 -0
- package/package.json +18 -17
- package/dist/item-kSSfp2r5.js.map +0 -1
|
@@ -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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../../src/components/one-time-password/input.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { warn } from '@ember/debug';\nimport { isDestroyed, isDestroying } from '@ember/destroyable';\nimport { on } from '@ember/modifier';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { autoAdvance, getCollectiveValue, handleNavigation, handlePaste, selectAll } from './utils.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nconst DEFAULT_LENGTH = 6;\nfunction labelFor(inputIndex1: number, labelFn1: undefined | ((index: number) => string)) {\n if (labelFn1) {\n return labelFn1(inputIndex1);\n }\n return `Please enter OTP character ${inputIndex1 + 1}`;\n}\nlet waiter = buildWaiter('ember-primitives:OTPInput:handleChange');\nconst Fields: TOC<{\n /**\n * Any attributes passed to this component will be applied to each input.\n */ Element: HTMLInputElement;\n Args: {\n fields: unknown[];\n labelFn: (index: number) => string;\n handleChange: (event: Event) => void;\n };\n}> = template(`\n {{#each @fields as |_field i|}}\n <label>\n <span class=\"ember-primitives__sr-only\">{{labelFor i @labelFn}}</span>\n <input\n name=\"code{{i}}\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n ...attributes\n {{on \"click\" selectAll}}\n {{on \"paste\" handlePaste}}\n {{on \"input\" autoAdvance}}\n {{on \"input\" @handleChange}}\n {{on \"keydown\" handleNavigation}}\n />\n </label>\n {{/each}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport class OTPInput extends Component<{\n /**\n * The collection of individual OTP inputs are contained by a fieldset.\n * Applying the `disabled` attribute to this fieldset will disable\n * all of the inputs, if that's desired.\n */ Element: HTMLFieldSetElement;\n Args: {\n /**\n * How many characters the one-time-password field should be\n * Defaults to 6\n */ length?: number;\n /**\n * To Customize the label of the input fields, you may pass a function.\n * By default, this is `Please enter OTP character ${index + 1}`.\n */ labelFn?: (index: number) => string;\n /**\n * If passed, this function will be called when the <Input> changes.\n * All fields are considered one input.\n */ onChange?: (data: {\n /**\n * The text from the collective <Input>\n *\n * `code` _may_ be shorter than `length`\n * if the user has not finished typing / pasting their code\n */ code: string;\n /**\n * will be `true` if `code`'s length matches the passed `@length` or the default of 6\n */ complete: boolean;\n }, /**\n * The last input event received\n */ event: Event) => void;\n };\n Blocks: {\n /**\n * Optionally, you may control how the Fields are rendered, with proceeding text,\n * additional attributes added, etc.\n *\n * This is how you can add custom validation to each input field.\n */ default?: [fields: WithBoundArgs<typeof Fields, 'fields' | 'handleChange' | 'labelFn'>];\n };\n}> {\n /**\n * This is debounced, because we bind to each input,\n * but only want to emit one change event if someone pastes\n * multiple characters\n */ handleChange = (event1: Event)=>{\n if (!this.args.onChange) return;\n if (!this.#token) {\n this.#token = waiter.beginAsync();\n }\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n // We use requestAnimationFrame to be friendly to rendering.\n // We don't know if onChange is going to want to cause paints\n // (it's also how we debounce, under the assumption that \"paste\" behavior\n // would be fast enough to be quicker than individual frames\n // (see logic in autoAdvance)\n // )\n this.#frame = requestAnimationFrame(()=>{\n waiter.endAsync(this.#token);\n if (isDestroyed(this) || isDestroying(this)) return;\n if (!this.args.onChange) return;\n let value1 = getCollectiveValue(event1.target, this.length);\n if (value1 === undefined) {\n warn(`Value could not be determined for the OTP field. was it removed from the DOM?`, {\n id: 'ember-primitives.OTPInput.missing-value'\n });\n return;\n }\n this.args.onChange({\n code: value1,\n complete: value1.length === this.length\n }, event1);\n });\n };\n #token: unknown | undefined;\n #frame: number | undefined;\n get length() {\n return this.args.length ?? DEFAULT_LENGTH;\n }\n get fields() {\n // We only need to iterate a number of times,\n // so we don't care about the actual value or\n // referential integrity here\n return new Array(this.length);\n }\n static{\n template(`\n <fieldset ...attributes>\n {{#let\n (component Fields fields=this.fields handleChange=this.handleChange labelFn=@labelFn)\n as |CurriedFields|\n }}\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 `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL29uZS10aW1lLXBhc3N3b3JkL2lucHV0Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB3YXJuIH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGlzRGVzdHJveWVkLCBpc0Rlc3Ryb3lpbmcgfSBmcm9tICdAZW1iZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuaW1wb3J0IHsgYnVpbGRXYWl0ZXIgfSBmcm9tICdAZW1iZXIvdGVzdC13YWl0ZXJzJztcblxuaW1wb3J0IHtcbiAgYXV0b0FkdmFuY2UsXG4gIGdldENvbGxlY3RpdmVWYWx1ZSxcbiAgaGFuZGxlTmF2aWdhdGlvbixcbiAgaGFuZGxlUGFzdGUsXG4gIHNlbGVjdEFsbCxcbn0gZnJvbSAnLi91dGlscy50cyc7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncyB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmNvbnN0IERFRkFVTFRfTEVOR1RIID0gNjtcblxuZnVuY3Rpb24gbGFiZWxGb3IoaW5wdXRJbmRleDogbnVtYmVyLCBsYWJlbEZuOiB1bmRlZmluZWQgfCAoKGluZGV4OiBudW1iZXIpID0-IHN0cmluZykpIHtcbiAgaWYgKGxhYmVsRm4pIHtcbiAgICByZXR1cm4gbGFiZWxGbihpbnB1dEluZGV4KTtcbiAgfVxuXG4gIHJldHVybiBgUGxlYXNlIGVudGVyIE9UUCBjaGFyYWN0ZXIgJHtpbnB1dEluZGV4ICsgMX1gO1xufVxuXG5sZXQgd2FpdGVyID0gYnVpbGRXYWl0ZXIoJ2VtYmVyLXByaW1pdGl2ZXM6T1RQSW5wdXQ6aGFuZGxlQ2hhbmdlJyk7XG5cbmNvbnN0IEZpZWxkczogVE9DPHtcbiAgLyoqXG4gICAqIEFueSBhdHRyaWJ1dGVzIHBhc3NlZCB0byB0aGlzIGNvbXBvbmVudCB3aWxsIGJlIGFwcGxpZWQgdG8gZWFjaCBpbnB1dC5cbiAgICovXG4gIEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICBmaWVsZHM6IHVua25vd25bXTtcbiAgICBsYWJlbEZuOiAoaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nO1xuICAgIGhhbmRsZUNoYW5nZTogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgfTtcbn0-ID0gPHRlbXBsYXRlPlxuICB7eyNlYWNoIEBmaWVsZHMgYXMgfF9maWVsZCBpfH19XG4gICAgPGxhYmVsPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlbWJlci1wcmltaXRpdmVzX19zci1vbmx5XCI-e3tsYWJlbEZvciBpIEBsYWJlbEZufX08L3NwYW4-XG4gICAgICA8aW5wdXRcbiAgICAgICAgbmFtZT1cImNvZGV7e2l9fVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAge3tvbiBcImNsaWNrXCIgc2VsZWN0QWxsfX1cbiAgICAgICAge3tvbiBcInBhc3RlXCIgaGFuZGxlUGFzdGV9fVxuICAgICAgICB7e29uIFwiaW5wdXRcIiBhdXRvQWR2YW5jZX19XG4gICAgICAgIHt7b24gXCJpbnB1dFwiIEBoYW5kbGVDaGFuZ2V9fVxuICAgICAgICB7e29uIFwia2V5ZG93blwiIGhhbmRsZU5hdmlnYXRpb259fVxuICAgICAgLz5cbiAgICA8L2xhYmVsPlxuICB7ey9lYWNofX1cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgY2xhc3MgT1RQSW5wdXQgZXh0ZW5kcyBDb21wb25lbnQ8e1xuICAvKipcbiAgICogVGhlIGNvbGxlY3Rpb24gb2YgaW5kaXZpZHVhbCBPVFAgaW5wdXRzIGFyZSBjb250YWluZWQgYnkgYSBmaWVsZHNldC5cbiAgICogQXBwbHlpbmcgdGhlIGBkaXNhYmxlZGAgYXR0cmlidXRlIHRvIHRoaXMgZmllbGRzZXQgd2lsbCBkaXNhYmxlXG4gICAqIGFsbCBvZiB0aGUgaW5wdXRzLCBpZiB0aGF0J3MgZGVzaXJlZC5cbiAgICovXG4gIEVsZW1lbnQ6IEhUTUxGaWVsZFNldEVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBIb3cgbWFueSBjaGFyYWN0ZXJzIHRoZSBvbmUtdGltZS1wYXNzd29yZCBmaWVsZCBzaG91bGQgYmVcbiAgICAgKiBEZWZhdWx0cyB0byA2XG4gICAgICovXG4gICAgbGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVG8gQ3VzdG9taXplIHRoZSBsYWJlbCBvZiB0aGUgaW5wdXQgZmllbGRzLCB5b3UgbWF5IHBhc3MgYSBmdW5jdGlvbi5cbiAgICAgKiBCeSBkZWZhdWx0LCB0aGlzIGlzIGBQbGVhc2UgZW50ZXIgT1RQIGNoYXJhY3RlciAke2luZGV4ICsgMX1gLlxuICAgICAqL1xuICAgIGxhYmVsRm4_OiAoaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgcGFzc2VkLCB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIDxJbnB1dD4gY2hhbmdlcy5cbiAgICAgKiBBbGwgZmllbGRzIGFyZSBjb25zaWRlcmVkIG9uZSBpbnB1dC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86IChcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSB0ZXh0IGZyb20gdGhlIGNvbGxlY3RpdmUgPElucHV0PlxuICAgICAgICAgKlxuICAgICAgICAgKiBgY29kZWAgX21heV8gYmUgc2hvcnRlciB0aGFuIGBsZW5ndGhgXG4gICAgICAgICAqIGlmIHRoZSB1c2VyIGhhcyBub3QgZmluaXNoZWQgdHlwaW5nIC8gcGFzdGluZyB0aGVpciBjb2RlXG4gICAgICAgICAqL1xuICAgICAgICBjb2RlOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiB3aWxsIGJlIGB0cnVlYCBpZiBgY29kZWAncyBsZW5ndGggbWF0Y2hlcyB0aGUgcGFzc2VkIGBAbGVuZ3RoYCBvciB0aGUgZGVmYXVsdCBvZiA2XG4gICAgICAgICAqL1xuICAgICAgICBjb21wbGV0ZTogYm9vbGVhbjtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBsYXN0IGlucHV0IGV2ZW50IHJlY2VpdmVkXG4gICAgICAgKi9cbiAgICAgIGV2ZW50OiBFdmVudFxuICAgICkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSwgeW91IG1heSBjb250cm9sIGhvdyB0aGUgRmllbGRzIGFyZSByZW5kZXJlZCwgd2l0aCBwcm9jZWVkaW5nIHRleHQsXG4gICAgICogYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFkZGVkLCBldGMuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGhvdyB5b3UgY2FuIGFkZCBjdXN0b20gdmFsaWRhdGlvbiB0byBlYWNoIGlucHV0IGZpZWxkLlxuICAgICAqL1xuICAgIGRlZmF1bHQ_OiBbZmllbGRzOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBGaWVsZHMsICdmaWVsZHMnIHwgJ2hhbmRsZUNoYW5nZScgfCAnbGFiZWxGbic-XTtcbiAgfTtcbn0-IHtcbiAgLyoqXG4gICAqIFRoaXMgaXMgZGVib3VuY2VkLCBiZWNhdXNlIHdlIGJpbmQgdG8gZWFjaCBpbnB1dCxcbiAgICogYnV0IG9ubHkgd2FudCB0byBlbWl0IG9uZSBjaGFuZ2UgZXZlbnQgaWYgc29tZW9uZSBwYXN0ZXNcbiAgICogbXVsdGlwbGUgY2hhcmFjdGVyc1xuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy5hcmdzLm9uQ2hhbmdlKSByZXR1cm47XG5cbiAgICBpZiAoIXRoaXMuI3Rva2VuKSB7XG4gICAgICB0aGlzLiN0b2tlbiA9IHdhaXRlci5iZWdpbkFzeW5jKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI2ZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLiNmcmFtZSk7XG4gICAgfVxuXG4gICAgLy8gV2UgIHVzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdG8gYmUgZnJpZW5kbHkgdG8gcmVuZGVyaW5nLlxuICAgIC8vIFdlIGRvbid0IGtub3cgaWYgb25DaGFuZ2UgaXMgZ29pbmcgdG8gd2FudCB0byBjYXVzZSBwYWludHNcbiAgICAvLyAoaXQncyBhbHNvIGhvdyB3ZSBkZWJvdW5jZSwgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCBcInBhc3RlXCIgYmVoYXZpb3JcbiAgICAvLyAgd291bGQgYmUgZmFzdCBlbm91Z2ggdG8gYmUgcXVpY2tlciB0aGFuIGluZGl2aWR1YWwgZnJhbWVzXG4gICAgLy8gICAoc2VlIGxvZ2ljIGluIGF1dG9BZHZhbmNlKVxuICAgIC8vICApXG4gICAgdGhpcy4jZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2FpdGVyLmVuZEFzeW5jKHRoaXMuI3Rva2VuKTtcblxuICAgICAgaWYgKGlzRGVzdHJveWVkKHRoaXMpIHx8IGlzRGVzdHJveWluZyh0aGlzKSkgcmV0dXJuO1xuICAgICAgaWYgKCF0aGlzLmFyZ3Mub25DaGFuZ2UpIHJldHVybjtcblxuICAgICAgbGV0IHZhbHVlID0gZ2V0Q29sbGVjdGl2ZVZhbHVlKGV2ZW50LnRhcmdldCwgdGhpcy5sZW5ndGgpO1xuXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB3YXJuKGBWYWx1ZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgdGhlIE9UUCBmaWVsZC4gd2FzIGl0IHJlbW92ZWQgZnJvbSB0aGUgRE9NP2AsIHtcbiAgICAgICAgICBpZDogJ2VtYmVyLXByaW1pdGl2ZXMuT1RQSW5wdXQubWlzc2luZy12YWx1ZScsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hcmdzLm9uQ2hhbmdlKHsgY29kZTogdmFsdWUsIGNvbXBsZXRlOiB2YWx1ZS5sZW5ndGggPT09IHRoaXMubGVuZ3RoIH0sIGV2ZW50KTtcbiAgICB9KTtcbiAgfTtcblxuICAjdG9rZW46IHVua25vd24gfCB1bmRlZmluZWQ7XG4gICNmcmFtZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5sZW5ndGggPz8gREVGQVVMVF9MRU5HVEg7XG4gIH1cblxuICBnZXQgZmllbGRzKCkge1xuICAgIC8vIFdlIG9ubHkgbmVlZCB0byBpdGVyYXRlIGEgbnVtYmVyIG9mIHRpbWVzLFxuICAgIC8vIHNvIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCB2YWx1ZSBvclxuICAgIC8vIHJlZmVyZW50aWFsIGludGVncml0eSBoZXJlXG4gICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLmxlbmd0aCk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPGZpZWxkc2V0IC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7eyNsZXRcbiAgICAgICAgKGNvbXBvbmVudCBGaWVsZHMgZmllbGRzPXRoaXMuZmllbGRzIGhhbmRsZUNoYW5nZT10aGlzLmhhbmRsZUNoYW5nZSBsYWJlbEZuPUBsYWJlbEZuKVxuICAgICAgICBhcyB8Q3VycmllZEZpZWxkc3xcbiAgICAgIH19XG4gICAgICAgIHt7I2lmIChoYXMtYmxvY2spfX1cbiAgICAgICAgICB7e3lpZWxkIEN1cnJpZWRGaWVsZHN9fVxuICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgIDxDdXJyaWVkRmllbGRzIC8-XG4gICAgICAgIHt7L2lmfX1cbiAgICAgIHt7L2xldH19XG5cbiAgICAgIDxzdHlsZT5cbiAgICAgICAgLmVtYmVyLXByaW1pdGl2ZXNfX3NyLW9ubHkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IC0xcHg7IG92ZXJmbG93OiBoaWRkZW47IGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGJvcmRlci13aWR0aDpcbiAgICAgICAgMDsgfVxuICAgICAgPC9zdHlsZT5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsSUFBSSxRQUFRLGVBQWU7QUFDcEMsU0FBUyxXQUFXLEVBQUUsWUFBWSxRQUFRLHFCQUFxQjtBQUMvRCxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFDckMsU0FBUyxXQUFXLFFBQVEsc0JBQXNCO0FBRWxELFNBQ0UsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFNBQVMsUUFDSixhQUFhO0FBRXBCLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsTUFBTSxpQkFBaUI7QUFFdkIsU0FBUyxTQUFTLGFBQVksTUFBTSxFQUFFLFVBQVMsU0FBUyxLQUFLLE9BQU8sTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNwRixJQUFJLFVBQVM7UUFDWCxPQUFPLFNBQVE7SUFDakI7SUFFQSxPQUFPLENBQUMsMkJBQTJCLEVBQUUsY0FBYSxFQUFFLENBQUM7QUFDdkQ7QUFFQSxJQUFJLFNBQVMsWUFBWTtBQUV6QixNQUFNLFFBQVE7SUFDWjs7R0FFQyxHQUNELFNBQVM7SUFDVDtRQUNFLFFBQVEsT0FBTztRQUNmLFVBQVUsT0FBTyxNQUFNLEtBQUssTUFBTTtRQUNsQyxlQUFl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"],"names":["DEFAULT_LENGTH","labelFor","inputIndex1","labelFn1","waiter","buildWaiter","Fields","precompileTemplate","scope","on","selectAll","handlePaste","autoAdvance","handleNavigation","strictMode","templateOnly","OTPInput","Component","handleChange","event1","args","onChange","beginAsync","cancelAnimationFrame","requestAnimationFrame","endAsync","isDestroyed","isDestroying","value1","getCollectiveValue","target","length","undefined","warn","id","code","complete","fields","Array","setComponentTemplate"],"mappings":";;;;;;;;;;AAiBA,MAAMA,cAAA,GAAiB,CAAA,CAAA;AAEvB,SAASC,QAAAA,CAASC,WAAkB,EAAEC,QAAgD,EAAA;AACpF,EAAA,IAAIA,QAAA,EAAS;IACX,OAAOA,QAAA,CAAQD,WAAA,CAAA,CAAA;AACjB,GAAA;AAEA,EAAA,OAAQ,CAA6BA,2BAAAA,EAAAA,WAAA,GAAa,CAAE,CAAC,CAAA,CAAA;AACvD,CAAA;AAEA,IAAIE,MAAA,GAASC,WAAA,CAAY,wCAAA,CAAA,CAAA;AAEzB,MAAMC,SAUDC,oBAAAA,CAAAA,kBAAA,CAkBL,kaAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAP,QAAA;IAAAQ,EAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,WAAA;AAAAC,IAAAA,gBAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEH,MAAMC,QAAA,SAAiBC,SAAA;AAsD5B;;;;;AAKAC,EAAAA,YAAA,GAAgBC,MAAO,IAAA;AACrB,IAAA,IAAI,CAAC,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE,OAAA;AAEzB,IAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,MAAA,IAAI,CAAC,MAAM,GAAGjB,MAAA,CAAOkB,UAAU,EAAA,CAAA;AACjC,KAAA;AAEA,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfC,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClCpB,MAAAA,MAAA,CAAOqB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA;AAE3B,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAC7C,MAAA,IAAI,CAAC,IAAI,CAACP,IAAI,CAACC,QAAQ,EAAE,OAAA;MAEzB,IAAIO,MAAA,GAAQC,kBAAA,CAAmBV,MAAA,CAAMW,MAAM,EAAE,IAAI,CAACC,MAAM,CAAA,CAAA;MAExD,IAAIH,MAAA,KAAUI,SAAA,EAAW;QACvBC,IAAA,CAAM,+EAA8E,EAAE;AACpFC,UAAAA,EAAA,EAAI,yCAAA;AACN,SAAA,CAAA,CAAA;AAEA,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAI,CAACd,IAAI,CAACC,QAAQ,CAAC;AAAEc,QAAAA,IAAA,EAAMP,MAAA;AAAOQ,QAAAA,QAAA,EAAUR,MAAA,CAAMG,MAAM,KAAK,IAAI,CAACA,MAAAA;AAAO,OAAA,EAAGZ,MAAA,CAAA,CAAA;AAC9E,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEA,EAAA,MAAM,CAAA;AACN,EAAA,MAAM,CAAA;AAEN,EAAA,IAAIY,SAAS;AACX,IAAA,OAAO,IAAI,CAACX,IAAI,CAACW,MAAM,IAAI/B,cAAA,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAIqC,SAAS;AACX;AACA;AACA;AACA,IAAA,OAAO,IAAIC,KAAA,CAAM,IAAI,CAACP,MAAM,CAAA,CAAA;AAC9B,GAAA;AAEA,EAAA;IAAAQ,oBAAA,CAAAhC,kBAAA,CAmBA,gjBAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAF,QAAAA,MAAAA;AAAA,OAAA,CAAA;MAAAQ,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../../src/components/one-time-password/input.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { warn } from '@ember/debug';\nimport { isDestroyed, isDestroying } from '@ember/destroyable';\nimport { on } from '@ember/modifier';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { autoAdvance, getCollectiveValue, handleNavigation, handlePaste, selectAll } from './utils.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nconst DEFAULT_LENGTH = 6;\nfunction labelFor(inputIndex1: number, labelFn1: undefined | ((index: number) => string)) {\n if (labelFn1) {\n return labelFn1(inputIndex1);\n }\n return `Please enter OTP character ${inputIndex1 + 1}`;\n}\nlet waiter = buildWaiter('ember-primitives:OTPInput:handleChange');\nconst Fields: TOC<{\n /**\n * Any attributes passed to this component will be applied to each input.\n */ Element: HTMLInputElement;\n Args: {\n fields: unknown[];\n labelFn: (index: number) => string;\n handleChange: (event: Event) => void;\n };\n}> = template(`\n {{#each @fields as |_field i|}}\n <label>\n <span class=\"ember-primitives__sr-only\">{{labelFor i @labelFn}}</span>\n <input\n name=\"code{{i}}\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n ...attributes\n {{on \"click\" selectAll}}\n {{on \"paste\" handlePaste}}\n {{on \"input\" autoAdvance}}\n {{on \"input\" @handleChange}}\n {{on \"keydown\" handleNavigation}}\n />\n </label>\n {{/each}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport class OTPInput extends Component<{\n /**\n * The collection of individual OTP inputs are contained by a fieldset.\n * Applying the `disabled` attribute to this fieldset will disable\n * all of the inputs, if that's desired.\n */ Element: HTMLFieldSetElement;\n Args: {\n /**\n * How many characters the one-time-password field should be\n * Defaults to 6\n */ length?: number;\n /**\n * To Customize the label of the input fields, you may pass a function.\n * By default, this is `Please enter OTP character ${index + 1}`.\n */ labelFn?: (index: number) => string;\n /**\n * If passed, this function will be called when the <Input> changes.\n * All fields are considered one input.\n */ onChange?: (data: {\n /**\n * The text from the collective `<Input>`\n *\n * `code` _may_ be shorter than `length`\n * if the user has not finished typing / pasting their code\n */ code: string;\n /**\n * will be `true` if `code`'s length matches the passed `@length` or the default of 6\n */ complete: boolean;\n }, /**\n * The last input event received\n */ event: Event) => void;\n };\n Blocks: {\n /**\n * Optionally, you may control how the Fields are rendered, with proceeding text,\n * additional attributes added, etc.\n *\n * This is how you can add custom validation to each input field.\n */ default?: [fields: WithBoundArgs<typeof Fields, 'fields' | 'handleChange' | 'labelFn'>];\n };\n}> {\n /**\n * This is debounced, because we bind to each input,\n * but only want to emit one change event if someone pastes\n * multiple characters\n */ handleChange = (event1: Event)=>{\n if (!this.args.onChange) return;\n if (!this.#token) {\n this.#token = waiter.beginAsync();\n }\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n // We use requestAnimationFrame to be friendly to rendering.\n // We don't know if onChange is going to want to cause paints\n // (it's also how we debounce, under the assumption that \"paste\" behavior\n // would be fast enough to be quicker than individual frames\n // (see logic in autoAdvance)\n // )\n this.#frame = requestAnimationFrame(()=>{\n waiter.endAsync(this.#token);\n if (isDestroyed(this) || isDestroying(this)) return;\n if (!this.args.onChange) return;\n let value1 = getCollectiveValue(event1.target, this.length);\n if (value1 === undefined) {\n warn(`Value could not be determined for the OTP field. was it removed from the DOM?`, {\n id: 'ember-primitives.OTPInput.missing-value'\n });\n return;\n }\n this.args.onChange({\n code: value1,\n complete: value1.length === this.length\n }, event1);\n });\n };\n #token: unknown | undefined;\n #frame: number | undefined;\n get length() {\n return this.args.length ?? DEFAULT_LENGTH;\n }\n get fields() {\n // We only need to iterate a number of times,\n // so we don't care about the actual value or\n // referential integrity here\n return new Array(this.length);\n }\n static{\n template(`\n <fieldset ...attributes>\n {{#let\n (component Fields fields=this.fields handleChange=this.handleChange labelFn=@labelFn)\n as |CurriedFields|\n }}\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 `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9vbmUtdGltZS1wYXNzd29yZC9pbnB1dC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgd2FybiB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBpc0Rlc3Ryb3llZCwgaXNEZXN0cm95aW5nIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcbmltcG9ydCB7IGJ1aWxkV2FpdGVyIH0gZnJvbSAnQGVtYmVyL3Rlc3Qtd2FpdGVycyc7XG5cbmltcG9ydCB7XG4gIGF1dG9BZHZhbmNlLFxuICBnZXRDb2xsZWN0aXZlVmFsdWUsXG4gIGhhbmRsZU5hdmlnYXRpb24sXG4gIGhhbmRsZVBhc3RlLFxuICBzZWxlY3RBbGwsXG59IGZyb20gJy4vdXRpbHMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5jb25zdCBERUZBVUxUX0xFTkdUSCA9IDY7XG5cbmZ1bmN0aW9uIGxhYmVsRm9yKGlucHV0SW5kZXg6IG51bWJlciwgbGFiZWxGbjogdW5kZWZpbmVkIHwgKChpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcpKSB7XG4gIGlmIChsYWJlbEZuKSB7XG4gICAgcmV0dXJuIGxhYmVsRm4oaW5wdXRJbmRleCk7XG4gIH1cblxuICByZXR1cm4gYFBsZWFzZSBlbnRlciBPVFAgY2hhcmFjdGVyICR7aW5wdXRJbmRleCArIDF9YDtcbn1cblxubGV0IHdhaXRlciA9IGJ1aWxkV2FpdGVyKCdlbWJlci1wcmltaXRpdmVzOk9UUElucHV0OmhhbmRsZUNoYW5nZScpO1xuXG5jb25zdCBGaWVsZHM6IFRPQzx7XG4gIC8qKlxuICAgKiBBbnkgYXR0cmlidXRlcyBwYXNzZWQgdG8gdGhpcyBjb21wb25lbnQgd2lsbCBiZSBhcHBsaWVkIHRvIGVhY2ggaW5wdXQuXG4gICAqL1xuICBFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgZmllbGRzOiB1bmtub3duW107XG4gICAgbGFiZWxGbjogKGluZGV4OiBudW1iZXIpID0-IHN0cmluZztcbiAgICBoYW5kbGVDaGFuZ2U6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG4gIH07XG59PiA9IDx0ZW1wbGF0ZT5cbiAge3sjZWFjaCBAZmllbGRzIGFzIHxfZmllbGQgaXx9fVxuICAgIDxsYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZW1iZXItcHJpbWl0aXZlc19fc3Itb25seVwiPnt7bGFiZWxGb3IgaSBAbGFiZWxGbn19PC9zcGFuPlxuICAgICAgPGlucHV0XG4gICAgICAgIG5hbWU9XCJjb2Rle3tpfX1cIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgIHt7b24gXCJjbGlja1wiIHNlbGVjdEFsbH19XG4gICAgICAgIHt7b24gXCJwYXN0ZVwiIGhhbmRsZVBhc3RlfX1cbiAgICAgICAge3tvbiBcImlucHV0XCIgYXV0b0FkdmFuY2V9fVxuICAgICAgICB7e29uIFwiaW5wdXRcIiBAaGFuZGxlQ2hhbmdlfX1cbiAgICAgICAge3tvbiBcImtleWRvd25cIiBoYW5kbGVOYXZpZ2F0aW9ufX1cbiAgICAgIC8-XG4gICAgPC9sYWJlbD5cbiAge3svZWFjaH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGNsYXNzIE9UUElucHV0IGV4dGVuZHMgQ29tcG9uZW50PHtcbiAgLyoqXG4gICAqIFRoZSBjb2xsZWN0aW9uIG9mIGluZGl2aWR1YWwgT1RQIGlucHV0cyBhcmUgY29udGFpbmVkIGJ5IGEgZmllbGRzZXQuXG4gICAqIEFwcGx5aW5nIHRoZSBgZGlzYWJsZWRgIGF0dHJpYnV0ZSB0byB0aGlzIGZpZWxkc2V0IHdpbGwgZGlzYWJsZVxuICAgKiBhbGwgb2YgdGhlIGlucHV0cywgaWYgdGhhdCdzIGRlc2lyZWQuXG4gICAqL1xuICBFbGVtZW50OiBIVE1MRmllbGRTZXRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogSG93IG1hbnkgY2hhcmFjdGVycyB0aGUgb25lLXRpbWUtcGFzc3dvcmQgZmllbGQgc2hvdWxkIGJlXG4gICAgICogRGVmYXVsdHMgdG8gNlxuICAgICAqL1xuICAgIGxlbmd0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRvIEN1c3RvbWl6ZSB0aGUgbGFiZWwgb2YgdGhlIGlucHV0IGZpZWxkcywgeW91IG1heSBwYXNzIGEgZnVuY3Rpb24uXG4gICAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyBgUGxlYXNlIGVudGVyIE9UUCBjaGFyYWN0ZXIgJHtpbmRleCArIDF9YC5cbiAgICAgKi9cbiAgICBsYWJlbEZuPzogKGluZGV4OiBudW1iZXIpID0-IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElmIHBhc3NlZCwgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSA8SW5wdXQ-IGNoYW5nZXMuXG4gICAgICogQWxsIGZpZWxkcyBhcmUgY29uc2lkZXJlZCBvbmUgaW5wdXQuXG4gICAgICovXG4gICAgb25DaGFuZ2U_OiAoXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdGV4dCBmcm9tIHRoZSBjb2xsZWN0aXZlIGA8SW5wdXQ-YFxuICAgICAgICAgKlxuICAgICAgICAgKiBgY29kZWAgX21heV8gYmUgc2hvcnRlciB0aGFuIGBsZW5ndGhgXG4gICAgICAgICAqIGlmIHRoZSB1c2VyIGhhcyBub3QgZmluaXNoZWQgdHlwaW5nIC8gcGFzdGluZyB0aGVpciBjb2RlXG4gICAgICAgICAqL1xuICAgICAgICBjb2RlOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiB3aWxsIGJlIGB0cnVlYCBpZiBgY29kZWAncyBsZW5ndGggbWF0Y2hlcyB0aGUgcGFzc2VkIGBAbGVuZ3RoYCBvciB0aGUgZGVmYXVsdCBvZiA2XG4gICAgICAgICAqL1xuICAgICAgICBjb21wbGV0ZTogYm9vbGVhbjtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBsYXN0IGlucHV0IGV2ZW50IHJlY2VpdmVkXG4gICAgICAgKi9cbiAgICAgIGV2ZW50OiBFdmVudFxuICAgICkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSwgeW91IG1heSBjb250cm9sIGhvdyB0aGUgRmllbGRzIGFyZSByZW5kZXJlZCwgd2l0aCBwcm9jZWVkaW5nIHRleHQsXG4gICAgICogYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFkZGVkLCBldGMuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGhvdyB5b3UgY2FuIGFkZCBjdXN0b20gdmFsaWRhdGlvbiB0byBlYWNoIGlucHV0IGZpZWxkLlxuICAgICAqL1xuICAgIGRlZmF1bHQ_OiBbZmllbGRzOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBGaWVsZHMsICdmaWVsZHMnIHwgJ2hhbmRsZUNoYW5nZScgfCAnbGFiZWxGbic-XTtcbiAgfTtcbn0-IHtcbiAgLyoqXG4gICAqIFRoaXMgaXMgZGVib3VuY2VkLCBiZWNhdXNlIHdlIGJpbmQgdG8gZWFjaCBpbnB1dCxcbiAgICogYnV0IG9ubHkgd2FudCB0byBlbWl0IG9uZSBjaGFuZ2UgZXZlbnQgaWYgc29tZW9uZSBwYXN0ZXNcbiAgICogbXVsdGlwbGUgY2hhcmFjdGVyc1xuICAgKi9cbiAgaGFuZGxlQ2hhbmdlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy5hcmdzLm9uQ2hhbmdlKSByZXR1cm47XG5cbiAgICBpZiAoIXRoaXMuI3Rva2VuKSB7XG4gICAgICB0aGlzLiN0b2tlbiA9IHdhaXRlci5iZWdpbkFzeW5jKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI2ZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLiNmcmFtZSk7XG4gICAgfVxuXG4gICAgLy8gV2UgIHVzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdG8gYmUgZnJpZW5kbHkgdG8gcmVuZGVyaW5nLlxuICAgIC8vIFdlIGRvbid0IGtub3cgaWYgb25DaGFuZ2UgaXMgZ29pbmcgdG8gd2FudCB0byBjYXVzZSBwYWludHNcbiAgICAvLyAoaXQncyBhbHNvIGhvdyB3ZSBkZWJvdW5jZSwgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCBcInBhc3RlXCIgYmVoYXZpb3JcbiAgICAvLyAgd291bGQgYmUgZmFzdCBlbm91Z2ggdG8gYmUgcXVpY2tlciB0aGFuIGluZGl2aWR1YWwgZnJhbWVzXG4gICAgLy8gICAoc2VlIGxvZ2ljIGluIGF1dG9BZHZhbmNlKVxuICAgIC8vICApXG4gICAgdGhpcy4jZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2FpdGVyLmVuZEFzeW5jKHRoaXMuI3Rva2VuKTtcblxuICAgICAgaWYgKGlzRGVzdHJveWVkKHRoaXMpIHx8IGlzRGVzdHJveWluZyh0aGlzKSkgcmV0dXJuO1xuICAgICAgaWYgKCF0aGlzLmFyZ3Mub25DaGFuZ2UpIHJldHVybjtcblxuICAgICAgbGV0IHZhbHVlID0gZ2V0Q29sbGVjdGl2ZVZhbHVlKGV2ZW50LnRhcmdldCwgdGhpcy5sZW5ndGgpO1xuXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB3YXJuKGBWYWx1ZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgdGhlIE9UUCBmaWVsZC4gd2FzIGl0IHJlbW92ZWQgZnJvbSB0aGUgRE9NP2AsIHtcbiAgICAgICAgICBpZDogJ2VtYmVyLXByaW1pdGl2ZXMuT1RQSW5wdXQubWlzc2luZy12YWx1ZScsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hcmdzLm9uQ2hhbmdlKHsgY29kZTogdmFsdWUsIGNvbXBsZXRlOiB2YWx1ZS5sZW5ndGggPT09IHRoaXMubGVuZ3RoIH0sIGV2ZW50KTtcbiAgICB9KTtcbiAgfTtcblxuICAjdG9rZW46IHVua25vd24gfCB1bmRlZmluZWQ7XG4gICNmcmFtZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5sZW5ndGggPz8gREVGQVVMVF9MRU5HVEg7XG4gIH1cblxuICBnZXQgZmllbGRzKCkge1xuICAgIC8vIFdlIG9ubHkgbmVlZCB0byBpdGVyYXRlIGEgbnVtYmVyIG9mIHRpbWVzLFxuICAgIC8vIHNvIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCB2YWx1ZSBvclxuICAgIC8vIHJlZmVyZW50aWFsIGludGVncml0eSBoZXJlXG4gICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLmxlbmd0aCk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPGZpZWxkc2V0IC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7eyNsZXRcbiAgICAgICAgKGNvbXBvbmVudCBGaWVsZHMgZmllbGRzPXRoaXMuZmllbGRzIGhhbmRsZUNoYW5nZT10aGlzLmhhbmRsZUNoYW5nZSBsYWJlbEZuPUBsYWJlbEZuKVxuICAgICAgICBhcyB8Q3VycmllZEZpZWxkc3xcbiAgICAgIH19XG4gICAgICAgIHt7I2lmIChoYXMtYmxvY2spfX1cbiAgICAgICAgICB7e3lpZWxkIEN1cnJpZWRGaWVsZHN9fVxuICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgIDxDdXJyaWVkRmllbGRzIC8-XG4gICAgICAgIHt7L2lmfX1cbiAgICAgIHt7L2xldH19XG5cbiAgICAgIDxzdHlsZT5cbiAgICAgICAgLmVtYmVyLXByaW1pdGl2ZXNfX3NyLW9ubHkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IC0xcHg7IG92ZXJmbG93OiBoaWRkZW47IGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGJvcmRlci13aWR0aDpcbiAgICAgICAgMDsgfVxuICAgICAgPC9zdHlsZT5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsSUFBSSxRQUFRLGVBQWU7QUFDcEMsU0FBUyxXQUFXLEVBQUUsWUFBWSxRQUFRLHFCQUFxQjtBQUMvRCxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFDckMsU0FBUyxXQUFXLFFBQVEsc0JBQXNCO0FBRWxELFNBQ0UsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFNBQVMsUUFDSixhQUFhO0FBRXBCLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsTUFBTSxpQkFBaUI7QUFFdkIsU0FBUyxTQUFTLGFBQVksTUFBTSxFQUFFLFVBQVMsU0FBUyxLQUFLLE9BQU8sTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNwRixJQUFJLFVBQVM7UUFDWCxPQUFPLFNBQVE7SUFDakI7SUFFQSxPQUFPLENBQUMsMkJBQTJCLEVBQUUsY0FBYSxFQUFFLENBQUM7QUFDdkQ7QUFFQSxJQUFJLFNBQVMsWUFBWTtBQUV6QixNQUFNLFFBQVE7SUFDWjs7R0FFQyxHQUNELFNBQVM7SUFDVDtRQUNFLFFBQVEsT0FBTztRQUNmLFVBQVUsT0FBTyxNQUFNLEtBQUssTUFBTTtRQUNsQyxlQUFl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"],"names":["DEFAULT_LENGTH","labelFor","inputIndex1","labelFn1","waiter","buildWaiter","Fields","precompileTemplate","strictMode","scope","on","selectAll","handlePaste","autoAdvance","handleNavigation","templateOnly","OTPInput","Component","handleChange","event1","args","onChange","beginAsync","cancelAnimationFrame","requestAnimationFrame","endAsync","isDestroyed","isDestroying","value1","getCollectiveValue","target","length","undefined","warn","id","code","complete","fields","Array","setComponentTemplate"],"mappings":";;;;;;;;;;AAiBA,MAAMA,cAAA,GAAiB,CAAA,CAAA;AAEvB,SAASC,QAAAA,CAASC,WAAkB,EAAEC,QAAgD,EAAA;AACpF,EAAA,IAAIA,QAAA,EAAS;IACX,OAAOA,QAAA,CAAQD,WAAA,CAAA,CAAA;AACjB,GAAA;AAEA,EAAA,OAAQ,CAA6BA,2BAAAA,EAAAA,WAAA,GAAa,CAAE,CAAC,CAAA,CAAA;AACvD,CAAA;AAEA,IAAIE,MAAA,GAASC,WAAA,CAAY,wCAAA,CAAA,CAAA;AAEzB,MAAMC,SAUDC,oBAAAA,CAAAA,kBAAA,CAkBL,kaAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAR,QAAA;IAAAS,EAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,WAAA;AAAAC,IAAAA,gBAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEH,MAAMC,QAAA,SAAiBC,SAAA;AAsD5B;;;;;AAKAC,EAAAA,YAAA,GAAgBC,MAAO,IAAA;AACrB,IAAA,IAAI,CAAC,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE,OAAA;AAEzB,IAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,MAAA,IAAI,CAAC,MAAM,GAAGjB,MAAA,CAAOkB,UAAU,EAAA,CAAA;AACjC,KAAA;AAEA,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfC,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClCpB,MAAAA,MAAA,CAAOqB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA;AAE3B,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAC7C,MAAA,IAAI,CAAC,IAAI,CAACP,IAAI,CAACC,QAAQ,EAAE,OAAA;MAEzB,IAAIO,MAAA,GAAQC,kBAAA,CAAmBV,MAAA,CAAMW,MAAM,EAAE,IAAI,CAACC,MAAM,CAAA,CAAA;MAExD,IAAIH,MAAA,KAAUI,SAAA,EAAW;QACvBC,IAAA,CAAM,+EAA8E,EAAE;AACpFC,UAAAA,EAAA,EAAI,yCAAA;AACN,SAAA,CAAA,CAAA;AAEA,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAI,CAACd,IAAI,CAACC,QAAQ,CAAC;AAAEc,QAAAA,IAAA,EAAMP,MAAA;AAAOQ,QAAAA,QAAA,EAAUR,MAAA,CAAMG,MAAM,KAAK,IAAI,CAACA,MAAAA;AAAO,OAAA,EAAGZ,MAAA,CAAA,CAAA;AAC9E,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEA,EAAA,MAAM,CAAA;AACN,EAAA,MAAM,CAAA;AAEN,EAAA,IAAIY,SAAS;AACX,IAAA,OAAO,IAAI,CAACX,IAAI,CAACW,MAAM,IAAI/B,cAAA,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAIqC,SAAS;AACX;AACA;AACA;AACA,IAAA,OAAO,IAAIC,KAAA,CAAM,IAAI,CAACP,MAAM,CAAA,CAAA;AAC9B,GAAA;AAEA,EAAA;IAAAQ,oBAAA,CAAAhC,kBAAA,CAmBA,gjBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAH,QAAAA,MAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
@@ -39,6 +39,7 @@ function handleChange(autoSubmit1, data1, event1) {
|
|
|
39
39
|
form1.requestSubmit();
|
|
40
40
|
}
|
|
41
41
|
const OTP = setComponentTemplate(precompileTemplate("\n <form {{on \"submit\" (fn handleFormSubmit @onSubmit)}} ...attributes>\n {{yield (hash Input=(component OTPInput length=@length onChange=(if @autoSubmit (fn handleChange @autoSubmit))) Submit=Submit Reset=Reset)}}\n </form>\n", {
|
|
42
|
+
strictMode: true,
|
|
42
43
|
scope: () => ({
|
|
43
44
|
on,
|
|
44
45
|
fn,
|
|
@@ -48,8 +49,7 @@ const OTP = setComponentTemplate(precompileTemplate("\n <form {{on \"submit\" (
|
|
|
48
49
|
handleChange,
|
|
49
50
|
Submit,
|
|
50
51
|
Reset
|
|
51
|
-
})
|
|
52
|
-
strictMode: true
|
|
52
|
+
})
|
|
53
53
|
}), templateOnly());
|
|
54
54
|
|
|
55
55
|
export { OTP };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otp.js","sources":["../../../src/components/one-time-password/otp.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { fn, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { Reset, Submit } from './buttons.gts';\nimport { OTPInput } from './input.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nlet waiter = buildWaiter('ember-primitives:OTP:handleAutoSubmitAttempt');\nconst handleFormSubmit = (submit1: (data: {\n code: string;\n}) => void, event1: SubmitEvent)=>{\n event1.preventDefault();\n assert('[BUG]: handleFormSubmit was not attached to a form. Please open an issue.', event1.currentTarget instanceof HTMLFormElement);\n let formData1 = new FormData(event1.currentTarget);\n let code1 = '';\n for (let [key1, value1] of formData1.entries()){\n if (key1.startsWith('code')) {\n code1 += value1;\n }\n }\n submit1({\n code: code1\n });\n};\nfunction handleChange(autoSubmit1: boolean | undefined, data1: {\n code: string;\n complete: boolean;\n}, event1: Event) {\n if (!autoSubmit1) return;\n if (!data1.complete) return;\n assert('[BUG]: event target is not a known element type', event1.target instanceof HTMLElement || event1.target instanceof SVGElement);\n const form1 = event1.target.closest('form');\n assert('[BUG]: Cannot handle event when <OTP> Inputs are not rendered within their <form>', form1);\n const token1 = waiter.beginAsync();\n let finished1 = ()=>{\n waiter.endAsync(token1);\n form1.removeEventListener('submit', finished1);\n };\n form1.addEventListener('submit', finished1);\n // NOTE: when calling .submit() the submit event handlers are not run\n form1.requestSubmit();\n}\nexport const OTP: TOC<{\n /**\n * The overall OTP Input is in its own form.\n * Modern UI/UX Patterns usually have this sort of field\n * as its own page, thus within its own form.\n *\n * By default, only the 'submit' event is bound, and is\n * what calls the `@onSubmit` argument.\n */ Element: HTMLFormElement;\n Args: {\n /**\n * How many characters the one-time-password field should be\n * Defaults to 6\n */ length?: number;\n /**\n * The on submit callback will give you the entered\n * one-time-password code.\n *\n * It will be called when the user manually clicks the 'submit'\n * button or when the full code is pasted and meats the validation\n * criteria.\n */ onSubmit: (data: {\n code: string;\n }) => void;\n /**\n * Whether or not to auto-submit after the code has been pasted\n * in to the collective \"field\". Default is true\n */ autoSubmit?: boolean;\n };\n Blocks: {\n default: [{\n /**\n * The collective input field that the OTP code will be typed/pasted in to\n */ Input: WithBoundArgs<typeof OTPInput, 'length' | 'onChange'>;\n /**\n * Button with `type=\"submit\"` to submit the form\n */ Submit: typeof Submit;\n /**\n * Pre-wired button to reset the form\n */ Reset: typeof Reset;\n }];\n };\n}> = template(`\n <form {{on \"submit\" (fn handleFormSubmit @onSubmit)}} ...attributes>\n {{yield\n (hash\n Input=(component\n OTPInput length=@length onChange=(if @autoSubmit (fn handleChange @autoSubmit))\n )\n Submit=Submit\n Reset=Reset\n )\n }}\n </form>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL29uZS10aW1lLXBhc3N3b3JkL290cC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGZuLCBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5pbXBvcnQgeyBidWlsZFdhaXRlciB9IGZyb20gJ0BlbWJlci90ZXN0LXdhaXRlcnMnO1xuXG5pbXBvcnQgeyBSZXNldCwgU3VibWl0IH0gZnJvbSAnLi9idXR0b25zLmd0cyc7XG5pbXBvcnQgeyBPVFBJbnB1dCB9IGZyb20gJy4vaW5wdXQuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBXaXRoQm91bmRBcmdzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxubGV0IHdhaXRlciA9IGJ1aWxkV2FpdGVyKCdlbWJlci1wcmltaXRpdmVzOk9UUDpoYW5kbGVBdXRvU3VibWl0QXR0ZW1wdCcpO1xuXG5jb25zdCBoYW5kbGVGb3JtU3VibWl0ID0gKHN1Ym1pdDogKGRhdGE6IHsgY29kZTogc3RyaW5nIH0pID0-IHZvaWQsIGV2ZW50OiBTdWJtaXRFdmVudCkgPT4ge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gIGFzc2VydChcbiAgICAnW0JVR106IGhhbmRsZUZvcm1TdWJtaXQgd2FzIG5vdCBhdHRhY2hlZCB0byBhIGZvcm0uIFBsZWFzZSBvcGVuIGFuIGlzc3VlLicsXG4gICAgZXZlbnQuY3VycmVudFRhcmdldCBpbnN0YW5jZW9mIEhUTUxGb3JtRWxlbWVudFxuICApO1xuXG4gIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YShldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICBsZXQgY29kZSA9ICcnO1xuXG4gIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBmb3JtRGF0YS5lbnRyaWVzKCkpIHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2NvZGUnKSkge1xuICAgICAgY29kZSArPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzdWJtaXQoe1xuICAgIGNvZGUsXG4gIH0pO1xufTtcblxuZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKFxuICBhdXRvU3VibWl0OiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBkYXRhOiB7IGNvZGU6IHN0cmluZzsgY29tcGxldGU6IGJvb2xlYW4gfSxcbiAgZXZlbnQ6IEV2ZW50XG4pIHtcbiAgaWYgKCFhdXRvU3VibWl0KSByZXR1cm47XG4gIGlmICghZGF0YS5jb21wbGV0ZSkgcmV0dXJuO1xuXG4gIGFzc2VydChcbiAgICAnW0JVR106IGV2ZW50IHRhcmdldCBpcyBub3QgYSBrbm93biBlbGVtZW50IHR5cGUnLFxuICAgIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50IHx8IGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnRcbiAgKTtcblxuICBjb25zdCBmb3JtID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJ2Zvcm0nKTtcblxuICBhc3NlcnQoJ1tCVUddOiBDYW5ub3QgaGFuZGxlIGV2ZW50IHdoZW4gPE9UUD4gSW5wdXRzIGFyZSBub3QgcmVuZGVyZWQgd2l0aGluIHRoZWlyIDxmb3JtPicsIGZvcm0pO1xuXG4gIGNvbnN0IHRva2VuID0gd2FpdGVyLmJlZ2luQXN5bmMoKTtcbiAgbGV0IGZpbmlzaGVkID0gKCkgPT4ge1xuICAgIHdhaXRlci5lbmRBc3luYyh0b2tlbik7XG4gICAgZm9ybS5yZW1vdmVFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBmaW5pc2hlZCk7XG4gIH07XG5cbiAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBmaW5pc2hlZCk7XG5cbiAgLy8gTk9URTogd2hlbiBjYWxsaW5nIC5zdWJtaXQoKSB0aGUgc3VibWl0IGV2ZW50IGhhbmRsZXJzIGFyZSBub3QgcnVuXG4gIGZvcm0ucmVxdWVzdFN1Ym1pdCgpO1xufVxuXG5leHBvcnQgY29uc3QgT1RQOiBUT0M8e1xuICAvKipcbiAgICogVGhlIG92ZXJhbGwgT1RQIElucHV0IGlzIGluIGl0cyBvd24gZm9ybS5cbiAgICogTW9kZXJuIFVJL1VYIFBhdHRlcm5zIHVzdWFsbHkgaGF2ZSB0aGlzIHNvcnQgb2YgZmllbGRcbiAgICogYXMgaXRzIG93biBwYWdlLCB0aHVzIHdpdGhpbiBpdHMgb3duIGZvcm0uXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIG9ubHkgdGhlICdzdWJtaXQnIGV2ZW50IGlzIGJvdW5kLCBhbmQgaXNcbiAgICogd2hhdCBjYWxscyB0aGUgYEBvblN1Ym1pdGAgYXJndW1lbnQuXG4gICAqL1xuICBFbGVtZW50OiBIVE1MRm9ybUVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBIb3cgbWFueSBjaGFyYWN0ZXJzIHRoZSBvbmUtdGltZS1wYXNzd29yZCBmaWVsZCBzaG91bGQgYmVcbiAgICAgKiBEZWZhdWx0cyB0byA2XG4gICAgICovXG4gICAgbGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9uIHN1Ym1pdCBjYWxsYmFjayB3aWxsIGdpdmUgeW91IHRoZSBlbnRlcmVkXG4gICAgICogb25lLXRpbWUtcGFzc3dvcmQgY29kZS5cbiAgICAgKlxuICAgICAqIEl0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgbWFudWFsbHkgY2xpY2tzIHRoZSAnc3VibWl0J1xuICAgICAqIGJ1dHRvbiBvciB3aGVuIHRoZSBmdWxsIGNvZGUgaXMgcGFzdGVkIGFuZCBtZWF0cyB0aGUgdmFsaWRhdGlvblxuICAgICAqIGNyaXRlcmlhLlxuICAgICAqL1xuICAgIG9uU3VibWl0OiAoZGF0YTogeyBjb2RlOiBzdHJpbmcgfSkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIGF1dG8tc3VibWl0IGFmdGVyIHRoZSBjb2RlIGhhcyBiZWVuIHBhc3RlZFxuICAgICAqIGluIHRvIHRoZSBjb2xsZWN0aXZlIFwiZmllbGRcIi4gIERlZmF1bHQgaXMgdHJ1ZVxuICAgICAqL1xuICAgIGF1dG9TdWJtaXQ_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY29sbGVjdGl2ZSBpbnB1dCBmaWVsZCB0aGF0IHRoZSBPVFAgY29kZSB3aWxsIGJlIHR5cGVkL3Bhc3RlZCBpbiB0b1xuICAgICAgICAgKi9cbiAgICAgICAgSW5wdXQ6IFdpdGhCb3VuZEFyZ3M8dHlwZW9mIE9UUElucHV0LCAnbGVuZ3RoJyB8ICdvbkNoYW5nZSc-O1xuICAgICAgICAvKipcbiAgICAgICAgICogQnV0dG9uIHdpdGggYHR5cGU9XCJzdWJtaXRcImAgdG8gc3VibWl0IHRoZSBmb3JtXG4gICAgICAgICAqL1xuICAgICAgICBTdWJtaXQ6IHR5cGVvZiBTdWJtaXQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQcmUtd2lyZWQgYnV0dG9uIHRvIHJlc2V0IHRoZSBmb3JtXG4gICAgICAgICAqL1xuICAgICAgICBSZXNldDogdHlwZW9mIFJlc2V0O1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufT4gPSA8dGVtcGxhdGU-XG4gIDxmb3JtIHt7b24gXCJzdWJtaXRcIiAoZm4gaGFuZGxlRm9ybVN1Ym1pdCBAb25TdWJtaXQpfX0gLi4uYXR0cmlidXRlcz5cbiAgICB7e3lpZWxkXG4gICAgICAoaGFzaFxuICAgICAgICBJbnB1dD0oY29tcG9uZW50XG4gICAgICAgICAgT1RQSW5wdXQgbGVuZ3RoPUBsZW5ndGggb25DaGFuZ2U9KGlmIEBhdXRvU3VibWl0IChmbiBoYW5kbGVDaGFuZ2UgQGF1dG9TdWJtaXQpKVxuICAgICAgICApXG4gICAgICAgIFN1Ym1pdD1TdWJtaXRcbiAgICAgICAgUmVzZXQ9UmVzZXRcbiAgICAgIClcbiAgICB9fVxuICA8L2Zvcm0-XG48L3RlbXBsYXRlPjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLEVBQUUsRUFBRSxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3pDLFNBQVMsRUFBRSxRQUFRLGtCQUFrQjtBQUNyQyxTQUFTLFdBQVcsUUFBUSxzQkFBc0I7QUFFbEQsU0FBUyxLQUFLLEVBQUUsTUFBTSxRQUFRLGdCQUFnQjtBQUM5QyxTQUFTLFFBQVEsUUFBUSxjQUFjO0FBRXZDLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsSUFBSSxTQUFTLFlBQVk7QUFFekIsTUFBTSxtQkFBbUIsQ0FBQyxVQUFTO0lBQVEsTUFBTSxNQUFNO01BQU8sSUFBSSxFQUFFLFFBQU87SUFDekUsT0FBTSxjQUFjO0lBRXBCLE9BQ0UsNkVBQ0EsT0FBTSxhQUFhLFlBQVk7SUFHakMsSUFBSSxZQUFXLElBQUksU0FBUyxPQUFNLGFBQWE7SUFFL0MsSUFBSSxRQUFPO0lBRVgsS0FBSyxJQUFJLENBQUMsTUFBSyxPQUFNLElBQUksVUFBUyxPQUFPLEdBQUk7UUFDM0MsSUFBSSxLQUFJLFVBQVUsQ0FBQyxTQUFTO1lBQzFCLFNBQVE7UUFDVjtJQUNGO0lBRUEsUUFBTztRQUNMLE1BQUE7SUFDRjtBQUNGO0FBRUEsU0FBUyxhQUNQLGFBQVksT0FBTyxHQUFHLFNBQVMsRUFDL0I7SUFBUSxNQUFNLE1BQU07SUFBRSxVQUFVLE9BQU87Q0FBRSxFQUN6QyxRQUFPLEtBQUs7SUFFWixJQUFJLENBQUMsYUFBWTtJQUNqQixJQUFJLENBQUMsTUFBSyxRQUFRLEVBQUU7SUFFcEIsT0FDRSxtREFDQSxPQUFNLE1BQU0sWUFBWSxlQUFlLE9BQU0sTUFBTSxZQUFZO0lBR2pFLE1BQU0sUUFBTyxPQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFFbEMsT0FBTyxxRkFBcUY7SUFFNUYsTUFBTSxTQUFRLE9BQU8sVUFBVTtJQUMvQixJQUFJLFlBQVc7UUFDYixPQUFPLFFBQVEsQ0FBQztRQUNoQixNQUFLLG1CQUFtQixDQUFDLFVBQVU7SUFDckM7SUFFQSxNQUFLLGdCQUFnQixDQUFDLFVBQVU7SUFFaEMscUVBQXFFO0lBQ3JFLE1BQUssYUFBYTtBQUNwQjtBQUVBLE9BQU8sTUFBTSxLQUFLO0lBQ2hCOzs7Ozs7O0dBT0MsR0FDRCxTQUFTO0lBQ1Q7UUFDRTs7O0tBR0MsR0FDRCxTQUFTLE1BQU07UUFFZjs7Ozs7OztLQU9DLEdBQ0QsV0FBVztZQUFRLE1BQU0sTUFBTTtjQUFPLElBQUk7UUFFMUM7OztLQUdDLEdBQ0QsYUFBYSxPQUFPOztJQUV0QjtRQUNFO2dCQUVJOztTQUVDLEdBQ0QsT0FBTyxxQkFBcUIsVUFBVSxXQUFXO2dCQUNqRDs7U0FFQyxHQUNELGVBQWU7Z0JBQ2Y7O1NBRUMsR0FDRCxjQUFjOzs7S0FJakIsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7QUFZZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRSJ9"],"names":["waiter","buildWaiter","handleFormSubmit","submit1","event1","preventDefault","assert","currentTarget","HTMLFormElement","formData1","FormData","code1","key1","value1","entries","startsWith","code","handleChange","autoSubmit1","data1","complete","target","HTMLElement","SVGElement","form1","closest","token1","beginAsync","finished1","endAsync","removeEventListener","addEventListener","requestSubmit","OTP","precompileTemplate","scope","on","fn","hash","OTPInput","Submit","Reset","strictMode","templateOnly"],"mappings":";;;;;;;;;;AAWA,IAAIA,MAAA,GAASC,WAAA,CAAY,8CAAA,CAAA,CAAA;AAEzB,MAAMC,gBAAA,GAAmBA,CAACC,OAAwC,EAAEC,MAAO,KAAA;AACzEA,EAAAA,MAAA,CAAMC,cAAc,EAAA,CAAA;AAEpBC,EAAAA,MAAA,CACE,2EACAF,EAAAA,MAAA,CAAMG,aAAa,YAAYC,eAAA,CAAA,CAAA;AAGjC,EAAA,IAAIC,SAAA,GAAW,IAAIC,QAAA,CAASN,MAAA,CAAMG,aAAa,CAAA,CAAA;AAE/C,EAAA,IAAII,KAAA,GAAO,EAAA,CAAA;EAEX,KAAK,IAAI,CAACC,IAAA,EAAKC,MAAA,CAAM,IAAIJ,SAAA,CAASK,OAAO,EAAI,EAAA;AAC3C,IAAA,IAAIF,IAAA,CAAIG,UAAU,CAAC,MAAS,CAAA,EAAA;AAC1BJ,MAAAA,KAAA,IAAQE,MAAA,CAAA;AACV,KAAA;AACF,GAAA;AAEAV,EAAAA,OAAA,CAAO;AACLa,IAAAA,IAAA,EAAAL,KAAAA;AACF,GAAA,CAAA,CAAA;AACF,CAAA,CAAA;AAEA,SAASM,YACPC,CAAAA,WAA+B,EAC/BC,KAAyC,EACzCf,MAAY,EAAA;EAEZ,IAAI,CAACc,WAAA,EAAY,OAAA;AACjB,EAAA,IAAI,CAACC,KAAA,CAAKC,QAAQ,EAAE,OAAA;AAEpBd,EAAAA,MAAA,CACE,iDAAA,EACAF,MAAA,CAAMiB,MAAM,YAAYC,WAAA,IAAelB,MAAA,CAAMiB,MAAM,YAAYE,UAAA,CAAA,CAAA;AAGjE,EAAA,MAAMC,KAAA,GAAOpB,MAAA,CAAMiB,MAAM,CAACI,OAAO,CAAC,MAAA,CAAA,CAAA;EAElCnB,MAAA,CAAO,qFAAqFkB,KAAA,CAAA,CAAA;AAE5F,EAAA,MAAME,MAAA,GAAQ1B,MAAA,CAAO2B,UAAU,EAAA,CAAA;EAC/B,IAAIC,SAAA,GAAWA,MAAA;IACb5B,MAAA,CAAO6B,QAAQ,CAACH,MAAA,CAAA,CAAA;AAChBF,IAAAA,KAAA,CAAKM,mBAAmB,CAAC,QAAA,EAAUF,SAAA,CAAA,CAAA;AACrC,GAAA,CAAA;AAEAJ,EAAAA,KAAA,CAAKO,gBAAgB,CAAC,QAAA,EAAUH,SAAA,CAAA,CAAA;AAEhC;AACAJ,EAAAA,KAAA,CAAKQ,aAAa,EAAA,CAAA;AACpB,CAAA;AAEaC,MAAAA,MAmDRC,oBAAAA,CAAAA,kBAAA,CAYL,2OAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;IAAAC,EAAA;IAAAnC,gBAAA;IAAAoC,IAAA;IAAAC,QAAA;IAAAtB,YAAA;IAAAuB,MAAA;AAAAC,IAAAA,KAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"otp.js","sources":["../../../src/components/one-time-password/otp.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { fn, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { Reset, Submit } from './buttons.gts';\nimport { OTPInput } from './input.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nlet waiter = buildWaiter('ember-primitives:OTP:handleAutoSubmitAttempt');\nconst handleFormSubmit = (submit1: (data: {\n code: string;\n}) => void, event1: SubmitEvent)=>{\n event1.preventDefault();\n assert('[BUG]: handleFormSubmit was not attached to a form. Please open an issue.', event1.currentTarget instanceof HTMLFormElement);\n let formData1 = new FormData(event1.currentTarget);\n let code1 = '';\n for (let [key1, value1] of formData1.entries()){\n if (key1.startsWith('code')) {\n code1 += value1;\n }\n }\n submit1({\n code: code1\n });\n};\nfunction handleChange(autoSubmit1: boolean | undefined, data1: {\n code: string;\n complete: boolean;\n}, event1: Event) {\n if (!autoSubmit1) return;\n if (!data1.complete) return;\n assert('[BUG]: event target is not a known element type', event1.target instanceof HTMLElement || event1.target instanceof SVGElement);\n const form1 = event1.target.closest('form');\n assert('[BUG]: Cannot handle event when <OTP> Inputs are not rendered within their <form>', form1);\n const token1 = waiter.beginAsync();\n let finished1 = ()=>{\n waiter.endAsync(token1);\n form1.removeEventListener('submit', finished1);\n };\n form1.addEventListener('submit', finished1);\n // NOTE: when calling .submit() the submit event handlers are not run\n form1.requestSubmit();\n}\nexport const OTP: TOC<{\n /**\n * The overall OTP Input is in its own form.\n * Modern UI/UX Patterns usually have this sort of field\n * as its own page, thus within its own form.\n *\n * By default, only the 'submit' event is bound, and is\n * what calls the `@onSubmit` argument.\n */ Element: HTMLFormElement;\n Args: {\n /**\n * How many characters the one-time-password field should be\n * Defaults to 6\n */ length?: number;\n /**\n * The on submit callback will give you the entered\n * one-time-password code.\n *\n * It will be called when the user manually clicks the 'submit'\n * button or when the full code is pasted and meats the validation\n * criteria.\n */ onSubmit: (data: {\n code: string;\n }) => void;\n /**\n * Whether or not to auto-submit after the code has been pasted\n * in to the collective \"field\". Default is true\n */ autoSubmit?: boolean;\n };\n Blocks: {\n default: [{\n /**\n * The collective input field that the OTP code will be typed/pasted in to\n */ Input: WithBoundArgs<typeof OTPInput, 'length' | 'onChange'>;\n /**\n * Button with `type=\"submit\"` to submit the form\n */ Submit: typeof Submit;\n /**\n * Pre-wired button to reset the form\n */ Reset: typeof Reset;\n }];\n };\n}> = template(`\n <form {{on \"submit\" (fn handleFormSubmit @onSubmit)}} ...attributes>\n {{yield\n (hash\n Input=(component\n OTPInput length=@length onChange=(if @autoSubmit (fn handleChange @autoSubmit))\n )\n Submit=Submit\n Reset=Reset\n )\n }}\n </form>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9vbmUtdGltZS1wYXNzd29yZC9vdHAuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBmbiwgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuaW1wb3J0IHsgYnVpbGRXYWl0ZXIgfSBmcm9tICdAZW1iZXIvdGVzdC13YWl0ZXJzJztcblxuaW1wb3J0IHsgUmVzZXQsIFN1Ym1pdCB9IGZyb20gJy4vYnV0dG9ucy5ndHMnO1xuaW1wb3J0IHsgT1RQSW5wdXQgfSBmcm9tICcuL2lucHV0Lmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncyB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmxldCB3YWl0ZXIgPSBidWlsZFdhaXRlcignZW1iZXItcHJpbWl0aXZlczpPVFA6aGFuZGxlQXV0b1N1Ym1pdEF0dGVtcHQnKTtcblxuY29uc3QgaGFuZGxlRm9ybVN1Ym1pdCA9IChzdWJtaXQ6IChkYXRhOiB7IGNvZGU6IHN0cmluZyB9KSA9PiB2b2lkLCBldmVudDogU3VibWl0RXZlbnQpID0-IHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICBhc3NlcnQoXG4gICAgJ1tCVUddOiBoYW5kbGVGb3JtU3VibWl0IHdhcyBub3QgYXR0YWNoZWQgdG8gYSBmb3JtLiBQbGVhc2Ugb3BlbiBhbiBpc3N1ZS4nLFxuICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnRcbiAgKTtcblxuICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cbiAgbGV0IGNvZGUgPSAnJztcblxuICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgZm9ybURhdGEuZW50cmllcygpKSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKCdjb2RlJykpIHtcbiAgICAgIGNvZGUgKz0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0KHtcbiAgICBjb2RlLFxuICB9KTtcbn07XG5cbmZ1bmN0aW9uIGhhbmRsZUNoYW5nZShcbiAgYXV0b1N1Ym1pdDogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgZGF0YTogeyBjb2RlOiBzdHJpbmc7IGNvbXBsZXRlOiBib29sZWFuIH0sXG4gIGV2ZW50OiBFdmVudFxuKSB7XG4gIGlmICghYXV0b1N1Ym1pdCkgcmV0dXJuO1xuICBpZiAoIWRhdGEuY29tcGxldGUpIHJldHVybjtcblxuICBhc3NlcnQoXG4gICAgJ1tCVUddOiBldmVudCB0YXJnZXQgaXMgbm90IGEga25vd24gZWxlbWVudCB0eXBlJyxcbiAgICBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fCBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBTVkdFbGVtZW50XG4gICk7XG5cbiAgY29uc3QgZm9ybSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCdmb3JtJyk7XG5cbiAgYXNzZXJ0KCdbQlVHXTogQ2Fubm90IGhhbmRsZSBldmVudCB3aGVuIDxPVFA-IElucHV0cyBhcmUgbm90IHJlbmRlcmVkIHdpdGhpbiB0aGVpciA8Zm9ybT4nLCBmb3JtKTtcblxuICBjb25zdCB0b2tlbiA9IHdhaXRlci5iZWdpbkFzeW5jKCk7XG4gIGxldCBmaW5pc2hlZCA9ICgpID0-IHtcbiAgICB3YWl0ZXIuZW5kQXN5bmModG9rZW4pO1xuICAgIGZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3VibWl0JywgZmluaXNoZWQpO1xuICB9O1xuXG4gIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgZmluaXNoZWQpO1xuXG4gIC8vIE5PVEU6IHdoZW4gY2FsbGluZyAuc3VibWl0KCkgdGhlIHN1Ym1pdCBldmVudCBoYW5kbGVycyBhcmUgbm90IHJ1blxuICBmb3JtLnJlcXVlc3RTdWJtaXQoKTtcbn1cblxuZXhwb3J0IGNvbnN0IE9UUDogVE9DPHtcbiAgLyoqXG4gICAqIFRoZSBvdmVyYWxsIE9UUCBJbnB1dCBpcyBpbiBpdHMgb3duIGZvcm0uXG4gICAqIE1vZGVybiBVSS9VWCBQYXR0ZXJucyB1c3VhbGx5IGhhdmUgdGhpcyBzb3J0IG9mIGZpZWxkXG4gICAqIGFzIGl0cyBvd24gcGFnZSwgdGh1cyB3aXRoaW4gaXRzIG93biBmb3JtLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBvbmx5IHRoZSAnc3VibWl0JyBldmVudCBpcyBib3VuZCwgYW5kIGlzXG4gICAqIHdoYXQgY2FsbHMgdGhlIGBAb25TdWJtaXRgIGFyZ3VtZW50LlxuICAgKi9cbiAgRWxlbWVudDogSFRNTEZvcm1FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogSG93IG1hbnkgY2hhcmFjdGVycyB0aGUgb25lLXRpbWUtcGFzc3dvcmQgZmllbGQgc2hvdWxkIGJlXG4gICAgICogRGVmYXVsdHMgdG8gNlxuICAgICAqL1xuICAgIGxlbmd0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvbiBzdWJtaXQgY2FsbGJhY2sgd2lsbCBnaXZlIHlvdSB0aGUgZW50ZXJlZFxuICAgICAqIG9uZS10aW1lLXBhc3N3b3JkIGNvZGUuXG4gICAgICpcbiAgICAgKiBJdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIG1hbnVhbGx5IGNsaWNrcyB0aGUgJ3N1Ym1pdCdcbiAgICAgKiBidXR0b24gb3Igd2hlbiB0aGUgZnVsbCBjb2RlIGlzIHBhc3RlZCBhbmQgbWVhdHMgdGhlIHZhbGlkYXRpb25cbiAgICAgKiBjcml0ZXJpYS5cbiAgICAgKi9cbiAgICBvblN1Ym1pdDogKGRhdGE6IHsgY29kZTogc3RyaW5nIH0pID0-IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhdXRvLXN1Ym1pdCBhZnRlciB0aGUgY29kZSBoYXMgYmVlbiBwYXN0ZWRcbiAgICAgKiBpbiB0byB0aGUgY29sbGVjdGl2ZSBcImZpZWxkXCIuICBEZWZhdWx0IGlzIHRydWVcbiAgICAgKi9cbiAgICBhdXRvU3VibWl0PzogYm9vbGVhbjtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGNvbGxlY3RpdmUgaW5wdXQgZmllbGQgdGhhdCB0aGUgT1RQIGNvZGUgd2lsbCBiZSB0eXBlZC9wYXN0ZWQgaW4gdG9cbiAgICAgICAgICovXG4gICAgICAgIElucHV0OiBXaXRoQm91bmRBcmdzPHR5cGVvZiBPVFBJbnB1dCwgJ2xlbmd0aCcgfCAnb25DaGFuZ2UnPjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJ1dHRvbiB3aXRoIGB0eXBlPVwic3VibWl0XCJgIHRvIHN1Ym1pdCB0aGUgZm9ybVxuICAgICAgICAgKi9cbiAgICAgICAgU3VibWl0OiB0eXBlb2YgU3VibWl0O1xuICAgICAgICAvKipcbiAgICAgICAgICogUHJlLXdpcmVkIGJ1dHRvbiB0byByZXNldCB0aGUgZm9ybVxuICAgICAgICAgKi9cbiAgICAgICAgUmVzZXQ6IHR5cGVvZiBSZXNldDtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn0-ID0gPHRlbXBsYXRlPlxuICA8Zm9ybSB7e29uIFwic3VibWl0XCIgKGZuIGhhbmRsZUZvcm1TdWJtaXQgQG9uU3VibWl0KX19IC4uLmF0dHJpYnV0ZXM-XG4gICAge3t5aWVsZFxuICAgICAgKGhhc2hcbiAgICAgICAgSW5wdXQ9KGNvbXBvbmVudFxuICAgICAgICAgIE9UUElucHV0IGxlbmd0aD1AbGVuZ3RoIG9uQ2hhbmdlPShpZiBAYXV0b1N1Ym1pdCAoZm4gaGFuZGxlQ2hhbmdlIEBhdXRvU3VibWl0KSlcbiAgICAgICAgKVxuICAgICAgICBTdWJtaXQ9U3VibWl0XG4gICAgICAgIFJlc2V0PVJlc2V0XG4gICAgICApXG4gICAgfX1cbiAgPC9mb3JtPlxuPC90ZW1wbGF0ZT47XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVMsTUFBTSxRQUFRLGVBQWU7QUFDdEMsU0FBUyxFQUFFLEVBQUUsSUFBSSxRQUFRLGdCQUFnQjtBQUN6QyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFDckMsU0FBUyxXQUFXLFFBQVEsc0JBQXNCO0FBRWxELFNBQVMsS0FBSyxFQUFFLE1BQU0sUUFBUSxnQkFBZ0I7QUFDOUMsU0FBUyxRQUFRLFFBQVEsY0FBYztBQUV2QyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFDMUQsY0FBYyxhQUFhLFFBQVEsa0JBQWtCO0FBRXJELElBQUksU0FBUyxZQUFZO0FBRXpCLE1BQU0sbUJBQW1CLENBQUMsVUFBUztJQUFRLE1BQU0sTUFBTTtNQUFPLElBQUksRUFBRSxRQUFPO0lBQ3pFLE9BQU0sY0FBYztJQUVwQixPQUNFLDZFQUNBLE9BQU0sYUFBYSxZQUFZO0lBR2pDLElBQUksWUFBVyxJQUFJLFNBQVMsT0FBTSxhQUFhO0lBRS9DLElBQUksUUFBTztJQUVYLEtBQUssSUFBSSxDQUFDLE1BQUssT0FBTSxJQUFJLFVBQVMsT0FBTyxHQUFJO1FBQzNDLElBQUksS0FBSSxVQUFVLENBQUMsU0FBUztZQUMxQixTQUFRO1FBQ1Y7SUFDRjtJQUVBLFFBQU87UUFDTCxNQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVMsYUFDUCxhQUFZLE9BQU8sR0FBRyxTQUFTLEVBQy9CO0lBQVEsTUFBTSxNQUFNO0lBQUUsVUFBVSxPQUFPO0NBQUUsRUFDekMsUUFBTyxLQUFLO0lBRVosSUFBSSxDQUFDLGFBQVk7SUFDakIsSUFBSSxDQUFDLE1BQUssUUFBUSxFQUFFO0lBRXBCLE9BQ0UsbURBQ0EsT0FBTSxNQUFNLFlBQVksZUFBZSxPQUFNLE1BQU0sWUFBWTtJQUdqRSxNQUFNLFFBQU8sT0FBTSxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRWxDLE9BQU8scUZBQXFGO0lBRTVGLE1BQU0sU0FBUSxPQUFPLFVBQVU7SUFDL0IsSUFBSSxZQUFXO1FBQ2IsT0FBTyxRQUFRLENBQUM7UUFDaEIsTUFBSyxtQkFBbUIsQ0FBQyxVQUFVO0lBQ3JDO0lBRUEsTUFBSyxnQkFBZ0IsQ0FBQyxVQUFVO0lBRWhDLHFFQUFxRTtJQUNyRSxNQUFLLGFBQWE7QUFDcEI7QUFFQSxPQUFPLE1BQU0sS0FBSztJQUNoQjs7Ozs7OztHQU9DLEdBQ0QsU0FBUztJQUNUO1FBQ0U7OztLQUdDLEdBQ0QsU0FBUyxNQUFNO1FBRWY7Ozs7Ozs7S0FPQyxHQUNELFdBQVc7WUFBUSxNQUFNLE1BQU07Y0FBTyxJQUFJO1FBRTFDOzs7S0FHQyxHQUNELGFBQWEsT0FBTzs7SUFFdEI7UUFDRTtnQkFFSTs7U0FFQyxHQUNELE9BQU8scUJBQXFCLFVBQVUsV0FBVztnQkFDakQ7O1NBRUMsR0FDRCxlQUFlO2dCQUNmOztTQUVDLEdBQ0QsY0FBYzs7O0tBSWpCLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7O0FBWWYsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBLEdBQUUifQ"],"names":["waiter","buildWaiter","handleFormSubmit","submit1","event1","preventDefault","assert","currentTarget","HTMLFormElement","formData1","FormData","code1","key1","value1","entries","startsWith","code","handleChange","autoSubmit1","data1","complete","target","HTMLElement","SVGElement","form1","closest","token1","beginAsync","finished1","endAsync","removeEventListener","addEventListener","requestSubmit","OTP","precompileTemplate","strictMode","scope","on","fn","hash","OTPInput","Submit","Reset","templateOnly"],"mappings":";;;;;;;;;;AAWA,IAAIA,MAAA,GAASC,WAAA,CAAY,8CAAA,CAAA,CAAA;AAEzB,MAAMC,gBAAA,GAAmBA,CAACC,OAAwC,EAAEC,MAAO,KAAA;AACzEA,EAAAA,MAAA,CAAMC,cAAc,EAAA,CAAA;AAEpBC,EAAAA,MAAA,CACE,2EACAF,EAAAA,MAAA,CAAMG,aAAa,YAAYC,eAAA,CAAA,CAAA;AAGjC,EAAA,IAAIC,SAAA,GAAW,IAAIC,QAAA,CAASN,MAAA,CAAMG,aAAa,CAAA,CAAA;AAE/C,EAAA,IAAII,KAAA,GAAO,EAAA,CAAA;EAEX,KAAK,IAAI,CAACC,IAAA,EAAKC,MAAA,CAAM,IAAIJ,SAAA,CAASK,OAAO,EAAI,EAAA;AAC3C,IAAA,IAAIF,IAAA,CAAIG,UAAU,CAAC,MAAS,CAAA,EAAA;AAC1BJ,MAAAA,KAAA,IAAQE,MAAA,CAAA;AACV,KAAA;AACF,GAAA;AAEAV,EAAAA,OAAA,CAAO;AACLa,IAAAA,IAAA,EAAAL,KAAAA;AACF,GAAA,CAAA,CAAA;AACF,CAAA,CAAA;AAEA,SAASM,YACPC,CAAAA,WAA+B,EAC/BC,KAAyC,EACzCf,MAAY,EAAA;EAEZ,IAAI,CAACc,WAAA,EAAY,OAAA;AACjB,EAAA,IAAI,CAACC,KAAA,CAAKC,QAAQ,EAAE,OAAA;AAEpBd,EAAAA,MAAA,CACE,iDAAA,EACAF,MAAA,CAAMiB,MAAM,YAAYC,WAAA,IAAelB,MAAA,CAAMiB,MAAM,YAAYE,UAAA,CAAA,CAAA;AAGjE,EAAA,MAAMC,KAAA,GAAOpB,MAAA,CAAMiB,MAAM,CAACI,OAAO,CAAC,MAAA,CAAA,CAAA;EAElCnB,MAAA,CAAO,qFAAqFkB,KAAA,CAAA,CAAA;AAE5F,EAAA,MAAME,MAAA,GAAQ1B,MAAA,CAAO2B,UAAU,EAAA,CAAA;EAC/B,IAAIC,SAAA,GAAWA,MAAA;IACb5B,MAAA,CAAO6B,QAAQ,CAACH,MAAA,CAAA,CAAA;AAChBF,IAAAA,KAAA,CAAKM,mBAAmB,CAAC,QAAA,EAAUF,SAAA,CAAA,CAAA;AACrC,GAAA,CAAA;AAEAJ,EAAAA,KAAA,CAAKO,gBAAgB,CAAC,QAAA,EAAUH,SAAA,CAAA,CAAA;AAEhC;AACAJ,EAAAA,KAAA,CAAKQ,aAAa,EAAA,CAAA;AACpB,CAAA;AAEaC,MAAAA,MAmDRC,oBAAAA,CAAAA,kBAAA,CAYL,2OAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;IAAAC,EAAA;IAAApC,gBAAA;IAAAqC,IAAA;IAAAC,QAAA;IAAAvB,YAAA;IAAAwB,MAAA;AAAAC,IAAAA,KAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -20,13 +20,13 @@ function getElementTag(tagName1) {
|
|
|
20
20
|
* This is useful because the algorithm for finding the portal target isn't cheap.
|
|
21
21
|
*/
|
|
22
22
|
const Content = setComponentTemplate(precompileTemplate("\n {{#let (element (getElementTag @as)) as |El|}}\n {{#if @inline}}\n {{!-- @glint-ignore\n https://github.com/tildeio/ember-element-helper/issues/91\n https://github.com/typed-ember/glint/issues/610\n --}}\n <El {{@loop}} ...attributes>\n {{yield}}\n </El>\n {{else}}\n <Portal @to={{TARGETS.popover}}>\n {{!-- @glint-ignore\n https://github.com/tildeio/ember-element-helper/issues/91\n https://github.com/typed-ember/glint/issues/610\n --}}\n <El {{@loop}} ...attributes>\n {{yield}}\n </El>\n </Portal>\n {{/if}}\n {{/let}}\n", {
|
|
23
|
+
strictMode: true,
|
|
23
24
|
scope: () => ({
|
|
24
25
|
element,
|
|
25
26
|
getElementTag,
|
|
26
27
|
Portal,
|
|
27
28
|
TARGETS
|
|
28
|
-
})
|
|
29
|
-
strictMode: true
|
|
29
|
+
})
|
|
30
30
|
}), templateOnly());
|
|
31
31
|
const arrowSides = {
|
|
32
32
|
top: 'bottom',
|
|
@@ -83,6 +83,7 @@ function flipOptions(options1) {
|
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
const Popover = setComponentTemplate(precompileTemplate("\n {{#let (ArrowElement) as |arrowElement|}}\n <FloatingUI @placement={{@placement}} @strategy={{@strategy}} @middleware={{maybeAddArrow @middleware arrowElement.current}} @flipOptions={{flipOptions @flipOptions}} @shiftOptions={{@shiftOptions}} @offsetOptions={{@offsetOptions}} as |fui|>\n {{yield (hash hook=fui.hook setHook=fui.setHook Content=(component Content loop=fui.loop inline=@inline) data=fui.data arrow=(modifier attachArrow arrowElement=arrowElement data=fui.data))}}\n </FloatingUI>\n {{/let}}\n", {
|
|
86
|
+
strictMode: true,
|
|
86
87
|
scope: () => ({
|
|
87
88
|
ArrowElement,
|
|
88
89
|
FloatingUI: Velcro,
|
|
@@ -91,8 +92,7 @@ const Popover = setComponentTemplate(precompileTemplate("\n {{#let (ArrowElemen
|
|
|
91
92
|
hash,
|
|
92
93
|
Content,
|
|
93
94
|
attachArrow
|
|
94
|
-
})
|
|
95
|
-
strictMode: true
|
|
95
|
+
})
|
|
96
96
|
}), templateOnly());
|
|
97
97
|
|
|
98
98
|
export { Popover, Popover as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","sources":["../../src/components/popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { hash } from '@ember/helper';\nimport { arrow } from '@floating-ui/dom';\nimport { element } from 'ember-element-helper';\nimport { modifier as eModifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport { FloatingUI } from '../floating-ui.ts';\nimport { Portal } from './portal.gts';\nimport { TARGETS } from './portal-targets.gts';\nimport type { Signature as FloatingUiComponentSignature } from '../floating-ui/component.ts';\nimport type { Signature as HookSignature } from '../floating-ui/modifier.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { ElementContext, Middleware, MiddlewareData } from '@floating-ui/dom';\nimport type { ModifierLike, WithBoundArgs } from '@glint/template';\nexport interface Signature {\n Args: {\n /**\n * See the Floating UI's [flip docs](https://floating-ui.com/docs/flip) for possible values.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ flipOptions?: HookSignature['Args']['Named']['flipOptions'];\n /**\n * Array of one or more objects to add to Floating UI's list of [middleware](https://floating-ui.com/docs/middleware)\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ middleware?: HookSignature['Args']['Named']['middleware'];\n /**\n * See the Floating UI's [offset docs](https://floating-ui.com/docs/offset) for possible values.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ offsetOptions?: HookSignature['Args']['Named']['offsetOptions'];\n /**\n * One of the possible [`placements`](https://floating-ui.com/docs/computeposition#placement). The default is 'bottom'.\n *\n * Possible values are\n * - top\n * - bottom\n * - right\n * - left\n *\n * And may optionally have `-start` or `-end` added to adjust position along the side.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ placement?: `${'top' | 'bottom' | 'left' | 'right'}${'' | '-start' | '-end'}`;\n /**\n * See the Floating UI's [shift docs](https://floating-ui.com/docs/shift) for possible values.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ shiftOptions?: HookSignature['Args']['Named']['shiftOptions'];\n /**\n * CSS position property, either `fixed` or `absolute`.\n *\n * Pros and cons of each strategy are explained on [Floating UI's Docs](https://floating-ui.com/docs/computePosition#strategy)\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ strategy?: HookSignature['Args']['Named']['strategy'];\n /**\n * By default, the popover is portaled.\n * If you don't control your CSS, and the positioning of the popover content\n * is misbehaving, you may pass \"@inline={{true}}\" to opt out of portalling.\n *\n * Inline may also be useful in nested menus, where you know exactly how the nesting occurs\n */ inline?: boolean;\n };\n Blocks: {\n default: [{\n hook: FloatingUiComponentSignature['Blocks']['default'][0]['hook'];\n setHook: FloatingUiComponentSignature['Blocks']['default'][0]['setHook'];\n Content: WithBoundArgs<typeof Content, 'loop'>;\n data: FloatingUiComponentSignature['Blocks']['default'][0]['data'];\n arrow: WithBoundArgs<ModifierLike<AttachArrowSignature>, 'arrowElement' | 'data'>;\n }];\n };\n}\nfunction getElementTag(tagName1: undefined | string) {\n return tagName1 || 'div';\n}\n/**\n * Allows lazy evaluation of the portal target (do nothing until rendered)\n * This is useful because the algorithm for finding the portal target isn't cheap.\n */ const Content: TOC<{\n Element: HTMLDivElement;\n Args: {\n loop: ModifierLike<{\n Element: HTMLElement;\n }>;\n inline?: boolean;\n /**\n * By default the popover content is wrapped in a div.\n * You may change this by supplying the name of an element here.\n *\n * For example:\n * ```gjs\n * <Popover as |p|>\n * <p.Content @as=\"dialog\">\n * this is now focus trapped\n * </p.Content>\n * </Popover>\n * ```\n */ as?: string;\n };\n Blocks: {\n default: [];\n };\n}> = template(`\n {{#let (element (getElementTag @as)) as |El|}}\n {{#if @inline}}\n {{! @glint-ignore\n https://github.com/tildeio/ember-element-helper/issues/91\n https://github.com/typed-ember/glint/issues/610\n }}\n <El {{@loop}} ...attributes>\n {{yield}}\n </El>\n {{else}}\n <Portal @to={{TARGETS.popover}}>\n {{! @glint-ignore\n https://github.com/tildeio/ember-element-helper/issues/91\n https://github.com/typed-ember/glint/issues/610\n }}\n <El {{@loop}} ...attributes>\n {{yield}}\n </El>\n </Portal>\n {{/if}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\ninterface AttachArrowSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n arrowElement: ReturnType<typeof ArrowElement>;\n data?: {\n middlewareData?: MiddlewareData;\n placement?: Placement;\n };\n };\n };\n}\nconst arrowSides = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\ntype Direction = 'top' | 'bottom' | 'left' | 'right';\ntype Placement = `${Direction}${'' | '-start' | '-end'}`;\nconst attachArrow = eModifier<AttachArrowSignature>((element1, _1: [], named1)=>{\n if (element1 === named1.arrowElement.current) {\n if (!named1.data) return;\n if (!named1.data.middlewareData) return;\n let { arrow: arrow1 } = named1.data.middlewareData;\n let { placement: placement1 } = named1.data;\n if (!arrow1) return;\n if (!placement1) return;\n let { x: arrowX1, y: arrowY1 } = arrow1;\n let otherSide1 = (placement1 as Placement).split('-')[0] as Direction;\n let staticSide1 = arrowSides[otherSide1];\n Object.assign(named1.arrowElement.current.style, {\n left: arrowX1 != null ? `${arrowX1}px` : '',\n top: arrowY1 != null ? `${arrowY1}px` : '',\n right: '',\n bottom: '',\n [staticSide1]: '-4px'\n });\n return;\n }\n (async ()=>{\n await Promise.resolve();\n named1.arrowElement.set(element1);\n })();\n});\nconst ArrowElement: () => ReturnType<typeof cell> = ()=>cell<HTMLElement>();\nfunction maybeAddArrow(middleware1: Middleware[] | undefined, element1: Element | undefined) {\n let result1 = [\n ...(middleware1 || [])\n ];\n if (element1) {\n result1.push(arrow({\n element: element1\n }));\n }\n return result1;\n}\nfunction flipOptions(options1: HookSignature['Args']['Named']['flipOptions']) {\n return {\n elementContext: 'reference' as ElementContext,\n ...options1\n };\n}\nexport const Popover: TOC<Signature> = template(`\n {{#let (ArrowElement) as |arrowElement|}}\n <FloatingUI\n @placement={{@placement}}\n @strategy={{@strategy}}\n @middleware={{maybeAddArrow @middleware arrowElement.current}}\n @flipOptions={{flipOptions @flipOptions}}\n @shiftOptions={{@shiftOptions}}\n @offsetOptions={{@offsetOptions}}\n as |fui|\n >\n {{yield\n (hash\n hook=fui.hook\n setHook=fui.setHook\n Content=(component Content loop=fui.loop inline=@inline)\n data=fui.data\n arrow=(modifier attachArrow arrowElement=arrowElement data=fui.data)\n )\n }}\n </FloatingUI>\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Popover;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3BvcG92ZXIuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcblxuaW1wb3J0IHsgYXJyb3cgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IGVsZW1lbnQgfSBmcm9tICdlbWJlci1lbGVtZW50LWhlbHBlcic7XG5pbXBvcnQgeyBtb2RpZmllciBhcyBlTW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5pbXBvcnQgeyBjZWxsIH0gZnJvbSAnZW1iZXItcmVzb3VyY2VzJztcblxuaW1wb3J0IHsgRmxvYXRpbmdVSSB9IGZyb20gJy4uL2Zsb2F0aW5nLXVpLnRzJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4vcG9ydGFsLmd0cyc7XG5pbXBvcnQgeyBUQVJHRVRTIH0gZnJvbSAnLi9wb3J0YWwtdGFyZ2V0cy5ndHMnO1xuXG5pbXBvcnQgdHlwZSB7IFNpZ25hdHVyZSBhcyBGbG9hdGluZ1VpQ29tcG9uZW50U2lnbmF0dXJlIH0gZnJvbSAnLi4vZmxvYXRpbmctdWkvY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2lnbmF0dXJlIGFzIEhvb2tTaWduYXR1cmUgfSBmcm9tICcuLi9mbG9hdGluZy11aS9tb2RpZmllci50cyc7XG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5pbXBvcnQgdHlwZSB7IEVsZW1lbnRDb250ZXh0LCBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlRGF0YSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHR5cGUgeyBNb2RpZmllckxpa2UsIFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBTZWUgdGhlIEZsb2F0aW5nIFVJJ3MgW2ZsaXAgZG9jc10oaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwKSBmb3IgcG9zc2libGUgdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBmbGlwT3B0aW9ucz86IEhvb2tTaWduYXR1cmVbJ0FyZ3MnXVsnTmFtZWQnXVsnZmxpcE9wdGlvbnMnXTtcbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiBvbmUgb3IgbW9yZSBvYmplY3RzIHRvIGFkZCB0byBGbG9hdGluZyBVSSdzIGxpc3Qgb2YgW21pZGRsZXdhcmVdKGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvbWlkZGxld2FyZSlcbiAgICAgKlxuICAgICAqIFRoaXMgYXJndW1lbnQgaXMgZm9yd2FyZGVkIHRvIGBlbWJlci12ZWxjcm9gJ3MgYDxWZWxjcm8-YCBjb21wb25lbnQuXG4gICAgICovXG4gICAgbWlkZGxld2FyZT86IEhvb2tTaWduYXR1cmVbJ0FyZ3MnXVsnTmFtZWQnXVsnbWlkZGxld2FyZSddO1xuICAgIC8qKlxuICAgICAqIFNlZSB0aGUgRmxvYXRpbmcgVUkncyBbb2Zmc2V0IGRvY3NdKGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0KSBmb3IgcG9zc2libGUgdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBvZmZzZXRPcHRpb25zPzogSG9va1NpZ25hdHVyZVsnQXJncyddWydOYW1lZCddWydvZmZzZXRPcHRpb25zJ107XG4gICAgLyoqXG4gICAgICogT25lIG9mIHRoZSBwb3NzaWJsZSBbYHBsYWNlbWVudHNgXShodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2NvbXB1dGVwb3NpdGlvbiNwbGFjZW1lbnQpLiBUaGUgZGVmYXVsdCBpcyAnYm90dG9tJy5cbiAgICAgKlxuICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmVcbiAgICAgKiAtIHRvcFxuICAgICAqIC0gYm90dG9tXG4gICAgICogLSByaWdodFxuICAgICAqIC0gbGVmdFxuICAgICAqXG4gICAgICogQW5kIG1heSBvcHRpb25hbGx5IGhhdmUgYC1zdGFydGAgb3IgYC1lbmRgIGFkZGVkIHRvIGFkanVzdCBwb3NpdGlvbiBhbG9uZyB0aGUgc2lkZS5cbiAgICAgKlxuICAgICAqIFRoaXMgYXJndW1lbnQgaXMgZm9yd2FyZGVkIHRvIGBlbWJlci12ZWxjcm9gJ3MgYDxWZWxjcm8-YCBjb21wb25lbnQuXG4gICAgICovXG4gICAgcGxhY2VtZW50PzogYCR7J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCd9JHsnJyB8ICctc3RhcnQnIHwgJy1lbmQnfWA7XG4gICAgLyoqXG4gICAgICogU2VlIHRoZSBGbG9hdGluZyBVSSdzIFtzaGlmdCBkb2NzXShodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0KSBmb3IgcG9zc2libGUgdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBzaGlmdE9wdGlvbnM_OiBIb29rU2lnbmF0dXJlWydBcmdzJ11bJ05hbWVkJ11bJ3NoaWZ0T3B0aW9ucyddO1xuICAgIC8qKlxuICAgICAqIENTUyBwb3NpdGlvbiBwcm9wZXJ0eSwgZWl0aGVyIGBmaXhlZGAgb3IgYGFic29sdXRlYC5cbiAgICAgKlxuICAgICAqIFByb3MgYW5kIGNvbnMgb2YgZWFjaCBzdHJhdGVneSBhcmUgZXhwbGFpbmVkIG9uIFtGbG9hdGluZyBVSSdzIERvY3NdKGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvY29tcHV0ZVBvc2l0aW9uI3N0cmF0ZWd5KVxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBzdHJhdGVneT86IEhvb2tTaWduYXR1cmVbJ0FyZ3MnXVsnTmFtZWQnXVsnc3RyYXRlZ3knXTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBwb3BvdmVyIGlzIHBvcnRhbGVkLlxuICAgICAqIElmIHlvdSBkb24ndCBjb250cm9sIHlvdXIgQ1NTLCBhbmQgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBwb3BvdmVyIGNvbnRlbnRcbiAgICAgKiBpcyBtaXNiZWhhdmluZywgeW91IG1heSBwYXNzIFwiQGlubGluZT17e3RydWV9fVwiIHRvIG9wdCBvdXQgb2YgcG9ydGFsbGluZy5cbiAgICAgKlxuICAgICAqIElubGluZSBtYXkgYWxzbyBiZSB1c2VmdWwgaW4gbmVzdGVkIG1lbnVzLCB3aGVyZSB5b3Uga25vdyBleGFjdGx5IGhvdyB0aGUgbmVzdGluZyBvY2N1cnNcbiAgICAgKi9cbiAgICBpbmxpbmU_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIGhvb2s6IEZsb2F0aW5nVWlDb21wb25lbnRTaWduYXR1cmVbJ0Jsb2NrcyddWydkZWZhdWx0J11bMF1bJ2hvb2snXTtcbiAgICAgICAgc2V0SG9vazogRmxvYXRpbmdVaUNvbXBvbmVudFNpZ25hdHVyZVsnQmxvY2tzJ11bJ2RlZmF1bHQnXVswXVsnc2V0SG9vayddO1xuICAgICAgICBDb250ZW50OiBXaXRoQm91bmRBcmdzPHR5cGVvZiBDb250ZW50LCAnbG9vcCc-O1xuICAgICAgICBkYXRhOiBGbG9hdGluZ1VpQ29tcG9uZW50U2lnbmF0dXJlWydCbG9ja3MnXVsnZGVmYXVsdCddWzBdWydkYXRhJ107XG4gICAgICAgIGFycm93OiBXaXRoQm91bmRBcmdzPE1vZGlmaWVyTGlrZTxBdHRhY2hBcnJvd1NpZ25hdHVyZT4sICdhcnJvd0VsZW1lbnQnIHwgJ2RhdGEnPjtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RWxlbWVudFRhZyh0YWdOYW1lOiB1bmRlZmluZWQgfCBzdHJpbmcpIHtcbiAgcmV0dXJuIHRhZ05hbWUgfHwgJ2Rpdic7XG59XG5cbi8qKlxuICogQWxsb3dzIGxhenkgZXZhbHVhdGlvbiBvZiB0aGUgcG9ydGFsIHRhcmdldCAoZG8gbm90aGluZyB1bnRpbCByZW5kZXJlZClcbiAqIFRoaXMgaXMgdXNlZnVsIGJlY2F1c2UgdGhlIGFsZ29yaXRobSBmb3IgZmluZGluZyB0aGUgcG9ydGFsIHRhcmdldCBpc24ndCBjaGVhcC5cbiAqL1xuY29uc3QgQ29udGVudDogVE9DPHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICBsb29wOiBNb2RpZmllckxpa2U8eyBFbGVtZW50OiBIVE1MRWxlbWVudCB9PjtcbiAgICBpbmxpbmU_OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIHBvcG92ZXIgY29udGVudCBpcyB3cmFwcGVkIGluIGEgZGl2LlxuICAgICAqIFlvdSBtYXkgY2hhbmdlIHRoaXMgYnkgc3VwcGx5aW5nIHRoZSBuYW1lIG9mIGFuIGVsZW1lbnQgaGVyZS5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqIGBgYGdqc1xuICAgICAqIDxQb3BvdmVyIGFzIHxwfD5cbiAgICAgKiAgPHAuQ29udGVudCBAYXM9XCJkaWFsb2dcIj5cbiAgICAgKiAgICB0aGlzIGlzIG5vdyBmb2N1cyB0cmFwcGVkXG4gICAgICogIDwvcC5Db250ZW50PlxuICAgICAqIDwvUG9wb3Zlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBhcz86IHN0cmluZztcbiAgfTtcbiAgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH07XG59PiA9IDx0ZW1wbGF0ZT5cbiAge3sjbGV0IChlbGVtZW50IChnZXRFbGVtZW50VGFnIEBhcykpIGFzIHxFbHx9fVxuICAgIHt7I2lmIEBpbmxpbmV9fVxuICAgICAge3shIEBnbGludC1pZ25vcmVcbiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90aWxkZWlvL2VtYmVyLWVsZW1lbnQtaGVscGVyL2lzc3Vlcy85MVxuICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3R5cGVkLWVtYmVyL2dsaW50L2lzc3Vlcy82MTBcbiAgICAgIH19XG4gICAgICA8RWwge3tAbG9vcH19IC4uLmF0dHJpYnV0ZXM-XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9FbD5cbiAgICB7e2Vsc2V9fVxuICAgICAgPFBvcnRhbCBAdG89e3tUQVJHRVRTLnBvcG92ZXJ9fT5cbiAgICAgICAge3shIEBnbGludC1pZ25vcmVcbiAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3RpbGRlaW8vZW1iZXItZWxlbWVudC1oZWxwZXIvaXNzdWVzLzkxXG4gICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlZC1lbWJlci9nbGludC9pc3N1ZXMvNjEwXG4gICAgICAgIH19XG4gICAgICAgIDxFbCB7e0Bsb29wfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgICAgICB7e3lpZWxkfX1cbiAgICAgICAgPC9FbD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIHt7L2lmfX1cbiAge3svbGV0fX1cbjwvdGVtcGxhdGU-O1xuXG5pbnRlcmZhY2UgQXR0YWNoQXJyb3dTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgQXJnczoge1xuICAgIE5hbWVkOiB7XG4gICAgICBhcnJvd0VsZW1lbnQ6IFJldHVyblR5cGU8dHlwZW9mIEFycm93RWxlbWVudD47XG4gICAgICBkYXRhPzoge1xuICAgICAgICBtaWRkbGV3YXJlRGF0YT86IE1pZGRsZXdhcmVEYXRhO1xuICAgICAgICBwbGFjZW1lbnQ_OiBQbGFjZW1lbnQ7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG5cbmNvbnN0IGFycm93U2lkZXMgPSB7XG4gIHRvcDogJ2JvdHRvbScsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIGxlZnQ6ICdyaWdodCcsXG59O1xuXG50eXBlIERpcmVjdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnO1xudHlwZSBQbGFjZW1lbnQgPSBgJHtEaXJlY3Rpb259JHsnJyB8ICctc3RhcnQnIHwgJy1lbmQnfWA7XG5cbmNvbnN0IGF0dGFjaEFycm93ID0gZU1vZGlmaWVyPEF0dGFjaEFycm93U2lnbmF0dXJlPigoZWxlbWVudCwgXzogW10sIG5hbWVkKSA9PiB7XG4gIGlmIChlbGVtZW50ID09PSBuYW1lZC5hcnJvd0VsZW1lbnQuY3VycmVudCkge1xuICAgIGlmICghbmFtZWQuZGF0YSkgcmV0dXJuO1xuICAgIGlmICghbmFtZWQuZGF0YS5taWRkbGV3YXJlRGF0YSkgcmV0dXJuO1xuXG4gICAgbGV0IHsgYXJyb3cgfSA9IG5hbWVkLmRhdGEubWlkZGxld2FyZURhdGE7XG4gICAgbGV0IHsgcGxhY2VtZW50IH0gPSBuYW1lZC5kYXRhO1xuXG4gICAgaWYgKCFhcnJvdykgcmV0dXJuO1xuICAgIGlmICghcGxhY2VtZW50KSByZXR1cm47XG5cbiAgICBsZXQgeyB4OiBhcnJvd1gsIHk6IGFycm93WSB9ID0gYXJyb3c7XG4gICAgbGV0IG90aGVyU2lkZSA9IChwbGFjZW1lbnQgYXMgUGxhY2VtZW50KS5zcGxpdCgnLScpWzBdIGFzIERpcmVjdGlvbjtcbiAgICBsZXQgc3RhdGljU2lkZSA9IGFycm93U2lkZXNbb3RoZXJTaWRlXTtcblxuICAgIE9iamVjdC5hc3NpZ24obmFtZWQuYXJyb3dFbGVtZW50LmN1cnJlbnQuc3R5bGUsIHtcbiAgICAgIGxlZnQ6IGFycm93WCAhPSBudWxsID8gYCR7YXJyb3dYfXB4YCA6ICcnLFxuICAgICAgdG9wOiBhcnJvd1kgIT0gbnVsbCA_IGAke2Fycm93WX1weGAgOiAnJyxcbiAgICAgIHJpZ2h0OiAnJyxcbiAgICAgIGJvdHRvbTogJycsXG4gICAgICBbc3RhdGljU2lkZV06ICctNHB4JyxcbiAgICB9KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgbmFtZWQuYXJyb3dFbGVtZW50LnNldChlbGVtZW50KTtcbiAgfSkoKTtcbn0pO1xuXG5jb25zdCBBcnJvd0VsZW1lbnQ6ICgpID0-IFJldHVyblR5cGU8dHlwZW9mIGNlbGw8SFRNTEVsZW1lbnQ-PiA9ICgpID0-IGNlbGw8SFRNTEVsZW1lbnQ-KCk7XG5cbmZ1bmN0aW9uIG1heWJlQWRkQXJyb3cobWlkZGxld2FyZTogTWlkZGxld2FyZVtdIHwgdW5kZWZpbmVkLCBlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkKSB7XG4gIGxldCByZXN1bHQgPSBbLi4uKG1pZGRsZXdhcmUgfHwgW10pXTtcblxuICBpZiAoZWxlbWVudCkge1xuICAgIHJlc3VsdC5wdXNoKGFycm93KHsgZWxlbWVudCB9KSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBmbGlwT3B0aW9ucyhvcHRpb25zOiBIb29rU2lnbmF0dXJlWydBcmdzJ11bJ05hbWVkJ11bJ2ZsaXBPcHRpb25zJ10pIHtcbiAgcmV0dXJuIHtcbiAgICBlbGVtZW50Q29udGV4dDogJ3JlZmVyZW5jZScgYXMgRWxlbWVudENvbnRleHQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFBvcG92ZXI6IFRPQzxTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICB7eyNsZXQgKEFycm93RWxlbWVudCkgYXMgfGFycm93RWxlbWVudHx9fVxuICAgIDxGbG9hdGluZ1VJXG4gICAgICBAcGxhY2VtZW50PXt7QHBsYWNlbWVudH19XG4gICAgICBAc3RyYXRlZ3k9e3tAc3RyYXRlZ3l9fVxuICAgICAgQG1pZGRsZXdhcmU9e3ttYXliZUFkZEFycm93IEBtaWRkbGV3YXJlIGFycm93RWxlbWVudC5jdXJyZW50fX1cbiAgICAgIEBmbGlwT3B0aW9ucz17e2ZsaXBPcHRpb25zIEBmbGlwT3B0aW9uc319XG4gICAgICBAc2hpZnRPcHRpb25zPXt7QHNoaWZ0T3B0aW9uc319XG4gICAgICBAb2Zmc2V0T3B0aW9ucz17e0BvZmZzZXRPcHRpb25zfX1cbiAgICAgIGFzIHxmdWl8XG4gICAgPlxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIGhvb2s9ZnVpLmhvb2tcbiAgICAgICAgICBzZXRIb29rPWZ1aS5zZXRIb29rXG4gICAgICAgICAgQ29udGVudD0oY29tcG9uZW50IENvbnRlbnQgbG9vcD1mdWkubG9vcCBpbmxpbmU9QGlubGluZSlcbiAgICAgICAgICBkYXRhPWZ1aS5kYXRhXG4gICAgICAgICAgYXJyb3c9KG1vZGlmaWVyIGF0dGFjaEFycm93IGFycm93RWxlbWVudD1hcnJvd0VsZW1lbnQgZGF0YT1mdWkuZGF0YSlcbiAgICAgICAgKVxuICAgICAgfX1cbiAgICA8L0Zsb2F0aW5nVUk-XG4gIHt7L2xldH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgUG9wb3ZlcjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBRXJDLFNBQVMsS0FBSyxRQUFRLG1CQUFtQjtBQUN6QyxTQUFTLE9BQU8sUUFBUSx1QkFBdUI7QUFDL0MsU0FBUyxZQUFZLFNBQVMsUUFBUSxpQkFBaUI7QUFDdkQsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLFNBQVMsVUFBVSxRQUFRLG9CQUFvQjtBQUMvQyxTQUFTLE1BQU0sUUFBUSxlQUFlO0FBQ3RDLFNBQVMsT0FBTyxRQUFRLHVCQUF1QjtBQUUvQyxjQUFjLGFBQWEsNEJBQTRCLFFBQVEsOEJBQThCO0FBQzdGLGNBQWMsYUFBYSxhQUFhLFFBQVEsNkJBQTZCO0FBQzdFLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGNBQWMsRUFBRSxVQUFVLEVBQUUsY0FBYyxRQUFRLG1CQUFtQjtBQUNuRixjQUFjLFlBQVksRUFBRSxhQUFhLFFBQVEsa0JBQWtCO0FBRW5FLGlCQUFpQjtJQUNmO1FBQ0U7Ozs7S0FJQyxHQUNELGNBQWMsY0FBYyxRQUFRLFNBQVM7UUFDN0M7Ozs7S0FJQyxHQUNELGFBQWEsY0FBYyxRQUFRLFNBQVM7UUFDNUM7Ozs7S0FJQyxHQUNELGdCQUFnQixjQUFjLFFBQVEsU0FBUztRQUMvQzs7Ozs7Ozs7Ozs7O0tBWUMsR0FDRCxhQUFhLEVBQUUsUUFBUSxXQUFXLFNBQVMsUUFBUSxFQUFFLEtBQUssV0FBVyxPQUFPO1FBQzVFOzs7O0tBSUMsR0FDRCxlQUFlLGNBQWMsUUFBUSxTQUFTO1FBQzlDOzs7Ozs7S0FNQyxHQUNELFdBQVcsY0FBYyxRQUFRLFNBQVM7UUFFMUM7Ozs7OztLQU1DLEdBQ0QsU0FBUyxPQUFPOztJQUVsQjtRQUNFO2dCQUVJLE1BQU0sNkJBQTZCLFVBQVUsV0FBVyxHQUFHO2dCQUMzRCxTQUFTLDZCQUE2QixVQUFVLFdBQVcsR0FBRztnQkFDOUQs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"],"names":["getElementTag","tagName1","Content","precompileTemplate","scope","element","Portal","TARGETS","strictMode","templateOnly","arrowSides","top","right","bottom","left","attachArrow","eModifier","element1","_1","named1","arrowElement","current","data","middlewareData","arrow","arrow1","placement","placement1","x","arrowX1","y","arrowY1","otherSide1","split","staticSide1","Object","assign","style","Promise","resolve","set","ArrowElement","cell","maybeAddArrow","middleware1","result1","push","flipOptions","options1","elementContext","Popover","setComponentTemplate","FloatingUI","hash"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"popover.js","sources":["../../src/components/popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { hash } from '@ember/helper';\nimport { arrow } from '@floating-ui/dom';\nimport { element } from 'ember-element-helper';\nimport { modifier as eModifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport { FloatingUI } from '../floating-ui.ts';\nimport { Portal } from './portal.gts';\nimport { TARGETS } from './portal-targets.gts';\nimport type { Signature as FloatingUiComponentSignature } from '../floating-ui/component.ts';\nimport type { Signature as HookSignature } from '../floating-ui/modifier.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { ElementContext, Middleware } from '@floating-ui/dom';\nimport type { ModifierLike, WithBoundArgs } from '@glint/template';\nexport interface Signature {\n Args: {\n /**\n * See the Floating UI's [flip docs](https://floating-ui.com/docs/flip) for possible values.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ flipOptions?: HookSignature['Args']['Named']['flipOptions'];\n /**\n * Array of one or more objects to add to Floating UI's list of [middleware](https://floating-ui.com/docs/middleware)\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ middleware?: HookSignature['Args']['Named']['middleware'];\n /**\n * See the Floating UI's [offset docs](https://floating-ui.com/docs/offset) for possible values.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ offsetOptions?: HookSignature['Args']['Named']['offsetOptions'];\n /**\n * One of the possible [`placements`](https://floating-ui.com/docs/computeposition#placement). The default is 'bottom'.\n *\n * Possible values are\n * - top\n * - bottom\n * - right\n * - left\n *\n * And may optionally have `-start` or `-end` added to adjust position along the side.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ placement?: `${'top' | 'bottom' | 'left' | 'right'}${'' | '-start' | '-end'}`;\n /**\n * See the Floating UI's [shift docs](https://floating-ui.com/docs/shift) for possible values.\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ shiftOptions?: HookSignature['Args']['Named']['shiftOptions'];\n /**\n * CSS position property, either `fixed` or `absolute`.\n *\n * Pros and cons of each strategy are explained on [Floating UI's Docs](https://floating-ui.com/docs/computePosition#strategy)\n *\n * This argument is forwarded to `ember-velcro`'s `<Velcro>` component.\n */ strategy?: HookSignature['Args']['Named']['strategy'];\n /**\n * By default, the popover is portaled.\n * If you don't control your CSS, and the positioning of the popover content\n * is misbehaving, you may pass \"@inline={{true}}\" to opt out of portalling.\n *\n * Inline may also be useful in nested menus, where you know exactly how the nesting occurs\n */ inline?: boolean;\n };\n Blocks: {\n default: [{\n hook: FloatingUiComponentSignature['Blocks']['default'][0]['hook'];\n setHook: FloatingUiComponentSignature['Blocks']['default'][0]['setHook'];\n Content: WithBoundArgs<typeof Content, 'loop'>;\n data: FloatingUiComponentSignature['Blocks']['default'][0]['data'];\n arrow: WithBoundArgs<ModifierLike<AttachArrowSignature>, 'arrowElement' | 'data'>;\n }];\n };\n}\nfunction getElementTag(tagName1: undefined | string) {\n return tagName1 || 'div';\n}\n/**\n * Allows lazy evaluation of the portal target (do nothing until rendered)\n * This is useful because the algorithm for finding the portal target isn't cheap.\n */ const Content: TOC<{\n Element: HTMLDivElement;\n Args: {\n loop: ModifierLike<{\n Element: HTMLElement;\n }>;\n inline?: boolean;\n /**\n * By default the popover content is wrapped in a div.\n * You may change this by supplying the name of an element here.\n *\n * For example:\n * ```gjs\n * <Popover as |p|>\n * <p.Content @as=\"dialog\">\n * this is now focus trapped\n * </p.Content>\n * </Popover>\n * ```\n */ as?: string;\n };\n Blocks: {\n default: [];\n };\n}> = template(`\n {{#let (element (getElementTag @as)) as |El|}}\n {{#if @inline}}\n {{! @glint-ignore\n https://github.com/tildeio/ember-element-helper/issues/91\n https://github.com/typed-ember/glint/issues/610\n }}\n <El {{@loop}} ...attributes>\n {{yield}}\n </El>\n {{else}}\n <Portal @to={{TARGETS.popover}}>\n {{! @glint-ignore\n https://github.com/tildeio/ember-element-helper/issues/91\n https://github.com/typed-ember/glint/issues/610\n }}\n <El {{@loop}} ...attributes>\n {{yield}}\n </El>\n </Portal>\n {{/if}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\ninterface AttachArrowSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n arrowElement: ReturnType<typeof ArrowElement>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: any;\n };\n };\n}\nconst arrowSides = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\ntype Direction = 'top' | 'bottom' | 'left' | 'right';\ntype Placement = `${Direction}${'' | '-start' | '-end'}`;\nconst attachArrow = eModifier<AttachArrowSignature>((element1, _1: [], named1)=>{\n if (element1 === named1.arrowElement.current) {\n if (!named1.data) return;\n if (!named1.data.middlewareData) return;\n let { arrow: arrow1 } = named1.data.middlewareData;\n let { placement: placement1 } = named1.data;\n if (!arrow1) return;\n if (!placement1) return;\n let { x: arrowX1, y: arrowY1 } = arrow1;\n let otherSide1 = (placement1 as Placement).split('-')[0] as Direction;\n let staticSide1 = arrowSides[otherSide1];\n Object.assign(named1.arrowElement.current.style, {\n left: arrowX1 != null ? `${arrowX1}px` : '',\n top: arrowY1 != null ? `${arrowY1}px` : '',\n right: '',\n bottom: '',\n [staticSide1]: '-4px'\n });\n return;\n }\n (async ()=>{\n await Promise.resolve();\n named1.arrowElement.set(element1);\n })();\n});\nconst ArrowElement: () => ReturnType<typeof cell> = ()=>cell<HTMLElement>();\nfunction maybeAddArrow(middleware1: Middleware[] | undefined, element1: Element | undefined) {\n let result1 = [\n ...(middleware1 || [])\n ];\n if (element1) {\n result1.push(arrow({\n element: element1\n }));\n }\n return result1;\n}\nfunction flipOptions(options1: HookSignature['Args']['Named']['flipOptions']) {\n return {\n elementContext: 'reference' as ElementContext,\n ...options1\n };\n}\nexport const Popover: TOC<Signature> = template(`\n {{#let (ArrowElement) as |arrowElement|}}\n <FloatingUI\n @placement={{@placement}}\n @strategy={{@strategy}}\n @middleware={{maybeAddArrow @middleware arrowElement.current}}\n @flipOptions={{flipOptions @flipOptions}}\n @shiftOptions={{@shiftOptions}}\n @offsetOptions={{@offsetOptions}}\n as |fui|\n >\n {{yield\n (hash\n hook=fui.hook\n setHook=fui.setHook\n Content=(component Content loop=fui.loop inline=@inline)\n data=fui.data\n arrow=(modifier attachArrow arrowElement=arrowElement data=fui.data)\n )\n }}\n </FloatingUI>\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Popover;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9wb3BvdmVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbmltcG9ydCB7IGFycm93IH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBlbGVtZW50IH0gZnJvbSAnZW1iZXItZWxlbWVudC1oZWxwZXInO1xuaW1wb3J0IHsgbW9kaWZpZXIgYXMgZU1vZGlmaWVyIH0gZnJvbSAnZW1iZXItbW9kaWZpZXInO1xuaW1wb3J0IHsgY2VsbCB9IGZyb20gJ2VtYmVyLXJlc291cmNlcyc7XG5cbmltcG9ydCB7IEZsb2F0aW5nVUkgfSBmcm9tICcuLi9mbG9hdGluZy11aS50cyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICcuL3BvcnRhbC5ndHMnO1xuaW1wb3J0IHsgVEFSR0VUUyB9IGZyb20gJy4vcG9ydGFsLXRhcmdldHMuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBTaWduYXR1cmUgYXMgRmxvYXRpbmdVaUNvbXBvbmVudFNpZ25hdHVyZSB9IGZyb20gJy4uL2Zsb2F0aW5nLXVpL2NvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNpZ25hdHVyZSBhcyBIb29rU2lnbmF0dXJlIH0gZnJvbSAnLi4vZmxvYXRpbmctdWkvbW9kaWZpZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBFbGVtZW50Q29udGV4dCwgTWlkZGxld2FyZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHR5cGUgeyBNb2RpZmllckxpa2UsIFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBTZWUgdGhlIEZsb2F0aW5nIFVJJ3MgW2ZsaXAgZG9jc10oaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwKSBmb3IgcG9zc2libGUgdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBmbGlwT3B0aW9ucz86IEhvb2tTaWduYXR1cmVbJ0FyZ3MnXVsnTmFtZWQnXVsnZmxpcE9wdGlvbnMnXTtcbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiBvbmUgb3IgbW9yZSBvYmplY3RzIHRvIGFkZCB0byBGbG9hdGluZyBVSSdzIGxpc3Qgb2YgW21pZGRsZXdhcmVdKGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvbWlkZGxld2FyZSlcbiAgICAgKlxuICAgICAqIFRoaXMgYXJndW1lbnQgaXMgZm9yd2FyZGVkIHRvIGBlbWJlci12ZWxjcm9gJ3MgYDxWZWxjcm8-YCBjb21wb25lbnQuXG4gICAgICovXG4gICAgbWlkZGxld2FyZT86IEhvb2tTaWduYXR1cmVbJ0FyZ3MnXVsnTmFtZWQnXVsnbWlkZGxld2FyZSddO1xuICAgIC8qKlxuICAgICAqIFNlZSB0aGUgRmxvYXRpbmcgVUkncyBbb2Zmc2V0IGRvY3NdKGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0KSBmb3IgcG9zc2libGUgdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBvZmZzZXRPcHRpb25zPzogSG9va1NpZ25hdHVyZVsnQXJncyddWydOYW1lZCddWydvZmZzZXRPcHRpb25zJ107XG4gICAgLyoqXG4gICAgICogT25lIG9mIHRoZSBwb3NzaWJsZSBbYHBsYWNlbWVudHNgXShodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2NvbXB1dGVwb3NpdGlvbiNwbGFjZW1lbnQpLiBUaGUgZGVmYXVsdCBpcyAnYm90dG9tJy5cbiAgICAgKlxuICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmVcbiAgICAgKiAtIHRvcFxuICAgICAqIC0gYm90dG9tXG4gICAgICogLSByaWdodFxuICAgICAqIC0gbGVmdFxuICAgICAqXG4gICAgICogQW5kIG1heSBvcHRpb25hbGx5IGhhdmUgYC1zdGFydGAgb3IgYC1lbmRgIGFkZGVkIHRvIGFkanVzdCBwb3NpdGlvbiBhbG9uZyB0aGUgc2lkZS5cbiAgICAgKlxuICAgICAqIFRoaXMgYXJndW1lbnQgaXMgZm9yd2FyZGVkIHRvIGBlbWJlci12ZWxjcm9gJ3MgYDxWZWxjcm8-YCBjb21wb25lbnQuXG4gICAgICovXG4gICAgcGxhY2VtZW50PzogYCR7J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCd9JHsnJyB8ICctc3RhcnQnIHwgJy1lbmQnfWA7XG4gICAgLyoqXG4gICAgICogU2VlIHRoZSBGbG9hdGluZyBVSSdzIFtzaGlmdCBkb2NzXShodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0KSBmb3IgcG9zc2libGUgdmFsdWVzLlxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBzaGlmdE9wdGlvbnM_OiBIb29rU2lnbmF0dXJlWydBcmdzJ11bJ05hbWVkJ11bJ3NoaWZ0T3B0aW9ucyddO1xuICAgIC8qKlxuICAgICAqIENTUyBwb3NpdGlvbiBwcm9wZXJ0eSwgZWl0aGVyIGBmaXhlZGAgb3IgYGFic29sdXRlYC5cbiAgICAgKlxuICAgICAqIFByb3MgYW5kIGNvbnMgb2YgZWFjaCBzdHJhdGVneSBhcmUgZXhwbGFpbmVkIG9uIFtGbG9hdGluZyBVSSdzIERvY3NdKGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvY29tcHV0ZVBvc2l0aW9uI3N0cmF0ZWd5KVxuICAgICAqXG4gICAgICogVGhpcyBhcmd1bWVudCBpcyBmb3J3YXJkZWQgdG8gYGVtYmVyLXZlbGNyb2AncyBgPFZlbGNybz5gIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBzdHJhdGVneT86IEhvb2tTaWduYXR1cmVbJ0FyZ3MnXVsnTmFtZWQnXVsnc3RyYXRlZ3knXTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBwb3BvdmVyIGlzIHBvcnRhbGVkLlxuICAgICAqIElmIHlvdSBkb24ndCBjb250cm9sIHlvdXIgQ1NTLCBhbmQgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBwb3BvdmVyIGNvbnRlbnRcbiAgICAgKiBpcyBtaXNiZWhhdmluZywgeW91IG1heSBwYXNzIFwiQGlubGluZT17e3RydWV9fVwiIHRvIG9wdCBvdXQgb2YgcG9ydGFsbGluZy5cbiAgICAgKlxuICAgICAqIElubGluZSBtYXkgYWxzbyBiZSB1c2VmdWwgaW4gbmVzdGVkIG1lbnVzLCB3aGVyZSB5b3Uga25vdyBleGFjdGx5IGhvdyB0aGUgbmVzdGluZyBvY2N1cnNcbiAgICAgKi9cbiAgICBpbmxpbmU_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIGhvb2s6IEZsb2F0aW5nVWlDb21wb25lbnRTaWduYXR1cmVbJ0Jsb2NrcyddWydkZWZhdWx0J11bMF1bJ2hvb2snXTtcbiAgICAgICAgc2V0SG9vazogRmxvYXRpbmdVaUNvbXBvbmVudFNpZ25hdHVyZVsnQmxvY2tzJ11bJ2RlZmF1bHQnXVswXVsnc2V0SG9vayddO1xuICAgICAgICBDb250ZW50OiBXaXRoQm91bmRBcmdzPHR5cGVvZiBDb250ZW50LCAnbG9vcCc-O1xuICAgICAgICBkYXRhOiBGbG9hdGluZ1VpQ29tcG9uZW50U2lnbmF0dXJlWydCbG9ja3MnXVsnZGVmYXVsdCddWzBdWydkYXRhJ107XG4gICAgICAgIGFycm93OiBXaXRoQm91bmRBcmdzPE1vZGlmaWVyTGlrZTxBdHRhY2hBcnJvd1NpZ25hdHVyZT4sICdhcnJvd0VsZW1lbnQnIHwgJ2RhdGEnPjtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RWxlbWVudFRhZyh0YWdOYW1lOiB1bmRlZmluZWQgfCBzdHJpbmcpIHtcbiAgcmV0dXJuIHRhZ05hbWUgfHwgJ2Rpdic7XG59XG5cbi8qKlxuICogQWxsb3dzIGxhenkgZXZhbHVhdGlvbiBvZiB0aGUgcG9ydGFsIHRhcmdldCAoZG8gbm90aGluZyB1bnRpbCByZW5kZXJlZClcbiAqIFRoaXMgaXMgdXNlZnVsIGJlY2F1c2UgdGhlIGFsZ29yaXRobSBmb3IgZmluZGluZyB0aGUgcG9ydGFsIHRhcmdldCBpc24ndCBjaGVhcC5cbiAqL1xuY29uc3QgQ29udGVudDogVE9DPHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICBsb29wOiBNb2RpZmllckxpa2U8eyBFbGVtZW50OiBIVE1MRWxlbWVudCB9PjtcbiAgICBpbmxpbmU_OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIHBvcG92ZXIgY29udGVudCBpcyB3cmFwcGVkIGluIGEgZGl2LlxuICAgICAqIFlvdSBtYXkgY2hhbmdlIHRoaXMgYnkgc3VwcGx5aW5nIHRoZSBuYW1lIG9mIGFuIGVsZW1lbnQgaGVyZS5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqIGBgYGdqc1xuICAgICAqIDxQb3BvdmVyIGFzIHxwfD5cbiAgICAgKiAgPHAuQ29udGVudCBAYXM9XCJkaWFsb2dcIj5cbiAgICAgKiAgICB0aGlzIGlzIG5vdyBmb2N1cyB0cmFwcGVkXG4gICAgICogIDwvcC5Db250ZW50PlxuICAgICAqIDwvUG9wb3Zlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBhcz86IHN0cmluZztcbiAgfTtcbiAgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH07XG59PiA9IDx0ZW1wbGF0ZT5cbiAge3sjbGV0IChlbGVtZW50IChnZXRFbGVtZW50VGFnIEBhcykpIGFzIHxFbHx9fVxuICAgIHt7I2lmIEBpbmxpbmV9fVxuICAgICAge3shIEBnbGludC1pZ25vcmVcbiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90aWxkZWlvL2VtYmVyLWVsZW1lbnQtaGVscGVyL2lzc3Vlcy85MVxuICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3R5cGVkLWVtYmVyL2dsaW50L2lzc3Vlcy82MTBcbiAgICAgIH19XG4gICAgICA8RWwge3tAbG9vcH19IC4uLmF0dHJpYnV0ZXM-XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9FbD5cbiAgICB7e2Vsc2V9fVxuICAgICAgPFBvcnRhbCBAdG89e3tUQVJHRVRTLnBvcG92ZXJ9fT5cbiAgICAgICAge3shIEBnbGludC1pZ25vcmVcbiAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3RpbGRlaW8vZW1iZXItZWxlbWVudC1oZWxwZXIvaXNzdWVzLzkxXG4gICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlZC1lbWJlci9nbGludC9pc3N1ZXMvNjEwXG4gICAgICAgIH19XG4gICAgICAgIDxFbCB7e0Bsb29wfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgICAgICB7e3lpZWxkfX1cbiAgICAgICAgPC9FbD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIHt7L2lmfX1cbiAge3svbGV0fX1cbjwvdGVtcGxhdGU-O1xuXG5pbnRlcmZhY2UgQXR0YWNoQXJyb3dTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgQXJnczoge1xuICAgIE5hbWVkOiB7XG4gICAgICBhcnJvd0VsZW1lbnQ6IFJldHVyblR5cGU8dHlwZW9mIEFycm93RWxlbWVudD47XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgZGF0YT86IGFueTtcbiAgICB9O1xuICB9O1xufVxuXG5jb25zdCBhcnJvd1NpZGVzID0ge1xuICB0b3A6ICdib3R0b20nLFxuICByaWdodDogJ2xlZnQnLFxuICBib3R0b206ICd0b3AnLFxuICBsZWZ0OiAncmlnaHQnLFxufTtcblxudHlwZSBEaXJlY3Rpb24gPSAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcbnR5cGUgUGxhY2VtZW50ID0gYCR7RGlyZWN0aW9ufSR7JycgfCAnLXN0YXJ0JyB8ICctZW5kJ31gO1xuXG5jb25zdCBhdHRhY2hBcnJvdyA9IGVNb2RpZmllcjxBdHRhY2hBcnJvd1NpZ25hdHVyZT4oKGVsZW1lbnQsIF86IFtdLCBuYW1lZCkgPT4ge1xuICBpZiAoZWxlbWVudCA9PT0gbmFtZWQuYXJyb3dFbGVtZW50LmN1cnJlbnQpIHtcbiAgICBpZiAoIW5hbWVkLmRhdGEpIHJldHVybjtcbiAgICBpZiAoIW5hbWVkLmRhdGEubWlkZGxld2FyZURhdGEpIHJldHVybjtcblxuICAgIGxldCB7IGFycm93IH0gPSBuYW1lZC5kYXRhLm1pZGRsZXdhcmVEYXRhO1xuICAgIGxldCB7IHBsYWNlbWVudCB9ID0gbmFtZWQuZGF0YTtcblxuICAgIGlmICghYXJyb3cpIHJldHVybjtcbiAgICBpZiAoIXBsYWNlbWVudCkgcmV0dXJuO1xuXG4gICAgbGV0IHsgeDogYXJyb3dYLCB5OiBhcnJvd1kgfSA9IGFycm93O1xuICAgIGxldCBvdGhlclNpZGUgPSAocGxhY2VtZW50IGFzIFBsYWNlbWVudCkuc3BsaXQoJy0nKVswXSBhcyBEaXJlY3Rpb247XG4gICAgbGV0IHN0YXRpY1NpZGUgPSBhcnJvd1NpZGVzW290aGVyU2lkZV07XG5cbiAgICBPYmplY3QuYXNzaWduKG5hbWVkLmFycm93RWxlbWVudC5jdXJyZW50LnN0eWxlLCB7XG4gICAgICBsZWZ0OiBhcnJvd1ggIT0gbnVsbCA_IGAke2Fycm93WH1weGAgOiAnJyxcbiAgICAgIHRvcDogYXJyb3dZICE9IG51bGwgPyBgJHthcnJvd1l9cHhgIDogJycsXG4gICAgICByaWdodDogJycsXG4gICAgICBib3R0b206ICcnLFxuICAgICAgW3N0YXRpY1NpZGVdOiAnLTRweCcsXG4gICAgfSk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIG5hbWVkLmFycm93RWxlbWVudC5zZXQoZWxlbWVudCk7XG4gIH0pKCk7XG59KTtcblxuY29uc3QgQXJyb3dFbGVtZW50OiAoKSA9PiBSZXR1cm5UeXBlPHR5cGVvZiBjZWxsPEhUTUxFbGVtZW50Pj4gPSAoKSA9PiBjZWxsPEhUTUxFbGVtZW50PigpO1xuXG5mdW5jdGlvbiBtYXliZUFkZEFycm93KG1pZGRsZXdhcmU6IE1pZGRsZXdhcmVbXSB8IHVuZGVmaW5lZCwgZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCkge1xuICBsZXQgcmVzdWx0ID0gWy4uLihtaWRkbGV3YXJlIHx8IFtdKV07XG5cbiAgaWYgKGVsZW1lbnQpIHtcbiAgICByZXN1bHQucHVzaChhcnJvdyh7IGVsZW1lbnQgfSkpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZmxpcE9wdGlvbnMob3B0aW9uczogSG9va1NpZ25hdHVyZVsnQXJncyddWydOYW1lZCddWydmbGlwT3B0aW9ucyddKSB7XG4gIHJldHVybiB7XG4gICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnIGFzIEVsZW1lbnRDb250ZXh0LFxuICAgIC4uLm9wdGlvbnMsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBQb3BvdmVyOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjbGV0IChBcnJvd0VsZW1lbnQpIGFzIHxhcnJvd0VsZW1lbnR8fX1cbiAgICA8RmxvYXRpbmdVSVxuICAgICAgQHBsYWNlbWVudD17e0BwbGFjZW1lbnR9fVxuICAgICAgQHN0cmF0ZWd5PXt7QHN0cmF0ZWd5fX1cbiAgICAgIEBtaWRkbGV3YXJlPXt7bWF5YmVBZGRBcnJvdyBAbWlkZGxld2FyZSBhcnJvd0VsZW1lbnQuY3VycmVudH19XG4gICAgICBAZmxpcE9wdGlvbnM9e3tmbGlwT3B0aW9ucyBAZmxpcE9wdGlvbnN9fVxuICAgICAgQHNoaWZ0T3B0aW9ucz17e0BzaGlmdE9wdGlvbnN9fVxuICAgICAgQG9mZnNldE9wdGlvbnM9e3tAb2Zmc2V0T3B0aW9uc319XG4gICAgICBhcyB8ZnVpfFxuICAgID5cbiAgICAgIHt7eWllbGRcbiAgICAgICAgKGhhc2hcbiAgICAgICAgICBob29rPWZ1aS5ob29rXG4gICAgICAgICAgc2V0SG9vaz1mdWkuc2V0SG9va1xuICAgICAgICAgIENvbnRlbnQ9KGNvbXBvbmVudCBDb250ZW50IGxvb3A9ZnVpLmxvb3AgaW5saW5lPUBpbmxpbmUpXG4gICAgICAgICAgZGF0YT1mdWkuZGF0YVxuICAgICAgICAgIGFycm93PShtb2RpZmllciBhdHRhY2hBcnJvdyBhcnJvd0VsZW1lbnQ9YXJyb3dFbGVtZW50IGRhdGE9ZnVpLmRhdGEpXG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9GbG9hdGluZ1VJPlxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFBvcG92ZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVMsSUFBSSxRQUFRLGdCQUFnQjtBQUVyQyxTQUFTLEtBQUssUUFBUSxtQkFBbUI7QUFDekMsU0FBUyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVMsWUFBWSxTQUFTLFFBQVEsaUJBQWlCO0FBQ3ZELFNBQVMsSUFBSSxRQUFRLGtCQUFrQjtBQUV2QyxTQUFTLFVBQVUsUUFBUSxvQkFBb0I7QUFDL0MsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLE9BQU8sUUFBUSx1QkFBdUI7QUFFL0MsY0FBYyxhQUFhLDRCQUE0QixRQUFRLDhCQUE4QjtB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"],"names":["getElementTag","tagName1","Content","precompileTemplate","strictMode","scope","element","Portal","TARGETS","templateOnly","arrowSides","top","right","bottom","left","attachArrow","eModifier","element1","_1","named1","arrowElement","current","data","middlewareData","arrow","arrow1","placement","placement1","x","arrowX1","y","arrowY1","otherSide1","split","staticSide1","Object","assign","style","Promise","resolve","set","ArrowElement","cell","maybeAddArrow","middleware1","result1","push","flipOptions","options1","elementContext","Popover","setComponentTemplate","FloatingUI","hash"],"mappings":"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"}
|
|
@@ -27,10 +27,10 @@ function findNearestTarget(origin1, name1) {
|
|
|
27
27
|
return element1;
|
|
28
28
|
}
|
|
29
29
|
const PortalTargets = setComponentTemplate(precompileTemplate("\n <div data-portal-name={{TARGETS.popover}}></div>\n <div data-portal-name={{TARGETS.tooltip}}></div>\n <div data-portal-name={{TARGETS.modal}}></div>\n", {
|
|
30
|
+
strictMode: true,
|
|
30
31
|
scope: () => ({
|
|
31
32
|
TARGETS
|
|
32
|
-
})
|
|
33
|
-
strictMode: true
|
|
33
|
+
})
|
|
34
34
|
}), templateOnly());
|
|
35
35
|
|
|
36
36
|
export { PortalTargets, TARGETS, PortalTargets as default, findNearestTarget };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-targets.js","sources":["../../src/components/portal-targets.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { isDevelopingApp, macroCondition } from '@embroider/macros';\nimport type { TOC } from '@ember/component/template-only';\nexport const TARGETS = Object.freeze({\n popover: 'ember-primitives__portal-targets__popover',\n tooltip: 'ember-primitives__portal-targets__tooltip',\n modal: 'ember-primitives__portal-targets__modal'\n});\nexport function findNearestTarget(origin1: Element, name1: string) {\n assert(`first argument to \\`findNearestTarget\\` must be an element`, origin1 instanceof Element);\n assert(`second argument to \\`findNearestTarget\\` must be a string`, typeof name1 === `string`);\n let element1: Element | null = null;\n let parent1 = origin1.parentNode;\n while(!element1 && parent1){\n element1 = parent1.querySelector(`[data-portal-name=${name1}]`);\n if (element1) break;\n parent1 = parent1.parentNode;\n }\n if (macroCondition(isDevelopingApp())) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).prime0 = origin1;\n }\n assert(`Could not find element by the given name: \\`${name1}\\`.` + ` The known names are ` + `${Object.values(TARGETS).join(', ')} ` + `-- but any name will work as long as it is set to the \\`data-portal-name\\` attribute. ` + `Double check that the element you're wanting to portal to is rendered. ` + `The element passed to \\`findNearestTarget\\` is stored on \\`window.prime0\\` ` + `You can debug in your browser's console via ` + `\\`document.querySelector('[data-portal-name=\"${name1}\"]')\\``, element1);\n return element1;\n}\nexport interface Signature {\n Args: {\n };\n Blocks: {\n };\n}\nexport const PortalTargets: TOC<Signature> = template(`\n <div data-portal-name={{TARGETS.popover}}></div>\n <div data-portal-name={{TARGETS.tooltip}}></div>\n <div data-portal-name={{TARGETS.modal}}></div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default PortalTargets;\n//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
{"version":3,"file":"portal-targets.js","sources":["../../src/components/portal-targets.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { isDevelopingApp, macroCondition } from '@embroider/macros';\nimport type { TOC } from '@ember/component/template-only';\nexport const TARGETS = Object.freeze({\n popover: 'ember-primitives__portal-targets__popover',\n tooltip: 'ember-primitives__portal-targets__tooltip',\n modal: 'ember-primitives__portal-targets__modal'\n});\nexport function findNearestTarget(origin1: Element, name1: string) {\n assert(`first argument to \\`findNearestTarget\\` must be an element`, origin1 instanceof Element);\n assert(`second argument to \\`findNearestTarget\\` must be a string`, typeof name1 === `string`);\n let element1: Element | null = null;\n let parent1 = origin1.parentNode;\n while(!element1 && parent1){\n element1 = parent1.querySelector(`[data-portal-name=${name1}]`);\n if (element1) break;\n parent1 = parent1.parentNode;\n }\n if (macroCondition(isDevelopingApp())) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).prime0 = origin1;\n }\n assert(`Could not find element by the given name: \\`${name1}\\`.` + ` The known names are ` + `${Object.values(TARGETS).join(', ')} ` + `-- but any name will work as long as it is set to the \\`data-portal-name\\` attribute. ` + `Double check that the element you're wanting to portal to is rendered. ` + `The element passed to \\`findNearestTarget\\` is stored on \\`window.prime0\\` ` + `You can debug in your browser's console via ` + `\\`document.querySelector('[data-portal-name=\"${name1}\"]')\\``, element1);\n return element1;\n}\nexport interface Signature {\n Args: {\n };\n Blocks: {\n };\n}\nexport const PortalTargets: TOC<Signature> = template(`\n <div data-portal-name={{TARGETS.popover}}></div>\n <div data-portal-name={{TARGETS.tooltip}}></div>\n <div data-portal-name={{TARGETS.modal}}></div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default PortalTargets;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9wb3J0YWwtdGFyZ2V0cy5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGlzRGV2ZWxvcGluZ0FwcCwgbWFjcm9Db25kaXRpb24gfSBmcm9tICdAZW1icm9pZGVyL21hY3Jvcyc7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuZXhwb3J0IGNvbnN0IFRBUkdFVFMgPSBPYmplY3QuZnJlZXplKHtcbiAgcG9wb3ZlcjogJ2VtYmVyLXByaW1pdGl2ZXNfX3BvcnRhbC10YXJnZXRzX19wb3BvdmVyJyxcbiAgdG9vbHRpcDogJ2VtYmVyLXByaW1pdGl2ZXNfX3BvcnRhbC10YXJnZXRzX190b29sdGlwJyxcbiAgbW9kYWw6ICdlbWJlci1wcmltaXRpdmVzX19wb3J0YWwtdGFyZ2V0c19fbW9kYWwnLFxufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTmVhcmVzdFRhcmdldChvcmlnaW46IEVsZW1lbnQsIG5hbWU6IHN0cmluZykge1xuICBhc3NlcnQoYGZpcnN0IGFyZ3VtZW50IHRvIFxcYGZpbmROZWFyZXN0VGFyZ2V0XFxgIG11c3QgYmUgYW4gZWxlbWVudGAsIG9yaWdpbiBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICBhc3NlcnQoYHNlY29uZCBhcmd1bWVudCB0byBcXGBmaW5kTmVhcmVzdFRhcmdldFxcYCBtdXN0IGJlIGEgc3RyaW5nYCwgdHlwZW9mIG5hbWUgPT09IGBzdHJpbmdgKTtcblxuICBsZXQgZWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGxldCBwYXJlbnQgPSBvcmlnaW4ucGFyZW50Tm9kZTtcblxuICB3aGlsZSAoIWVsZW1lbnQgJiYgcGFyZW50KSB7XG4gICAgZWxlbWVudCA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1wb3J0YWwtbmFtZT0ke25hbWV9XWApO1xuICAgIGlmIChlbGVtZW50KSBicmVhaztcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGlmIChtYWNyb0NvbmRpdGlvbihpc0RldmVsb3BpbmdBcHAoKSkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICh3aW5kb3cgYXMgYW55KS5wcmltZTAgPSBvcmlnaW47XG4gIH1cblxuICBhc3NlcnQoXG4gICAgYENvdWxkIG5vdCBmaW5kIGVsZW1lbnQgYnkgdGhlIGdpdmVuIG5hbWU6IFxcYCR7bmFtZX1cXGAuYCArXG4gICAgICBgIFRoZSBrbm93biBuYW1lcyBhcmUgYCArXG4gICAgICBgJHtPYmplY3QudmFsdWVzKFRBUkdFVFMpLmpvaW4oJywgJyl9IGAgK1xuICAgICAgYC0tIGJ1dCBhbnkgbmFtZSB3aWxsIHdvcmsgYXMgbG9uZyBhcyBpdCBpcyBzZXQgdG8gdGhlIFxcYGRhdGEtcG9ydGFsLW5hbWVcXGAgYXR0cmlidXRlLiBgICtcbiAgICAgIGBEb3VibGUgY2hlY2sgdGhhdCB0aGUgZWxlbWVudCB5b3UncmUgd2FudGluZyB0byBwb3J0YWwgdG8gaXMgcmVuZGVyZWQuIGAgK1xuICAgICAgYFRoZSBlbGVtZW50IHBhc3NlZCB0byBcXGBmaW5kTmVhcmVzdFRhcmdldFxcYCBpcyBzdG9yZWQgb24gXFxgd2luZG93LnByaW1lMFxcYCBgICtcbiAgICAgIGBZb3UgY2FuIGRlYnVnIGluIHlvdXIgYnJvd3NlcidzIGNvbnNvbGUgdmlhIGAgK1xuICAgICAgYFxcYGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXBvcnRhbC1uYW1lPVwiJHtuYW1lfVwiXScpXFxgYCxcbiAgICBlbGVtZW50XG4gICk7XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgQXJnczoge307XG4gIEJsb2Nrczoge307XG59XG5cbmV4cG9ydCBjb25zdCBQb3J0YWxUYXJnZXRzOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiBkYXRhLXBvcnRhbC1uYW1lPXt7VEFSR0VUUy5wb3BvdmVyfX0-PC9kaXY-XG4gIDxkaXYgZGF0YS1wb3J0YWwtbmFtZT17e1RBUkdFVFMudG9vbHRpcH19PjwvZGl2PlxuICA8ZGl2IGRhdGEtcG9ydGFsLW5hbWU9e3tUQVJHRVRTLm1vZGFsfX0-PC9kaXY-XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsVGFyZ2V0cztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLGVBQWUsRUFBRSxjQUFjLFFBQVEsb0JBQW9CO0FBRXBFLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUUxRCxPQUFPLE1BQU0sVUFBVSxPQUFPLE1BQU0sQ0FBQztJQUNuQyxTQUFTO0lBQ1QsU0FBUztJQUNULE9BQU87QUFDVCxHQUFHO0FBRUgsT0FBTyxTQUFTLGtCQUFrQixTQUFRLE9BQU8sRUFBRSxPQUFNLE1BQU07SUFDN0QsT0FBTyxDQUFDLDBEQUEwRCxDQUFDLEVBQUUsbUJBQWtCO0lBQ3ZGLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQyxFQUFFLE9BQU8sVUFBUyxDQUFDLE1BQU0sQ0FBQztJQUU1RixJQUFJLFVBQVMsVUFBVSxJQUFJLEdBQUc7SUFFOUIsSUFBSSxVQUFTLFFBQU8sVUFBVTtJQUU5QixNQUFPLENBQUMsWUFBVyxRQUFRO1FBQ3pCLFdBQVUsUUFBTyxhQUFhLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxNQUFLLENBQUMsQ0FBQztRQUMzRCxJQUFJLFVBQVM7UUFDYixVQUFTLFFBQU8sVUFBVTtJQUM1QjtJQUVBLElBQUksZUFBZSxvQkFBb0I7UUFDckMsOERBQThEO1FBQzlELENBQUMsVUFBVSxHQUFHLEVBQUUsTUFBTSxHQUFHO0lBQzNCO0lBRUEsT0FDRSxDQUFDLDRDQUE0QyxFQUFFLE1BQUssR0FBRyxDQUFDLEdBQ3RELENBQUMscUJBQXFCLENBQUMsR0FDdkIsQ0FBQyxFQUFFLE9BQU8sTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQ3ZDLENBQUMsc0ZBQXNGLENBQUMsR0FDeEYsQ0FBQyx1RUFBdUUsQ0FBQyxHQUN6RSxDQUFDLDJFQUEyRSxDQUFDLEdBQzdFLENBQUMsNENBQTRDLENBQUMsR0FDOUMsQ0FBQyw2Q0FBNkMsRUFBRSxNQUFLLE1BQU0sQ0FBQyxFQUM5RDtJQUdGLE9BQU87QUFDVDtBQUVBLGlCQUFpQjtJQUNmOztJQUNBOzs7QUFHRixPQUFPLE1BQU0sZUFBZSxJQUFJLGFBQWEsU0FBVSxDQUFBOzs7O0FBSXZELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQSxHQUFFO0FBRVosZUFBZSxjQUFjIn0"],"names":["TARGETS","Object","freeze","popover","tooltip","modal","findNearestTarget","origin1","name1","assert","Element","element1","parent1","parentNode","querySelector","macroCondition","isDevelopingApp","window","prime0","values","join","PortalTargets","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly"],"mappings":";;;;;;MAKaA,OAAA,GAAUC,MAAA,CAAOC,MAAM,CAAC;AACnCC,EAAAA,OAAA,EAAS,2CAAA;AACTC,EAAAA,OAAA,EAAS,2CAAA;AACTC,EAAAA,KAAA,EAAO,yCAAA;AACT,CAAA,EAAA;AAEO,SAASC,iBAAAA,CAAkBC,OAAe,EAAEC,KAAY,EAAA;AAC7DC,EAAAA,MAAA,CAAQ,CAAA,0DAAA,CAA2D,EAAEF,OAAA,YAAkBG,OAAA,CAAA,CAAA;AACvFD,EAAAA,MAAA,CAAQ,CAA0D,yDAAA,CAAA,EAAE,OAAOD,KAAA,KAAU,CAAO,MAAA,CAAA,CAAA,CAAA;AAE5F,EAAA,IAAIG,QAAuB,GAAG,IAAA,CAAA;AAE9B,EAAA,IAAIC,OAAA,GAASL,OAAA,CAAOM,UAAU,CAAA;AAE9B,EAAA,OAAO,CAACF,QAAA,IAAWC,OAAA,EAAQ;AACzBD,IAAAA,QAAA,GAAUC,OAAA,CAAOE,aAAa,CAAE,CAAA,kBAAA,EAAoBN,KAAK,CAAE,CAAA,CAAA,CAAA,CAAA;AAC3D,IAAA,IAAIG,QAAA,EAAS,MAAA;IACbC,OAAA,GAASA,OAAA,CAAOC,UAAU,CAAA;AAC5B,GAAA;EAEA,IAAIE,cAAA,CAAeC,eAAA,EAAoB,CAAA,EAAA;AACrC;IACCC,MAAA,CAAeC,MAAM,GAAGX,OAAA,CAAA;AAC3B,GAAA;AAEAE,EAAAA,MAAA,CACG,CAAA,4CAAA,EAA8CD,KAAK,CAAA,GAAA,CAAI,GACrD,CAAA,qBAAA,CAAsB,GACtB,CAAA,EAAEP,MAAA,CAAOkB,MAAM,CAACnB,OAAA,CAASoB,CAAAA,IAAI,CAAC,IAAA,CAAM,CAAE,CAAA,CAAA,GACtC,CAAuF,sFAAA,CAAA,GACvF,yEAAwE,GACxE,CAAA,2EAAA,CAA4E,GAC5E,CAAA,4CAAA,CAA6C,GAC7C,CAAA,6CAAA,EAA+CZ,KAAK,CAAA,MAAA,CAAO,EAC9DG,QAAA,CAAA,CAAA;AAGF,EAAA,OAAOA,QAAA,CAAA;AACT,CAAA;MAOaU,aAAmB,GAAAC,oBAAA,CAAaC,kBAAA,CAI7C,8JAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAzB,IAAAA,OAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAA0B,YAAA,EAAA;;;;"}
|
|
@@ -11,11 +11,11 @@ const anchor = modifier((element1, [to1, update1]) => {
|
|
|
11
11
|
});
|
|
12
12
|
const ElementValue = () => cell();
|
|
13
13
|
const Portal = setComponentTemplate(precompileTemplate("\n {{#let (ElementValue) as |target|}}\n {{!-- This div is always going to be empty,\n because it'll either find the portal and render content elsewhere,\n it it won't find the portal and won't render anything.\n --}}\n {{!-- template-lint-disable no-inline-styles --}}\n <div style=\"display:contents;\" {{anchor @to target.set}}>\n {{#if target.current}}\n {{#in-element target.current}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n </div>\n {{/let}}\n", {
|
|
14
|
+
strictMode: true,
|
|
14
15
|
scope: () => ({
|
|
15
16
|
ElementValue,
|
|
16
17
|
anchor
|
|
17
|
-
})
|
|
18
|
-
strictMode: true
|
|
18
|
+
})
|
|
19
19
|
}), templateOnly());
|
|
20
20
|
|
|
21
21
|
export { Portal, Portal as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","sources":["../../src/components/portal.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { modifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport { findNearestTarget, type TARGETS } from './portal-targets.gts';\nimport type { TOC } from '@ember/component/template-only';\nexport interface Signature {\n Args: {\n /**\n * The name of the PortalTarget to render in to.\n * This is the value of the `data-portal-name` attribute\n * of the element you wish to render in to.\n */ to: (typeof TARGETS)[keyof typeof TARGETS] | (string & {\n });\n };\n Blocks: {\n /**\n * The portaled content\n */ default: [];\n };\n}\nconst anchor = modifier((element1: Element, [to1, update1]: [string, ReturnType<typeof ElementValue>['set']])=>{\n let found1 = findNearestTarget(element1, to1);\n update1(found1);\n});\nconst ElementValue = ()=>cell<Element | ShadowRoot>();\nexport const Portal: TOC<Signature> = template(`\n {{#let (ElementValue) as |target|}}\n {{! This div is always going to be empty,\n because it'll either find the portal and render content elsewhere,\n it it won't find the portal and won't render anything.\n }}\n {{! template-lint-disable no-inline-styles }}\n <div style=\"display:contents;\" {{anchor @to target.set}}>\n {{#if target.current}}\n {{#in-element target.current}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n </div>\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Portal;\n//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
{"version":3,"file":"portal.js","sources":["../../src/components/portal.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { modifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport { findNearestTarget, type TARGETS } from './portal-targets.gts';\nimport type { TOC } from '@ember/component/template-only';\nexport interface Signature {\n Args: {\n /**\n * The name of the PortalTarget to render in to.\n * This is the value of the `data-portal-name` attribute\n * of the element you wish to render in to.\n */ to: (typeof TARGETS)[keyof typeof TARGETS] | (string & {\n });\n };\n Blocks: {\n /**\n * The portaled content\n */ default: [];\n };\n}\nconst anchor = modifier((element1: Element, [to1, update1]: [string, ReturnType<typeof ElementValue>['set']])=>{\n let found1 = findNearestTarget(element1, to1);\n update1(found1);\n});\nconst ElementValue = ()=>cell<Element | ShadowRoot>();\nexport const Portal: TOC<Signature> = template(`\n {{#let (ElementValue) as |target|}}\n {{! This div is always going to be empty,\n because it'll either find the portal and render content elsewhere,\n it it won't find the portal and won't render anything.\n }}\n {{! template-lint-disable no-inline-styles }}\n <div style=\"display:contents;\" {{anchor @to target.set}}>\n {{#if target.current}}\n {{#in-element target.current}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n </div>\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Portal;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9wb3J0YWwuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vZGlmaWVyIH0gZnJvbSAnZW1iZXItbW9kaWZpZXInO1xuaW1wb3J0IHsgY2VsbCB9IGZyb20gJ2VtYmVyLXJlc291cmNlcyc7XG5cbmltcG9ydCB7IGZpbmROZWFyZXN0VGFyZ2V0LCB0eXBlIFRBUkdFVFMgfSBmcm9tICcuL3BvcnRhbC10YXJnZXRzLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIFBvcnRhbFRhcmdldCB0byByZW5kZXIgaW4gdG8uXG4gICAgICogVGhpcyBpcyB0aGUgdmFsdWUgb2YgdGhlIGBkYXRhLXBvcnRhbC1uYW1lYCBhdHRyaWJ1dGVcbiAgICAgKiBvZiB0aGUgZWxlbWVudCB5b3Ugd2lzaCB0byByZW5kZXIgaW4gdG8uXG4gICAgICovXG4gICAgdG86ICh0eXBlb2YgVEFSR0VUUylba2V5b2YgdHlwZW9mIFRBUkdFVFNdIHwgKHN0cmluZyAmIHt9KTtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIHBvcnRhbGVkIGNvbnRlbnRcbiAgICAgKi9cbiAgICBkZWZhdWx0OiBbXTtcbiAgfTtcbn1cblxuY29uc3QgYW5jaG9yID0gbW9kaWZpZXIoXG4gIChlbGVtZW50OiBFbGVtZW50LCBbdG8sIHVwZGF0ZV06IFtzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEVsZW1lbnRWYWx1ZT5bJ3NldCddXSkgPT4ge1xuICAgIGxldCBmb3VuZCA9IGZpbmROZWFyZXN0VGFyZ2V0KGVsZW1lbnQsIHRvKTtcblxuICAgIHVwZGF0ZShmb3VuZCk7XG4gIH1cbik7XG5cbmNvbnN0IEVsZW1lbnRWYWx1ZSA9ICgpID0-IGNlbGw8RWxlbWVudCB8IFNoYWRvd1Jvb3Q-KCk7XG5cbmV4cG9ydCBjb25zdCBQb3J0YWw6IFRPQzxTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICB7eyNsZXQgKEVsZW1lbnRWYWx1ZSkgYXMgfHRhcmdldHx9fVxuICAgIHt7ISBUaGlzIGRpdiBpcyBhbHdheXMgZ29pbmcgdG8gYmUgZW1wdHksXG4gICAgICAgICAgYmVjYXVzZSBpdCdsbCBlaXRoZXIgZmluZCB0aGUgcG9ydGFsIGFuZCByZW5kZXIgY29udGVudCBlbHNld2hlcmUsXG4gICAgICAgICAgaXQgaXQgd29uJ3QgZmluZCB0aGUgcG9ydGFsIGFuZCB3b24ndCByZW5kZXIgYW55dGhpbmcuXG4gICAgfX1cbiAgICB7eyEgdGVtcGxhdGUtbGludC1kaXNhYmxlIG5vLWlubGluZS1zdHlsZXMgfX1cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpjb250ZW50cztcIiB7e2FuY2hvciBAdG8gdGFyZ2V0LnNldH19PlxuICAgICAge3sjaWYgdGFyZ2V0LmN1cnJlbnR9fVxuICAgICAgICB7eyNpbi1lbGVtZW50IHRhcmdldC5jdXJyZW50fX1cbiAgICAgICAgICB7e3lpZWxkfX1cbiAgICAgICAge3svaW4tZWxlbWVudH19XG4gICAgICB7ey9pZn19XG4gICAgPC9kaXY-XG4gIHt7L2xldH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLFFBQVEsUUFBUSxpQkFBaUI7QUFDMUMsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLFNBQVMsaUJBQWlCLEVBQUUsS0FBSyxPQUFPLFFBQVEsdUJBQXVCO0FBRXZFLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUUxRCxpQkFBaUI7SUFDZjtRQUNFOzs7O0tBSUMsR0FDRCxZQUFZLHNCQUFzQixZQUFZLE1BQU07OztJQUV0RDtRQUNFOztLQUVDLEdBQ0Q7OztBQUlKLE1BQU0sU0FBUyxTQUNiLENBQUMsVUFBUyxTQUFTLENBQUMsS0FBSSxXQUFVLE1BQU0sRUFBRSxrQkFBa0IsY0FBYyxPQUFPO0lBQy9FLElBQUksU0FBUSxrQkFBa0IsVUFBUztJQUV2QyxRQUFPO0FBQ1Q7QUFHRixNQUFNLGVBQWUsSUFBTSxLQUFLLFVBQVU7QUFFMUMsT0FBTyxNQUFNLFFBQVEsSUFBSSxhQUFhLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O0FBZWhELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQSxHQUFFO0FBRVosZUFBZSxPQUFPIn0"],"names":["anchor","modifier","element1","to1","update1","found1","findNearestTarget","ElementValue","cell","Portal","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly"],"mappings":";;;;;;;AAwBA,MAAMA,MAAA,GAASC,QAAA,CACb,CAACC,QAAS,EAAS,CAACC,GAAA,EAAIC,OAAA,CAAyD,KAAA;AAC/E,EAAA,IAAIC,MAAA,GAAQC,iBAAA,CAAkBJ,QAAA,EAASC,GAAA,CAAA,CAAA;AAEvCC,EAAAA,OAAA,CAAOC,MAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA;AAGF,MAAME,YAAA,GAAeA,MAAMC,IAAA,EAAe,CAAA;MAE7BC,MAAY,GAAAC,oBAAA,CAAaC,kBAAA,CAetC,ygBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAN,YAAA;AAAAP,IAAAA,MAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAc,YAAA,EAAA;;;;"}
|
|
@@ -33,10 +33,10 @@ function getValueLabel(value1, max1) {
|
|
|
33
33
|
return `${Math.round(value1 / max1 * 100)}%`;
|
|
34
34
|
}
|
|
35
35
|
const Indicator = setComponentTemplate(precompileTemplate("\n <div ...attributes data-max={{@max}} data-value={{@value}} data-state={{progressState @value @max}} data-percent={{@percent}}>\n {{yield}}\n </div>\n", {
|
|
36
|
+
strictMode: true,
|
|
36
37
|
scope: () => ({
|
|
37
38
|
progressState
|
|
38
|
-
})
|
|
39
|
-
strictMode: true
|
|
39
|
+
})
|
|
40
40
|
}), templateOnly());
|
|
41
41
|
class Progress extends Component {
|
|
42
42
|
get max() {
|
|
@@ -56,12 +56,12 @@ class Progress extends Component {
|
|
|
56
56
|
}
|
|
57
57
|
static {
|
|
58
58
|
setComponentTemplate(precompileTemplate("\n <div ...attributes aria-valuemax={{this.max}} aria-valuemin=\"0\" aria-valuenow={{this.value}} aria-valuetext={{this.valueLabel}} role=\"progressbar\" data-value={{this.value}} data-state={{progressState this.value this.max}} data-max={{this.max}} data-min=\"0\" data-percent={{this.percent}}>\n\n {{yield (hash Indicator=(component Indicator value=this.value max=this.max percent=this.percent) value=this.value percent=this.percent decimal=this.decimal)}}\n </div>\n ", {
|
|
59
|
+
strictMode: true,
|
|
59
60
|
scope: () => ({
|
|
60
61
|
progressState,
|
|
61
62
|
hash,
|
|
62
63
|
Indicator
|
|
63
|
-
})
|
|
64
|
-
strictMode: true
|
|
64
|
+
})
|
|
65
65
|
}), this);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sources":["../../src/components/progress.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface Signature {\n Element: HTMLDivElement;\n Args: {\n /**\n * The current progress\n * This may be less than 0 or more than `max`,\n * but the resolved value (managed internally, and yielded out)\n * does not exceed the range [0, max]\n */ value: number;\n /**\n * The max value, defaults to 100\n */ max?: number;\n };\n Blocks: {\n default: [{\n /**\n * The indicator element with some state applied.\n * This can be used to style the progress of bar.\n */ Indicator: WithBoundArgs<typeof Indicator, 'value' | 'max' | 'percent'>;\n /**\n * The value as a percent of how far along the indicator should be\n * positioned, between 0 and 100.\n * Will be rounded to two decimal places.\n */ percent: number;\n /**\n * The value as a percent of how far along the indicator should be positioned,\n * between 0 and 1\n */ decimal: number;\n /**\n * The resolved value within the limits of the progress bar.\n */ value: number;\n }];\n };\n}\ntype ProgressState = 'indeterminate' | 'complete' | 'loading';\nconst DEFAULT_MAX = 100;\n/**\n * Non-negative, non-NaN, non-Infinite, positive, rational\n */ function isValidProgressNumber(value1: number | undefined | null): value is number {\n if (typeof value1 !== 'number') return false;\n if (!Number.isFinite(value1)) return false;\n return value1 >= 0;\n}\nfunction progressState(value1: number | undefined | null, maxValue1: number): ProgressState {\n return value1 == null ? 'indeterminate' : value1 === maxValue1 ? 'complete' : 'loading';\n}\nfunction getMax(userMax1: number | undefined | null): number {\n return isValidProgressNumber(userMax1) ? userMax1 : DEFAULT_MAX;\n}\nfunction getValue(userValue1: number | undefined | null, maxValue1: number): number {\n let max1 = getMax(maxValue1);\n if (!isValidProgressNumber(userValue1)) {\n return 0;\n }\n if (userValue1 > max1) {\n return max1;\n }\n return userValue1;\n}\nfunction getValueLabel(value1: number, max1: number) {\n return `${Math.round((value1 / max1) * 100)}%`;\n}\nconst Indicator: TOC<{\n Element: HTMLDivElement;\n Args: {\n max: number;\n value: number;\n percent: number;\n };\n Blocks: {\n default: [];\n };\n}> = template(`\n <div\n ...attributes\n data-max={{@max}}\n data-value={{@value}}\n data-state={{progressState @value @max}}\n data-percent={{@percent}}\n >\n {{yield}}\n </div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport class Progress extends Component<Signature> {\n get max() {\n return getMax(this.args.max);\n }\n get value() {\n return getValue(this.args.value, this.max);\n }\n get valueLabel() {\n return getValueLabel(this.value, this.max);\n }\n get decimal() {\n return this.value / this.max;\n }\n get percent() {\n return Math.round(this.decimal * 100 * 100) / 100;\n }\n static{\n template(`\n <div\n ...attributes\n aria-valuemax={{this.max}}\n aria-valuemin=\"0\"\n aria-valuenow={{this.value}}\n aria-valuetext={{this.valueLabel}}\n role=\"progressbar\"\n data-value={{this.value}}\n data-state={{progressState this.value this.max}}\n data-max={{this.max}}\n data-min=\"0\"\n data-percent={{this.percent}}\n >\n\n {{yield\n (hash\n Indicator=(component Indicator value=this.value max=this.max percent=this.percent)\n value=this.value\n percent=this.percent\n decimal=this.decimal\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\nexport default Progress;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncyB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCBwcm9ncmVzc1xuICAgICAqIFRoaXMgbWF5IGJlIGxlc3MgdGhhbiAwIG9yIG1vcmUgdGhhbiBgbWF4YCxcbiAgICAgKiBidXQgdGhlIHJlc29sdmVkIHZhbHVlIChtYW5hZ2VkIGludGVybmFsbHksIGFuZCB5aWVsZGVkIG91dClcbiAgICAgKiBkb2VzIG5vdCBleGNlZWQgdGhlIHJhbmdlIFswLCBtYXhdXG4gICAgICovXG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4IHZhbHVlLCBkZWZhdWx0cyB0byAxMDBcbiAgICAgKi9cbiAgICBtYXg_OiBudW1iZXI7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBpbmRpY2F0b3IgZWxlbWVudCB3aXRoIHNvbWUgc3RhdGUgYXBwbGllZC5cbiAgICAgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBzdHlsZSB0aGUgcHJvZ3Jlc3Mgb2YgYmFyLlxuICAgICAgICAgKi9cbiAgICAgICAgSW5kaWNhdG9yOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBJbmRpY2F0b3IsICd2YWx1ZScgfCAnbWF4JyB8ICdwZXJjZW50Jz47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdmFsdWUgYXMgYSBwZXJjZW50IG9mIGhvdyBmYXIgYWxvbmcgdGhlIGluZGljYXRvciBzaG91bGQgYmVcbiAgICAgICAgICogcG9zaXRpb25lZCwgYmV0d2VlbiAwIGFuZCAxMDAuXG4gICAgICAgICAqIFdpbGwgYmUgcm91bmRlZCB0byB0d28gZGVjaW1hbCBwbGFjZXMuXG4gICAgICAgICAqL1xuICAgICAgICBwZXJjZW50OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdmFsdWUgYXMgYSBwZXJjZW50IG9mIGhvdyBmYXIgYWxvbmcgdGhlIGluZGljYXRvciBzaG91bGQgYmUgcG9zaXRpb25lZCxcbiAgICAgICAgICogYmV0d2VlbiAwIGFuZCAxXG4gICAgICAgICAqL1xuICAgICAgICBkZWNpbWFsOiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcmVzb2x2ZWQgdmFsdWUgd2l0aGluIHRoZSBsaW1pdHMgb2YgdGhlIHByb2dyZXNzIGJhci5cbiAgICAgICAgICovXG4gICAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbnR5cGUgUHJvZ3Jlc3NTdGF0ZSA9ICdpbmRldGVybWluYXRlJyB8ICdjb21wbGV0ZScgfCAnbG9hZGluZyc7XG5cbmNvbnN0IERFRkFVTFRfTUFYID0gMTAwO1xuXG4vKipcbiAqIE5vbi1uZWdhdGl2ZSwgbm9uLU5hTiwgbm9uLUluZmluaXRlLCBwb3NpdGl2ZSwgcmF0aW9uYWxcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZFByb2dyZXNzTnVtYmVyKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIHZhbHVlID49IDA7XG59XG5cbmZ1bmN0aW9uIHByb2dyZXNzU3RhdGUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsIG1heFZhbHVlOiBudW1iZXIpOiBQcm9ncmVzc1N0YXRlIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnaW5kZXRlcm1pbmF0ZScgOiB2YWx1ZSA9PT0gbWF4VmFsdWUgPyAnY29tcGxldGUnIDogJ2xvYWRpbmcnO1xufVxuXG5mdW5jdGlvbiBnZXRNYXgodXNlck1heDogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCk6IG51bWJlciB7XG4gIHJldHVybiBpc1ZhbGlkUHJvZ3Jlc3NOdW1iZXIodXNlck1heCkgPyB1c2VyTWF4IDogREVGQVVMVF9NQVg7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlKHVzZXJWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgbWF4VmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCBtYXggPSBnZXRNYXgobWF4VmFsdWUpO1xuXG4gIGlmICghaXNWYWxpZFByb2dyZXNzTnVtYmVyKHVzZXJWYWx1ZSkpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmICh1c2VyVmFsdWUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIHVzZXJWYWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVMYWJlbCh2YWx1ZTogbnVtYmVyLCBtYXg6IG51bWJlcikge1xuICByZXR1cm4gYCR7TWF0aC5yb3VuZCgodmFsdWUgLyBtYXgpICogMTAwKX0lYDtcbn1cblxuY29uc3QgSW5kaWNhdG9yOiBUT0M8e1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczogeyBtYXg6IG51bWJlcjsgdmFsdWU6IG51bWJlcjsgcGVyY2VudDogbnVtYmVyIH07XG4gIEJsb2NrczogeyBkZWZhdWx0OiBbXSB9O1xufT4gPSA8dGVtcGxhdGU-XG4gIDxkaXZcbiAgICAuLi5hdHRyaWJ1dGVzXG4gICAgZGF0YS1tYXg9e3tAbWF4fX1cbiAgICBkYXRhLXZhbHVlPXt7QHZhbHVlfX1cbiAgICBkYXRhLXN0YXRlPXt7cHJvZ3Jlc3NTdGF0ZSBAdmFsdWUgQG1heH19XG4gICAgZGF0YS1wZXJjZW50PXt7QHBlcmNlbnR9fVxuICA-XG4gICAge3t5aWVsZH19XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzcyBleHRlbmRzIENvbXBvbmVudDxTaWduYXR1cmU-IHtcbiAgZ2V0IG1heCgpIHtcbiAgICByZXR1cm4gZ2V0TWF4KHRoaXMuYXJncy5tYXgpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiBnZXRWYWx1ZSh0aGlzLmFyZ3MudmFsdWUsIHRoaXMubWF4KTtcbiAgfVxuXG4gIGdldCB2YWx1ZUxhYmVsKCkge1xuICAgIHJldHVybiBnZXRWYWx1ZUxhYmVsKHRoaXMudmFsdWUsIHRoaXMubWF4KTtcbiAgfVxuXG4gIGdldCBkZWNpbWFsKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIC8gdGhpcy5tYXg7XG4gIH1cblxuICBnZXQgcGVyY2VudCgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLmRlY2ltYWwgKiAxMDAgKiAxMDApIC8gMTAwO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIGFyaWEtdmFsdWVtYXg9e3t0aGlzLm1heH19XG4gICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXG4gICAgICBhcmlhLXZhbHVlbm93PXt7dGhpcy52YWx1ZX19XG4gICAgICBhcmlhLXZhbHVldGV4dD17e3RoaXMudmFsdWVMYWJlbH19XG4gICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgZGF0YS12YWx1ZT17e3RoaXMudmFsdWV9fVxuICAgICAgZGF0YS1zdGF0ZT17e3Byb2dyZXNzU3RhdGUgdGhpcy52YWx1ZSB0aGlzLm1heH19XG4gICAgICBkYXRhLW1heD17e3RoaXMubWF4fX1cbiAgICAgIGRhdGEtbWluPVwiMFwiXG4gICAgICBkYXRhLXBlcmNlbnQ9e3t0aGlzLnBlcmNlbnR9fVxuICAgID5cblxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIEluZGljYXRvcj0oY29tcG9uZW50IEluZGljYXRvciB2YWx1ZT10aGlzLnZhbHVlIG1heD10aGlzLm1heCBwZXJjZW50PXRoaXMucGVyY2VudClcbiAgICAgICAgICB2YWx1ZT10aGlzLnZhbHVlXG4gICAgICAgICAgcGVyY2VudD10aGlzLnBlcmNlbnRcbiAgICAgICAgICBkZWNpbWFsPXRoaXMuZGVjaW1hbFxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9ncmVzcztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFFckMsY0FBYyxHQUFHLFFBQVEsaUNBQWlDO0FBQzFELGNBQWMsYUFBYSxRQUFRLGtCQUFrQjtBQUVyRCxpQkFBaUI7SUFDZixTQUFTO0lBQ1Q7UUFDRTs7Ozs7S0FLQyxHQUNELE9BQU8sTUFBTTtRQUNiOztLQUVDLEdBQ0QsTUFBTSxNQUFNOztJQUVkO1FBQ0U7Z0JBRUk7OztTQUdDLEdBQ0QsV0FBVyxxQkFBcUIsV0FBVyxVQUFVLFFBQVE7Z0JBQzdEOzs7O1NBSUMsR0FDRCxTQUFTLE1BQU07Z0JBQ2Y7OztTQUdDLEdBQ0QsU0FBUyxNQUFNO2dCQUNmOztTQUVDLEdBQ0QsT0FBTyxNQUFNOzs7O0tBTWhCLGdCQUFnQixrQkFBa0IsYUFBYTtBQUVwRCxNQUFNLGNBQWM7QUFFcEI7O0NBRUMsR0FDRCxTQUFTLHNCQUFzQixRQUFPLE1BQU0sR0FBRyxTQUFTLEdBQUcsSUFBSSxHQUFHLFNBQVMsTUFBTTtJQUMvRSxJQUFJLE9BQU8sV0FBVSxVQUFVLE9BQU87SUFDdEMsSUFBSSxDQUFDLE9BQU8sUUFBUSxDQUFDLFNBQVEsT0FBTztJQUVwQyxPQUFPLFVBQVM7QUFDbEI7QUFFQSxTQUFTLGNBQWMsUUFBTyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksRUFBRSxXQUFVLE1BQU0sR0FBRztJQUMxRSxPQUFPLFVBQVMsT0FBTyxrQkFBa0IsV0FBVSxZQUFXLGFBQWE7QUFDN0U7QUFFQSxTQUFTLE9BQU8sVUFBUyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksR0FBRyxNQUFNO0lBQ3pELE9BQU8sc0JBQXNCLFlBQVcsV0FBVTtBQUNwRDtBQUVBLFNBQVMsU0FBUyxZQUFXLE1BQU0sR0FBRyxTQUFTLEdBQUcsSUFBSSxFQUFFLFdBQVUsTUFBTSxHQUFHLE1BQU07SUFDL0UsSUFBSSxPQUFNLE9BQU87SUFFakIsSUFBSSxDQUFDLHNCQUFzQixhQUFZO1FBQ3JDLE9BQU87SUFDVDtJQUVBLElBQUksYUFBWSxNQUFLO1FBQ25CLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVBLFNBQVMsY0FBYyxRQUFPLE1BQU0sRUFBRSxNQUFLLE1BQU07SUFDL0MsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxTQUFRLElBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQztBQUM5QztBQUVBLE1BQU0sV0FBVztJQUNmLFNBQVM7SUFDVDtRQUFRLEtBQUssTUFBTTtRQUFFLE9BQU8sTUFBTTtRQUFFLFNBQVMsTUFBTTs7SUFDbkQ7UUFBVTs7S0FDUCxTQUFVLENBQUE7Ozs7Ozs7Ozs7QUFVZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUE7QUFFVixPQUFPLE1BQU0saUJBQWlCLFVBQVU7SUFDdEMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztJQUM3QjtJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztJQUMzQztJQUVBLElBQUksYUFBYTtRQUNmLE9BQU8sY0FBYyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHO0lBQzNDO0lBRUEsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHO0lBQzlCO0lBRUEsSUFBSSxVQUFVO1FBQ1osT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sT0FBTztJQUNoRDtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0F4QkE7QUF5Qlo7QUFFQSxlQUFlLFNBQVMifQ"],"names":["DEFAULT_MAX","isValidProgressNumber","value1","Number","isFinite","progressState","maxValue1","getMax","userMax1","getValue","userValue1","max1","getValueLabel","Math","round","Indicator","precompileTemplate","scope","strictMode","templateOnly","Progress","Component","max","args","value","valueLabel","decimal","percent","setComponentTemplate","hash"],"mappings":";;;;;;AAmDA,MAAMA,WAAA,GAAc,GAAA,CAAA;AAEpB;;;AAGA,SAASC,qBAAAA,CAAsBC,MAAgC,EAAkB;AAC/E,EAAA,IAAI,OAAOA,MAAA,KAAU,QAAA,EAAU,OAAO,KAAA,CAAA;AACtC,EAAA,IAAI,CAACC,MAAA,CAAOC,QAAQ,CAACF,MAAA,GAAQ,OAAO,KAAA,CAAA;AAEpC,EAAA,OAAOA,MAAA,IAAS,CAAA,CAAA;AAClB,CAAA;AAEA,SAASG,aAAcH,CAAAA,MAAgC,EAAEI,SAAgB,EAAG;EAC1E,OAAOJ,MAAA,IAAS,IAAO,GAAA,eAAA,GAAkBA,MAAA,KAAUI,SAAA,GAAW,UAAa,GAAA,SAAA,CAAA;AAC7E,CAAA;AAEA,SAASC,MAAAA,CAAOC,QAAkC,EAAS;AACzD,EAAA,OAAOP,qBAAA,CAAsBO,QAAA,CAAWA,GAAAA,QAAA,GAAUR,WAAA,CAAA;AACpD,CAAA;AAEA,SAASS,QAASC,CAAAA,UAAoC,EAAEJ,SAAgB,EAAS;AAC/E,EAAA,IAAIK,IAAA,GAAMJ,MAAA,CAAOD,SAAA,CAAA,CAAA;AAEjB,EAAA,IAAI,CAACL,qBAAA,CAAsBS,UAAA,CAAY,EAAA;IACrC,OAAO,CAAA,CAAA;AACT,GAAA;EAEA,IAAIA,UAAA,GAAYC,IAAA,EAAK;AACnB,IAAA,OAAOA,IAAA,CAAA;AACT,GAAA;AAEA,EAAA,OAAOD,UAAA,CAAA;AACT,CAAA;AAEA,SAASE,aAAAA,CAAcV,MAAa,EAAES,IAAW,EAAA;EAC/C,OAAQ,CAAA,EAAEE,IAAA,CAAKC,KAAK,CAAEZ,MAAA,GAAQS,IAAG,GAAI,GAAA,CAAK,CAAE,CAAA,CAAA,CAAA;AAC9C,CAAA;AAEA,MAAMI,YAIDC,oBAAAA,CAAAA,kBAAA,CAUL,+JAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAZ,IAAAA,aAAAA;AAAA,GAAA,CAAA;EAAAa,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEH,MAAMC,QAAA,SAAiBC,SAAA,CAAU;AACtC,EAAA,IAAIC,MAAM;AACR,IAAA,OAAOf,MAAA,CAAO,IAAI,CAACgB,IAAI,CAACD,GAAG,CAAA,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAIE,QAAQ;IACV,OAAOf,QAAA,CAAS,IAAI,CAACc,IAAI,CAACC,KAAK,EAAE,IAAI,CAACF,GAAG,CAAA,CAAA;AAC3C,GAAA;AAEA,EAAA,IAAIG,aAAa;IACf,OAAOb,aAAA,CAAc,IAAI,CAACY,KAAK,EAAE,IAAI,CAACF,GAAG,CAAA,CAAA;AAC3C,GAAA;AAEA,EAAA,IAAII,UAAU;AACZ,IAAA,OAAO,IAAI,CAACF,KAAK,GAAG,IAAI,CAACF,GAAG,CAAA;AAC9B,GAAA;AAEA,EAAA,IAAIK,UAAU;IACZ,OAAOd,IAAA,CAAKC,KAAK,CAAC,IAAI,CAACY,OAAO,GAAG,GAAA,GAAM,GAAO,CAAA,GAAA,GAAA,CAAA;AAChD,GAAA;AAEA,EAAA;IAAAE,oBAAA,CAAAZ,kBAAA,CAwBA,qeAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAZ,aAAA;QAAAwB,IAAA;AAAAd,QAAAA,SAAAA;AAAA,OAAA,CAAA;MAAAG,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"progress.js","sources":["../../src/components/progress.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface Signature {\n Element: HTMLDivElement;\n Args: {\n /**\n * The current progress\n * This may be less than 0 or more than `max`,\n * but the resolved value (managed internally, and yielded out)\n * does not exceed the range [0, max]\n */ value: number;\n /**\n * The max value, defaults to 100\n */ max?: number;\n };\n Blocks: {\n default: [{\n /**\n * The indicator element with some state applied.\n * This can be used to style the progress of bar.\n */ Indicator: WithBoundArgs<typeof Indicator, 'value' | 'max' | 'percent'>;\n /**\n * The value as a percent of how far along the indicator should be\n * positioned, between 0 and 100.\n * Will be rounded to two decimal places.\n */ percent: number;\n /**\n * The value as a percent of how far along the indicator should be positioned,\n * between 0 and 1\n */ decimal: number;\n /**\n * The resolved value within the limits of the progress bar.\n */ value: number;\n }];\n };\n}\ntype ProgressState = 'indeterminate' | 'complete' | 'loading';\nconst DEFAULT_MAX = 100;\n/**\n * Non-negative, non-NaN, non-Infinite, positive, rational\n */ function isValidProgressNumber(value1: number | undefined | null): value is number {\n if (typeof value1 !== 'number') return false;\n if (!Number.isFinite(value1)) return false;\n return value1 >= 0;\n}\nfunction progressState(value1: number | undefined | null, maxValue1: number): ProgressState {\n return value1 == null ? 'indeterminate' : value1 === maxValue1 ? 'complete' : 'loading';\n}\nfunction getMax(userMax1: number | undefined | null): number {\n return isValidProgressNumber(userMax1) ? userMax1 : DEFAULT_MAX;\n}\nfunction getValue(userValue1: number | undefined | null, maxValue1: number): number {\n let max1 = getMax(maxValue1);\n if (!isValidProgressNumber(userValue1)) {\n return 0;\n }\n if (userValue1 > max1) {\n return max1;\n }\n return userValue1;\n}\nfunction getValueLabel(value1: number, max1: number) {\n return `${Math.round((value1 / max1) * 100)}%`;\n}\nconst Indicator: TOC<{\n Element: HTMLDivElement;\n Args: {\n max: number;\n value: number;\n percent: number;\n };\n Blocks: {\n default: [];\n };\n}> = template(`\n <div\n ...attributes\n data-max={{@max}}\n data-value={{@value}}\n data-state={{progressState @value @max}}\n data-percent={{@percent}}\n >\n {{yield}}\n </div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport class Progress extends Component<Signature> {\n get max() {\n return getMax(this.args.max);\n }\n get value() {\n return getValue(this.args.value, this.max);\n }\n get valueLabel() {\n return getValueLabel(this.value, this.max);\n }\n get decimal() {\n return this.value / this.max;\n }\n get percent() {\n return Math.round(this.decimal * 100 * 100) / 100;\n }\n static{\n template(`\n <div\n ...attributes\n aria-valuemax={{this.max}}\n aria-valuemin=\"0\"\n aria-valuenow={{this.value}}\n aria-valuetext={{this.valueLabel}}\n role=\"progressbar\"\n data-value={{this.value}}\n data-state={{progressState this.value this.max}}\n data-max={{this.max}}\n data-min=\"0\"\n data-percent={{this.percent}}\n >\n\n {{yield\n (hash\n Indicator=(component Indicator value=this.value max=this.max percent=this.percent)\n value=this.value\n percent=this.percent\n decimal=this.decimal\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\nexport default Progress;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9wcm9ncmVzcy5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGN1cnJlbnQgcHJvZ3Jlc3NcbiAgICAgKiBUaGlzIG1heSBiZSBsZXNzIHRoYW4gMCBvciBtb3JlIHRoYW4gYG1heGAsXG4gICAgICogYnV0IHRoZSByZXNvbHZlZCB2YWx1ZSAobWFuYWdlZCBpbnRlcm5hbGx5LCBhbmQgeWllbGRlZCBvdXQpXG4gICAgICogZG9lcyBub3QgZXhjZWVkIHRoZSByYW5nZSBbMCwgbWF4XVxuICAgICAqL1xuICAgIHZhbHVlOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogVGhlIG1heCB2YWx1ZSwgZGVmYXVsdHMgdG8gMTAwXG4gICAgICovXG4gICAgbWF4PzogbnVtYmVyO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaW5kaWNhdG9yIGVsZW1lbnQgd2l0aCBzb21lIHN0YXRlIGFwcGxpZWQuXG4gICAgICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3R5bGUgdGhlIHByb2dyZXNzIG9mIGJhci5cbiAgICAgICAgICovXG4gICAgICAgIEluZGljYXRvcjogV2l0aEJvdW5kQXJnczx0eXBlb2YgSW5kaWNhdG9yLCAndmFsdWUnIHwgJ21heCcgfCAncGVyY2VudCc-O1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHZhbHVlIGFzIGEgcGVyY2VudCBvZiBob3cgZmFyIGFsb25nIHRoZSBpbmRpY2F0b3Igc2hvdWxkIGJlXG4gICAgICAgICAqIHBvc2l0aW9uZWQsIGJldHdlZW4gMCBhbmQgMTAwLlxuICAgICAgICAgKiBXaWxsIGJlIHJvdW5kZWQgdG8gdHdvIGRlY2ltYWwgcGxhY2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgcGVyY2VudDogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHZhbHVlIGFzIGEgcGVyY2VudCBvZiBob3cgZmFyIGFsb25nIHRoZSBpbmRpY2F0b3Igc2hvdWxkIGJlIHBvc2l0aW9uZWQsXG4gICAgICAgICAqIGJldHdlZW4gMCBhbmQgMVxuICAgICAgICAgKi9cbiAgICAgICAgZGVjaW1hbDogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHJlc29sdmVkIHZhbHVlIHdpdGhpbiB0aGUgbGltaXRzIG9mIHRoZSBwcm9ncmVzcyBiYXIuXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufVxuXG50eXBlIFByb2dyZXNzU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZScgfCAnY29tcGxldGUnIHwgJ2xvYWRpbmcnO1xuXG5jb25zdCBERUZBVUxUX01BWCA9IDEwMDtcblxuLyoqXG4gKiBOb24tbmVnYXRpdmUsIG5vbi1OYU4sIG5vbi1JbmZpbml0ZSwgcG9zaXRpdmUsIHJhdGlvbmFsXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRQcm9ncmVzc051bWJlcih2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHZhbHVlIGlzIG51bWJlciB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSByZXR1cm4gZmFsc2U7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiB2YWx1ZSA-PSAwO1xufVxuXG5mdW5jdGlvbiBwcm9ncmVzc1N0YXRlKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsLCBtYXhWYWx1ZTogbnVtYmVyKTogUHJvZ3Jlc3NTdGF0ZSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJ2luZGV0ZXJtaW5hdGUnIDogdmFsdWUgPT09IG1heFZhbHVlID8gJ2NvbXBsZXRlJyA6ICdsb2FkaW5nJztcbn1cblxuZnVuY3Rpb24gZ2V0TWF4KHVzZXJNYXg6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpOiBudW1iZXIge1xuICByZXR1cm4gaXNWYWxpZFByb2dyZXNzTnVtYmVyKHVzZXJNYXgpID8gdXNlck1heCA6IERFRkFVTFRfTUFYO1xufVxuXG5mdW5jdGlvbiBnZXRWYWx1ZSh1c2VyVmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsIG1heFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgbWF4ID0gZ2V0TWF4KG1heFZhbHVlKTtcblxuICBpZiAoIWlzVmFsaWRQcm9ncmVzc051bWJlcih1c2VyVmFsdWUpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAodXNlclZhbHVlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiB1c2VyVmFsdWU7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlTGFiZWwodmFsdWU6IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGAke01hdGgucm91bmQoKHZhbHVlIC8gbWF4KSAqIDEwMCl9JWA7XG59XG5cbmNvbnN0IEluZGljYXRvcjogVE9DPHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHsgbWF4OiBudW1iZXI7IHZhbHVlOiBudW1iZXI7IHBlcmNlbnQ6IG51bWJlciB9O1xuICBCbG9ja3M6IHsgZGVmYXVsdDogW10gfTtcbn0-ID0gPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgLi4uYXR0cmlidXRlc1xuICAgIGRhdGEtbWF4PXt7QG1heH19XG4gICAgZGF0YS12YWx1ZT17e0B2YWx1ZX19XG4gICAgZGF0YS1zdGF0ZT17e3Byb2dyZXNzU3RhdGUgQHZhbHVlIEBtYXh9fVxuICAgIGRhdGEtcGVyY2VudD17e0BwZXJjZW50fX1cbiAgPlxuICAgIHt7eWllbGR9fVxuICA8L2Rpdj5cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3MgZXh0ZW5kcyBDb21wb25lbnQ8U2lnbmF0dXJlPiB7XG4gIGdldCBtYXgoKSB7XG4gICAgcmV0dXJuIGdldE1heCh0aGlzLmFyZ3MubWF4KTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gZ2V0VmFsdWUodGhpcy5hcmdzLnZhbHVlLCB0aGlzLm1heCk7XG4gIH1cblxuICBnZXQgdmFsdWVMYWJlbCgpIHtcbiAgICByZXR1cm4gZ2V0VmFsdWVMYWJlbCh0aGlzLnZhbHVlLCB0aGlzLm1heCk7XG4gIH1cblxuICBnZXQgZGVjaW1hbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSAvIHRoaXMubWF4O1xuICB9XG5cbiAgZ2V0IHBlcmNlbnQoKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5kZWNpbWFsICogMTAwICogMTAwKSAvIDEwMDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICBhcmlhLXZhbHVlbWF4PXt7dGhpcy5tYXh9fVxuICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgYXJpYS12YWx1ZW5vdz17e3RoaXMudmFsdWV9fVxuICAgICAgYXJpYS12YWx1ZXRleHQ9e3t0aGlzLnZhbHVlTGFiZWx9fVxuICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgIGRhdGEtdmFsdWU9e3t0aGlzLnZhbHVlfX1cbiAgICAgIGRhdGEtc3RhdGU9e3twcm9ncmVzc1N0YXRlIHRoaXMudmFsdWUgdGhpcy5tYXh9fVxuICAgICAgZGF0YS1tYXg9e3t0aGlzLm1heH19XG4gICAgICBkYXRhLW1pbj1cIjBcIlxuICAgICAgZGF0YS1wZXJjZW50PXt7dGhpcy5wZXJjZW50fX1cbiAgICA-XG5cbiAgICAgIHt7eWllbGRcbiAgICAgICAgKGhhc2hcbiAgICAgICAgICBJbmRpY2F0b3I9KGNvbXBvbmVudCBJbmRpY2F0b3IgdmFsdWU9dGhpcy52YWx1ZSBtYXg9dGhpcy5tYXggcGVyY2VudD10aGlzLnBlcmNlbnQpXG4gICAgICAgICAgdmFsdWU9dGhpcy52YWx1ZVxuICAgICAgICAgIHBlcmNlbnQ9dGhpcy5wZXJjZW50XG4gICAgICAgICAgZGVjaW1hbD10aGlzLmRlY2ltYWxcbiAgICAgICAgKVxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUHJvZ3Jlc3M7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBRXJDLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7Ozs7O0tBS0MsR0FDRCxPQUFPLE1BQU07UUFDYjs7S0FFQyxHQUNELE1BQU0sTUFBTTs7SUFFZDtRQUNFO2dCQUVJOzs7U0FHQyxHQUNELFdBQVcscUJBQXFCLFdBQVcsVUFBVSxRQUFRO2dCQUM3RDs7OztTQUlDLEdBQ0QsU0FBUyxNQUFNO2dCQUNmOzs7U0FHQyxHQUNELFNBQVMsTUFBTTtnQkFDZjs7U0FFQyxHQUNELE9BQU8sTUFBTTs7OztLQU1oQixnQkFBZ0Isa0JBQWtCLGFBQWE7QUFFcEQsTUFBTSxjQUFjO0FBRXBCOztDQUVDLEdBQ0QsU0FBUyxzQkFBc0IsUUFBTyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksR0FBRyxTQUFTLE1BQU07SUFDL0UsSUFBSSxPQUFPLFdBQVUsVUFBVSxPQUFPO0lBQ3RDLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQyxTQUFRLE9BQU87SUFFcEMsT0FBTyxVQUFTO0FBQ2xCO0FBRUEsU0FBUyxjQUFjLFFBQU8sTUFBTSxHQUFHLFNBQVMsR0FBRyxJQUFJLEVBQUUsV0FBVSxNQUFNLEdBQUc7SUFDMUUsT0FBTyxVQUFTLE9BQU8sa0JBQWtCLFdBQVUsWUFBVyxhQUFhO0FBQzdFO0FBRUEsU0FBUyxPQUFPLFVBQVMsTUFBTSxHQUFHLFNBQVMsR0FBRyxJQUFJLEdBQUcsTUFBTTtJQUN6RCxPQUFPLHNCQUFzQixZQUFXLFdBQVU7QUFDcEQ7QUFFQSxTQUFTLFNBQVMsWUFBVyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksRUFBRSxXQUFVLE1BQU0sR0FBRyxNQUFNO0lBQy9FLElBQUksT0FBTSxPQUFPO0lBRWpCLElBQUksQ0FBQyxzQkFBc0IsYUFBWTtRQUNyQyxPQUFPO0lBQ1Q7SUFFQSxJQUFJLGFBQVksTUFBSztRQUNuQixPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFQSxTQUFTLGNBQWMsUUFBTyxNQUFNLEVBQUUsTUFBSyxNQUFNO0lBQy9DLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsU0FBUSxJQUFHLElBQUksS0FBSyxDQUFDLENBQUM7QUFDOUM7QUFFQSxNQUFNLFdBQVc7SUFDZixTQUFTO0lBQ1Q7UUFBUSxLQUFLLE1BQU07UUFBRSxPQUFPLE1BQU07UUFBRSxTQUFTLE1BQU07O0lBQ25EO1FBQVU7O0tBQ1AsU0FBVSxDQUFBOzs7Ozs7Ozs7O0FBVWYsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVYsT0FBTyxNQUFNLGlCQUFpQixVQUFVO0lBQ3RDLElBQUksTUFBTTtRQUNSLE9BQU8sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7SUFDN0I7SUFFQSxJQUFJLFFBQVE7UUFDVixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7SUFDM0M7SUFFQSxJQUFJLGFBQWE7UUFDZixPQUFPLGNBQWMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztJQUMzQztJQUVBLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRztJQUM5QjtJQUVBLElBQUksVUFBVTtRQUNaLE9BQU8sS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLE9BQU87SUFDaEQ7SUFFQSxNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3QlYsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBeEJBO0FBeUJaO0FBRUEsZUFBZSxTQUFTIn0"],"names":["DEFAULT_MAX","isValidProgressNumber","value1","Number","isFinite","progressState","maxValue1","getMax","userMax1","getValue","userValue1","max1","getValueLabel","Math","round","Indicator","precompileTemplate","strictMode","scope","templateOnly","Progress","Component","max","args","value","valueLabel","decimal","percent","setComponentTemplate","hash"],"mappings":";;;;;;AAmDA,MAAMA,WAAA,GAAc,GAAA,CAAA;AAEpB;;;AAGA,SAASC,qBAAAA,CAAsBC,MAAgC,EAAkB;AAC/E,EAAA,IAAI,OAAOA,MAAA,KAAU,QAAA,EAAU,OAAO,KAAA,CAAA;AACtC,EAAA,IAAI,CAACC,MAAA,CAAOC,QAAQ,CAACF,MAAA,GAAQ,OAAO,KAAA,CAAA;AAEpC,EAAA,OAAOA,MAAA,IAAS,CAAA,CAAA;AAClB,CAAA;AAEA,SAASG,aAAcH,CAAAA,MAAgC,EAAEI,SAAgB,EAAG;EAC1E,OAAOJ,MAAA,IAAS,IAAO,GAAA,eAAA,GAAkBA,MAAA,KAAUI,SAAA,GAAW,UAAa,GAAA,SAAA,CAAA;AAC7E,CAAA;AAEA,SAASC,MAAAA,CAAOC,QAAkC,EAAS;AACzD,EAAA,OAAOP,qBAAA,CAAsBO,QAAA,CAAWA,GAAAA,QAAA,GAAUR,WAAA,CAAA;AACpD,CAAA;AAEA,SAASS,QAASC,CAAAA,UAAoC,EAAEJ,SAAgB,EAAS;AAC/E,EAAA,IAAIK,IAAA,GAAMJ,MAAA,CAAOD,SAAA,CAAA,CAAA;AAEjB,EAAA,IAAI,CAACL,qBAAA,CAAsBS,UAAA,CAAY,EAAA;IACrC,OAAO,CAAA,CAAA;AACT,GAAA;EAEA,IAAIA,UAAA,GAAYC,IAAA,EAAK;AACnB,IAAA,OAAOA,IAAA,CAAA;AACT,GAAA;AAEA,EAAA,OAAOD,UAAA,CAAA;AACT,CAAA;AAEA,SAASE,aAAAA,CAAcV,MAAa,EAAES,IAAW,EAAA;EAC/C,OAAQ,CAAA,EAAEE,IAAA,CAAKC,KAAK,CAAEZ,MAAA,GAAQS,IAAG,GAAI,GAAA,CAAK,CAAE,CAAA,CAAA,CAAA;AAC9C,CAAA;AAEA,MAAMI,YAIDC,oBAAAA,CAAAA,kBAAA,CAUL,+JAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAb,IAAAA,aAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAc,YAAA,EAAA,CAAA,CAAA;AAEH,MAAMC,QAAA,SAAiBC,SAAA,CAAU;AACtC,EAAA,IAAIC,MAAM;AACR,IAAA,OAAOf,MAAA,CAAO,IAAI,CAACgB,IAAI,CAACD,GAAG,CAAA,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAIE,QAAQ;IACV,OAAOf,QAAA,CAAS,IAAI,CAACc,IAAI,CAACC,KAAK,EAAE,IAAI,CAACF,GAAG,CAAA,CAAA;AAC3C,GAAA;AAEA,EAAA,IAAIG,aAAa;IACf,OAAOb,aAAA,CAAc,IAAI,CAACY,KAAK,EAAE,IAAI,CAACF,GAAG,CAAA,CAAA;AAC3C,GAAA;AAEA,EAAA,IAAII,UAAU;AACZ,IAAA,OAAO,IAAI,CAACF,KAAK,GAAG,IAAI,CAACF,GAAG,CAAA;AAC9B,GAAA;AAEA,EAAA,IAAIK,UAAU;IACZ,OAAOd,IAAA,CAAKC,KAAK,CAAC,IAAI,CAACY,OAAO,GAAG,GAAA,GAAM,GAAO,CAAA,GAAA,GAAA,CAAA;AAChD,GAAA;AAEA,EAAA;IAAAE,oBAAA,CAAAZ,kBAAA,CAwBA,qeAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAb,aAAA;QAAAwB,IAAA;AAAAd,QAAAA,SAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
@@ -61,10 +61,10 @@ class Scroller extends Component {
|
|
|
61
61
|
};
|
|
62
62
|
static {
|
|
63
63
|
setComponentTemplate(precompileTemplate("\n <div tabindex=\"0\" ...attributes {{this.ref}}>\n {{yield (hash scrollToBottom=this.scrollToBottom scrollToTop=this.scrollToTop scrollToLeft=this.scrollToLeft scrollToRight=this.scrollToRight)}}\n </div>\n ", {
|
|
64
|
+
strictMode: true,
|
|
64
65
|
scope: () => ({
|
|
65
66
|
hash
|
|
66
|
-
})
|
|
67
|
-
strictMode: true
|
|
67
|
+
})
|
|
68
68
|
}), this);
|
|
69
69
|
}
|
|
70
70
|
}
|