ember-primitives 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/declarations/components/dialog.d.ts +4 -4
  2. package/declarations/components/form.d.ts +19 -1
  3. package/declarations/components/form.d.ts.map +1 -1
  4. package/declarations/components/link.d.ts +35 -13
  5. package/declarations/components/link.d.ts.map +1 -1
  6. package/declarations/components/one-time-password/input.d.ts +1 -1
  7. package/declarations/components/popover.d.ts +1 -7
  8. package/declarations/components/popover.d.ts.map +1 -1
  9. package/declarations/helpers/link.d.ts +34 -0
  10. package/declarations/helpers/link.d.ts.map +1 -0
  11. package/declarations/helpers.d.ts +1 -0
  12. package/declarations/helpers.d.ts.map +1 -1
  13. package/dist/_app_/helpers/link.js +1 -0
  14. package/dist/components/-private/typed-elements.js.map +1 -1
  15. package/dist/components/accordion/content.js +1 -1
  16. package/dist/components/accordion/header.js +1 -1
  17. package/dist/components/accordion/item.js +1 -1
  18. package/dist/components/accordion/trigger.js +1 -1
  19. package/dist/components/accordion.js +3 -3
  20. package/dist/components/accordion.js.map +1 -1
  21. package/dist/components/avatar.js +4 -4
  22. package/dist/components/avatar.js.map +1 -1
  23. package/dist/components/dialog.js +4 -4
  24. package/dist/components/dialog.js.map +1 -1
  25. package/dist/components/external-link.js.map +1 -1
  26. package/dist/components/form.js +49 -6
  27. package/dist/components/form.js.map +1 -1
  28. package/dist/components/layout/sticky-footer/index.js.map +1 -1
  29. package/dist/components/link.js +11 -77
  30. package/dist/components/link.js.map +1 -1
  31. package/dist/components/menu.js +6 -6
  32. package/dist/components/menu.js.map +1 -1
  33. package/dist/components/one-time-password/buttons.js +2 -2
  34. package/dist/components/one-time-password/buttons.js.map +1 -1
  35. package/dist/components/one-time-password/input.js +4 -4
  36. package/dist/components/one-time-password/input.js.map +1 -1
  37. package/dist/components/one-time-password/otp.js +2 -2
  38. package/dist/components/one-time-password/otp.js.map +1 -1
  39. package/dist/components/popover.js +4 -4
  40. package/dist/components/popover.js.map +1 -1
  41. package/dist/components/portal-targets.js +2 -2
  42. package/dist/components/portal-targets.js.map +1 -1
  43. package/dist/components/portal.js +2 -2
  44. package/dist/components/portal.js.map +1 -1
  45. package/dist/components/progress.js +4 -4
  46. package/dist/components/progress.js.map +1 -1
  47. package/dist/components/scroller.js +2 -2
  48. package/dist/components/scroller.js.map +1 -1
  49. package/dist/components/shadowed.js +4 -4
  50. package/dist/components/shadowed.js.map +1 -1
  51. package/dist/components/switch.js +4 -4
  52. package/dist/components/switch.js.map +1 -1
  53. package/dist/components/toggle-group.js +6 -6
  54. package/dist/components/toggle-group.js.map +1 -1
  55. package/dist/components/toggle.js +2 -2
  56. package/dist/components/toggle.js.map +1 -1
  57. package/dist/floating-ui/component.js +2 -2
  58. package/dist/floating-ui/component.js.map +1 -1
  59. package/dist/helpers/link.js +79 -0
  60. package/dist/helpers/link.js.map +1 -0
  61. package/dist/helpers.js +1 -0
  62. package/dist/helpers.js.map +1 -1
  63. package/dist/index.js +1 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/{item-kSSfp2r5.js → item-DmpElnSZ.js} +9 -9
  66. package/dist/item-DmpElnSZ.js.map +1 -0
  67. package/package.json +18 -17
  68. package/dist/item-kSSfp2r5.js.map +0 -1
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9zY3JvbGxlci5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNEZXN0cm95ZWQsIGlzRGVzdHJveWluZyB9IGZyb20gJ0BlbWJlci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbmltcG9ydCB7IG1vZGlmaWVyIH0gZnJvbSAnZW1iZXItbW9kaWZpZXInO1xuXG4vKipcbiAqIFV0aWxpdHkgY29tcG9uZW50IGZvciBoZWxwaW5nIHdpdGggc2Nyb2xsaW5nIGluIGFueSBkaXJlY3Rpb24gd2l0aGluXG4gKiBhbnkgb2YgdGhlIDQgZGlyZWN0aW9uczogdXAsIGRvd24sIGxlZnQsIHJpZ2h0LlxuICpcbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXV0by1zY3JvbGwgY29udGVudCBhcyBuZXcgY29udGVudCBpcyBpbnNlcnRlZCBpbnRvIHRoZSBzY3JvbGxhYmxlIGFyZWEsIG9yIHBvc3NpYmx5IHRvIGJyaW5nIGZvY3VzIHRvIHNvbWV0aGluZyBvbiB0aGUgcGFnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjcm9sbGVyIGV4dGVuZHMgQ29tcG9uZW50PHtcbiAgLyoqXG4gICAqIEEgY29udGFpbmluZyBlbGVtZW50IGlzIHJlcXVpcmVkIC0gaW4gdGhpcyBjYXNlLCBhIGRpdi5cbiAgICogSXQgbXVzdCBiZSBzY3JvbGxhYmxlIGZvciB0aGlzIGNvbXBvbmVudCB0byB3b3JrLCBidXQgY2FuIGJlIGN1c3RvbWl6ZWQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgZWxlbWVudCB3aWxsIGhhdmUgc29tZSBzdHlsaW5nIGFwcGxpZWQ6XG4gICAqICAgb3ZlcmZsb3c6IGF1dG87XG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgZWxlbWVudCB3aWxsIGhhdmUgdGFiaW5kZXg9XCIwXCIgdG8gc3VwcG9ydCBrZXlib2FyZCB1c2FnZS5cbiAgICpcbiAgICogVGhlIHNjcm9sbC1iZWhhdmlvciBpcyBcImF1dG9cIiwgd2hpY2ggY2FuIGJlIGNvbnRyb2xsZWQgdmlhIENTU1xuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1Mvc2Nyb2xsLWJlaGF2aW9yXG4gICAqXG4gICAqL1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICAvKipcbiAgICAgICAgICogU2Nyb2xsIHRoZSBjb250ZW50IHRvIHRoZSBib3R0b21cbiAgICAgICAgICpcbiAgICAgICAgICogYGBgZ2pzXG4gICAgICAgICAqIGltcG9ydCB7IFNjcm9sbGVyIH0gZnJvbSAnZW1iZXItcHJpbWl0aXZlcyc7XG4gICAgICAgICAqXG4gICAgICAgICAqIDx0ZW1wbGF0ZT5cbiAgICAgICAgICogICA8U2Nyb2xsZXIgYXMgfHN8PlxuICAgICAgICAgKiAgICAgIC4uLlxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgIHt7IChzLnNjcm9sbFRvQm90dG9tKSB9fVxuICAgICAgICAgKiAgIDwvU2Nyb2xsZXI-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKi9cbiAgICAgICAgc2Nyb2xsVG9Cb3R0b206ICgpID0-IHZvaWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGwgdGhlIGNvbnRlbnQgdG8gdGhlIHRvcFxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU2Nyb2xsZXIgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxTY3JvbGxlciBhcyB8c3w-XG4gICAgICAgICAqICAgICAgLi4uXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAge3sgKHMuc2Nyb2xsVG9Ub3ApIH19XG4gICAgICAgICAqICAgPC9TY3JvbGxlcj5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBzY3JvbGxUb1RvcDogKCkgPT4gdm9pZDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNjcm9sbCB0aGUgY29udGVudCB0byB0aGUgbGVmdFxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU2Nyb2xsZXIgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxTY3JvbGxlciBhcyB8c3w-XG4gICAgICAgICAqICAgICAgLi4uXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAge3sgKHMuc2Nyb2xsVG9MZWZ0KSB9fVxuICAgICAgICAgKiAgIDwvU2Nyb2xsZXI-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKi9cbiAgICAgICAgc2Nyb2xsVG9MZWZ0OiAoKSA9PiB2b2lkO1xuICAgICAgICAvKipcbiAgICAgICAgICogU2Nyb2xsIHRoZSBjb250ZW50IHRvIHRoZSByaWdodFxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGBnanNcbiAgICAgICAgICogaW1wb3J0IHsgU2Nyb2xsZXIgfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxTY3JvbGxlciBhcyB8c3w-XG4gICAgICAgICAqICAgICAgLi4uXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAge3sgKHMuc2Nyb2xsVG9SaWdodCkgfX1cbiAgICAgICAgICogICA8L1Njcm9sbGVyPlxuICAgICAgICAgKiA8L3RlbXBsYXRlPlxuICAgICAgICAgKiBgYGBcbiAgICAgICAgICovXG4gICAgICAgIHNjcm9sbFRvUmlnaHQ6ICgpID0-IHZvaWQ7XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59PiB7XG4gIGRlY2xhcmUgd2l0aGluRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG5cbiAgcmVmID0gbW9kaWZpZXIoKGVsOiBIVE1MRGl2RWxlbWVudCkgPT4ge1xuICAgIHRoaXMud2l0aGluRWxlbWVudCA9IGVsO1xuICB9KTtcblxuICAjZnJhbWU_OiBudW1iZXI7XG5cbiAgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuI2ZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLiNmcmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy4jZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRGVzdHJveWVkKHRoaXMpIHx8IGlzRGVzdHJveWluZyh0aGlzKSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLndpdGhpbkVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICB0b3A6IHRoaXMud2l0aGluRWxlbWVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgIGJlaGF2aW9yOiAnYXV0bycsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICBzY3JvbGxUb1RvcCA9ICgpID0-IHtcbiAgICBpZiAodGhpcy4jZnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuI2ZyYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLiNmcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAoaXNEZXN0cm95ZWQodGhpcykgfHwgaXNEZXN0cm95aW5nKHRoaXMpKSByZXR1cm47XG5cbiAgICAgIHRoaXMud2l0aGluRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgYmVoYXZpb3I6ICdhdXRvJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHNjcm9sbFRvTGVmdCA9ICgpID0-IHtcbiAgICBpZiAodGhpcy4jZnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuI2ZyYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLiNmcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAoaXNEZXN0cm95ZWQodGhpcykgfHwgaXNEZXN0cm95aW5nKHRoaXMpKSByZXR1cm47XG5cbiAgICAgIHRoaXMud2l0aGluRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGJlaGF2aW9yOiAnYXV0bycsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICBzY3JvbGxUb1JpZ2h0ID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLiNmcmFtZSkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jZnJhbWUpO1xuICAgIH1cblxuICAgIHRoaXMuI2ZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIGlmIChpc0Rlc3Ryb3llZCh0aGlzKSB8fCBpc0Rlc3Ryb3lpbmcodGhpcykpIHJldHVybjtcblxuICAgICAgdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgbGVmdDogdGhpcy53aXRoaW5FbGVtZW50LnNjcm9sbFdpZHRoLFxuICAgICAgICBiZWhhdmlvcjogJ2F1dG8nLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgLi4uYXR0cmlidXRlcyB7e3RoaXMucmVmfX0-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgc2Nyb2xsVG9Cb3R0b209dGhpcy5zY3JvbGxUb0JvdHRvbVxuICAgICAgICAgIHNjcm9sbFRvVG9wPXRoaXMuc2Nyb2xsVG9Ub3BcbiAgICAgICAgICBzY3JvbGxUb0xlZnQ9dGhpcy5zY3JvbGxUb0xlZnRcbiAgICAgICAgICBzY3JvbGxUb1JpZ2h0PXRoaXMuc2Nyb2xsVG9SaWdodFxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsV0FBVyxFQUFFLFlBQVksUUFBUSxxQkFBcUI7QUFDL0QsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBRXJDLFNBQVMsUUFBUSxRQUFRLGlCQUFpQjtBQUUxQzs7Ozs7Q0FLQyxHQUNELE9BQU8sTUFBTSxpQkFBaUI7SUFDNUI7Ozs7Ozs7Ozs7OztHQVlDLEdBQ0QsU0FBUztJQUNUO1FBQ0U7Z0JBRUk7Ozs7Ozs7Ozs7Ozs7O1NBY0MsR0FDRCxzQkFBc0IsSUFBSTtnQkFDMUI7Ozs7Ozs7Ozs7Ozs7O1NBY0MsR0FDRCxtQkFBbUIsSUFBSTtnQkFDdkI7Ozs7Ozs7Ozs7Ozs7O1NBY0MsR0FDRCxvQkFBb0IsSUFBSTtnQkFDeEI7Ozs7Ozs7Ozs7Ozs7O1NBY0MsR0FDRCxxQkFBcUIsSUFBSTs7OztJQUt2QixlQUFlLGVBQWU7SUFFdEMsTUFBTSxTQUFTLENBQUMsS0FBSTtRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHO0lBQ3ZCLEdBQUc7SUFFSCxDQUFDLEtBQUssRUFBRyxNQUFNLENBQUM7SUFFaEIsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDZixxQkFBcUIsSUFBSSxDQUFDLENBQUMsS0FBSztRQUNsQztRQUVBLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxzQkFBc0I7WUFDbEMsSUFBSSxZQUFZLElBQUksS0FBSyxhQUFhLElBQUksR0FBRztZQUU3QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7Z0JBQ3BDLFVBQVU7WUFDWjtRQUNGO0lBQ0YsRUFBRTtJQUVGLGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNmLHFCQUFxQixJQUFJLENBQUMsQ0FBQyxLQUFLO1FBQ2xDO1FBRUEsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLHNCQUFzQjtZQUNsQyxJQUFJLFlBQVksSUFBSSxLQUFLLGFBQWEsSUFBSSxHQUFHO1lBRTdDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUMxQixLQUFLO2dCQUNMLFVBQVU7WUFDWjtRQUNGO0lBQ0YsRUFBRTtJQUVGLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNmLHFCQUFxQixJQUFJLENBQUMsQ0FBQyxLQUFLO1FBQ2xDO1FBRUEsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLHNCQUFzQjtZQUNsQyxJQUFJLFlBQVksSUFBSSxLQUFLLGFBQWEsSUFBSSxHQUFHO1lBRTdDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUMxQixNQUFNO2dCQUNOLFVBQVU7WUFDWjtRQUNGO0lBQ0YsRUFBRTtJQUVGLGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ2YscUJBQXFCLElBQUksQ0FBQyxDQUFDLEtBQUs7UUFDbEM7UUFFQSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsc0JBQXNCO1lBQ2xDLElBQUksWUFBWSxJQUFJLEtBQUssYUFBYSxJQUFJLEdBQUc7WUFFN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXO2dCQUNwQyxVQUFVO1lBQ1o7UUFDRjtJQUNGLEVBQUU7SUFFRixNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7OztFQVdWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQVhBO0FBWVoifQ"],"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","scope","strictMode","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;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAR,IAAAA,SAAAA;AAAA,GAAA,CAAA;EAAAS,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV;;;;;;;;;AASaC,MAAAA,WAsBRJ,oBAAAA,CAAAA,kBAAA,CAiBL,gYAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAxB,MAAA;AAAAqB,IAAAA,MAAAA;AAAA,GAAA,CAAA;EAAAI,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9zaGFkb3dlZC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5pbXBvcnQgeyBjZWxsIH0gZnJvbSAnZW1iZXItcmVzb3VyY2VzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5jb25zdCBTaGFkb3cgPSAoKSA9PiB7XG4gIGxldCBzaGFkb3cgPSBjZWxsPEVsZW1lbnQ-KCk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgcm9vdCgpIHtcbiAgICAgIHJldHVybiBzaGFkb3cuY3VycmVudDtcbiAgICB9LFxuICAgIGF0dGFjaDogbW9kaWZpZXIoKGVsZW1lbnQ6IEVsZW1lbnQpID0-IHtcbiAgICAgIGxldCBzaGFkb3dSb290ID0gZWxlbWVudC5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSk7XG4gICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIC8vIGVtYmVyLXNvdXJjZSA1LjYgYnJva2UgdGhlIGFiaWxpdHkgdG8gaW4tZWxlbWVudFxuICAgICAgLy8gbmF0aXZlbHkgaW50byBhIHNoYWRvd3Jvb3QuXG4gICAgICAvL1xuICAgICAgLy8gU2VlIHRoZXNlIGVtYmVyLXNvdXJjZSBidWdzOlxuICAgICAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZW1iZXJqcy9lbWJlci5qcy9pc3N1ZXMvMjA2NDNcbiAgICAgIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2VtYmVyanMvZW1iZXIuanMvaXNzdWVzLzIwNjQyXG4gICAgICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8yMDY0MVxuICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpO1xuXG4gICAgICBzaGFkb3cuc2V0KGRpdik7XG4gICAgfSksXG4gIH07XG59O1xuXG4vLyBpbmRleC5odG1sIGhhcyB0aGUgcHJvZHVjdGlvbi1maW5nZXJwcmludGVkIHJlZmVyZW5jZXMgdG8gdGhlc2UgbGlua3Ncbi8vIElkZWFsbHksIHdlJ2QgaGF2ZSBzb21lIHByZS1wcm9jZXNzb3Igc2NhbiBldmVyeXRoaW5nIGZvciByZWZlcmVuY2VzIHRvXG4vLyBhc3NldHMgaW4gcHVibGljLCBidXQgaWRrIGhvdyB0byBzZXQgdGhhdCB1cFxuY29uc3QgZ2V0U3R5bGVzID0gKCkgPT4gWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmsnKV0ubWFwKChsaW5rKSA9PiBsaW5rLmhyZWYpO1xuXG4vKipcbiAqIHN0eWxlICsgbmF0aXZlIEBpbXBvcnRcbiAqIGlzIHRoZSBvbmx5IHJvYnVzdCB3YXkgdG8gbG9hZCBzdHlsZXMgaW4gYSBzaGFkb3dyb290LlxuICpcbiAqIGxpbmsgaXMgb25seSB2YWxpZCBpbiB0aGUgaGVhZCBlbGVtZW50LlxuICovXG5jb25zdCBTdHlsZXMgPSA8dGVtcGxhdGU-XG4gIDxzdHlsZT5cbiAgICB7eyNlYWNoIChnZXRTdHlsZXMpIGFzIHxzdHlsZUhyZWZ8fX1cblxuICAgICAgQGltcG9ydCBcInt7c3R5bGVIcmVmfX1cIjtcblxuICAgIHt7L2VhY2h9fVxuICA8L3N0eWxlPlxuPC90ZW1wbGF0ZT47XG5cbi8qKlxuICogUmVuZGVyIGNvbnRlbnQgaW4gYSBzaGFkb3cgZG9tLCBhdHRhY2hlZCB0byBhIGRpdi5cbiAqXG4gKiBVc2VzIHRoZSBbc2hhZG93IERPTV1bbWRuLXNoYWRvdy1kb21dIEFQSS5cbiAqXG4gKiBbbWRuLXNoYWRvdy1kb21dOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViX2NvbXBvbmVudHMvVXNpbmdfc2hhZG93X0RPTVxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdhbnQgdG8gcmVuZGVyIGNvbnRlbnQgdGhhdCBlc2NhcGVzIHlvdXIgYXBwJ3Mgc3R5bGVzLlxuICovXG5leHBvcnQgY29uc3QgU2hhZG93ZWQ6IFRPQzx7XG4gIC8qKlxuICAgKiBUaGUgc2hhZG93IGRvbSBhdHRhY2hlcyB0byBhIGRpdiBlbGVtZW50LlxuICAgKiBZb3UgbWF5IHNwZWNpZnkgYW55IGF0dHJpYnV0ZSwgYW5kIGl0J2xsIGJlIGFwcGxpZWQgdG8gdGhpcyBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIHNoYWRvdy1kb20gZG9lcyBub3QgaW5jbHVkZSBhbnkgc3R5bGVzLlxuICAgICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgaW5jbHVkZSBhbGwgdGhlIGA8c3R5bGU-YCB0YWdzXG4gICAgICogdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgYDxoZWFkPmAgZWxlbWVudC5cbiAgICAgKi9cbiAgICBpbmNsdWRlU3R5bGVzPzogYm9vbGVhbjtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0byBiZSBwbGFjZWQgd2l0aGluIHRoZSBTaGFkb3dET01cbiAgICAgKi9cbiAgICBkZWZhdWx0OiBbXTtcbiAgfTtcbn0-ID0gPHRlbXBsYXRlPlxuICB7eyNsZXQgKFNoYWRvdykgYXMgfHNoYWRvd3x9fVxuICAgIHt7ISBUT0RPOiBXZSBuZWVkIGEgd2F5IGluIGVtYmVyIHRvIHJlbmRlciBpbiB0byBhIHNoYWRvdyBkb20gd2l0aG91dCBhbiBlZmZlY3QgfX1cbiAgICA8ZGl2IHt7c2hhZG93LmF0dGFjaH19IC4uLmF0dHJpYnV0ZXM-PC9kaXY-XG5cbiAgICB7eyNpZiBzaGFkb3cucm9vdH19XG4gICAgICB7eyNpbi1lbGVtZW50IHNoYWRvdy5yb290fX1cblxuICAgICAgICB7eyNpZiBAaW5jbHVkZVN0eWxlc319XG4gICAgICAgICAgPFN0eWxlcyAvPlxuICAgICAgICB7ey9pZn19XG5cbiAgICAgICAge3t5aWVsZH19XG5cbiAgICAgIHt7L2luLWVsZW1lbnR9fVxuICAgIHt7L2lmfX1cbiAge3svbGV0fX1cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgZGVmYXVsdCBTaGFkb3dlZDtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxRQUFRLFFBQVEsaUJBQWlCO0FBQzFDLFNBQVMsSUFBSSxRQUFRLGtCQUFrQjtBQUV2QyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFFMUQsTUFBTSxTQUFTO0lBQ2IsSUFBSSxVQUFTLEtBQUs7SUFFbEIsT0FBTztRQUNMLElBQUksUUFBTztZQUNULE9BQU8sUUFBTyxPQUFPO1FBQ3ZCO1FBQ0EsUUFBUSxTQUFTLENBQUMsVUFBUztZQUN6QixJQUFJLGNBQWEsU0FBUSxZQUFZLENBQUM7Z0JBQUUsTUFBTTtZQUFPO1lBQ3JELElBQUksT0FBTSxTQUFTLGFBQWEsQ0FBQztZQUVqQyxtREFBbUQ7WUFDbkQsOEJBQThCO1lBQzlCLEVBQUU7WUFDRiwrQkFBK0I7WUFDL0IscURBQXFEO1lBQ3JELHFEQUFxRDtZQUNyRCxxREFBcUQ7WUFDckQsWUFBVyxXQUFXLENBQUM7WUFFdkIsUUFBTyxHQUFHLENBQUM7UUFDYjtJQUNGO0FBQ0Y7QUFFQSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLCtDQUErQztBQUMvQyxNQUFNLFlBQVksSUFBTTtXQUFJLFNBQVMsZ0JBQWdCLENBQUM7S0FBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVMsTUFBSyxJQUFJO0FBRXRGOzs7OztDQUtDLEdBQ0QsTUFBTSxTQUFTLFNBQVUsQ0FBQTs7Ozs7Ozs7QUFRekIsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVY7Ozs7Ozs7O0NBUUMsR0FDRCxPQUFPLE1BQU0sVUFBVTtJQUNyQjs7O0dBR0MsR0FDRCxTQUFTO0lBQ1Q7UUFDRTs7Ozs7O0tBTUMsR0FDRCxnQkFBZ0IsT0FBTzs7SUFFekI7UUFDRTs7S0FFQyxHQUNEOztLQUVDLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQmYsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBLEdBQUU7QUFFWixlQUFlLFNBQVMifQ"],"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","strictMode","templateOnly","Switch","uniqueId","hash","Label"],"mappings":";;;;;;;;;;AAsEA,MAAMA,QAAc,GAAAC,oBAAA,CAAoBC,kBAAA,CAaxC,mTAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAC,EAAA;IAAAC,EAAA;AAAAC,IAAAA,kBAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV;;;MAGaC,MAAY,GAAAT,oBAAA,CAAaC,kBAAA,CAYtC,kQAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAQ,QAAA;IAAAC,IAAA;IAAAZ,QAAA;AAAAa,IAAAA,KAAAA;AAAA,GAAA,CAAA;EAAAL,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy9zd2l0Y2guZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZuLCBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB7IGNlbGwgfSBmcm9tICdlbWJlci1yZXNvdXJjZXMnO1xuXG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJy4uL3V0aWxzLnRzJztcbmltcG9ydCB7IExhYmVsIH0gZnJvbSAnLi8tcHJpdmF0ZS90eXBlZC1lbGVtZW50cy5ndHMnO1xuaW1wb3J0IHsgdG9nZ2xlV2l0aEZhbGxiYWNrIH0gZnJvbSAnLi8tcHJpdmF0ZS91dGlscy50cyc7XG5cbmltcG9ydCB0eXBlIHsgVE9DIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcbmltcG9ydCB0eXBlIHsgV2l0aEJvdW5kQXJncyB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcbiAgQXJnczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbml0aWFsIGNoZWNrZWQgdmFsdWUgb2YgdGhlIFN3aXRjaC5cbiAgICAgKiBUaGlzIHZhbHVlIGlzIHJlYWN0aXZlLCBzbyBpZiB0aGUgdmFsdWUgdGhhdFxuICAgICAqIGBAY2hlY2tlZGAgaXMgc2V0IHRvIHVwZGF0ZXMsIHRoZSBzdGF0ZSBvZiB0aGUgU3dpdGNoIHdpbGwgYWxzbyB1cGRhdGUuXG4gICAgICovXG4gICAgY2hlY2tlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgd2hlbiB0aGUgU3dpdGNoIHN0YXRlIGlzIHRvZ2dsZWRcbiAgICAgKi9cbiAgICBvbkNoYW5nZT86IChjaGVja2VkOiBib29sZWFuLCBldmVudDogRXZlbnQpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ_OiBbXG4gICAgICB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgU3dpdGNoIEVsZW1lbnQuXG4gICAgICAgICAqIEl0IGhhcyBhIHByZS13aXJlZCBgaWRgIHNvIHRoYXQgdGhlIHJlbGV2YW50IExhYmVsIGlzXG4gICAgICAgICAqIGFwcHJvcHJpYXRlbHkgYXNzb2NpYXRlZCB2aWEgdGhlIGBmb3JgIHByb3BlcnR5IG9mIHRoZSBMYWJlbC5cbiAgICAgICAgICpcbiAgICAgICAgICogYGBgZ2pzXG4gICAgICAgICAqIGltcG9ydCB7IFN3aXRjaCB9IGZyb20gJ2VtYmVyLXByaW1pdGl2ZXMnO1xuICAgICAgICAgKlxuICAgICAgICAgKiA8dGVtcGxhdGU-XG4gICAgICAgICAqICAgPFN3aXRjaCBhcyB8c3w-XG4gICAgICAgICAqICAgICA8cy5Db250cm9sIC8-XG4gICAgICAgICAqICAgPC9Td2l0Y2g-XG4gICAgICAgICAqIDwvdGVtcGxhdGU-XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKi9cbiAgICAgICAgQ29udHJvbDogV2l0aEJvdW5kQXJnczx0eXBlb2YgQ2hlY2tib3gsICdjaGVja2VkJyB8ICdpZCcgfCAnb25DaGFuZ2UnPjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBTd2l0Y2ggZWxlbWVudCByZXF1aXJlcyBhIGxhYmVsLCBhbmQgdGhpcyBsYWJlbCBhbHJlYWR5IGhhc1xuICAgICAgICAgKiB0aGUgYXNzb2NpYXRpb24gdG8gdGhlIENvbnRyb2wgYnkgc2V0dGluZyB0aGUgYGZvcmAgYXR0cmlidXRlIHRvIHRoZSBgaWRgIG9mIHRoZSBDb250cm9sXG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYGdqc1xuICAgICAgICAgKiBpbXBvcnQgeyBTd2l0Y2ggfSBmcm9tICdlbWJlci1wcmltaXRpdmVzJztcbiAgICAgICAgICpcbiAgICAgICAgICogPHRlbXBsYXRlPlxuICAgICAgICAgKiAgIDxTd2l0Y2ggYXMgfHN8PlxuICAgICAgICAgKiAgICAgPHMuTGFiZWwgLz5cbiAgICAgICAgICogICA8L1N3aXRjaD5cbiAgICAgICAgICogPC90ZW1wbGF0ZT5cbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBMYWJlbDogV2l0aEJvdW5kQXJnczx0eXBlb2YgTGFiZWwsICdmb3InPjtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENvbnRyb2xTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICBBcmdzOiB7IGlkOiBzdHJpbmc7IGNoZWNrZWQ_OiBib29sZWFuOyBvbkNoYW5nZTogKCkgPT4gdm9pZCB9O1xufVxuXG5jb25zdCBDaGVja2JveDogVE9DPENvbnRyb2xTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICB7eyNsZXQgKGNlbGwgQGNoZWNrZWQpIGFzIHxjaGVja2VkfH19XG4gICAgPGlucHV0XG4gICAgICBpZD17e0BpZH19XG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgcm9sZT1cInN3aXRjaFwiXG4gICAgICBjaGVja2VkPXt7Y2hlY2tlZC5jdXJyZW50fX1cbiAgICAgIGFyaWEtY2hlY2tlZD17e2NoZWNrZWQuY3VycmVudH19XG4gICAgICBkYXRhLXN0YXRlPXt7aWYgY2hlY2tlZC5jdXJyZW50IFwib25cIiBcIm9mZlwifX1cbiAgICAgIHt7b24gXCJjbGlja1wiIChmbiB0b2dnbGVXaXRoRmFsbGJhY2sgY2hlY2tlZC50b2dnbGUgQG9uQ2hhbmdlKX19XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgLz5cbiAge3svbGV0fX1cbjwvdGVtcGxhdGU-O1xuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFN3aXRjaDogVE9DPFNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxkaXYgLi4uYXR0cmlidXRlcyBkYXRhLXByaW0tc3dpdGNoPlxuICAgIHt7ISBAZ2xpbnQtbm9jaGVjayB9fVxuICAgIHt7I2xldCAodW5pcXVlSWQpIGFzIHxpZHx9fVxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIENvbnRyb2w9KGNvbXBvbmVudCBDaGVja2JveCBjaGVja2VkPUBjaGVja2VkIGlkPWlkIG9uQ2hhbmdlPUBvbkNoYW5nZSlcbiAgICAgICAgICBMYWJlbD0oY29tcG9uZW50IExhYmVsIGZvcj1pZClcbiAgICAgICAgKVxuICAgICAgfX1cbiAgICB7ey9sZXR9fVxuICA8L2Rpdj5cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgZGVmYXVsdCBTd2l0Y2g7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVMsRUFBRSxFQUFFLElBQUksUUFBUSxnQkFBZ0I7QUFDekMsU0FBUyxFQUFFLFFBQVEsa0JBQWtCO0FBRXJDLFNBQVMsSUFBSSxRQUFRLGtCQUFrQjtBQUV2QyxTQUFTLFFBQVEsUUFBUSxjQUFjO0FBQ3ZDLFNBQVMsS0FBSyxRQUFRLGdDQUFnQztBQUN0RCxTQUFTLGtCQUFrQixRQUFRLHNCQUFzQjtBQUV6RCxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFDMUQsY0FBYyxhQUFhLFFBQVEsa0JBQWtCO0FBRXJELGlCQUFpQjtJQUNmLFNBQVM7SUFDVDtRQUNFOzs7O0tBSUMsR0FDRCxVQUFVLE9BQU87UUFDakI7O0tBRUMsR0FDRCxZQUFZLFNBQVMsT0FBTyxFQUFFLE9BQU8sVUFBVSxJQUFJOztJQUVyRDtRQUNFO2dCQUVJOzs7Ozs7Ozs7Ozs7OztTQWNDLEdBQ0QsU0FBUyxxQkFBcUIsVUFBVSxZQUFZLE9BQU87Z0JBQzNEOzs7Ozs7Ozs7Ozs7O1NBYUMsR0FDRCxPQUFPLHFCQUFxQixPQUFPOzs7O1VBTWpDO0lBQ1IsU0FBUztJQUNUO1FBQVEsSUFBSSxNQUFNO1FBQUUsVUFBVSxPQUFPO1FBQUUsZ0JBQWdCLElBQUk7OztBQUc3RCxNQUFNLFVBQVUsSUFBSSxvQkFBb0IsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7O0FBYWxELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQTtBQUVWOztDQUVDLEdBQ0QsT0FBTyxNQUFNLFFBQVEsSUFBSSxhQUFhLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7O0FBWWhELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQSxHQUFFO0FBRVosZUFBZSxPQUFPIn0"],"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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGNhY2hlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcblxuaW1wb3J0IHsgZ2V0VGFic3RlckF0dHJpYnV0ZSwgVHlwZXMgfSBmcm9tICd0YWJzdGVyJztcbmltcG9ydCB7IFRyYWNrZWRTZXQgfSBmcm9tICd0cmFja2VkLWJ1aWx0LWlucyc7XG4vLyBUaGUgY29uc3VtZXIgd2lsbCBuZWVkIHRvIHByb3ZpZGUgdHlwZXMgZm9yIHRyYWNrZWQtdG9vbGJveC5cbi8vIE9yLi4gYmV0dGVyIHlldCwgd2UgUFIgdG8gdHJha2NrZWQtdG9vbGJveCB0byBwcm92aWRlIHRoZW1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGxvY2FsQ29weSB9IGZyb20gJ3RyYWNrZWQtdG9vbGJveCc7XG5cbmltcG9ydCB7IFRvZ2dsZSB9IGZyb20gJy4vdG9nZ2xlLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50TGlrZSB9IGZyb20gJ0BnbGludC90ZW1wbGF0ZSc7XG5cbmNvbnN0IFRBQlNURVJfQ09ORklHID0gZ2V0VGFic3RlckF0dHJpYnV0ZShcbiAge1xuICAgIG1vdmVyOiB7XG4gICAgICBkaXJlY3Rpb246IFR5cGVzLk1vdmVyRGlyZWN0aW9ucy5Cb3RoLFxuICAgICAgY3ljbGljOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHRydWVcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICAvKipcbiAgICogVGhlIGJ1dHRvbiBlbGVtZW50IHdpbGwgaGF2ZSBhcmlhLXByZXNzZWQ9XCJ0cnVlXCIgb24gaXQgd2hlbiB0aGUgYnV0dG9uIGlzIGluIHRoZSBwcmVzc2VkIHN0YXRlLlxuICAgKi9cbiAgRWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBXaGVuIHVzZWQgaW4gYSBncm91cCBvZiBUb2dnbGVzLCB0aGlzIG9wdGlvbiB3aWxsIGJlIGhlbHBmdWwgdG9cbiAgICAgKiBrbm93IHdoaWNoIHRvZ2dsZSB3YXMgcHJlc3NlZCBpZiB5b3UncmUgdXNpbmcgdGhlIHNhbWUgQG9uQ2hhbmdlXG4gICAgICogaGFuZGxlciBmb3IgbXVsdGlwbGUgdG9nZ2xlcy5cbiAgICAgKi9cbiAgICB2YWx1ZT86IFZhbHVlO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICAvKipcbiAgICAgICAqIHRoZSBjdXJyZW50IHByZXNzZWQgc3RhdGUgb2YgdGhlIHRvZ2dsZSBidXR0b25cbiAgICAgICAqXG4gICAgICAgKiBVc2VmdWwgd2hlbiB1c2luZyB0aGUgdG9nZ2xlIGJ1dHRvbiBhcyBhbiB1bmNvbnRyb2xsZWQgY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIHByZXNzZWQ6IGJvb2xlYW4sXG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgSXRlbTxWYWx1ZSA9IGFueT4gPSBDb21wb25lbnRMaWtlPEl0ZW1TaWduYXR1cmU8VmFsdWU-PjtcblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGVTaWduYXR1cmU8VmFsdWU-IHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbGx5IHNldCB0aGUgaW5pdGlhbCB0b2dnbGUgc3RhdGVcbiAgICAgKi9cbiAgICB2YWx1ZT86IFZhbHVlO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGZvciB3aGVuIHRoZSB0b2dnbGUtZ3JvdXAncyBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqXG4gICAgICogV2hlbiBub25lIG9mIHRoZSB0b2dnbGVzIGFyZSBzZWxlY3RlZCwgdW5kZWZpbmVkIHdpbGwgYmUgcGFzc2VkLlxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKHZhbHVlOiBWYWx1ZSB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIFRvZ2dsZSBTd2l0Y2hcbiAgICAgICAgICovXG4gICAgICAgIEl0ZW06IEl0ZW07XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTaWduYXR1cmU8VmFsdWUgPSBhbnk-IHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbGx5IHNldCB0aGUgaW5pdGlhbCB0b2dnbGUgc3RhdGVcbiAgICAgKi9cbiAgICB2YWx1ZT86IFZhbHVlW10gfCBTZXQ8VmFsdWU-IHwgVmFsdWU7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIHRvZ2dsZS1ncm91cCdzIHN0YXRlIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqXG4gICAgICpcbiAgICAgKiBXaGVuIG5vbmUgb2YgdGhlIHRvZ2dsZXMgYXJlIHNlbGVjdGVkLCB1bmRlZmluZWQgd2lsbCBiZSBwYXNzZWQuXG4gICAgICovXG4gICAgb25DaGFuZ2U_OiAodmFsdWU6IFNldDxWYWx1ZT4pID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBUb2dnbGUgU3dpdGNoXG4gICAgICAgICAqL1xuICAgICAgICBJdGVtOiBJdGVtO1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUHJpdmF0ZVNpbmdsZVNpZ25hdHVyZTxWYWx1ZSA9IGFueT4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIHR5cGU_OiAnc2luZ2xlJztcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsbHkgc2V0IHRoZSBpbml0aWFsIHRvZ2dsZSBzdGF0ZVxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWU7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIHRvZ2dsZS1ncm91cCdzIHN0YXRlIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqXG4gICAgICpcbiAgICAgKiBXaGVuIG5vbmUgb2YgdGhlIHRvZ2dsZXMgYXJlIHNlbGVjdGVkLCB1bmRlZmluZWQgd2lsbCBiZSBwYXNzZWQuXG4gICAgICovXG4gICAgb25DaGFuZ2U_OiAodmFsdWU6IFZhbHVlIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIEl0ZW06IEl0ZW07XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmludGVyZmFjZSBQcml2YXRlTXVsdGlTaWduYXR1cmU8VmFsdWUgPSBhbnk-IHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICB0eXBlOiAnbXVsdGknO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsbHkgc2V0IHRoZSBpbml0aWFsIHRvZ2dsZSBzdGF0ZVxuICAgICAqL1xuICAgIHZhbHVlPzogVmFsdWVbXSB8IFNldDxWYWx1ZT4gfCBWYWx1ZTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgdG9nZ2xlLWdyb3VwJ3Mgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKlxuICAgICAqIFdoZW4gbm9uZSBvZiB0aGUgdG9nZ2xlcyBhcmUgc2VsZWN0ZWQsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogU2V0PFZhbHVlPikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICBJdGVtOiBJdGVtO1xuICAgICAgfSxcbiAgICBdO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc011bHRpKHg6ICdzaW5nbGUnIHwgJ211bHRpJyB8IHVuZGVmaW5lZCk6IHggaXMgJ211bHRpJyB7XG4gIHJldHVybiB4ID09PSAnbXVsdGknO1xufVxuXG5leHBvcnQgY2xhc3MgVG9nZ2xlR3JvdXA8VmFsdWUgPSBhbnk-IGV4dGVuZHMgQ29tcG9uZW50PFxuICBQcml2YXRlU2luZ2xlU2lnbmF0dXJlPFZhbHVlPiB8IFByaXZhdGVNdWx0aVNpZ25hdHVyZTxWYWx1ZT5cbj4ge1xuICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlZC1lbWJlci9nbGludC9pc3N1ZXMvNzE1XG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiAoaXNNdWx0aSB0aGlzLmFyZ3MudHlwZSl9fVxuICAgICAgPE11bHRpVG9nZ2xlR3JvdXBcbiAgICAgICAgQHZhbHVlPXt7dGhpcy5hcmdzLnZhbHVlfX1cbiAgICAgICAgQG9uQ2hhbmdlPXt7dGhpcy5hcmdzLm9uQ2hhbmdlfX1cbiAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICBhcyB8eHxcbiAgICAgID5cbiAgICAgICAge3t5aWVsZCB4fX1cbiAgICAgIDwvTXVsdGlUb2dnbGVHcm91cD5cbiAgICB7e2Vsc2V9fVxuICAgICAgPFNpbmdsZVRvZ2dsZUdyb3VwXG4gICAgICAgIEB2YWx1ZT17e3RoaXMuYXJncy52YWx1ZX19XG4gICAgICAgIEBvbkNoYW5nZT17e3RoaXMuYXJncy5vbkNoYW5nZX19XG4gICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgYXMgfHh8XG4gICAgICA-XG4gICAgICAgIHt7eWllbGQgeH19XG4gICAgICA8L1NpbmdsZVRvZ2dsZUdyb3VwPlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cbn1cblxuY2xhc3MgU2luZ2xlVG9nZ2xlR3JvdXA8VmFsdWUgPSBhbnk-IGV4dGVuZHMgQ29tcG9uZW50PFNpbmdsZVNpZ25hdHVyZTxWYWx1ZT4-IHtcbiAgQGxvY2FsQ29weSgnYXJncy52YWx1ZScpIGFjdGl2ZVByZXNzZWQ_OiBWYWx1ZTtcblxuICBoYW5kbGVUb2dnbGUgPSAodmFsdWU6IFZhbHVlKSA9PiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlUHJlc3NlZCA9PT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuYWN0aXZlUHJlc3NlZCA9IHVuZGVmaW5lZDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlUHJlc3NlZCA9IHZhbHVlO1xuXG4gICAgdGhpcy5hcmdzLm9uQ2hhbmdlPy4odGhpcy5hY3RpdmVQcmVzc2VkKTtcbiAgfTtcblxuICBpc1ByZXNzZWQgPSAodmFsdWU6IFZhbHVlIHwgdW5kZWZpbmVkKSA9PiB2YWx1ZSA9PT0gdGhpcy5hY3RpdmVQcmVzc2VkO1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGRhdGEtdGFic3Rlcj17e1RBQlNURVJfQ09ORklHfX0gLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT0oY29tcG9uZW50IFRvZ2dsZSBvbkNoYW5nZT10aGlzLmhhbmRsZVRvZ2dsZSBpc1ByZXNzZWQ9dGhpcy5pc1ByZXNzZWQpKX19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-XG59XG5cbmNsYXNzIE11bHRpVG9nZ2xlR3JvdXA8VmFsdWUgPSBhbnk-IGV4dGVuZHMgQ29tcG9uZW50PE11bHRpU2lnbmF0dXJlPFZhbHVlPj4ge1xuICAvKipcbiAgICogTm9ybWFsaXplcyBAdmFsdWUgdG8gYSBTZXRcbiAgICogYW5kIG1ha2VzIHN1cmUgdGhhdCBldmVuIGlmIHRoZSBpbnB1dCBTZXQgaXMgcmVhY3RpdmUsXG4gICAqIHdlIGRvbid0IG1pc3Rha2VubHkgZGlydHkgaXQuXG4gICAqL1xuICBAY2FjaGVkXG4gIGdldCBhY3RpdmVQcmVzc2VkKCk6IFRyYWNrZWRTZXQ8VmFsdWU-IHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmFyZ3MudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbmV3IFRyYWNrZWRTZXQoKTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBuZXcgVHJhY2tlZFNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICByZXR1cm4gbmV3IFRyYWNrZWRTZXQodmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVHJhY2tlZFNldChbdmFsdWVdKTtcbiAgfVxuXG4gIGhhbmRsZVRvZ2dsZSA9ICh2YWx1ZTogVmFsdWUpID0-IHtcbiAgICBpZiAodGhpcy5hY3RpdmVQcmVzc2VkLmhhcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuYWN0aXZlUHJlc3NlZC5kZWxldGUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZVByZXNzZWQuYWRkKHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLmFyZ3Mub25DaGFuZ2U_LihuZXcgU2V0PFZhbHVlPih0aGlzLmFjdGl2ZVByZXNzZWQudmFsdWVzKCkpKTtcbiAgfTtcblxuICBpc1ByZXNzZWQgPSAodmFsdWU6IFZhbHVlKSA9PiB0aGlzLmFjdGl2ZVByZXNzZWQuaGFzKHZhbHVlKTtcblxuICA8dGVtcGxhdGU-XG4gICAgPGRpdiBkYXRhLXRhYnN0ZXI9e3tUQUJTVEVSX0NPTkZJR319IC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkIChoYXNoIEl0ZW09KGNvbXBvbmVudCBUb2dnbGUgb25DaGFuZ2U9dGhpcy5oYW5kbGVUb2dnbGUgaXNQcmVzc2VkPXRoaXMuaXNQcmVzc2VkKSl9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFFckMsU0FBUyxtQkFBbUIsRUFBRSxLQUFLLFFBQVEsVUFBVTtBQUNyRCxTQUFTLFVBQVUsUUFBUSxvQkFBb0I7QUFDL0MsK0RBQStEO0FBQy9ELDZEQUE2RDtBQUM3RCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLFNBQVMsU0FBUyxRQUFRLGtCQUFrQjtBQUU1QyxTQUFTLE1BQU0sUUFBUSxlQUFlO0FBRXRDLGNBQWMsYUFBYSxRQUFRLGtCQUFrQjtBQUVyRCxNQUFNLGlCQUFpQixvQkFDckI7SUFDRSxPQUFPO1FBQ0wsV0FBVyxNQUFNLGVBQWUsQ0FBQyxJQUFJO1FBQ3JDLFFBQVE7SUFDVjtBQUNGLEdBQ0E7QUFHRixpQkFBaUIsY0FBYyxRQUFRLEdBQUc7SUFDeEM7O0dBRUMsR0FDRCxTQUFTO0lBQ1Q7UUFDRTs7OztLQUlDLEdBQ0QsUUFBUTs7SUFFVjtRQUNFLFVBQ0U7Ozs7T0FJQyxHQUNELFNBQVMsT0FBTzs7O0FBS3RCLFlBQVksS0FBSyxRQUFRLEdBQUcsSUFBSSxjQUFjLGNBQWM7QUFFNUQsaUJBQWlCLGdCQUFnQjtJQUMvQixTQUFTO0lBQ1Q7UUFDRTs7S0FFQyxHQUNELFFBQVE7UUFDUjs7Ozs7OztLQU9DLEdBQ0QsWUFBWSxPQUFPLFFBQVEsU0FBUyxLQUFLLElBQUk7O0lBRS9DO1FBQ0U7Z0JBRUk7O1NBRUMsR0FDRCxNQUFNOzs7O0FBTWQsaUJBQWlCLGVBQWUsUUFBUSxHQUFHO0lBQ3pDLFNBQVM7SUFDVDtRQUNFOztLQUVDLEdBQ0QsUUFBUSxVQUFVLElB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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","strictMode","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;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAT,SAAA;IAAAU,EAAA;IAAAC,EAAA;AAAAC,IAAAA,kBAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvY29tcG9uZW50cy90b2dnbGUuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGZuIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB7IGNlbGwgfSBmcm9tICdlbWJlci1yZXNvdXJjZXMnO1xuXG5pbXBvcnQgeyB0b2dnbGVXaXRoRmFsbGJhY2sgfSBmcm9tICcuLy1wcml2YXRlL3V0aWxzLnRzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmU8VmFsdWUgPSBhbnk-IHtcbiAgRWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgcHJlc3NlZC1zdGF0ZSBvZiB0aGUgdG9nZ2xlLlxuICAgICAqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBwcmVzc2VkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgdG9nZ2xlJ3Mgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBpZiBhIGBAdmFsdWVgIGlzIHBhc3NlZCB0byB0aGlzIGA8VG9nZ2xlPmAsIHRoYXQgQHZhbHVlIHdpbGxcbiAgICAgKiBiZSBwYXNzZWQgdG8gdGhlIGBAb25DaGFuZ2VgIGhhbmRsZXIuXG4gICAgICpcbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiB1c2luZyB0aGUgc2FtZSBmdW5jdGlvbiBmb3IgdGhlIGBAb25DaGFuZ2VgXG4gICAgICogaGFuZGxlciB3aXRoIG11bHRpcGxlIGA8VG9nZ2xlPmAgY29tcG9uZW50cy5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogVmFsdWUgfCB1bmRlZmluZWQsIHByZXNzZWQ6IGJvb2xlYW4pID0-IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHVzZWQgaW4gYSBncm91cCBvZiBUb2dnbGVzLCB0aGlzIG9wdGlvbiB3aWxsIGJlIGhlbHBmdWwgdG9cbiAgICAgKiBrbm93IHdoaWNoIHRvZ2dsZSB3YXMgcHJlc3NlZCBpZiB5b3UncmUgdXNpbmcgdGhlIHNhbWUgQG9uQ2hhbmdlXG4gICAgICogaGFuZGxlciBmb3IgbXVsdGlwbGUgdG9nZ2xlcy5cbiAgICAgKi9cbiAgICB2YWx1ZT86IFZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBjb250cm9sbGluZyBzdGF0ZSBpbiBhIHdyYXBwaW5nIGNvbXBvbmVudCwgdGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBAdmFsdWVgIHRvIGRldGVybWluZSBpZiB0aGlzIGA8VG9nZ2xlPmAgc2hvdWxkIGFwcGVhciBwcmVzc2VkLlxuICAgICAqL1xuICAgIGlzUHJlc3NlZD86ICh2YWx1ZT86IFZhbHVlIHwgdW5kZWZpbmVkKSA9PiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICAvKipcbiAgICAgICAqIHRoZSBjdXJyZW50IHByZXNzZWQgc3RhdGUgb2YgdGhlIHRvZ2dsZSBidXR0b25cbiAgICAgICAqXG4gICAgICAgKiBVc2VmdWwgd2hlbiB1c2luZyB0aGUgdG9nZ2xlIGJ1dHRvbiBhcyBhbiB1bmNvbnRyb2xsZWQgY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIHByZXNzZWQ6IGJvb2xlYW4sXG4gICAgXTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNQcmVzc2VkKFxuICBwcmVzc2VkPzogYm9vbGVhbixcbiAgdmFsdWU_OiB1bmtub3duLFxuICBpc1ByZXNzZWQ_OiAodmFsdWU_OiB1bmtub3duKSA9PiBib29sZWFuXG4pOiBib29sZWFuIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIEJvb2xlYW4ocHJlc3NlZCk7XG4gIGlmICghaXNQcmVzc2VkKSByZXR1cm4gQm9vbGVhbihwcmVzc2VkKTtcblxuICByZXR1cm4gaXNQcmVzc2VkKHZhbHVlKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRvZ2dsZTogVE9DPFNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIHt7I2xldCAoY2VsbCAoaXNQcmVzc2VkIEBwcmVzc2VkIEB2YWx1ZSBAaXNQcmVzc2VkKSkgYXMgfHByZXNzZWR8fX1cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtcHJlc3NlZD1cInt7cHJlc3NlZC5jdXJyZW50fX1cIlxuICAgICAge3tvbiBcImNsaWNrXCIgKGZuIHRvZ2dsZVdpdGhGYWxsYmFjayBwcmVzc2VkLnRvZ2dsZSBAb25DaGFuZ2UgQHZhbHVlKX19XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgPlxuICAgICAge3t5aWVsZCBwcmVzc2VkLmN1cnJlbnR9fVxuICAgIDwvYnV0dG9uPlxuICB7ey9sZXR9fVxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7O0FBQzlDLFNBQVMsRUFBRSxRQUFRLGdCQUFnQjtBQUNuQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxJQUFJLFFBQVEsa0JBQWtCO0FBRXZDLFNBQVMsa0JBQWtCLFFBQVEsc0JBQXNCO0FBRXpELGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUUxRCw4REFBOEQ7QUFDOUQsaUJBQWlCLFVBQVUsUUFBUSxHQUFHO0lBQ3BDLFNBQVM7SUFDVDtRQUNFOzs7O0tBSUMsR0FDRCxVQUFVLE9BQU87UUFDakI7Ozs7Ozs7Ozs7S0FVQyxHQUNELFlBQVksT0FBTyxRQUFRLFNBQVMsRUFBRSxTQUFTLE9BQU8sS0FBSyxJQUFJO1FBRS9EOzs7O0tBSUMsR0FDRCxRQUFRO1FBRVI7O0tBRUMsR0FDRCxhQUFhLFFBQVEsUUFBUSxTQUFTLEtBQUssT0FBTzs7SUFFcEQ7UUFDRSxVQUNFOzs7O09BSUMsR0FDRCxTQUFTLE9BQU87OztBQUt0QixTQUFTLFVBQ1AsV0FBVSxPQUFPLEVBQ2pCLFNBQVEsT0FBTyxFQUNmLGNBQWEsUUFBUSxPQUFPLEtBQUssT0FBTyxHQUN2QyxPQUFPO0lBQ1IsSUFBSSxDQUFDLFFBQU8sT0FBTyxRQUFRO0lBQzNCLElBQUksQ0FBQyxZQUFXLE9BQU8sUUFBUTtJQUUvQixPQUFPLFdBQVU7QUFDbkI7QUFFQSxPQUFPLE1BQU0sUUFBUSxJQUFJLGFBQWEsU0FBVSxDQUFBOzs7Ozs7Ozs7OztBQVdoRCxDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUEsR0FBRTtBQUVaLGVBQWUsT0FBTyJ9"],"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","strictMode"],"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;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,IAAA;AAAAvB,QAAAA,GAAAA;AAAA,OAAA,CAAA;MAAAwB,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL252cC9EZXZlbG9wbWVudC9OdWxsVm94UG9wdWxpL2VtYmVyLXByaW1pdGl2ZXMvZW1iZXItcHJpbWl0aXZlcy9zcmMvZmxvYXRpbmctdWkvY29tcG9uZW50Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuXG5pbXBvcnQgeyBtb2RpZmllciBhcyBlTW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5cbmltcG9ydCBWZWxjcm9Nb2RpZmllciBmcm9tICcuL21vZGlmaWVyLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTaWduYXR1cmUgYXMgTW9kaWZpZXJTaWduYXR1cmUgfSBmcm9tICcuL21vZGlmaWVyLnRzJztcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZVN0YXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MsIFdpdGhCb3VuZFBvc2l0aW9uYWxzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcbmltcG9ydCB0eXBlIHsgTW9kaWZpZXJMaWtlIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxudHlwZSBNb2RpZmllckFyZ3MgPSBNb2RpZmllclNpZ25hdHVyZVsnQXJncyddWydOYW1lZCddO1xuXG5pbnRlcmZhY2UgSG9va1NpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICBBcmdzOiB7XG4gICAgbWlkZGxld2FyZT86IE1vZGlmaWVyQXJnc1snbWlkZGxld2FyZSddO1xuICAgIHBsYWNlbWVudD86IE1vZGlmaWVyQXJnc1sncGxhY2VtZW50J107XG4gICAgc3RyYXRlZ3k_OiBNb2RpZmllckFyZ3NbJ3N0cmF0ZWd5J107XG4gICAgZmxpcE9wdGlvbnM_OiBNb2RpZmllckFyZ3NbJ2ZsaXBPcHRpb25zJ107XG4gICAgaGlkZU9wdGlvbnM_OiBNb2RpZmllckFyZ3NbJ2hpZGVPcHRpb25zJ107XG4gICAgc2hpZnRPcHRpb25zPzogTW9kaWZpZXJBcmdzWydzaGlmdE9wdGlvbnMnXTtcbiAgICBvZmZzZXRPcHRpb25zPzogTW9kaWZpZXJBcmdzWydvZmZzZXRPcHRpb25zJ107XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHZlbGNybzoge1xuICAgICAgICBob29rOiBNb2RpZmllckxpa2U8SG9va1NpZ25hdHVyZT47XG4gICAgICAgIHNldEhvb2s6IChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpID0-IHZvaWQ7XG4gICAgICAgIGxvb3A_OiBXaXRoQm91bmRBcmdzPFdpdGhCb3VuZFBvc2l0aW9uYWxzPHR5cGVvZiBWZWxjcm9Nb2RpZmllciwgMT4sIGtleW9mIE1vZGlmaWVyQXJncz47XG4gICAgICAgIGRhdGE_OiBNaWRkbGV3YXJlU3RhdGU7XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59XG5cbmNvbnN0IHJlZiA9IGVNb2RpZmllcjx7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudDtcbiAgQXJnczoge1xuICAgIFBvc2l0aW9uYWw6IFtzZXRSZWY6IChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpID0-IHZvaWRdO1xuICB9O1xufT4oKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCwgcG9zaXRpb25hbCkgPT4ge1xuICBsZXQgZm4gPSBwb3NpdGlvbmFsWzBdO1xuXG4gIGZuKGVsZW1lbnQpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbGNybyBleHRlbmRzIENvbXBvbmVudDxTaWduYXR1cmU-IHtcbiAgQHRyYWNrZWQgaG9vaz86IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCA9IHVuZGVmaW5lZDtcblxuICAvLyBzZXQgYnkgVmVsY3JvTW9kaWZpZXJcbiAgQHRyYWNrZWQgdmVsY3JvRGF0YT86IE1pZGRsZXdhcmVTdGF0ZSA9IHVuZGVmaW5lZDtcblxuICBzZXRWZWxjcm9EYXRhOiBNb2RpZmllckFyZ3NbJ3NldFZlbGNyb0RhdGEnXSA9IChkYXRhKSA9PiAodGhpcy52ZWxjcm9EYXRhID0gZGF0YSk7XG5cbiAgc2V0SG9vayA9IChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpID0-IHtcbiAgICB0aGlzLmhvb2sgPSBlbGVtZW50O1xuICB9O1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXRcbiAgICAgIChtb2RpZmllclxuICAgICAgICBWZWxjcm9Nb2RpZmllclxuICAgICAgICBmbGlwT3B0aW9ucz1AZmxpcE9wdGlvbnNcbiAgICAgICAgaGlkZU9wdGlvbnM9QGhpZGVPcHRpb25zXG4gICAgICAgIG1pZGRsZXdhcmU9QG1pZGRsZXdhcmVcbiAgICAgICAgb2Zmc2V0T3B0aW9ucz1Ab2Zmc2V0T3B0aW9uc1xuICAgICAgICBwbGFjZW1lbnQ9QHBsYWNlbWVudFxuICAgICAgICBzaGlmdE9wdGlvbnM9QHNoaWZ0T3B0aW9uc1xuICAgICAgICBzdHJhdGVneT1Ac3RyYXRlZ3lcbiAgICAgICAgc2V0VmVsY3JvRGF0YT10aGlzLnNldFZlbGNyb0RhdGFcbiAgICAgIClcbiAgICAgIGFzIHxsb29wfFxuICAgIH19XG4gICAgICB7eyNsZXQgKGlmIHRoaXMuaG9vayAobW9kaWZpZXIgbG9vcCB0aGlzLmhvb2spKSBhcyB8bG9vcFdpdGhIb29rfH19XG4gICAgICAgIHt7ISBAZ2xpbnQtbm9jaGVjayAtLSBFeGNlc3NpdmVseSBkZWVwLCBwb3NzaWJseSBpbmZpbml0ZSB9fVxuICAgICAgICB7e3lpZWxkXG4gICAgICAgICAgKGhhc2hcbiAgICAgICAgICAgIGhvb2s9KG1vZGlmaWVyIHJlZiB0aGlzLnNldEhvb2spXG4gICAgICAgICAgICBzZXRIb29rPXRoaXMuc2V0SG9va1xuICAgICAgICAgICAgbG9vcD1sb29wV2l0aEhvb2tcbiAgICAgICAgICAgIGRhdGE9dGhpcy52ZWxjcm9EYXRhXG4gICAgICAgICAgKVxuICAgICAgICB9fVxuICAgICAge3svbGV0fX1cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFFckMsU0FBUyxZQUFZLFNBQVMsUUFBUSxpQkFBaUI7QUFFdkQsT0FBTyxvQkFBb0IsZ0JBQWdCO0FBRTNDLGNBQWMsYUFBYSxpQkFBaUIsUUFBUSxnQkFBZ0I7QUFDcEUsY0FBYyxlQUFlLFFBQVEsbUJBQW1CO0FBQ3hELGNBQWMsYUFBYSxFQUFFLG9CQUFvQixRQUFRLGtCQUFrQjtBQUMzRSxjQUFjLFlBQVksUUFBUSxrQkFBa0I7S0FFL0MsZUFBZSxrQkFBa0IsUUFBUTtVQUVwQztJQUNSLFNBQVMsY0FBYzs7QUFHekIsaUJBQWlCO0lBQ2Y7UUFDRSxhQUFhLGFBQWE7UUFDMUIsWUFBWSxhQUFhO1FBQ3pCLFdBQVcsYUFBYTtRQUN4QixjQUFjLGFBQWE7UUFDM0IsY0FBYyxhQUFhO1FBQzNCLGVBQWUsYUFBYTtRQUM1QixnQkFBZ0IsYUFBYTs7SUFFL0I7UUFDRSxVQUNFO2dCQUNFLE1BQU0sYUFBYTtnQkFDbkIsVUFBVSxTQUFTLGNBQWMsZUFBZSxJQUFJO2dCQUNwRCxPQUFPLGNBQWMsNEJBQTRCLGdCQUFnQixVQUFVO2dCQUMzRSxPQUFPOzs7O0FBTWYsTUFBTSxNQUFNO0lBQ1YsU0FBUyxjQUFjO0lBQ3ZCO1FBQ0UsYUFBYSxTQUFTLFNBQVMsY0FBYyxlQUFlLElBQUk7O0dBRWpFLENBQUMsVUFBUyxjQUFjLFlBQVk7SUFDckMsSUFBSSxNQUFLLFdBQVUsQ0FBQyxFQUFFO0lBRXRCLElBQUc7QUFDTDtBQUVBLGVBQWUsTUFBTSxlQUFlLFVBQVU7SUFDNUMsQ0FBQztJQUFRLE9BQU8sY0FBYyxhQUFhLFVBQVU7SUFFckQsd0JBQXdCO0lBQ3hCLENBQUM7SUFBUSxhQUFhLGtCQUFrQixVQUFVO0lBRWxELGVBQWUsYUFBYSxtQkFBbUIsQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFJLEVBQUU7SUFFbEYsVUFBVSxDQUFDLFVBQVMsY0FBYztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHO0lBQ2QsRUFBRTtJQUVGLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTJCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0EzQkE7QUE0QloifQ"],"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, getParams, isActive, isExternal, link };
79
+ //# sourceMappingURL=link.js.map