ember-primitives 0.1.0 → 0.3.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/dist/_app_/components/progress.js +1 -0
- package/dist/components/link.js +53 -3
- package/dist/components/link.js.map +1 -1
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal-targets.js +1 -0
- package/dist/components/portal-targets.js.map +1 -1
- package/dist/components/progress.js +102 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/proper-links.js.map +1 -1
- package/dist/test-support/index.js +2 -0
- package/dist/test-support/index.js.map +1 -0
- package/dist/test-support/routing.js +58 -0
- package/dist/test-support/routing.js.map +1 -0
- package/dist/utils.js.map +1 -1
- package/dist-types/components/link.d.ts +58 -0
- package/dist-types/components/link.d.ts.map +1 -1
- package/dist-types/components/popover.d.ts +2 -6
- package/dist-types/components/popover.d.ts.map +1 -1
- package/dist-types/components/portal-targets.d.ts.map +1 -1
- package/dist-types/components/progress.d.ts +65 -0
- package/dist-types/components/progress.d.ts.map +1 -0
- package/dist-types/index.d.ts +1 -0
- package/dist-types/index.d.ts.map +1 -1
- package/dist-types/template-registry.d.ts +20 -0
- package/dist-types/template-registry.d.ts.map +1 -1
- package/dist-types/test-support/index.d.ts +2 -0
- package/dist-types/test-support/index.d.ts.map +1 -0
- package/dist-types/test-support/routing.d.ts +32 -0
- package/dist-types/test-support/routing.d.ts.map +1 -0
- package/package.json +30 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-targets.js","sources":["../../src/components/portal-targets.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { isDevelopingApp, macroCondition } from '@embroider/macros';\n\nimport type { TOC } from '@ember/component/template-only';\n\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});\n\nexport function findNearestTarget(origin: Element, name: string) {\n assert(`first argument to \\`findNearestTarget\\` must be an element`, origin instanceof Element);\n assert(`second argument to \\`findNearestTarget\\` must be a string`, typeof name === `string`);\n\n let element: Element | null = null;\n\n let parent = origin.parentNode;\n\n while (!element && parent) {\n element = parent.querySelector(`[data-portal-name=${name}]`);\n if (element) break;\n parent = parent.parentNode;\n }\n\n if (macroCondition(isDevelopingApp())) {\n (window as any).prime0 = origin;\n }\n\n assert(\n `Could not find element by the given name: \\`${name}\\`.` +\n ` The known names are ` +\n `${Object.values(TARGETS).join(', ')} ` +\n `-- but any name will work as long as it is set to the \\`data-portal-name\\` attribute. ` +\n `Double check that the element you're wanting to portal to is rendered. ` +\n `The element passed to \\`findNearestTarget\\` is stored on \\`window.prime0\\` ` +\n `You can debug in your browser's console via ` +\n `\\`document.querySelector('[data-portal-name=\"${name}\"]')\\``,\n element\n );\n\n return element;\n}\n\nexport interface Signature {\n Args: {};\n Blocks: {};\n}\n\nexport const PortalTargets: TOC<Signature> = [__GLIMMER_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`, { strictMode: true, scope: () => ({TARGETS}) })];\n\nexport default PortalTargets;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLXRhcmdldHMuanMiLCJzb3VyY2VzIjpbInBvcnRhbC10YXJnZXRzLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZW1iZXIvZGVidWcnO1xuaW1wb3J0IHsgaXNEZXZlbG9waW5nQXBwLCBtYWNyb0NvbmRpdGlvbiB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5leHBvcnQgY29uc3QgVEFSR0VUUyA9IE9iamVjdC5mcmVlemUoe1xuICBwb3BvdmVyOiAnZW1iZXItcHJpbWl0aXZlc19fcG9ydGFsLXRhcmdldHNfX3BvcG92ZXInLFxuICB0b29sdGlwOiAnZW1iZXItcHJpbWl0aXZlc19fcG9ydGFsLXRhcmdldHNfX3Rvb2x0aXAnLFxuICBtb2RhbDogJ2VtYmVyLXByaW1pdGl2ZXNfX3BvcnRhbC10YXJnZXRzX19tb2RhbCcsXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZWFyZXN0VGFyZ2V0KG9yaWdpbjogRWxlbWVudCwgbmFtZTogc3RyaW5nKSB7XG4gIGFzc2VydChgZmlyc3QgYXJndW1lbnQgdG8gXFxgZmluZE5lYXJlc3RUYXJnZXRcXGAgbXVzdCBiZSBhbiBlbGVtZW50YCwgb3JpZ2luIGluc3RhbmNlb2YgRWxlbWVudCk7XG4gIGFzc2VydChgc2Vjb25kIGFyZ3VtZW50IHRvIFxcYGZpbmROZWFyZXN0VGFyZ2V0XFxgIG11c3QgYmUgYSBzdHJpbmdgLCB0eXBlb2YgbmFtZSA9PT0gYHN0cmluZ2ApO1xuXG4gIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgbGV0IHBhcmVudCA9IG9yaWdpbi5wYXJlbnROb2RlO1xuXG4gIHdoaWxlICghZWxlbWVudCAmJiBwYXJlbnQpIHtcbiAgICBlbGVtZW50ID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXBvcnRhbC1uYW1lPSR7bmFtZX1dYCk7XG4gICAgaWYgKGVsZW1lbnQpIGJyZWFrO1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlO1xuICB9XG5cbiAgaWYgKG1hY3JvQ29uZGl0aW9uKGlzRGV2ZWxvcGluZ0FwcCgpKSkge1xuICAgICh3aW5kb3cgYXMgYW55KS5wcmltZTAgPSBvcmlnaW47XG4gIH1cblxuICBhc3NlcnQoXG4gICAgYENvdWxkIG5vdCBmaW5kIGVsZW1lbnQgYnkgdGhlIGdpdmVuIG5hbWU6IFxcYCR7bmFtZX1cXGAuYCArXG4gICAgICBgIFRoZSBrbm93biBuYW1lcyBhcmUgYCArXG4gICAgICBgJHtPYmplY3QudmFsdWVzKFRBUkdFVFMpLmpvaW4oJywgJyl9IGAgK1xuICAgICAgYC0tIGJ1dCBhbnkgbmFtZSB3aWxsIHdvcmsgYXMgbG9uZyBhcyBpdCBpcyBzZXQgdG8gdGhlIFxcYGRhdGEtcG9ydGFsLW5hbWVcXGAgYXR0cmlidXRlLiBgICtcbiAgICAgIGBEb3VibGUgY2hlY2sgdGhhdCB0aGUgZWxlbWVudCB5b3UncmUgd2FudGluZyB0byBwb3J0YWwgdG8gaXMgcmVuZGVyZWQuIGAgK1xuICAgICAgYFRoZSBlbGVtZW50IHBhc3NlZCB0byBcXGBmaW5kTmVhcmVzdFRhcmdldFxcYCBpcyBzdG9yZWQgb24gXFxgd2luZG93LnByaW1lMFxcYCBgICtcbiAgICAgIGBZb3UgY2FuIGRlYnVnIGluIHlvdXIgYnJvd3NlcidzIGNvbnNvbGUgdmlhIGAgK1xuICAgICAgYFxcYGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXBvcnRhbC1uYW1lPVwiJHtuYW1lfVwiXScpXFxgYCxcbiAgICBlbGVtZW50XG4gICk7XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgQXJnczoge307XG4gIEJsb2Nrczoge307XG59XG5cbmV4cG9ydCBjb25zdCBQb3J0YWxUYXJnZXRzOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiBkYXRhLXBvcnRhbC1uYW1lPXt7VEFSR0VUUy5wb3BvdmVyfX0+PC9kaXY+XG4gIDxkaXYgZGF0YS1wb3J0YWwtbmFtZT17e1RBUkdFVFMudG9vbHRpcH19PjwvZGl2PlxuICA8ZGl2IGRhdGEtcG9ydGFsLW5hbWU9e3tUQVJHRVRTLm1vZGFsfX0+PC9kaXY+XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsVGFyZ2V0cztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDLENBQUM7QUFDSDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckM7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFDSDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQVU7QUFDdkQ7O2dEQUVnRDtBQUNoRCxtREFBVyxDQUFDO0FBQ1o7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7In0="],"names":["TARGETS","Object","freeze","popover","tooltip","modal","findNearestTarget","origin","name","assert","Element","element","parent","parentNode","querySelector","macroCondition","isDevelopingApp","window","prime0","values","join","PortalTargets","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly"],"mappings":";;;;;;MAKaA,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC;AACnCC,EAAAA,OAAO,EAAE,2CAA2C;AACpDC,EAAAA,OAAO,EAAE,2CAA2C;AACpDC,EAAAA,KAAK,EAAE,yCAAA;AACT,CAAC,EAAC;AAEK,SAASC,iBAAiBA,CAACC,MAAe,EAAEC,IAAY,EAAE;AAC/DC,EAAAA,MAAM,CAAE,CAA2D,0DAAA,CAAA,EAAEF,MAAM,YAAYG,OAAO,CAAC,CAAA;AAC/FD,EAAAA,MAAM,CAAE,CAA0D,yDAAA,CAAA,EAAE,OAAOD,IAAI,KAAM,QAAO,CAAC,CAAA;EAE7F,IAAIG,OAAuB,GAAG,IAAI,CAAA;AAElC,EAAA,IAAIC,MAAM,GAAGL,MAAM,CAACM,UAAU,CAAA;AAE9B,EAAA,OAAO,CAACF,OAAO,IAAIC,MAAM,EAAE;IACzBD,OAAO,GAAGC,MAAM,CAACE,aAAa,CAAE,CAAoBN,kBAAAA,EAAAA,IAAK,GAAE,CAAC,CAAA;AAC5D,IAAA,IAAIG,OAAO,EAAE,MAAA;IACbC,MAAM,GAAGA,MAAM,CAACC,UAAU,CAAA;AAC5B,GAAA;AAEA,EAAA,IAAIE,cAAc,CAACC,eAAe,EAAE,CAAC,EAAE;IACpCC,MAAM,CAASC,MAAM,GAAGX,MAAM,CAAA;AACjC,GAAA;AAEAE,EAAAA,MAAM,CACH,CAAA,4CAAA,EAA8CD,IAAK,CAAA,GAAA,CAAI,GACrD,CAAsB,qBAAA,CAAA,GACtB,CAAEP,EAAAA,MAAM,CAACkB,MAAM,CAACnB,OAAO,CAAC,CAACoB,IAAI,CAAC,IAAI,CAAE,CAAE,CAAA,CAAA,GACtC,CAAuF,sFAAA,CAAA,GACvF,yEAAwE,GACxE,CAAA,2EAAA,CAA4E,GAC5E,CAAA,4CAAA,CAA6C,GAC7C,CAA+CZ,6CAAAA,EAAAA,IAAK,CAAO,MAAA,CAAA,EAC9DG,OACF,CAAC,CAAA;AAED,EAAA,OAAOA,OAAO,CAAA;AAChB,CAAA;MAOaU,aAA6B,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACvD;;;AAGA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAzB,IAAAA,OAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAAA0B,YAAA,CAAW,gBAAA,EAAA,eAAA,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"portal-targets.js","sources":["../../src/components/portal-targets.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { isDevelopingApp, macroCondition } from '@embroider/macros';\n\nimport type { TOC } from '@ember/component/template-only';\n\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});\n\nexport function findNearestTarget(origin: Element, name: string) {\n assert(`first argument to \\`findNearestTarget\\` must be an element`, origin instanceof Element);\n assert(`second argument to \\`findNearestTarget\\` must be a string`, typeof name === `string`);\n\n let element: Element | null = null;\n\n let parent = origin.parentNode;\n\n while (!element && parent) {\n element = parent.querySelector(`[data-portal-name=${name}]`);\n if (element) break;\n parent = parent.parentNode;\n }\n\n if (macroCondition(isDevelopingApp())) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).prime0 = origin;\n }\n\n assert(\n `Could not find element by the given name: \\`${name}\\`.` +\n ` The known names are ` +\n `${Object.values(TARGETS).join(', ')} ` +\n `-- but any name will work as long as it is set to the \\`data-portal-name\\` attribute. ` +\n `Double check that the element you're wanting to portal to is rendered. ` +\n `The element passed to \\`findNearestTarget\\` is stored on \\`window.prime0\\` ` +\n `You can debug in your browser's console via ` +\n `\\`document.querySelector('[data-portal-name=\"${name}\"]')\\``,\n element\n );\n\n return element;\n}\n\nexport interface Signature {\n Args: {};\n Blocks: {};\n}\n\nexport const PortalTargets: TOC<Signature> = [__GLIMMER_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`, { strictMode: true, scope: () => ({TARGETS}) })];\n\nexport default PortalTargets;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLXRhcmdldHMuanMiLCJzb3VyY2VzIjpbInBvcnRhbC10YXJnZXRzLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZW1iZXIvZGVidWcnO1xuaW1wb3J0IHsgaXNEZXZlbG9waW5nQXBwLCBtYWNyb0NvbmRpdGlvbiB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5leHBvcnQgY29uc3QgVEFSR0VUUyA9IE9iamVjdC5mcmVlemUoe1xuICBwb3BvdmVyOiAnZW1iZXItcHJpbWl0aXZlc19fcG9ydGFsLXRhcmdldHNfX3BvcG92ZXInLFxuICB0b29sdGlwOiAnZW1iZXItcHJpbWl0aXZlc19fcG9ydGFsLXRhcmdldHNfX3Rvb2x0aXAnLFxuICBtb2RhbDogJ2VtYmVyLXByaW1pdGl2ZXNfX3BvcnRhbC10YXJnZXRzX19tb2RhbCcsXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZWFyZXN0VGFyZ2V0KG9yaWdpbjogRWxlbWVudCwgbmFtZTogc3RyaW5nKSB7XG4gIGFzc2VydChgZmlyc3QgYXJndW1lbnQgdG8gXFxgZmluZE5lYXJlc3RUYXJnZXRcXGAgbXVzdCBiZSBhbiBlbGVtZW50YCwgb3JpZ2luIGluc3RhbmNlb2YgRWxlbWVudCk7XG4gIGFzc2VydChgc2Vjb25kIGFyZ3VtZW50IHRvIFxcYGZpbmROZWFyZXN0VGFyZ2V0XFxgIG11c3QgYmUgYSBzdHJpbmdgLCB0eXBlb2YgbmFtZSA9PT0gYHN0cmluZ2ApO1xuXG4gIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgbGV0IHBhcmVudCA9IG9yaWdpbi5wYXJlbnROb2RlO1xuXG4gIHdoaWxlICghZWxlbWVudCAmJiBwYXJlbnQpIHtcbiAgICBlbGVtZW50ID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXBvcnRhbC1uYW1lPSR7bmFtZX1dYCk7XG4gICAgaWYgKGVsZW1lbnQpIGJyZWFrO1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlO1xuICB9XG5cbiAgaWYgKG1hY3JvQ29uZGl0aW9uKGlzRGV2ZWxvcGluZ0FwcCgpKSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKHdpbmRvdyBhcyBhbnkpLnByaW1lMCA9IG9yaWdpbjtcbiAgfVxuXG4gIGFzc2VydChcbiAgICBgQ291bGQgbm90IGZpbmQgZWxlbWVudCBieSB0aGUgZ2l2ZW4gbmFtZTogXFxgJHtuYW1lfVxcYC5gICtcbiAgICAgIGAgVGhlIGtub3duIG5hbWVzIGFyZSBgICtcbiAgICAgIGAke09iamVjdC52YWx1ZXMoVEFSR0VUUykuam9pbignLCAnKX0gYCArXG4gICAgICBgLS0gYnV0IGFueSBuYW1lIHdpbGwgd29yayBhcyBsb25nIGFzIGl0IGlzIHNldCB0byB0aGUgXFxgZGF0YS1wb3J0YWwtbmFtZVxcYCBhdHRyaWJ1dGUuIGAgK1xuICAgICAgYERvdWJsZSBjaGVjayB0aGF0IHRoZSBlbGVtZW50IHlvdSdyZSB3YW50aW5nIHRvIHBvcnRhbCB0byBpcyByZW5kZXJlZC4gYCArXG4gICAgICBgVGhlIGVsZW1lbnQgcGFzc2VkIHRvIFxcYGZpbmROZWFyZXN0VGFyZ2V0XFxgIGlzIHN0b3JlZCBvbiBcXGB3aW5kb3cucHJpbWUwXFxgIGAgK1xuICAgICAgYFlvdSBjYW4gZGVidWcgaW4geW91ciBicm93c2VyJ3MgY29uc29sZSB2aWEgYCArXG4gICAgICBgXFxgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtcG9ydGFsLW5hbWU9XCIke25hbWV9XCJdJylcXGBgLFxuICAgIGVsZW1lbnRcbiAgKTtcblxuICByZXR1cm4gZWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICBBcmdzOiB7fTtcbiAgQmxvY2tzOiB7fTtcbn1cblxuZXhwb3J0IGNvbnN0IFBvcnRhbFRhcmdldHM6IFRPQzxTaWduYXR1cmU+ID0gPHRlbXBsYXRlPlxuICA8ZGl2IGRhdGEtcG9ydGFsLW5hbWU9e3tUQVJHRVRTLnBvcG92ZXJ9fT48L2Rpdj5cbiAgPGRpdiBkYXRhLXBvcnRhbC1uYW1lPXt7VEFSR0VUUy50b29sdGlwfX0+PC9kaXY+XG4gIDxkaXYgZGF0YS1wb3J0YWwtbmFtZT17e1RBUkdFVFMubW9kYWx9fT48L2Rpdj5cbjwvdGVtcGxhdGU+O1xuXG5leHBvcnQgZGVmYXVsdCBQb3J0YWxUYXJnZXRzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEU7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hHO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDO0FBQ0g7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBQ0Q7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDYixDQUFDO0FBQ0Q7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBVTtBQUN2RDs7Z0RBRWdEO0FBQ2hELG1EQUFXLENBQUM7QUFDWjtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzsifQ=="],"names":["TARGETS","Object","freeze","popover","tooltip","modal","findNearestTarget","origin","name","assert","Element","element","parent","parentNode","querySelector","macroCondition","isDevelopingApp","window","prime0","values","join","PortalTargets","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly"],"mappings":";;;;;;MAKaA,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC;AACnCC,EAAAA,OAAO,EAAE,2CAA2C;AACpDC,EAAAA,OAAO,EAAE,2CAA2C;AACpDC,EAAAA,KAAK,EAAE,yCAAA;AACT,CAAC,EAAC;AAEK,SAASC,iBAAiBA,CAACC,MAAe,EAAEC,IAAY,EAAE;AAC/DC,EAAAA,MAAM,CAAE,CAA2D,0DAAA,CAAA,EAAEF,MAAM,YAAYG,OAAO,CAAC,CAAA;AAC/FD,EAAAA,MAAM,CAAE,CAA0D,yDAAA,CAAA,EAAE,OAAOD,IAAI,KAAM,QAAO,CAAC,CAAA;EAE7F,IAAIG,OAAuB,GAAG,IAAI,CAAA;AAElC,EAAA,IAAIC,MAAM,GAAGL,MAAM,CAACM,UAAU,CAAA;AAE9B,EAAA,OAAO,CAACF,OAAO,IAAIC,MAAM,EAAE;IACzBD,OAAO,GAAGC,MAAM,CAACE,aAAa,CAAE,CAAoBN,kBAAAA,EAAAA,IAAK,GAAE,CAAC,CAAA;AAC5D,IAAA,IAAIG,OAAO,EAAE,MAAA;IACbC,MAAM,GAAGA,MAAM,CAACC,UAAU,CAAA;AAC5B,GAAA;AAEA,EAAA,IAAIE,cAAc,CAACC,eAAe,EAAE,CAAC,EAAE;AACrC;IACCC,MAAM,CAASC,MAAM,GAAGX,MAAM,CAAA;AACjC,GAAA;AAEAE,EAAAA,MAAM,CACH,CAAA,4CAAA,EAA8CD,IAAK,CAAA,GAAA,CAAI,GACrD,CAAsB,qBAAA,CAAA,GACtB,CAAEP,EAAAA,MAAM,CAACkB,MAAM,CAACnB,OAAO,CAAC,CAACoB,IAAI,CAAC,IAAI,CAAE,CAAE,CAAA,CAAA,GACtC,CAAuF,sFAAA,CAAA,GACvF,yEAAwE,GACxE,CAAA,2EAAA,CAA4E,GAC5E,CAAA,4CAAA,CAA6C,GAC7C,CAA+CZ,6CAAAA,EAAAA,IAAK,CAAO,MAAA,CAAA,EAC9DG,OACF,CAAC,CAAA;AAED,EAAA,OAAOA,OAAO,CAAA;AAChB,CAAA;MAOaU,aAA6B,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACvD;;;AAGA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAzB,IAAAA,OAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAAA0B,YAAA,CAAW,gBAAA,EAAA,eAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import templateOnly from '@ember/component/template-only';
|
|
2
|
+
import { setComponentTemplate } from '@ember/component';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
import Component from '@glimmer/component';
|
|
5
|
+
import { hash } from '@ember/helper';
|
|
6
|
+
|
|
7
|
+
const DEFAULT_MAX = 100;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Non-negative, non-NaN, non-Infinite, positive, rational
|
|
11
|
+
*/
|
|
12
|
+
function isValidProgressNumber(value) {
|
|
13
|
+
if (typeof value !== 'number') return false;
|
|
14
|
+
if (!Number.isFinite(value)) return false;
|
|
15
|
+
return value >= 0;
|
|
16
|
+
}
|
|
17
|
+
function progressState(value, maxValue) {
|
|
18
|
+
return value == null ? 'indeterminate' : value === maxValue ? 'complete' : 'loading';
|
|
19
|
+
}
|
|
20
|
+
function getMax(userMax) {
|
|
21
|
+
return isValidProgressNumber(userMax) ? userMax : DEFAULT_MAX;
|
|
22
|
+
}
|
|
23
|
+
function getValue(userValue, maxValue) {
|
|
24
|
+
let max = getMax(maxValue);
|
|
25
|
+
if (!isValidProgressNumber(userValue)) {
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
if (userValue > max) {
|
|
29
|
+
return max;
|
|
30
|
+
}
|
|
31
|
+
return userValue;
|
|
32
|
+
}
|
|
33
|
+
function getValueLabel(value, max) {
|
|
34
|
+
return `${Math.round(value / max * 100)}%`;
|
|
35
|
+
}
|
|
36
|
+
const Indicator = setComponentTemplate(precompileTemplate(`
|
|
37
|
+
<div
|
|
38
|
+
...attributes
|
|
39
|
+
data-max={{@max}}
|
|
40
|
+
data-value={{@value}}
|
|
41
|
+
data-state={{progressState @value @max}}
|
|
42
|
+
data-percent={{@percent}}
|
|
43
|
+
>
|
|
44
|
+
{{yield}}
|
|
45
|
+
</div>
|
|
46
|
+
`, {
|
|
47
|
+
strictMode: true,
|
|
48
|
+
scope: () => ({
|
|
49
|
+
progressState
|
|
50
|
+
})
|
|
51
|
+
}), templateOnly("progress", "Indicator"));
|
|
52
|
+
class Progress extends Component {
|
|
53
|
+
get max() {
|
|
54
|
+
return getMax(this.args.max);
|
|
55
|
+
}
|
|
56
|
+
get value() {
|
|
57
|
+
return getValue(this.args.value, this.max);
|
|
58
|
+
}
|
|
59
|
+
get valueLabel() {
|
|
60
|
+
return getValueLabel(this.value, this.max);
|
|
61
|
+
}
|
|
62
|
+
get decimal() {
|
|
63
|
+
return this.value / this.max;
|
|
64
|
+
}
|
|
65
|
+
get percent() {
|
|
66
|
+
return Math.round(this.decimal * 100 * 100) / 100;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
setComponentTemplate(precompileTemplate(`
|
|
70
|
+
<div
|
|
71
|
+
...attributes
|
|
72
|
+
aria-valuemax={{this.max}}
|
|
73
|
+
aria-valuemin="0"
|
|
74
|
+
aria-valuenow={{this.value}}
|
|
75
|
+
aria-valuetext={{this.valueLabel}}
|
|
76
|
+
role="progressbar"
|
|
77
|
+
data-value={{this.value}}
|
|
78
|
+
data-state={{progressState this.value this.max}}
|
|
79
|
+
data-max={{this.max}}
|
|
80
|
+
data-min="0"
|
|
81
|
+
data-percent={{this.percent}}
|
|
82
|
+
>
|
|
83
|
+
|
|
84
|
+
{{! @glint-ignore }}
|
|
85
|
+
{{yield (hash
|
|
86
|
+
Indicator=(component Indicator value=this.value max=this.max percent=this.percent)
|
|
87
|
+
value=this.value
|
|
88
|
+
percent=this.percent
|
|
89
|
+
decimal=this.decimal
|
|
90
|
+
)}}
|
|
91
|
+
</div>
|
|
92
|
+
`, {
|
|
93
|
+
strictMode: true,
|
|
94
|
+
scope: () => ({
|
|
95
|
+
progressState,
|
|
96
|
+
hash,
|
|
97
|
+
Indicator
|
|
98
|
+
})
|
|
99
|
+
}), Progress);
|
|
100
|
+
|
|
101
|
+
export { Progress, Progress as default };
|
|
102
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sources":["../../src/components/progress.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\n\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 */\n value: number;\n /**\n * The max value, defaults to 100\n */\n max?: number;\n };\n Blocks: {default: [{\n /**\n * The indicator element with some state applied.\n * This can be used to style the progress of bar.\n */\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 */\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 */\n decimal: number;\n /**\n * The resolved value within the limits of the progress bar.\n */\n value: number;\n }]}\n}\n\ntype ProgressState = 'indeterminate' | 'complete' | 'loading';\n\nconst DEFAULT_MAX = 100;\n\n/**\n * Non-negative, non-NaN, non-Infinite, positive, rational\n */\nfunction isValidProgressNumber(value: number | undefined | null): value is number {\n if (typeof value !== 'number') return false;\n if (!Number.isFinite(value)) return false;\n\n return value >= 0;\n}\n\nfunction progressState(value: number | undefined | null, maxValue: number): ProgressState {\n return value == null ? 'indeterminate' : value === maxValue ? 'complete' : 'loading';\n}\n\nfunction getMax(userMax: number | undefined | null): number {\n return isValidProgressNumber(userMax) ? userMax : DEFAULT_MAX;\n}\n\nfunction getValue(userValue: number | undefined | null, maxValue: number): number {\n let max = getMax(maxValue)\n\n if (!isValidProgressNumber(userValue)) {\n return 0;\n }\n\n if (userValue > max) {\n return max;\n }\n\n return userValue;\n}\n\n\nfunction getValueLabel(value: number, max: number) {\n return `${Math.round((value / max) * 100)}%`;\n}\n\nconst Indicator: TOC<{\n Element: HTMLDivElement;\n Args: { max: number; value: number; percent: number; },\n Blocks: {default:[]}\n}> = [__GLIMMER_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`, { strictMode: true, scope: () => ({progressState}) })];\n\n\nexport class Progress extends Component<Signature> {\n get max() {\n return getMax(this.args.max);\n }\n\n get value() {\n return getValue(this.args.value, this.max);\n }\n\n get valueLabel() {\n return getValueLabel(this.value, this.max);\n }\n\n get decimal() {\n return this.value / this.max;\n }\n\n get percent() {\n return Math.round(this.decimal * 100 * 100) / 100;\n }\n\n [__GLIMMER_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 {{! @glint-ignore }}\n {{yield (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 </div>\n `, { strictMode: true, scope: () => ({progressState,hash,Indicator}) })]\n}\n\nexport default Progress;\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VzIjpbInByb2dyZXNzLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncyB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgICogVGhlIGN1cnJlbnQgcHJvZ3Jlc3NcbiAgICAqIFRoaXMgbWF5IGJlIGxlc3MgdGhhbiAwIG9yIG1vcmUgdGhhbiBgbWF4YCxcbiAgICAqIGJ1dCB0aGUgcmVzb2x2ZWQgdmFsdWUgKG1hbmFnZWQgaW50ZXJuYWxseSwgYW5kIHlpZWxkZWQgb3V0KVxuICAgICogZG9lcyBub3QgZXhjZWVkIHRoZSByYW5nZSBbMCwgbWF4XVxuICAgICAgKi9cbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAgKiBUaGUgbWF4IHZhbHVlLCBkZWZhdWx0cyB0byAxMDBcbiAgICAgICovXG4gICAgbWF4PzogbnVtYmVyO1xuICB9O1xuICBCbG9ja3M6IHtkZWZhdWx0OiBbe1xuICAgIC8qKlxuICAgICAgKiBUaGUgaW5kaWNhdG9yIGVsZW1lbnQgd2l0aCBzb21lIHN0YXRlIGFwcGxpZWQuXG4gICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3R5bGUgdGhlIHByb2dyZXNzIG9mIGJhci5cbiAgICAgICovXG4gICAgSW5kaWNhdG9yOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBJbmRpY2F0b3IsICd2YWx1ZScgfCAnbWF4JyB8ICdwZXJjZW50Jz47XG4gICAgLyoqXG4gICAgICAqIFRoZSB2YWx1ZSBhcyBhIHBlcmNlbnQgb2YgaG93IGZhciBhbG9uZyB0aGUgaW5kaWNhdG9yIHNob3VsZCBiZVxuICAgICAgKiBwb3NpdGlvbmVkLCBiZXR3ZWVuIDAgYW5kIDEwMC5cbiAgICAgICogV2lsbCBiZSByb3VuZGVkIHRvIHR3byBkZWNpbWFsIHBsYWNlcy5cbiAgICAgICovXG4gICAgcGVyY2VudDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAgKiBUaGUgdmFsdWUgYXMgYSBwZXJjZW50IG9mIGhvdyBmYXIgYWxvbmcgdGhlIGluZGljYXRvciBzaG91bGQgYmUgcG9zaXRpb25lZCxcbiAgICAgICogYmV0d2VlbiAwIGFuZCAxXG4gICAgICAqL1xuICAgIGRlY2ltYWw6IG51bWJlcjtcbiAgICAvKipcbiAgICAgICogVGhlIHJlc29sdmVkIHZhbHVlIHdpdGhpbiB0aGUgbGltaXRzIG9mIHRoZSBwcm9ncmVzcyBiYXIuXG4gICAgICAqL1xuICAgIHZhbHVlOiBudW1iZXI7XG4gIH1dfVxufVxuXG50eXBlIFByb2dyZXNzU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZScgfCAnY29tcGxldGUnIHwgJ2xvYWRpbmcnO1xuXG5jb25zdCBERUZBVUxUX01BWCA9IDEwMDtcblxuLyoqXG4gICogTm9uLW5lZ2F0aXZlLCBub24tTmFOLCBub24tSW5maW5pdGUsIHBvc2l0aXZlLCByYXRpb25hbFxuICAqL1xuZnVuY3Rpb24gaXNWYWxpZFByb2dyZXNzTnVtYmVyKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIHZhbHVlID49IDA7XG59XG5cbmZ1bmN0aW9uIHByb2dyZXNzU3RhdGUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsIG1heFZhbHVlOiBudW1iZXIpOiBQcm9ncmVzc1N0YXRlIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnaW5kZXRlcm1pbmF0ZScgOiB2YWx1ZSA9PT0gbWF4VmFsdWUgPyAnY29tcGxldGUnIDogJ2xvYWRpbmcnO1xufVxuXG5mdW5jdGlvbiBnZXRNYXgodXNlck1heDogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCk6IG51bWJlciB7XG4gIHJldHVybiBpc1ZhbGlkUHJvZ3Jlc3NOdW1iZXIodXNlck1heCkgPyB1c2VyTWF4IDogREVGQVVMVF9NQVg7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlKHVzZXJWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgbWF4VmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCBtYXggPSBnZXRNYXgobWF4VmFsdWUpXG5cbiAgaWYgKCFpc1ZhbGlkUHJvZ3Jlc3NOdW1iZXIodXNlclZhbHVlKSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHVzZXJWYWx1ZSA+IG1heCkge1xuICAgIHJldHVybiBtYXg7XG4gIH1cblxuICByZXR1cm4gdXNlclZhbHVlO1xufVxuXG5cbmZ1bmN0aW9uIGdldFZhbHVlTGFiZWwodmFsdWU6IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGAke01hdGgucm91bmQoKHZhbHVlIC8gbWF4KSAqIDEwMCl9JWA7XG59XG5cbmNvbnN0IEluZGljYXRvcjogVE9DPHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHsgbWF4OiBudW1iZXI7IHZhbHVlOiBudW1iZXI7IHBlcmNlbnQ6IG51bWJlcjsgfSxcbiAgQmxvY2tzOiB7ZGVmYXVsdDpbXX1cbn0+ID0gPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgLi4uYXR0cmlidXRlc1xuICAgIGRhdGEtbWF4PXt7QG1heH19XG4gICAgZGF0YS12YWx1ZT17e0B2YWx1ZX19XG4gICAgZGF0YS1zdGF0ZT17e3Byb2dyZXNzU3RhdGUgQHZhbHVlIEBtYXh9fVxuICAgIGRhdGEtcGVyY2VudD17e0BwZXJjZW50fX1cbiAgPlxuICAgIHt7eWllbGR9fVxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+O1xuXG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzcyBleHRlbmRzIENvbXBvbmVudDxTaWduYXR1cmU+IHtcbiAgZ2V0IG1heCgpIHtcbiAgICByZXR1cm4gZ2V0TWF4KHRoaXMuYXJncy5tYXgpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiBnZXRWYWx1ZSh0aGlzLmFyZ3MudmFsdWUsIHRoaXMubWF4KTtcbiAgfVxuXG4gIGdldCB2YWx1ZUxhYmVsKCkge1xuICAgIHJldHVybiBnZXRWYWx1ZUxhYmVsKHRoaXMudmFsdWUsIHRoaXMubWF4KTtcbiAgfVxuXG4gIGdldCBkZWNpbWFsKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIC8gdGhpcy5tYXg7XG4gIH1cblxuICBnZXQgcGVyY2VudCgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLmRlY2ltYWwgKiAxMDAgKiAxMDApIC8gMTAwO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIGFyaWEtdmFsdWVtYXg9e3t0aGlzLm1heH19XG4gICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXG4gICAgICBhcmlhLXZhbHVlbm93PXt7dGhpcy52YWx1ZX19XG4gICAgICBhcmlhLXZhbHVldGV4dD17e3RoaXMudmFsdWVMYWJlbH19XG4gICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgZGF0YS12YWx1ZT17e3RoaXMudmFsdWV9fVxuICAgICAgZGF0YS1zdGF0ZT17e3Byb2dyZXNzU3RhdGUgdGhpcy52YWx1ZSB0aGlzLm1heH19XG4gICAgICBkYXRhLW1heD17e3RoaXMubWF4fX1cbiAgICAgIGRhdGEtbWluPVwiMFwiXG4gICAgICBkYXRhLXBlcmNlbnQ9e3t0aGlzLnBlcmNlbnR9fVxuICAgID5cblxuICAgICAge3shIEBnbGludC1pZ25vcmUgfX1cbiAgICAgIHt7eWllbGQgKGhhc2hcbiAgICAgICAgIEluZGljYXRvcj0oY29tcG9uZW50IEluZGljYXRvciB2YWx1ZT10aGlzLnZhbHVlIG1heD10aGlzLm1heCBwZXJjZW50PXRoaXMucGVyY2VudClcbiAgICAgICAgIHZhbHVlPXRoaXMudmFsdWVcbiAgICAgICAgIHBlcmNlbnQ9dGhpcy5wZXJjZW50XG4gICAgICAgICBkZWNpbWFsPXRoaXMuZGVjaW1hbFxuICAgICAgKX19XG4gICAgPC9kaXY+XG4gIDwvdGVtcGxhdGU+XG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb2dyZXNzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEI7QUFDQSxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVDO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyxDQUFDO0FBQ0g7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ0g7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQVU7QUFDZjs7Ozs7Ozs7UUFRUTtBQUNSLHlEQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUM7QUFDSDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUFDO0FBQ0g7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUFDO0FBQ0g7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUM7QUFDSDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxDQUFDLHFCQUFVO0FBQ1o7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQkMsQ0FBQyx3RUFBVztBQUNiLENBQUM7QUFDRDtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOyJ9"],"names":["DEFAULT_MAX","isValidProgressNumber","value","Number","isFinite","progressState","maxValue","getMax","userMax","getValue","userValue","max","getValueLabel","Math","round","Indicator","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly","Progress","Component","args","valueLabel","decimal","percent","hash"],"mappings":";;;;;;AA+CA,MAAMA,WAAW,GAAG,GAAG,CAAA;;AAEvB;AACA;AACA;AACA,SAASC,qBAAqBA,CAACC,KAAgC,EAAmB;AAChF,EAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK,CAAA;EAC3C,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;EAEzC,OAAOA,KAAK,IAAI,CAAC,CAAA;AACnB,CAAA;AAEA,SAASG,aAAaA,CAACH,KAAgC,EAAEI,QAAgB,EAAiB;AACxF,EAAA,OAAOJ,KAAK,IAAI,IAAI,GAAG,eAAe,GAAGA,KAAK,KAAKI,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;AACtF,CAAA;AAEA,SAASC,MAAMA,CAACC,OAAkC,EAAU;AAC1D,EAAA,OAAOP,qBAAqB,CAACO,OAAO,CAAC,GAAGA,OAAO,GAAGR,WAAW,CAAA;AAC/D,CAAA;AAEA,SAASS,QAAQA,CAACC,SAAoC,EAAEJ,QAAgB,EAAU;AAChF,EAAA,IAAIK,GAAG,GAAGJ,MAAM,CAACD,QAAQ,CAAC,CAAA;AAE1B,EAAA,IAAI,CAACL,qBAAqB,CAACS,SAAS,CAAC,EAAE;AACrC,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;EAEA,IAAIA,SAAS,GAAGC,GAAG,EAAE;AACnB,IAAA,OAAOA,GAAG,CAAA;AACZ,GAAA;AAEA,EAAA,OAAOD,SAAS,CAAA;AAClB,CAAA;AAGA,SAASE,aAAaA,CAACV,KAAa,EAAES,GAAW,EAAE;EACjD,OAAQ,CAAA,EAAEE,IAAI,CAACC,KAAK,CAAEZ,KAAK,GAAGS,GAAG,GAAI,GAAG,CAAE,CAAE,CAAA,CAAA,CAAA;AAC9C,CAAA;AAEA,MAAMI,SAIJ,GAAAC,oBAAA,CAAAC,kBAAA,CAAa,CAAA;AACf;;;;;;;;;AASA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAd,IAAAA,aAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EAAAe,YAAA,CAAW,UAAA,EAAA,WAAA,CAAA,CAAA,CAAA;AAGJ,MAAMC,QAAQ,SAASC,SAAS,CAAY;EACjD,IAAIX,GAAGA,GAAG;AACR,IAAA,OAAOJ,MAAM,CAAC,IAAI,CAACgB,IAAI,CAACZ,GAAG,CAAC,CAAA;AAC9B,GAAA;EAEA,IAAIT,KAAKA,GAAG;IACV,OAAOO,QAAQ,CAAC,IAAI,CAACc,IAAI,CAACrB,KAAK,EAAE,IAAI,CAACS,GAAG,CAAC,CAAA;AAC5C,GAAA;EAEA,IAAIa,UAAUA,GAAG;IACf,OAAOZ,aAAa,CAAC,IAAI,CAACV,KAAK,EAAE,IAAI,CAACS,GAAG,CAAC,CAAA;AAC5C,GAAA;EAEA,IAAIc,OAAOA,GAAG;AACZ,IAAA,OAAO,IAAI,CAACvB,KAAK,GAAG,IAAI,CAACS,GAAG,CAAA;AAC9B,GAAA;EAEA,IAAIe,OAAOA,GAAG;AACZ,IAAA,OAAOb,IAAI,CAACC,KAAK,CAAC,IAAI,CAACW,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACnD,GAAA;AA0BF,CAAA;AAACT,oBAAA,CAAAC,kBAAA,CAxBW,CAAA;AACZ;;;;;;;;;;;;;;;;;;;;;;AAsBE,EAAA,CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAd,aAAA;IAAAsB,IAAA;AAAAZ,IAAAA,SAAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA,EA5CWM,QAAQ,CAAA;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { Link } from './components/link.js';
|
|
|
5
5
|
export { Popover } from './components/popover.js';
|
|
6
6
|
export { Portal } from './components/portal.js';
|
|
7
7
|
export { TARGETS as PORTALS, PortalTargets } from './components/portal-targets.js';
|
|
8
|
+
export { Progress } from './components/progress.js';
|
|
8
9
|
export { Shadowed } from './components/shadowed.js';
|
|
9
10
|
export { Switch } from './components/switch.js';
|
|
10
11
|
export { Toggle } from './components/toggle.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';\n\nif (macroCondition(isDevelopingApp())) {\n importSync('./components/violations.css');\n}\n\nexport { Dialog, Dialog as Modal } from './components/dialog';\nexport { ExternalLink } from './components/external-link';\nexport { Link } from './components/link';\nexport { Popover } from './components/popover';\nexport { Portal } from './components/portal';\nexport { PortalTargets } from './components/portal-targets';\nexport { TARGETS as PORTALS } from './components/portal-targets';\nexport { Shadowed } from './components/shadowed';\nexport { Switch } from './components/switch';\nexport { Toggle } from './components/toggle';\nexport * from './helpers';\n"],"names":["macroCondition","isDevelopingApp","importSync"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';\n\nif (macroCondition(isDevelopingApp())) {\n importSync('./components/violations.css');\n}\n\nexport { Dialog, Dialog as Modal } from './components/dialog';\nexport { ExternalLink } from './components/external-link';\nexport { Link } from './components/link';\nexport { Popover } from './components/popover';\nexport { Portal } from './components/portal';\nexport { PortalTargets } from './components/portal-targets';\nexport { TARGETS as PORTALS } from './components/portal-targets';\nexport { Progress } from './components/progress';\nexport { Shadowed } from './components/shadowed';\nexport { Switch } from './components/switch';\nexport { Toggle } from './components/toggle';\nexport * from './helpers';\n"],"names":["macroCondition","isDevelopingApp","importSync"],"mappings":";;;;;;;;;;;;;AAEA,IAAIA,cAAc,CAACC,eAAe,EAAE,CAAC,EAAE;EACrCC,UAAU,CAAC,6BAA6B,CAAC,CAAA;AAC3C"}
|
package/dist/proper-links.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proper-links.js","sources":["../src/proper-links.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { getOwner } from '@ember/owner';\n\nimport type EmberRouter from '@ember/routing/router';\nimport type RouterService from '@ember/routing/router-service';\n\ntype Constructor<T extends {} = {}> = { new (...args: any[]): T };\n\nexport interface Options {\n ignore?: string[];\n}\n\nexport function properLinks(\n options: Options\n): <Instance extends {}, Klass = { new (...args: any[]): Instance }>(klass: Klass) => Klass;\n\nexport function properLinks<Instance extends {}, Klass = { new (...args: any[]): Instance }>(\n klass: Klass\n): Klass;\n/**\n * @internal\n */\nexport function properLinks<Instance extends {}, Klass = { new (...args: any[]): Instance }>(\n options: Options,\n klass: Klass\n): Klass;\n\nexport function properLinks<Instance extends {}, Klass = { new (...args: any[]): Instance }>(\n ...args: [Options] | [Klass] | [Options, Klass]\n): Klass | ((klass: Klass) => Klass) {\n let options: Options = {};\n\n let klass: undefined | Klass = undefined;\n\n if (args.length === 2) {\n options = args[0] as Options;\n klass = args[1] as Klass;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n // TODO: how to get first arg type correct?\n return (klass: Klass) => properLinks(args[0] as any, klass);\n } else {\n klass = args[0];\n }\n }\n\n let ignore = options.ignore || [];\n\n assert(`klass was not defined. possibile incorrect arity given to properLinks`, klass);\n\n return class RouterWithProperLinks extends (klass as unknown as Constructor<EmberRouter>) {\n // SAFETY: we literally do not care about the args' type here,\n // because we just call super\n constructor(...args: any[]) {\n super(...args);\n\n setup(this, ignore);\n }\n } as unknown as Klass;\n}\n\n/**\n * Setup proper links without a decorator.\n * This function only requires that a framework object with an owner is passed.\n */\nexport function setup(parent: object, ignore?: string[]) {\n const handler = (event: MouseEvent) => {\n /**\n * event.target may not be an anchor,\n * it may be a span, svg, img, or any number of elements nested in <a>...</a>\n */\n let interactive = isLink(event);\n\n if (!interactive) return;\n\n let owner = getOwner(parent);\n\n assert('owner is not present', owner);\n\n let routerService = owner.lookup('service:router');\n\n handle(routerService, interactive, ignore ?? [], event);\n };\n\n document.body.addEventListener('click', handler, false);\n\n registerDestructor(parent, () => document.body.removeEventListener('click', handler));\n}\n\nexport function isLink(event: Event) {\n /**\n * Using composed path in case the link is removed from the DOM\n * before the event handler evaluates\n */\n let composedPath = event.composedPath();\n\n for (let element of composedPath) {\n if (element instanceof HTMLAnchorElement) {\n return element;\n }\n }\n}\n\nexport function handle(\n router: RouterService,\n element: HTMLAnchorElement,\n ignore: string[],\n event: MouseEvent\n) {\n if (!element) return;\n /**\n * If we don't have an href, the <a> is invalid.\n * If you're debugging your code and end up finding yourself\n * early-returning here, please add an href ;)\n */\n if (!element.href) return;\n\n /**\n * This is partially an escape hatch, but any time target is set,\n * we are usually wanting to escape the behavior of single-page-apps.\n *\n * Some folks desire to have in-SPA links, but still do native browser behavior\n * (which for the case of SPAs is a full page refresh)\n * but they can set target=\"_self\" to get that behavior back if they want.\n *\n * I expect that this'll be a super edge case, because the whole goal of\n * \"proper links\" is to do what is expected, always -- for in-app SPA links\n * as well as external, cross-domain links\n */\n if (element.target) return;\n\n /**\n * If the click is not a \"left click\" we don't want to intercept the event.\n * This allows folks to\n * - middle click (usually open the link in a new tab)\n * - right click (usually opens the context menu)\n */\n if (event.button !== 0) return;\n\n /**\n * for MacOS users, this default behavior opens the link in a new tab\n */\n if (event.metaKey) return;\n\n /**\n * for for everyone else, this default behavior opens the link in a new tab\n */\n if (event.ctrlKey) return;\n\n /**\n * The default behavior here downloads the link content\n */\n if (event.altKey) return;\n\n /**\n * The default behavior here opens the link in a new window\n */\n if (event.shiftKey) return;\n\n /**\n * If another event listener called event.preventDefault(), we don't want to proceed.\n */\n if (event.defaultPrevented) return;\n\n /**\n * The href includes the protocol/host/etc\n * In order to not have the page look like a full page refresh,\n * we need to chop that \"origin\" off, and just use the path\n */\n let url = new URL(element.href);\n\n /**\n * If the domains are different, we want to fall back to normal link behavior\n *\n */\n if (location.origin !== url.origin) return;\n\n /**\n * We can optionally declare some paths as ignored,\n * or \"let the browser do its default thing,\n * because there is other server-based routing to worry about\"\n */\n if (ignore.includes(url.pathname)) return;\n\n let fullHref = `${url.pathname}${url.search}${url.hash}`;\n\n let rootURL = router.rootURL;\n\n let withoutRootURL = fullHref.slice(rootURL.length);\n\n // re-add the \"root\" sigil\n // we removed it when we chopped off the rootURL,\n // because the rootURL often has this attached to it as well\n if (!withoutRootURL.startsWith('/')) {\n withoutRootURL = `/${withoutRootURL}`;\n }\n\n try {\n let routeInfo = router.recognize(fullHref);\n\n if (routeInfo) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n router.transitionTo(withoutRootURL);\n\n return false;\n }\n } catch (e) {\n if (e instanceof Error && e.name === 'UnrecognizedURLError') {\n return;\n }\n\n throw e;\n }\n}\n"],"names":["properLinks","args","options","klass","undefined","length","ignore","assert","RouterWithProperLinks","constructor","setup","parent","handler","event","interactive","isLink","owner","getOwner","routerService","lookup","handle","document","body","addEventListener","registerDestructor","removeEventListener","composedPath","element","HTMLAnchorElement","router","href","target","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","url","URL","location","origin","includes","pathname","fullHref","search","hash","rootURL","withoutRootURL","slice","startsWith","routeInfo","recognize","preventDefault","stopImmediatePropagation","stopPropagation","transitionTo","e","Error","name"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proper-links.js","sources":["../src/proper-links.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { getOwner } from '@ember/owner';\n\nimport type EmberRouter from '@ember/routing/router';\nimport type RouterService from '@ember/routing/router-service';\n\ntype Constructor<T extends {} = {}> = { new (...args: any[]): T };\n\nexport interface Options {\n ignore?: string[];\n}\n\nexport function properLinks(\n options: Options,\n): <Instance extends {}, Klass = { new (...args: any[]): Instance }>(klass: Klass) => Klass;\n\nexport function properLinks<Instance extends {}, Klass = { new (...args: any[]): Instance }>(\n klass: Klass,\n): Klass;\n/**\n * @internal\n */\nexport function properLinks<Instance extends {}, Klass = { new (...args: any[]): Instance }>(\n options: Options,\n klass: Klass,\n): Klass;\n\nexport function properLinks<Instance extends {}, Klass = { new (...args: any[]): Instance }>(\n ...args: [Options] | [Klass] | [Options, Klass]\n): Klass | ((klass: Klass) => Klass) {\n let options: Options = {};\n\n let klass: undefined | Klass = undefined;\n\n if (args.length === 2) {\n options = args[0] as Options;\n klass = args[1] as Klass;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n // TODO: how to get first arg type correct?\n return (klass: Klass) => properLinks(args[0] as any, klass);\n } else {\n klass = args[0];\n }\n }\n\n let ignore = options.ignore || [];\n\n assert(`klass was not defined. possibile incorrect arity given to properLinks`, klass);\n\n return class RouterWithProperLinks extends (klass as unknown as Constructor<EmberRouter>) {\n // SAFETY: we literally do not care about the args' type here,\n // because we just call super\n constructor(...args: any[]) {\n super(...args);\n\n setup(this, ignore);\n }\n } as unknown as Klass;\n}\n\n/**\n * Setup proper links without a decorator.\n * This function only requires that a framework object with an owner is passed.\n */\nexport function setup(parent: object, ignore?: string[]) {\n const handler = (event: MouseEvent) => {\n /**\n * event.target may not be an anchor,\n * it may be a span, svg, img, or any number of elements nested in <a>...</a>\n */\n let interactive = isLink(event);\n\n if (!interactive) return;\n\n let owner = getOwner(parent);\n\n assert('owner is not present', owner);\n\n let routerService = owner.lookup('service:router');\n\n handle(routerService, interactive, ignore ?? [], event);\n };\n\n document.body.addEventListener('click', handler, false);\n\n registerDestructor(parent, () => document.body.removeEventListener('click', handler));\n}\n\nexport function isLink(event: Event) {\n /**\n * Using composed path in case the link is removed from the DOM\n * before the event handler evaluates\n */\n let composedPath = event.composedPath();\n\n for (let element of composedPath) {\n if (element instanceof HTMLAnchorElement) {\n return element;\n }\n }\n}\n\nexport function handle(\n router: RouterService,\n element: HTMLAnchorElement,\n ignore: string[],\n event: MouseEvent,\n) {\n if (!element) return;\n /**\n * If we don't have an href, the <a> is invalid.\n * If you're debugging your code and end up finding yourself\n * early-returning here, please add an href ;)\n */\n if (!element.href) return;\n\n /**\n * This is partially an escape hatch, but any time target is set,\n * we are usually wanting to escape the behavior of single-page-apps.\n *\n * Some folks desire to have in-SPA links, but still do native browser behavior\n * (which for the case of SPAs is a full page refresh)\n * but they can set target=\"_self\" to get that behavior back if they want.\n *\n * I expect that this'll be a super edge case, because the whole goal of\n * \"proper links\" is to do what is expected, always -- for in-app SPA links\n * as well as external, cross-domain links\n */\n if (element.target) return;\n\n /**\n * If the click is not a \"left click\" we don't want to intercept the event.\n * This allows folks to\n * - middle click (usually open the link in a new tab)\n * - right click (usually opens the context menu)\n */\n if (event.button !== 0) return;\n\n /**\n * for MacOS users, this default behavior opens the link in a new tab\n */\n if (event.metaKey) return;\n\n /**\n * for for everyone else, this default behavior opens the link in a new tab\n */\n if (event.ctrlKey) return;\n\n /**\n * The default behavior here downloads the link content\n */\n if (event.altKey) return;\n\n /**\n * The default behavior here opens the link in a new window\n */\n if (event.shiftKey) return;\n\n /**\n * If another event listener called event.preventDefault(), we don't want to proceed.\n */\n if (event.defaultPrevented) return;\n\n /**\n * The href includes the protocol/host/etc\n * In order to not have the page look like a full page refresh,\n * we need to chop that \"origin\" off, and just use the path\n */\n let url = new URL(element.href);\n\n /**\n * If the domains are different, we want to fall back to normal link behavior\n *\n */\n if (location.origin !== url.origin) return;\n\n /**\n * We can optionally declare some paths as ignored,\n * or \"let the browser do its default thing,\n * because there is other server-based routing to worry about\"\n */\n if (ignore.includes(url.pathname)) return;\n\n let fullHref = `${url.pathname}${url.search}${url.hash}`;\n\n let rootURL = router.rootURL;\n\n let withoutRootURL = fullHref.slice(rootURL.length);\n\n // re-add the \"root\" sigil\n // we removed it when we chopped off the rootURL,\n // because the rootURL often has this attached to it as well\n if (!withoutRootURL.startsWith('/')) {\n withoutRootURL = `/${withoutRootURL}`;\n }\n\n try {\n let routeInfo = router.recognize(fullHref);\n\n if (routeInfo) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n router.transitionTo(withoutRootURL);\n\n return false;\n }\n } catch (e) {\n if (e instanceof Error && e.name === 'UnrecognizedURLError') {\n return;\n }\n\n throw e;\n }\n}\n"],"names":["properLinks","args","options","klass","undefined","length","ignore","assert","RouterWithProperLinks","constructor","setup","parent","handler","event","interactive","isLink","owner","getOwner","routerService","lookup","handle","document","body","addEventListener","registerDestructor","removeEventListener","composedPath","element","HTMLAnchorElement","router","href","target","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","url","URL","location","origin","includes","pathname","fullHref","search","hash","rootURL","withoutRootURL","slice","startsWith","routeInfo","recognize","preventDefault","stopImmediatePropagation","stopPropagation","transitionTo","e","Error","name"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { assert } from '@ember/debug';
|
|
2
|
+
import Router from '@ember/routing/router';
|
|
3
|
+
import { properLinks } from '../proper-links.js';
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
7
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
/**
|
|
9
|
+
* Allows setting up routes in tests without the need to scaffold routes in the actual app,
|
|
10
|
+
* allowing for iterating on many different routing scenario / configurations rapidly.
|
|
11
|
+
*
|
|
12
|
+
* Example:
|
|
13
|
+
* ```js
|
|
14
|
+
* import { setupRouting } from 'ember-primitives/test-support';
|
|
15
|
+
*
|
|
16
|
+
* ...
|
|
17
|
+
*
|
|
18
|
+
* test('my test', async function (assert) {
|
|
19
|
+
* setupRouting(this.owner, function () {
|
|
20
|
+
* this.route('foo');
|
|
21
|
+
* this.route('bar', function () {
|
|
22
|
+
* this.route('a');
|
|
23
|
+
* this.route('b');
|
|
24
|
+
* })
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* await visit('/bar/b');
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
function setupRouting(owner, map, options) {
|
|
33
|
+
var _class;
|
|
34
|
+
if (options?.rootURL) {
|
|
35
|
+
assert('rootURL must begin with a forward slash ("/")', options?.rootURL?.startsWith('/'));
|
|
36
|
+
}
|
|
37
|
+
let TestRouter = properLinks(_class = class TestRouter extends Router {
|
|
38
|
+
constructor(...args) {
|
|
39
|
+
super(...args);
|
|
40
|
+
_defineProperty(this, "rootURL", options?.rootURL ?? '/');
|
|
41
|
+
}
|
|
42
|
+
}) || _class;
|
|
43
|
+
TestRouter.map(map);
|
|
44
|
+
owner.register('router:main', TestRouter);
|
|
45
|
+
|
|
46
|
+
// eslint-disable-next-line ember/no-private-routing-service
|
|
47
|
+
let iKnowWhatIMDoing = owner.lookup('router:main');
|
|
48
|
+
|
|
49
|
+
// We need a public testing API for this sort of stuff
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
iKnowWhatIMDoing.setupRouter();
|
|
52
|
+
}
|
|
53
|
+
function getRouter(owner) {
|
|
54
|
+
return owner.lookup('service:router');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { getRouter, setupRouting };
|
|
58
|
+
//# sourceMappingURL=routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.js","sources":["../../src/test-support/routing.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport Router from '@ember/routing/router';\n\nimport { properLinks } from '../proper-links';\n\nimport type Owner from '@ember/owner';\nimport type { DSLCallback } from '@ember/routing/lib/dsl';\nimport type RouterService from '@ember/routing/router-service';\n\n/**\n * Allows setting up routes in tests without the need to scaffold routes in the actual app,\n * allowing for iterating on many different routing scenario / configurations rapidly.\n *\n * Example:\n * ```js\n * import { setupRouting } from 'ember-primitives/test-support';\n *\n * ...\n *\n * test('my test', async function (assert) {\n * setupRouting(this.owner, function () {\n * this.route('foo');\n * this.route('bar', function () {\n * this.route('a');\n * this.route('b');\n * })\n * });\n *\n * await visit('/bar/b');\n * });\n * ```\n *\n */\nexport function setupRouting(owner: Owner, map: DSLCallback, options?: { rootURL: string }) {\n if (options?.rootURL) {\n assert('rootURL must begin with a forward slash (\"/\")', options?.rootURL?.startsWith('/'));\n }\n\n @properLinks\n class TestRouter extends Router {\n rootURL = options?.rootURL ?? '/';\n }\n\n TestRouter.map(map);\n\n owner.register('router:main', TestRouter);\n\n // eslint-disable-next-line ember/no-private-routing-service\n let iKnowWhatIMDoing = owner.lookup('router:main');\n\n // We need a public testing API for this sort of stuff\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (iKnowWhatIMDoing as any).setupRouter();\n}\n\nexport function getRouter(owner: Owner) {\n return owner.lookup('service:router') as RouterService;\n}\n"],"names":["setupRouting","owner","map","options","_class","rootURL","assert","startsWith","TestRouter","properLinks","Router","constructor","args","_defineProperty","register","iKnowWhatIMDoing","lookup","setupRouter","getRouter"],"mappings":";;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,YAAYA,CAACC,KAAY,EAAEC,GAAgB,EAAEC,OAA6B,EAAE;AAAA,EAAA,IAAAC,MAAA,CAAA;EAC1F,IAAID,OAAO,EAAEE,OAAO,EAAE;IACpBC,MAAM,CAAC,+CAA+C,EAAEH,OAAO,EAAEE,OAAO,EAAEE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5F,GAAA;EAAC,IAGKC,UAAU,GADfC,WAAW,CAAAL,MAAA,GAAZ,MACMI,UAAU,SAASE,MAAM,CAAC;AAAAC,IAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,MAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,MAAAA,eAAA,CACpBV,IAAAA,EAAAA,SAAAA,EAAAA,OAAO,EAAEE,OAAO,IAAI,GAAG,CAAA,CAAA;AAAA,KAAA;AACnC,GAAC,KAAAD,MAAA,CAAA;AAEDI,EAAAA,UAAU,CAACN,GAAG,CAACA,GAAG,CAAC,CAAA;AAEnBD,EAAAA,KAAK,CAACa,QAAQ,CAAC,aAAa,EAAEN,UAAU,CAAC,CAAA;;AAEzC;AACA,EAAA,IAAIO,gBAAgB,GAAGd,KAAK,CAACe,MAAM,CAAC,aAAa,CAAC,CAAA;;AAElD;AACA;EACCD,gBAAgB,CAASE,WAAW,EAAE,CAAA;AACzC,CAAA;AAEO,SAASC,SAASA,CAACjB,KAAY,EAAE;AACtC,EAAA,OAAOA,KAAK,CAACe,MAAM,CAAC,gBAAgB,CAAC,CAAA;AACvC;;;;"}
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["// this is copy pasted from https://github.com/emberjs/ember.js/blob/60d2e0cddb353aea0d6e36a72fda971010d92355/packages/%40ember/-internals/glimmer/lib/helpers/unique-id.ts\n// Unfortunately due to https://github.com/emberjs/ember.js/issues/20165 we cannot use the built-in version in template tags\nexport function uniqueId() {\n // @ts-expect-error this one-liner abuses weird JavaScript semantics that\n // TypeScript (legitimately) doesn't like, but they're nonetheless valid and\n // specced.\n return ([3e7] + -1e3 + -4e3 + -2e3 + -1e11).replace(/[0-3]/g, (a) =>\n ((a * 4) ^ ((Math.random() * 16) >> (a & 2))).toString(16)
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["// this is copy pasted from https://github.com/emberjs/ember.js/blob/60d2e0cddb353aea0d6e36a72fda971010d92355/packages/%40ember/-internals/glimmer/lib/helpers/unique-id.ts\n// Unfortunately due to https://github.com/emberjs/ember.js/issues/20165 we cannot use the built-in version in template tags\nexport function uniqueId() {\n // @ts-expect-error this one-liner abuses weird JavaScript semantics that\n // TypeScript (legitimately) doesn't like, but they're nonetheless valid and\n // specced.\n return ([3e7] + -1e3 + -4e3 + -2e3 + -1e11).replace(/[0-3]/g, (a) =>\n ((a * 4) ^ ((Math.random() * 16) >> (a & 2))).toString(16),\n );\n}\n"],"names":["uniqueId","replace","a","Math","random","toString"],"mappings":"AAAA;AACA;AACO,SAASA,QAAQA,GAAG;AACzB;AACA;AACA;EACA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAEC,OAAO,CAAC,QAAQ,EAAGC,CAAC,IAC9D,CAAEA,CAAC,GAAG,CAAC,GAAMC,IAAI,CAACC,MAAM,EAAE,GAAG,EAAE,KAAMF,CAAC,GAAG,CAAC,CAAE,EAAEG,QAAQ,CAAC,EAAE,CAC3D,CAAC,CAAA;AACH;;;;"}
|
|
@@ -13,6 +13,30 @@ export interface Signature {
|
|
|
13
13
|
* the `href` string value to set on the anchor element.
|
|
14
14
|
*/
|
|
15
15
|
href: string;
|
|
16
|
+
/**
|
|
17
|
+
* When calculating the "active" state of the link, you may decide
|
|
18
|
+
* whether or not you want to _require_ that all query params be considered (true)
|
|
19
|
+
* or specify individual query params, ignoring anything not specified.
|
|
20
|
+
*
|
|
21
|
+
* For example:
|
|
22
|
+
*
|
|
23
|
+
* ```gjs live preview
|
|
24
|
+
* import { Link } from 'ember-primitives';
|
|
25
|
+
*
|
|
26
|
+
* <template>
|
|
27
|
+
* <Link @href="/" @includeActiveQueryParams={{true}} as |a|>
|
|
28
|
+
* ...
|
|
29
|
+
* </Link>
|
|
30
|
+
* </template>
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* the data-active state here will only be "true" on
|
|
34
|
+
* - `/`
|
|
35
|
+
* - `/?foo=2`
|
|
36
|
+
* - `/?foo=&bar=`
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
includeActiveQueryParams?: true | string[];
|
|
16
40
|
};
|
|
17
41
|
Blocks: {
|
|
18
42
|
default: [
|
|
@@ -43,6 +67,39 @@ export interface Signature {
|
|
|
43
67
|
* ```
|
|
44
68
|
*/
|
|
45
69
|
isExternal: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Indicates if the passed `href` is *active*, or the user is on the same basepath.
|
|
72
|
+
* This allows consumers to style their link if they wish or style their text.
|
|
73
|
+
* The active state will also be present on a `data-active` attribute on the generated anchor tag.
|
|
74
|
+
*
|
|
75
|
+
*
|
|
76
|
+
* For example
|
|
77
|
+
* ```gjs
|
|
78
|
+
* import { Link, service } from 'ember-primitives';
|
|
79
|
+
*
|
|
80
|
+
* const MyLink = <template>
|
|
81
|
+
* <Link @href="..."> as |a|>
|
|
82
|
+
* <span class="{{if a.isActive 'underline'}}">
|
|
83
|
+
* {{yield}}
|
|
84
|
+
* </span>
|
|
85
|
+
* </Link>
|
|
86
|
+
* </template>
|
|
87
|
+
*
|
|
88
|
+
* <template>
|
|
89
|
+
* {{#let (service 'router') as |router|}}
|
|
90
|
+
* <MyLink @href={{router.currentURL}}>Ths page</MyLink>
|
|
91
|
+
* <MyLink @href="/">Home</MyLink>
|
|
92
|
+
* {{/let}}
|
|
93
|
+
* </template>
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* By default, the query params are omitted from `isActive` calculation, but you may
|
|
97
|
+
* configure the query params to be included if you wish
|
|
98
|
+
* See: `@includeActiveQueryParams`
|
|
99
|
+
*
|
|
100
|
+
* Note that external links are never active.
|
|
101
|
+
*/
|
|
102
|
+
isActive: boolean;
|
|
46
103
|
}
|
|
47
104
|
];
|
|
48
105
|
};
|
|
@@ -56,6 +113,7 @@ export interface Signature {
|
|
|
56
113
|
export declare class Link extends Component<Signature> {
|
|
57
114
|
router: RouterService;
|
|
58
115
|
handleClick: (event: MouseEvent) => void;
|
|
116
|
+
get isActive(): boolean;
|
|
59
117
|
}
|
|
60
118
|
export default Link;
|
|
61
119
|
//# sourceMappingURL=link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/components/link.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAS3C,OAAO,KAAK,aAAa,MAAM,+BAA+B,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE;QACJ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/components/link.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAS3C,OAAO,KAAK,aAAa,MAAM,+BAA+B,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE;QACJ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;;;;;;;;;;;;;;;;;;;;;WAsBG;QACH,wBAAwB,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;KAC5C,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE;;;;;;;;;;;;;;;;;;;;;;;;mBAwBG;gBACH,UAAU,EAAE,OAAO,CAAC;gBACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA+BG;gBACH,QAAQ,EAAE,OAAO,CAAC;aACnB;SACF,CAAC;KACH,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,IAAK,SAAQ,SAAS,CAAC,SAAS,CAAC;IAoC3B,MAAM,EAAE,aAAa,CAAC;IAEvC,WAAW,UAAW,UAAU,UAI9B;IAEF,IAAI,QAAQ,YAIX;CACF;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cell } from 'ember-resources';
|
|
1
2
|
import type { TOC } from '@ember/component/template-only';
|
|
2
3
|
import type { MiddlewareData } from '@floating-ui/dom';
|
|
3
4
|
import type { ModifierLike, WithBoundArgs } from '@glint/template';
|
|
@@ -92,12 +93,7 @@ interface AttachArrowSignature {
|
|
|
92
93
|
}
|
|
93
94
|
type Direction = 'top' | 'bottom' | 'left' | 'right';
|
|
94
95
|
type Placement = `${Direction}${'' | '-start' | '-end'}`;
|
|
95
|
-
declare const ArrowElement: () =>
|
|
96
|
-
current: HTMLElement;
|
|
97
|
-
toggle: () => void;
|
|
98
|
-
update: (updater: (prevValue: HTMLElement) => HTMLElement) => void;
|
|
99
|
-
set: (nextValue: HTMLElement) => void;
|
|
100
|
-
};
|
|
96
|
+
declare const ArrowElement: () => ReturnType<typeof cell<HTMLElement>>;
|
|
101
97
|
export declare const Popover: TOC<Signature>;
|
|
102
98
|
export default Popover;
|
|
103
99
|
//# sourceMappingURL=popover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAMvC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ;;;;WAIG;QACH,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;QAC5D;;;;WAIG;QACH,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1D;;;;WAIG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC;QAChE;;;;;;;;;;;;WAYG;QACH,SAAS,CAAC,EAAE,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;QAC9E;;;;WAIG;QACH,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9D;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;KACvD,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;gBAClC,OAAO,EAAE,aAAa,CAAC,OAAO,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/C,IAAI,EAAE,cAAc,CAAC;gBACrB,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,CAAC;aACnF;SACF,CAAC;KACH,CAAC;CACH;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY,CAAC;YAAE,OAAO,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;KAC9C,CAAC;IACF,MAAM,EAAE;QAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC;CACzB;AAED;;;GAGG;AACH,QAAA,MAAM,OAAO,EAAE,GAAG,CAAC,uBAAuB,CAgBxC,CAAC;AAEH,UAAU,oBAAoB;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,EAAE;gBACL,cAAc,CAAC,EAAE,cAAc,CAAC;gBAChC,SAAS,CAAC,EAAE,SAAS,CAAC;aACvB,CAAC;SACH,CAAC;KACH,CAAC;CACH;AASD,KAAK,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACrD,KAAK,SAAS,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;AAkCzD,QAAA,MAAM,YAAY,EAAE,MAAM,UAAU,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAA6B,CAAC;AAmB3F,eAAO,MAAM,OAAO,EAAE,GAAG,CAAC,SAAS,CAuBjC,CAAC;AAEH,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-targets.d.ts","sourceRoot":"","sources":["../../src/components/portal-targets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;EAIlB,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"portal-targets.d.ts","sourceRoot":"","sources":["../../src/components/portal-targets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;EAIlB,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAgC9D;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,EAAE,CAAC;IACT,MAAM,EAAE,EAAE,CAAC;CACZ;AAED,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,SAAS,CAoBvC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import Component from '@glimmer/component';
|
|
2
|
+
import type { TOC } from '@ember/component/template-only';
|
|
3
|
+
import type { WithBoundArgs } from '@glint/template';
|
|
4
|
+
export interface Signature {
|
|
5
|
+
Element: HTMLDivElement;
|
|
6
|
+
Args: {
|
|
7
|
+
/**
|
|
8
|
+
* The current progress
|
|
9
|
+
* This may be less than 0 or more than `max`,
|
|
10
|
+
* but the resolved value (managed internally, and yielded out)
|
|
11
|
+
* does not exceed the range [0, max]
|
|
12
|
+
*/
|
|
13
|
+
value: number;
|
|
14
|
+
/**
|
|
15
|
+
* The max value, defaults to 100
|
|
16
|
+
*/
|
|
17
|
+
max?: number;
|
|
18
|
+
};
|
|
19
|
+
Blocks: {
|
|
20
|
+
default: [
|
|
21
|
+
{
|
|
22
|
+
/**
|
|
23
|
+
* The indicator element with some state applied.
|
|
24
|
+
* This can be used to style the progress of bar.
|
|
25
|
+
*/
|
|
26
|
+
Indicator: WithBoundArgs<typeof Indicator, 'value' | 'max' | 'percent'>;
|
|
27
|
+
/**
|
|
28
|
+
* The value as a percent of how far along the indicator should be
|
|
29
|
+
* positioned, between 0 and 100.
|
|
30
|
+
* Will be rounded to two decimal places.
|
|
31
|
+
*/
|
|
32
|
+
percent: number;
|
|
33
|
+
/**
|
|
34
|
+
* The value as a percent of how far along the indicator should be positioned,
|
|
35
|
+
* between 0 and 1
|
|
36
|
+
*/
|
|
37
|
+
decimal: number;
|
|
38
|
+
/**
|
|
39
|
+
* The resolved value within the limits of the progress bar.
|
|
40
|
+
*/
|
|
41
|
+
value: number;
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
declare const Indicator: TOC<{
|
|
47
|
+
Element: HTMLDivElement;
|
|
48
|
+
Args: {
|
|
49
|
+
max: number;
|
|
50
|
+
value: number;
|
|
51
|
+
percent: number;
|
|
52
|
+
};
|
|
53
|
+
Blocks: {
|
|
54
|
+
default: [];
|
|
55
|
+
};
|
|
56
|
+
}>;
|
|
57
|
+
export declare class Progress extends Component<Signature> {
|
|
58
|
+
get max(): number;
|
|
59
|
+
get value(): number;
|
|
60
|
+
get valueLabel(): string;
|
|
61
|
+
get decimal(): number;
|
|
62
|
+
get percent(): number;
|
|
63
|
+
}
|
|
64
|
+
export default Progress;
|
|
65
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ;;;;;YAKI;QACJ,KAAK,EAAE,MAAM,CAAC;QACd;;YAEI;QACJ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QAAC,OAAO,EAAE;YAAC;gBACjB;;;oBAGI;gBACJ,SAAS,EAAE,aAAa,CAAC,OAAO,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;gBACxE;;;;oBAII;gBACJ,OAAO,EAAE,MAAM,CAAC;gBAChB;;;oBAGI;gBACJ,OAAO,EAAE,MAAM,CAAC;gBAChB;;oBAEI;gBACJ,KAAK,EAAE,MAAM,CAAC;aACf;SAAC,CAAA;KAAC,CAAA;CACJ;AA2CD,QAAA,MAAM,SAAS,EAAE,GAAG,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;KAAE,CAAC;IACvD,MAAM,EAAE;QAAC,OAAO,EAAC,EAAE,CAAA;KAAC,CAAA;CACrB,CAaC,CAAC;AAGH,qBAAa,QAAS,SAAQ,SAAS,CAAC,SAAS,CAAC;IAChD,IAAI,GAAG,WAEN;IAED,IAAI,KAAK,WAER;IAED,IAAI,UAAU,WAEb;IAED,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,WAEV;CA4BF;AAED,eAAe,QAAQ,CAAC"}
|
package/dist-types/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { Popover } from './components/popover';
|
|
|
5
5
|
export { Portal } from './components/portal';
|
|
6
6
|
export { PortalTargets } from './components/portal-targets';
|
|
7
7
|
export { TARGETS as PORTALS } from './components/portal-targets';
|
|
8
|
+
export { Progress } from './components/progress';
|
|
8
9
|
export { Shadowed } from './components/shadowed';
|
|
9
10
|
export { Switch } from './components/switch';
|
|
10
11
|
export { Toggle } from './components/toggle';
|