ember-primitives 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declarations/components/dialog.d.ts +4 -4
- package/declarations/components/form.d.ts +19 -1
- package/declarations/components/form.d.ts.map +1 -1
- package/declarations/components/link.d.ts +35 -13
- package/declarations/components/link.d.ts.map +1 -1
- package/declarations/components/one-time-password/input.d.ts +1 -1
- package/declarations/components/popover.d.ts +1 -7
- package/declarations/components/popover.d.ts.map +1 -1
- package/declarations/helpers/link.d.ts +29 -0
- package/declarations/helpers/link.d.ts.map +1 -0
- package/declarations/helpers.d.ts +1 -0
- package/declarations/helpers.d.ts.map +1 -1
- package/dist/_app_/helpers/link.js +1 -0
- package/dist/components/accordion/content.js +1 -1
- package/dist/components/accordion/header.js +1 -1
- package/dist/components/accordion/item.js +1 -1
- package/dist/components/accordion/trigger.js +1 -1
- package/dist/components/accordion.js +3 -3
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/avatar.js +4 -4
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/dialog.js +4 -4
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/form.js +49 -6
- package/dist/components/form.js.map +1 -1
- package/dist/components/link.js +11 -77
- package/dist/components/link.js.map +1 -1
- package/dist/components/menu.js +6 -6
- package/dist/components/menu.js.map +1 -1
- package/dist/components/one-time-password/buttons.js +2 -2
- package/dist/components/one-time-password/buttons.js.map +1 -1
- package/dist/components/one-time-password/input.js +4 -4
- package/dist/components/one-time-password/input.js.map +1 -1
- package/dist/components/one-time-password/otp.js +2 -2
- package/dist/components/one-time-password/otp.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal-targets.js +2 -2
- package/dist/components/portal-targets.js.map +1 -1
- package/dist/components/portal.js +2 -2
- package/dist/components/portal.js.map +1 -1
- package/dist/components/progress.js +4 -4
- package/dist/components/progress.js.map +1 -1
- package/dist/components/scroller.js +2 -2
- package/dist/components/scroller.js.map +1 -1
- package/dist/components/shadowed.js +4 -4
- package/dist/components/shadowed.js.map +1 -1
- package/dist/components/switch.js +4 -4
- package/dist/components/switch.js.map +1 -1
- package/dist/components/toggle-group.js +6 -6
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +2 -2
- package/dist/components/toggle.js.map +1 -1
- package/dist/floating-ui/component.js +2 -2
- package/dist/floating-ui/component.js.map +1 -1
- package/dist/helpers/link.js +79 -0
- package/dist/helpers/link.js.map +1 -0
- package/dist/helpers.js +1 -0
- package/dist/helpers.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/{item-kSSfp2r5.js → item-DmpElnSZ.js} +9 -9
- package/dist/{item-kSSfp2r5.js.map → item-DmpElnSZ.js.map} +1 -1
- package/package.json +18 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroller.js","sources":["../../src/components/scroller.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { isDestroyed, isDestroying } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { modifier } from 'ember-modifier';\n/**\n * Utility component for helping with scrolling in any direction within\n * any of the 4 directions: up, down, left, right.\n *\n * This can be used to auto-scroll content as new content is inserted into the scrollable area, or possibly to bring focus to something on the page.\n */ export class Scroller extends Component<{\n /**\n * A containing element is required - in this case, a div.\n * It must be scrollable for this component to work, but can be customized.\n *\n * By default, this element will have some styling applied:\n * overflow: auto;\n *\n * By default, this element will have tabindex=\"0\" to support keyboard usage.\n *\n * The scroll-behavior is \"auto\", which can be controlled via CSS\n * https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n *\n */ Element: HTMLDivElement;\n Blocks: {\n default: [{\n /**\n * Scroll the content to the bottom\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToBottom) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToBottom: () => void;\n /**\n * Scroll the content to the top\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToTop) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToTop: () => void;\n /**\n * Scroll the content to the left\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToLeft) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToLeft: () => void;\n /**\n * Scroll the content to the right\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToRight) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToRight: () => void;\n }];\n };\n}> {\n withinElement: HTMLDivElement;\n ref = modifier((el1: HTMLDivElement)=>{\n this.withinElement = el1;\n });\n #frame: number;\n scrollToBottom = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n top: this.withinElement.scrollHeight,\n behavior: 'auto'\n });\n });\n };\n scrollToTop = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n top: 0,\n behavior: 'auto'\n });\n });\n };\n scrollToLeft = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n left: 0,\n behavior: 'auto'\n });\n });\n };\n scrollToRight = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n left: this.withinElement.scrollWidth,\n behavior: 'auto'\n });\n });\n };\n static{\n template(`\n <div tabindex=\"0\" ...attributes {{this.ref}}>\n {{yield\n (hash\n scrollToBottom=this.scrollToBottom\n scrollToTop=this.scrollToTop\n scrollToLeft=this.scrollToLeft\n scrollToRight=this.scrollToRight\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3Njcm9sbGVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0Rlc3Ryb3llZCwgaXNEZXN0cm95aW5nIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcblxuaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5cbi8qKlxuICogVXRpbGl0eSBjb21wb25lbnQgZm9yIGhlbHBpbmcgd2l0aCBzY3JvbGxpbmcgaW4gYW55IGRpcmVjdGlvbiB3aXRoaW5cbiAqIGFueSBvZiB0aGUgNCBkaXJlY3Rpb25zOiB1cCwgZG93biwgbGVmdCwgcmlnaHQuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBhdXRvLXNjcm9sbCBjb250ZW50IGFzIG5ldyBjb250ZW50IGlzIGluc2VydGVkIGludG8gdGhlIHNjcm9sbGFibGUgYXJlYSwgb3IgcG9zc2libHkgdG8gYnJpbmcgZm9jdXMgdG8gc29tZXRoaW5nIG9uIHRoZSBwYWdlLlxuICovXG5leHBvcnQgY2xhc3MgU2Nyb2xsZXIgZXh0ZW5kcyBDb21wb25lbnQ8e1xuICAvKipcbiAgICogQSBjb250YWluaW5nIGVsZW1lbnQgaXMgcmVxdWlyZWQgLSBpbiB0aGlzIGNhc2UsIGEgZGl2LlxuICAgKiBJdCBtdXN0IGJlIHNjcm9sbGFibGUgZm9yIHRoaXMgY29tcG9uZW50IHRvIHdvcmssIGJ1dCBjYW4gYmUgY3VzdG9taXplZC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBlbGVtZW50IHdpbGwgaGF2ZSBzb21lIHN0eWxpbmcgYXBwbGllZDpcbiAgICogICBvdmVyZmxvdzogYXV0bztcbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBlbGVtZW50IHdpbGwgaGF2ZSB0YWJpbmRleD1cIjBcIiB0byBzdXBwb3J0IGtleWJvYXJkIHVzYWdlLlxuICAgKlxuICAgKiBUaGUgc2Nyb2xsLWJlaGF2aW9yIGlzIFwiYXV0b1wiLCB3aGljaCBjYW4gYmUgY29udHJvbGxlZCB2aWEgQ1NTXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9zY3JvbGwtYmVoYXZpb3JcbiAgICpcbiAgICovXG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGwgdGhlIGNvbnRlbnQgdG8gdGhlIGJvdHRvbVxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU2Nyb2xsZXIgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxTY3JvbGxlciBhcyB8c3w-XG4gICAgICAgICAqICAgICAgLi4uXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAge3sgKHMuc2Nyb2xsVG9Cb3R0b20pIH19XG4gICAgICAgICAqICAgPC9TY3JvbGxlcj5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBzY3JvbGxUb0JvdHRvbTogKCkgPT4gdm9pZDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNjcm9sbCB0aGUgY29udGVudCB0byB0aGUgdG9wXG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTY3JvbGxlciB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFNjcm9sbGVyIGFzIHxzfD5cbiAgICAgICAgICogICAgICAuLi5cbiAgICAgICAgICpcbiAgICAgICAgICogICAgICB7eyAocy5zY3JvbGxUb1RvcCkgfX1cbiAgICAgICAgICogICA8L1Njcm9sbGVyPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICovXG4gICAgICAgIHNjcm9sbFRvVG9wOiAoKSA9PiB2b2lkO1xuICAgICAgICAvKipcbiAgICAgICAgICogU2Nyb2xsIHRoZSBjb250ZW50IHRvIHRoZSBsZWZ0XG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTY3JvbGxlciB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFNjcm9sbGVyIGFzIHxzfD5cbiAgICAgICAgICogICAgICAuLi5cbiAgICAgICAgICpcbiAgICAgICAgICogICAgICB7eyAocy5zY3JvbGxUb0xlZnQpIH19XG4gICAgICAgICAqICAgPC9TY3JvbGxlcj5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBzY3JvbGxUb0xlZnQ6ICgpID0-IHZvaWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGwgdGhlIGNvbnRlbnQgdG8gdGhlIHJpZ2h0XG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTY3JvbGxlciB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFNjcm9sbGVyIGFzIHxzfD5cbiAgICAgICAgICogICAgICAuLi5cbiAgICAgICAgICpcbiAgICAgICAgICogICAgICB7eyAocy5zY3JvbGxUb1JpZ2h0KSB9fVxuICAgICAgICAgKiAgIDwvU2Nyb2xsZXI-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKi9cbiAgICAgICAgc2Nyb2xsVG9SaWdodDogKCkgPT4gdm9pZDtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn0-IHtcbiAgZGVjbGFyZSB3aXRoaW5FbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcblxuICByZWYgPSBtb2RpZmllcigoZWw6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgdGhpcy53aXRoaW5FbGVtZW50ID0gZWw7XG4gIH0pO1xuXG4gICNmcmFtZT86IG51bWJlcjtcblxuICBzY3JvbGxUb0JvdHRvbSA9ICgpID0-IHtcbiAgICBpZiAodGhpcy4jZnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuI2ZyYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLiNmcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAoaXNEZXN0cm95ZWQodGhpcykgfHwgaXNEZXN0cm95aW5nKHRoaXMpKSByZXR1cm47XG5cbiAgICAgIHRoaXMud2l0aGluRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbEhlaWdodCxcbiAgICAgICAgYmVoYXZpb3I6ICdhdXRvJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHNjcm9sbFRvVG9wID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLiNmcmFtZSkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jZnJhbWUpO1xuICAgIH1cblxuICAgIHRoaXMuI2ZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIGlmIChpc0Rlc3Ryb3llZCh0aGlzKSB8fCBpc0Rlc3Ryb3lpbmcodGhpcykpIHJldHVybjtcblxuICAgICAgdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBiZWhhdmlvcjogJ2F1dG8nLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgc2Nyb2xsVG9MZWZ0ID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLiNmcmFtZSkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jZnJhbWUpO1xuICAgIH1cblxuICAgIHRoaXMuI2ZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIGlmIChpc0Rlc3Ryb3llZCh0aGlzKSB8fCBpc0Rlc3Ryb3lpbmcodGhpcykpIHJldHVybjtcblxuICAgICAgdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgYmVoYXZpb3I6ICdhdXRvJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHNjcm9sbFRvUmlnaHQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuI2ZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLiNmcmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy4jZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRGVzdHJveWVkKHRoaXMpIHx8IGlzRGVzdHJveWluZyh0aGlzKSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLndpdGhpbkVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBsZWZ0OiB0aGlzLndpdGhpbkVsZW1lbnQuc2Nyb2xsV2lkdGgsXG4gICAgICAgIGJlaGF2aW9yOiAnYXV0bycsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICA8dGVtcGxhdGU-XG4gICAgPGRpdiB0YWJpbmRleD1cIjBcIiAuLi5hdHRyaWJ1dGVzIHt7dGhpcy5yZWZ9fT5cbiAgICAgIHt7eWllbGRcbiAgICAgICAgKGhhc2hcbiAgICAgICAgICBzY3JvbGxUb0JvdHRvbT10aGlzLnNjcm9sbFRvQm90dG9tXG4gICAgICAgICAgc2Nyb2xsVG9Ub3A9dGhpcy5zY3JvbGxUb1RvcFxuICAgICAgICAgIHNjcm9sbFRvTGVmdD10aGlzLnNjcm9sbFRvTGVmdFxuICAgICAgICAgIHNjcm9sbFRvUmlnaHQ9dGhpcy5zY3JvbGxUb1JpZ2h0XG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["Scroller","Component","withinElement","ref","modifier","el1","scrollToBottom","cancelAnimationFrame","requestAnimationFrame","isDestroyed","isDestroying","scrollTo","top","scrollHeight","behavior","scrollToTop","scrollToLeft","left","scrollToRight","scrollWidth","setComponentTemplate","precompileTemplate","scope","hash","strictMode"],"mappings":";;;;;;;AAYO,MAAMA,QAAA,SAAiBC,SAAA;EAsFpBC,aAAA,CAAA;EAERC,GAAA,GAAMC,QAAA,CAAUC,GAAI,IAAA;IAClB,IAAI,CAACH,aAAa,GAAGG,GAAA,CAAA;AACvB,GAAA,CAAA,CAAA;AAEA,EAAA,MAAM,CAAA;AAENC,EAAAA,cAAA,GAAiBA,MAAA;AACf,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfC,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BC,QAAAA,GAAA,EAAK,IAAI,CAACV,aAAa,CAACW,YAAY;AACpCC,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAC,EAAAA,WAAA,GAAcA,MAAA;AACZ,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfR,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BC,QAAAA,GAAA,EAAK,CAAA;AACLE,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAE,EAAAA,YAAA,GAAeA,MAAA;AACb,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfT,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BM,QAAAA,IAAA,EAAM,CAAA;AACNH,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAI,EAAAA,aAAA,GAAgBA,MAAA;AACd,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfX,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BM,QAAAA,IAAA,EAAM,IAAI,CAACf,aAAa,CAACiB,WAAW;AACpCL,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEA,EAAA;IAAAM,oBAAA,CAAAC,kBAAA,CAWA,+NAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"scroller.js","sources":["../../src/components/scroller.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { isDestroyed, isDestroying } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { modifier } from 'ember-modifier';\n/**\n * Utility component for helping with scrolling in any direction within\n * any of the 4 directions: up, down, left, right.\n *\n * This can be used to auto-scroll content as new content is inserted into the scrollable area, or possibly to bring focus to something on the page.\n */ export class Scroller extends Component<{\n /**\n * A containing element is required - in this case, a div.\n * It must be scrollable for this component to work, but can be customized.\n *\n * By default, this element will have some styling applied:\n * overflow: auto;\n *\n * By default, this element will have tabindex=\"0\" to support keyboard usage.\n *\n * The scroll-behavior is \"auto\", which can be controlled via CSS\n * https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n *\n */ Element: HTMLDivElement;\n Blocks: {\n default: [{\n /**\n * Scroll the content to the bottom\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToBottom) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToBottom: () => void;\n /**\n * Scroll the content to the top\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToTop) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToTop: () => void;\n /**\n * Scroll the content to the left\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToLeft) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToLeft: () => void;\n /**\n * Scroll the content to the right\n *\n * ```gjs\n * import { Scroller } from 'ember-primitives';\n *\n * <template>\n * <Scroller as |s|>\n * ...\n *\n * {{ (s.scrollToRight) }}\n * </Scroller>\n * </template>\n * ```\n */ scrollToRight: () => void;\n }];\n };\n}> {\n withinElement: HTMLDivElement;\n ref = modifier((el1: HTMLDivElement)=>{\n this.withinElement = el1;\n });\n #frame: number;\n scrollToBottom = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n top: this.withinElement.scrollHeight,\n behavior: 'auto'\n });\n });\n };\n scrollToTop = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n top: 0,\n behavior: 'auto'\n });\n });\n };\n scrollToLeft = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n left: 0,\n behavior: 'auto'\n });\n });\n };\n scrollToRight = ()=>{\n if (this.#frame) {\n cancelAnimationFrame(this.#frame);\n }\n this.#frame = requestAnimationFrame(()=>{\n if (isDestroyed(this) || isDestroying(this)) return;\n this.withinElement.scrollTo({\n left: this.withinElement.scrollWidth,\n behavior: 'auto'\n });\n });\n };\n static{\n template(`\n <div tabindex=\"0\" ...attributes {{this.ref}}>\n {{yield\n (hash\n scrollToBottom=this.scrollToBottom\n scrollToTop=this.scrollToTop\n scrollToLeft=this.scrollToLeft\n scrollToRight=this.scrollToRight\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3Njcm9sbGVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0Rlc3Ryb3llZCwgaXNEZXN0cm95aW5nIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcblxuaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5cbi8qKlxuICogVXRpbGl0eSBjb21wb25lbnQgZm9yIGhlbHBpbmcgd2l0aCBzY3JvbGxpbmcgaW4gYW55IGRpcmVjdGlvbiB3aXRoaW5cbiAqIGFueSBvZiB0aGUgNCBkaXJlY3Rpb25zOiB1cCwgZG93biwgbGVmdCwgcmlnaHQuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBhdXRvLXNjcm9sbCBjb250ZW50IGFzIG5ldyBjb250ZW50IGlzIGluc2VydGVkIGludG8gdGhlIHNjcm9sbGFibGUgYXJlYSwgb3IgcG9zc2libHkgdG8gYnJpbmcgZm9jdXMgdG8gc29tZXRoaW5nIG9uIHRoZSBwYWdlLlxuICovXG5leHBvcnQgY2xhc3MgU2Nyb2xsZXIgZXh0ZW5kcyBDb21wb25lbnQ8e1xuICAvKipcbiAgICogQSBjb250YWluaW5nIGVsZW1lbnQgaXMgcmVxdWlyZWQgLSBpbiB0aGlzIGNhc2UsIGEgZGl2LlxuICAgKiBJdCBtdXN0IGJlIHNjcm9sbGFibGUgZm9yIHRoaXMgY29tcG9uZW50IHRvIHdvcmssIGJ1dCBjYW4gYmUgY3VzdG9taXplZC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBlbGVtZW50IHdpbGwgaGF2ZSBzb21lIHN0eWxpbmcgYXBwbGllZDpcbiAgICogICBvdmVyZmxvdzogYXV0bztcbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBlbGVtZW50IHdpbGwgaGF2ZSB0YWJpbmRleD1cIjBcIiB0byBzdXBwb3J0IGtleWJvYXJkIHVzYWdlLlxuICAgKlxuICAgKiBUaGUgc2Nyb2xsLWJlaGF2aW9yIGlzIFwiYXV0b1wiLCB3aGljaCBjYW4gYmUgY29udHJvbGxlZCB2aWEgQ1NTXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9zY3JvbGwtYmVoYXZpb3JcbiAgICpcbiAgICovXG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGwgdGhlIGNvbnRlbnQgdG8gdGhlIGJvdHRvbVxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU2Nyb2xsZXIgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxTY3JvbGxlciBhcyB8c3w-XG4gICAgICAgICAqICAgICAgLi4uXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAge3sgKHMuc2Nyb2xsVG9Cb3R0b20pIH19XG4gICAgICAgICAqICAgPC9TY3JvbGxlcj5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBzY3JvbGxUb0JvdHRvbTogKCkgPT4gdm9pZDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNjcm9sbCB0aGUgY29udGVudCB0byB0aGUgdG9wXG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTY3JvbGxlciB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFNjcm9sbGVyIGFzIHxzfD5cbiAgICAgICAgICogICAgICAuLi5cbiAgICAgICAgICpcbiAgICAgICAgICogICAgICB7eyAocy5zY3JvbGxUb1RvcCkgfX1cbiAgICAgICAgICogICA8L1Njcm9sbGVyPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICovXG4gICAgICAgIHNjcm9sbFRvVG9wOiAoKSA9PiB2b2lkO1xuICAgICAgICAvKipcbiAgICAgICAgICogU2Nyb2xsIHRoZSBjb250ZW50IHRvIHRoZSBsZWZ0XG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTY3JvbGxlciB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFNjcm9sbGVyIGFzIHxzfD5cbiAgICAgICAgICogICAgICAuLi5cbiAgICAgICAgICpcbiAgICAgICAgICogICAgICB7eyAocy5zY3JvbGxUb0xlZnQpIH19XG4gICAgICAgICAqICAgPC9TY3JvbGxlcj5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBzY3JvbGxUb0xlZnQ6ICgpID0-IHZvaWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGwgdGhlIGNvbnRlbnQgdG8gdGhlIHJpZ2h0XG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTY3JvbGxlciB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFNjcm9sbGVyIGFzIHxzfD5cbiAgICAgICAgICogICAgICAuLi5cbiAgICAgICAgICpcbiAgICAgICAgICogICAgICB7eyAocy5zY3JvbGxUb1JpZ2h0KSB9fVxuICAgICAgICAgKiAgIDwvU2Nyb2xsZXI-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKi9cbiAgICAgICAgc2Nyb2xsVG9SaWdodDogKCkgPT4gdm9pZDtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn0-IHtcbiAgZGVjbGFyZSB3aXRoaW5FbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcblxuICByZWYgPSBtb2RpZmllcigoZWw6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgdGhpcy53aXRoaW5FbGVtZW50ID0gZWw7XG4gIH0pO1xuXG4gICNmcmFtZT86IG51bWJlcjtcblxuICBzY3JvbGxUb0JvdHRvbSA9ICgpID0-IHtcbiAgICBpZiAodGhpcy4jZnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuI2ZyYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLiNmcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAoaXNEZXN0cm95ZWQodGhpcykgfHwgaXNEZXN0cm95aW5nKHRoaXMpKSByZXR1cm47XG5cbiAgICAgIHRoaXMud2l0aGluRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbEhlaWdodCxcbiAgICAgICAgYmVoYXZpb3I6ICdhdXRvJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHNjcm9sbFRvVG9wID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLiNmcmFtZSkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jZnJhbWUpO1xuICAgIH1cblxuICAgIHRoaXMuI2ZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIGlmIChpc0Rlc3Ryb3llZCh0aGlzKSB8fCBpc0Rlc3Ryb3lpbmcodGhpcykpIHJldHVybjtcblxuICAgICAgdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBiZWhhdmlvcjogJ2F1dG8nLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgc2Nyb2xsVG9MZWZ0ID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLiNmcmFtZSkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jZnJhbWUpO1xuICAgIH1cblxuICAgIHRoaXMuI2ZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIGlmIChpc0Rlc3Ryb3llZCh0aGlzKSB8fCBpc0Rlc3Ryb3lpbmcodGhpcykpIHJldHVybjtcblxuICAgICAgdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgYmVoYXZpb3I6ICdhdXRvJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHNjcm9sbFRvUmlnaHQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuI2ZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLiNmcmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy4jZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRGVzdHJveWVkKHRoaXMpIHx8IGlzRGVzdHJveWluZyh0aGlzKSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLndpdGhpbkVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBsZWZ0OiB0aGlzLndpdGhpbkVsZW1lbnQuc2Nyb2xsV2lkdGgsXG4gICAgICAgIGJlaGF2aW9yOiAnYXV0bycsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICA8dGVtcGxhdGU-XG4gICAgPGRpdiB0YWJpbmRleD1cIjBcIiAuLi5hdHRyaWJ1dGVzIHt7dGhpcy5yZWZ9fT5cbiAgICAgIHt7eWllbGRcbiAgICAgICAgKGhhc2hcbiAgICAgICAgICBzY3JvbGxUb0JvdHRvbT10aGlzLnNjcm9sbFRvQm90dG9tXG4gICAgICAgICAgc2Nyb2xsVG9Ub3A9dGhpcy5zY3JvbGxUb1RvcFxuICAgICAgICAgIHNjcm9sbFRvTGVmdD10aGlzLnNjcm9sbFRvTGVmdFxuICAgICAgICAgIHNjcm9sbFRvUmlnaHQ9dGhpcy5zY3JvbGxUb1JpZ2h0XG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["Scroller","Component","withinElement","ref","modifier","el1","scrollToBottom","cancelAnimationFrame","requestAnimationFrame","isDestroyed","isDestroying","scrollTo","top","scrollHeight","behavior","scrollToTop","scrollToLeft","left","scrollToRight","scrollWidth","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":";;;;;;;AAYO,MAAMA,QAAA,SAAiBC,SAAA;EAsFpBC,aAAA,CAAA;EAERC,GAAA,GAAMC,QAAA,CAAUC,GAAI,IAAA;IAClB,IAAI,CAACH,aAAa,GAAGG,GAAA,CAAA;AACvB,GAAA,CAAA,CAAA;AAEA,EAAA,MAAM,CAAA;AAENC,EAAAA,cAAA,GAAiBA,MAAA;AACf,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfC,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BC,QAAAA,GAAA,EAAK,IAAI,CAACV,aAAa,CAACW,YAAY;AACpCC,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAC,EAAAA,WAAA,GAAcA,MAAA;AACZ,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfR,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BC,QAAAA,GAAA,EAAK,CAAA;AACLE,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAE,EAAAA,YAAA,GAAeA,MAAA;AACb,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfT,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BM,QAAAA,IAAA,EAAM,CAAA;AACNH,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAI,EAAAA,aAAA,GAAgBA,MAAA;AACd,IAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACfX,MAAAA,oBAAA,CAAqB,IAAI,CAAC,MAAM,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,IAAI,CAAC,MAAM,GAAGC,qBAAA,CAAsB,MAAA;AAClC,MAAA,IAAIC,WAAA,CAAY,IAAI,KAAKC,YAAA,CAAa,IAAI,CAAG,EAAA,OAAA;AAE7C,MAAA,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC;AAC1BM,QAAAA,IAAA,EAAM,IAAI,CAACf,aAAa,CAACiB,WAAW;AACpCL,QAAAA,QAAA,EAAU,MAAA;AACZ,OAAA,CAAA,CAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEA,EAAA;IAAAM,oBAAA,CAAAC,kBAAA,CAWA,+NAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
@@ -38,10 +38,10 @@ const getStyles = () => [...document.querySelectorAll('link')].map(link1 => link
|
|
|
38
38
|
* link is only valid in the head element.
|
|
39
39
|
*/
|
|
40
40
|
const Styles = setComponentTemplate(precompileTemplate("\n <style>\n {{#each (getStyles) as |styleHref|}}\n\n @import \"{{styleHref}}\";\n\n {{/each}}\n </style>\n", {
|
|
41
|
+
strictMode: true,
|
|
41
42
|
scope: () => ({
|
|
42
43
|
getStyles
|
|
43
|
-
})
|
|
44
|
-
strictMode: true
|
|
44
|
+
})
|
|
45
45
|
}), templateOnly());
|
|
46
46
|
/**
|
|
47
47
|
* Render content in a shadow dom, attached to a div.
|
|
@@ -53,11 +53,11 @@ const Styles = setComponentTemplate(precompileTemplate("\n <style>\n {{#each
|
|
|
53
53
|
* This is useful when you want to render content that escapes your app's styles.
|
|
54
54
|
*/
|
|
55
55
|
const Shadowed = setComponentTemplate(precompileTemplate("\n {{#let (Shadow) as |shadow|}}\n {{!-- TODO: We need a way in ember to render in to a shadow dom without an effect --}}\n <div {{shadow.attach}} ...attributes></div>\n\n {{#if shadow.root}}\n {{#in-element shadow.root}}\n\n {{#if @includeStyles}}\n <Styles />\n {{/if}}\n\n {{yield}}\n\n {{/in-element}}\n {{/if}}\n {{/let}}\n", {
|
|
56
|
+
strictMode: true,
|
|
56
57
|
scope: () => ({
|
|
57
58
|
Shadow,
|
|
58
59
|
Styles
|
|
59
|
-
})
|
|
60
|
-
strictMode: true
|
|
60
|
+
})
|
|
61
61
|
}), templateOnly());
|
|
62
62
|
|
|
63
63
|
export { Shadowed, Shadowed as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadowed.js","sources":["../../src/components/shadowed.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { modifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport type { TOC } from '@ember/component/template-only';\nconst Shadow = ()=>{\n let shadow1 = cell<Element>();\n return {\n get root () {\n return shadow1.current;\n },\n attach: modifier((element1: Element)=>{\n let shadowRoot1 = element1.attachShadow({\n mode: 'open'\n });\n let div1 = document.createElement('div');\n // ember-source 5.6 broke the ability to in-element\n // natively into a shadowroot.\n //\n // See these ember-source bugs:\n // - https://github.com/emberjs/ember.js/issues/20643\n // - https://github.com/emberjs/ember.js/issues/20642\n // - https://github.com/emberjs/ember.js/issues/20641\n shadowRoot1.appendChild(div1);\n shadow1.set(div1);\n })\n };\n};\n// index.html has the production-fingerprinted references to these links\n// Ideally, we'd have some pre-processor scan everything for references to\n// assets in public, but idk how to set that up\nconst getStyles = ()=>[\n ...document.querySelectorAll('link')\n ].map((link1)=>link1.href);\n/**\n * style + native @import\n * is the only robust way to load styles in a shadowroot.\n *\n * link is only valid in the head element.\n */ const Styles = template(`\n <style>\n {{#each (getStyles) as |styleHref|}}\n\n @import \"{{styleHref}}\";\n\n {{/each}}\n </style>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n/**\n * Render content in a shadow dom, attached to a div.\n *\n * Uses the [shadow DOM][mdn-shadow-dom] API.\n *\n * [mdn-shadow-dom]: https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM\n *\n * This is useful when you want to render content that escapes your app's styles.\n */ export const Shadowed: TOC<{\n /**\n * The shadow dom attaches to a div element.\n * You may specify any attribute, and it'll be applied to this host element.\n */ Element: HTMLDivElement;\n Args: {\n /**\n * @public\n *\n * By default, shadow-dom does not include any styles.\n * Setting this to true will include all the `<style>` tags\n * that are present in the `<head>` element.\n */ includeStyles?: boolean;\n };\n Blocks: {\n /**\n * Content to be placed within the ShadowDOM\n */ default: [];\n };\n}> = template(`\n {{#let (Shadow) as |shadow|}}\n {{! TODO: We need a way in ember to render in to a shadow dom without an effect }}\n <div {{shadow.attach}} ...attributes></div>\n\n {{#if shadow.root}}\n {{#in-element shadow.root}}\n\n {{#if @includeStyles}}\n <Styles />\n {{/if}}\n\n {{yield}}\n\n {{/in-element}}\n {{/if}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Shadowed;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3NoYWRvd2VkLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcbmltcG9ydCB7IGNlbGwgfSBmcm9tICdlbWJlci1yZXNvdXJjZXMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbmNvbnN0IFNoYWRvdyA9ICgpID0-IHtcbiAgbGV0IHNoYWRvdyA9IGNlbGw8RWxlbWVudD4oKTtcblxuICByZXR1cm4ge1xuICAgIGdldCByb290KCkge1xuICAgICAgcmV0dXJuIHNoYWRvdy5jdXJyZW50O1xuICAgIH0sXG4gICAgYXR0YWNoOiBtb2RpZmllcigoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgbGV0IHNoYWRvd1Jvb3QgPSBlbGVtZW50LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTtcbiAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgLy8gZW1iZXItc291cmNlIDUuNiBicm9rZSB0aGUgYWJpbGl0eSB0byBpbi1lbGVtZW50XG4gICAgICAvLyBuYXRpdmVseSBpbnRvIGEgc2hhZG93cm9vdC5cbiAgICAgIC8vXG4gICAgICAvLyBTZWUgdGhlc2UgZW1iZXItc291cmNlIGJ1Z3M6XG4gICAgICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8yMDY0M1xuICAgICAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZW1iZXJqcy9lbWJlci5qcy9pc3N1ZXMvMjA2NDJcbiAgICAgIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2VtYmVyanMvZW1iZXIuanMvaXNzdWVzLzIwNjQxXG4gICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7XG5cbiAgICAgIHNoYWRvdy5zZXQoZGl2KTtcbiAgICB9KSxcbiAgfTtcbn07XG5cbi8vIGluZGV4Lmh0bWwgaGFzIHRoZSBwcm9kdWN0aW9uLWZpbmdlcnByaW50ZWQgcmVmZXJlbmNlcyB0byB0aGVzZSBsaW5rc1xuLy8gSWRlYWxseSwgd2UnZCBoYXZlIHNvbWUgcHJlLXByb2Nlc3NvciBzY2FuIGV2ZXJ5dGhpbmcgZm9yIHJlZmVyZW5jZXMgdG9cbi8vIGFzc2V0cyBpbiBwdWJsaWMsIGJ1dCBpZGsgaG93IHRvIHNldCB0aGF0IHVwXG5jb25zdCBnZXRTdHlsZXMgPSAoKSA9PiBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGluaycpXS5tYXAoKGxpbmspID0-IGxpbmsuaHJlZik7XG5cbi8qKlxuICogc3R5bGUgKyBuYXRpdmUgQGltcG9ydFxuICogaXMgdGhlIG9ubHkgcm9idXN0IHdheSB0byBsb2FkIHN0eWxlcyBpbiBhIHNoYWRvd3Jvb3QuXG4gKlxuICogbGluayBpcyBvbmx5IHZhbGlkIGluIHRoZSBoZWFkIGVsZW1lbnQuXG4gKi9cbmNvbnN0IFN0eWxlcyA9IDx0ZW1wbGF0ZT5cbiAgPHN0eWxlPlxuICAgIHt7I2VhY2ggKGdldFN0eWxlcykgYXMgfHN0eWxlSHJlZnx9fVxuXG4gICAgICBAaW1wb3J0IFwie3tzdHlsZUhyZWZ9fVwiO1xuXG4gICAge3svZWFjaH19XG4gIDwvc3R5bGU-XG48L3RlbXBsYXRlPjtcblxuLyoqXG4gKiBSZW5kZXIgY29udGVudCBpbiBhIHNoYWRvdyBkb20sIGF0dGFjaGVkIHRvIGEgZGl2LlxuICpcbiAqIFVzZXMgdGhlIFtzaGFkb3cgRE9NXVttZG4tc2hhZG93LWRvbV0gQVBJLlxuICpcbiAqIFttZG4tc2hhZG93LWRvbV06IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJfY29tcG9uZW50cy9Vc2luZ19zaGFkb3dfRE9NXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byByZW5kZXIgY29udGVudCB0aGF0IGVzY2FwZXMgeW91ciBhcHAncyBzdHlsZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBTaGFkb3dlZDogVE9DPHtcbiAgLyoqXG4gICAqIFRoZSBzaGFkb3cgZG9tIGF0dGFjaGVzIHRvIGEgZGl2IGVsZW1lbnQuXG4gICAqIFlvdSBtYXkgc3BlY2lmeSBhbnkgYXR0cmlidXRlLCBhbmQgaXQnbGwgYmUgYXBwbGllZCB0byB0aGlzIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogQHB1YmxpY1xuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgc2hhZG93LWRvbSBkb2VzIG5vdCBpbmNsdWRlIGFueSBzdHlsZXMuXG4gICAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBpbmNsdWRlIGFsbCB0aGUgYDxzdHlsZT5gIHRhZ3NcbiAgICAgKiB0aGF0IGFyZSBwcmVzZW50IGluIHRoZSBgPGhlYWQ-YCBlbGVtZW50LlxuICAgICAqL1xuICAgIGluY2x1ZGVTdHlsZXM_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICAvKipcbiAgICAgKiBDb250ZW50IHRvIGJlIHBsYWNlZCB3aXRoaW4gdGhlIFNoYWRvd0RPTVxuICAgICAqL1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufT4gPSA8dGVtcGxhdGU-XG4gIHt7I2xldCAoU2hhZG93KSBhcyB8c2hhZG93fH19XG4gICAge3shIFRPRE86IFdlIG5lZWQgYSB3YXkgaW4gZW1iZXIgdG8gcmVuZGVyIGluIHRvIGEgc2hhZG93IGRvbSB3aXRob3V0IGFuIGVmZmVjdCB9fVxuICAgIDxkaXYge3tzaGFkb3cuYXR0YWNofX0gLi4uYXR0cmlidXRlcz48L2Rpdj5cblxuICAgIHt7I2lmIHNoYWRvdy5yb290fX1cbiAgICAgIHt7I2luLWVsZW1lbnQgc2hhZG93LnJvb3R9fVxuXG4gICAgICAgIHt7I2lmIEBpbmNsdWRlU3R5bGVzfX1cbiAgICAgICAgICA8U3R5bGVzIC8-XG4gICAgICAgIHt7L2lmfX1cblxuICAgICAgICB7e3lpZWxkfX1cblxuICAgICAge3svaW4tZWxlbWVudH19XG4gICAge3svaWZ9fVxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFNoYWRvd2VkO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLFFBQVEsUUFBUSxpQkFBaUI7QUFDMUMsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUUxRCxNQUFNLFNBQVM7SUFDYixJQUFJLFVBQVMsS0FBSztJQUVsQixPQUFPO1FBQ0wsSUFBSSxRQUFPO1lBQ1QsT0FBTyxRQUFPLE9BQU87UUFDdkI7UUFDQSxRQUFRLFNBQVMsQ0FBQyxVQUFTO1lBQ3pCLElBQUksY0FBYSxTQUFRLFlBQVksQ0FBQztnQkFBRSxNQUFNO1lBQU87WUFDckQsSUFBSSxPQUFNLFNBQVMsYUFBYSxDQUFDO1lBRWpDLG1EQUFtRDtZQUNuRCw4QkFBOEI7WUFDOUIsRUFBRTtZQUNGLCtCQUErQjtZQUMvQixxREFBcUQ7WUFDckQscURBQXFEO1lBQ3JELHFEQUFxRDtZQUNyRCxZQUFXLFdBQVcsQ0FBQztZQUV2QixRQUFPLEdBQUcsQ0FBQztRQUNiO0lBQ0Y7QUFDRjtBQUVBLHdFQUF3RTtBQUN4RSwwRUFBMEU7QUFDMUUsK0NBQStDO0FBQy9DLE1BQU0sWUFBWSxJQUFNO1dBQUksU0FBUyxnQkFBZ0IsQ0FBQztLQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUyxNQUFLLElBQUk7QUFFdEY7Ozs7O0NBS0MsR0FDRCxNQUFNLFNBQVMsU0FBVSxDQUFBOzs7Ozs7OztBQVF6QixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUE7QUFFVjs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sTUFBTSxVQUFVO0lBQ3JCOzs7R0FHQyxHQUNELFNBQVM7SUFDVDtRQUNFOzs7Ozs7S0FNQyxHQUNELGdCQUFnQixPQUFPOztJQUV6QjtRQUNFOztLQUVDLEdBQ0Q7O0tBRUMsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLGVBQWUsU0FBUyJ9"],"names":["Shadow","shadow1","cell","root","current","attach","modifier","element1","shadowRoot1","attachShadow","mode","div1","document","createElement","appendChild","set","getStyles","querySelectorAll","map","link1","href","Styles","setComponentTemplate","precompileTemplate","
|
|
1
|
+
{"version":3,"file":"shadowed.js","sources":["../../src/components/shadowed.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { modifier } from 'ember-modifier';\nimport { cell } from 'ember-resources';\nimport type { TOC } from '@ember/component/template-only';\nconst Shadow = ()=>{\n let shadow1 = cell<Element>();\n return {\n get root () {\n return shadow1.current;\n },\n attach: modifier((element1: Element)=>{\n let shadowRoot1 = element1.attachShadow({\n mode: 'open'\n });\n let div1 = document.createElement('div');\n // ember-source 5.6 broke the ability to in-element\n // natively into a shadowroot.\n //\n // See these ember-source bugs:\n // - https://github.com/emberjs/ember.js/issues/20643\n // - https://github.com/emberjs/ember.js/issues/20642\n // - https://github.com/emberjs/ember.js/issues/20641\n shadowRoot1.appendChild(div1);\n shadow1.set(div1);\n })\n };\n};\n// index.html has the production-fingerprinted references to these links\n// Ideally, we'd have some pre-processor scan everything for references to\n// assets in public, but idk how to set that up\nconst getStyles = ()=>[\n ...document.querySelectorAll('link')\n ].map((link1)=>link1.href);\n/**\n * style + native @import\n * is the only robust way to load styles in a shadowroot.\n *\n * link is only valid in the head element.\n */ const Styles = template(`\n <style>\n {{#each (getStyles) as |styleHref|}}\n\n @import \"{{styleHref}}\";\n\n {{/each}}\n </style>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n/**\n * Render content in a shadow dom, attached to a div.\n *\n * Uses the [shadow DOM][mdn-shadow-dom] API.\n *\n * [mdn-shadow-dom]: https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM\n *\n * This is useful when you want to render content that escapes your app's styles.\n */ export const Shadowed: TOC<{\n /**\n * The shadow dom attaches to a div element.\n * You may specify any attribute, and it'll be applied to this host element.\n */ Element: HTMLDivElement;\n Args: {\n /**\n * @public\n *\n * By default, shadow-dom does not include any styles.\n * Setting this to true will include all the `<style>` tags\n * that are present in the `<head>` element.\n */ includeStyles?: boolean;\n };\n Blocks: {\n /**\n * Content to be placed within the ShadowDOM\n */ default: [];\n };\n}> = template(`\n {{#let (Shadow) as |shadow|}}\n {{! TODO: We need a way in ember to render in to a shadow dom without an effect }}\n <div {{shadow.attach}} ...attributes></div>\n\n {{#if shadow.root}}\n {{#in-element shadow.root}}\n\n {{#if @includeStyles}}\n <Styles />\n {{/if}}\n\n {{yield}}\n\n {{/in-element}}\n {{/if}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Shadowed;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3NoYWRvd2VkLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcbmltcG9ydCB7IGNlbGwgfSBmcm9tICdlbWJlci1yZXNvdXJjZXMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbmNvbnN0IFNoYWRvdyA9ICgpID0-IHtcbiAgbGV0IHNoYWRvdyA9IGNlbGw8RWxlbWVudD4oKTtcblxuICByZXR1cm4ge1xuICAgIGdldCByb290KCkge1xuICAgICAgcmV0dXJuIHNoYWRvdy5jdXJyZW50O1xuICAgIH0sXG4gICAgYXR0YWNoOiBtb2RpZmllcigoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgbGV0IHNoYWRvd1Jvb3QgPSBlbGVtZW50LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTtcbiAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgLy8gZW1iZXItc291cmNlIDUuNiBicm9rZSB0aGUgYWJpbGl0eSB0byBpbi1lbGVtZW50XG4gICAgICAvLyBuYXRpdmVseSBpbnRvIGEgc2hhZG93cm9vdC5cbiAgICAgIC8vXG4gICAgICAvLyBTZWUgdGhlc2UgZW1iZXItc291cmNlIGJ1Z3M6XG4gICAgICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8yMDY0M1xuICAgICAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZW1iZXJqcy9lbWJlci5qcy9pc3N1ZXMvMjA2NDJcbiAgICAgIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2VtYmVyanMvZW1iZXIuanMvaXNzdWVzLzIwNjQxXG4gICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7XG5cbiAgICAgIHNoYWRvdy5zZXQoZGl2KTtcbiAgICB9KSxcbiAgfTtcbn07XG5cbi8vIGluZGV4Lmh0bWwgaGFzIHRoZSBwcm9kdWN0aW9uLWZpbmdlcnByaW50ZWQgcmVmZXJlbmNlcyB0byB0aGVzZSBsaW5rc1xuLy8gSWRlYWxseSwgd2UnZCBoYXZlIHNvbWUgcHJlLXByb2Nlc3NvciBzY2FuIGV2ZXJ5dGhpbmcgZm9yIHJlZmVyZW5jZXMgdG9cbi8vIGFzc2V0cyBpbiBwdWJsaWMsIGJ1dCBpZGsgaG93IHRvIHNldCB0aGF0IHVwXG5jb25zdCBnZXRTdHlsZXMgPSAoKSA9PiBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGluaycpXS5tYXAoKGxpbmspID0-IGxpbmsuaHJlZik7XG5cbi8qKlxuICogc3R5bGUgKyBuYXRpdmUgQGltcG9ydFxuICogaXMgdGhlIG9ubHkgcm9idXN0IHdheSB0byBsb2FkIHN0eWxlcyBpbiBhIHNoYWRvd3Jvb3QuXG4gKlxuICogbGluayBpcyBvbmx5IHZhbGlkIGluIHRoZSBoZWFkIGVsZW1lbnQuXG4gKi9cbmNvbnN0IFN0eWxlcyA9IDx0ZW1wbGF0ZT5cbiAgPHN0eWxlPlxuICAgIHt7I2VhY2ggKGdldFN0eWxlcykgYXMgfHN0eWxlSHJlZnx9fVxuXG4gICAgICBAaW1wb3J0IFwie3tzdHlsZUhyZWZ9fVwiO1xuXG4gICAge3svZWFjaH19XG4gIDwvc3R5bGU-XG48L3RlbXBsYXRlPjtcblxuLyoqXG4gKiBSZW5kZXIgY29udGVudCBpbiBhIHNoYWRvdyBkb20sIGF0dGFjaGVkIHRvIGEgZGl2LlxuICpcbiAqIFVzZXMgdGhlIFtzaGFkb3cgRE9NXVttZG4tc2hhZG93LWRvbV0gQVBJLlxuICpcbiAqIFttZG4tc2hhZG93LWRvbV06IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJfY29tcG9uZW50cy9Vc2luZ19zaGFkb3dfRE9NXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byByZW5kZXIgY29udGVudCB0aGF0IGVzY2FwZXMgeW91ciBhcHAncyBzdHlsZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBTaGFkb3dlZDogVE9DPHtcbiAgLyoqXG4gICAqIFRoZSBzaGFkb3cgZG9tIGF0dGFjaGVzIHRvIGEgZGl2IGVsZW1lbnQuXG4gICAqIFlvdSBtYXkgc3BlY2lmeSBhbnkgYXR0cmlidXRlLCBhbmQgaXQnbGwgYmUgYXBwbGllZCB0byB0aGlzIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogQHB1YmxpY1xuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgc2hhZG93LWRvbSBkb2VzIG5vdCBpbmNsdWRlIGFueSBzdHlsZXMuXG4gICAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBpbmNsdWRlIGFsbCB0aGUgYDxzdHlsZT5gIHRhZ3NcbiAgICAgKiB0aGF0IGFyZSBwcmVzZW50IGluIHRoZSBgPGhlYWQ-YCBlbGVtZW50LlxuICAgICAqL1xuICAgIGluY2x1ZGVTdHlsZXM_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICAvKipcbiAgICAgKiBDb250ZW50IHRvIGJlIHBsYWNlZCB3aXRoaW4gdGhlIFNoYWRvd0RPTVxuICAgICAqL1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufT4gPSA8dGVtcGxhdGU-XG4gIHt7I2xldCAoU2hhZG93KSBhcyB8c2hhZG93fH19XG4gICAge3shIFRPRE86IFdlIG5lZWQgYSB3YXkgaW4gZW1iZXIgdG8gcmVuZGVyIGluIHRvIGEgc2hhZG93IGRvbSB3aXRob3V0IGFuIGVmZmVjdCB9fVxuICAgIDxkaXYge3tzaGFkb3cuYXR0YWNofX0gLi4uYXR0cmlidXRlcz48L2Rpdj5cblxuICAgIHt7I2lmIHNoYWRvdy5yb290fX1cbiAgICAgIHt7I2luLWVsZW1lbnQgc2hhZG93LnJvb3R9fVxuXG4gICAgICAgIHt7I2lmIEBpbmNsdWRlU3R5bGVzfX1cbiAgICAgICAgICA8U3R5bGVzIC8-XG4gICAgICAgIHt7L2lmfX1cblxuICAgICAgICB7e3lpZWxkfX1cblxuICAgICAge3svaW4tZWxlbWVudH19XG4gICAge3svaWZ9fVxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFNoYWRvd2VkO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLFFBQVEsUUFBUSxpQkFBaUI7QUFDMUMsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUUxRCxNQUFNLFNBQVM7SUFDYixJQUFJLFVBQVMsS0FBSztJQUVsQixPQUFPO1FBQ0wsSUFBSSxRQUFPO1lBQ1QsT0FBTyxRQUFPLE9BQU87UUFDdkI7UUFDQSxRQUFRLFNBQVMsQ0FBQyxVQUFTO1lBQ3pCLElBQUksY0FBYSxTQUFRLFlBQVksQ0FBQztnQkFBRSxNQUFNO1lBQU87WUFDckQsSUFBSSxPQUFNLFNBQVMsYUFBYSxDQUFDO1lBRWpDLG1EQUFtRDtZQUNuRCw4QkFBOEI7WUFDOUIsRUFBRTtZQUNGLCtCQUErQjtZQUMvQixxREFBcUQ7WUFDckQscURBQXFEO1lBQ3JELHFEQUFxRDtZQUNyRCxZQUFXLFdBQVcsQ0FBQztZQUV2QixRQUFPLEdBQUcsQ0FBQztRQUNiO0lBQ0Y7QUFDRjtBQUVBLHdFQUF3RTtBQUN4RSwwRUFBMEU7QUFDMUUsK0NBQStDO0FBQy9DLE1BQU0sWUFBWSxJQUFNO1dBQUksU0FBUyxnQkFBZ0IsQ0FBQztLQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUyxNQUFLLElBQUk7QUFFdEY7Ozs7O0NBS0MsR0FDRCxNQUFNLFNBQVMsU0FBVSxDQUFBOzs7Ozs7OztBQVF6QixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUE7QUFFVjs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sTUFBTSxVQUFVO0lBQ3JCOzs7R0FHQyxHQUNELFNBQVM7SUFDVDtRQUNFOzs7Ozs7S0FNQyxHQUNELGdCQUFnQixPQUFPOztJQUV6QjtRQUNFOztLQUVDLEdBQ0Q7O0tBRUMsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCZixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLGVBQWUsU0FBUyJ9"],"names":["Shadow","shadow1","cell","root","current","attach","modifier","element1","shadowRoot1","attachShadow","mode","div1","document","createElement","appendChild","set","getStyles","querySelectorAll","map","link1","href","Styles","setComponentTemplate","precompileTemplate","strictMode","scope","templateOnly","Shadowed"],"mappings":";;;;;;AAKA,MAAMA,MAAA,GAASA,MAAA;EACb,IAAIC,OAAA,GAASC,IAAA,EAAK,CAAA;EAElB,OAAO;AACL,IAAA,IAAIC,OAAO;MACT,OAAOF,OAAA,CAAOG,OAAO,CAAA;AACvB,KAAA;IACAC,MAAA,EAAQC,QAAA,CAAUC,QAAS,IAAA;AACzB,MAAA,IAAIC,WAAA,GAAaD,QAAA,CAAQE,YAAY,CAAC;AAAEC,QAAAA,IAAA,EAAM,MAAA;AAAO,OAAA,CAAA,CAAA;AACrD,MAAA,IAAIC,IAAA,GAAMC,QAAA,CAASC,aAAa,CAAC,KAAA,CAAA,CAAA;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;MACAL,WAAA,CAAWM,WAAW,CAACH,IAAA,CAAA,CAAA;MAEvBV,OAAA,CAAOc,GAAG,CAACJ,IAAA,CAAA,CAAA;AACb,KAAA,CAAA;AACF,GAAA,CAAA;AACF,CAAA,CAAA;AAEA;AACA;AACA;AACA,MAAMK,SAAA,GAAYA,MAAM,IAAIJ,QAAA,CAASK,gBAAgB,CAAC,MAAA,CAAA,CAAQ,CAACC,GAAG,CAAEC,KAAA,IAASA,KAAA,CAAKC,IAAI,CAAA,CAAA;AAEtF;;;;;;AAMA,MAAMC,MAAA,GAAAC,oBAAA,CAASC,kBAAA,CAQf,0HAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAT,IAAAA,SAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAU,YAAA,EAAA,CAAA,CAAA;AAEV;;;;;;;;;AASaC,MAAAA,WAsBRJ,oBAAAA,CAAAA,kBAAA,CAiBL,gYAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAzB,MAAA;AAAAqB,IAAAA,MAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAK,YAAA,EAAA;;;;"}
|
|
@@ -9,25 +9,25 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
9
9
|
import templateOnly from '@ember/component/template-only';
|
|
10
10
|
|
|
11
11
|
const Checkbox = setComponentTemplate(precompileTemplate("\n {{#let (cell @checked) as |checked|}}\n <input id={{@id}} type=\"checkbox\" role=\"switch\" checked={{checked.current}} aria-checked={{checked.current}} data-state={{if checked.current \"on\" \"off\"}} {{on \"click\" (fn toggleWithFallback checked.toggle @onChange)}} ...attributes />\n {{/let}}\n", {
|
|
12
|
+
strictMode: true,
|
|
12
13
|
scope: () => ({
|
|
13
14
|
cell,
|
|
14
15
|
on,
|
|
15
16
|
fn,
|
|
16
17
|
toggleWithFallback
|
|
17
|
-
})
|
|
18
|
-
strictMode: true
|
|
18
|
+
})
|
|
19
19
|
}), templateOnly());
|
|
20
20
|
/**
|
|
21
21
|
* @public
|
|
22
22
|
*/
|
|
23
23
|
const Switch = setComponentTemplate(precompileTemplate("\n <div ...attributes data-prim-switch>\n {{!-- @glint-nocheck --}}\n {{#let (uniqueId) as |id|}}\n {{yield (hash Control=(component Checkbox checked=@checked id=id onChange=@onChange) Label=(component Label for=id))}}\n {{/let}}\n </div>\n", {
|
|
24
|
+
strictMode: true,
|
|
24
25
|
scope: () => ({
|
|
25
26
|
uniqueId,
|
|
26
27
|
hash,
|
|
27
28
|
Checkbox,
|
|
28
29
|
Label
|
|
29
|
-
})
|
|
30
|
-
strictMode: true
|
|
30
|
+
})
|
|
31
31
|
}), templateOnly());
|
|
32
32
|
|
|
33
33
|
export { Switch, Switch as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sources":["../../src/components/switch.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { fn, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { cell } from 'ember-resources';\nimport { uniqueId } from '../utils.ts';\nimport { Label } from './-private/typed-elements.gts';\nimport { toggleWithFallback } from './-private/utils.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface Signature {\n Element: HTMLInputElement;\n Args: {\n /**\n * The initial checked value of the Switch.\n * This value is reactive, so if the value that\n * `@checked` is set to updates, the state of the Switch will also update.\n */ checked?: boolean;\n /**\n * Callback when the Switch state is toggled\n */ onChange?: (checked: boolean, event: Event) => void;\n };\n Blocks: {\n default?: [{\n /**\n * The Switch Element.\n * It has a pre-wired `id` so that the relevant Label is\n * appropriately associated via the `for` property of the Label.\n *\n * ```gjs\n * import { Switch } from 'ember-primitives';\n *\n * <template>\n * <Switch as |s|>\n * <s.Control />\n * </Switch>\n * </template>\n * ```\n */ Control: WithBoundArgs<typeof Checkbox, 'checked' | 'id' | 'onChange'>;\n /**\n * The Switch element requires a label, and this label already has\n * the association to the Control by setting the `for` attribute to the `id` of the Control\n *\n * ```gjs\n * import { Switch } from 'ember-primitives';\n *\n * <template>\n * <Switch as |s|>\n * <s.Label />\n * </Switch>\n * </template>\n * ```\n */ Label: WithBoundArgs<typeof Label, 'for'>;\n }];\n };\n}\ninterface ControlSignature {\n Element: HTMLInputElement;\n Args: {\n id: string;\n checked?: boolean;\n onChange: () => void;\n };\n}\nconst Checkbox: TOC<ControlSignature> = template(`\n {{#let (cell @checked) as |checked|}}\n <input\n id={{@id}}\n type=\"checkbox\"\n role=\"switch\"\n checked={{checked.current}}\n aria-checked={{checked.current}}\n data-state={{if checked.current \"on\" \"off\"}}\n {{on \"click\" (fn toggleWithFallback checked.toggle @onChange)}}\n ...attributes\n />\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n/**\n * @public\n */ export const Switch: TOC<Signature> = template(`\n <div ...attributes data-prim-switch>\n {{! @glint-nocheck }}\n {{#let (uniqueId) as |id|}}\n {{yield\n (hash\n Control=(component Checkbox checked=@checked id=id onChange=@onChange)\n Label=(component Label for=id)\n )\n }}\n {{/let}}\n </div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Switch;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3N3aXRjaC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm4sIGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcblxuaW1wb3J0IHsgY2VsbCB9IGZyb20gJ2VtYmVyLXJlc291cmNlcyc7XG5cbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnLi4vdXRpbHMudHMnO1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICcuLy1wcml2YXRlL3R5cGVkLWVsZW1lbnRzLmd0cyc7XG5pbXBvcnQgeyB0b2dnbGVXaXRoRmFsbGJhY2sgfSBmcm9tICcuLy1wcml2YXRlL3V0aWxzLnRzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBXaXRoQm91bmRBcmdzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGluaXRpYWwgY2hlY2tlZCB2YWx1ZSBvZiB0aGUgU3dpdGNoLlxuICAgICAqIFRoaXMgdmFsdWUgaXMgcmVhY3RpdmUsIHNvIGlmIHRoZSB2YWx1ZSB0aGF0XG4gICAgICogYEBjaGVja2VkYCBpcyBzZXQgdG8gdXBkYXRlcywgdGhlIHN0YXRlIG9mIHRoZSBTd2l0Y2ggd2lsbCBhbHNvIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB3aGVuIHRoZSBTd2l0Y2ggc3RhdGUgaXMgdG9nZ2xlZFxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4sIGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdD86IFtcbiAgICAgIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBTd2l0Y2ggRWxlbWVudC5cbiAgICAgICAgICogSXQgaGFzIGEgcHJlLXdpcmVkIGBpZGAgc28gdGhhdCB0aGUgcmVsZXZhbnQgTGFiZWwgaXNcbiAgICAgICAgICogYXBwcm9wcmlhdGVseSBhc3NvY2lhdGVkIHZpYSB0aGUgYGZvcmAgcHJvcGVydHkgb2YgdGhlIExhYmVsLlxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU3dpdGNoIH0gZnJvbSAnZW1iZXItcHJpbWl0aXZlcyc7XG4gICAgICAgICAqXG4gICAgICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgICAgICogICA8U3dpdGNoIGFzIHxzfD5cbiAgICAgICAgICogICAgIDxzLkNvbnRyb2wgLz5cbiAgICAgICAgICogICA8L1N3aXRjaD5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBDb250cm9sOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBDaGVja2JveCwgJ2NoZWNrZWQnIHwgJ2lkJyB8ICdvbkNoYW5nZSc-O1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIFN3aXRjaCBlbGVtZW50IHJlcXVpcmVzIGEgbGFiZWwsIGFuZCB0aGlzIGxhYmVsIGFscmVhZHkgaGFzXG4gICAgICAgICAqIHRoZSBhc3NvY2lhdGlvbiB0byB0aGUgQ29udHJvbCBieSBzZXR0aW5nIHRoZSBgZm9yYCBhdHRyaWJ1dGUgdG8gdGhlIGBpZGAgb2YgdGhlIENvbnRyb2xcbiAgICAgICAgICpcbiAgICAgICAgICogYGBgZ2pzXG4gICAgICAgICAqIGltcG9ydCB7IFN3aXRjaCB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFN3aXRjaCBhcyB8c3w-XG4gICAgICAgICAqICAgICA8cy5MYWJlbCAvPlxuICAgICAgICAgKiAgIDwvU3dpdGNoPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICovXG4gICAgICAgIExhYmVsOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBMYWJlbCwgJ2Zvcic-O1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgQ29udHJvbFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIEFyZ3M6IHsgaWQ6IHN0cmluZzsgY2hlY2tlZD86IGJvb2xlYW47IG9uQ2hhbmdlOiAoKSA9PiB2b2lkIH07XG59XG5cbmNvbnN0IENoZWNrYm94OiBUT0M8Q29udHJvbFNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIHt7I2xldCAoY2VsbCBAY2hlY2tlZCkgYXMgfGNoZWNrZWR8fX1cbiAgICA8aW5wdXRcbiAgICAgIGlkPXt7QGlkfX1cbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgIGNoZWNrZWQ9e3tjaGVja2VkLmN1cnJlbnR9fVxuICAgICAgYXJpYS1jaGVja2VkPXt7Y2hlY2tlZC5jdXJyZW50fX1cbiAgICAgIGRhdGEtc3RhdGU9e3tpZiBjaGVja2VkLmN1cnJlbnQgXCJvblwiIFwib2ZmXCJ9fVxuICAgICAge3tvbiBcImNsaWNrXCIgKGZuIHRvZ2dsZVdpdGhGYWxsYmFjayBjaGVja2VkLnRvZ2dsZSBAb25DaGFuZ2UpfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAvPlxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgU3dpdGNoOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiAuLi5hdHRyaWJ1dGVzIGRhdGEtcHJpbS1zd2l0Y2g-XG4gICAge3shIEBnbGludC1ub2NoZWNrIH19XG4gICAge3sjbGV0ICh1bmlxdWVJZCkgYXMgfGlkfH19XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgQ29udHJvbD0oY29tcG9uZW50IENoZWNrYm94IGNoZWNrZWQ9QGNoZWNrZWQgaWQ9aWQgb25DaGFuZ2U9QG9uQ2hhbmdlKVxuICAgICAgICAgIExhYmVsPShjb21wb25lbnQgTGFiZWwgZm9yPWlkKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIHt7L2xldH19XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFN3aXRjaDtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxFQUFFLEVBQUUsSUFBSSxRQUFRLGdCQUFnQjtBQUN6QyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLFNBQVMsUUFBUSxRQUFRLGNBQWM7QUFDdkMsU0FBUyxLQUFLLFFBQVEsZ0NBQWdDO0FBQ3RELFNBQVMsa0JBQWtCLFFBQVEsc0JBQXNCO0FBRXpELGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7Ozs7S0FJQyxHQUNELFVBQVUsT0FBTztRQUNqQjs7S0FFQyxHQUNELFlBQVksU0FBUyxPQUFPLEVBQUUsT0FBTyxVQUFVLElBQUk7O0lBRXJEO1FBQ0U7Z0JBRUk7Ozs7Ozs7Ozs7Ozs7O1NBY0MsR0FDRCxTQUFTLHFCQUFxQixVQUFVLFlBQVksT0FBTztnQkFDM0Q7Ozs7Ozs7Ozs7Ozs7U0FhQyxHQUNELE9BQU8scUJBQXFCLE9BQU87Ozs7VUFNakM7SUFDUixTQUFTO0lBQ1Q7UUFBUSxJQUFJLE1BQU07UUFBRSxVQUFVLE9BQU87UUFBRSxnQkFBZ0IsSUFBSTs7O0FBRzdELE1BQU0sVUFBVSxJQUFJLG9CQUFvQixTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFhbEQsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVY7O0NBRUMsR0FDRCxPQUFPLE1BQU0sUUFBUSxJQUFJLGFBQWEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7QUFZaEQsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBLEdBQUU7QUFFWixlQUFlLE9BQU8ifQ"],"names":["Checkbox","setComponentTemplate","precompileTemplate","scope","cell","on","fn","toggleWithFallback","
|
|
1
|
+
{"version":3,"file":"switch.js","sources":["../../src/components/switch.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { fn, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { cell } from 'ember-resources';\nimport { uniqueId } from '../utils.ts';\nimport { Label } from './-private/typed-elements.gts';\nimport { toggleWithFallback } from './-private/utils.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface Signature {\n Element: HTMLInputElement;\n Args: {\n /**\n * The initial checked value of the Switch.\n * This value is reactive, so if the value that\n * `@checked` is set to updates, the state of the Switch will also update.\n */ checked?: boolean;\n /**\n * Callback when the Switch state is toggled\n */ onChange?: (checked: boolean, event: Event) => void;\n };\n Blocks: {\n default?: [{\n /**\n * The Switch Element.\n * It has a pre-wired `id` so that the relevant Label is\n * appropriately associated via the `for` property of the Label.\n *\n * ```gjs\n * import { Switch } from 'ember-primitives';\n *\n * <template>\n * <Switch as |s|>\n * <s.Control />\n * </Switch>\n * </template>\n * ```\n */ Control: WithBoundArgs<typeof Checkbox, 'checked' | 'id' | 'onChange'>;\n /**\n * The Switch element requires a label, and this label already has\n * the association to the Control by setting the `for` attribute to the `id` of the Control\n *\n * ```gjs\n * import { Switch } from 'ember-primitives';\n *\n * <template>\n * <Switch as |s|>\n * <s.Label />\n * </Switch>\n * </template>\n * ```\n */ Label: WithBoundArgs<typeof Label, 'for'>;\n }];\n };\n}\ninterface ControlSignature {\n Element: HTMLInputElement;\n Args: {\n id: string;\n checked?: boolean;\n onChange: () => void;\n };\n}\nconst Checkbox: TOC<ControlSignature> = template(`\n {{#let (cell @checked) as |checked|}}\n <input\n id={{@id}}\n type=\"checkbox\"\n role=\"switch\"\n checked={{checked.current}}\n aria-checked={{checked.current}}\n data-state={{if checked.current \"on\" \"off\"}}\n {{on \"click\" (fn toggleWithFallback checked.toggle @onChange)}}\n ...attributes\n />\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\n/**\n * @public\n */ export const Switch: TOC<Signature> = template(`\n <div ...attributes data-prim-switch>\n {{! @glint-nocheck }}\n {{#let (uniqueId) as |id|}}\n {{yield\n (hash\n Control=(component Checkbox checked=@checked id=id onChange=@onChange)\n Label=(component Label for=id)\n )\n }}\n {{/let}}\n </div>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Switch;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3N3aXRjaC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm4sIGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcblxuaW1wb3J0IHsgY2VsbCB9IGZyb20gJ2VtYmVyLXJlc291cmNlcyc7XG5cbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnLi4vdXRpbHMudHMnO1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICcuLy1wcml2YXRlL3R5cGVkLWVsZW1lbnRzLmd0cyc7XG5pbXBvcnQgeyB0b2dnbGVXaXRoRmFsbGJhY2sgfSBmcm9tICcuLy1wcml2YXRlL3V0aWxzLnRzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBXaXRoQm91bmRBcmdzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGluaXRpYWwgY2hlY2tlZCB2YWx1ZSBvZiB0aGUgU3dpdGNoLlxuICAgICAqIFRoaXMgdmFsdWUgaXMgcmVhY3RpdmUsIHNvIGlmIHRoZSB2YWx1ZSB0aGF0XG4gICAgICogYEBjaGVja2VkYCBpcyBzZXQgdG8gdXBkYXRlcywgdGhlIHN0YXRlIG9mIHRoZSBTd2l0Y2ggd2lsbCBhbHNvIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB3aGVuIHRoZSBTd2l0Y2ggc3RhdGUgaXMgdG9nZ2xlZFxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4sIGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdD86IFtcbiAgICAgIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBTd2l0Y2ggRWxlbWVudC5cbiAgICAgICAgICogSXQgaGFzIGEgcHJlLXdpcmVkIGBpZGAgc28gdGhhdCB0aGUgcmVsZXZhbnQgTGFiZWwgaXNcbiAgICAgICAgICogYXBwcm9wcmlhdGVseSBhc3NvY2lhdGVkIHZpYSB0aGUgYGZvcmAgcHJvcGVydHkgb2YgdGhlIExhYmVsLlxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU3dpdGNoIH0gZnJvbSAnZW1iZXItcHJpbWl0aXZlcyc7XG4gICAgICAgICAqXG4gICAgICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgICAgICogICA8U3dpdGNoIGFzIHxzfD5cbiAgICAgICAgICogICAgIDxzLkNvbnRyb2wgLz5cbiAgICAgICAgICogICA8L1N3aXRjaD5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBDb250cm9sOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBDaGVja2JveCwgJ2NoZWNrZWQnIHwgJ2lkJyB8ICdvbkNoYW5nZSc-O1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIFN3aXRjaCBlbGVtZW50IHJlcXVpcmVzIGEgbGFiZWwsIGFuZCB0aGlzIGxhYmVsIGFscmVhZHkgaGFzXG4gICAgICAgICAqIHRoZSBhc3NvY2lhdGlvbiB0byB0aGUgQ29udHJvbCBieSBzZXR0aW5nIHRoZSBgZm9yYCBhdHRyaWJ1dGUgdG8gdGhlIGBpZGAgb2YgdGhlIENvbnRyb2xcbiAgICAgICAgICpcbiAgICAgICAgICogYGBgZ2pzXG4gICAgICAgICAqIGltcG9ydCB7IFN3aXRjaCB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFN3aXRjaCBhcyB8c3w-XG4gICAgICAgICAqICAgICA8cy5MYWJlbCAvPlxuICAgICAgICAgKiAgIDwvU3dpdGNoPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICovXG4gICAgICAgIExhYmVsOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBMYWJlbCwgJ2Zvcic-O1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgQ29udHJvbFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIEFyZ3M6IHsgaWQ6IHN0cmluZzsgY2hlY2tlZD86IGJvb2xlYW47IG9uQ2hhbmdlOiAoKSA9PiB2b2lkIH07XG59XG5cbmNvbnN0IENoZWNrYm94OiBUT0M8Q29udHJvbFNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIHt7I2xldCAoY2VsbCBAY2hlY2tlZCkgYXMgfGNoZWNrZWR8fX1cbiAgICA8aW5wdXRcbiAgICAgIGlkPXt7QGlkfX1cbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgIGNoZWNrZWQ9e3tjaGVja2VkLmN1cnJlbnR9fVxuICAgICAgYXJpYS1jaGVja2VkPXt7Y2hlY2tlZC5jdXJyZW50fX1cbiAgICAgIGRhdGEtc3RhdGU9e3tpZiBjaGVja2VkLmN1cnJlbnQgXCJvblwiIFwib2ZmXCJ9fVxuICAgICAge3tvbiBcImNsaWNrXCIgKGZuIHRvZ2dsZVdpdGhGYWxsYmFjayBjaGVja2VkLnRvZ2dsZSBAb25DaGFuZ2UpfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAvPlxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgU3dpdGNoOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAgPGRpdiAuLi5hdHRyaWJ1dGVzIGRhdGEtcHJpbS1zd2l0Y2g-XG4gICAge3shIEBnbGludC1ub2NoZWNrIH19XG4gICAge3sjbGV0ICh1bmlxdWVJZCkgYXMgfGlkfH19XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgQ29udHJvbD0oY29tcG9uZW50IENoZWNrYm94IGNoZWNrZWQ9QGNoZWNrZWQgaWQ9aWQgb25DaGFuZ2U9QG9uQ2hhbmdlKVxuICAgICAgICAgIExhYmVsPShjb21wb25lbnQgTGFiZWwgZm9yPWlkKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIHt7L2xldH19XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFN3aXRjaDtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxFQUFFLEVBQUUsSUFBSSxRQUFRLGdCQUFnQjtBQUN6QyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLFNBQVMsUUFBUSxRQUFRLGNBQWM7QUFDdkMsU0FBUyxLQUFLLFFBQVEsZ0NBQWdDO0FBQ3RELFNBQVMsa0JBQWtCLFFBQVEsc0JBQXNCO0FBRXpELGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUMxRCxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0U7Ozs7S0FJQyxHQUNELFVBQVUsT0FBTztRQUNqQjs7S0FFQyxHQUNELFlBQVksU0FBUyxPQUFPLEVBQUUsT0FBTyxVQUFVLElBQUk7O0lBRXJEO1FBQ0U7Z0JBRUk7Ozs7Ozs7Ozs7Ozs7O1NBY0MsR0FDRCxTQUFTLHFCQUFxQixVQUFVLFlBQVksT0FBTztnQkFDM0Q7Ozs7Ozs7Ozs7Ozs7U0FhQyxHQUNELE9BQU8scUJBQXFCLE9BQU87Ozs7VUFNakM7SUFDUixTQUFTO0lBQ1Q7UUFBUSxJQUFJLE1BQU07UUFBRSxVQUFVLE9BQU87UUFBRSxnQkFBZ0IsSUFBSTs7O0FBRzdELE1BQU0sVUFBVSxJQUFJLG9CQUFvQixTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFhbEQsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVY7O0NBRUMsR0FDRCxPQUFPLE1BQU0sUUFBUSxJQUFJLGFBQWEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7QUFZaEQsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBLEdBQUU7QUFFWixlQUFlLE9BQU8ifQ"],"names":["Checkbox","setComponentTemplate","precompileTemplate","strictMode","scope","cell","on","fn","toggleWithFallback","templateOnly","Switch","uniqueId","hash","Label"],"mappings":";;;;;;;;;;AAsEA,MAAMA,QAAc,GAAAC,oBAAA,CAAoBC,kBAAA,CAaxC,mTAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAC,EAAA;IAAAC,EAAA;AAAAC,IAAAA,kBAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV;;;MAGaC,MAAY,GAAAT,oBAAA,CAAaC,kBAAA,CAYtC,kQAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAO,QAAA;IAAAC,IAAA;IAAAZ,QAAA;AAAAa,IAAAA,KAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAJ,YAAA,EAAA;;;;"}
|
|
@@ -22,12 +22,12 @@ class ToggleGroup extends Component {
|
|
|
22
22
|
// See: https://github.com/typed-ember/glint/issues/715
|
|
23
23
|
static {
|
|
24
24
|
setComponentTemplate(precompileTemplate("\n {{#if (isMulti this.args.type)}}\n <MultiToggleGroup @value={{this.args.value}} @onChange={{this.args.onChange}} ...attributes as |x|>\n {{yield x}}\n </MultiToggleGroup>\n {{else}}\n <SingleToggleGroup @value={{this.args.value}} @onChange={{this.args.onChange}} ...attributes as |x|>\n {{yield x}}\n </SingleToggleGroup>\n {{/if}}\n ", {
|
|
25
|
+
strictMode: true,
|
|
25
26
|
scope: () => ({
|
|
26
27
|
isMulti,
|
|
27
28
|
MultiToggleGroup,
|
|
28
29
|
SingleToggleGroup
|
|
29
|
-
})
|
|
30
|
-
strictMode: true
|
|
30
|
+
})
|
|
31
31
|
}), this);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -47,12 +47,12 @@ let SingleToggleGroup = class SingleToggleGroup extends Component {
|
|
|
47
47
|
isPressed = value1 => value1 === this.activePressed;
|
|
48
48
|
static {
|
|
49
49
|
setComponentTemplate(precompileTemplate("\n <div data-tabster={{TABSTER_CONFIG}} ...attributes>\n {{yield (hash Item=(component Toggle onChange=this.handleToggle isPressed=this.isPressed))}}\n </div>\n ", {
|
|
50
|
+
strictMode: true,
|
|
50
51
|
scope: () => ({
|
|
51
52
|
TABSTER_CONFIG,
|
|
52
53
|
hash,
|
|
53
54
|
Toggle
|
|
54
|
-
})
|
|
55
|
-
strictMode: true
|
|
55
|
+
})
|
|
56
56
|
}), this);
|
|
57
57
|
}
|
|
58
58
|
};
|
|
@@ -89,12 +89,12 @@ let MultiToggleGroup = class MultiToggleGroup extends Component {
|
|
|
89
89
|
isPressed = value1 => this.activePressed.has(value1);
|
|
90
90
|
static {
|
|
91
91
|
setComponentTemplate(precompileTemplate("\n <div data-tabster={{TABSTER_CONFIG}} ...attributes>\n {{yield (hash Item=(component Toggle onChange=this.handleToggle isPressed=this.isPressed))}}\n </div>\n ", {
|
|
92
|
+
strictMode: true,
|
|
92
93
|
scope: () => ({
|
|
93
94
|
TABSTER_CONFIG,
|
|
94
95
|
hash,
|
|
95
96
|
Toggle
|
|
96
|
-
})
|
|
97
|
-
strictMode: true
|
|
97
|
+
})
|
|
98
98
|
}), this);
|
|
99
99
|
}
|
|
100
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.js","sources":["../../src/components/toggle-group.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { getTabsterAttribute, Types } from 'tabster';\nimport { TrackedSet } from 'tracked-built-ins';\n// The consumer will need to provide types for tracked-toolbox.\n// Or.. better yet, we PR to trakcked-toolbox to provide them\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { localCopy } from 'tracked-toolbox';\nimport { Toggle } from './toggle.gts';\nimport type { ComponentLike } from '@glint/template';\nconst TABSTER_CONFIG = getTabsterAttribute({\n mover: {\n direction: Types.MoverDirections.Both,\n cyclic: true\n }\n}, true);\nexport interface ItemSignature<Value = any> {\n /**\n * The button element will have aria-pressed=\"true\" on it when the button is in the pressed state.\n */ Element: HTMLButtonElement;\n Args: {\n /**\n * When used in a group of Toggles, this option will be helpful to\n * know which toggle was pressed if you're using the same @onChange\n * handler for multiple toggles.\n */ value?: Value;\n };\n Blocks: {\n default: [/**\n * the current pressed state of the toggle button\n *\n * Useful when using the toggle button as an uncontrolled component\n */ pressed: boolean];\n };\n}\nexport type Item<Value = any> = ComponentLike<ItemSignature<Value>>;\nexport interface SingleSignature<Value> {\n Element: HTMLDivElement;\n Args: {\n /**\n * Optionally set the initial toggle state\n */ value?: Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Value | undefined) => void;\n };\n Blocks: {\n default: [{\n /**\n * The Toggle Switch\n */ Item: Item;\n }];\n };\n}\nexport interface MultiSignature<Value = any> {\n Element: HTMLDivElement;\n Args: {\n /**\n * Optionally set the initial toggle state\n */ value?: Value[] | Set<Value> | Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Set<Value>) => void;\n };\n Blocks: {\n default: [{\n /**\n * The Toggle Switch\n */ Item: Item;\n }];\n };\n}\ninterface PrivateSingleSignature<Value = any> {\n Element: HTMLDivElement;\n Args: {\n type?: 'single';\n /**\n * Optionally set the initial toggle state\n */ value?: Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Value | undefined) => void;\n };\n Blocks: {\n default: [{\n Item: Item;\n }];\n };\n}\ninterface PrivateMultiSignature<Value = any> {\n Element: HTMLDivElement;\n Args: {\n type: 'multi';\n /**\n * Optionally set the initial toggle state\n */ value?: Value[] | Set<Value> | Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Set<Value>) => void;\n };\n Blocks: {\n default: [{\n Item: Item;\n }];\n };\n}\nfunction isMulti(x1: 'single' | 'multi' | undefined): x is 'multi' {\n return x1 === 'multi';\n}\nexport class ToggleGroup<Value = any> extends Component<PrivateSingleSignature<Value> | PrivateMultiSignature<Value>> {\n // See: https://github.com/typed-ember/glint/issues/715\n static{\n template(`\n {{#if (isMulti this.args.type)}}\n <MultiToggleGroup\n @value={{this.args.value}}\n @onChange={{this.args.onChange}}\n ...attributes\n as |x|\n >\n {{yield x}}\n </MultiToggleGroup>\n {{else}}\n <SingleToggleGroup\n @value={{this.args.value}}\n @onChange={{this.args.onChange}}\n ...attributes\n as |x|\n >\n {{yield x}}\n </SingleToggleGroup>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\nlet SingleToggleGroup = class SingleToggleGroup<Value = any> extends Component<SingleSignature<Value>> {\n @localCopy('args.value')\n activePressed?: Value;\n handleToggle = (value1: Value)=>{\n if (this.activePressed === value1) {\n this.activePressed = undefined;\n return;\n }\n this.activePressed = value1;\n this.args.onChange?.(this.activePressed);\n };\n isPressed = (value1: Value | undefined)=>value1 === this.activePressed;\n static{\n template(`\n <div data-tabster={{TABSTER_CONFIG}} ...attributes>\n {{yield (hash Item=(component Toggle onChange=this.handleToggle isPressed=this.isPressed))}}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nlet MultiToggleGroup = class MultiToggleGroup<Value = any> extends Component<MultiSignature<Value>> {\n /**\n * Normalizes @value to a Set\n * and makes sure that even if the input Set is reactive,\n * we don't mistakenly dirty it.\n */ @cached\n get activePressed(): TrackedSet<Value> {\n let value1 = this.args.value;\n if (!value1) {\n return new TrackedSet();\n }\n if (Array.isArray(value1)) {\n return new TrackedSet(value1);\n }\n if (value1 instanceof Set) {\n return new TrackedSet(value1);\n }\n return new TrackedSet([\n value1\n ]);\n }\n handleToggle = (value1: Value)=>{\n if (this.activePressed.has(value1)) {\n this.activePressed.delete(value1);\n } else {\n this.activePressed.add(value1);\n }\n this.args.onChange?.(new Set<Value>(this.activePressed.values()));\n };\n isPressed = (value1: Value)=>this.activePressed.has(value1);\n static{\n template(`\n <div data-tabster={{TABSTER_CONFIG}} ...attributes>\n {{yield (hash Item=(component Toggle onChange=this.handleToggle isPressed=this.isPressed))}}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3RvZ2dsZS1ncm91cC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgY2FjaGVkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuXG5pbXBvcnQgeyBnZXRUYWJzdGVyQXR0cmlidXRlLCBUeXBlcyB9IGZyb20gJ3RhYnN0ZXInO1xuaW1wb3J0IHsgVHJhY2tlZFNldCB9IGZyb20gJ3RyYWNrZWQtYnVpbHQtaW5zJztcbi8vIFRoZSBjb25zdW1lciB3aWxsIG5lZWQgdG8gcHJvdmlkZSB0eXBlcyBmb3IgdHJhY2tlZC10b29sYm94LlxuLy8gT3IuLiBiZXR0ZXIgeWV0LCB3ZSBQUiB0byB0cmFrY2tlZC10b29sYm94IHRvIHByb3ZpZGUgdGhlbVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgbG9jYWxDb3B5IH0gZnJvbSAndHJhY2tlZC10b29sYm94JztcblxuaW1wb3J0IHsgVG9nZ2xlIH0gZnJvbSAnLi90b2dnbGUuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRMaWtlIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxuY29uc3QgVEFCU1RFUl9DT05GSUcgPSBnZXRUYWJzdGVyQXR0cmlidXRlKFxuICB7XG4gICAgbW92ZXI6IHtcbiAgICAgIGRpcmVjdGlvbjogVHlwZXMuTW92ZXJEaXJlY3Rpb25zLkJvdGgsXG4gICAgICBjeWNsaWM6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgdHJ1ZVxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU2lnbmF0dXJlPFZhbHVlID0gYW55PiB7XG4gIC8qKlxuICAgKiBUaGUgYnV0dG9uIGVsZW1lbnQgd2lsbCBoYXZlIGFyaWEtcHJlc3NlZD1cInRydWVcIiBvbiBpdCB3aGVuIHRoZSBidXR0b24gaXMgaW4gdGhlIHByZXNzZWQgc3RhdGUuXG4gICAqL1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIFdoZW4gdXNlZCBpbiBhIGdyb3VwIG9mIFRvZ2dsZXMsIHRoaXMgb3B0aW9uIHdpbGwgYmUgaGVscGZ1bCB0b1xuICAgICAqIGtub3cgd2hpY2ggdG9nZ2xlIHdhcyBwcmVzc2VkIGlmIHlvdSdyZSB1c2luZyB0aGUgc2FtZSBAb25DaGFuZ2VcbiAgICAgKiBoYW5kbGVyIGZvciBtdWx0aXBsZSB0b2dnbGVzLlxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIC8qKlxuICAgICAgICogdGhlIGN1cnJlbnQgcHJlc3NlZCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGJ1dHRvblxuICAgICAgICpcbiAgICAgICAqIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSB0b2dnbGUgYnV0dG9uIGFzIGFuIHVuY29udHJvbGxlZCBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgcHJlc3NlZDogYm9vbGVhbixcbiAgICBdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBJdGVtPFZhbHVlID0gYW55PiA9IENvbXBvbmVudExpa2U8SXRlbVNpZ25hdHVyZTxWYWx1ZT4-O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZVNpZ25hdHVyZTxWYWx1ZT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsbHkgc2V0IHRoZSBpbml0aWFsIHRvZ2dsZSBzdGF0ZVxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIHRvZ2dsZS1ncm91cCdzIHN0YXRlIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqXG4gICAgICpcbiAgICAgKiBXaGVuIG5vbmUgb2YgdGhlIHRvZ2dsZXMgYXJlIHNlbGVjdGVkLCB1bmRlZmluZWQgd2lsbCBiZSBwYXNzZWQuXG4gICAgICovXG4gICAgb25DaGFuZ2U_OiAodmFsdWU6IFZhbHVlIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgVG9nZ2xlIFN3aXRjaFxuICAgICAgICAgKi9cbiAgICAgICAgSXRlbTogSXRlbTtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsbHkgc2V0IHRoZSBpbml0aWFsIHRvZ2dsZSBzdGF0ZVxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWVbXSB8IFNldDxWYWx1ZT4gfCBWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgdG9nZ2xlLWdyb3VwJ3Mgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKlxuICAgICAqIFdoZW4gbm9uZSBvZiB0aGUgdG9nZ2xlcyBhcmUgc2VsZWN0ZWQsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogU2V0PFZhbHVlPikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIFRvZ2dsZSBTd2l0Y2hcbiAgICAgICAgICovXG4gICAgICAgIEl0ZW06IEl0ZW07XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmludGVyZmFjZSBQcml2YXRlU2luZ2xlU2lnbmF0dXJlPFZhbHVlID0gYW55PiB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdHlwZT86ICdzaW5nbGUnO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSBzZXQgdGhlIGluaXRpYWwgdG9nZ2xlIHN0YXRlXG4gICAgICovXG4gICAgdmFsdWU_OiBWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgdG9nZ2xlLWdyb3VwJ3Mgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKlxuICAgICAqIFdoZW4gbm9uZSBvZiB0aGUgdG9nZ2xlcyBhcmUgc2VsZWN0ZWQsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogVmFsdWUgfCB1bmRlZmluZWQpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgSXRlbTogSXRlbTtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFByaXZhdGVNdWx0aVNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIHR5cGU6ICdtdWx0aSc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSBzZXQgdGhlIGluaXRpYWwgdG9nZ2xlIHN0YXRlXG4gICAgICovXG4gICAgdmFsdWU_OiBWYWx1ZVtdIHwgU2V0PFZhbHVlPiB8IFZhbHVlO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSB0b2dnbGUtZ3JvdXAncyBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqXG4gICAgICogV2hlbiBub25lIG9mIHRoZSB0b2dnbGVzIGFyZSBzZWxlY3RlZCwgdW5kZWZpbmVkIHdpbGwgYmUgcGFzc2VkLlxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKHZhbHVlOiBTZXQ8VmFsdWU-KSA9PiB2b2lkO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIEl0ZW06IEl0ZW07XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzTXVsdGkoeDogJ3NpbmdsZScgfCAnbXVsdGknIHwgdW5kZWZpbmVkKTogeCBpcyAnbXVsdGknIHtcbiAgcmV0dXJuIHggPT09ICdtdWx0aSc7XG59XG5cbmV4cG9ydCBjbGFzcyBUb2dnbGVHcm91cDxWYWx1ZSA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnQ8XG4gIFByaXZhdGVTaW5nbGVTaWduYXR1cmU8VmFsdWU-IHwgUHJpdmF0ZU11bHRpU2lnbmF0dXJlPFZhbHVlPlxuPiB7XG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3R5cGVkLWVtYmVyL2dsaW50L2lzc3Vlcy83MTVcbiAgPHRlbXBsYXRlPlxuICAgIHt7I2lmIChpc011bHRpIHRoaXMuYXJncy50eXBlKX19XG4gICAgICA8TXVsdGlUb2dnbGVHcm91cFxuICAgICAgICBAdmFsdWU9e3t0aGlzLmFyZ3MudmFsdWV9fVxuICAgICAgICBAb25DaGFuZ2U9e3t0aGlzLmFyZ3Mub25DaGFuZ2V9fVxuICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgIGFzIHx4fFxuICAgICAgPlxuICAgICAgICB7e3lpZWxkIHh9fVxuICAgICAgPC9NdWx0aVRvZ2dsZUdyb3VwPlxuICAgIHt7ZWxzZX19XG4gICAgICA8U2luZ2xlVG9nZ2xlR3JvdXBcbiAgICAgICAgQHZhbHVlPXt7dGhpcy5hcmdzLnZhbHVlfX1cbiAgICAgICAgQG9uQ2hhbmdlPXt7dGhpcy5hcmdzLm9uQ2hhbmdlfX1cbiAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICBhcyB8eHxcbiAgICAgID5cbiAgICAgICAge3t5aWVsZCB4fX1cbiAgICAgIDwvU2luZ2xlVG9nZ2xlR3JvdXA-XG4gICAge3svaWZ9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5jbGFzcyBTaW5nbGVUb2dnbGVHcm91cDxWYWx1ZSA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnQ8U2luZ2xlU2lnbmF0dXJlPFZhbHVlPj4ge1xuICBAbG9jYWxDb3B5KCdhcmdzLnZhbHVlJykgYWN0aXZlUHJlc3NlZD86IFZhbHVlO1xuXG4gIGhhbmRsZVRvZ2dsZSA9ICh2YWx1ZTogVmFsdWUpID0-IHtcbiAgICBpZiAodGhpcy5hY3RpdmVQcmVzc2VkID09PSB2YWx1ZSkge1xuICAgICAgdGhpcy5hY3RpdmVQcmVzc2VkID0gdW5kZWZpbmVkO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVQcmVzc2VkID0gdmFsdWU7XG5cbiAgICB0aGlzLmFyZ3Mub25DaGFuZ2U_Lih0aGlzLmFjdGl2ZVByZXNzZWQpO1xuICB9O1xuXG4gIGlzUHJlc3NlZCA9ICh2YWx1ZTogVmFsdWUgfCB1bmRlZmluZWQpID0-IHZhbHVlID09PSB0aGlzLmFjdGl2ZVByZXNzZWQ7XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXYgZGF0YS10YWJzdGVyPXt7VEFCU1RFUl9DT05GSUd9fSAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZCAoaGFzaCBJdGVtPShjb21wb25lbnQgVG9nZ2xlIG9uQ2hhbmdlPXRoaXMuaGFuZGxlVG9nZ2xlIGlzUHJlc3NlZD10aGlzLmlzUHJlc3NlZCkpfX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuY2xhc3MgTXVsdGlUb2dnbGVHcm91cDxWYWx1ZSA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnQ8TXVsdGlTaWduYXR1cmU8VmFsdWU-PiB7XG4gIC8qKlxuICAgKiBOb3JtYWxpemVzIEB2YWx1ZSB0byBhIFNldFxuICAgKiBhbmQgbWFrZXMgc3VyZSB0aGF0IGV2ZW4gaWYgdGhlIGlucHV0IFNldCBpcyByZWFjdGl2ZSxcbiAgICogd2UgZG9uJ3QgbWlzdGFrZW5seSBkaXJ0eSBpdC5cbiAgICovXG4gIEBjYWNoZWRcbiAgZ2V0IGFjdGl2ZVByZXNzZWQoKTogVHJhY2tlZFNldDxWYWx1ZT4ge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuYXJncy52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBuZXcgVHJhY2tlZFNldCgpO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIG5ldyBUcmFja2VkU2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgIHJldHVybiBuZXcgVHJhY2tlZFNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBUcmFja2VkU2V0KFt2YWx1ZV0pO1xuICB9XG5cbiAgaGFuZGxlVG9nZ2xlID0gKHZhbHVlOiBWYWx1ZSkgPT4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZVByZXNzZWQuaGFzKHZhbHVlKSkge1xuICAgICAgdGhpcy5hY3RpdmVQcmVzc2VkLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlUHJlc3NlZC5hZGQodmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuYXJncy5vbkNoYW5nZT8uKG5ldyBTZXQ8VmFsdWU-KHRoaXMuYWN0aXZlUHJlc3NlZC52YWx1ZXMoKSkpO1xuICB9O1xuXG4gIGlzUHJlc3NlZCA9ICh2YWx1ZTogVmFsdWUpID0-IHRoaXMuYWN0aXZlUHJlc3NlZC5oYXModmFsdWUpO1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGRhdGEtdGFic3Rlcj17e1RBQlNURVJfQ09ORklHfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT0oY29tcG9uZW50IFRvZ2dsZSBvbkNoYW5nZT10aGlzLmhhbmRsZVRvZ2dsZSBpc1ByZXNzZWQ9dGhpcy5pc1ByZXNzZWQpKX19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["TABSTER_CONFIG","getTabsterAttribute","mover","direction","Types","MoverDirections","Both","cyclic","isMulti","x1","ToggleGroup","Component","setComponentTemplate","precompileTemplate","scope","MultiToggleGroup","SingleToggleGroup","strictMode","g","this","prototype","localCopy","i","void 0","handleToggle","value1","activePressed","undefined","args","onChange","isPressed","hash","Toggle","value","TrackedSet","Array","isArray","Set","n","cached","has","delete","add","values"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toggle-group.js","sources":["../../src/components/toggle-group.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { getTabsterAttribute, Types } from 'tabster';\nimport { TrackedSet } from 'tracked-built-ins';\n// The consumer will need to provide types for tracked-toolbox.\n// Or.. better yet, we PR to trakcked-toolbox to provide them\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { localCopy } from 'tracked-toolbox';\nimport { Toggle } from './toggle.gts';\nimport type { ComponentLike } from '@glint/template';\nconst TABSTER_CONFIG = getTabsterAttribute({\n mover: {\n direction: Types.MoverDirections.Both,\n cyclic: true\n }\n}, true);\nexport interface ItemSignature<Value = any> {\n /**\n * The button element will have aria-pressed=\"true\" on it when the button is in the pressed state.\n */ Element: HTMLButtonElement;\n Args: {\n /**\n * When used in a group of Toggles, this option will be helpful to\n * know which toggle was pressed if you're using the same @onChange\n * handler for multiple toggles.\n */ value?: Value;\n };\n Blocks: {\n default: [/**\n * the current pressed state of the toggle button\n *\n * Useful when using the toggle button as an uncontrolled component\n */ pressed: boolean];\n };\n}\nexport type Item<Value = any> = ComponentLike<ItemSignature<Value>>;\nexport interface SingleSignature<Value> {\n Element: HTMLDivElement;\n Args: {\n /**\n * Optionally set the initial toggle state\n */ value?: Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Value | undefined) => void;\n };\n Blocks: {\n default: [{\n /**\n * The Toggle Switch\n */ Item: Item;\n }];\n };\n}\nexport interface MultiSignature<Value = any> {\n Element: HTMLDivElement;\n Args: {\n /**\n * Optionally set the initial toggle state\n */ value?: Value[] | Set<Value> | Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Set<Value>) => void;\n };\n Blocks: {\n default: [{\n /**\n * The Toggle Switch\n */ Item: Item;\n }];\n };\n}\ninterface PrivateSingleSignature<Value = any> {\n Element: HTMLDivElement;\n Args: {\n type?: 'single';\n /**\n * Optionally set the initial toggle state\n */ value?: Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Value | undefined) => void;\n };\n Blocks: {\n default: [{\n Item: Item;\n }];\n };\n}\ninterface PrivateMultiSignature<Value = any> {\n Element: HTMLDivElement;\n Args: {\n type: 'multi';\n /**\n * Optionally set the initial toggle state\n */ value?: Value[] | Set<Value> | Value;\n /**\n * Callback for when the toggle-group's state is changed.\n *\n * Can be used to control the state of the component.\n *\n *\n * When none of the toggles are selected, undefined will be passed.\n */ onChange?: (value: Set<Value>) => void;\n };\n Blocks: {\n default: [{\n Item: Item;\n }];\n };\n}\nfunction isMulti(x1: 'single' | 'multi' | undefined): x is 'multi' {\n return x1 === 'multi';\n}\nexport class ToggleGroup<Value = any> extends Component<PrivateSingleSignature<Value> | PrivateMultiSignature<Value>> {\n // See: https://github.com/typed-ember/glint/issues/715\n static{\n template(`\n {{#if (isMulti this.args.type)}}\n <MultiToggleGroup\n @value={{this.args.value}}\n @onChange={{this.args.onChange}}\n ...attributes\n as |x|\n >\n {{yield x}}\n </MultiToggleGroup>\n {{else}}\n <SingleToggleGroup\n @value={{this.args.value}}\n @onChange={{this.args.onChange}}\n ...attributes\n as |x|\n >\n {{yield x}}\n </SingleToggleGroup>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\nlet SingleToggleGroup = class SingleToggleGroup<Value = any> extends Component<SingleSignature<Value>> {\n @localCopy('args.value')\n activePressed?: Value;\n handleToggle = (value1: Value)=>{\n if (this.activePressed === value1) {\n this.activePressed = undefined;\n return;\n }\n this.activePressed = value1;\n this.args.onChange?.(this.activePressed);\n };\n isPressed = (value1: Value | undefined)=>value1 === this.activePressed;\n static{\n template(`\n <div data-tabster={{TABSTER_CONFIG}} ...attributes>\n {{yield (hash Item=(component Toggle onChange=this.handleToggle isPressed=this.isPressed))}}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nlet MultiToggleGroup = class MultiToggleGroup<Value = any> extends Component<MultiSignature<Value>> {\n /**\n * Normalizes @value to a Set\n * and makes sure that even if the input Set is reactive,\n * we don't mistakenly dirty it.\n */ @cached\n get activePressed(): TrackedSet<Value> {\n let value1 = this.args.value;\n if (!value1) {\n return new TrackedSet();\n }\n if (Array.isArray(value1)) {\n return new TrackedSet(value1);\n }\n if (value1 instanceof Set) {\n return new TrackedSet(value1);\n }\n return new TrackedSet([\n value1\n ]);\n }\n handleToggle = (value1: Value)=>{\n if (this.activePressed.has(value1)) {\n this.activePressed.delete(value1);\n } else {\n this.activePressed.add(value1);\n }\n this.args.onChange?.(new Set<Value>(this.activePressed.values()));\n };\n isPressed = (value1: Value)=>this.activePressed.has(value1);\n static{\n template(`\n <div data-tabster={{TABSTER_CONFIG}} ...attributes>\n {{yield (hash Item=(component Toggle onChange=this.handleToggle isPressed=this.isPressed))}}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3RvZ2dsZS1ncm91cC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgY2FjaGVkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuXG5pbXBvcnQgeyBnZXRUYWJzdGVyQXR0cmlidXRlLCBUeXBlcyB9IGZyb20gJ3RhYnN0ZXInO1xuaW1wb3J0IHsgVHJhY2tlZFNldCB9IGZyb20gJ3RyYWNrZWQtYnVpbHQtaW5zJztcbi8vIFRoZSBjb25zdW1lciB3aWxsIG5lZWQgdG8gcHJvdmlkZSB0eXBlcyBmb3IgdHJhY2tlZC10b29sYm94LlxuLy8gT3IuLiBiZXR0ZXIgeWV0LCB3ZSBQUiB0byB0cmFrY2tlZC10b29sYm94IHRvIHByb3ZpZGUgdGhlbVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgbG9jYWxDb3B5IH0gZnJvbSAndHJhY2tlZC10b29sYm94JztcblxuaW1wb3J0IHsgVG9nZ2xlIH0gZnJvbSAnLi90b2dnbGUuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRMaWtlIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxuY29uc3QgVEFCU1RFUl9DT05GSUcgPSBnZXRUYWJzdGVyQXR0cmlidXRlKFxuICB7XG4gICAgbW92ZXI6IHtcbiAgICAgIGRpcmVjdGlvbjogVHlwZXMuTW92ZXJEaXJlY3Rpb25zLkJvdGgsXG4gICAgICBjeWNsaWM6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgdHJ1ZVxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU2lnbmF0dXJlPFZhbHVlID0gYW55PiB7XG4gIC8qKlxuICAgKiBUaGUgYnV0dG9uIGVsZW1lbnQgd2lsbCBoYXZlIGFyaWEtcHJlc3NlZD1cInRydWVcIiBvbiBpdCB3aGVuIHRoZSBidXR0b24gaXMgaW4gdGhlIHByZXNzZWQgc3RhdGUuXG4gICAqL1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIFdoZW4gdXNlZCBpbiBhIGdyb3VwIG9mIFRvZ2dsZXMsIHRoaXMgb3B0aW9uIHdpbGwgYmUgaGVscGZ1bCB0b1xuICAgICAqIGtub3cgd2hpY2ggdG9nZ2xlIHdhcyBwcmVzc2VkIGlmIHlvdSdyZSB1c2luZyB0aGUgc2FtZSBAb25DaGFuZ2VcbiAgICAgKiBoYW5kbGVyIGZvciBtdWx0aXBsZSB0b2dnbGVzLlxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIC8qKlxuICAgICAgICogdGhlIGN1cnJlbnQgcHJlc3NlZCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGJ1dHRvblxuICAgICAgICpcbiAgICAgICAqIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSB0b2dnbGUgYnV0dG9uIGFzIGFuIHVuY29udHJvbGxlZCBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgcHJlc3NlZDogYm9vbGVhbixcbiAgICBdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBJdGVtPFZhbHVlID0gYW55PiA9IENvbXBvbmVudExpa2U8SXRlbVNpZ25hdHVyZTxWYWx1ZT4-O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZVNpZ25hdHVyZTxWYWx1ZT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsbHkgc2V0IHRoZSBpbml0aWFsIHRvZ2dsZSBzdGF0ZVxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIHRvZ2dsZS1ncm91cCdzIHN0YXRlIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqXG4gICAgICpcbiAgICAgKiBXaGVuIG5vbmUgb2YgdGhlIHRvZ2dsZXMgYXJlIHNlbGVjdGVkLCB1bmRlZmluZWQgd2lsbCBiZSBwYXNzZWQuXG4gICAgICovXG4gICAgb25DaGFuZ2U_OiAodmFsdWU6IFZhbHVlIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgVG9nZ2xlIFN3aXRjaFxuICAgICAgICAgKi9cbiAgICAgICAgSXRlbTogSXRlbTtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsbHkgc2V0IHRoZSBpbml0aWFsIHRvZ2dsZSBzdGF0ZVxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWVbXSB8IFNldDxWYWx1ZT4gfCBWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgdG9nZ2xlLWdyb3VwJ3Mgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKlxuICAgICAqIFdoZW4gbm9uZSBvZiB0aGUgdG9nZ2xlcyBhcmUgc2VsZWN0ZWQsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogU2V0PFZhbHVlPikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIFRvZ2dsZSBTd2l0Y2hcbiAgICAgICAgICovXG4gICAgICAgIEl0ZW06IEl0ZW07XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmludGVyZmFjZSBQcml2YXRlU2luZ2xlU2lnbmF0dXJlPFZhbHVlID0gYW55PiB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdHlwZT86ICdzaW5nbGUnO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSBzZXQgdGhlIGluaXRpYWwgdG9nZ2xlIHN0YXRlXG4gICAgICovXG4gICAgdmFsdWU_OiBWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgdG9nZ2xlLWdyb3VwJ3Mgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKlxuICAgICAqIFdoZW4gbm9uZSBvZiB0aGUgdG9nZ2xlcyBhcmUgc2VsZWN0ZWQsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogVmFsdWUgfCB1bmRlZmluZWQpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgSXRlbTogSXRlbTtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFByaXZhdGVNdWx0aVNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIHR5cGU6ICdtdWx0aSc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSBzZXQgdGhlIGluaXRpYWwgdG9nZ2xlIHN0YXRlXG4gICAgICovXG4gICAgdmFsdWU_OiBWYWx1ZVtdIHwgU2V0PFZhbHVlPiB8IFZhbHVlO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSB0b2dnbGUtZ3JvdXAncyBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqXG4gICAgICogV2hlbiBub25lIG9mIHRoZSB0b2dnbGVzIGFyZSBzZWxlY3RlZCwgdW5kZWZpbmVkIHdpbGwgYmUgcGFzc2VkLlxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKHZhbHVlOiBTZXQ8VmFsdWU-KSA9PiB2b2lkO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIEl0ZW06IEl0ZW07XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzTXVsdGkoeDogJ3NpbmdsZScgfCAnbXVsdGknIHwgdW5kZWZpbmVkKTogeCBpcyAnbXVsdGknIHtcbiAgcmV0dXJuIHggPT09ICdtdWx0aSc7XG59XG5cbmV4cG9ydCBjbGFzcyBUb2dnbGVHcm91cDxWYWx1ZSA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnQ8XG4gIFByaXZhdGVTaW5nbGVTaWduYXR1cmU8VmFsdWU-IHwgUHJpdmF0ZU11bHRpU2lnbmF0dXJlPFZhbHVlPlxuPiB7XG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3R5cGVkLWVtYmVyL2dsaW50L2lzc3Vlcy83MTVcbiAgPHRlbXBsYXRlPlxuICAgIHt7I2lmIChpc011bHRpIHRoaXMuYXJncy50eXBlKX19XG4gICAgICA8TXVsdGlUb2dnbGVHcm91cFxuICAgICAgICBAdmFsdWU9e3t0aGlzLmFyZ3MudmFsdWV9fVxuICAgICAgICBAb25DaGFuZ2U9e3t0aGlzLmFyZ3Mub25DaGFuZ2V9fVxuICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgIGFzIHx4fFxuICAgICAgPlxuICAgICAgICB7e3lpZWxkIHh9fVxuICAgICAgPC9NdWx0aVRvZ2dsZUdyb3VwPlxuICAgIHt7ZWxzZX19XG4gICAgICA8U2luZ2xlVG9nZ2xlR3JvdXBcbiAgICAgICAgQHZhbHVlPXt7dGhpcy5hcmdzLnZhbHVlfX1cbiAgICAgICAgQG9uQ2hhbmdlPXt7dGhpcy5hcmdzLm9uQ2hhbmdlfX1cbiAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICBhcyB8eHxcbiAgICAgID5cbiAgICAgICAge3t5aWVsZCB4fX1cbiAgICAgIDwvU2luZ2xlVG9nZ2xlR3JvdXA-XG4gICAge3svaWZ9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5jbGFzcyBTaW5nbGVUb2dnbGVHcm91cDxWYWx1ZSA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnQ8U2luZ2xlU2lnbmF0dXJlPFZhbHVlPj4ge1xuICBAbG9jYWxDb3B5KCdhcmdzLnZhbHVlJykgYWN0aXZlUHJlc3NlZD86IFZhbHVlO1xuXG4gIGhhbmRsZVRvZ2dsZSA9ICh2YWx1ZTogVmFsdWUpID0-IHtcbiAgICBpZiAodGhpcy5hY3RpdmVQcmVzc2VkID09PSB2YWx1ZSkge1xuICAgICAgdGhpcy5hY3RpdmVQcmVzc2VkID0gdW5kZWZpbmVkO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVQcmVzc2VkID0gdmFsdWU7XG5cbiAgICB0aGlzLmFyZ3Mub25DaGFuZ2U_Lih0aGlzLmFjdGl2ZVByZXNzZWQpO1xuICB9O1xuXG4gIGlzUHJlc3NlZCA9ICh2YWx1ZTogVmFsdWUgfCB1bmRlZmluZWQpID0-IHZhbHVlID09PSB0aGlzLmFjdGl2ZVByZXNzZWQ7XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXYgZGF0YS10YWJzdGVyPXt7VEFCU1RFUl9DT05GSUd9fSAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZCAoaGFzaCBJdGVtPShjb21wb25lbnQgVG9nZ2xlIG9uQ2hhbmdlPXRoaXMuaGFuZGxlVG9nZ2xlIGlzUHJlc3NlZD10aGlzLmlzUHJlc3NlZCkpfX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuY2xhc3MgTXVsdGlUb2dnbGVHcm91cDxWYWx1ZSA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnQ8TXVsdGlTaWduYXR1cmU8VmFsdWU-PiB7XG4gIC8qKlxuICAgKiBOb3JtYWxpemVzIEB2YWx1ZSB0byBhIFNldFxuICAgKiBhbmQgbWFrZXMgc3VyZSB0aGF0IGV2ZW4gaWYgdGhlIGlucHV0IFNldCBpcyByZWFjdGl2ZSxcbiAgICogd2UgZG9uJ3QgbWlzdGFrZW5seSBkaXJ0eSBpdC5cbiAgICovXG4gIEBjYWNoZWRcbiAgZ2V0IGFjdGl2ZVByZXNzZWQoKTogVHJhY2tlZFNldDxWYWx1ZT4ge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuYXJncy52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBuZXcgVHJhY2tlZFNldCgpO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIG5ldyBUcmFja2VkU2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgIHJldHVybiBuZXcgVHJhY2tlZFNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBUcmFja2VkU2V0KFt2YWx1ZV0pO1xuICB9XG5cbiAgaGFuZGxlVG9nZ2xlID0gKHZhbHVlOiBWYWx1ZSkgPT4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZVByZXNzZWQuaGFzKHZhbHVlKSkge1xuICAgICAgdGhpcy5hY3RpdmVQcmVzc2VkLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlUHJlc3NlZC5hZGQodmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuYXJncy5vbkNoYW5nZT8uKG5ldyBTZXQ8VmFsdWU-KHRoaXMuYWN0aXZlUHJlc3NlZC52YWx1ZXMoKSkpO1xuICB9O1xuXG4gIGlzUHJlc3NlZCA9ICh2YWx1ZTogVmFsdWUpID0-IHRoaXMuYWN0aXZlUHJlc3NlZC5oYXModmFsdWUpO1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGRhdGEtdGFic3Rlcj17e1RBQlNURVJfQ09ORklHfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT0oY29tcG9uZW50IFRvZ2dsZSBvbkNoYW5nZT10aGlzLmhhbmRsZVRvZ2dsZSBpc1ByZXNzZWQ9dGhpcy5pc1ByZXNzZWQpKX19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["TABSTER_CONFIG","getTabsterAttribute","mover","direction","Types","MoverDirections","Both","cyclic","isMulti","x1","ToggleGroup","Component","setComponentTemplate","precompileTemplate","strictMode","scope","MultiToggleGroup","SingleToggleGroup","g","this","prototype","localCopy","i","void 0","handleToggle","value1","activePressed","undefined","args","onChange","isPressed","hash","Toggle","value","TrackedSet","Array","isArray","Set","n","cached","has","delete","add","values"],"mappings":"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"}
|
|
@@ -14,14 +14,14 @@ function isPressed(pressed1, value1, isPressed1) {
|
|
|
14
14
|
return isPressed1(value1);
|
|
15
15
|
}
|
|
16
16
|
const Toggle = setComponentTemplate(precompileTemplate("\n {{#let (cell (isPressed @pressed @value @isPressed)) as |pressed|}}\n <button type=\"button\" aria-pressed=\"{{pressed.current}}\" {{on \"click\" (fn toggleWithFallback pressed.toggle @onChange @value)}} ...attributes>\n {{yield pressed.current}}\n </button>\n {{/let}}\n", {
|
|
17
|
+
strictMode: true,
|
|
17
18
|
scope: () => ({
|
|
18
19
|
cell,
|
|
19
20
|
isPressed,
|
|
20
21
|
on,
|
|
21
22
|
fn,
|
|
22
23
|
toggleWithFallback
|
|
23
|
-
})
|
|
24
|
-
strictMode: true
|
|
24
|
+
})
|
|
25
25
|
}), templateOnly());
|
|
26
26
|
|
|
27
27
|
export { Toggle, Toggle as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.js","sources":["../../src/components/toggle.gts"],"sourcesContent":["// import Component from '@glimmer/component';\nimport { template } from \"@ember/template-compiler\";\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { cell } from 'ember-resources';\nimport { toggleWithFallback } from './-private/utils.ts';\nimport type { TOC } from '@ember/component/template-only';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface Signature<Value = any> {\n Element: HTMLButtonElement;\n Args: {\n /**\n * The pressed-state of the toggle.\n *\n * Can be used to control the state of the component.\n */ pressed?: boolean;\n /**\n * Callback for when the toggle's state is changed.\n *\n * Can be used to control the state of the component.\n *\n * if a `@value` is passed to this `<Toggle>`, that @value will\n * be passed to the `@onChange` handler.\n *\n * This can be useful when using the same function for the `@onChange`\n * handler with multiple `<Toggle>` components.\n */ onChange?: (value: Value | undefined, pressed: boolean) => void;\n /**\n * When used in a group of Toggles, this option will be helpful to\n * know which toggle was pressed if you're using the same @onChange\n * handler for multiple toggles.\n */ value?: Value;\n /**\n * When controlling state in a wrapping component, this function can be used in conjunction with `@value` to determine if this `<Toggle>` should appear pressed.\n */ isPressed?: (value?: Value | undefined) => boolean;\n };\n Blocks: {\n default: [/**\n * the current pressed state of the toggle button\n *\n * Useful when using the toggle button as an uncontrolled component\n */ pressed: boolean];\n };\n}\nfunction isPressed(pressed1?: boolean, value1?: unknown, isPressed1?: (value?: unknown) => boolean): boolean {\n if (!value1) return Boolean(pressed1);\n if (!isPressed1) return Boolean(pressed1);\n return isPressed1(value1);\n}\nexport const Toggle: TOC<Signature> = template(`\n {{#let (cell (isPressed @pressed @value @isPressed)) as |pressed|}}\n <button\n type=\"button\"\n aria-pressed=\"{{pressed.current}}\"\n {{on \"click\" (fn toggleWithFallback pressed.toggle @onChange @value)}}\n ...attributes\n >\n {{yield pressed.current}}\n </button>\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Toggle;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3RvZ2dsZS5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgZm4gfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcblxuaW1wb3J0IHsgY2VsbCB9IGZyb20gJ2VtYmVyLXJlc291cmNlcyc7XG5cbmltcG9ydCB7IHRvZ2dsZVdpdGhGYWxsYmFjayB9IGZyb20gJy4vLXByaXZhdGUvdXRpbHMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBwcmVzc2VkLXN0YXRlIG9mIHRoZSB0b2dnbGUuXG4gICAgICpcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByZXNzZWQ_OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSB0b2dnbGUncyBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIGlmIGEgYEB2YWx1ZWAgaXMgcGFzc2VkIHRvIHRoaXMgYDxUb2dnbGU-YCwgdGhhdCBAdmFsdWUgd2lsbFxuICAgICAqIGJlIHBhc3NlZCB0byB0aGUgYEBvbkNoYW5nZWAgaGFuZGxlci5cbiAgICAgKlxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIHVzaW5nIHRoZSBzYW1lIGZ1bmN0aW9uIGZvciB0aGUgYEBvbkNoYW5nZWBcbiAgICAgKiBoYW5kbGVyIHdpdGggbXVsdGlwbGUgYDxUb2dnbGU-YCBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKHZhbHVlOiBWYWx1ZSB8IHVuZGVmaW5lZCwgcHJlc3NlZDogYm9vbGVhbikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gdXNlZCBpbiBhIGdyb3VwIG9mIFRvZ2dsZXMsIHRoaXMgb3B0aW9uIHdpbGwgYmUgaGVscGZ1bCB0b1xuICAgICAqIGtub3cgd2hpY2ggdG9nZ2xlIHdhcyBwcmVzc2VkIGlmIHlvdSdyZSB1c2luZyB0aGUgc2FtZSBAb25DaGFuZ2VcbiAgICAgKiBoYW5kbGVyIGZvciBtdWx0aXBsZSB0b2dnbGVzLlxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGNvbnRyb2xsaW5nIHN0YXRlIGluIGEgd3JhcHBpbmcgY29tcG9uZW50LCB0aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYEB2YWx1ZWAgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYDxUb2dnbGU-YCBzaG91bGQgYXBwZWFyIHByZXNzZWQuXG4gICAgICovXG4gICAgaXNQcmVzc2VkPzogKHZhbHVlPzogVmFsdWUgfCB1bmRlZmluZWQpID0-IGJvb2xlYW47XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIC8qKlxuICAgICAgICogdGhlIGN1cnJlbnQgcHJlc3NlZCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGJ1dHRvblxuICAgICAgICpcbiAgICAgICAqIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSB0b2dnbGUgYnV0dG9uIGFzIGFuIHVuY29udHJvbGxlZCBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgcHJlc3NlZDogYm9vbGVhbixcbiAgICBdO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc1ByZXNzZWQoXG4gIHByZXNzZWQ_OiBib29sZWFuLFxuICB2YWx1ZT86IHVua25vd24sXG4gIGlzUHJlc3NlZD86ICh2YWx1ZT86IHVua25vd24pID0-IGJvb2xlYW5cbik6IGJvb2xlYW4ge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gQm9vbGVhbihwcmVzc2VkKTtcbiAgaWYgKCFpc1ByZXNzZWQpIHJldHVybiBCb29sZWFuKHByZXNzZWQpO1xuXG4gIHJldHVybiBpc1ByZXNzZWQodmFsdWUpO1xufVxuXG5leHBvcnQgY29uc3QgVG9nZ2xlOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjbGV0IChjZWxsIChpc1ByZXNzZWQgQHByZXNzZWQgQHZhbHVlIEBpc1ByZXNzZWQpKSBhcyB8cHJlc3NlZHx9fVxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgYXJpYS1wcmVzc2VkPVwie3twcmVzc2VkLmN1cnJlbnR9fVwiXG4gICAgICB7e29uIFwiY2xpY2tcIiAoZm4gdG9nZ2xlV2l0aEZhbGxiYWNrIHByZXNzZWQudG9nZ2xlIEBvbkNoYW5nZSBAdmFsdWUpfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICA-XG4gICAgICB7e3lpZWxkIHByZXNzZWQuY3VycmVudH19XG4gICAgPC9idXR0b24-XG4gIHt7L2xldH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgVG9nZ2xlO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUE4Qzs7QUFDOUMsU0FBUyxFQUFFLFFBQVEsZ0JBQWdCO0FBQ25DLFNBQVMsRUFBRSxRQUFRLGtCQUFrQjtBQUVyQyxTQUFTLElBQUksUUFBUSxrQkFBa0I7QUFFdkMsU0FBUyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFFekQsY0FBYyxHQUFHLFFBQVEsaUNBQWlDO0FBRTFELDhEQUE4RDtBQUM5RCxpQkFBaUIsVUFBVSxRQUFRLEdBQUc7SUFDcEMsU0FBUztJQUNUO1FBQ0U7Ozs7S0FJQyxHQUNELFVBQVUsT0FBTztRQUNqQjs7Ozs7Ozs7OztLQVVDLEdBQ0QsWUFBWSxPQUFPLFFBQVEsU0FBUyxFQUFFLFNBQVMsT0FBTyxLQUFLLElBQUk7UUFFL0Q7Ozs7S0FJQyxHQUNELFFBQVE7UUFFUjs7S0FFQyxHQUNELGFBQWEsUUFBUSxRQUFRLFNBQVMsS0FBSyxPQUFPOztJQUVwRDtRQUNFLFVBQ0U7Ozs7T0FJQyxHQUNELFNBQVMsT0FBTzs7O0FBS3RCLFNBQVMsVUFDUCxXQUFVLE9BQU8sRUFDakIsU0FBUSxPQUFPLEVBQ2YsY0FBYSxRQUFRLE9BQU8sS0FBSyxPQUFPLEdBQ3ZDLE9BQU87SUFDUixJQUFJLENBQUMsUUFBTyxPQUFPLFFBQVE7SUFDM0IsSUFBSSxDQUFDLFlBQVcsT0FBTyxRQUFRO0lBRS9CLE9BQU8sV0FBVTtBQUNuQjtBQUVBLE9BQU8sTUFBTSxRQUFRLElBQUksYUFBYSxTQUFVLENBQUE7Ozs7Ozs7Ozs7O0FBV2hELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQSxHQUFFO0FBRVosZUFBZSxPQUFPIn0"],"names":["isPressed","pressed1","value1","isPressed1","Boolean","Toggle","setComponentTemplate","precompileTemplate","scope","cell","on","fn","toggleWithFallback","
|
|
1
|
+
{"version":3,"file":"toggle.js","sources":["../../src/components/toggle.gts"],"sourcesContent":["// import Component from '@glimmer/component';\nimport { template } from \"@ember/template-compiler\";\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { cell } from 'ember-resources';\nimport { toggleWithFallback } from './-private/utils.ts';\nimport type { TOC } from '@ember/component/template-only';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface Signature<Value = any> {\n Element: HTMLButtonElement;\n Args: {\n /**\n * The pressed-state of the toggle.\n *\n * Can be used to control the state of the component.\n */ pressed?: boolean;\n /**\n * Callback for when the toggle's state is changed.\n *\n * Can be used to control the state of the component.\n *\n * if a `@value` is passed to this `<Toggle>`, that @value will\n * be passed to the `@onChange` handler.\n *\n * This can be useful when using the same function for the `@onChange`\n * handler with multiple `<Toggle>` components.\n */ onChange?: (value: Value | undefined, pressed: boolean) => void;\n /**\n * When used in a group of Toggles, this option will be helpful to\n * know which toggle was pressed if you're using the same @onChange\n * handler for multiple toggles.\n */ value?: Value;\n /**\n * When controlling state in a wrapping component, this function can be used in conjunction with `@value` to determine if this `<Toggle>` should appear pressed.\n */ isPressed?: (value?: Value | undefined) => boolean;\n };\n Blocks: {\n default: [/**\n * the current pressed state of the toggle button\n *\n * Useful when using the toggle button as an uncontrolled component\n */ pressed: boolean];\n };\n}\nfunction isPressed(pressed1?: boolean, value1?: unknown, isPressed1?: (value?: unknown) => boolean): boolean {\n if (!value1) return Boolean(pressed1);\n if (!isPressed1) return Boolean(pressed1);\n return isPressed1(value1);\n}\nexport const Toggle: TOC<Signature> = template(`\n {{#let (cell (isPressed @pressed @value @isPressed)) as |pressed|}}\n <button\n type=\"button\"\n aria-pressed=\"{{pressed.current}}\"\n {{on \"click\" (fn toggleWithFallback pressed.toggle @onChange @value)}}\n ...attributes\n >\n {{yield pressed.current}}\n </button>\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default Toggle;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9jb21wb25lbnRzL3RvZ2dsZS5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgZm4gfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcblxuaW1wb3J0IHsgY2VsbCB9IGZyb20gJ2VtYmVyLXJlc291cmNlcyc7XG5cbmltcG9ydCB7IHRvZ2dsZVdpdGhGYWxsYmFjayB9IGZyb20gJy4vLXByaXZhdGUvdXRpbHMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IFRPQyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBwcmVzc2VkLXN0YXRlIG9mIHRoZSB0b2dnbGUuXG4gICAgICpcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByZXNzZWQ_OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSB0b2dnbGUncyBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIGlmIGEgYEB2YWx1ZWAgaXMgcGFzc2VkIHRvIHRoaXMgYDxUb2dnbGU-YCwgdGhhdCBAdmFsdWUgd2lsbFxuICAgICAqIGJlIHBhc3NlZCB0byB0aGUgYEBvbkNoYW5nZWAgaGFuZGxlci5cbiAgICAgKlxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIHVzaW5nIHRoZSBzYW1lIGZ1bmN0aW9uIGZvciB0aGUgYEBvbkNoYW5nZWBcbiAgICAgKiBoYW5kbGVyIHdpdGggbXVsdGlwbGUgYDxUb2dnbGU-YCBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKHZhbHVlOiBWYWx1ZSB8IHVuZGVmaW5lZCwgcHJlc3NlZDogYm9vbGVhbikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gdXNlZCBpbiBhIGdyb3VwIG9mIFRvZ2dsZXMsIHRoaXMgb3B0aW9uIHdpbGwgYmUgaGVscGZ1bCB0b1xuICAgICAqIGtub3cgd2hpY2ggdG9nZ2xlIHdhcyBwcmVzc2VkIGlmIHlvdSdyZSB1c2luZyB0aGUgc2FtZSBAb25DaGFuZ2VcbiAgICAgKiBoYW5kbGVyIGZvciBtdWx0aXBsZSB0b2dnbGVzLlxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGNvbnRyb2xsaW5nIHN0YXRlIGluIGEgd3JhcHBpbmcgY29tcG9uZW50LCB0aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYEB2YWx1ZWAgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYDxUb2dnbGU-YCBzaG91bGQgYXBwZWFyIHByZXNzZWQuXG4gICAgICovXG4gICAgaXNQcmVzc2VkPzogKHZhbHVlPzogVmFsdWUgfCB1bmRlZmluZWQpID0-IGJvb2xlYW47XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIC8qKlxuICAgICAgICogdGhlIGN1cnJlbnQgcHJlc3NlZCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGJ1dHRvblxuICAgICAgICpcbiAgICAgICAqIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSB0b2dnbGUgYnV0dG9uIGFzIGFuIHVuY29udHJvbGxlZCBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgcHJlc3NlZDogYm9vbGVhbixcbiAgICBdO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc1ByZXNzZWQoXG4gIHByZXNzZWQ_OiBib29sZWFuLFxuICB2YWx1ZT86IHVua25vd24sXG4gIGlzUHJlc3NlZD86ICh2YWx1ZT86IHVua25vd24pID0-IGJvb2xlYW5cbik6IGJvb2xlYW4ge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gQm9vbGVhbihwcmVzc2VkKTtcbiAgaWYgKCFpc1ByZXNzZWQpIHJldHVybiBCb29sZWFuKHByZXNzZWQpO1xuXG4gIHJldHVybiBpc1ByZXNzZWQodmFsdWUpO1xufVxuXG5leHBvcnQgY29uc3QgVG9nZ2xlOiBUT0M8U2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjbGV0IChjZWxsIChpc1ByZXNzZWQgQHByZXNzZWQgQHZhbHVlIEBpc1ByZXNzZWQpKSBhcyB8cHJlc3NlZHx9fVxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgYXJpYS1wcmVzc2VkPVwie3twcmVzc2VkLmN1cnJlbnR9fVwiXG4gICAgICB7e29uIFwiY2xpY2tcIiAoZm4gdG9nZ2xlV2l0aEZhbGxiYWNrIHByZXNzZWQudG9nZ2xlIEBvbkNoYW5nZSBAdmFsdWUpfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICA-XG4gICAgICB7e3lpZWxkIHByZXNzZWQuY3VycmVudH19XG4gICAgPC9idXR0b24-XG4gIHt7L2xldH19XG48L3RlbXBsYXRlPjtcblxuZXhwb3J0IGRlZmF1bHQgVG9nZ2xlO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUE4Qzs7QUFDOUMsU0FBUyxFQUFFLFFBQVEsZ0JBQWdCO0FBQ25DLFNBQVMsRUFBRSxRQUFRLGtCQUFrQjtBQUVyQyxTQUFTLElBQUksUUFBUSxrQkFBa0I7QUFFdkMsU0FBUyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFFekQsY0FBYyxHQUFHLFFBQVEsaUNBQWlDO0FBRTFELDhEQUE4RDtBQUM5RCxpQkFBaUIsVUFBVSxRQUFRLEdBQUc7SUFDcEMsU0FBUztJQUNUO1FBQ0U7Ozs7S0FJQyxHQUNELFVBQVUsT0FBTztRQUNqQjs7Ozs7Ozs7OztLQVVDLEdBQ0QsWUFBWSxPQUFPLFFBQVEsU0FBUyxFQUFFLFNBQVMsT0FBTyxLQUFLLElBQUk7UUFFL0Q7Ozs7S0FJQyxHQUNELFFBQVE7UUFFUjs7S0FFQyxHQUNELGFBQWEsUUFBUSxRQUFRLFNBQVMsS0FBSyxPQUFPOztJQUVwRDtRQUNFLFVBQ0U7Ozs7T0FJQyxHQUNELFNBQVMsT0FBTzs7O0FBS3RCLFNBQVMsVUFDUCxXQUFVLE9BQU8sRUFDakIsU0FBUSxPQUFPLEVBQ2YsY0FBYSxRQUFRLE9BQU8sS0FBSyxPQUFPLEdBQ3ZDLE9BQU87SUFDUixJQUFJLENBQUMsUUFBTyxPQUFPLFFBQVE7SUFDM0IsSUFBSSxDQUFDLFlBQVcsT0FBTyxRQUFRO0lBRS9CLE9BQU8sV0FBVTtBQUNuQjtBQUVBLE9BQU8sTUFBTSxRQUFRLElBQUksYUFBYSxTQUFVLENBQUE7Ozs7Ozs7Ozs7O0FBV2hELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQSxHQUFFO0FBRVosZUFBZSxPQUFPIn0"],"names":["isPressed","pressed1","value1","isPressed1","Boolean","Toggle","setComponentTemplate","precompileTemplate","strictMode","scope","cell","on","fn","toggleWithFallback","templateOnly"],"mappings":";;;;;;;;AAAA;;AAyDA,SAASA,UACPC,QAAiB,EACjBC,MAAe,EACfC,UAAwC,EAChC;AACR,EAAA,IAAI,CAACD,MAAA,EAAO,OAAOE,OAAA,CAAQH,QAAA,CAAA,CAAA;AAC3B,EAAA,IAAI,CAACE,UAAA,EAAW,OAAOC,OAAA,CAAQH,QAAA,CAAA,CAAA;EAE/B,OAAOE,UAAA,CAAUD,MAAA,CAAA,CAAA;AACnB,CAAA;MAEaG,MAAY,GAAAC,oBAAA,CAAaC,kBAAA,CAWtC,iSAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAV,SAAA;IAAAW,EAAA;IAAAC,EAAA;AAAAC,IAAAA,kBAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -30,12 +30,12 @@ class Velcro extends Component {
|
|
|
30
30
|
};
|
|
31
31
|
static {
|
|
32
32
|
setComponentTemplate(precompileTemplate("\n {{#let (modifier VelcroModifier flipOptions=@flipOptions hideOptions=@hideOptions middleware=@middleware offsetOptions=@offsetOptions placement=@placement shiftOptions=@shiftOptions strategy=@strategy setVelcroData=this.setVelcroData) as |loop|}}\n {{#let (if this.hook (modifier loop this.hook)) as |loopWithHook|}}\n {{!-- @glint-nocheck -- Excessively deep, possibly infinite --}}\n {{yield (hash hook=(modifier ref this.setHook) setHook=this.setHook loop=loopWithHook data=this.velcroData)}}\n {{/let}}\n {{/let}}\n ", {
|
|
33
|
+
strictMode: true,
|
|
33
34
|
scope: () => ({
|
|
34
35
|
VelcroModifier,
|
|
35
36
|
hash,
|
|
36
37
|
ref
|
|
37
|
-
})
|
|
38
|
-
strictMode: true
|
|
38
|
+
})
|
|
39
39
|
}), this);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../src/floating-ui/component.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { modifier as eModifier } from 'ember-modifier';\nimport VelcroModifier from './modifier.ts';\nimport type { Signature as ModifierSignature } from './modifier.ts';\nimport type { MiddlewareState } from '@floating-ui/dom';\nimport type { WithBoundArgs, WithBoundPositionals } from '@glint/template';\nimport type { ModifierLike } from '@glint/template';\ntype ModifierArgs = ModifierSignature['Args']['Named'];\ninterface HookSignature {\n Element: HTMLElement | SVGElement;\n}\nexport interface Signature {\n Args: {\n middleware?: ModifierArgs['middleware'];\n placement?: ModifierArgs['placement'];\n strategy?: ModifierArgs['strategy'];\n flipOptions?: ModifierArgs['flipOptions'];\n hideOptions?: ModifierArgs['hideOptions'];\n shiftOptions?: ModifierArgs['shiftOptions'];\n offsetOptions?: ModifierArgs['offsetOptions'];\n };\n Blocks: {\n default: [velcro: {\n hook: ModifierLike<HookSignature>;\n setHook: (element: HTMLElement | SVGElement) => void;\n loop?: WithBoundArgs<WithBoundPositionals<typeof VelcroModifier, 1>, keyof ModifierArgs>;\n data?: MiddlewareState;\n }];\n };\n}\nconst ref = eModifier<{\n Element: HTMLElement | SVGElement;\n Args: {\n Positional: [setRef: (element: HTMLElement | SVGElement) => void];\n };\n}>((element1: HTMLElement | SVGElement, positional1)=>{\n let fn1 = positional1[0];\n fn1(element1);\n});\nexport default class Velcro extends Component<Signature> {\n @tracked\n hook?: HTMLElement | SVGElement = undefined;\n // set by VelcroModifier\n @tracked\n velcroData?: MiddlewareState = undefined;\n setVelcroData: ModifierArgs['setVelcroData'] = (data1)=>(this.velcroData = data1);\n setHook = (element1: HTMLElement | SVGElement)=>{\n this.hook = element1;\n };\n static{\n template(`\n {{#let\n (modifier\n VelcroModifier\n flipOptions=@flipOptions\n hideOptions=@hideOptions\n middleware=@middleware\n offsetOptions=@offsetOptions\n placement=@placement\n shiftOptions=@shiftOptions\n strategy=@strategy\n setVelcroData=this.setVelcroData\n )\n as |loop|\n }}\n {{#let (if this.hook (modifier loop this.hook)) as |loopWithHook|}}\n {{! @glint-nocheck -- Excessively deep, possibly infinite }}\n {{yield\n (hash\n hook=(modifier ref this.setHook)\n setHook=this.setHook\n loop=loopWithHook\n data=this.velcroData\n )\n }}\n {{/let}}\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9mbG9hdGluZy11aS9jb21wb25lbnQuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbmltcG9ydCB7IG1vZGlmaWVyIGFzIGVNb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcblxuaW1wb3J0IFZlbGNyb01vZGlmaWVyIGZyb20gJy4vbW9kaWZpZXIudHMnO1xuXG5pbXBvcnQgdHlwZSB7IFNpZ25hdHVyZSBhcyBNb2RpZmllclNpZ25hdHVyZSB9IGZyb20gJy4vbW9kaWZpZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlU3RhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncywgV2l0aEJvdW5kUG9zaXRpb25hbHMgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RpZmllckxpa2UgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG50eXBlIE1vZGlmaWVyQXJncyA9IE1vZGlmaWVyU2lnbmF0dXJlWydBcmdzJ11bJ05hbWVkJ107XG5cbmludGVyZmFjZSBIb29rU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICBtaWRkbGV3YXJlPzogTW9kaWZpZXJBcmdzWydtaWRkbGV3YXJlJ107XG4gICAgcGxhY2VtZW50PzogTW9kaWZpZXJBcmdzWydwbGFjZW1lbnQnXTtcbiAgICBzdHJhdGVneT86IE1vZGlmaWVyQXJnc1snc3RyYXRlZ3knXTtcbiAgICBmbGlwT3B0aW9ucz86IE1vZGlmaWVyQXJnc1snZmxpcE9wdGlvbnMnXTtcbiAgICBoaWRlT3B0aW9ucz86IE1vZGlmaWVyQXJnc1snaGlkZU9wdGlvbnMnXTtcbiAgICBzaGlmdE9wdGlvbnM_OiBNb2RpZmllckFyZ3NbJ3NoaWZ0T3B0aW9ucyddO1xuICAgIG9mZnNldE9wdGlvbnM_OiBNb2RpZmllckFyZ3NbJ29mZnNldE9wdGlvbnMnXTtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAgdmVsY3JvOiB7XG4gICAgICAgIGhvb2s6IE1vZGlmaWVyTGlrZTxIb29rU2lnbmF0dXJlPjtcbiAgICAgICAgc2V0SG9vazogKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCkgPT4gdm9pZDtcbiAgICAgICAgbG9vcD86IFdpdGhCb3VuZEFyZ3M8V2l0aEJvdW5kUG9zaXRpb25hbHM8dHlwZW9mIFZlbGNyb01vZGlmaWVyLCAxPiwga2V5b2YgTW9kaWZpZXJBcmdzPjtcbiAgICAgICAgZGF0YT86IE1pZGRsZXdhcmVTdGF0ZTtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuY29uc3QgcmVmID0gZU1vZGlmaWVyPHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgUG9zaXRpb25hbDogW3NldFJlZjogKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCkgPT4gdm9pZF07XG4gIH07XG59PigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50LCBwb3NpdGlvbmFsKSA9PiB7XG4gIGxldCBmbiA9IHBvc2l0aW9uYWxbMF07XG5cbiAgZm4oZWxlbWVudCk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsY3JvIGV4dGVuZHMgQ29tcG9uZW50PFNpZ25hdHVyZT4ge1xuICBAdHJhY2tlZCBob29rPzogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50ID0gdW5kZWZpbmVkO1xuXG4gIC8vIHNldCBieSBWZWxjcm9Nb2RpZmllclxuICBAdHJhY2tlZCB2ZWxjcm9EYXRhPzogTWlkZGxld2FyZVN0YXRlID0gdW5kZWZpbmVkO1xuXG4gIHNldFZlbGNyb0RhdGE6IE1vZGlmaWVyQXJnc1snc2V0VmVsY3JvRGF0YSddID0gKGRhdGEpID0-ICh0aGlzLnZlbGNyb0RhdGEgPSBkYXRhKTtcblxuICBzZXRIb29rID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCkgPT4ge1xuICAgIHRoaXMuaG9vayA9IGVsZW1lbnQ7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2xldFxuICAgICAgKG1vZGlmaWVyXG4gICAgICAgIFZlbGNyb01vZGlmaWVyXG4gICAgICAgIGZsaXBPcHRpb25zPUBmbGlwT3B0aW9uc1xuICAgICAgICBoaWRlT3B0aW9ucz1AaGlkZU9wdGlvbnNcbiAgICAgICAgbWlkZGxld2FyZT1AbWlkZGxld2FyZVxuICAgICAgICBvZmZzZXRPcHRpb25zPUBvZmZzZXRPcHRpb25zXG4gICAgICAgIHBsYWNlbWVudD1AcGxhY2VtZW50XG4gICAgICAgIHNoaWZ0T3B0aW9ucz1Ac2hpZnRPcHRpb25zXG4gICAgICAgIHN0cmF0ZWd5PUBzdHJhdGVneVxuICAgICAgICBzZXRWZWxjcm9EYXRhPXRoaXMuc2V0VmVsY3JvRGF0YVxuICAgICAgKVxuICAgICAgYXMgfGxvb3B8XG4gICAgfX1cbiAgICAgIHt7I2xldCAoaWYgdGhpcy5ob29rIChtb2RpZmllciBsb29wIHRoaXMuaG9vaykpIGFzIHxsb29wV2l0aEhvb2t8fX1cbiAgICAgICAge3shIEBnbGludC1ub2NoZWNrIC0tIEV4Y2Vzc2l2ZWx5IGRlZXAsIHBvc3NpYmx5IGluZmluaXRlIH19XG4gICAgICAgIHt7eWllbGRcbiAgICAgICAgICAoaGFzaFxuICAgICAgICAgICAgaG9vaz0obW9kaWZpZXIgcmVmIHRoaXMuc2V0SG9vaylcbiAgICAgICAgICAgIHNldEhvb2s9dGhpcy5zZXRIb29rXG4gICAgICAgICAgICBsb29wPWxvb3BXaXRoSG9va1xuICAgICAgICAgICAgZGF0YT10aGlzLnZlbGNyb0RhdGFcbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICB7ey9sZXR9fVxuICAgIHt7L2xldH19XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxPQUFPLFFBQVEsb0JBQW9CO0FBQzVDLFNBQVMsSUFBSSxRQUFRLGdCQUFnQjtBQUVyQyxTQUFTLFlBQVksU0FBUyxRQUFRLGlCQUFpQjtBQUV2RCxPQUFPLG9CQUFvQixnQkFBZ0I7QUFFM0MsY0FBYyxhQUFhLGlCQUFpQixRQUFRLGdCQUFnQjtBQUNwRSxjQUFjLGVBQWUsUUFBUSxtQkFBbUI7QUFDeEQsY0FBYyxhQUFhLEVBQUUsb0JBQW9CLFFBQVEsa0JBQWtCO0FBQzNFLGNBQWMsWUFBWSxRQUFRLGtCQUFrQjtLQUUvQyxlQUFlLGtCQUFrQixRQUFRO1VBRXBDO0lBQ1IsU0FBUyxjQUFjOztBQUd6QixpQkFBaUI7SUFDZjtRQUNFLGFBQWEsYUFBYTtRQUMxQixZQUFZLGFBQWE7UUFDekIsV0FBVyxhQUFhO1FBQ3hCLGNBQWMsYUFBYTtRQUMzQixjQUFjLGFBQWE7UUFDM0IsZUFBZSxhQUFhO1FBQzVCLGdCQUFnQixhQUFhOztJQUUvQjtRQUNFLFVBQ0U7Z0JBQ0UsTUFBTSxhQUFhO2dCQUNuQixVQUFVLFNBQVMsY0FBYyxlQUFlLElBQUk7Z0JBQ3BELE9BQU8sY0FBYyw0QkFBNEIsZ0JBQWdCLFVBQVU7Z0JBQzNFLE9BQU87Ozs7QUFNZixNQUFNLE1BQU07SUFDVixTQUFTLGNBQWM7SUFDdkI7UUFDRSxhQUFhLFNBQVMsU0FBUyxjQUFjLGVBQWUsSUFBSTs7R0FFakUsQ0FBQyxVQUFTLGNBQWMsWUFBWTtJQUNyQyxJQUFJLE1BQUssV0FBVSxDQUFDLEVBQUU7SUFFdEIsSUFBRztBQUNMO0FBRUEsZUFBZSxNQUFNLGVBQWUsVUFBVTtJQUM1QyxDQUFDO0lBQVEsT0FBTyxjQUFjLGFBQWEsVUFBVTtJQUVyRCx3QkFBd0I7SUFDeEIsQ0FBQztJQUFRLGFBQWEsa0JBQWtCLFVBQVU7SUFFbEQsZUFBZSxhQUFhLG1CQUFtQixDQUFDLFFBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUksRUFBRTtJQUVsRixVQUFVLENBQUMsVUFBUyxjQUFjO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUc7SUFDZCxFQUFFO0lBRUYsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBMkJWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQTNCQTtBQTRCWiJ9"],"names":["ref","eModifier","element1","positional1","fn1","Velcro","Component","g","this","prototype","tracked","undefined","i","void 0","setVelcroData","data1","velcroData","setHook","hook","setComponentTemplate","precompileTemplate","scope","VelcroModifier","hash"
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../src/floating-ui/component.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { modifier as eModifier } from 'ember-modifier';\nimport VelcroModifier from './modifier.ts';\nimport type { Signature as ModifierSignature } from './modifier.ts';\nimport type { MiddlewareState } from '@floating-ui/dom';\nimport type { WithBoundArgs, WithBoundPositionals } from '@glint/template';\nimport type { ModifierLike } from '@glint/template';\ntype ModifierArgs = ModifierSignature['Args']['Named'];\ninterface HookSignature {\n Element: HTMLElement | SVGElement;\n}\nexport interface Signature {\n Args: {\n middleware?: ModifierArgs['middleware'];\n placement?: ModifierArgs['placement'];\n strategy?: ModifierArgs['strategy'];\n flipOptions?: ModifierArgs['flipOptions'];\n hideOptions?: ModifierArgs['hideOptions'];\n shiftOptions?: ModifierArgs['shiftOptions'];\n offsetOptions?: ModifierArgs['offsetOptions'];\n };\n Blocks: {\n default: [velcro: {\n hook: ModifierLike<HookSignature>;\n setHook: (element: HTMLElement | SVGElement) => void;\n loop?: WithBoundArgs<WithBoundPositionals<typeof VelcroModifier, 1>, keyof ModifierArgs>;\n data?: MiddlewareState;\n }];\n };\n}\nconst ref = eModifier<{\n Element: HTMLElement | SVGElement;\n Args: {\n Positional: [setRef: (element: HTMLElement | SVGElement) => void];\n };\n}>((element1: HTMLElement | SVGElement, positional1)=>{\n let fn1 = positional1[0];\n fn1(element1);\n});\nexport default class Velcro extends Component<Signature> {\n @tracked\n hook?: HTMLElement | SVGElement = undefined;\n // set by VelcroModifier\n @tracked\n velcroData?: MiddlewareState = undefined;\n setVelcroData: ModifierArgs['setVelcroData'] = (data1)=>(this.velcroData = data1);\n setHook = (element1: HTMLElement | SVGElement)=>{\n this.hook = element1;\n };\n static{\n template(`\n {{#let\n (modifier\n VelcroModifier\n flipOptions=@flipOptions\n hideOptions=@hideOptions\n middleware=@middleware\n offsetOptions=@offsetOptions\n placement=@placement\n shiftOptions=@shiftOptions\n strategy=@strategy\n setVelcroData=this.setVelcroData\n )\n as |loop|\n }}\n {{#let (if this.hook (modifier loop this.hook)) as |loopWithHook|}}\n {{! @glint-nocheck -- Excessively deep, possibly infinite }}\n {{yield\n (hash\n hook=(modifier ref this.setHook)\n setHook=this.setHook\n loop=loopWithHook\n data=this.velcroData\n )\n }}\n {{/let}}\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9lbWJlci1wcmltaXRpdmVzL3NyYy9mbG9hdGluZy11aS9jb21wb25lbnQuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbmltcG9ydCB7IG1vZGlmaWVyIGFzIGVNb2RpZmllciB9IGZyb20gJ2VtYmVyLW1vZGlmaWVyJztcblxuaW1wb3J0IFZlbGNyb01vZGlmaWVyIGZyb20gJy4vbW9kaWZpZXIudHMnO1xuXG5pbXBvcnQgdHlwZSB7IFNpZ25hdHVyZSBhcyBNb2RpZmllclNpZ25hdHVyZSB9IGZyb20gJy4vbW9kaWZpZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlU3RhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncywgV2l0aEJvdW5kUG9zaXRpb25hbHMgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RpZmllckxpa2UgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG50eXBlIE1vZGlmaWVyQXJncyA9IE1vZGlmaWVyU2lnbmF0dXJlWydBcmdzJ11bJ05hbWVkJ107XG5cbmludGVyZmFjZSBIb29rU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICBtaWRkbGV3YXJlPzogTW9kaWZpZXJBcmdzWydtaWRkbGV3YXJlJ107XG4gICAgcGxhY2VtZW50PzogTW9kaWZpZXJBcmdzWydwbGFjZW1lbnQnXTtcbiAgICBzdHJhdGVneT86IE1vZGlmaWVyQXJnc1snc3RyYXRlZ3knXTtcbiAgICBmbGlwT3B0aW9ucz86IE1vZGlmaWVyQXJnc1snZmxpcE9wdGlvbnMnXTtcbiAgICBoaWRlT3B0aW9ucz86IE1vZGlmaWVyQXJnc1snaGlkZU9wdGlvbnMnXTtcbiAgICBzaGlmdE9wdGlvbnM_OiBNb2RpZmllckFyZ3NbJ3NoaWZ0T3B0aW9ucyddO1xuICAgIG9mZnNldE9wdGlvbnM_OiBNb2RpZmllckFyZ3NbJ29mZnNldE9wdGlvbnMnXTtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAgdmVsY3JvOiB7XG4gICAgICAgIGhvb2s6IE1vZGlmaWVyTGlrZTxIb29rU2lnbmF0dXJlPjtcbiAgICAgICAgc2V0SG9vazogKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCkgPT4gdm9pZDtcbiAgICAgICAgbG9vcD86IFdpdGhCb3VuZEFyZ3M8V2l0aEJvdW5kUG9zaXRpb25hbHM8dHlwZW9mIFZlbGNyb01vZGlmaWVyLCAxPiwga2V5b2YgTW9kaWZpZXJBcmdzPjtcbiAgICAgICAgZGF0YT86IE1pZGRsZXdhcmVTdGF0ZTtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuY29uc3QgcmVmID0gZU1vZGlmaWVyPHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgUG9zaXRpb25hbDogW3NldFJlZjogKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCkgPT4gdm9pZF07XG4gIH07XG59PigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50LCBwb3NpdGlvbmFsKSA9PiB7XG4gIGxldCBmbiA9IHBvc2l0aW9uYWxbMF07XG5cbiAgZm4oZWxlbWVudCk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsY3JvIGV4dGVuZHMgQ29tcG9uZW50PFNpZ25hdHVyZT4ge1xuICBAdHJhY2tlZCBob29rPzogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50ID0gdW5kZWZpbmVkO1xuXG4gIC8vIHNldCBieSBWZWxjcm9Nb2RpZmllclxuICBAdHJhY2tlZCB2ZWxjcm9EYXRhPzogTWlkZGxld2FyZVN0YXRlID0gdW5kZWZpbmVkO1xuXG4gIHNldFZlbGNyb0RhdGE6IE1vZGlmaWVyQXJnc1snc2V0VmVsY3JvRGF0YSddID0gKGRhdGEpID0-ICh0aGlzLnZlbGNyb0RhdGEgPSBkYXRhKTtcblxuICBzZXRIb29rID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCkgPT4ge1xuICAgIHRoaXMuaG9vayA9IGVsZW1lbnQ7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2xldFxuICAgICAgKG1vZGlmaWVyXG4gICAgICAgIFZlbGNyb01vZGlmaWVyXG4gICAgICAgIGZsaXBPcHRpb25zPUBmbGlwT3B0aW9uc1xuICAgICAgICBoaWRlT3B0aW9ucz1AaGlkZU9wdGlvbnNcbiAgICAgICAgbWlkZGxld2FyZT1AbWlkZGxld2FyZVxuICAgICAgICBvZmZzZXRPcHRpb25zPUBvZmZzZXRPcHRpb25zXG4gICAgICAgIHBsYWNlbWVudD1AcGxhY2VtZW50XG4gICAgICAgIHNoaWZ0T3B0aW9ucz1Ac2hpZnRPcHRpb25zXG4gICAgICAgIHN0cmF0ZWd5PUBzdHJhdGVneVxuICAgICAgICBzZXRWZWxjcm9EYXRhPXRoaXMuc2V0VmVsY3JvRGF0YVxuICAgICAgKVxuICAgICAgYXMgfGxvb3B8XG4gICAgfX1cbiAgICAgIHt7I2xldCAoaWYgdGhpcy5ob29rIChtb2RpZmllciBsb29wIHRoaXMuaG9vaykpIGFzIHxsb29wV2l0aEhvb2t8fX1cbiAgICAgICAge3shIEBnbGludC1ub2NoZWNrIC0tIEV4Y2Vzc2l2ZWx5IGRlZXAsIHBvc3NpYmx5IGluZmluaXRlIH19XG4gICAgICAgIHt7eWllbGRcbiAgICAgICAgICAoaGFzaFxuICAgICAgICAgICAgaG9vaz0obW9kaWZpZXIgcmVmIHRoaXMuc2V0SG9vaylcbiAgICAgICAgICAgIHNldEhvb2s9dGhpcy5zZXRIb29rXG4gICAgICAgICAgICBsb29wPWxvb3BXaXRoSG9va1xuICAgICAgICAgICAgZGF0YT10aGlzLnZlbGNyb0RhdGFcbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICB7ey9sZXR9fVxuICAgIHt7L2xldH19XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxPQUFPLFFBQVEsb0JBQW9CO0FBQzVDLFNBQVMsSUFBSSxRQUFRLGdCQUFnQjtBQUVyQyxTQUFTLFlBQVksU0FBUyxRQUFRLGlCQUFpQjtBQUV2RCxPQUFPLG9CQUFvQixnQkFBZ0I7QUFFM0MsY0FBYyxhQUFhLGlCQUFpQixRQUFRLGdCQUFnQjtBQUNwRSxjQUFjLGVBQWUsUUFBUSxtQkFBbUI7QUFDeEQsY0FBYyxhQUFhLEVBQUUsb0JBQW9CLFFBQVEsa0JBQWtCO0FBQzNFLGNBQWMsWUFBWSxRQUFRLGtCQUFrQjtLQUUvQyxlQUFlLGtCQUFrQixRQUFRO1VBRXBDO0lBQ1IsU0FBUyxjQUFjOztBQUd6QixpQkFBaUI7SUFDZjtRQUNFLGFBQWEsYUFBYTtRQUMxQixZQUFZLGFBQWE7UUFDekIsV0FBVyxhQUFhO1FBQ3hCLGNBQWMsYUFBYTtRQUMzQixjQUFjLGFBQWE7UUFDM0IsZUFBZSxhQUFhO1FBQzVCLGdCQUFnQixhQUFhOztJQUUvQjtRQUNFLFVBQ0U7Z0JBQ0UsTUFBTSxhQUFhO2dCQUNuQixVQUFVLFNBQVMsY0FBYyxlQUFlLElBQUk7Z0JBQ3BELE9BQU8sY0FBYyw0QkFBNEIsZ0JBQWdCLFVBQVU7Z0JBQzNFLE9BQU87Ozs7QUFNZixNQUFNLE1BQU07SUFDVixTQUFTLGNBQWM7SUFDdkI7UUFDRSxhQUFhLFNBQVMsU0FBUyxjQUFjLGVBQWUsSUFBSTs7R0FFakUsQ0FBQyxVQUFTLGNBQWMsWUFBWTtJQUNyQyxJQUFJLE1BQUssV0FBVSxDQUFDLEVBQUU7SUFFdEIsSUFBRztBQUNMO0FBRUEsZUFBZSxNQUFNLGVBQWUsVUFBVTtJQUM1QyxDQUFDO0lBQVEsT0FBTyxjQUFjLGFBQWEsVUFBVTtJQUVyRCx3QkFBd0I7SUFDeEIsQ0FBQztJQUFRLGFBQWEsa0JBQWtCLFVBQVU7SUFFbEQsZUFBZSxhQUFhLG1CQUFtQixDQUFDLFFBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUksRUFBRTtJQUVsRixVQUFVLENBQUMsVUFBUyxjQUFjO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUc7SUFDZCxFQUFFO0lBRUYsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBMkJWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQTNCQTtBQTRCWiJ9"],"names":["ref","eModifier","element1","positional1","fn1","Velcro","Component","g","this","prototype","tracked","undefined","i","void 0","setVelcroData","data1","velcroData","setHook","hook","setComponentTemplate","precompileTemplate","strictMode","scope","VelcroModifier","hash"],"mappings":";;;;;;;;;AAyCA,MAAMA,GAAA,GAAMC,QAAA,CAKT,CAACC,QAAuB,EAAYC,WAAA,KAAA;AACrC,EAAA,IAAIC,GAAA,GAAKD,WAAU,CAAC,CAAE,CAAA,CAAA;AAEtBC,EAAAA,GAAA,CAAGF,QAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA;AAEe,MAAMG,MAAA,SAAeC,SAAA,CAAU;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,WAC3CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA0CC,SAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAAJ,IAAA,WAAAK,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAN,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,iBAG1CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAuCC,SAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAAJ,IAAA,EAAA,YAAA,CAAA,EAAAK,MAAA,EADxC;AAGAC,EAAAA,aAAA,GAAgDC,KAAA,IAAU,IAAI,CAACC,UAAU,GAAGD,KAAI,CAAA;AAEhFE,EAAAA,OAAA,GAAWf,QAAuB,IAAA;IAChC,IAAI,CAACgB,IAAI,GAAGhB,QAAA,CAAA;AACd,GAAA,CAAA;AAEA,EAAA;IAAAiB,oBAAA,CAAAC,kBAAA,CA2BA,4iBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,IAAA;AAAAxB,QAAAA,GAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import Helper from '@ember/component/helper';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
import { service } from '@ember/service';
|
|
4
|
+
import { handle } from '../proper-links.js';
|
|
5
|
+
import { g, i } from 'decorator-transforms/runtime';
|
|
6
|
+
|
|
7
|
+
class Link extends Helper {
|
|
8
|
+
static {
|
|
9
|
+
g(this.prototype, "router", [service]);
|
|
10
|
+
}
|
|
11
|
+
#router = (i(this, "router"), void 0);
|
|
12
|
+
compute([href], {
|
|
13
|
+
includeActiveQueryParams = false,
|
|
14
|
+
activeOnSubPaths = false
|
|
15
|
+
}) {
|
|
16
|
+
assert('href was not passed in', href);
|
|
17
|
+
const router = this.router;
|
|
18
|
+
const handleClick = event => {
|
|
19
|
+
assert('[BUG]', event.target instanceof HTMLAnchorElement);
|
|
20
|
+
handle(router, event.target, [], event);
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
isExternal: isExternal(href),
|
|
24
|
+
get isActive() {
|
|
25
|
+
return isActive(router, href, includeActiveQueryParams, activeOnSubPaths);
|
|
26
|
+
},
|
|
27
|
+
handleClick
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const link = Link;
|
|
32
|
+
function isExternal(href) {
|
|
33
|
+
if (!href) return false;
|
|
34
|
+
if (href.startsWith('#')) return false;
|
|
35
|
+
if (href.startsWith('/')) return false;
|
|
36
|
+
return location.origin !== new URL(href).origin;
|
|
37
|
+
}
|
|
38
|
+
function isActive(router, href, includeQueryParams, activeOnSubPaths) {
|
|
39
|
+
if (!includeQueryParams) {
|
|
40
|
+
/**
|
|
41
|
+
* is Active doesn't understand `href`, so we have to convert to RouteInfo-esque
|
|
42
|
+
*/
|
|
43
|
+
let info = router.recognize(href);
|
|
44
|
+
if (info) {
|
|
45
|
+
let dynamicSegments = getParams(info);
|
|
46
|
+
let routeName = activeOnSubPaths ? info.name.replace(/\.index$/, '') : info.name;
|
|
47
|
+
return router.isActive(routeName, ...dynamicSegments);
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
let url = new URL(href, location.origin);
|
|
52
|
+
let hrefQueryParams = new URLSearchParams(url.searchParams);
|
|
53
|
+
let hrefPath = url.pathname;
|
|
54
|
+
const currentPath = router.currentURL?.split('?')[0];
|
|
55
|
+
if (!currentPath) return false;
|
|
56
|
+
if (activeOnSubPaths ? !currentPath.startsWith(hrefPath) : hrefPath !== currentPath) return false;
|
|
57
|
+
const currentQueryParams = router.currentRoute?.queryParams;
|
|
58
|
+
if (!currentQueryParams) return false;
|
|
59
|
+
if (includeQueryParams === true) {
|
|
60
|
+
return Object.entries(currentQueryParams).every(([key, value]) => {
|
|
61
|
+
return hrefQueryParams.get(key) === value;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return includeQueryParams.every(key => {
|
|
65
|
+
return hrefQueryParams.get(key) === currentQueryParams[key];
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function getParams(currentRouteInfo) {
|
|
69
|
+
let params = [];
|
|
70
|
+
while (currentRouteInfo?.parent) {
|
|
71
|
+
let currentParams = currentRouteInfo.params;
|
|
72
|
+
params = currentParams ? [currentParams, ...params] : params;
|
|
73
|
+
currentRouteInfo = currentRouteInfo.parent;
|
|
74
|
+
}
|
|
75
|
+
return params.map(Object.values).flat();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { Link as default, link };
|
|
79
|
+
//# sourceMappingURL=link.js.map
|