@hokulea/ember 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sources":["../../src/components/icon.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { dependencySatisfies, importSync, macroCondition } from '@embroider/macros';\nimport { icons } from '@phosphor-icons/core';\nimport { pascalCase } from 'change-case';\nimport * as phIcons from 'ember-phosphor-icons';\nimport styles from '@hokulea/core/icons.module.css';\nimport type PhIcon from 'ember-phosphor-icons/ph-icon';\nimport type SvgJarHelper from 'ember-svg-jar/helpers/svg-jar';\nconst svgJar = macroCondition(dependencySatisfies('ember-svg-jar', '*')) ? (importSync('ember-svg-jar/helpers/svg-jar') as {\n default: typeof SvgJarHelper;\n}).default : undefined;\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n icon: string;\n /**\n * @defaultValue regular\n */ style?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';\n };\n}\nexport default class Icon extends Component<IconSignature> {\n @cached\n get phosphorIcon() {\n return icons.find((entry1)=>entry1.name === this.args.icon);\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get PhIcon(): typeof PhIcon {\n const icon1 = `Ph${pascalCase(this.args.icon)}`;\n // @ts-expect-error no index signature is given but we are ok with this\n return phIcons[icon1] as typeof PhIcon;\n }\n get style() {\n return this.phosphorIcon ? this.args.style ?? 'regular' : svgJar ? 'custom' : '';\n }\n static{\n template(`\n <span\n class={{styles.icon}}\n data-test-icon={{@icon}}\n data-test-icon-style={{this.style}}\n ...attributes\n >\n {{#if this.phosphorIcon}}\n <this.PhIcon @weight={{@style}} />\n {{else if svgJar}}\n {{svgJar @icon}}\n {{/if}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9pY29uLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBkZXBlbmRlbmN5U2F0aXNmaWVzLCBpbXBvcnRTeW5jLCBtYWNyb0NvbmRpdGlvbiB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHsgaWNvbnMgfSBmcm9tICdAcGhvc3Bob3ItaWNvbnMvY29yZSc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0ICogYXMgcGhJY29ucyBmcm9tICdlbWJlci1waG9zcGhvci1pY29ucyc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnQGhva3VsZWEvY29yZS9pY29ucy5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHR5cGUgUGhJY29uIGZyb20gJ2VtYmVyLXBob3NwaG9yLWljb25zL3BoLWljb24nO1xuaW1wb3J0IHR5cGUgU3ZnSmFySGVscGVyIGZyb20gJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJztcblxuY29uc3Qgc3ZnSmFyID0gbWFjcm9Db25kaXRpb24oZGVwZW5kZW5jeVNhdGlzZmllcygnZW1iZXItc3ZnLWphcicsICcqJykpXG4gID8gKGltcG9ydFN5bmMoJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJykgYXMgeyBkZWZhdWx0OiB0eXBlb2YgU3ZnSmFySGVscGVyIH0pLmRlZmF1bHRcbiAgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxTcGFuRWxlbWVudDtcbiAgQXJnczoge1xuICAgIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgcmVndWxhclxuICAgICAqL1xuICAgIHN0eWxlPzogJ3RoaW4nIHwgJ2xpZ2h0JyB8ICdyZWd1bGFyJyB8ICdib2xkJyB8ICdmaWxsJyB8ICdkdW90b25lJztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbiBleHRlbmRzIENvbXBvbmVudDxJY29uU2lnbmF0dXJlPiB7XG4gIEBjYWNoZWRcbiAgZ2V0IHBob3NwaG9ySWNvbigpIHtcbiAgICByZXR1cm4gaWNvbnMuZmluZCgoZW50cnkpID0-IGVudHJ5Lm5hbWUgPT09IHRoaXMuYXJncy5pY29uKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgZ2V0IFBoSWNvbigpOiB0eXBlb2YgUGhJY29uIHtcbiAgICBjb25zdCBpY29uID0gYFBoJHtwYXNjYWxDYXNlKHRoaXMuYXJncy5pY29uKX1gO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyBpbmRleCBzaWduYXR1cmUgaXMgZ2l2ZW4gYnV0IHdlIGFyZSBvayB3aXRoIHRoaXNcbiAgICByZXR1cm4gcGhJY29uc1tpY29uXSBhcyB0eXBlb2YgUGhJY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLnBob3NwaG9ySWNvbiA_IHRoaXMuYXJncy5zdHlsZSA_PyAncmVndWxhcicgOiBzdmdKYXIgPyAnY3VzdG9tJyA6ICcnO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz17e3N0eWxlcy5pY29ufX1cbiAgICAgIGRhdGEtdGVzdC1pY29uPXt7QGljb259fVxuICAgICAgZGF0YS10ZXN0LWljb24tc3R5bGU9e3t0aGlzLnN0eWxlfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICA-XG4gICAgICB7eyNpZiB0aGlzLnBob3NwaG9ySWNvbn19XG4gICAgICAgIDx0aGlzLlBoSWNvbiBAd2VpZ2h0PXt7QHN0eWxlfX0gLz5cbiAgICAgIHt7ZWxzZSBpZiBzdmdKYXJ9fVxuICAgICAgICB7e3N2Z0phciBAaWNvbn19XG4gICAgICB7ey9pZn19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxjQUFjLFFBQVEsb0JBQW9CO0FBRXBGLFNBQVMsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFTLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFlBQVksYUFBYSx1QkFBdUI7QUFFaEQsT0FBTyxZQUFZLGlDQUFpQztBQUVwRCxZQUFZLFlBQVksK0JBQStCO0FBQ3ZELFlBQVksa0JBQWtCLGdDQUFnQztBQUU5RCxNQUFNLFNBQVMsZUFBZSxvQkFBb0IsaUJBQWlCLFFBQy9ELENBQUMsV0FBVztJQUFzQyxnQkFBZ0I7Q0FBYyxFQUFFLE9BQU8sR0FDekY7QUFFSixpQkFBaUI7SUFDZixTQUFTO0lBQ1Q7UUFDRSxNQUFNLE1BQU07UUFFWjs7S0FFQyxHQUNELFFBQVEsU0FBUyxVQUFVLFlBQVksU0FBUyxTQUFTOzs7QUFJN0QsZUFBZSxNQUFNLGFBQWEsVUFBVTtJQUMxQyxDQUFDO0lBQU0sSUFDSCxlQUFlO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxTQUFVLE9BQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtJQUM1RDtJQUVBLGdFQUFnRTtJQUNoRSxJQUFJLGlCQUFpQixPQUFPO1FBQzFCLE1BQU0sUUFBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUMsdUVBQXVFO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLE1BQUssV0FBVztJQUNqQztJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxZQUFZLFNBQVMsV0FBVztJQUNoRjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7RUFhVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FiQTtBQWNaIn0"],"names":["svgJar","macroCondition","dependencySatisfies","importSync","default","undefined","Icon","Component","phosphorIcon","icons","find","entry1","name","args","icon","n","this","prototype","cached","PhIcon","icon1","pascalCase","phIcons","style","setComponentTemplate","precompileTemplate","scope","styles","strictMode"],"mappings":";;;;;;;;;;;AAaA,MAAMA,MAAA,GAASC,cAAA,CAAeC,mBAAA,CAAoB,eAAiB,EAAA,GAAA,CAAA,CAAA,GAC9DC,UAAA,CAAW,+BAAsEC,CAAAA,CAAAA,OAAO,GACzFC,SAAA,CAAA;AAcW,MAAMC,IAAA,SAAaC,SAAA,CAAU;AAC1C,EAAA,IACIC,eAAe;AACjB,IAAA,OAAOC,KAAA,CAAMC,IAAI,CAAEC,MAAA,IAAUA,MAAA,CAAMC,IAAI,KAAK,IAAI,CAACC,IAAI,CAACC,IAAI,CAAA,CAAA;AAC5D,GAAA;AAEA;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,mBALCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMD,EAAA,IAAIC,SAAwB;IAC1B,MAAMC,KAAA,GAAO,CAAA,EAAA,EAAKC,UAAA,CAAW,IAAI,CAACR,IAAI,CAACC,IAAI,CAAG,CAAA,CAAA,CAAA;AAE9C;IACA,OAAOQ,OAAO,CAACF,KAAA,CAAK,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIG,QAAQ;AACV,IAAA,OAAO,IAAI,CAACf,YAAY,GAAG,IAAI,CAACK,IAAI,CAACU,KAAK,IAAI,SAAYvB,GAAAA,MAAA,GAAS,QAAW,GAAA,EAAA,CAAA;AAChF,GAAA;AAEA,EAAA;IAAAwB,oBAAA,CAAAC,kBAAA,CAaA,gRAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;AAAA3B,QAAAA,MAAAA;AAAA,OAAA,CAAA;MAAA4B,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"icon.js","sources":["../../src/components/icon.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { dependencySatisfies, importSync, macroCondition } from '@embroider/macros';\nimport { icons } from '@phosphor-icons/core';\nimport { pascalCase } from 'change-case';\nimport * as phIcons from 'ember-phosphor-icons';\nimport styles from '@hokulea/core/icons.module.css';\nimport type PhIcon from 'ember-phosphor-icons/ph-icon';\nimport type SvgJarHelper from 'ember-svg-jar/helpers/svg-jar';\nconst svgJar = macroCondition(dependencySatisfies('ember-svg-jar', '*')) ? (importSync('ember-svg-jar/helpers/svg-jar') as {\n default: typeof SvgJarHelper;\n}).default : undefined;\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n icon: string;\n /**\n * @defaultValue regular\n */ style?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';\n };\n}\nexport default class Icon extends Component<IconSignature> {\n @cached\n get phosphorIcon() {\n return icons.find((entry1)=>entry1.name === this.args.icon);\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get PhIcon(): typeof PhIcon {\n const icon1 = `Ph${pascalCase(this.args.icon)}`;\n // @ts-expect-error no index signature is given but we are ok with this\n return phIcons[icon1] as typeof PhIcon;\n }\n get style() {\n return this.phosphorIcon ? this.args.style ?? 'regular' : svgJar ? 'custom' : '';\n }\n static{\n template(`\n <span\n class={{styles.icon}}\n data-test-icon={{@icon}}\n data-test-icon-style={{this.style}}\n ...attributes\n >\n {{#if this.phosphorIcon}}\n <this.PhIcon @weight={{@style}} />\n {{else if svgJar}}\n {{svgJar @icon}}\n {{/if}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9pY29uLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBkZXBlbmRlbmN5U2F0aXNmaWVzLCBpbXBvcnRTeW5jLCBtYWNyb0NvbmRpdGlvbiB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHsgaWNvbnMgfSBmcm9tICdAcGhvc3Bob3ItaWNvbnMvY29yZSc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0ICogYXMgcGhJY29ucyBmcm9tICdlbWJlci1waG9zcGhvci1pY29ucyc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnQGhva3VsZWEvY29yZS9pY29ucy5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHR5cGUgUGhJY29uIGZyb20gJ2VtYmVyLXBob3NwaG9yLWljb25zL3BoLWljb24nO1xuaW1wb3J0IHR5cGUgU3ZnSmFySGVscGVyIGZyb20gJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJztcblxuY29uc3Qgc3ZnSmFyID0gbWFjcm9Db25kaXRpb24oZGVwZW5kZW5jeVNhdGlzZmllcygnZW1iZXItc3ZnLWphcicsICcqJykpXG4gID8gKGltcG9ydFN5bmMoJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJykgYXMgeyBkZWZhdWx0OiB0eXBlb2YgU3ZnSmFySGVscGVyIH0pLmRlZmF1bHRcbiAgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxTcGFuRWxlbWVudDtcbiAgQXJnczoge1xuICAgIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgcmVndWxhclxuICAgICAqL1xuICAgIHN0eWxlPzogJ3RoaW4nIHwgJ2xpZ2h0JyB8ICdyZWd1bGFyJyB8ICdib2xkJyB8ICdmaWxsJyB8ICdkdW90b25lJztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbiBleHRlbmRzIENvbXBvbmVudDxJY29uU2lnbmF0dXJlPiB7XG4gIEBjYWNoZWRcbiAgZ2V0IHBob3NwaG9ySWNvbigpIHtcbiAgICByZXR1cm4gaWNvbnMuZmluZCgoZW50cnkpID0-IGVudHJ5Lm5hbWUgPT09IHRoaXMuYXJncy5pY29uKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgZ2V0IFBoSWNvbigpOiB0eXBlb2YgUGhJY29uIHtcbiAgICBjb25zdCBpY29uID0gYFBoJHtwYXNjYWxDYXNlKHRoaXMuYXJncy5pY29uKX1gO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyBpbmRleCBzaWduYXR1cmUgaXMgZ2l2ZW4gYnV0IHdlIGFyZSBvayB3aXRoIHRoaXNcbiAgICByZXR1cm4gcGhJY29uc1tpY29uXSBhcyB0eXBlb2YgUGhJY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLnBob3NwaG9ySWNvbiA_IHRoaXMuYXJncy5zdHlsZSA_PyAncmVndWxhcicgOiBzdmdKYXIgPyAnY3VzdG9tJyA6ICcnO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz17e3N0eWxlcy5pY29ufX1cbiAgICAgIGRhdGEtdGVzdC1pY29uPXt7QGljb259fVxuICAgICAgZGF0YS10ZXN0LWljb24tc3R5bGU9e3t0aGlzLnN0eWxlfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICA-XG4gICAgICB7eyNpZiB0aGlzLnBob3NwaG9ySWNvbn19XG4gICAgICAgIDx0aGlzLlBoSWNvbiBAd2VpZ2h0PXt7QHN0eWxlfX0gLz5cbiAgICAgIHt7ZWxzZSBpZiBzdmdKYXJ9fVxuICAgICAgICB7e3N2Z0phciBAaWNvbn19XG4gICAgICB7ey9pZn19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxjQUFjLFFBQVEsb0JBQW9CO0FBRXBGLFNBQVMsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFTLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFlBQVksYUFBYSx1QkFBdUI7QUFFaEQsT0FBTyxZQUFZLGlDQUFpQztBQUVwRCxZQUFZLFlBQVksK0JBQStCO0FBQ3ZELFlBQVksa0JBQWtCLGdDQUFnQztBQUU5RCxNQUFNLFNBQVMsZUFBZSxvQkFBb0IsaUJBQWlCLFFBQy9ELENBQUMsV0FBVztJQUFzQyxnQkFBZ0I7Q0FBYyxFQUFFLE9BQU8sR0FDekY7QUFFSixpQkFBaUI7SUFDZixTQUFTO0lBQ1Q7UUFDRSxNQUFNLE1BQU07UUFFWjs7S0FFQyxHQUNELFFBQVEsU0FBUyxVQUFVLFlBQVksU0FBUyxTQUFTOzs7QUFJN0QsZUFBZSxNQUFNLGFBQWEsVUFBVTtJQUMxQyxDQUFDO0lBQU0sSUFDSCxlQUFlO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxTQUFVLE9BQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtJQUM1RDtJQUVBLGdFQUFnRTtJQUNoRSxJQUFJLGlCQUFpQixPQUFPO1FBQzFCLE1BQU0sUUFBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUMsdUVBQXVFO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLE1BQUssV0FBVztJQUNqQztJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxZQUFZLFNBQVMsV0FBVztJQUNoRjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7RUFhVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FiQTtBQWNaIn0"],"names":["svgJar","macroCondition","dependencySatisfies","importSync","default","undefined","Icon","Component","phosphorIcon","icons","find","entry1","name","args","icon","n","prototype","cached","PhIcon","icon1","pascalCase","phIcons","style","setComponentTemplate","precompileTemplate","scope","styles","strictMode"],"mappings":";;;;;;;;;;;AAaA,MAAMA,MAAA,GAASC,cAAA,CAAeC,mBAAA,CAAoB,eAAiB,EAAA,GAAA,CAAA,CAAA,GAC9DC,UAAA,CAAW,+BAAsEC,CAAAA,CAAAA,OAAO,GACzFC,SAAA,CAAA;AAcW,MAAMC,IAAA,SAAaC,SAAA,CAAU;AAC1C,EAAA,IACIC,eAAe;AACjB,IAAA,OAAOC,KAAA,CAAMC,IAAI,CAAEC,MAAA,IAAUA,MAAA,CAAMC,IAAI,KAAK,IAAI,CAACC,IAAI,CAACC,IAAI,CAAA,CAAA;AAC5D,GAAA;AAEA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CALCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMD,EAAA,IAAIC,SAAwB;IAC1B,MAAMC,KAAA,GAAO,CAAA,EAAA,EAAKC,UAAA,CAAW,IAAI,CAACP,IAAI,CAACC,IAAI,CAAG,CAAA,CAAA,CAAA;AAE9C;IACA,OAAOO,OAAO,CAACF,KAAA,CAAK,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIG,QAAQ;AACV,IAAA,OAAO,IAAI,CAACd,YAAY,GAAG,IAAI,CAACK,IAAI,CAACS,KAAK,IAAI,SAAYtB,GAAAA,MAAA,GAAS,QAAW,GAAA,EAAA,CAAA;AAChF,GAAA;AAEA,EAAA;IAAAuB,oBAAA,CAAAC,kBAAA,CAaA,gRAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;AAAA1B,QAAAA,MAAAA;AAAA,OAAA,CAAA;MAAA2B,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../src/components/list.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { listbox } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface OptionSignature<V> {\n Element: HTMLOptionElement;\n Args: {\n value: V;\n isSelected: (option: V) => boolean;\n registerItem: (item: V) => void;\n unregisterItem: (item: V) => void;\n };\n Blocks: {\n default: [];\n };\n}\nlet Option = class Option<V> extends Component<OptionSignature<V>> {\n constructor(owner1: Owner, args1: OptionSignature<V>['Args']){\n super(owner1, args1);\n args1.registerItem(args1.value);\n registerDestructor(this, ()=>{\n args1.unregisterItem(args1.value);\n });\n }\n static{\n template(`\n <span role=\"option\" aria-selected={{if (@isSelected @value) \"true\"}}>\n {{yield}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport interface ListSignature<V> {\n Element: HTMLDivElement;\n Args: {\n multiple?: boolean;\n disabled?: boolean;\n value?: V | V[];\n update?: (value: V | V[]) => void;\n activateItem?: (value: V) => void;\n };\n Blocks: {\n default: [{\n Option: WithBoundArgs<typeof Option, 'isSelected' | 'registerItem' | 'unregisterItem'>;\n }];\n };\n}\nexport default class List<V> extends Component<ListSignature<V>> {\n Option = Option<V>;\n @tracked\n items: V[] = new TrackedArray();\n registerItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n isSelected = (option1: V)=>{\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option1);\n }\n return this.args.value === option1;\n };\n static{\n template(`\n <div\n class={{styles.list}}\n data-test-list\n ...attributes\n {{!@glint-ignore}}\n {{listbox\n items=this.items\n selection=@value\n multi=@multiple\n disabled=@disabled\n select=@update\n activateItem=@activateItem\n }}\n >\n {{yield\n (hash\n Option=(component\n this.Option\n isSelected=this.isSelected\n registerItem=this.registerItem\n unregisterItem=this.unregisterItem\n )\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9saXN0Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCB7IGxpc3Rib3ggfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvblNpZ25hdHVyZTxWPiB7XG4gIEVsZW1lbnQ6IEhUTUxPcHRpb25FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdmFsdWU6IFY7XG4gICAgaXNTZWxlY3RlZDogKG9wdGlvbjogVikgPT4gYm9vbGVhbjtcbiAgICByZWdpc3Rlckl0ZW06IChpdGVtOiBWKSA9PiB2b2lkO1xuICAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogVikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59XG5cbmNsYXNzIE9wdGlvbjxWPiBleHRlbmRzIENvbXBvbmVudDxPcHRpb25TaWduYXR1cmU8Vj4-IHtcbiAgY29uc3RydWN0b3Iob3duZXI6IE93bmVyLCBhcmdzOiBPcHRpb25TaWduYXR1cmU8Vj5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKGFyZ3MudmFsdWUpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0oYXJncy52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPHNwYW4gcm9sZT1cIm9wdGlvblwiIGFyaWEtc2VsZWN0ZWQ9e3tpZiAoQGlzU2VsZWN0ZWQgQHZhbHVlKSBcInRydWVcIn19PlxuICAgICAge3t5aWVsZH19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTaWduYXR1cmU8Vj4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmFsdWU_OiBWIHwgVltdO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogViB8IFZbXSkgPT4gdm9pZDtcbiAgICBhY3RpdmF0ZUl0ZW0_OiAodmFsdWU6IFYpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgT3B0aW9uOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBPcHRpb248Vj4sICdpc1NlbGVjdGVkJyB8ICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG4gICAgICB9XG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdDxWPiBleHRlbmRzIENvbXBvbmVudDxMaXN0U2lnbmF0dXJlPFY-PiB7XG4gIE9wdGlvbiA9IE9wdGlvbjxWPjtcblxuICBAdHJhY2tlZCBpdGVtczogVltdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIHJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgfTtcblxuICB1bnJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgaXNTZWxlY3RlZCA9IChvcHRpb246IFYpID0-IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFyZ3MudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZSA9PT0gb3B0aW9uO1xuICB9O1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz17e3N0eWxlcy5saXN0fX1cbiAgICAgIGRhdGEtdGVzdC1saXN0XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICB7eyFAZ2xpbnQtaWdub3JlfX1cbiAgICAgIHt7bGlzdGJveFxuICAgICAgICBpdGVtcz10aGlzLml0ZW1zXG4gICAgICAgIHNlbGVjdGlvbj1AdmFsdWVcbiAgICAgICAgbXVsdGk9QG11bHRpcGxlXG4gICAgICAgIGRpc2FibGVkPUBkaXNhYmxlZFxuICAgICAgICBzZWxlY3Q9QHVwZGF0ZVxuICAgICAgICBhY3RpdmF0ZUl0ZW09QGFjdGl2YXRlSXRlbVxuICAgICAgfX1cbiAgICA-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgT3B0aW9uPShjb21wb25lbnRcbiAgICAgICAgICAgIHRoaXMuT3B0aW9uXG4gICAgICAgICAgICBpc1NlbGVjdGVkPXRoaXMuaXNTZWxlY3RlZFxuICAgICAgICAgICAgcmVnaXN0ZXJJdGVtPXRoaXMucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgICB1bnJlZ2lzdGVySXRlbT10aGlzLnVucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxJQUFJLFFBQVEsaUJBQWlCO0FBRXRDLFNBQVMsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTLFlBQVksUUFBUSxvQkFBb0I7QUFFakQsT0FBTyxZQUFZLG9DQUFvQztBQUV2RCxZQUFZLFdBQVcsZUFBZTtBQUN0QyxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCLGdCQUFnQjtJQUMvQixTQUFTO0lBQ1Q7UUFDRSxPQUFPO1FBQ1AsYUFBYSxRQUFRLE1BQU0sT0FBTztRQUNsQyxlQUFlLE1BQU0sTUFBTSxJQUFJO1FBQy9CLGlCQUFpQixNQUFNLE1BQU0sSUFBSTs7SUFFbkM7UUFDRTs7O0FBSUosSUFBQSxBQUFNLFNBQU4sTUFBTSxPQUFPLFdBQVcsVUFBVSxnQkFBZ0I7SUFDaEQsWUFBWSxRQUFPLEtBQUssRUFBRSxPQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBRTtRQUMxRCxLQUFLLENBQUMsUUFBTztRQUViLE1BQUssWUFBWSxDQUFDLE1BQUssS0FBSztRQUU1QixtQkFBbUIsSUFBSSxFQUFFO1lBQ3ZCLE1BQUssY0FBYyxDQUFDLE1BQUssS0FBSztRQUNoQztJQUNGO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7OztFQUlWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQUpBO0FBS1o7QUFFQSxpQkFBaUIsY0FBYztJQUM3QixTQUFTO0lBQ1Q7UUFDRSxXQUFXLE9BQU87UUFDbEIsV0FBVyxPQUFPO1FBQ2xCLFFBQVEsSUFBSTtRQUNaLFVBQVUsT0FBTyxJQUFJLFFBQVEsSUFBSTtRQUNqQyxnQkFBZ0IsT0FBTyxNQUFNLElBQUk7O0lBRW5DO1FBQ0U7Z0JBRUksUUFBUSxxQkFBcUIsUUFBVyxlQUFlLGlCQUFpQjs7OztBQU1oRixlQUFlLE1BQU0sS0FBSyxXQUFXLFVBQVUsY0FBYztJQUMzRCxTQUFTLE9BQU8sR0FBRztJQUVuQixDQUFDO0lBQVEsT0FBTyxNQUFNLElBQUksZUFBZTtJQUV6QyxlQUFlLENBQUMsT0FBTTtRQUNwQiw0Q0FBNEM7UUFDNUMsS0FBSztZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2xCO0lBQ0YsRUFBRTtJQUVGLGlCQUFpQixDQUFDLE9BQU07UUFDdEIsNENBQTRDO1FBQzVDLEtBQUs7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFPO1FBQzlDO0lBQ0YsRUFBRTtJQUVGLGFBQWEsQ0FBQyxTQUFRO1FBQ3BCLElBQUksTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDbEM7UUFFQSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLO0lBQzdCLEVBQUU7SUFFRixNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTBCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0ExQkE7QUEyQloifQ"],"names":["Option","Component","constructor","owner1","args1","registerItem","value","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","List","g","this","prototype","tracked","TrackedArray","i","void 0","item1","next","items","push","splice","indexOf","isSelected","option1","Array","isArray","args","includes","scope","styles","listbox","hash"],"mappings":";;;;;;;;;;;;AA2BA,IAAAA,MAAM,GAAN,MAAMA,MAAA,SAAkBC,SAAA,CAA0B;EAChDC,WAAYC,CAAAA,MAAY,EAAEC,KAAgC,EAAE;IAC1D,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AAEbA,IAAAA,KAAA,CAAKC,YAAY,CAACD,KAAA,CAAKE,KAAK,CAAA,CAAA;IAE5BC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,KAAA,CAAKI,cAAc,CAACJ,KAAA,CAAKE,KAAK,CAAA,CAAA;AAChC,KAAA,CAAA,CAAA;AACF,GAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAIA,mHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAoBe,MAAMC,IAAA,SAAgBX,SAAA,CAAwB;AAC3DD,EAAAA,MAAA,GAASA,MAAA,CAAA;AAAU,EAAA;AAAAa,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,YAElBC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAqB,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAAJ,IAAA,YAAAK,KAAA,CAAA,EAAA;AAE1Bd,EAAAA,YAAA,GAAgBe,KAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,KAAA,CAAA,CAAA;AAClB,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAZ,EAAAA,cAAA,GAAkBY,KAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,KAAA,CAAO,EAAA,CAAA,CAAA,CAAA;AAC9C,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAM,EAAAA,UAAA,GAAcC,OAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACC,IAAI,CAACxB,KAAK,CAAG,EAAA;MAClC,OAAO,IAAI,CAACwB,IAAI,CAACxB,KAAK,CAACyB,QAAQ,CAACJ,OAAA,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,OAAO,IAAI,CAACG,IAAI,CAACxB,KAAK,KAAKqB,OAAA,CAAA;AAC7B,GAAA,CAAA;AAEA,EAAA;IAAAlB,oBAAA,CAAAC,kBAAA,CA0BA,sXAAA,EAAA;AAAAsB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,OAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAxB,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../src/components/list.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { listbox } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface OptionSignature<V> {\n Element: HTMLOptionElement;\n Args: {\n value: V;\n isSelected: (option: V) => boolean;\n registerItem: (item: V) => void;\n unregisterItem: (item: V) => void;\n };\n Blocks: {\n default: [];\n };\n}\nlet Option = class Option<V> extends Component<OptionSignature<V>> {\n constructor(owner1: Owner, args1: OptionSignature<V>['Args']){\n super(owner1, args1);\n args1.registerItem(args1.value);\n registerDestructor(this, ()=>{\n args1.unregisterItem(args1.value);\n });\n }\n static{\n template(`\n <span role=\"option\" aria-selected={{if (@isSelected @value) \"true\"}}>\n {{yield}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport interface ListSignature<V> {\n Element: HTMLDivElement;\n Args: {\n multiple?: boolean;\n disabled?: boolean;\n value?: V | V[];\n update?: (value: V | V[]) => void;\n activateItem?: (value: V) => void;\n };\n Blocks: {\n default: [{\n Option: WithBoundArgs<typeof Option, 'isSelected' | 'registerItem' | 'unregisterItem'>;\n }];\n };\n}\nexport default class List<V> extends Component<ListSignature<V>> {\n Option = Option<V>;\n @tracked\n items: V[] = new TrackedArray();\n registerItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n isSelected = (option1: V)=>{\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option1);\n }\n return this.args.value === option1;\n };\n static{\n template(`\n <div\n class={{styles.list}}\n data-test-list\n ...attributes\n {{!@glint-ignore}}\n {{listbox\n items=this.items\n selection=@value\n multi=@multiple\n disabled=@disabled\n select=@update\n activateItem=@activateItem\n }}\n >\n {{yield\n (hash\n Option=(component\n this.Option\n isSelected=this.isSelected\n registerItem=this.registerItem\n unregisterItem=this.unregisterItem\n )\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9saXN0Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCB7IGxpc3Rib3ggfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvblNpZ25hdHVyZTxWPiB7XG4gIEVsZW1lbnQ6IEhUTUxPcHRpb25FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdmFsdWU6IFY7XG4gICAgaXNTZWxlY3RlZDogKG9wdGlvbjogVikgPT4gYm9vbGVhbjtcbiAgICByZWdpc3Rlckl0ZW06IChpdGVtOiBWKSA9PiB2b2lkO1xuICAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogVikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59XG5cbmNsYXNzIE9wdGlvbjxWPiBleHRlbmRzIENvbXBvbmVudDxPcHRpb25TaWduYXR1cmU8Vj4-IHtcbiAgY29uc3RydWN0b3Iob3duZXI6IE93bmVyLCBhcmdzOiBPcHRpb25TaWduYXR1cmU8Vj5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKGFyZ3MudmFsdWUpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0oYXJncy52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPHNwYW4gcm9sZT1cIm9wdGlvblwiIGFyaWEtc2VsZWN0ZWQ9e3tpZiAoQGlzU2VsZWN0ZWQgQHZhbHVlKSBcInRydWVcIn19PlxuICAgICAge3t5aWVsZH19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTaWduYXR1cmU8Vj4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmFsdWU_OiBWIHwgVltdO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogViB8IFZbXSkgPT4gdm9pZDtcbiAgICBhY3RpdmF0ZUl0ZW0_OiAodmFsdWU6IFYpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgT3B0aW9uOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBPcHRpb248Vj4sICdpc1NlbGVjdGVkJyB8ICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG4gICAgICB9XG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdDxWPiBleHRlbmRzIENvbXBvbmVudDxMaXN0U2lnbmF0dXJlPFY-PiB7XG4gIE9wdGlvbiA9IE9wdGlvbjxWPjtcblxuICBAdHJhY2tlZCBpdGVtczogVltdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIHJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgfTtcblxuICB1bnJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgaXNTZWxlY3RlZCA9IChvcHRpb246IFYpID0-IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFyZ3MudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZSA9PT0gb3B0aW9uO1xuICB9O1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz17e3N0eWxlcy5saXN0fX1cbiAgICAgIGRhdGEtdGVzdC1saXN0XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICB7eyFAZ2xpbnQtaWdub3JlfX1cbiAgICAgIHt7bGlzdGJveFxuICAgICAgICBpdGVtcz10aGlzLml0ZW1zXG4gICAgICAgIHNlbGVjdGlvbj1AdmFsdWVcbiAgICAgICAgbXVsdGk9QG11bHRpcGxlXG4gICAgICAgIGRpc2FibGVkPUBkaXNhYmxlZFxuICAgICAgICBzZWxlY3Q9QHVwZGF0ZVxuICAgICAgICBhY3RpdmF0ZUl0ZW09QGFjdGl2YXRlSXRlbVxuICAgICAgfX1cbiAgICA-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgT3B0aW9uPShjb21wb25lbnRcbiAgICAgICAgICAgIHRoaXMuT3B0aW9uXG4gICAgICAgICAgICBpc1NlbGVjdGVkPXRoaXMuaXNTZWxlY3RlZFxuICAgICAgICAgICAgcmVnaXN0ZXJJdGVtPXRoaXMucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgICB1bnJlZ2lzdGVySXRlbT10aGlzLnVucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxJQUFJLFFBQVEsaUJBQWlCO0FBRXRDLFNBQVMsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTLFlBQVksUUFBUSxvQkFBb0I7QUFFakQsT0FBTyxZQUFZLG9DQUFvQztBQUV2RCxZQUFZLFdBQVcsZUFBZTtBQUN0QyxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCLGdCQUFnQjtJQUMvQixTQUFTO0lBQ1Q7UUFDRSxPQUFPO1FBQ1AsYUFBYSxRQUFRLE1BQU0sT0FBTztRQUNsQyxlQUFlLE1BQU0sTUFBTSxJQUFJO1FBQy9CLGlCQUFpQixNQUFNLE1BQU0sSUFBSTs7SUFFbkM7UUFDRTs7O0FBSUosSUFBQSxBQUFNLFNBQU4sTUFBTSxPQUFPLFdBQVcsVUFBVSxnQkFBZ0I7SUFDaEQsWUFBWSxRQUFPLEtBQUssRUFBRSxPQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBRTtRQUMxRCxLQUFLLENBQUMsUUFBTztRQUViLE1BQUssWUFBWSxDQUFDLE1BQUssS0FBSztRQUU1QixtQkFBbUIsSUFBSSxFQUFFO1lBQ3ZCLE1BQUssY0FBYyxDQUFDLE1BQUssS0FBSztRQUNoQztJQUNGO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7OztFQUlWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQUpBO0FBS1o7QUFFQSxpQkFBaUIsY0FBYztJQUM3QixTQUFTO0lBQ1Q7UUFDRSxXQUFXLE9BQU87UUFDbEIsV0FBVyxPQUFPO1FBQ2xCLFFBQVEsSUFBSTtRQUNaLFVBQVUsT0FBTyxJQUFJLFFBQVEsSUFBSTtRQUNqQyxnQkFBZ0IsT0FBTyxNQUFNLElBQUk7O0lBRW5DO1FBQ0U7Z0JBRUksUUFBUSxxQkFBcUIsUUFBVyxlQUFlLGlCQUFpQjs7OztBQU1oRixlQUFlLE1BQU0sS0FBSyxXQUFXLFVBQVUsY0FBYztJQUMzRCxTQUFTLE9BQU8sR0FBRztJQUVuQixDQUFDO0lBQVEsT0FBTyxNQUFNLElBQUksZUFBZTtJQUV6QyxlQUFlLENBQUMsT0FBTTtRQUNwQiw0Q0FBNEM7UUFDNUMsS0FBSztZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2xCO0lBQ0YsRUFBRTtJQUVGLGlCQUFpQixDQUFDLE9BQU07UUFDdEIsNENBQTRDO1FBQzVDLEtBQUs7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFPO1FBQzlDO0lBQ0YsRUFBRTtJQUVGLGFBQWEsQ0FBQyxTQUFRO1FBQ3BCLElBQUksTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDbEM7UUFFQSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLO0lBQzdCLEVBQUU7SUFFRixNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTBCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0ExQkE7QUEyQloifQ"],"names":["Option","Component","constructor","owner1","args1","registerItem","value","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","List","g","prototype","tracked","TrackedArray","i","void 0","item1","next","items","push","splice","indexOf","isSelected","option1","Array","isArray","args","includes","scope","styles","listbox","hash"],"mappings":";;;;;;;;;;;;AA2BA,IAAAA,MAAM,GAAN,MAAMA,MAAA,SAAkBC,SAAA,CAA0B;EAChDC,WAAYC,CAAAA,MAAY,EAAEC,KAAgC,EAAE;IAC1D,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AAEbA,IAAAA,KAAA,CAAKC,YAAY,CAACD,KAAA,CAAKE,KAAK,CAAA,CAAA;IAE5BC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,KAAA,CAAKI,cAAc,CAACJ,KAAA,CAAKE,KAAK,CAAA,CAAA;AAChC,KAAA,CAAA,CAAA;AACF,GAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAIA,mHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAoBe,MAAMC,IAAA,SAAgBX,SAAA,CAAwB;AAC3DD,EAAAA,MAAA,GAASA,MAAA,CAAA;AAAU,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAElBC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAqB,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAE1Bb,EAAAA,YAAA,GAAgBc,KAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,KAAA,CAAA,CAAA;AAClB,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAX,EAAAA,cAAA,GAAkBW,KAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,KAAA,CAAO,EAAA,CAAA,CAAA,CAAA;AAC9C,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAM,EAAAA,UAAA,GAAcC,OAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACC,IAAI,CAACvB,KAAK,CAAG,EAAA;MAClC,OAAO,IAAI,CAACuB,IAAI,CAACvB,KAAK,CAACwB,QAAQ,CAACJ,OAAA,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,OAAO,IAAI,CAACG,IAAI,CAACvB,KAAK,KAAKoB,OAAA,CAAA;AAC7B,GAAA,CAAA;AAEA,EAAA;IAAAjB,oBAAA,CAAAC,kBAAA,CA0BA,sXAAA,EAAA;AAAAqB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,OAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAvB,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -3,8 +3,11 @@ import { tracked } from '@glimmer/tracking';
3
3
  import { registerDestructor } from '@ember/destroyable';
4
4
  import { hash } from '@ember/helper';
5
5
  import { next } from '@ember/runloop';
6
+ import { service } from '@ember/service';
7
+ import { htmlSafe } from '@ember/template';
6
8
  import { menu } from 'ember-aria-voyager';
7
9
  import { CommandElement } from 'ember-command';
10
+ import { consume } from 'ember-provide-consume-context';
8
11
  import { TrackedArray } from 'tracked-built-ins';
9
12
  import styles from '@hokulea/core/controls.module.css';
10
13
  import { d as disabled } from '../disabled-B_FQ0Z51.js';
@@ -71,12 +74,23 @@ let MenuItem = class MenuItem extends Component {
71
74
  /* eslint-enable @typescript-eslint/no-use-before-define */
72
75
 
73
76
  class Menu extends Component {
77
+ static {
78
+ g(this.prototype, "fastboot", [service]);
79
+ }
80
+ #fastboot = (i(this, "fastboot"), void 0);
81
+ static {
82
+ g(this.prototype, "withinAppHeader", [consume('hokulea-app-header')]);
83
+ }
84
+ #withinAppHeader = (i(this, "withinAppHeader"), void 0);
74
85
  static {
75
86
  g(this.prototype, "items", [tracked], function () {
76
87
  return new TrackedArray();
77
88
  });
78
89
  }
79
90
  #items = (i(this, "items"), void 0);
91
+ get shallHide() {
92
+ return this.fastboot?.isFastBoot && this.withinAppHeader === true;
93
+ }
80
94
  registerItem = item1 => {
81
95
  // eslint-disable-next-line ember/no-runloop
82
96
  next(() => {
@@ -90,9 +104,10 @@ class Menu extends Component {
90
104
  });
91
105
  };
92
106
  static {
93
- setComponentTemplate(precompileTemplate("\n <div class={{styles.menu}} data-test-menu ...attributes {{menu items=this.items disabled=@disabled}}>\n {{yield (hash Item=(component MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem))}}\n </div>\n ", {
107
+ setComponentTemplate(precompileTemplate("\n <div class={{styles.menu}} data-test-menu ...attributes {{menu items=this.items disabled=@disabled}} style={{if this.shallHide (htmlSafe \"display: none\")}}>\n {{yield (hash Item=(component MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem))}}\n </div>\n ", {
94
108
  scope: () => ({
95
109
  styles,
110
+ htmlSafe,
96
111
  menu,
97
112
  hash,
98
113
  MenuItem
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sources":["../../src/components/menu.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { menu } from 'ember-aria-voyager';\nimport { CommandElement } from 'ember-command';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport disabled from '../-private/modifiers/disabled';\nimport popover from '../helpers/popover';\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n/* eslint-disable @typescript-eslint/no-use-before-define */ let MenuItem = class MenuItem extends Component<MenuItemSignature> {\n constructor(owner1: Owner, args1: MenuItemSignature['Args']){\n super(owner1, args1);\n args1.registerItem(this);\n registerDestructor(this, ()=>{\n args1.unregisterItem(this);\n });\n }\n static{\n template(`\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n {{~yield to=\"label\"~}}\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <CommandElement\n @command={{@push}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n {{~yield~}}\n </CommandElement>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\n/* eslint-enable @typescript-eslint/no-use-before-define */ export interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\nexport default class Menu extends Component<MenuSignature> {\n @tracked\n items: MenuItem[] = new TrackedArray();\n registerItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n static{\n template(`\n <div\n class={{styles.menu}}\n data-test-menu\n ...attributes\n {{menu items=this.items disabled=@disabled}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9tZW51Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCB7IG1lbnUgfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgQ29tbWFuZEVsZW1lbnQgfSBmcm9tICdlbWJlci1jb21tYW5kJztcbmltcG9ydCB7IFRyYWNrZWRBcnJheSB9IGZyb20gJ3RyYWNrZWQtYnVpbHQtaW5zJztcblxuaW1wb3J0IHN0eWxlcyBmcm9tICdAaG9rdWxlYS9jb3JlL2NvbnRyb2xzLm1vZHVsZS5jc3MnO1xuXG5pbXBvcnQgZGlzYWJsZWQgZnJvbSAnLi4vLXByaXZhdGUvbW9kaWZpZXJzL2Rpc2FibGVkJztcbmltcG9ydCBwb3BvdmVyIGZyb20gJy4uL2hlbHBlcnMvcG9wb3Zlcic7XG5cbmltcG9ydCB0eXBlIHsgTWVudUl0ZW1BcmdzLCBNZW51SXRlbUJsb2NrcywgTWVudUl0ZW1FbGVtZW50IH0gZnJvbSAnLi8tbWVudSc7XG5pbXBvcnQgdHlwZSBPd25lciBmcm9tICdAZW1iZXIvb3duZXInO1xuaW1wb3J0IHR5cGUgeyBXaXRoQm91bmRBcmdzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxuZXhwb3J0IHR5cGUgTWVudURlZmF1bHRCbG9jayA9IHtcbiAgSXRlbTogV2l0aEJvdW5kQXJnczx0eXBlb2YgTWVudUl0ZW0sICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogTWVudUl0ZW1FbGVtZW50O1xuICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4gICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4gICAgdW5yZWdpc3Rlckl0ZW06IChpdGVtOiBNZW51SXRlbSkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiBNZW51SXRlbUJsb2NrcyAmIHtcbiAgICBtZW51PzogW01lbnVEZWZhdWx0QmxvY2tdO1xuICB9O1xufVxuXG4vLyBiZWxvdyBhcmUgYXR0ZW1wdHMgYXQgY29uZGl0aW9uYWwgdHlwaW5nIGJhc2VkIG9uIHByb3ZpZGVkIGJsb2NrcyBpbiBkeW5hbWljIGludm9jYXRpb25cblxuLy8gdHlwZSBNZW51SXRlbUFyZ3MgPSB7XG4vLyAgIGRpc2FibGVkPzogYm9vbGVhbjtcbi8vICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyB9O1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlPFQgPSB7fT4ge1xuLy8gICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50O1xuLy8gICBBcmdzOiBUIGV4dGVuZHMgeyBCbG9ja3M6IHsgZGVmYXVsdDogW10gfSB9XG4vLyAgICAgPyBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9XG4vLyAgICAgOiBNZW51SXRlbUFyZ3M7XG4vLyAgIEJsb2NrczogVCBleHRlbmRzIHsgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH0gfVxuLy8gICAgID8geyBkZWZhdWx0OiBbXSB9XG4vLyAgICAgOiB7IGxhYmVsOiBbXTsgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdIH07XG4vLyB9XG5cbi8vICAmIChcbi8vICAgfCB7XG4vLyAgICAgICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9O1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGRlZmF1bHQ6IFtdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyAgIHwge1xuLy8gICAgICAgQXJnczogTWVudUl0ZW1BcmdzO1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGxhYmVsOiBbXTtcbi8vICAgICAgICAgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyApO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50PE1lbnVJdGVtU2lnbmF0dXJlPiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiBPd25lciwgYXJnczogTWVudUl0ZW1TaWduYXR1cmVbJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKHRoaXMpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGhhcy1ibG9jayBcIm1lbnVcIil9fVxuICAgICAge3sjbGV0IChwb3BvdmVyIHBvc2l0aW9uPVwicmlnaHQtc3RhcnRcIikgYXMgfHB8fX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIHt7ZGlzYWJsZWQgd2hlbj0oaWYgQGRpc2FibGVkIEBkaXNhYmxlZCBmYWxzZSl9fVxuICAgICAgICAgIHt7cC50cmlnZ2VyfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt7fnlpZWxkIHRvPVwibGFiZWxcIn59fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8TWVudSB7e3AudGFyZ2V0fX0gYXMgfG18PlxuICAgICAgICAgIHt7eWllbGQgbSB0bz1cIm1lbnVcIn19XG4gICAgICAgIDwvTWVudT5cbiAgICAgIHt7L2xldH19XG4gICAge3tlbHNlfX1cbiAgICAgIDxDb21tYW5kRWxlbWVudFxuICAgICAgICBAY29tbWFuZD17e0BwdXNofX1cbiAgICAgICAge3tkaXNhYmxlZCB3aGVuPShpZiBAZGlzYWJsZWQgQGRpc2FibGVkIGZhbHNlKX19XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICA-XG4gICAgICAgIHt7fnlpZWxkfn19XG4gICAgICA8L0NvbW1hbmRFbGVtZW50PlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cbn1cbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgZGlzYWJsZWQ_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbTWVudURlZmF1bHRCbG9ja107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnUgZXh0ZW5kcyBDb21wb25lbnQ8TWVudVNpZ25hdHVyZT4ge1xuICBAdHJhY2tlZCBpdGVtczogTWVudUl0ZW1bXSA9IG5ldyBUcmFja2VkQXJyYXkoKTtcblxuICByZWdpc3Rlckl0ZW0gPSAoaXRlbTogTWVudUl0ZW0pID0-IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZW1iZXIvbm8tcnVubG9vcFxuICAgIG5leHQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVucmVnaXN0ZXJJdGVtID0gKGl0ZW06IE1lbnVJdGVtKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPXt7c3R5bGVzLm1lbnV9fVxuICAgICAgZGF0YS10ZXN0LW1lbnVcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIHt7bWVudSBpdGVtcz10aGlzLml0ZW1zIGRpc2FibGVkPUBkaXNhYmxlZH19XG4gICAgPlxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIEl0ZW09KGNvbXBvbmVudFxuICAgICAgICAgICAgTWVudUl0ZW0gcmVnaXN0ZXJJdGVtPXRoaXMucmVnaXN0ZXJJdGVtIHVucmVnaXN0ZXJJdGVtPXRoaXMudW5yZWdpc3Rlckl0ZW1cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["MenuItem","Component","constructor","owner1","args1","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","scope","popover","disabled","Menu","CommandElement","strictMode","g","this","prototype","tracked","TrackedArray","i","void 0","item1","next","items","push","splice","indexOf","styles","menu","hash"],"mappings":";;;;;;;;;;;;;;;AAkCA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,IAAAA,QAAM,GAAN,MAAMA,QAAA,SAAiBC,SAAA,CAAU;EAC/BC,WAAYC,CAAAA,MAAY,EAAEC,KAA+B,EAAE;IACzD,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;IAEbA,KAAA,CAAKC,YAAY,CAAC,IAAI,CAAA,CAAA;IAEtBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;MACvBF,KAAA,CAAKG,cAAc,CAAC,IAAI,CAAA,CAAA;AAC1B,KAAA,CAAA,CAAA;AACF,GAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA0BA,okBAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAC,QAAAA,cAAAA;AAAA,OAAA,CAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AACA;;AAYe,MAAMF,IAAA,SAAaZ,SAAA,CAAU;AAAA,EAAA;AAAAe,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,YACzCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAAJ,IAAA,YAAAK,KAAA,CAAA,EAAA;AAEjCjB,EAAAA,YAAA,GAAgBkB,KAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,KAAA,CAAA,CAAA;AAClB,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAhB,EAAAA,cAAA,GAAkBgB,KAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,KAAA,CAAO,EAAA,CAAA,CAAA,CAAA;AAC9C,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEA,EAAA;IAAAf,oBAAA,CAAAC,kBAAA,CAeA,iPAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAmB,MAAA;QAAAC,IAAA;QAAAC,IAAA;AAAA/B,QAAAA,QAAAA;AAAA,OAAA,CAAA;MAAAe,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"menu.js","sources":["../../src/components/menu.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { menu } from 'ember-aria-voyager';\nimport { CommandElement } from 'ember-command';\nimport { consume } from 'ember-provide-consume-context';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport disabled from '../-private/modifiers/disabled';\nimport popover from '../helpers/popover';\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport type FastBoot from 'ember-cli-fastboot/services/fastboot';\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n/* eslint-disable @typescript-eslint/no-use-before-define */ let MenuItem = class MenuItem extends Component<MenuItemSignature> {\n constructor(owner1: Owner, args1: MenuItemSignature['Args']){\n super(owner1, args1);\n args1.registerItem(this);\n registerDestructor(this, ()=>{\n args1.unregisterItem(this);\n });\n }\n static{\n template(`\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n {{~yield to=\"label\"~}}\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <CommandElement\n @command={{@push}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n {{~yield~}}\n </CommandElement>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\n/* eslint-enable @typescript-eslint/no-use-before-define */ export interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\nexport default class Menu extends Component<MenuSignature> {\n @service\n fastboot?: FastBoot;\n @consume('hokulea-app-header')\n withinAppHeader: boolean;\n @tracked\n items: MenuItem[] = new TrackedArray();\n get shallHide() {\n return this.fastboot?.isFastBoot && this.withinAppHeader === true;\n }\n registerItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n static{\n template(`\n <div\n class={{styles.menu}}\n data-test-menu\n ...attributes\n {{menu items=this.items disabled=@disabled}}\n style={{if this.shallHide (htmlSafe \"display: none\")}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9tZW51Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5pbXBvcnQgeyBzZXJ2aWNlIH0gZnJvbSAnQGVtYmVyL3NlcnZpY2UnO1xuaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuXG5pbXBvcnQgeyBtZW51IH0gZnJvbSAnZW1iZXItYXJpYS12b3lhZ2VyJztcbmltcG9ydCB7IENvbW1hbmRFbGVtZW50IH0gZnJvbSAnZW1iZXItY29tbWFuZCc7XG5pbXBvcnQgeyBjb25zdW1lIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCBkaXNhYmxlZCBmcm9tICcuLi8tcHJpdmF0ZS9tb2RpZmllcnMvZGlzYWJsZWQnO1xuaW1wb3J0IHBvcG92ZXIgZnJvbSAnLi4vaGVscGVycy9wb3BvdmVyJztcblxuaW1wb3J0IHR5cGUgeyBNZW51SXRlbUFyZ3MsIE1lbnVJdGVtQmxvY2tzLCBNZW51SXRlbUVsZW1lbnQgfSBmcm9tICcuLy1tZW51JztcbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHR5cGUgRmFzdEJvb3QgZnJvbSAnZW1iZXItY2xpLWZhc3Rib290L3NlcnZpY2VzL2Zhc3Rib290JztcblxuZXhwb3J0IHR5cGUgTWVudURlZmF1bHRCbG9jayA9IHtcbiAgSXRlbTogV2l0aEJvdW5kQXJnczx0eXBlb2YgTWVudUl0ZW0sICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogTWVudUl0ZW1FbGVtZW50O1xuICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4gICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4gICAgdW5yZWdpc3Rlckl0ZW06IChpdGVtOiBNZW51SXRlbSkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiBNZW51SXRlbUJsb2NrcyAmIHtcbiAgICBtZW51PzogW01lbnVEZWZhdWx0QmxvY2tdO1xuICB9O1xufVxuXG4vLyBiZWxvdyBhcmUgYXR0ZW1wdHMgYXQgY29uZGl0aW9uYWwgdHlwaW5nIGJhc2VkIG9uIHByb3ZpZGVkIGJsb2NrcyBpbiBkeW5hbWljIGludm9jYXRpb25cblxuLy8gdHlwZSBNZW51SXRlbUFyZ3MgPSB7XG4vLyAgIGRpc2FibGVkPzogYm9vbGVhbjtcbi8vICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyB9O1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlPFQgPSB7fT4ge1xuLy8gICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50O1xuLy8gICBBcmdzOiBUIGV4dGVuZHMgeyBCbG9ja3M6IHsgZGVmYXVsdDogW10gfSB9XG4vLyAgICAgPyBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9XG4vLyAgICAgOiBNZW51SXRlbUFyZ3M7XG4vLyAgIEJsb2NrczogVCBleHRlbmRzIHsgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH0gfVxuLy8gICAgID8geyBkZWZhdWx0OiBbXSB9XG4vLyAgICAgOiB7IGxhYmVsOiBbXTsgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdIH07XG4vLyB9XG5cbi8vICAmIChcbi8vICAgfCB7XG4vLyAgICAgICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9O1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGRlZmF1bHQ6IFtdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyAgIHwge1xuLy8gICAgICAgQXJnczogTWVudUl0ZW1BcmdzO1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGxhYmVsOiBbXTtcbi8vICAgICAgICAgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyApO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50PE1lbnVJdGVtU2lnbmF0dXJlPiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiBPd25lciwgYXJnczogTWVudUl0ZW1TaWduYXR1cmVbJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKHRoaXMpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGhhcy1ibG9jayBcIm1lbnVcIil9fVxuICAgICAge3sjbGV0IChwb3BvdmVyIHBvc2l0aW9uPVwicmlnaHQtc3RhcnRcIikgYXMgfHB8fX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIHt7ZGlzYWJsZWQgd2hlbj0oaWYgQGRpc2FibGVkIEBkaXNhYmxlZCBmYWxzZSl9fVxuICAgICAgICAgIHt7cC50cmlnZ2VyfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt7fnlpZWxkIHRvPVwibGFiZWxcIn59fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8TWVudSB7e3AudGFyZ2V0fX0gYXMgfG18PlxuICAgICAgICAgIHt7eWllbGQgbSB0bz1cIm1lbnVcIn19XG4gICAgICAgIDwvTWVudT5cbiAgICAgIHt7L2xldH19XG4gICAge3tlbHNlfX1cbiAgICAgIDxDb21tYW5kRWxlbWVudFxuICAgICAgICBAY29tbWFuZD17e0BwdXNofX1cbiAgICAgICAge3tkaXNhYmxlZCB3aGVuPShpZiBAZGlzYWJsZWQgQGRpc2FibGVkIGZhbHNlKX19XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICA-XG4gICAgICAgIHt7fnlpZWxkfn19XG4gICAgICA8L0NvbW1hbmRFbGVtZW50PlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cbn1cbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgZGlzYWJsZWQ_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbTWVudURlZmF1bHRCbG9ja107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnUgZXh0ZW5kcyBDb21wb25lbnQ8TWVudVNpZ25hdHVyZT4ge1xuICBAc2VydmljZSBkZWNsYXJlIGZhc3Rib290PzogRmFzdEJvb3Q7XG5cbiAgQGNvbnN1bWUoJ2hva3VsZWEtYXBwLWhlYWRlcicpIGRlY2xhcmUgd2l0aGluQXBwSGVhZGVyOiBib29sZWFuO1xuXG4gIEB0cmFja2VkIGl0ZW1zOiBNZW51SXRlbVtdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIGdldCBzaGFsbEhpZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmFzdGJvb3Q_LmlzRmFzdEJvb3QgJiYgdGhpcy53aXRoaW5BcHBIZWFkZXIgPT09IHRydWU7XG4gIH1cblxuICByZWdpc3Rlckl0ZW0gPSAoaXRlbTogTWVudUl0ZW0pID0-IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZW1iZXIvbm8tcnVubG9vcFxuICAgIG5leHQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVucmVnaXN0ZXJJdGVtID0gKGl0ZW06IE1lbnVJdGVtKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPXt7c3R5bGVzLm1lbnV9fVxuICAgICAgZGF0YS10ZXN0LW1lbnVcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIHt7bWVudSBpdGVtcz10aGlzLml0ZW1zIGRpc2FibGVkPUBkaXNhYmxlZH19XG4gICAgICBzdHlsZT17e2lmIHRoaXMuc2hhbGxIaWRlIChodG1sU2FmZSBcImRpc3BsYXk6IG5vbmVcIil9fVxuICAgID5cbiAgICAgIHt7eWllbGRcbiAgICAgICAgKGhhc2hcbiAgICAgICAgICBJdGVtPShjb21wb25lbnRcbiAgICAgICAgICAgIE1lbnVJdGVtIHJlZ2lzdGVySXRlbT10aGlzLnJlZ2lzdGVySXRlbSB1bnJlZ2lzdGVySXRlbT10aGlzLnVucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxJQUFJLFFBQVEsaUJBQWlCO0FBQ3RDLFNBQVMsT0FBTyxRQUFRLGlCQUFpQjtBQUN6QyxTQUFTLFFBQVEsUUFBUSxrQkFBa0I7QUFFM0MsU0FBUyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVMsY0FBYyxRQUFRLGdCQUFnQjtBQUMvQyxTQUFTLE9BQU8sUUFBUSxnQ0FBZ0M7QUFDeEQsU0FBUyxZQUFZLFFBQVEsb0JBQW9CO0FBRWpELE9BQU8sWUFBWSxvQ0FBb0M7QUFFdkQsT0FBTyxjQUFjLGlDQUFpQztBQUN0RCxPQUFPLGFBQWEscUJB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"],"names":["MenuItem","Component","constructor","owner1","args1","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","scope","popover","disabled","Menu","CommandElement","strictMode","g","prototype","service","i","void 0","consume","tracked","TrackedArray","shallHide","fastboot","isFastBoot","withinAppHeader","item1","next","items","push","splice","indexOf","styles","htmlSafe","menu","hash"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sources":["../../src/components/page.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { element } from 'ember-element-helper';\nimport { consume, provide } from 'ember-provide-consume-context';\nimport styles from '@hokulea/core/layouts.module.css';\nimport typo from '@hokulea/core/typography.module.css';\nimport { or } from '../-private/helpers';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Link } from 'ember-link';\ninterface NavLinkSignature {\n Args: {\n link: Link;\n };\n Blocks: {\n default: [];\n };\n}\nconst NavLink: TOC<NavLinkSignature> = template(`\n <a href={{@link.url}} {{on \"click\" @link.open}} aria-current={{if @link.isActive \"page\"}}>\n {{yield}}\n </a>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nlet PageElement = class PageElement extends Component<{\n Element: HTMLElement;\n Blocks: {\n default: [];\n };\n}> {\n @consume('page-root')\n useMain: boolean;\n @provide('page-inside')\n get pageInside() {\n return true;\n }\n static{\n template(`\n {{#let (element (if this.useMain \"main\" \"section\")) as |Element|}}\n <Element ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\ninterface PageSignature {\n Element: HTMLElement;\n Args: {\n title?: string;\n description?: string;\n };\n Blocks: {\n title?: [];\n description?: [];\n nav?: [typeof NavLink];\n content?: [];\n default?: [];\n };\n}\nlet Page = class Page extends Component<PageSignature> {\n @consume('page-inside')\n insidePage: boolean;\n @provide('page-root')\n get rootPage() {\n return this.insidePage ? false : true;\n }\n static{\n template(`\n <PageElement class={{styles.page}} ...attributes data-test-page>\n {{#if\n (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))\n }}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n\n {{#if (has-block \"nav\")}}\n <nav>\n {{yield NavLink to=\"nav\"}}\n </nav>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.flow}}\" part=\"content\">\n {{yield to=\"content\"}}\n {{yield}}\n </div>\n </PageElement>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport default Page;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9wYWdlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB7IGVsZW1lbnQgfSBmcm9tICdlbWJlci1lbGVtZW50LWhlbHBlcic7XG5pbXBvcnQgeyBjb25zdW1lLCBwcm92aWRlIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvbGF5b3V0cy5tb2R1bGUuY3NzJztcbmltcG9ydCB0eXBvIGZyb20gJ0Bob2t1bGVhL2NvcmUvdHlwb2dyYXBoeS5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHsgb3IgfSBmcm9tICcuLi8tcHJpdmF0ZS9oZWxwZXJzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBMaW5rIH0gZnJvbSAnZW1iZXItbGluayc7XG5cbmludGVyZmFjZSBOYXZMaW5rU2lnbmF0dXJlIHtcbiAgQXJnczoge1xuICAgIGxpbms6IExpbms7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5jb25zdCBOYXZMaW5rOiBUT0M8TmF2TGlua1NpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxhIGhyZWY9e3tAbGluay51cmx9fSB7e29uIFwiY2xpY2tcIiBAbGluay5vcGVufX0gYXJpYS1jdXJyZW50PXt7aWYgQGxpbmsuaXNBY3RpdmUgXCJwYWdlXCJ9fT5cbiAgICB7e3lpZWxkfX1cbiAgPC9hPlxuPC90ZW1wbGF0ZT47XG5cbmNsYXNzIFBhZ2VFbGVtZW50IGV4dGVuZHMgQ29tcG9uZW50PHsgRWxlbWVudDogSFRNTEVsZW1lbnQ7IEJsb2NrczogeyBkZWZhdWx0OiBbXSB9IH0-IHtcbiAgQGNvbnN1bWUoJ3BhZ2Utcm9vdCcpIGRlY2xhcmUgdXNlTWFpbjogYm9vbGVhbjtcblxuICBAcHJvdmlkZSgncGFnZS1pbnNpZGUnKVxuICBnZXQgcGFnZUluc2lkZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKGVsZW1lbnQgKGlmIHRoaXMudXNlTWFpbiBcIm1haW5cIiBcInNlY3Rpb25cIikpIGFzIHxFbGVtZW50fH19XG4gICAgICA8RWxlbWVudCAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICB7e3lpZWxkfX1cbiAgICAgIDwvRWxlbWVudD5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5pbnRlcmZhY2UgUGFnZVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdGl0bGU_OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24_OiBzdHJpbmc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIHRpdGxlPzogW107XG4gICAgZGVzY3JpcHRpb24_OiBbXTtcbiAgICBuYXY_OiBbdHlwZW9mIE5hdkxpbmtdO1xuICAgIGNvbnRlbnQ_OiBbXTtcbiAgICBkZWZhdWx0PzogW107XG4gIH07XG59XG5cbmNsYXNzIFBhZ2UgZXh0ZW5kcyBDb21wb25lbnQ8UGFnZVNpZ25hdHVyZT4ge1xuICBAY29uc3VtZSgncGFnZS1pbnNpZGUnKSBkZWNsYXJlIGluc2lkZVBhZ2U6IGJvb2xlYW47XG5cbiAgQHByb3ZpZGUoJ3BhZ2Utcm9vdCcpXG4gIGdldCByb290UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnNpZGVQYWdlID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxQYWdlRWxlbWVudCBjbGFzcz17e3N0eWxlcy5wYWdlfX0gLi4uYXR0cmlidXRlcyBkYXRhLXRlc3QtcGFnZT5cbiAgICAgIHt7I2lmXG4gICAgICAgIChvciBAdGl0bGUgQGRlc2NyaXB0aW9uIChoYXMtYmxvY2sgXCJ0aXRsZVwiKSAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgKGhhcy1ibG9jayBcIm5hdlwiKSlcbiAgICAgIH19XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9e3tzdHlsZXMucGFnZUNvbnRlbnR9fT5cbiAgICAgICAgICA8aDEgY2xhc3M9e3t0eXBvLmRpc3BsYXl9fT5cbiAgICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJ0aXRsZVwiKX19XG4gICAgICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgICAgIHt7ZWxzZSBpZiBAdGl0bGV9fVxuICAgICAgICAgICAgICB7e0B0aXRsZX19XG4gICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgPC9oMT5cblxuICAgICAgICAgIHt7I2lmIChvciAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgQGRlc2NyaXB0aW9uKX19XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3sjaWYgKGhhcy1ibG9jayBcImRlc2NyaXB0aW9uXCIpfX1cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgIHt7ZWxzZSBpZiBAZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgIHt7QGRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIHt7L2lmfX1cblxuICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJuYXZcIil9fVxuICAgICAgICAgICAgPG5hdj5cbiAgICAgICAgICAgICAge3t5aWVsZCBOYXZMaW5rIHRvPVwibmF2XCJ9fVxuICAgICAgICAgICAgPC9uYXY-XG4gICAgICAgICAge3svaWZ9fVxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgIHt7L2lmfX1cblxuICAgICAgPGRpdiBjbGFzcz1cInt7c3R5bGVzLnBhZ2VDb250ZW50fX0ge3tzdHlsZXMuZmxvd319XCIgcGFydD1cImNvbnRlbnRcIj5cbiAgICAgICAge3t5aWVsZCB0bz1cImNvbnRlbnRcIn19XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9kaXY-XG4gICAgPC9QYWdlRWxlbWVudD5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVMsT0FBTyxFQUFFLE9BQU8sUUFBUSxnQ0FBZ0M7QUFFakUsT0FBTyxZQUFZLG1DQUFtQztBQUN0RCxPQUFPLFVBQVUsc0NBQXNDO0FBRXZELFNBQVMsRUFBRSxRQUFRLHNCQUFzQjtBQUV6QyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFDMUQsY0FBYyxJQUFJLFFBQVEsYUFBYTtVQUU3QjtJQUNSO1FBQ0UsTUFBTTs7SUFFUjtRQUNFOzs7QUFJSixNQUFNLFNBQVMsSUFBSSxvQkFBb0IsU0FBVSxDQUFBOzs7O0FBSWpELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQTtBQUVWLElBQUEsQUFBTSxjQUFOLE1BQU0sb0JBQW9CO0lBQVksU0FBUztJQUFhO1FBQVU7OztJQUNwRSxDQUFDLFFBQVE7SUFBcUIsU0FBUyxPQUFPLENBQUM7SUFFL0MsQ0FBQyxRQUFRO0lBQWMsSUFDbkIsYUFBYTtRQUNmLE9BQU87SUFDVDtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7OztFQU1WLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQU5BO0FBT1o7VUFFVTtJQUNSLFNBQVM7SUFDVDtRQUNFLFFBQVEsTUFBTTtRQUNkLGNBQWMsTUFBTTs7SUFFdEI7UUFDRTtRQUNBO1FBQ0EsY0FBYztRQUNkO1FBQ0E7OztBQUlKLElBQUEsQUFBTSxPQUFOLE1BQU0sYUFBYSxVQUFVO0lBQzNCLENBQUMsUUFBUTtJQUF1QixZQUFZLE9BQU8sQ0FBQztJQUVwRCxDQUFDLFFBQVE7SUFBWSxJQUNqQixXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVE7SUFDbkM7SUFFQSxNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUNWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQXJDQTtBQXNDWjtBQUVBLGVBQWUsS0FBSyJ9"],"names":["NavLink","setComponentTemplate","precompileTemplate","scope","on","strictMode","templateOnly","PageElement","Component","consume","i","this","void 0","pageInside","n","prototype","provide","element","Page","g","rootPage","insidePage","styles","or","typo"],"mappings":";;;;;;;;;;;;AAuBA,MAAMA,OAAa,GAAAC,oBAAA,CAAoBC,kBAAA,CAIvC,6HAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV,IAAAC,WAAM,GAAN,MAAMA,WAAA,SAAoBC,SAAA;;AACvBC,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,CAAAA,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAAC,IAAA,cAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIC,aAAa;IACf,OAAO,IAAA,CAAA;AACT,GAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAH,IAAA,CAAAI,SAAA,EAAA,YAAA,EAAA,CAHCC,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAf,oBAAA,CAAAC,kBAAA,CAMA,oKAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAc,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAZ,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAiBA,IAAAa,IAAM,GAAN,MAAMA,IAAA,SAAaV,SAAA,CAAU;AAAA,EAAA;AAAAW,IAAAA,CAAA,CAAAR,IAAA,CAAAI,SAAA,EAAA,YAAA,EAAA,CAC1BN,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAAC,IAAA,iBAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIQ,WAAW;AACb,IAAA,OAAO,IAAI,CAACC,UAAU,GAAG,KAAQ,GAAA,IAAA,CAAA;AACnC,GAAA;AAAA,EAAA;AAAAP,IAAAA,CAAA,CAAAH,IAAA,CAAAI,SAAA,EAAA,UAAA,EAAA,CAHCC,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAf,oBAAA,CAAAC,kBAAA,CAqCA,qlCAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAI,WAAA;QAAAe,MAAA;QAAAC,EAAA;QAAAC,IAAA;AAAAxB,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAK,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"page.js","sources":["../../src/components/page.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { element } from 'ember-element-helper';\nimport { consume, provide } from 'ember-provide-consume-context';\nimport styles from '@hokulea/core/layouts.module.css';\nimport typo from '@hokulea/core/typography.module.css';\nimport { or } from '../-private/helpers';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Link } from 'ember-link';\ninterface NavLinkSignature {\n Args: {\n link: Link;\n };\n Blocks: {\n default: [];\n };\n}\nconst NavLink: TOC<NavLinkSignature> = template(`\n <a href={{@link.url}} {{on \"click\" @link.open}} aria-current={{if @link.isActive \"page\"}}>\n {{yield}}\n </a>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nlet PageElement = class PageElement extends Component<{\n Element: HTMLElement;\n Blocks: {\n default: [];\n };\n}> {\n @consume('page-root')\n useMain: boolean;\n @provide('page-inside')\n get pageInside() {\n return true;\n }\n static{\n template(`\n {{#let (element (if this.useMain \"main\" \"section\")) as |Element|}}\n <Element ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\ninterface PageSignature {\n Element: HTMLElement;\n Args: {\n title?: string;\n description?: string;\n };\n Blocks: {\n title?: [];\n description?: [];\n nav?: [typeof NavLink];\n content?: [];\n default?: [];\n };\n}\nlet Page = class Page extends Component<PageSignature> {\n @consume('page-inside')\n insidePage: boolean;\n @provide('page-root')\n get rootPage() {\n return this.insidePage ? false : true;\n }\n static{\n template(`\n <PageElement class={{styles.page}} ...attributes data-test-page>\n {{#if\n (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))\n }}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n\n {{#if (has-block \"nav\")}}\n <nav>\n {{yield NavLink to=\"nav\"}}\n </nav>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.flow}}\" part=\"content\">\n {{yield to=\"content\"}}\n {{yield}}\n </div>\n </PageElement>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport default Page;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9wYWdlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB7IGVsZW1lbnQgfSBmcm9tICdlbWJlci1lbGVtZW50LWhlbHBlcic7XG5pbXBvcnQgeyBjb25zdW1lLCBwcm92aWRlIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvbGF5b3V0cy5tb2R1bGUuY3NzJztcbmltcG9ydCB0eXBvIGZyb20gJ0Bob2t1bGVhL2NvcmUvdHlwb2dyYXBoeS5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHsgb3IgfSBmcm9tICcuLi8tcHJpdmF0ZS9oZWxwZXJzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBMaW5rIH0gZnJvbSAnZW1iZXItbGluayc7XG5cbmludGVyZmFjZSBOYXZMaW5rU2lnbmF0dXJlIHtcbiAgQXJnczoge1xuICAgIGxpbms6IExpbms7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5jb25zdCBOYXZMaW5rOiBUT0M8TmF2TGlua1NpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxhIGhyZWY9e3tAbGluay51cmx9fSB7e29uIFwiY2xpY2tcIiBAbGluay5vcGVufX0gYXJpYS1jdXJyZW50PXt7aWYgQGxpbmsuaXNBY3RpdmUgXCJwYWdlXCJ9fT5cbiAgICB7e3lpZWxkfX1cbiAgPC9hPlxuPC90ZW1wbGF0ZT47XG5cbmNsYXNzIFBhZ2VFbGVtZW50IGV4dGVuZHMgQ29tcG9uZW50PHsgRWxlbWVudDogSFRNTEVsZW1lbnQ7IEJsb2NrczogeyBkZWZhdWx0OiBbXSB9IH0-IHtcbiAgQGNvbnN1bWUoJ3BhZ2Utcm9vdCcpIGRlY2xhcmUgdXNlTWFpbjogYm9vbGVhbjtcblxuICBAcHJvdmlkZSgncGFnZS1pbnNpZGUnKVxuICBnZXQgcGFnZUluc2lkZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKGVsZW1lbnQgKGlmIHRoaXMudXNlTWFpbiBcIm1haW5cIiBcInNlY3Rpb25cIikpIGFzIHxFbGVtZW50fH19XG4gICAgICA8RWxlbWVudCAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICB7e3lpZWxkfX1cbiAgICAgIDwvRWxlbWVudD5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5pbnRlcmZhY2UgUGFnZVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdGl0bGU_OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24_OiBzdHJpbmc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIHRpdGxlPzogW107XG4gICAgZGVzY3JpcHRpb24_OiBbXTtcbiAgICBuYXY_OiBbdHlwZW9mIE5hdkxpbmtdO1xuICAgIGNvbnRlbnQ_OiBbXTtcbiAgICBkZWZhdWx0PzogW107XG4gIH07XG59XG5cbmNsYXNzIFBhZ2UgZXh0ZW5kcyBDb21wb25lbnQ8UGFnZVNpZ25hdHVyZT4ge1xuICBAY29uc3VtZSgncGFnZS1pbnNpZGUnKSBkZWNsYXJlIGluc2lkZVBhZ2U6IGJvb2xlYW47XG5cbiAgQHByb3ZpZGUoJ3BhZ2Utcm9vdCcpXG4gIGdldCByb290UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnNpZGVQYWdlID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxQYWdlRWxlbWVudCBjbGFzcz17e3N0eWxlcy5wYWdlfX0gLi4uYXR0cmlidXRlcyBkYXRhLXRlc3QtcGFnZT5cbiAgICAgIHt7I2lmXG4gICAgICAgIChvciBAdGl0bGUgQGRlc2NyaXB0aW9uIChoYXMtYmxvY2sgXCJ0aXRsZVwiKSAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgKGhhcy1ibG9jayBcIm5hdlwiKSlcbiAgICAgIH19XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9e3tzdHlsZXMucGFnZUNvbnRlbnR9fT5cbiAgICAgICAgICA8aDEgY2xhc3M9e3t0eXBvLmRpc3BsYXl9fT5cbiAgICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJ0aXRsZVwiKX19XG4gICAgICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgICAgIHt7ZWxzZSBpZiBAdGl0bGV9fVxuICAgICAgICAgICAgICB7e0B0aXRsZX19XG4gICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgPC9oMT5cblxuICAgICAgICAgIHt7I2lmIChvciAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgQGRlc2NyaXB0aW9uKX19XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3sjaWYgKGhhcy1ibG9jayBcImRlc2NyaXB0aW9uXCIpfX1cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgIHt7ZWxzZSBpZiBAZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgIHt7QGRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIHt7L2lmfX1cblxuICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJuYXZcIil9fVxuICAgICAgICAgICAgPG5hdj5cbiAgICAgICAgICAgICAge3t5aWVsZCBOYXZMaW5rIHRvPVwibmF2XCJ9fVxuICAgICAgICAgICAgPC9uYXY-XG4gICAgICAgICAge3svaWZ9fVxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgIHt7L2lmfX1cblxuICAgICAgPGRpdiBjbGFzcz1cInt7c3R5bGVzLnBhZ2VDb250ZW50fX0ge3tzdHlsZXMuZmxvd319XCIgcGFydD1cImNvbnRlbnRcIj5cbiAgICAgICAge3t5aWVsZCB0bz1cImNvbnRlbnRcIn19XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9kaXY-XG4gICAgPC9QYWdlRWxlbWVudD5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVMsT0FBTyxFQUFFLE9BQU8sUUFBUSxnQ0FBZ0M7QUFFakUsT0FBTyxZQUFZLG1DQUFtQztBQUN0RCxPQUFPLFVBQVUsc0NBQXNDO0FBRXZELFNBQVMsRUFBRSxRQUFRLHNCQUFzQjtBQUV6QyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFDMUQsY0FBYyxJQUFJLFFBQVEsYUFBYTtVQUU3QjtJQUNSO1FBQ0UsTUFBTTs7SUFFUjtRQUNFOzs7QUFJSixNQUFNLFNBQVMsSUFBSSxvQkFBb0IsU0FBVSxDQUFBOzs7O0FBSWpELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQTtBQUVWLElBQUEsQUFBTSxjQUFOLE1BQU0sb0JBQW9CO0lBQVksU0FBUztJQUFhO1FBQVU7OztJQUNwRSxDQUFDLFFBQVE7SUFBcUIsU0FBUyxPQUFPLENBQUM7SUFFL0MsQ0FBQyxRQUFRO0lBQWMsSUFDbkIsYUFBYTtRQUNmLE9BQU87SUFDVDtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7OztFQU1WLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQU5BO0FBT1o7VUFFVTtJQUNSLFNBQVM7SUFDVDtRQUNFLFFBQVEsTUFBTTtRQUNkLGNBQWMsTUFBTTs7SUFFdEI7UUFDRTtRQUNBO1FBQ0EsY0FBYztRQUNkO1FBQ0E7OztBQUlKLElBQUEsQUFBTSxPQUFOLE1BQU0sYUFBYSxVQUFVO0lBQzNCLENBQUMsUUFBUTtJQUF1QixZQUFZLE9BQU8sQ0FBQztJQUVwRCxDQUFDLFFBQVE7SUFBWSxJQUNqQixXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVE7SUFDbkM7SUFFQSxNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUNWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQXJDQTtBQXNDWjtBQUVBLGVBQWUsS0FBSyJ9"],"names":["NavLink","setComponentTemplate","precompileTemplate","scope","on","strictMode","templateOnly","PageElement","Component","consume","i","void 0","pageInside","n","prototype","provide","element","Page","g","rootPage","insidePage","styles","or","typo"],"mappings":";;;;;;;;;;;;AAuBA,MAAMA,OAAa,GAAAC,oBAAA,CAAoBC,kBAAA,CAIvC,6HAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV,IAAAC,WAAM,GAAN,MAAMA,WAAA,SAAoBC,SAAA;;AACvBC,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,CAAAA,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIC,aAAa;IACf,OAAO,IAAA,CAAA;AACT,GAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAAA,CAAAA,SAAA,EAHCC,YAAAA,EAAAA,CAAAA,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAd,oBAAA,CAAAC,kBAAA,CAMA,oKAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAa,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAX,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAiBA,IAAAY,IAAM,GAAN,MAAMA,IAAA,SAAaT,SAAA,CAAU;AAAA,EAAA;AAAAU,IAAAA,CAAA,CAAAJ,IAAAA,CAAAA,SAAA,EAC1BL,YAAAA,EAAAA,CAAAA,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIQ,WAAW;AACb,IAAA,OAAO,IAAI,CAACC,UAAU,GAAG,KAAQ,GAAA,IAAA,CAAA;AACnC,GAAA;AAAA,EAAA;AAAAP,IAAAA,CAAA,CAAAC,IAAAA,CAAAA,SAAA,EAHCC,UAAAA,EAAAA,CAAAA,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAd,oBAAA,CAAAC,kBAAA,CAqCA,qlCAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAI,WAAA;QAAAc,MAAA;QAAAC,EAAA;QAAAC,IAAA;AAAAvB,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAK,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sources":["../../src/helpers/popover.ts"],"sourcesContent":["import { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { uniqueId } from '@ember/helper';\n\nimport { computePosition, flip, type Placement } from '@floating-ui/dom';\nimport { modifier } from 'ember-modifier';\n\ninterface PopoverArgs {\n position?: Placement;\n opened?: () => void;\n closed?: () => void;\n}\n\nclass State {\n @tracked id = uniqueId();\n @tracked opened = false;\n}\n\nconst popover = helper((_, { position, opened, closed }: PopoverArgs) => {\n const state = new State();\n let triggerElement: HTMLElement | undefined = undefined;\n let targetElement: HTMLElement | undefined = undefined;\n\n return {\n trigger: modifier((element: HTMLElement) => {\n element.setAttribute('popovertarget', state.id);\n triggerElement = element;\n }),\n target: modifier((element: HTMLElement, __, { manual }: { manual?: boolean }) => {\n element.setAttribute('popover', manual ? 'manual' : '');\n targetElement = element;\n\n if (element.id) {\n state.id = element.id;\n } else {\n element.id = state.id;\n }\n\n const toggleHandler = (event: ToggleEvent) => {\n state.opened = event.newState === 'open';\n\n if (event.newState === 'open') {\n if (position && triggerElement) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n computePosition(triggerElement, element, {\n placement: position,\n middleware: [flip()]\n }).then(({ x, y }): void => {\n Object.assign(element.style, {\n left: `${String(x)}px`,\n top: `${String(y)}px`\n });\n });\n }\n\n opened?.();\n } else if (event.newState === 'closed') {\n closed?.();\n }\n };\n\n // @ts-expect-error c'mon typescript\n element.addEventListener('toggle', toggleHandler);\n\n return () => {\n // @ts-expect-error c'mon typescript\n element.removeEventListener('toggle', toggleHandler);\n };\n }),\n get opened() {\n return state.opened;\n },\n open: () => {\n targetElement?.showPopover();\n },\n close: () => {\n targetElement?.hidePopover();\n }\n };\n});\n\nexport default popover;\n"],"names":["State","g","this","prototype","tracked","uniqueId","i","void 0","popover","helper","_","position","opened","closed","state","triggerElement","undefined","targetElement","trigger","modifier","element","setAttribute","id","target","__","manual","toggleHandler","event","newState","computePosition","placement","middleware","flip","then","x","y","Object","assign","style","left","String","top","addEventListener","removeEventListener","open","showPopover","close","hidePopover"],"mappings":"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"}
1
+ {"version":3,"file":"popover.js","sources":["../../src/helpers/popover.ts"],"sourcesContent":["import { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { uniqueId } from '@ember/helper';\n\nimport { computePosition, flip, type Placement } from '@floating-ui/dom';\nimport { modifier } from 'ember-modifier';\n\ninterface PopoverArgs {\n position?: Placement;\n opened?: () => void;\n closed?: () => void;\n}\n\nclass State {\n @tracked id = uniqueId();\n @tracked opened = false;\n}\n\nconst popover = helper((_, { position, opened, closed }: PopoverArgs) => {\n const state = new State();\n let triggerElement: HTMLElement | undefined = undefined;\n let targetElement: HTMLElement | undefined = undefined;\n\n return {\n trigger: modifier((element: HTMLElement) => {\n element.setAttribute('popovertarget', state.id);\n triggerElement = element;\n }),\n target: modifier((element: HTMLElement, __, { manual }: { manual?: boolean }) => {\n element.setAttribute('popover', manual ? 'manual' : '');\n targetElement = element;\n\n if (element.id) {\n state.id = element.id;\n } else {\n element.id = state.id;\n }\n\n const toggleHandler = (event: ToggleEvent) => {\n state.opened = event.newState === 'open';\n\n if (event.newState === 'open') {\n if (position && triggerElement) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n computePosition(triggerElement, element, {\n placement: position,\n middleware: [flip()]\n }).then(({ x, y }): void => {\n Object.assign(element.style, {\n left: `${String(x)}px`,\n top: `${String(y)}px`\n });\n });\n }\n\n opened?.();\n } else if (event.newState === 'closed') {\n closed?.();\n }\n };\n\n // @ts-expect-error c'mon typescript\n element.addEventListener('toggle', toggleHandler);\n\n return () => {\n // @ts-expect-error c'mon typescript\n element.removeEventListener('toggle', toggleHandler);\n };\n }),\n get opened() {\n return state.opened;\n },\n open: () => {\n targetElement?.showPopover();\n },\n close: () => {\n targetElement?.hidePopover();\n }\n };\n});\n\nexport default popover;\n"],"names":["State","g","prototype","tracked","uniqueId","i","void 0","popover","helper","_","position","opened","closed","state","triggerElement","undefined","targetElement","trigger","modifier","element","setAttribute","id","target","__","manual","toggleHandler","event","newState","computePosition","placement","middleware","flip","then","x","y","Object","assign","style","left","String","top","addEventListener","removeEventListener","open","showPopover","close","hidePopover"],"mappings":"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"}
@@ -15,6 +15,28 @@ class IconPageObject extends PageObject {
15
15
  }
16
16
  }
17
17
 
18
+ class IconButtonPageObject extends PageObject {
19
+ static SELECTOR = '[data-test-icon-button]';
20
+ constructor(selector, parent, index) {
21
+ super(selector ?? IconButtonPageObject.SELECTOR, parent, index);
22
+ }
23
+ get intent() {
24
+ return this.element?.getAttribute('data-intent');
25
+ }
26
+ get importance() {
27
+ return this.element?.getAttribute('data-importance');
28
+ }
29
+ get spacing() {
30
+ return this.element?.getAttribute('data-spacing');
31
+ }
32
+ async push() {
33
+ if (this.element) {
34
+ await click(this.element);
35
+ }
36
+ }
37
+ $icon = selector('[data-test-icon-button="icon"]', IconPageObject);
38
+ }
39
+
18
40
  class MenuItemPageObject extends PageObject {
19
41
  static SELECTOR = '[role="menuitem"]';
20
42
  constructor(selector, parent, index) {
@@ -98,10 +120,8 @@ class AppHeaderPageObject extends PageObject {
98
120
  return selector(`${this.#prefix} [part="aux"]`);
99
121
  }
100
122
  $menu = selector('[part="menu"]', class extends PageObject {
101
- $toggle = selector('[data-test-toggle]', class extends PageObject {
102
- $icon = selector('[data-test-toggle="icon"]', IconPageObject);
103
- });
104
- $popover = selector('section', class extends PageObject {
123
+ $toggle = selector('[data-test-toggle]', IconButtonPageObject);
124
+ $popover = selector('[popover]', class extends PageObject {
105
125
  get expanded() {
106
126
  return Boolean(this.element?.matches(':popover-open'));
107
127
  }
@@ -303,28 +323,6 @@ class FormPageObject extends PageObject {
303
323
  }
304
324
  }
305
325
 
306
- class IconButtonPageObject extends PageObject {
307
- static SELECTOR = '[data-test-icon-button]';
308
- constructor(selector, parent, index) {
309
- super(selector ?? IconButtonPageObject.SELECTOR, parent, index);
310
- }
311
- get intent() {
312
- return this.element?.getAttribute('data-intent');
313
- }
314
- get importance() {
315
- return this.element?.getAttribute('data-importance');
316
- }
317
- get spacing() {
318
- return this.element?.getAttribute('data-spacing');
319
- }
320
- async push() {
321
- if (this.element) {
322
- await click(this.element);
323
- }
324
- }
325
- $icon = selector('[data-test-icon-button="icon"]', IconPageObject);
326
- }
327
-
328
326
  class PagePageObject extends PageObject {
329
327
  static SELECTOR = '[data-test-page]';
330
328
  constructor(selector, parent, index) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/icon.ts","../../src/test-support/page-objects/menu.ts","../../src/test-support/page-objects/app-header.ts","../../src/test-support/page-objects/button.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.ts","../../src/test-support/page-objects/select.ts","../../src/test-support/page-objects/text-area.ts","../../src/test-support/page-objects/-private/choices.ts","../../src/test-support/page-objects/-private/field.ts","../../src/test-support/page-objects/form.ts","../../src/test-support/page-objects/icon-button.ts","../../src/test-support/page-objects/page.ts","../../src/test-support/page-objects/pill-button.ts","../../src/test-support/page-objects/popover.ts","../../src/test-support/page-objects/section.ts"],"sourcesContent":["import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-icon]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconPageObject.SELECTOR, parent, index);\n }\n\n get name(): string | null | undefined {\n return this.element?.getAttribute('data-test-icon');\n }\n\n get style(): string | null | undefined {\n return this.element?.getAttribute('data-test-icon-style');\n }\n}\n","import { globalSelector, PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Menu, MenuElement, MenuItem, MenuItemElement } from './-menu';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class MenuItemPageObject extends PageObject<MenuItemElement> implements MenuItem {\n static SELECTOR = '[role=\"menuitem\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuItemPageObject.SELECTOR, parent, index);\n }\n\n get disabled() {\n return Boolean(this.element?.hasAttribute('aria-disabled'));\n }\n\n get expanded(): boolean {\n return Boolean(this.menu?.element?.matches(':popover-open'));\n }\n\n hasMenu() {\n return this.element?.getAttribute('aria-haspopup') === 'menu';\n }\n\n protected get menuId() {\n return this.element?.getAttribute('popovertarget');\n }\n\n protected get menu(): Menu | undefined {\n return this.menuId\n ? // eslint-disable-next-line @typescript-eslint/no-use-before-define\n globalSelector<MenuElement, Menu>(`#${this.menuId}`, MenuPageObject)\n : undefined;\n }\n\n get $menu() {\n return this.menu;\n }\n}\n\nexport class MenuPageObject extends PageObject<MenuElement> implements Menu {\n static SELECTOR = '[data-test-menu]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $item = sel<MenuItemElement, MenuItem>(MenuItemPageObject.SELECTOR, MenuItemPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon';\nimport { MenuItemPageObject } from './menu';\n\nimport type { Menu, MenuItem, MenuItemElement } from './-menu';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass AppNavPageObject extends PageObject<HTMLElement> implements Menu<HTMLElement> {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n $item = sel<MenuItemElement, MenuItem>(NavItemPageObject.SELECTOR, NavItemPageObject);\n}\n\nexport class NavItemPageObject extends MenuItemPageObject implements MenuItem {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavItemPageObject.SELECTOR, parent, index);\n }\n\n hasMenu() {\n return super.hasMenu() || this.element?.tagName.toLowerCase() === 'summary';\n }\n\n isPopupNavItem() {\n return (\n this.element?.tagName.toLowerCase() === 'summary' ||\n this.element?.parentElement?.tagName === 'details'\n );\n }\n\n get expanded() {\n return Boolean(\n this.isPopupNavItem()\n ? (this.element?.parentElement as HTMLElement).matches('[open]')\n : super.expanded\n );\n }\n\n get $menu(): Menu | undefined {\n if (this.isPopupNavItem()) {\n return sel<HTMLElement, Menu>('+ div', AppNavPageObject);\n }\n\n return this.menu;\n }\n}\n\nexport class AppHeaderPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-app-header]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AppHeaderPageObject.SELECTOR, parent, index);\n }\n\n get #prefix() {\n if (this.$menu.element) {\n return '[part=\"menu\"]';\n }\n\n return '';\n }\n\n get $brand() {\n return sel<HTMLDivElement>(`${this.#prefix} [part=\"brand\"]`);\n }\n\n get $nav() {\n return sel(`${this.#prefix} nav`, AppNavPageObject);\n }\n\n get $aux() {\n return sel<HTMLSpanElement>(`${this.#prefix} [part=\"aux\"]`);\n }\n\n $menu = sel(\n '[part=\"menu\"]',\n class extends PageObject<HTMLSpanElement> {\n $toggle = sel(\n '[data-test-toggle]',\n class extends PageObject<HTMLButtonElement> {\n $icon = sel('[data-test-toggle=\"icon\"]', IconPageObject);\n }\n );\n\n $popover = sel(\n 'section',\n class extends PageObject<HTMLElement> {\n get expanded() {\n return Boolean(this.element?.matches(':popover-open'));\n }\n }\n );\n }\n );\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass ChoicePageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-choice]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicePageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n\nexport const RadioPageObject = ChoicePageObject;\nexport const CheckboxPageObject = ChoicePageObject;\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport interface Input extends PageObject {\n control: HTMLInputElement;\n}\n\nexport class InputPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n\nexport const NumberInputPageObject = InputPageObject;\nexport const TextInputPageObject = InputPageObject;\nexport const PhoneInputPageObject = InputPageObject;\nexport const DateInputPageObject = InputPageObject;\nexport const EmailInputPageObject = InputPageObject;\nexport const PasswordInputPageObject = InputPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input';\n\nimport type { Input } from './input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class InputBuilderPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input-builder]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputBuilderPageObject.SELECTOR, parent, index);\n }\n\n $prefix = sel<HTMLSpanElement>('[data-test-input-builder=\"prefix\"]');\n $affix = sel<HTMLSpanElement>('[data-test-input-builder=\"affix\"]');\n $suffix = sel<HTMLSpanElement>('[data-test-input-builder=\"suffix\"]');\n $input = sel(InputPageObject.SELECTOR, InputPageObject);\n\n get control() {\n return this.$input.element as HTMLInputElement;\n }\n}\n\nexport const CurrencyInputPageObject = InputBuilderPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectListbox } from 'ember-aria-voyager/test-support';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ListPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ListPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $option = sel<HTMLOptionElement>('[role=\"option\"]');\n\n async select(options: string | string[]) {\n await selectListbox(this.element as Target, options);\n }\n}\n","import { select } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SelectPageObject extends PageObject<HTMLSelectElement> {\n static SELECTOR = '[data-test-select]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SelectPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLSelectElement;\n }\n\n $option = sel<HTMLOptionElement>('option');\n\n async select(options: string | string[], keepPreviouslySelected?: boolean) {\n await select(this.element as Target, options, keepPreviouslySelected);\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TextAreaPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-textarea]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TextAreaPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nclass OptionPageObject extends PageObject<HTMLDivElement> {\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n $control = sel<HTMLInputElement>('input');\n}\n\nexport class ChoicesPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-choices]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicesPageObject.SELECTOR, parent, index);\n }\n\n $options = sel('[data-test-option]', OptionPageObject);\n\n option(value: string) {\n return this.$options.find(\n (option) => option.$control.element?.value === value\n ) as OptionPageObject;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { CheckboxPageObject } from '../choice';\nimport { InputPageObject } from '../input';\nimport { InputBuilderPageObject } from '../input-builder';\nimport { ListPageObject } from '../list';\nimport { SelectPageObject } from '../select';\nimport { TextAreaPageObject } from '../text-area';\nimport { ChoicesPageObject } from './choices';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-field]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FieldPageObject.SELECTOR, parent, index);\n }\n\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n // $control = sel<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n // 'input,select,textarea'\n // );\n\n // controls\n\n private $input = sel(InputPageObject.SELECTOR, InputPageObject);\n private $inputBuilder = sel(InputBuilderPageObject.SELECTOR, InputBuilderPageObject);\n private $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n private $textArea = sel(TextAreaPageObject.SELECTOR, TextAreaPageObject);\n private $checkbox = sel(CheckboxPageObject.SELECTOR, CheckboxPageObject);\n private $list = sel(ListPageObject.SELECTOR, ListPageObject);\n\n $choices = sel(ChoicesPageObject.SELECTOR, ChoicesPageObject);\n $errors = sel(\n '[data-test-error]',\n class extends PageObject<HTMLDivElement> {\n get type() {\n return this.element?.getAttribute('data-test-error-type');\n }\n\n get value() {\n return this.element?.getAttribute('data-test-error-value');\n }\n }\n );\n\n get $control():\n | InputPageObject\n | InputBuilderPageObject\n | SelectPageObject\n | TextAreaPageObject\n | ListPageObject {\n if (this.$inputBuilder.element) {\n return this.$inputBuilder;\n }\n\n if (this.$checkbox.element) {\n return this.$checkbox;\n }\n\n if (this.$input.element) {\n return this.$input;\n }\n\n if (this.$select.element) {\n return this.$select;\n }\n\n if (this.$textArea.element) {\n return this.$textArea;\n }\n\n if (this.$list.element) {\n return this.$list;\n }\n\n return this.$input; // @TODO bad fallback for now\n }\n\n get name() {\n return this.element?.getAttribute('data-test-field');\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { FieldPageObject } from './-private/field';\nimport { ButtonPageObject } from './button';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FormPageObject extends PageObject<HTMLFormElement> {\n static SELECTOR = '[data-test-form]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FormPageObject.SELECTOR, parent, index);\n }\n\n $submit = sel('button[type=\"submit\"]', ButtonPageObject);\n $reset = sel('button[type=\"reset\"]', ButtonPageObject);\n\n $fields = sel(FieldPageObject.SELECTOR, FieldPageObject);\n\n field(name: string) {\n return this.$fields.find((field) => field.name === name) as FieldPageObject;\n }\n\n async submit() {\n await triggerEvent(this.element as HTMLFormElement, 'submit');\n }\n\n async reset() {\n await triggerEvent(this.element as HTMLFormElement, 'reset');\n }\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-icon-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n\n $icon = sel('[data-test-icon-button=\"icon\"]', IconPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PagePageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-page]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PagePageObject.SELECTOR, parent, index);\n }\n\n $header = sel<HTMLElement>('header');\n\n $title = sel<HTMLHeadingElement>('header > h1');\n $description = sel<HTMLParagraphElement>('header > p');\n $nav = sel<HTMLElement>('header > nav');\n\n $content = sel<HTMLElement>('[part=\"content\"]');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PillButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-pill-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PillButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PopoverPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-popover]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PopoverPageObject.SELECTOR, parent, index);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SectionPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-section]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SectionPageObject.SELECTOR, parent, index);\n }\n\n $header = sel('[data-test-section=\"header\"]');\n $title = sel('[data-test-section=\"title\"]');\n}\n"],"names":["IconPageObject","PageObject","SELECTOR","constructor","selector","parent","index","name","element","getAttribute","style","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","sel","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$icon","$popover","ButtonPageObject","intent","importance","spacing","$before","$label","$after","push","click","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","InputBuilderPageObject","$prefix","$affix","$suffix","$input","CurrencyInputPageObject","ListPageObject","$option","select","options","selectListbox","SelectPageObject","keepPreviouslySelected","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","value","find","FieldPageObject","$inputBuilder","$select","$textArea","$checkbox","$list","$choices","$errors","type","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","IconButtonPageObject","PagePageObject","$header","$title","$content","PillButtonPageObject","PopoverPageObject","SectionPageObject"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/icon.ts","../../src/test-support/page-objects/icon-button.ts","../../src/test-support/page-objects/menu.ts","../../src/test-support/page-objects/app-header.ts","../../src/test-support/page-objects/button.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.ts","../../src/test-support/page-objects/select.ts","../../src/test-support/page-objects/text-area.ts","../../src/test-support/page-objects/-private/choices.ts","../../src/test-support/page-objects/-private/field.ts","../../src/test-support/page-objects/form.ts","../../src/test-support/page-objects/page.ts","../../src/test-support/page-objects/pill-button.ts","../../src/test-support/page-objects/popover.ts","../../src/test-support/page-objects/section.ts"],"sourcesContent":["import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-icon]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconPageObject.SELECTOR, parent, index);\n }\n\n get name(): string | null | undefined {\n return this.element?.getAttribute('data-test-icon');\n }\n\n get style(): string | null | undefined {\n return this.element?.getAttribute('data-test-icon-style');\n }\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-icon-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n\n $icon = sel('[data-test-icon-button=\"icon\"]', IconPageObject);\n}\n","import { globalSelector, PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Menu, MenuElement, MenuItem, MenuItemElement } from './-menu';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class MenuItemPageObject extends PageObject<MenuItemElement> implements MenuItem {\n static SELECTOR = '[role=\"menuitem\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuItemPageObject.SELECTOR, parent, index);\n }\n\n get disabled() {\n return Boolean(this.element?.hasAttribute('aria-disabled'));\n }\n\n get expanded(): boolean {\n return Boolean(this.menu?.element?.matches(':popover-open'));\n }\n\n hasMenu() {\n return this.element?.getAttribute('aria-haspopup') === 'menu';\n }\n\n protected get menuId() {\n return this.element?.getAttribute('popovertarget');\n }\n\n protected get menu(): Menu | undefined {\n return this.menuId\n ? // eslint-disable-next-line @typescript-eslint/no-use-before-define\n globalSelector<MenuElement, Menu>(`#${this.menuId}`, MenuPageObject)\n : undefined;\n }\n\n get $menu() {\n return this.menu;\n }\n}\n\nexport class MenuPageObject extends PageObject<MenuElement> implements Menu {\n static SELECTOR = '[data-test-menu]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $item = sel<MenuItemElement, MenuItem>(MenuItemPageObject.SELECTOR, MenuItemPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button';\nimport { MenuItemPageObject } from './menu';\n\nimport type { Menu, MenuItem, MenuItemElement } from './-menu';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass AppNavPageObject extends PageObject<HTMLElement> implements Menu<HTMLElement> {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n $item = sel<MenuItemElement, MenuItem>(NavItemPageObject.SELECTOR, NavItemPageObject);\n}\n\nexport class NavItemPageObject extends MenuItemPageObject implements MenuItem {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavItemPageObject.SELECTOR, parent, index);\n }\n\n hasMenu() {\n return super.hasMenu() || this.element?.tagName.toLowerCase() === 'summary';\n }\n\n isPopupNavItem() {\n return (\n this.element?.tagName.toLowerCase() === 'summary' ||\n this.element?.parentElement?.tagName === 'details'\n );\n }\n\n get expanded() {\n return Boolean(\n this.isPopupNavItem()\n ? (this.element?.parentElement as HTMLElement).matches('[open]')\n : super.expanded\n );\n }\n\n get $menu(): Menu | undefined {\n if (this.isPopupNavItem()) {\n return sel<HTMLElement, Menu>('+ div', AppNavPageObject);\n }\n\n return this.menu;\n }\n}\n\nexport class AppHeaderPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-app-header]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AppHeaderPageObject.SELECTOR, parent, index);\n }\n\n get #prefix() {\n if (this.$menu.element) {\n return '[part=\"menu\"]';\n }\n\n return '';\n }\n\n get $brand() {\n return sel<HTMLDivElement>(`${this.#prefix} [part=\"brand\"]`);\n }\n\n get $nav() {\n return sel(`${this.#prefix} nav`, AppNavPageObject);\n }\n\n get $aux() {\n return sel<HTMLSpanElement>(`${this.#prefix} [part=\"aux\"]`);\n }\n\n $menu = sel(\n '[part=\"menu\"]',\n class extends PageObject<HTMLSpanElement> {\n $toggle = sel('[data-test-toggle]', IconButtonPageObject);\n\n $popover = sel(\n '[popover]',\n class extends PageObject<HTMLElement> {\n get expanded() {\n return Boolean(this.element?.matches(':popover-open'));\n }\n }\n );\n }\n );\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass ChoicePageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-choice]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicePageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n\nexport const RadioPageObject = ChoicePageObject;\nexport const CheckboxPageObject = ChoicePageObject;\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport interface Input extends PageObject {\n control: HTMLInputElement;\n}\n\nexport class InputPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n\nexport const NumberInputPageObject = InputPageObject;\nexport const TextInputPageObject = InputPageObject;\nexport const PhoneInputPageObject = InputPageObject;\nexport const DateInputPageObject = InputPageObject;\nexport const EmailInputPageObject = InputPageObject;\nexport const PasswordInputPageObject = InputPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input';\n\nimport type { Input } from './input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class InputBuilderPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input-builder]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputBuilderPageObject.SELECTOR, parent, index);\n }\n\n $prefix = sel<HTMLSpanElement>('[data-test-input-builder=\"prefix\"]');\n $affix = sel<HTMLSpanElement>('[data-test-input-builder=\"affix\"]');\n $suffix = sel<HTMLSpanElement>('[data-test-input-builder=\"suffix\"]');\n $input = sel(InputPageObject.SELECTOR, InputPageObject);\n\n get control() {\n return this.$input.element as HTMLInputElement;\n }\n}\n\nexport const CurrencyInputPageObject = InputBuilderPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectListbox } from 'ember-aria-voyager/test-support';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ListPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ListPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $option = sel<HTMLOptionElement>('[role=\"option\"]');\n\n async select(options: string | string[]) {\n await selectListbox(this.element as Target, options);\n }\n}\n","import { select } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SelectPageObject extends PageObject<HTMLSelectElement> {\n static SELECTOR = '[data-test-select]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SelectPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLSelectElement;\n }\n\n $option = sel<HTMLOptionElement>('option');\n\n async select(options: string | string[], keepPreviouslySelected?: boolean) {\n await select(this.element as Target, options, keepPreviouslySelected);\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TextAreaPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-textarea]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TextAreaPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nclass OptionPageObject extends PageObject<HTMLDivElement> {\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n $control = sel<HTMLInputElement>('input');\n}\n\nexport class ChoicesPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-choices]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicesPageObject.SELECTOR, parent, index);\n }\n\n $options = sel('[data-test-option]', OptionPageObject);\n\n option(value: string) {\n return this.$options.find(\n (option) => option.$control.element?.value === value\n ) as OptionPageObject;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { CheckboxPageObject } from '../choice';\nimport { InputPageObject } from '../input';\nimport { InputBuilderPageObject } from '../input-builder';\nimport { ListPageObject } from '../list';\nimport { SelectPageObject } from '../select';\nimport { TextAreaPageObject } from '../text-area';\nimport { ChoicesPageObject } from './choices';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-field]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FieldPageObject.SELECTOR, parent, index);\n }\n\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n // $control = sel<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n // 'input,select,textarea'\n // );\n\n // controls\n\n private $input = sel(InputPageObject.SELECTOR, InputPageObject);\n private $inputBuilder = sel(InputBuilderPageObject.SELECTOR, InputBuilderPageObject);\n private $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n private $textArea = sel(TextAreaPageObject.SELECTOR, TextAreaPageObject);\n private $checkbox = sel(CheckboxPageObject.SELECTOR, CheckboxPageObject);\n private $list = sel(ListPageObject.SELECTOR, ListPageObject);\n\n $choices = sel(ChoicesPageObject.SELECTOR, ChoicesPageObject);\n $errors = sel(\n '[data-test-error]',\n class extends PageObject<HTMLDivElement> {\n get type() {\n return this.element?.getAttribute('data-test-error-type');\n }\n\n get value() {\n return this.element?.getAttribute('data-test-error-value');\n }\n }\n );\n\n get $control():\n | InputPageObject\n | InputBuilderPageObject\n | SelectPageObject\n | TextAreaPageObject\n | ListPageObject {\n if (this.$inputBuilder.element) {\n return this.$inputBuilder;\n }\n\n if (this.$checkbox.element) {\n return this.$checkbox;\n }\n\n if (this.$input.element) {\n return this.$input;\n }\n\n if (this.$select.element) {\n return this.$select;\n }\n\n if (this.$textArea.element) {\n return this.$textArea;\n }\n\n if (this.$list.element) {\n return this.$list;\n }\n\n return this.$input; // @TODO bad fallback for now\n }\n\n get name() {\n return this.element?.getAttribute('data-test-field');\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { FieldPageObject } from './-private/field';\nimport { ButtonPageObject } from './button';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FormPageObject extends PageObject<HTMLFormElement> {\n static SELECTOR = '[data-test-form]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FormPageObject.SELECTOR, parent, index);\n }\n\n $submit = sel('button[type=\"submit\"]', ButtonPageObject);\n $reset = sel('button[type=\"reset\"]', ButtonPageObject);\n\n $fields = sel(FieldPageObject.SELECTOR, FieldPageObject);\n\n field(name: string) {\n return this.$fields.find((field) => field.name === name) as FieldPageObject;\n }\n\n async submit() {\n await triggerEvent(this.element as HTMLFormElement, 'submit');\n }\n\n async reset() {\n await triggerEvent(this.element as HTMLFormElement, 'reset');\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PagePageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-page]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PagePageObject.SELECTOR, parent, index);\n }\n\n $header = sel<HTMLElement>('header');\n\n $title = sel<HTMLHeadingElement>('header > h1');\n $description = sel<HTMLParagraphElement>('header > p');\n $nav = sel<HTMLElement>('header > nav');\n\n $content = sel<HTMLElement>('[part=\"content\"]');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PillButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-pill-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PillButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PopoverPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-popover]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PopoverPageObject.SELECTOR, parent, index);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SectionPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-section]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SectionPageObject.SELECTOR, parent, index);\n }\n\n $header = sel('[data-test-section=\"header\"]');\n $title = sel('[data-test-section=\"title\"]');\n}\n"],"names":["IconPageObject","PageObject","SELECTOR","constructor","selector","parent","index","name","element","getAttribute","style","IconButtonPageObject","intent","importance","spacing","push","click","$icon","sel","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","InputBuilderPageObject","$prefix","$affix","$suffix","$input","CurrencyInputPageObject","ListPageObject","$option","select","options","selectListbox","SelectPageObject","keepPreviouslySelected","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","value","find","FieldPageObject","$inputBuilder","$select","$textArea","$checkbox","$list","$choices","$errors","type","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","PagePageObject","$header","$title","$content","PillButtonPageObject","PopoverPageObject","SectionPageObject"],"mappings":"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"}