@hokulea/ember 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declarations/components/actions/-button.d.ts +31 -0
- package/declarations/components/actions/-button.d.ts.map +1 -1
- package/declarations/components/actions/button-group.d.ts +10 -0
- package/declarations/components/actions/button-group.d.ts.map +1 -0
- package/declarations/components/actions/button.d.ts +7 -17
- package/declarations/components/actions/button.d.ts.map +1 -1
- package/declarations/components/actions/icon-button.d.ts +6 -13
- package/declarations/components/actions/icon-button.d.ts.map +1 -1
- package/declarations/components/actions/radio-button-group.d.ts +57 -0
- package/declarations/components/actions/radio-button-group.d.ts.map +1 -0
- package/declarations/components/button-group.d.ts +2 -0
- package/declarations/components/button-group.d.ts.map +1 -0
- package/declarations/components/radio-button-group.d.ts +2 -0
- package/declarations/components/radio-button-group.d.ts.map +1 -0
- package/declarations/index.d.ts +2 -0
- package/declarations/index.d.ts.map +1 -1
- package/declarations/template-registry.d.ts +4 -0
- package/declarations/template-registry.d.ts.map +1 -1
- package/declarations/test-support/index.d.ts +2 -0
- package/declarations/test-support/index.d.ts.map +1 -1
- package/declarations/test-support/page-objects/button-group.d.ts +9 -0
- package/declarations/test-support/page-objects/button-group.d.ts.map +1 -0
- package/declarations/test-support/page-objects/button.d.ts.map +1 -1
- package/declarations/test-support/page-objects/radio-button-group.d.ts +33 -0
- package/declarations/test-support/page-objects/radio-button-group.d.ts.map +1 -0
- package/dist/{-button-KUaJCQaB.js → -button-zstwNwHq.js} +8 -2
- package/dist/-button-zstwNwHq.js.map +1 -0
- package/dist/_app_/components/button-group.js +1 -0
- package/dist/_app_/components/radio-button-group.js +1 -0
- package/dist/{app-header-B9BWy4HI.js → app-header-zFoKDgm0.js} +2 -2
- package/dist/{app-header-B9BWy4HI.js.map → app-header-zFoKDgm0.js.map} +1 -1
- package/dist/button-DCEeKVJE.js +25 -0
- package/dist/button-DCEeKVJE.js.map +1 -0
- package/dist/button-group-L-yIZgQe.js +14 -0
- package/dist/button-group-L-yIZgQe.js.map +1 -0
- package/dist/components/app-header.js +1 -1
- package/dist/components/button-group.js +2 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/radio-button-group.js +2 -0
- package/dist/components/radio-button-group.js.map +1 -0
- package/dist/{icon-button-ClE5SC8Y.js → icon-button-C1YrOLFe.js} +7 -5
- package/dist/icon-button-C1YrOLFe.js.map +1 -0
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/{pagination-Mgv860Cf.js → pagination-CjkoHYcN.js} +2 -2
- package/dist/{pagination-Mgv860Cf.js.map → pagination-CjkoHYcN.js.map} +1 -1
- package/dist/radio-button-group-D7LjyINa.js +91 -0
- package/dist/radio-button-group-D7LjyINa.js.map +1 -0
- package/dist/test-support/index.js +22 -2
- package/dist/test-support/index.js.map +1 -1
- package/package.json +8 -7
- package/dist/-button-KUaJCQaB.js.map +0 -1
- package/dist/button-CRe5grz4.js +0 -24
- package/dist/button-CRe5grz4.js.map +0 -1
- package/dist/icon-button-ClE5SC8Y.js.map +0 -1
|
@@ -5,21 +5,23 @@ import { b as asBoolean, n as not, a as and } from './helpers-D4So5-uK.js';
|
|
|
5
5
|
import { d as disabled } from './disabled-B_FQ0Z51.js';
|
|
6
6
|
import { P as PushElement } from './push-C8z1Qw41.js';
|
|
7
7
|
import { I as Icon } from './icon-ej-3ZqQt.js';
|
|
8
|
-
import { i as isLink } from './-button-
|
|
8
|
+
import { i as isLink, p as pushOrToggle } from './-button-zstwNwHq.js';
|
|
9
9
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
11
|
|
|
12
12
|
class IconButton extends Component {
|
|
13
13
|
get label() {
|
|
14
|
-
assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.',
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-
|
|
14
|
+
assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.',
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
16
|
+
this.args.label !== undefined);
|
|
16
17
|
return this.args.label;
|
|
17
18
|
}
|
|
18
19
|
static {
|
|
19
|
-
setComponentTemplate(precompileTemplate("<PushElement @push={{@push}} @href={{@href}} @element={{element \"button\"}} class=\"icon-button\" type={{if (and (not (isLink @push)) (not (asBoolean @href))) \"button\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} aria-label={{this.label}} {{disabled when=(if @disabled @disabled false)}} data-test-icon-button ...attributes>\n <Icon @icon={{@icon}} data-test-icon-button=\"icon\" />\n</PushElement>", {
|
|
20
|
+
setComponentTemplate(precompileTemplate("<PushElement @push={{pushOrToggle @push @pressed}} @href={{@href}} @element={{element \"button\"}} class=\"icon-button\" type={{if (and (not (isLink @push)) (not (asBoolean @href))) \"button\"}} aria-pressed={{if @pressed (if @pressed \"true\" \"false\")}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} aria-label={{this.label}} {{disabled when=(if @disabled @disabled false)}} data-test-icon-button ...attributes>\n <Icon @icon={{@icon}} data-test-icon-button=\"icon\" />\n</PushElement>", {
|
|
20
21
|
strictMode: true,
|
|
21
22
|
scope: () => ({
|
|
22
23
|
PushElement,
|
|
24
|
+
pushOrToggle,
|
|
23
25
|
element,
|
|
24
26
|
and,
|
|
25
27
|
not,
|
|
@@ -33,4 +35,4 @@ class IconButton extends Component {
|
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
export { IconButton as I };
|
|
36
|
-
//# sourceMappingURL=icon-button-
|
|
38
|
+
//# sourceMappingURL=icon-button-C1YrOLFe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-button-C1YrOLFe.js","sources":["../src/components/actions/icon-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport { element } from 'ember-element-helper';\n\nimport { and, asBoolean, not } from '../../-private/helpers.ts';\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { type PushArgs, PushElement } from '../../-private/push.gts';\nimport { Icon } from '../graphics/icon.gts';\nimport {\n type ButtonArgs,\n type IconButtonArgs,\n isLink,\n type PressedButtonArgs,\n pushOrToggle,\n type ToggleFn\n} from './-button.ts';\n\nimport type { CommandAction } from 'ember-command';\nimport type { Simplify } from 'type-fest';\n\nexport interface IconButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n Args: Simplify<\n Omit<PushArgs, 'push'> &\n Omit<PressedButtonArgs, 'push'> &\n ButtonArgs & {\n push?: ToggleFn | CommandAction;\n } & IconButtonArgs\n >;\n Blocks: {\n default: [];\n };\n}\n\nexport class IconButton extends Component<IconButtonSignature> {\n get label() {\n assert(\n 'Please provide a `@label` to `<IconButton>` for accessibility reasons.',\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n this.args.label !== undefined\n );\n\n return this.args.label;\n }\n\n <template>\n <PushElement\n @push={{pushOrToggle @push @pressed}}\n @href={{@href}}\n @element={{element \"button\"}}\n class=\"icon-button\"\n type={{if (and (not (isLink @push)) (not (asBoolean @href))) \"button\"}}\n aria-pressed={{if @pressed (if @pressed \"true\" \"false\")}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n aria-label={{this.label}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-icon-button\n ...attributes\n >\n <Icon @icon={{@icon}} data-test-icon-button=\"icon\" />\n </PushElement>\n </template>\n}\n"],"names":["IconButton","Component","label","assert","args","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","PushElement","pushOrToggle","element","and","not","isLink","asBoolean","disabled","Icon"],"mappings":";;;;;;;;;;;AAmCO,MAAMA,mBAAmBC,SAAA,CAAU;EACxC,IAAIC,KAAAA,GAAQ;AACVC,IAAAA,MAAA,CACE;AAEA;AACA,IAAA,IAAI,CAACC,IAAI,CAACF,KAAK,KAAKG,SAAA,CAAA;AAGtB,IAAA,OAAO,IAAI,CAACD,IAAI,CAACF,KAAK;AACxB,EAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAAA,gkBAAA,EAkBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,WAAA;QAAAC,YAAA;QAAAC,OAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,MAAA;QAAAC,SAAA;QAAAC,QAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export { B as Button } from './button-
|
|
2
|
-
export {
|
|
1
|
+
export { B as Button } from './button-DCEeKVJE.js';
|
|
2
|
+
export { B as ButtonGroup } from './button-group-L-yIZgQe.js';
|
|
3
|
+
export { I as IconButton } from './icon-button-C1YrOLFe.js';
|
|
4
|
+
export { R as RadioButtonGroup } from './radio-button-group-D7LjyINa.js';
|
|
3
5
|
export { C as Checkbox } from './checkbox-Dq-Ba0eG.js';
|
|
4
6
|
export { C as CurrencyInput } from './currency-input-BXZynbgP.js';
|
|
5
7
|
export { D as DateInput } from './date-input-Do_gdYif.js';
|
|
@@ -21,10 +23,10 @@ export { A as Alert } from './alert-CHUcylXU.js';
|
|
|
21
23
|
export { F as Form } from './form-VcfCjgct.js';
|
|
22
24
|
export { A as Avatar } from './avatar-CKkZu7w3.js';
|
|
23
25
|
export { I as Icon } from './icon-ej-3ZqQt.js';
|
|
24
|
-
export { A as AppHeader } from './app-header-
|
|
26
|
+
export { A as AppHeader } from './app-header-zFoKDgm0.js';
|
|
25
27
|
export { L as Link } from './link-4Kc0K38u.js';
|
|
26
28
|
export { N as NavigationList } from './navigation-list-DkWUXH9a.js';
|
|
27
|
-
export { P as Pagination } from './pagination-
|
|
29
|
+
export { P as Pagination } from './pagination-CjkoHYcN.js';
|
|
28
30
|
export { T as TabNav } from './tab-nav-pvb2XhOD.js';
|
|
29
31
|
export { F as FocusPage } from './focus-page-De0KXI-m.js';
|
|
30
32
|
export { P as Page } from './page-BlSv_2Xh.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { c as asNumber, r as range, g as gt } from './helpers-D4So5-uK.js';
|
|
4
|
-
import { I as IconButton } from './icon-button-
|
|
4
|
+
import { I as IconButton } from './icon-button-C1YrOLFe.js';
|
|
5
5
|
import { N as NumberInput } from './number-input-C3nCdLGj.js';
|
|
6
6
|
import { S as Select } from './select-CrdsGEgR.js';
|
|
7
7
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -119,4 +119,4 @@ class Pagination extends Component {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
export { Pagination as P };
|
|
122
|
-
//# sourceMappingURL=pagination-
|
|
122
|
+
//# sourceMappingURL=pagination-CjkoHYcN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-Mgv860Cf.js","sources":["../src/components/navigation/-pagination.ts","../src/components/navigation/pagination.gts"],"sourcesContent":["export const FirstIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M200 48v160a8 8 0 0 1-13.66 5.66l-80-80a8 8 0 0 1 0-11.32l80-80A8 8 0 0 1 200 48M72 40a8 8 0 0 0-8 8v160a8 8 0 0 0 16 0V48a8 8 0 0 0-8-8\"/></svg>`;\nexport const PrevIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M168 48v160a8 8 0 0 1-13.66 5.66l-80-80a8 8 0 0 1 0-11.32l80-80A8 8 0 0 1 168 48\"/></svg>`;\nexport const NextIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"m181.66 133.66l-80 80A8 8 0 0 1 88 208V48a8 8 0 0 1 13.66-5.66l80 80a8 8 0 0 1 0 11.32\"/></svg>`;\nexport const LastIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M149.66 122.34a8 8 0 0 1 0 11.32l-80 80A8 8 0 0 1 56 208V48a8 8 0 0 1 13.66-5.66ZM184 40a8 8 0 0 0-8 8v160a8 8 0 0 0 16 0V48a8 8 0 0 0-8-8\"/></svg>`;\n\nexport const LABELS = {\n backward: 'Previous page',\n first: 'First page',\n forward: 'Next page',\n last: 'Last page',\n itemPerPage: 'Items per page:',\n itemRange: (min: number, max: number, total: number) => `${min} – ${max} of ${total} items`,\n item: (min: number, max: number) => `${min} – ${max} items`,\n page: (page: number) => `page ${page}`,\n pageRange: (total: number) => `of ${total} ${total === 1 ? 'page' : 'pages'}`,\n pageNumber: 'Page Number'\n};\n","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport { asNumber, gt, range } from '../../-private/helpers.ts';\nimport { IconButton } from '../actions/icon-button.gts';\nimport { NumberInput } from '../controls/number-input.gts';\nimport { Select } from '../controls/select.gts';\nimport { LABELS, NextIcon, PrevIcon } from './-pagination.ts';\n\ninterface PaginationSignature {\n Element: HTMLElement;\n Args: {\n backwardLabel?: string;\n\n forwardLabel?: string;\n\n change?: (value: { page: number; pageSize: number }) => void;\n\n /**\n * The translatable text indicating the number of items per page.\n */\n itemsPerPageLabel?: string;\n /**\n * The function returning a translatable text showing where the current page is,\n * in a manner of the range of items.\n */\n itemRangeLabel?: (min: number, max: number, total: number) => string;\n itemLabel?: (min: number, max: number) => string;\n\n /**\n * The current page.\n */\n page?: number;\n\n /**\n * The number dictating how many items a page contains.\n */\n pageSize: number;\n\n /**\n * The choices for `pageSize`.\n */\n pageSizes?: number[] | { label: string; value: number }[];\n /**\n * The translatable text showing the current page.\n */\n pageLabel?: (page: number) => string;\n /**\n * A function returning PII showing where the current page is.\n */\n pageRangeLabel?: (total: number) => string;\n pageNumberLabel?: string;\n /**\n * The total number of items.\n */\n totalItems?: number;\n };\n}\n\nexport class Pagination extends Component<PaginationSignature> {\n @tracked total = 0;\n\n get minItems() {\n return (this.page - 1) * this.args.pageSize + 1;\n }\n\n get maxItems() {\n return this.page * this.args.pageSize;\n }\n\n get pages(): number | undefined {\n if (this.args.totalItems) {\n return Math.ceil(this.args.totalItems / this.args.pageSize);\n }\n\n return undefined;\n }\n\n get page() {\n return this.args.page ?? 1;\n }\n\n get itemsPerPageLabel() {\n return this.args.itemsPerPageLabel ?? LABELS.itemPerPage;\n }\n\n get itemRangeLabel() {\n return (this.args.itemRangeLabel ?? LABELS.itemRange)(\n this.minItems,\n this.maxItems,\n this.args.totalItems ?? 1\n );\n }\n\n get itemLabel() {\n return (this.args.itemLabel ?? LABELS.item)(this.minItems, this.maxItems);\n }\n\n get pageLabel() {\n return (this.args.pageLabel ?? LABELS.page)(this.page);\n }\n\n get pageNumberLabel() {\n return this.args.pageNumberLabel ?? LABELS.pageNumber;\n }\n\n get pageRangeLabel() {\n return (this.args.pageRangeLabel ?? LABELS.pageRange)(this.pages ?? 0);\n }\n\n get pageSizeOptions() {\n return (this.args.pageSizes ?? []).map((i) =>\n typeof i === 'object' ? i : { value: i, label: i }\n );\n }\n\n get backwardLabel() {\n return this.args.backwardLabel ?? LABELS.backward;\n }\n\n get forwardLabel() {\n return this.args.forwardLabel ?? LABELS.forward;\n }\n\n changePage = (page?: number) => {\n if (page) {\n this.args.change?.({\n page: this.pages ? Math.min(page, this.pages) : page,\n pageSize: this.args.pageSize\n });\n }\n };\n\n changePageSize = (pageSize: string) => {\n this.args.change?.({\n page: this.page,\n pageSize: Number.parseInt(pageSize)\n });\n };\n\n prev = () => {\n if (this.page > 1) {\n this.changePage(this.page - 1);\n }\n };\n\n next = () => {\n if (this.pages) {\n if (this.page < this.pages) {\n this.changePage(this.page + 1);\n }\n } else {\n this.changePage(this.page + 1);\n }\n };\n\n <template>\n <div class=\"pagination\" data-test-pagination>\n {{#if @pageSizes}}\n <span part=\"page-size\">\n {{this.itemsPerPageLabel}}\n\n {{! @glint-ignore }}\n <Select @spacing=\"-1\" @value={{@pageSize}} @update={{this.changePageSize}} as |s|>\n {{#each this.pageSizeOptions as |o|}}\n <s.Option @value={{o.value}}>{{o.label}}</s.Option>\n {{/each}}\n </Select>\n </span>\n {{/if}}\n <span part=\"items\">\n {{#if @totalItems}}\n {{this.itemRangeLabel}}\n {{else}}\n {{this.itemLabel}}\n {{/if}}\n </span>\n <span part=\"page\">\n {{#if @totalItems}}\n {{#if (gt this.pages 20)}}\n <NumberInput @spacing=\"-1\" @value={{this.page}} @update={{this.changePage}} />\n {{else}}\n {{! @glint-ignore }}\n <Select @spacing=\"-1\" @value={{this.page}} @update={{this.changePage}} as |s|>\n {{#each (range (asNumber this.pages)) as |p|}}\n <s.Option @value={{p}}>{{p}}</s.Option>\n {{/each}}\n </Select>\n {{/if}}\n {{this.pageRangeLabel}}\n {{else}}\n {{this.pageLabel}}\n {{/if}}\n </span>\n <span part=\"nav\">\n <IconButton\n @push={{this.prev}}\n @icon={{PrevIcon}}\n @label={{this.backwardLabel}}\n @importance=\"plain\"\n @spacing=\"-1\"\n data-test-prev\n />\n <IconButton\n @push={{this.next}}\n @icon={{NextIcon}}\n @label={{this.forwardLabel}}\n @importance=\"plain\"\n @spacing=\"-1\"\n data-test-next\n />\n </span>\n </div>\n </template>\n}\n"],"names":["PrevIcon","NextIcon","LABELS","backward","first","forward","last","itemPerPage","itemRange","min","max","total","item","page","pageRange","pageNumber","Pagination","Component","g","prototype","tracked","i","void 0","minItems","args","pageSize","maxItems","pages","totalItems","Math","ceil","undefined","itemsPerPageLabel","itemRangeLabel","itemLabel","pageLabel","pageNumberLabel","pageRangeLabel","pageSizeOptions","pageSizes","map","value","label","backwardLabel","forwardLabel","changePage","change","changePageSize","Number","parseInt","prev","next","setComponentTemplate","precompileTemplate","strictMode","scope","Select","gt","NumberInput","range","asNumber","IconButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination-CjkoHYcN.js","sources":["../src/components/navigation/-pagination.ts","../src/components/navigation/pagination.gts"],"sourcesContent":["export const FirstIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M200 48v160a8 8 0 0 1-13.66 5.66l-80-80a8 8 0 0 1 0-11.32l80-80A8 8 0 0 1 200 48M72 40a8 8 0 0 0-8 8v160a8 8 0 0 0 16 0V48a8 8 0 0 0-8-8\"/></svg>`;\nexport const PrevIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M168 48v160a8 8 0 0 1-13.66 5.66l-80-80a8 8 0 0 1 0-11.32l80-80A8 8 0 0 1 168 48\"/></svg>`;\nexport const NextIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"m181.66 133.66l-80 80A8 8 0 0 1 88 208V48a8 8 0 0 1 13.66-5.66l80 80a8 8 0 0 1 0 11.32\"/></svg>`;\nexport const LastIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M149.66 122.34a8 8 0 0 1 0 11.32l-80 80A8 8 0 0 1 56 208V48a8 8 0 0 1 13.66-5.66ZM184 40a8 8 0 0 0-8 8v160a8 8 0 0 0 16 0V48a8 8 0 0 0-8-8\"/></svg>`;\n\nexport const LABELS = {\n backward: 'Previous page',\n first: 'First page',\n forward: 'Next page',\n last: 'Last page',\n itemPerPage: 'Items per page:',\n itemRange: (min: number, max: number, total: number) => `${min} – ${max} of ${total} items`,\n item: (min: number, max: number) => `${min} – ${max} items`,\n page: (page: number) => `page ${page}`,\n pageRange: (total: number) => `of ${total} ${total === 1 ? 'page' : 'pages'}`,\n pageNumber: 'Page Number'\n};\n","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport { asNumber, gt, range } from '../../-private/helpers.ts';\nimport { IconButton } from '../actions/icon-button.gts';\nimport { NumberInput } from '../controls/number-input.gts';\nimport { Select } from '../controls/select.gts';\nimport { LABELS, NextIcon, PrevIcon } from './-pagination.ts';\n\ninterface PaginationSignature {\n Element: HTMLElement;\n Args: {\n backwardLabel?: string;\n\n forwardLabel?: string;\n\n change?: (value: { page: number; pageSize: number }) => void;\n\n /**\n * The translatable text indicating the number of items per page.\n */\n itemsPerPageLabel?: string;\n /**\n * The function returning a translatable text showing where the current page is,\n * in a manner of the range of items.\n */\n itemRangeLabel?: (min: number, max: number, total: number) => string;\n itemLabel?: (min: number, max: number) => string;\n\n /**\n * The current page.\n */\n page?: number;\n\n /**\n * The number dictating how many items a page contains.\n */\n pageSize: number;\n\n /**\n * The choices for `pageSize`.\n */\n pageSizes?: number[] | { label: string; value: number }[];\n /**\n * The translatable text showing the current page.\n */\n pageLabel?: (page: number) => string;\n /**\n * A function returning PII showing where the current page is.\n */\n pageRangeLabel?: (total: number) => string;\n pageNumberLabel?: string;\n /**\n * The total number of items.\n */\n totalItems?: number;\n };\n}\n\nexport class Pagination extends Component<PaginationSignature> {\n @tracked total = 0;\n\n get minItems() {\n return (this.page - 1) * this.args.pageSize + 1;\n }\n\n get maxItems() {\n return this.page * this.args.pageSize;\n }\n\n get pages(): number | undefined {\n if (this.args.totalItems) {\n return Math.ceil(this.args.totalItems / this.args.pageSize);\n }\n\n return undefined;\n }\n\n get page() {\n return this.args.page ?? 1;\n }\n\n get itemsPerPageLabel() {\n return this.args.itemsPerPageLabel ?? LABELS.itemPerPage;\n }\n\n get itemRangeLabel() {\n return (this.args.itemRangeLabel ?? LABELS.itemRange)(\n this.minItems,\n this.maxItems,\n this.args.totalItems ?? 1\n );\n }\n\n get itemLabel() {\n return (this.args.itemLabel ?? LABELS.item)(this.minItems, this.maxItems);\n }\n\n get pageLabel() {\n return (this.args.pageLabel ?? LABELS.page)(this.page);\n }\n\n get pageNumberLabel() {\n return this.args.pageNumberLabel ?? LABELS.pageNumber;\n }\n\n get pageRangeLabel() {\n return (this.args.pageRangeLabel ?? LABELS.pageRange)(this.pages ?? 0);\n }\n\n get pageSizeOptions() {\n return (this.args.pageSizes ?? []).map((i) =>\n typeof i === 'object' ? i : { value: i, label: i }\n );\n }\n\n get backwardLabel() {\n return this.args.backwardLabel ?? LABELS.backward;\n }\n\n get forwardLabel() {\n return this.args.forwardLabel ?? LABELS.forward;\n }\n\n changePage = (page?: number) => {\n if (page) {\n this.args.change?.({\n page: this.pages ? Math.min(page, this.pages) : page,\n pageSize: this.args.pageSize\n });\n }\n };\n\n changePageSize = (pageSize: string) => {\n this.args.change?.({\n page: this.page,\n pageSize: Number.parseInt(pageSize)\n });\n };\n\n prev = () => {\n if (this.page > 1) {\n this.changePage(this.page - 1);\n }\n };\n\n next = () => {\n if (this.pages) {\n if (this.page < this.pages) {\n this.changePage(this.page + 1);\n }\n } else {\n this.changePage(this.page + 1);\n }\n };\n\n <template>\n <div class=\"pagination\" data-test-pagination>\n {{#if @pageSizes}}\n <span part=\"page-size\">\n {{this.itemsPerPageLabel}}\n\n {{! @glint-ignore }}\n <Select @spacing=\"-1\" @value={{@pageSize}} @update={{this.changePageSize}} as |s|>\n {{#each this.pageSizeOptions as |o|}}\n <s.Option @value={{o.value}}>{{o.label}}</s.Option>\n {{/each}}\n </Select>\n </span>\n {{/if}}\n <span part=\"items\">\n {{#if @totalItems}}\n {{this.itemRangeLabel}}\n {{else}}\n {{this.itemLabel}}\n {{/if}}\n </span>\n <span part=\"page\">\n {{#if @totalItems}}\n {{#if (gt this.pages 20)}}\n <NumberInput @spacing=\"-1\" @value={{this.page}} @update={{this.changePage}} />\n {{else}}\n {{! @glint-ignore }}\n <Select @spacing=\"-1\" @value={{this.page}} @update={{this.changePage}} as |s|>\n {{#each (range (asNumber this.pages)) as |p|}}\n <s.Option @value={{p}}>{{p}}</s.Option>\n {{/each}}\n </Select>\n {{/if}}\n {{this.pageRangeLabel}}\n {{else}}\n {{this.pageLabel}}\n {{/if}}\n </span>\n <span part=\"nav\">\n <IconButton\n @push={{this.prev}}\n @icon={{PrevIcon}}\n @label={{this.backwardLabel}}\n @importance=\"plain\"\n @spacing=\"-1\"\n data-test-prev\n />\n <IconButton\n @push={{this.next}}\n @icon={{NextIcon}}\n @label={{this.forwardLabel}}\n @importance=\"plain\"\n @spacing=\"-1\"\n data-test-next\n />\n </span>\n </div>\n </template>\n}\n"],"names":["PrevIcon","NextIcon","LABELS","backward","first","forward","last","itemPerPage","itemRange","min","max","total","item","page","pageRange","pageNumber","Pagination","Component","g","prototype","tracked","i","void 0","minItems","args","pageSize","maxItems","pages","totalItems","Math","ceil","undefined","itemsPerPageLabel","itemRangeLabel","itemLabel","pageLabel","pageNumberLabel","pageRangeLabel","pageSizeOptions","pageSizes","map","value","label","backwardLabel","forwardLabel","changePage","change","changePageSize","Number","parseInt","prev","next","setComponentTemplate","precompileTemplate","strictMode","scope","Select","gt","NumberInput","range","asNumber","IconButton"],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import Component from '@glimmer/component';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
import { registerDestructor } from '@ember/destroyable';
|
|
4
|
+
import { hash } from '@ember/helper';
|
|
5
|
+
import { next } from '@ember/runloop';
|
|
6
|
+
import { ariaRadioGroup } from 'ember-aria-voyager';
|
|
7
|
+
import { TrackedArray } from 'tracked-built-ins';
|
|
8
|
+
import { d as disabled } from './disabled-B_FQ0Z51.js';
|
|
9
|
+
import { I as Icon } from './icon-ej-3ZqQt.js';
|
|
10
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
11
|
+
import { setComponentTemplate } from '@ember/component';
|
|
12
|
+
|
|
13
|
+
class RadioButton extends Component {
|
|
14
|
+
constructor(owner, args) {
|
|
15
|
+
super(owner, args);
|
|
16
|
+
args.register(args.value);
|
|
17
|
+
registerDestructor(this, () => {
|
|
18
|
+
args.unregister(args.value);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
static {
|
|
22
|
+
setComponentTemplate(precompileTemplate("<button type=\"button\" role=\"radio\" class=\"button\" aria-checked={{if (@isSelected @value) \"true\" \"false\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} {{disabled when=(if @disabled @disabled false)}} data-test-button ...attributes>\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n</button>", {
|
|
23
|
+
strictMode: true,
|
|
24
|
+
scope: () => ({
|
|
25
|
+
disabled
|
|
26
|
+
})
|
|
27
|
+
}), this);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
class RadioIconButton extends Component {
|
|
31
|
+
constructor(owner, args) {
|
|
32
|
+
super(owner, args);
|
|
33
|
+
args.register(args.value);
|
|
34
|
+
registerDestructor(this, () => {
|
|
35
|
+
args.unregister(args.value);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get label() {
|
|
39
|
+
assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.',
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
41
|
+
this.args.label !== undefined);
|
|
42
|
+
return this.args.label;
|
|
43
|
+
}
|
|
44
|
+
static {
|
|
45
|
+
setComponentTemplate(precompileTemplate("<button type=\"button\" role=\"radio\" class=\"icon-button\" aria-checked={{if (@isSelected @value) \"true\" \"false\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} aria-label={{this.label}} {{disabled when=(if @disabled @disabled false)}} data-test-icon-button ...attributes>\n {{!-- role=\"presentation\" to make glint happy for no reason --}}\n <Icon @icon={{@icon}} role=\"presentation\" data-test-icon-button=\"icon\" />\n</button>", {
|
|
46
|
+
strictMode: true,
|
|
47
|
+
scope: () => ({
|
|
48
|
+
disabled,
|
|
49
|
+
Icon
|
|
50
|
+
})
|
|
51
|
+
}), this);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
class RadioButtonGroup extends Component {
|
|
55
|
+
Button = RadioButton;
|
|
56
|
+
IconButton = RadioIconButton;
|
|
57
|
+
items = new TrackedArray();
|
|
58
|
+
register = item => {
|
|
59
|
+
// eslint-disable-next-line ember/no-runloop
|
|
60
|
+
next(() => {
|
|
61
|
+
this.items.push(item);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
unregister = item => {
|
|
65
|
+
// eslint-disable-next-line ember/no-runloop
|
|
66
|
+
next(() => {
|
|
67
|
+
this.items.splice(this.items.indexOf(item), 1);
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
isChecked = value => {
|
|
71
|
+
return this.args.value === value;
|
|
72
|
+
};
|
|
73
|
+
select = value => {
|
|
74
|
+
// eslint-disable-next-line ember/no-runloop
|
|
75
|
+
next(() => {
|
|
76
|
+
this.args.update?.(value);
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
static {
|
|
80
|
+
setComponentTemplate(precompileTemplate("<div class=\"button-group\" {{ariaRadioGroup items=this.items selection=@value select=this.select}}>\n {{yield (hash Button=(component this.Button register=this.register unregister=this.unregister isSelected=this.isChecked) IconButton=(component this.IconButton register=this.register unregister=this.unregister isSelected=this.isChecked))}}\n</div>", {
|
|
81
|
+
strictMode: true,
|
|
82
|
+
scope: () => ({
|
|
83
|
+
ariaRadioGroup,
|
|
84
|
+
hash
|
|
85
|
+
})
|
|
86
|
+
}), this);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export { RadioButtonGroup as R };
|
|
91
|
+
//# sourceMappingURL=radio-button-group-D7LjyINa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-button-group-D7LjyINa.js","sources":["../src/components/actions/radio-button-group.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\n\nimport { ariaRadioGroup } from 'ember-aria-voyager';\n// at some point this. For compatibility reasons, this isn't used yet\n// import { trackedArray } from '@ember/reactive/collections';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { Icon } from '../graphics/icon.gts';\n\nimport type { ButtonArgs, ButtonBlocks, IconButtonArgs } from './-button.ts';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface RadioArgs<V> {\n value: V;\n register: (button: V) => void;\n unregister: (button: V) => void;\n isSelected: (value: V) => boolean;\n}\n\ninterface RadioButtonSignature<V> {\n Element: HTMLButtonElement;\n Args: ButtonArgs & RadioArgs<V>;\n Blocks: ButtonBlocks;\n}\n\nclass RadioButton<V> extends Component<RadioButtonSignature<V>> {\n constructor(owner: Owner, args: RadioButtonSignature<V>['Args']) {\n super(owner, args);\n\n args.register(args.value);\n\n registerDestructor(this, () => {\n args.unregister(args.value);\n });\n }\n\n <template>\n <button\n type=\"button\"\n role=\"radio\"\n class=\"button\"\n aria-checked={{if (@isSelected @value) \"true\" \"false\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </button>\n </template>\n}\n\ninterface RadioIconButtonSignature<V> {\n Element: HTMLButtonElement;\n Args: ButtonArgs & IconButtonArgs & RadioArgs<V>;\n Blocks: ButtonBlocks;\n}\n\nclass RadioIconButton<V> extends Component<RadioIconButtonSignature<V>> {\n constructor(owner: Owner, args: RadioIconButtonSignature<V>['Args']) {\n super(owner, args);\n\n args.register(args.value);\n\n registerDestructor(this, () => {\n args.unregister(args.value);\n });\n }\n\n get label() {\n assert(\n 'Please provide a `@label` to `<IconButton>` for accessibility reasons.',\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n this.args.label !== undefined\n );\n\n return this.args.label;\n }\n\n <template>\n <button\n type=\"button\"\n role=\"radio\"\n class=\"icon-button\"\n aria-checked={{if (@isSelected @value) \"true\" \"false\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n aria-label={{this.label}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-icon-button\n ...attributes\n >\n {{! role=\"presentation\" to make glint happy for no reason }}\n <Icon @icon={{@icon}} role=\"presentation\" data-test-icon-button=\"icon\" />\n </button>\n </template>\n}\n\ntype RadioButtonGroupSignature<V> = {\n Element: HTMLDivElement;\n Args: {\n value: V;\n update?: (value: V) => void;\n };\n Blocks: {\n default: [\n {\n Button: WithBoundArgs<typeof RadioButton<V>, 'register' | 'unregister' | 'isSelected'>;\n IconButton: WithBoundArgs<\n typeof RadioIconButton<V>,\n 'register' | 'unregister' | 'isSelected'\n >;\n }\n ];\n };\n};\n\nexport class RadioButtonGroup<V> extends Component<RadioButtonGroupSignature<V>> {\n Button = RadioButton<V>;\n IconButton = RadioIconButton<V>;\n\n items: V[] = new TrackedArray();\n\n register = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregister = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.splice(this.items.indexOf(item), 1);\n });\n };\n\n isChecked = (value: V) => {\n return this.args.value === value;\n };\n\n select = (value: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.args.update?.(value);\n });\n };\n\n <template>\n <div\n class=\"button-group\"\n {{ariaRadioGroup items=this.items selection=@value select=this.select}}\n >\n {{yield\n (hash\n Button=(component\n this.Button register=this.register unregister=this.unregister isSelected=this.isChecked\n )\n IconButton=(component\n this.IconButton\n register=this.register\n unregister=this.unregister\n isSelected=this.isChecked\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["RadioButton","Component","constructor","owner","args","register","value","registerDestructor","unregister","setComponentTemplate","precompileTemplate","strictMode","scope","disabled","RadioIconButton","label","assert","undefined","Icon","RadioButtonGroup","Button","IconButton","items","TrackedArray","item","next","push","splice","indexOf","isChecked","select","update","ariaRadioGroup","hash"],"mappings":";;;;;;;;;;;;AA+BA,MAAMA,WAAA,SAAuBC,SAAA,CAA+B;AAC1DC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAqC,EAAE;AAC/D,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,QAAQ,CAACD,IAAA,CAAKE,KAAK,CAAA;IAExBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,IAAA,CAAKI,UAAU,CAACJ,IAAA,CAAKE,KAAK,CAAA;AAC5B,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,8wBAAA,EAmCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAQA,MAAMC,eAAA,SAA2Bb,SAAA,CAAmC;AAClEC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAyC,EAAE;AACnE,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,QAAQ,CAACD,IAAA,CAAKE,KAAK,CAAA;IAExBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,IAAA,CAAKI,UAAU,CAACJ,IAAA,CAAKE,KAAK,CAAA;AAC5B,IAAA,CAAA,CAAA;AACF,EAAA;EAEA,IAAIS,KAAAA,GAAQ;AACVC,IAAAA,MAAA,CACE;AAEA;AACA,IAAA,IAAI,CAACZ,IAAI,CAACW,KAAK,KAAKE,SAAA,CAAA;AAGtB,IAAA,OAAO,IAAI,CAACb,IAAI,CAACW,KAAK;AACxB,EAAA;AAEA,EAAA;IAAAN,oBAAA,CAAAC,kBAAA,CAAA,+gBAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;AAAAK,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAqBO,MAAMC,gBAAA,SAA4BlB,SAAA,CAAoC;AAC3EmB,EAAAA,MAAA,GAASpB;AACTqB,EAAAA,UAAA,GAAaP;AAEbQ,EAAAA,KAAA,GAAa,IAAIC,YAAA,EAAA;EAEjBlB,QAAA,GAAYmB,IAAM,IAAA;AAChB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACH,KAAK,CAACI,IAAI,CAACF,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAhB,UAAA,GAAcgB,IAAM,IAAA;AAClB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACH,KAAK,CAACK,MAAM,CAAC,IAAI,CAACL,KAAK,CAACM,OAAO,CAACJ,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;EAEAK,SAAA,GAAavB,KAAO,IAAA;AAClB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,KAAK,KAAKA,KAAA;EAC7B,CAAA;EAEAwB,MAAA,GAAUxB,KAAO,IAAA;AACf;AACAmB,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACrB,IAAI,CAAC2B,MAAM,GAAGzB,KAAA,CAAA;AACrB,IAAA,CAAA,CAAA;EACF,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,gWAAA,EAmBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAoB,cAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -153,7 +153,7 @@ class AvatarPageObject extends PageObject {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
class ButtonPageObject extends PageObject {
|
|
156
|
-
static SELECTOR = '[data-test-button]';
|
|
156
|
+
static SELECTOR = '[data-test-button=""]';
|
|
157
157
|
constructor(selector, parent, index) {
|
|
158
158
|
super(selector ?? ButtonPageObject.SELECTOR, parent, index);
|
|
159
159
|
}
|
|
@@ -176,6 +176,14 @@ class ButtonPageObject extends PageObject {
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
class ButtonGroupPageObject extends PageObject {
|
|
180
|
+
static SELECTOR = '[data-test-button-group]';
|
|
181
|
+
constructor(selector, parent, index) {
|
|
182
|
+
super(selector ?? ButtonGroupPageObject.SELECTOR, parent, index);
|
|
183
|
+
}
|
|
184
|
+
$button = selector(ButtonPageObject.SELECTOR, ButtonPageObject);
|
|
185
|
+
}
|
|
186
|
+
|
|
179
187
|
class ChoicePageObject extends PageObject {
|
|
180
188
|
static SELECTOR = '[data-test-choice]';
|
|
181
189
|
constructor(selector, parent, index) {
|
|
@@ -461,6 +469,18 @@ class PopoverPageObject extends PageObject {
|
|
|
461
469
|
}
|
|
462
470
|
}
|
|
463
471
|
|
|
472
|
+
class RadioButtonGroupPageObject extends PageObject {
|
|
473
|
+
static SELECTOR = '[role="radiogroup"]';
|
|
474
|
+
constructor(selector, parent, index) {
|
|
475
|
+
super(selector ?? RadioButtonGroupPageObject.SELECTOR, parent, index);
|
|
476
|
+
}
|
|
477
|
+
$option = selector('[role="radio"]', class extends PageObject {
|
|
478
|
+
get checked() {
|
|
479
|
+
return this.element?.getAttribute('aria-checked');
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
|
|
464
484
|
class SectionPageObject extends PageObject {
|
|
465
485
|
static SELECTOR = '[data-test-section]';
|
|
466
486
|
constructor(selector, parent, index) {
|
|
@@ -499,5 +519,5 @@ class TabsPageObject extends PageObject {
|
|
|
499
519
|
}
|
|
500
520
|
}
|
|
501
521
|
|
|
502
|
-
export { AlertPageObject, AppHeaderPageObject, AvatarPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DataTablePageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PaginationPageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabNavPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
522
|
+
export { AlertPageObject, AppHeaderPageObject, AvatarPageObject, ButtonGroupPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DataTablePageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PaginationPageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioButtonGroupPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabNavPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
503
523
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/alert.ts","../../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/avatar.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/select.ts","../../src/test-support/page-objects/pagination.ts","../../src/test-support/page-objects/data-table.ts","../../src/test-support/page-objects/-private/error.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.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/-navigation.ts","../../src/test-support/page-objects/navigation-list.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","../../src/test-support/page-objects/tab-nav.ts","../../src/test-support/page-objects/tabs.ts"],"sourcesContent":["import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AlertPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-feedback]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AlertPageObject.SELECTOR, parent, index);\n }\n\n get indicator(): string | null | undefined {\n return this.element?.dataset.indicator;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n $icon = sel<HTMLSpanElement>('[part=\"icon\"]');\n $title = sel<HTMLSpanElement>('[part=\"title\"]');\n $content = sel<HTMLSpanElement>('[part=\"content\"]');\n $actions = sel<HTMLSpanElement>('[part=\"actions\"]');\n}\n","import { PageObject, selector as sel } 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 $svg = sel<SVGSVGElement>('svg');\n // $svg = sel<HTMLElement>('svg');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\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?.dataset.intent;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.dataset.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.ts';\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.ts';\nimport { MenuItemPageObject } from './menu.ts';\n\nimport type { Menu, MenuItem, MenuItemElement } from './-menu.ts';\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(`${this.#prefix} [part=\"aux\"]`, AppNavPageObject);\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 { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AvatarPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-avatar]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AvatarPageObject.SELECTOR, parent, index);\n }\n\n $svg = sel<SVGSVGElement>('svg');\n $img = sel<HTMLImageElement>('img');\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?.dataset.intent;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.dataset.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.ts';\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 get spacing(): string | null | undefined {\n return this.element?.dataset.spacing;\n }\n}\n\nexport class RangeInputPageObject extends InputPageObject {\n get orientation(): string | undefined {\n return this.control.dataset.orientation;\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 { 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 spacing(): string | null | undefined {\n return this.element?.dataset.spacing;\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, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button.ts';\nimport { NumberInputPageObject } from './input.ts';\nimport { SelectPageObject } from './select.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PaginationPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-pagination]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PaginationPageObject.SELECTOR, parent, index);\n }\n\n $pageSize = sel(\n '[part=\"page-size\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n }\n );\n\n $page = sel(\n '[part=\"page\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n $input = sel(NumberInputPageObject.SELECTOR, NumberInputPageObject);\n }\n );\n\n $items = sel<HTMLElement>('[part=\"items\"]');\n\n $prev = sel('[data-test-prev]', IconButtonPageObject);\n $next = sel('[data-test-next]', IconButtonPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { PaginationPageObject } from './pagination.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class DataTablePageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-data-table]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? DataTablePageObject.SELECTOR, parent, index);\n }\n\n $col = sel<HTMLTableCellElement>('thead th');\n $rows = sel<HTMLTableRowElement>('tbody tr');\n $paginationFooter = sel(\n '[data-pagination]',\n class extends PageObject<HTMLTableCellElement> {\n $pagination = sel(PaginationPageObject.SELECTOR, PaginationPageObject);\n }\n );\n}\n","import { PageObject } from 'fractal-page-object';\n\nexport class Error extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-error]';\n\n get type() {\n return this.element?.dataset.testErrorType;\n }\n\n get value() {\n return this.element?.dataset.testErrorValue;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input.ts';\n\nimport type { Input } from './input.ts';\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 { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\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\nexport class 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.ts';\nimport { InputPageObject } from '../input.ts';\nimport { InputBuilderPageObject } from '../input-builder.ts';\nimport { ListPageObject } from '../list.ts';\nimport { SelectPageObject } from '../select.ts';\nimport { TextAreaPageObject } from '../text-area.ts';\nimport { ChoicesPageObject } from './choices.ts';\nimport { Error } from './error.ts';\n\nimport type { RangeInputPageObject } from '../input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldRule extends PageObject<HTMLParagraphElement> {\n get invalid() {\n return Boolean(this.element?.dataset.testRuleInvalid);\n }\n}\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(Error.SELECTOR, Error);\n $rules = sel('[data-test-rule]', FieldRule);\n\n get $control():\n | InputPageObject\n | RangeInputPageObject\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?.type === 'range') {\n return this.$input as RangeInputPageObject;\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?.dataset.testField;\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { Error } from './-private/error.ts';\nimport { FieldPageObject } from './-private/field.ts';\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport type { OptionPageObject } from './-private/choices.ts';\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 $errors = sel(Error.SELECTOR, Error);\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\nexport { type Error as FieldError } from './-private/error.ts';\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavLinkPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavLinkPageObject.SELECTOR, parent, index);\n }\n\n $icon = sel(IconPageObject.SELECTOR, IconPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { NavLinkPageObject } from './-navigation.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavigationListPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-navigation-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavigationListPageObject.SELECTOR, parent, index);\n }\n\n $items = sel('[part=\"item\"]', NavLinkPageObject);\n $titles = sel<HTMLElement>('[part=\"title\"]');\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\n $content = sel<HTMLElement>('[part=\"content\"]');\n}\n\nexport class SectionedPagePageObject extends PagePageObject {\n $nav = sel<HTMLElement>('header > nav');\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?.dataset.intent;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.dataset.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","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { NavLinkPageObject } from './-navigation.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TabNavPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-tab-nav]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TabNavPageObject.SELECTOR, parent, index);\n }\n\n $items = sel('[part=\"item\"]', NavLinkPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectTab } from 'ember-aria-voyager/test-support';\n\nimport { TabValue } from '../../components/controls/tabs.gts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TabsPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-tabs]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TabsPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.$tablist.element as HTMLDivElement;\n }\n\n $tablist = sel<HTMLDivElement>('[role=\"tablist\"]');\n $tab = sel<HTMLButtonElement>('[role=\"tab\"]');\n $tabpanel = sel<HTMLElement>('[role=\"tabpanel\"]');\n\n async select(value: unknown) {\n // @ts-expect-error this is internal API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const tab = this.$tab.find((t) => t.element[TabValue] === value);\n\n if (tab) {\n await selectTab(tab);\n }\n }\n}\n"],"names":["AlertPageObject","PageObject","SELECTOR","constructor","selector","parent","index","indicator","element","dataset","importance","$icon","sel","$title","$content","$actions","IconPageObject","$svg","IconButtonPageObject","intent","spacing","push","click","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","getAttribute","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","AvatarPageObject","$img","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","SelectPageObject","$option","select","options","keepPreviouslySelected","PaginationPageObject","$pageSize","$select","$page","$input","$items","$prev","$next","DataTablePageObject","$col","$rows","$paginationFooter","$pagination","Error","type","testErrorType","value","testErrorValue","InputBuilderPageObject","$prefix","$affix","$suffix","CurrencyInputPageObject","ListPageObject","selectListbox","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","find","FieldRule","invalid","testRuleInvalid","FieldPageObject","$inputBuilder","$textArea","$checkbox","$list","$choices","$errors","$rules","name","testField","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$titles","PagePageObject","$header","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","SectionPageObject","TabNavPageObject","TabsPageObject","$tablist","$tab","$tabpanel","tab","t","TabValue","selectTab"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/alert.ts","../../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/avatar.ts","../../src/test-support/page-objects/button.ts","../../src/test-support/page-objects/button-group.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/select.ts","../../src/test-support/page-objects/pagination.ts","../../src/test-support/page-objects/data-table.ts","../../src/test-support/page-objects/-private/error.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.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/-navigation.ts","../../src/test-support/page-objects/navigation-list.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/radio-button-group.ts","../../src/test-support/page-objects/section.ts","../../src/test-support/page-objects/tab-nav.ts","../../src/test-support/page-objects/tabs.ts"],"sourcesContent":["import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AlertPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-feedback]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AlertPageObject.SELECTOR, parent, index);\n }\n\n get indicator(): string | null | undefined {\n return this.element?.dataset.indicator;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n $icon = sel<HTMLSpanElement>('[part=\"icon\"]');\n $title = sel<HTMLSpanElement>('[part=\"title\"]');\n $content = sel<HTMLSpanElement>('[part=\"content\"]');\n $actions = sel<HTMLSpanElement>('[part=\"actions\"]');\n}\n","import { PageObject, selector as sel } 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 $svg = sel<SVGSVGElement>('svg');\n // $svg = sel<HTMLElement>('svg');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\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?.dataset.intent;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.dataset.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.ts';\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.ts';\nimport { MenuItemPageObject } from './menu.ts';\n\nimport type { Menu, MenuItem, MenuItemElement } from './-menu.ts';\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(`${this.#prefix} [part=\"aux\"]`, AppNavPageObject);\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 { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AvatarPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-avatar]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AvatarPageObject.SELECTOR, parent, index);\n }\n\n $svg = sel<SVGSVGElement>('svg');\n $img = sel<HTMLImageElement>('img');\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?.dataset.intent;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.dataset.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, selector as sel } from 'fractal-page-object';\n\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ButtonGroupPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-button-group]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ButtonGroupPageObject.SELECTOR, parent, index);\n }\n\n $button = sel(ButtonPageObject.SELECTOR, ButtonPageObject);\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\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 get spacing(): string | null | undefined {\n return this.element?.dataset.spacing;\n }\n}\n\nexport class RangeInputPageObject extends InputPageObject {\n get orientation(): string | undefined {\n return this.control.dataset.orientation;\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 { 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 spacing(): string | null | undefined {\n return this.element?.dataset.spacing;\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, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button.ts';\nimport { NumberInputPageObject } from './input.ts';\nimport { SelectPageObject } from './select.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PaginationPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-pagination]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PaginationPageObject.SELECTOR, parent, index);\n }\n\n $pageSize = sel(\n '[part=\"page-size\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n }\n );\n\n $page = sel(\n '[part=\"page\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n $input = sel(NumberInputPageObject.SELECTOR, NumberInputPageObject);\n }\n );\n\n $items = sel<HTMLElement>('[part=\"items\"]');\n\n $prev = sel('[data-test-prev]', IconButtonPageObject);\n $next = sel('[data-test-next]', IconButtonPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { PaginationPageObject } from './pagination.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class DataTablePageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-data-table]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? DataTablePageObject.SELECTOR, parent, index);\n }\n\n $col = sel<HTMLTableCellElement>('thead th');\n $rows = sel<HTMLTableRowElement>('tbody tr');\n $paginationFooter = sel(\n '[data-pagination]',\n class extends PageObject<HTMLTableCellElement> {\n $pagination = sel(PaginationPageObject.SELECTOR, PaginationPageObject);\n }\n );\n}\n","import { PageObject } from 'fractal-page-object';\n\nexport class Error extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-error]';\n\n get type() {\n return this.element?.dataset.testErrorType;\n }\n\n get value() {\n return this.element?.dataset.testErrorValue;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input.ts';\n\nimport type { Input } from './input.ts';\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 { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\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\nexport class 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.ts';\nimport { InputPageObject } from '../input.ts';\nimport { InputBuilderPageObject } from '../input-builder.ts';\nimport { ListPageObject } from '../list.ts';\nimport { SelectPageObject } from '../select.ts';\nimport { TextAreaPageObject } from '../text-area.ts';\nimport { ChoicesPageObject } from './choices.ts';\nimport { Error } from './error.ts';\n\nimport type { RangeInputPageObject } from '../input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldRule extends PageObject<HTMLParagraphElement> {\n get invalid() {\n return Boolean(this.element?.dataset.testRuleInvalid);\n }\n}\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(Error.SELECTOR, Error);\n $rules = sel('[data-test-rule]', FieldRule);\n\n get $control():\n | InputPageObject\n | RangeInputPageObject\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?.type === 'range') {\n return this.$input as RangeInputPageObject;\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?.dataset.testField;\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { Error } from './-private/error.ts';\nimport { FieldPageObject } from './-private/field.ts';\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport type { OptionPageObject } from './-private/choices.ts';\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 $errors = sel(Error.SELECTOR, Error);\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\nexport { type Error as FieldError } from './-private/error.ts';\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavLinkPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavLinkPageObject.SELECTOR, parent, index);\n }\n\n $icon = sel(IconPageObject.SELECTOR, IconPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { NavLinkPageObject } from './-navigation.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavigationListPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-navigation-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavigationListPageObject.SELECTOR, parent, index);\n }\n\n $items = sel('[part=\"item\"]', NavLinkPageObject);\n $titles = sel<HTMLElement>('[part=\"title\"]');\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\n $content = sel<HTMLElement>('[part=\"content\"]');\n}\n\nexport class SectionedPagePageObject extends PagePageObject {\n $nav = sel<HTMLElement>('header > nav');\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?.dataset.intent;\n }\n\n get importance(): string | null | undefined {\n return this.element?.dataset.importance;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.dataset.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 RadioButtonGroupPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[role=\"radiogroup\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? RadioButtonGroupPageObject.SELECTOR, parent, index);\n }\n\n $option = sel(\n '[role=\"radio\"]',\n class extends PageObject<HTMLButtonElement> {\n get checked() {\n return this.element?.getAttribute('aria-checked');\n }\n }\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","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { NavLinkPageObject } from './-navigation.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TabNavPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-tab-nav]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TabNavPageObject.SELECTOR, parent, index);\n }\n\n $items = sel('[part=\"item\"]', NavLinkPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectTab } from 'ember-aria-voyager/test-support';\n\nimport { TabValue } from '../../components/controls/tabs.gts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TabsPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-tabs]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TabsPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.$tablist.element as HTMLDivElement;\n }\n\n $tablist = sel<HTMLDivElement>('[role=\"tablist\"]');\n $tab = sel<HTMLButtonElement>('[role=\"tab\"]');\n $tabpanel = sel<HTMLElement>('[role=\"tabpanel\"]');\n\n async select(value: unknown) {\n // @ts-expect-error this is internal API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const tab = this.$tab.find((t) => t.element[TabValue] === value);\n\n if (tab) {\n await selectTab(tab);\n }\n }\n}\n"],"names":["AlertPageObject","PageObject","SELECTOR","constructor","selector","parent","index","indicator","element","dataset","importance","$icon","sel","$title","$content","$actions","IconPageObject","$svg","IconButtonPageObject","intent","spacing","push","click","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","getAttribute","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","AvatarPageObject","$img","ButtonPageObject","$before","$label","$after","ButtonGroupPageObject","$button","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","SelectPageObject","$option","select","options","keepPreviouslySelected","PaginationPageObject","$pageSize","$select","$page","$input","$items","$prev","$next","DataTablePageObject","$col","$rows","$paginationFooter","$pagination","Error","type","testErrorType","value","testErrorValue","InputBuilderPageObject","$prefix","$affix","$suffix","CurrencyInputPageObject","ListPageObject","selectListbox","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","find","FieldRule","invalid","testRuleInvalid","FieldPageObject","$inputBuilder","$textArea","$checkbox","$list","$choices","$errors","$rules","name","testField","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$titles","PagePageObject","$header","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","RadioButtonGroupPageObject","checked","SectionPageObject","TabNavPageObject","TabsPageObject","$tablist","$tab","$tabpanel","tab","t","TabValue","selectTab"],"mappings":"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"}
|