@hokulea/ember 0.9.0 → 0.10.1
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/-private/helpers.d.ts +3 -1
- package/declarations/-private/helpers.d.ts.map +1 -1
- package/declarations/-private/push.gts.d.ts +20 -0
- package/declarations/-private/push.gts.d.ts.map +1 -0
- package/declarations/-private/shapes.d.ts +5 -0
- package/declarations/-private/shapes.d.ts.map +1 -0
- package/declarations/components/actions/button.gts.d.ts +6 -7
- package/declarations/components/actions/button.gts.d.ts.map +1 -1
- package/declarations/components/actions/icon-button.gts.d.ts +6 -7
- package/declarations/components/actions/icon-button.gts.d.ts.map +1 -1
- package/declarations/components/avatar.gts.d.ts +2 -0
- package/declarations/components/avatar.gts.d.ts.map +1 -0
- package/declarations/components/controls/-input.d.ts +3 -2
- package/declarations/components/controls/-input.d.ts.map +1 -1
- package/declarations/components/controls/{-menu.d.ts → -menu.gts.d.ts} +3 -4
- package/declarations/components/controls/-menu.gts.d.ts.map +1 -0
- package/declarations/components/controls/currency-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/date-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/email-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/input-builder.gts.d.ts +2 -1
- package/declarations/components/controls/input-builder.gts.d.ts.map +1 -1
- package/declarations/components/controls/menu.gts.d.ts +1 -1
- package/declarations/components/controls/menu.gts.d.ts.map +1 -1
- package/declarations/components/controls/number-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/password-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/phone-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/radio.gts.d.ts.map +1 -1
- package/declarations/components/controls/range-input.gts.d.ts +1 -1
- package/declarations/components/controls/range-input.gts.d.ts.map +1 -1
- package/declarations/components/controls/select.gts.d.ts +3 -0
- package/declarations/components/controls/select.gts.d.ts.map +1 -1
- package/declarations/components/controls/text-area.gts.d.ts.map +1 -1
- package/declarations/components/controls/text-input.gts.d.ts.map +1 -1
- package/declarations/components/data/data-table.gts.d.ts +19 -0
- package/declarations/components/data/data-table.gts.d.ts.map +1 -0
- package/declarations/components/data-table.gts.d.ts +2 -0
- package/declarations/components/data-table.gts.d.ts.map +1 -0
- package/declarations/components/form/form.gts.d.ts +2 -1
- package/declarations/components/form/form.gts.d.ts.map +1 -1
- package/declarations/components/form/reset.gts.d.ts +4 -4
- package/declarations/components/form/reset.gts.d.ts.map +1 -1
- package/declarations/components/form/submit.gts.d.ts +4 -4
- package/declarations/components/form/submit.gts.d.ts.map +1 -1
- package/declarations/components/graphics/avatar.gts.d.ts +10 -0
- package/declarations/components/graphics/avatar.gts.d.ts.map +1 -0
- package/declarations/components/link.gts.d.ts +2 -0
- package/declarations/components/link.gts.d.ts.map +1 -0
- package/declarations/components/navigation/-pagination.d.ts +17 -0
- package/declarations/components/navigation/-pagination.d.ts.map +1 -0
- package/declarations/components/navigation/app-header.gts.d.ts +2 -3
- package/declarations/components/navigation/app-header.gts.d.ts.map +1 -1
- package/declarations/components/navigation/link.gts.d.ts +13 -0
- package/declarations/components/navigation/link.gts.d.ts.map +1 -0
- package/declarations/components/navigation/nav-link.gts.d.ts +4 -2
- package/declarations/components/navigation/nav-link.gts.d.ts.map +1 -1
- package/declarations/components/navigation/pagination.gts.d.ts +78 -0
- package/declarations/components/navigation/pagination.gts.d.ts.map +1 -0
- package/declarations/components/pagination.gts.d.ts +2 -0
- package/declarations/components/pagination.gts.d.ts.map +1 -0
- package/declarations/index.d.ts +5 -1
- package/declarations/index.d.ts.map +1 -1
- package/declarations/template-registry.d.ts +9 -1
- package/declarations/template-registry.d.ts.map +1 -1
- package/declarations/test-support/index.d.ts +3 -0
- package/declarations/test-support/index.d.ts.map +1 -1
- package/declarations/test-support/page-objects/avatar.d.ts +9 -0
- package/declarations/test-support/page-objects/avatar.d.ts.map +1 -0
- package/declarations/test-support/page-objects/data-table.d.ts +36 -0
- package/declarations/test-support/page-objects/data-table.d.ts.map +1 -0
- package/declarations/test-support/page-objects/input.d.ts +1 -0
- package/declarations/test-support/page-objects/input.d.ts.map +1 -1
- package/declarations/test-support/page-objects/pagination.d.ts +65 -0
- package/declarations/test-support/page-objects/pagination.d.ts.map +1 -0
- package/declarations/test-support/page-objects/select.d.ts +1 -0
- package/declarations/test-support/page-objects/select.d.ts.map +1 -1
- package/dist/-input-DGR-n9U_.js.map +1 -1
- package/dist/_app_/components/avatar.js +1 -0
- package/dist/_app_/components/data-table.js +1 -0
- package/dist/_app_/components/link.js +1 -0
- package/dist/_app_/components/pagination.js +1 -0
- package/dist/{app-header-B6Q7pbiY.js → app-header-nmqytjxx.js} +7 -12
- package/dist/app-header-nmqytjxx.js.map +1 -0
- package/dist/avatar-BUb9bbkn.js +29 -0
- package/dist/avatar-BUb9bbkn.js.map +1 -0
- package/dist/button-BhxkZ70u.js +26 -0
- package/dist/button-BhxkZ70u.js.map +1 -0
- package/dist/{card-Bdv-UvKX.js → card-tK78paQn.js} +2 -2
- package/dist/{card-Bdv-UvKX.js.map → card-tK78paQn.js.map} +1 -1
- package/dist/{checkbox-D4vALmT2.js → checkbox-D3_2ps5M.js} +2 -2
- package/dist/{checkbox-D4vALmT2.js.map → checkbox-D3_2ps5M.js.map} +1 -1
- package/dist/components/app-header.js +1 -1
- package/dist/components/avatar.js +2 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/button.js +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/currency-input.js +1 -1
- package/dist/components/data-table.js +2 -0
- package/dist/components/data-table.js.map +1 -0
- package/dist/components/date-input.js +1 -1
- package/dist/components/email-input.js +1 -1
- package/dist/components/focus-page.js +1 -1
- package/dist/components/form.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input-builder.js +1 -1
- package/dist/components/link.js +2 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/menu.js +1 -1
- package/dist/components/navigation-list.js +1 -1
- package/dist/components/number-input.js +1 -1
- package/dist/components/page.js +1 -1
- package/dist/components/pagination.js +2 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/password-input.js +1 -1
- package/dist/components/phone-input.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/range-input.js +1 -1
- package/dist/components/sectioned-page.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/text-area.js +1 -1
- package/dist/components/text-input.js +1 -1
- package/dist/{currency-input-8ef0Igfb.js → currency-input-tBhgIMTh.js} +4 -4
- package/dist/currency-input-tBhgIMTh.js.map +1 -0
- package/dist/data-table-5VDYeRya.js +18 -0
- package/dist/data-table-5VDYeRya.js.map +1 -0
- package/dist/{date-input-BayaBuSb.js → date-input-DLv9jE39.js} +3 -3
- package/dist/{date-input-BayaBuSb.js.map → date-input-DLv9jE39.js.map} +1 -1
- package/dist/{email-input-j-Z0KO4A.js → email-input-BR33Qevz.js} +3 -3
- package/dist/{email-input-j-Z0KO4A.js.map → email-input-BR33Qevz.js.map} +1 -1
- package/dist/{focus-page-B9myJVvL.js → focus-page-DFu6qtBk.js} +2 -2
- package/dist/{focus-page-B9myJVvL.js.map → focus-page-DFu6qtBk.js.map} +1 -1
- package/dist/{form-DWyQ6QHX.js → form-VsNkRlXs.js} +15 -15
- package/dist/{form-DWyQ6QHX.js.map → form-VsNkRlXs.js.map} +1 -1
- package/dist/{helpers-DS9du02l.js → helpers-D4So5-uK.js} +8 -2
- package/dist/helpers-D4So5-uK.js.map +1 -0
- package/dist/{icon-bLZqjTMP.js → icon-BfRBkZ72.js} +2 -2
- package/dist/icon-BfRBkZ72.js.map +1 -0
- package/dist/icon-button-DBt7fMi1.js +38 -0
- package/dist/icon-button-DBt7fMi1.js.map +1 -0
- package/dist/index.js +29 -25
- package/dist/index.js.map +1 -1
- package/dist/{input-builder-DmcQbywA.js → input-builder-DHYx-2Yz.js} +2 -2
- package/dist/input-builder-DHYx-2Yz.js.map +1 -0
- package/dist/link-bqsg26Cc.js +18 -0
- package/dist/link-bqsg26Cc.js.map +1 -0
- package/dist/{menu-CZKNGJ91.js → menu-s0AthZse.js} +6 -4
- package/dist/menu-s0AthZse.js.map +1 -0
- package/dist/nav-link-CDtYj6HW.js +22 -0
- package/dist/nav-link-CDtYj6HW.js.map +1 -0
- package/dist/{navigation-list-Cxs6uZdM.js → navigation-list-Ng5UsNCY.js} +2 -2
- package/dist/{navigation-list-Cxs6uZdM.js.map → navigation-list-Ng5UsNCY.js.map} +1 -1
- package/dist/{number-input-B84zcPlM.js → number-input-FJympEv2.js} +3 -3
- package/dist/{number-input-B84zcPlM.js.map → number-input-FJympEv2.js.map} +1 -1
- package/dist/{page-BcSgHxr7.js → page-BuLkLO08.js} +2 -2
- package/dist/{page-BcSgHxr7.js.map → page-BuLkLO08.js.map} +1 -1
- package/dist/pagination-DCMxI10i.js +124 -0
- package/dist/pagination-DCMxI10i.js.map +1 -0
- package/dist/{password-input-BMp5uscw.js → password-input-DV5yb10h.js} +3 -3
- package/dist/password-input-DV5yb10h.js.map +1 -0
- package/dist/{phone-input-DeaTM5yP.js → phone-input-Uv5v9hK9.js} +3 -3
- package/dist/{phone-input-DeaTM5yP.js.map → phone-input-Uv5v9hK9.js.map} +1 -1
- package/dist/push-DnJFFc_p.js +24 -0
- package/dist/push-DnJFFc_p.js.map +1 -0
- package/dist/{radio-CGBLrzK4.js → radio-CLF40kob.js} +3 -3
- package/dist/{radio-CGBLrzK4.js.map → radio-CLF40kob.js.map} +1 -1
- package/dist/{range-input-BiAPgpW8.js → range-input-BIb7GkKH.js} +2 -2
- package/dist/range-input-BIb7GkKH.js.map +1 -0
- package/dist/{sectioned-page-fB9mV5WD.js → sectioned-page-CgINWVQ2.js} +3 -3
- package/dist/{sectioned-page-fB9mV5WD.js.map → sectioned-page-CgINWVQ2.js.map} +1 -1
- package/dist/{select-DxyaUFuy.js → select-CeO8AZMK.js} +5 -2
- package/dist/select-CeO8AZMK.js.map +1 -0
- package/dist/{tabs-a9GhNQv9.js → tabs-DAscspzh.js} +2 -2
- package/dist/{tabs-a9GhNQv9.js.map → tabs-DAscspzh.js.map} +1 -1
- package/dist/test-support/index.js +60 -16
- package/dist/test-support/index.js.map +1 -1
- package/dist/{text-area-55_E1zv8.js → text-area-DF8-cDiy.js} +3 -3
- package/dist/{text-area-55_E1zv8.js.map → text-area-DF8-cDiy.js.map} +1 -1
- package/dist/{text-input-CK-yGbI5.js → text-input-CcIcYksE.js} +3 -3
- package/dist/{text-input-CK-yGbI5.js.map → text-input-CcIcYksE.js.map} +1 -1
- package/package.json +20 -16
- package/declarations/components/controls/-menu.d.ts.map +0 -1
- package/dist/app-header-B6Q7pbiY.js.map +0 -1
- package/dist/button-XdQyGTGA.js +0 -24
- package/dist/button-XdQyGTGA.js.map +0 -1
- package/dist/currency-input-8ef0Igfb.js.map +0 -1
- package/dist/helpers-DS9du02l.js.map +0 -1
- package/dist/icon-bLZqjTMP.js.map +0 -1
- package/dist/icon-button-7K-W_8jc.js +0 -37
- package/dist/icon-button-7K-W_8jc.js.map +0 -1
- package/dist/input-builder-DmcQbywA.js.map +0 -1
- package/dist/menu-CZKNGJ91.js.map +0 -1
- package/dist/nav-link-CGVtuqwC.js +0 -30
- package/dist/nav-link-CGVtuqwC.js.map +0 -1
- package/dist/password-input-BMp5uscw.js.map +0 -1
- package/dist/range-input-BiAPgpW8.js.map +0 -1
- package/dist/select-DxyaUFuy.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-
|
|
1
|
+
{"version":3,"file":"tabs-DAscspzh.js","sources":["../src/components/controls/tabs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash, uniqueId } from '@ember/helper';\nimport { guidFor } from '@ember/object/internals';\nimport { next } from '@ember/runloop';\n\nimport { ariaTablist, type Orientation, type TablistBehavior } from 'ember-aria-voyager';\nimport { modifier } from 'ember-modifier';\nimport Portal from 'ember-stargate/components/portal';\nimport PortalTarget from 'ember-stargate/components/portal-target';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { eq, not } from '../../-private/helpers.ts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TabValue = Symbol('TabValue');\n\nconst attachValue = modifier((element, [value]) => {\n if (value) {\n // @ts-expect-error this is internal API\n element[TabValue] = value;\n }\n});\n\ninterface State {\n active: boolean;\n selected: boolean;\n}\n\ntype Item = string & {};\n\ntype TabSignature = {\n Element: HTMLDivElement;\n Args: {\n tablist: string;\n register: (tab: Tab) => void;\n unregister: (tab: Tab) => void;\n label?: string;\n value?: unknown;\n selection?: unknown;\n activeItem?: Item;\n };\n Blocks: {\n default?: [State];\n label?: [State];\n content?: [State];\n };\n};\n\nclass Tab extends Component<TabSignature> {\n constructor(owner: Owner, args: TabSignature['Args']) {\n super(owner, args);\n\n args.register(this);\n\n registerDestructor(this, () => {\n args.unregister(this);\n });\n }\n\n @cached\n get id() {\n return this.args.value ?? this.args.label ?? guidFor(this);\n }\n\n <template>\n {{#let\n (uniqueId) (hash active=(eq this.id @activeItem) selected=(eq this.id @selection))\n as |id state|\n }}\n <Portal @target={{@tablist}}>\n {{! template-lint-disable require-context-role }}\n <button\n type=\"button\"\n role=\"tab\"\n aria-controls={{id}}\n aria-selected={{if state.selected \"true\"}}\n id=\"{{id}}-label\"\n {{attachValue @value}}\n >\n <span>\n {{#if (has-block \"label\")}}\n {{yield state to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n </button>\n </Portal>\n\n <section\n id={{id}}\n role=\"tabpanel\"\n aria-labelledby=\"{{id}}-label\"\n local-class=\"content\"\n hidden={{not state.selected}}\n >\n {{#if (has-block \"content\")}}\n {{yield state to=\"content\"}}\n {{else}}\n {{yield state}}\n {{/if}}\n </section>\n {{/let}}\n </template>\n}\n\ninterface TabsSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n selection?: unknown;\n update?: (value: unknown) => void;\n behavior?: TablistBehavior;\n orientation?: Orientation;\n };\n Blocks: {\n default: [\n {\n Tab: WithBoundArgs<\n typeof Tab,\n 'selection' | 'activeItem' | 'tablist' | 'register' | 'unregister'\n >;\n }\n ];\n };\n}\n\nexport class Tabs extends Component<TabsSignature> {\n @tracked tabs: Tab[] = new TrackedArray();\n @tracked internalSelection?: Tab;\n @tracked activeItem?: Item;\n\n get items() {\n return this.tabs.map((t) => t.id);\n }\n\n get selection() {\n return this.args.selection ?? this.internalSelection?.id;\n }\n\n register = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.push(tab);\n });\n };\n\n unregister = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.splice(this.tabs.indexOf(tab), 1);\n });\n };\n\n select = (id: Item) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tab = this.tabs.find((t) => t.id === id)!;\n\n this.internalSelection = tab;\n this.args.update?.(tab.args.value ?? tab.args.label ?? undefined);\n };\n\n activateItem = (id: Item) => {\n this.activeItem = id;\n };\n\n <template>\n <div class={{styles.tabs}} data-test-tabs>\n {{#let (uniqueId) as |tablistId|}}\n <PortalTarget\n @name={{tablistId}}\n @multiple={{true}}\n role=\"tablist\"\n {{ariaTablist\n items=this.items\n select=this.select\n selection=this.selection\n activateItem=this.activateItem\n disabled=@disabled\n behavior=@behavior\n orientation=@orientation\n }}\n />\n\n {{yield\n (hash\n Tab=(component\n Tab\n register=this.register\n unregister=this.unregister\n tablist=tablistId\n selection=this.selection\n activeItem=this.activeItem\n )\n )\n }}\n {{/let}}\n </div>\n </template>\n}\n"],"names":["TabValue","Symbol","attachValue","modifier","element","value","Tab","Component","constructor","owner","args","register","registerDestructor","unregister","id","label","guidFor","n","prototype","cached","setComponentTemplate","precompileTemplate","strictMode","scope","uniqueId","hash","eq","Portal","not","Tabs","g","tracked","TrackedArray","i","void 0","items","tabs","map","t","selection","internalSelection","tab","next","push","splice","indexOf","select","find","update","undefined","activateItem","activeItem","styles","PortalTarget","ariaTablist"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PageObject, selector, globalSelector } from 'fractal-page-object';
|
|
2
2
|
import { click, select, triggerEvent } from '@ember/test-helpers';
|
|
3
3
|
import { selectListbox, selectTab } from 'ember-aria-voyager/test-support';
|
|
4
|
-
import { a as TabValue } from '../tabs-
|
|
4
|
+
import { a as TabValue } from '../tabs-DAscspzh.js';
|
|
5
5
|
|
|
6
6
|
class IconPageObject extends PageObject {
|
|
7
7
|
static SELECTOR = '[data-test-icon]';
|
|
@@ -126,6 +126,15 @@ class AppHeaderPageObject extends PageObject {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
+
class AvatarPageObject extends PageObject {
|
|
130
|
+
static SELECTOR = '[data-test-avatar]';
|
|
131
|
+
constructor(selector, parent, index) {
|
|
132
|
+
super(selector ?? AvatarPageObject.SELECTOR, parent, index);
|
|
133
|
+
}
|
|
134
|
+
$svg = selector('svg');
|
|
135
|
+
$img = selector('img');
|
|
136
|
+
}
|
|
137
|
+
|
|
129
138
|
class ButtonPageObject extends PageObject {
|
|
130
139
|
static SELECTOR = '[data-test-button]';
|
|
131
140
|
constructor(selector, parent, index) {
|
|
@@ -170,6 +179,9 @@ class InputPageObject extends PageObject {
|
|
|
170
179
|
get control() {
|
|
171
180
|
return this.element;
|
|
172
181
|
}
|
|
182
|
+
get spacing() {
|
|
183
|
+
return this.element?.getAttribute('data-spacing');
|
|
184
|
+
}
|
|
173
185
|
}
|
|
174
186
|
class RangeInputPageObject extends InputPageObject {
|
|
175
187
|
get orientation() {
|
|
@@ -183,6 +195,52 @@ const DateInputPageObject = InputPageObject;
|
|
|
183
195
|
const EmailInputPageObject = InputPageObject;
|
|
184
196
|
const PasswordInputPageObject = InputPageObject;
|
|
185
197
|
|
|
198
|
+
class SelectPageObject extends PageObject {
|
|
199
|
+
static SELECTOR = '[data-test-select]';
|
|
200
|
+
constructor(selector, parent, index) {
|
|
201
|
+
super(selector ?? SelectPageObject.SELECTOR, parent, index);
|
|
202
|
+
}
|
|
203
|
+
get spacing() {
|
|
204
|
+
return this.element?.getAttribute('data-spacing');
|
|
205
|
+
}
|
|
206
|
+
get control() {
|
|
207
|
+
return this.element;
|
|
208
|
+
}
|
|
209
|
+
$option = selector('option');
|
|
210
|
+
async select(options, keepPreviouslySelected) {
|
|
211
|
+
await select(this.element, options, keepPreviouslySelected);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
class PaginationPageObject extends PageObject {
|
|
216
|
+
static SELECTOR = '[data-test-pagination]';
|
|
217
|
+
constructor(selector, parent, index) {
|
|
218
|
+
super(selector ?? PaginationPageObject.SELECTOR, parent, index);
|
|
219
|
+
}
|
|
220
|
+
$pageSize = selector('[part="page-size"]', class extends PageObject {
|
|
221
|
+
$select = selector(SelectPageObject.SELECTOR, SelectPageObject);
|
|
222
|
+
});
|
|
223
|
+
$page = selector('[part="page"]', class extends PageObject {
|
|
224
|
+
$select = selector(SelectPageObject.SELECTOR, SelectPageObject);
|
|
225
|
+
$input = selector(NumberInputPageObject.SELECTOR, NumberInputPageObject);
|
|
226
|
+
});
|
|
227
|
+
$items = selector('[part="items"]');
|
|
228
|
+
$prev = selector('[data-test-prev]', IconButtonPageObject);
|
|
229
|
+
$next = selector('[data-test-next]', IconButtonPageObject);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
class DataTablePageObject extends PageObject {
|
|
233
|
+
static SELECTOR = '[data-test-data-table]';
|
|
234
|
+
constructor(selector, parent, index) {
|
|
235
|
+
super(selector ?? DataTablePageObject.SELECTOR, parent, index);
|
|
236
|
+
}
|
|
237
|
+
$col = selector('thead th');
|
|
238
|
+
$rows = selector('tbody tr');
|
|
239
|
+
$paginationFooter = selector('[data-pagination]', class extends PageObject {
|
|
240
|
+
$pagination = selector(PaginationPageObject.SELECTOR, PaginationPageObject);
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
|
|
186
244
|
class InputBuilderPageObject extends PageObject {
|
|
187
245
|
static SELECTOR = '[data-test-input-builder]';
|
|
188
246
|
constructor(selector, parent, index) {
|
|
@@ -212,20 +270,6 @@ class ListPageObject extends PageObject {
|
|
|
212
270
|
}
|
|
213
271
|
}
|
|
214
272
|
|
|
215
|
-
class SelectPageObject extends PageObject {
|
|
216
|
-
static SELECTOR = '[data-test-select]';
|
|
217
|
-
constructor(selector, parent, index) {
|
|
218
|
-
super(selector ?? SelectPageObject.SELECTOR, parent, index);
|
|
219
|
-
}
|
|
220
|
-
get control() {
|
|
221
|
-
return this.element;
|
|
222
|
-
}
|
|
223
|
-
$option = selector('option');
|
|
224
|
-
async select(options, keepPreviouslySelected) {
|
|
225
|
-
await select(this.element, options, keepPreviouslySelected);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
273
|
class TextAreaPageObject extends PageObject {
|
|
230
274
|
static SELECTOR = '[data-test-textarea]';
|
|
231
275
|
constructor(selector, parent, index) {
|
|
@@ -427,5 +471,5 @@ class TabsPageObject extends PageObject {
|
|
|
427
471
|
}
|
|
428
472
|
}
|
|
429
473
|
|
|
430
|
-
export { AppHeaderPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
474
|
+
export { 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, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
431
475
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/icon.ts","../../src/test-support/page-objects/icon-button.ts","../../src/test-support/page-objects/menu.ts","../../src/test-support/page-objects/app-header.ts","../../src/test-support/page-objects/button.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.ts","../../src/test-support/page-objects/select.ts","../../src/test-support/page-objects/text-area.ts","../../src/test-support/page-objects/-private/choices.ts","../../src/test-support/page-objects/-private/field.ts","../../src/test-support/page-objects/form.ts","../../src/test-support/page-objects/-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/tabs.ts"],"sourcesContent":["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?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n\n $icon = sel('[data-test-icon-button=\"icon\"]', IconPageObject);\n}\n","import { globalSelector, PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Menu, MenuElement, MenuItem, MenuItemElement } from './-menu.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 { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.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\nexport class RangeInputPageObject extends InputPageObject {\n get orientation(): string | undefined {\n return this.control.dataset.orientation;\n }\n}\nexport const NumberInputPageObject = InputPageObject;\nexport const TextInputPageObject = InputPageObject;\nexport const PhoneInputPageObject = InputPageObject;\nexport const DateInputPageObject = InputPageObject;\nexport const EmailInputPageObject = InputPageObject;\nexport const PasswordInputPageObject = InputPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input.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 { select } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SelectPageObject extends PageObject<HTMLSelectElement> {\n static SELECTOR = '[data-test-select]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SelectPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLSelectElement;\n }\n\n $option = sel<HTMLOptionElement>('option');\n\n async select(options: string | string[], keepPreviouslySelected?: boolean) {\n await select(this.element as Target, options, keepPreviouslySelected);\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.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';\n\nimport type { RangeInputPageObject } from '../input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldError extends PageObject<HTMLDivElement> {\n get type() {\n return this.element?.getAttribute('data-test-error-type');\n }\n\n get value() {\n return this.element?.getAttribute('data-test-error-value');\n }\n}\n\nexport class FieldRule extends PageObject<HTMLParagraphElement> {\n get invalid() {\n return Boolean(this.element?.getAttribute('data-test-rule-invalid'));\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('[data-test-error]', FieldError);\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?.getAttribute('data-test-field');\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { FieldPageObject } from './-private/field.ts';\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport type { OptionPageObject } from './-private/choices.ts';\nexport type { FieldError } from './-private/field.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\n field(name: string) {\n return this.$fields.find((field) => field.name === name) as FieldPageObject;\n }\n\n async submit() {\n await triggerEvent(this.element as HTMLFormElement, 'submit');\n }\n\n async reset() {\n await triggerEvent(this.element as HTMLFormElement, 'reset');\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { 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<HTMLDivElement> {\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?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PopoverPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-popover]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PopoverPageObject.SELECTOR, parent, index);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SectionPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-section]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SectionPageObject.SELECTOR, parent, index);\n }\n\n $header = sel('[data-test-section=\"header\"]');\n $title = sel('[data-test-section=\"title\"]');\n}\n","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":["IconPageObject","PageObject","SELECTOR","constructor","selector","parent","index","$svg","sel","IconButtonPageObject","intent","element","getAttribute","importance","spacing","push","click","$icon","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","dataset","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","InputBuilderPageObject","$prefix","$affix","$suffix","$input","CurrencyInputPageObject","ListPageObject","$option","select","options","selectListbox","SelectPageObject","keepPreviouslySelected","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","value","find","FieldError","type","FieldRule","invalid","FieldPageObject","$inputBuilder","$select","$textArea","$checkbox","$list","$choices","$errors","$rules","name","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$items","$titles","PagePageObject","$header","$title","$content","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","SectionPageObject","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/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/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/tabs.ts"],"sourcesContent":["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?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n\n $icon = sel('[data-test-icon-button=\"icon\"]', IconPageObject);\n}\n","import { globalSelector, PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Menu, MenuElement, MenuItem, MenuItemElement } from './-menu.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?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.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?.getAttribute('data-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?.getAttribute('data-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, 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';\n\nimport type { RangeInputPageObject } from '../input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldError extends PageObject<HTMLDivElement> {\n get type() {\n return this.element?.getAttribute('data-test-error-type');\n }\n\n get value() {\n return this.element?.getAttribute('data-test-error-value');\n }\n}\n\nexport class FieldRule extends PageObject<HTMLParagraphElement> {\n get invalid() {\n return Boolean(this.element?.getAttribute('data-test-rule-invalid'));\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('[data-test-error]', FieldError);\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?.getAttribute('data-test-field');\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { FieldPageObject } from './-private/field.ts';\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport type { OptionPageObject } from './-private/choices.ts';\nexport type { FieldError } from './-private/field.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\n field(name: string) {\n return this.$fields.find((field) => field.name === name) as FieldPageObject;\n }\n\n async submit() {\n await triggerEvent(this.element as HTMLFormElement, 'submit');\n }\n\n async reset() {\n await triggerEvent(this.element as HTMLFormElement, 'reset');\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { 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<HTMLDivElement> {\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?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PopoverPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-popover]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PopoverPageObject.SELECTOR, parent, index);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SectionPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-section]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SectionPageObject.SELECTOR, parent, index);\n }\n\n $header = sel('[data-test-section=\"header\"]');\n $title = sel('[data-test-section=\"title\"]');\n}\n","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":["IconPageObject","PageObject","SELECTOR","constructor","selector","parent","index","$svg","sel","IconButtonPageObject","intent","element","getAttribute","importance","spacing","push","click","$icon","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","AvatarPageObject","$img","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","dataset","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","SelectPageObject","$option","select","options","keepPreviouslySelected","PaginationPageObject","$pageSize","$select","$page","$input","$items","$prev","$next","DataTablePageObject","$col","$rows","$paginationFooter","$pagination","InputBuilderPageObject","$prefix","$affix","$suffix","CurrencyInputPageObject","ListPageObject","selectListbox","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","value","find","FieldError","type","FieldRule","invalid","FieldPageObject","$inputBuilder","$textArea","$checkbox","$list","$choices","$errors","$rules","name","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$titles","PagePageObject","$header","$title","$content","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","SectionPageObject","TabsPageObject","$tablist","$tab","$tabpanel","tab","t","TabValue","selectTab"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from './helpers-
|
|
3
|
+
import { p as pick } from './helpers-D4So5-uK.js';
|
|
4
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
|
-
const TextArea = setComponentTemplate(precompileTemplate("\n <textarea class={{styles.textarea}} type=\"text\" disabled={{@disabled}} data-test-textarea {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes>{{@value}}</textarea>\n", {
|
|
8
|
+
const TextArea = setComponentTemplate(precompileTemplate("\n <textarea class={{styles.textarea}} type=\"text\" disabled={{@disabled}} data-spacing={{@spacing}} data-test-textarea {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes>{{@value}}</textarea>\n", {
|
|
9
9
|
strictMode: true,
|
|
10
10
|
scope: () => ({
|
|
11
11
|
styles,
|
|
@@ -15,4 +15,4 @@ const TextArea = setComponentTemplate(precompileTemplate("\n <textarea class={{
|
|
|
15
15
|
}), templateOnly());
|
|
16
16
|
|
|
17
17
|
export { TextArea as T };
|
|
18
|
-
//# sourceMappingURL=text-area-
|
|
18
|
+
//# sourceMappingURL=text-area-DF8-cDiy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-area-
|
|
1
|
+
{"version":3,"file":"text-area-DF8-cDiy.js","sources":["../src/components/controls/text-area.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TextAreaSignature {\n Element: HTMLTextAreaElement;\n Args: InputArgs<string>;\n}\n\nexport const TextArea: TOC<TextAreaSignature> = <template>\n <textarea\n class={{styles.textarea}}\n type=\"text\"\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-textarea\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n >{{@value}}</textarea>\n</template>;\n"],"names":["TextArea","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,QAAc,GAAAC,oBAAA,CAAqBC,kBAAA,CAAA,+NAAA,EAUhD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from './helpers-
|
|
3
|
+
import { p as pick } from './helpers-D4So5-uK.js';
|
|
4
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
|
-
const TextInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"text\" value={{@value}} disabled={{@disabled}} data-test-input {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes />\n", {
|
|
8
|
+
const TextInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"text\" value={{@value}} disabled={{@disabled}} data-spacing={{@spacing}} data-test-input {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes />\n", {
|
|
9
9
|
strictMode: true,
|
|
10
10
|
scope: () => ({
|
|
11
11
|
styles,
|
|
@@ -15,4 +15,4 @@ const TextInput = setComponentTemplate(precompileTemplate("\n <input class={{st
|
|
|
15
15
|
}), templateOnly());
|
|
16
16
|
|
|
17
17
|
export { TextInput as T };
|
|
18
|
-
//# sourceMappingURL=text-input-
|
|
18
|
+
//# sourceMappingURL=text-input-CcIcYksE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-input-
|
|
1
|
+
{"version":3,"file":"text-input-CcIcYksE.js","sources":["../src/components/controls/text-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TextInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nexport const TextInput: TOC<TextInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"text\"\n value={{@value}}\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-input\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["TextInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,oNAAA,EAWlD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hokulea/ember",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Hokulea Design System for Ember",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"ember-stargate": "^1.0.1",
|
|
52
52
|
"ember-strict-application-resolver": "^0.1.0",
|
|
53
53
|
"tracked-built-ins": "^4.0.0",
|
|
54
|
-
"@hokulea/core": "0.
|
|
54
|
+
"@hokulea/core": "0.7.1"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@ember/test-helpers": "^5.0.0",
|
|
@@ -71,21 +71,21 @@
|
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@babel/core": "7.28.
|
|
75
|
-
"@babel/eslint-parser": "7.28.
|
|
74
|
+
"@babel/core": "7.28.4",
|
|
75
|
+
"@babel/eslint-parser": "7.28.4",
|
|
76
76
|
"@babel/plugin-transform-typescript": "7.28.0",
|
|
77
|
-
"@babel/runtime": "7.28.
|
|
77
|
+
"@babel/runtime": "7.28.4",
|
|
78
78
|
"@ember/app-tsconfig": "^1.0.3",
|
|
79
79
|
"@ember/library-tsconfig": "^1.1.3",
|
|
80
80
|
"@ember/render-modifiers": "^3.0.0",
|
|
81
|
-
"@ember/test-helpers": "5.
|
|
81
|
+
"@ember/test-helpers": "5.3.0",
|
|
82
82
|
"@embroider/addon-dev": "^8.1.0",
|
|
83
83
|
"@embroider/compat": "^4.1.3",
|
|
84
84
|
"@embroider/core": "^4.1.3",
|
|
85
85
|
"@embroider/macros": "^1.18.1",
|
|
86
86
|
"@embroider/vite": "^1.2.0",
|
|
87
87
|
"@glimmer/component": "^2.0.0",
|
|
88
|
-
"@glint/core": "^2.0.0-alpha.
|
|
88
|
+
"@glint/core": "^2.0.0-alpha.6",
|
|
89
89
|
"@glint/environment-ember-loose": "^2.0.0-alpha.3",
|
|
90
90
|
"@glint/environment-ember-template-imports": "^2.0.0-alpha.3",
|
|
91
91
|
"@glint/template": "^1.6.0-alpha.2",
|
|
@@ -113,10 +113,10 @@
|
|
|
113
113
|
"ember-set-helper": "^3.0.1",
|
|
114
114
|
"ember-source": "6.6.0",
|
|
115
115
|
"ember-template-imports": "4.3.0",
|
|
116
|
-
"ember-template-lint": "^7.9.
|
|
117
|
-
"eslint": "^9.
|
|
118
|
-
"eslint-plugin-ember": "^12.7.
|
|
119
|
-
"eslint-plugin-storybook": "^9.1.
|
|
116
|
+
"ember-template-lint": "^7.9.3",
|
|
117
|
+
"eslint": "^9.35.0",
|
|
118
|
+
"eslint-plugin-ember": "^12.7.3",
|
|
119
|
+
"eslint-plugin-storybook": "^9.1.5",
|
|
120
120
|
"fractal-page-object": "1.0.0",
|
|
121
121
|
"glimmer-scoped-css": "^0.8.1",
|
|
122
122
|
"iconify-icon": "^3.0.0",
|
|
@@ -124,19 +124,19 @@
|
|
|
124
124
|
"prettier": "^3.6.2",
|
|
125
125
|
"qunit": "^2.24.1",
|
|
126
126
|
"qunit-dom": "^3.4.0",
|
|
127
|
-
"rollup": "4.
|
|
127
|
+
"rollup": "4.50.1",
|
|
128
128
|
"sinon": "^21.0.0",
|
|
129
|
-
"storybook": "^9.1.
|
|
129
|
+
"storybook": "^9.1.6",
|
|
130
130
|
"stylelint": "16.23.1",
|
|
131
131
|
"testem": "^3.16.0",
|
|
132
132
|
"type-fest": "^4.41.0",
|
|
133
133
|
"typescript": "5.9.2",
|
|
134
134
|
"unplugin-icons": "^22.2.0",
|
|
135
135
|
"valibot": "^1.1.0",
|
|
136
|
-
"vite": "^7.1.
|
|
136
|
+
"vite": "^7.1.5",
|
|
137
|
+
"@hokulea/core": "0.7.1",
|
|
137
138
|
"@hokulea/theme-moana": "0.2.0",
|
|
138
|
-
"@hokulea/tokens": "0.1.
|
|
139
|
-
"@hokulea/core": "0.6.0"
|
|
139
|
+
"@hokulea/tokens": "0.1.2"
|
|
140
140
|
},
|
|
141
141
|
"ember": {
|
|
142
142
|
"edition": "octane"
|
|
@@ -150,11 +150,13 @@
|
|
|
150
150
|
"main": "addon-main.cjs",
|
|
151
151
|
"app-js": {
|
|
152
152
|
"./components/app-header.js": "./dist/_app_/components/app-header.js",
|
|
153
|
+
"./components/avatar.js": "./dist/_app_/components/avatar.js",
|
|
153
154
|
"./components/box.js": "./dist/_app_/components/box.js",
|
|
154
155
|
"./components/button.js": "./dist/_app_/components/button.js",
|
|
155
156
|
"./components/card.js": "./dist/_app_/components/card.js",
|
|
156
157
|
"./components/checkbox.js": "./dist/_app_/components/checkbox.js",
|
|
157
158
|
"./components/currency-input.js": "./dist/_app_/components/currency-input.js",
|
|
159
|
+
"./components/data-table.js": "./dist/_app_/components/data-table.js",
|
|
158
160
|
"./components/date-input.js": "./dist/_app_/components/date-input.js",
|
|
159
161
|
"./components/email-input.js": "./dist/_app_/components/email-input.js",
|
|
160
162
|
"./components/focus-page.js": "./dist/_app_/components/focus-page.js",
|
|
@@ -162,11 +164,13 @@
|
|
|
162
164
|
"./components/icon-button.js": "./dist/_app_/components/icon-button.js",
|
|
163
165
|
"./components/icon.js": "./dist/_app_/components/icon.js",
|
|
164
166
|
"./components/input-builder.js": "./dist/_app_/components/input-builder.js",
|
|
167
|
+
"./components/link.js": "./dist/_app_/components/link.js",
|
|
165
168
|
"./components/list.js": "./dist/_app_/components/list.js",
|
|
166
169
|
"./components/menu.js": "./dist/_app_/components/menu.js",
|
|
167
170
|
"./components/navigation-list.js": "./dist/_app_/components/navigation-list.js",
|
|
168
171
|
"./components/number-input.js": "./dist/_app_/components/number-input.js",
|
|
169
172
|
"./components/page.js": "./dist/_app_/components/page.js",
|
|
173
|
+
"./components/pagination.js": "./dist/_app_/components/pagination.js",
|
|
170
174
|
"./components/password-input.js": "./dist/_app_/components/password-input.js",
|
|
171
175
|
"./components/phone-input.js": "./dist/_app_/components/phone-input.js",
|
|
172
176
|
"./components/popover.js": "./dist/_app_/components/popover.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"-menu.d.ts","sourceRoot":"","sources":["../../../src/components/controls/-menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEtF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;CACpB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-header-B6Q7pbiY.js","sources":["../src/components/navigation/app-header.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash, uniqueId } from '@ember/helper';\n\nimport { type CommandAction, CommandElement } from 'ember-command';\nimport { keepLatestTask, timeout } from 'ember-concurrency';\nimport { modifier } from 'ember-modifier';\n\nimport styles from '@hokulea/core/navigation.module.css';\n\nimport { and, not, or } from '../../-private/helpers.ts';\nimport { popover } from '../../helpers/popover.ts';\nimport { IconButton } from '../actions/icon-button.gts';\nimport { Menu } from '../controls/menu.gts';\nimport { NavLink } from './nav-link.gts';\n\nimport type { MenuItemSignature } from '../controls/-menu';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Placement } from '@floating-ui/dom';\nimport type { ComponentLike } from '@glint/template';\nimport type { Link } from 'ember-link';\n\nconst asLink = (value: unknown): Link => {\n return value as Link;\n};\n\ninterface NavItemSignature extends MenuItemSignature {\n Args: MenuItemSignature['Args'] & {\n href?: string;\n position?: Placement;\n };\n}\n\nconst NavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}} @href={{@href}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n {{#let (popover position=(if @position @position \"bottom-start\")) as |p|}}\n <button type=\"button\" aria-haspopup=\"menu\" part=\"item\" {{p.trigger}}>\n <span>{{yield to=\"label\"}}</span>\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{/if}}\n</template>;\n\nconst PopoverNavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}} @href={{@href}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n <details>\n <summary part=\"item\">{{yield to=\"label\"}}</summary>\n\n <div>\n {{yield (hash Item=PopoverNavItem) to=\"menu\"}}\n </div>\n </details>\n {{/if}}\n</template>;\n\nconst CloseIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128L50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z\"/></svg>';\nconst ListIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H40a8 8 0 0 1 0-16h176a8 8 0 0 1 8 8M40 72h176a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m176 112H40a8 8 0 0 0 0 16h176a8 8 0 0 0 0-16\"/></svg>';\n\ninterface AppHeaderSignature {\n Element: HTMLElement;\n Args: {\n /**\n * Position of the navbar\n *\n * @default start\n */\n position?: 'start' | 'center' | 'end';\n\n home?: CommandAction;\n };\n Blocks: {\n brand?: [];\n nav?: [{ Item: typeof NavItem }];\n aux?: [{ Item: ComponentLike<typeof NavItem> }];\n };\n}\n\nexport class AppHeader extends Component<AppHeaderSignature> {\n @tracked topNavShown = true;\n @tracked sensing = false;\n\n detectOverflow = keepLatestTask(async (element: HTMLElement) => {\n await timeout(30);\n\n this.sensing = true;\n\n // wait till sensing is flushed to the browser and made elements visible\n await timeout(0);\n\n const relevantChildren = [...element.children].filter(\n (elem) => elem.tagName.toLowerCase() === 'nav' || elem.getAttribute('part') === 'aux'\n );\n\n if (relevantChildren.length === 0) {\n this.sensing = false;\n\n return;\n }\n\n let headerWidth = [...element.children]\n .filter((elem) => elem.getAttribute('part') !== 'menu')\n .map((e) => Math.floor(e.scrollWidth))\n .reduce((sum, elemWidth) => sum + elemWidth, 0);\n\n // + padding\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('padding-inline'), 10) * 2;\n\n // + gap\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('gap'), 10) *\n (element.childElementCount - 1);\n\n this.topNavShown = element.clientWidth >= headerWidth;\n this.sensing = false;\n });\n\n flipflop = modifier((element: HTMLElement) => {\n const sensor = () => this.detectOverflow.perform(element);\n\n void sensor();\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.addEventListener('resize', sensor);\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.removeEventListener('resize', sensor);\n };\n });\n\n closeWhenLink = modifier((element: HTMLElement) => {\n const checkForClose = (event: Event) => {\n const hitALink = event\n .composedPath()\n .some(\n (target: EventTarget) =>\n (target as HTMLElement | null)?.tagName &&\n ['a', 'button'].includes((target as HTMLElement).tagName.toLowerCase()) &&\n !(target as HTMLElement).getAttribute('aria-haspopup')\n );\n\n if (hitALink) {\n element.hidePopover();\n }\n };\n\n element.addEventListener('click', checkForClose);\n\n return () => {\n element.removeEventListener('click', checkForClose);\n };\n });\n\n <template>\n {{#let (uniqueId) as |brandId|}}\n <header class={{styles.appHeader}} data-test-app-header ...attributes>\n <div class={{styles.appHeaderContent}} data-sensing={{this.sensing}} {{this.flipflop}}>\n {{#if (has-block \"brand\")}}\n <CommandElement @command={{@home}} part=\"brand\" id={{brandId}}>\n {{yield to=\"brand\"}}\n </CommandElement>\n {{/if}}\n\n {{#if (or this.topNavShown this.sensing)}}\n <nav data-position={{if @position @position}} aria-labelledby={{brandId}}>\n {{yield (hash Item=NavItem) to=\"nav\"}}\n </nav>\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=NavItem) to=\"aux\"}}\n </span>\n {{/if}}\n {{/if}}\n\n {{#if (not this.topNavShown)}}\n <span part=\"menu\">\n {{#let (popover) as |p|}}\n <IconButton\n @importance=\"plain\"\n @icon={{if p.opened CloseIcon ListIcon}}\n {{p.trigger}}\n data-test-toggle\n @label=\"toggle\"\n />\n\n <div popover {{p.target}} {{this.closeWhenLink}}>\n <div data-menu-header>\n {{#if (has-block \"brand\")}}\n <span part=\"brand\">\n {{yield to=\"brand\"}}\n </span>\n {{/if}}\n </div>\n\n <div data-menu-content>\n {{! template-lint-disable no-duplicate-landmark-elements }}\n <nav aria-labelledby={{brandId}}>\n {{yield (hash Item=PopoverNavItem) to=\"nav\"}}\n </nav>\n {{! template-lint-enable no-duplicate-landmark-elements }}\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=(component NavItem position=\"top-start\")) to=\"aux\"}}\n </span>\n {{/if}}\n </div>\n </div>\n {{/let}}\n </span>\n {{/if}}\n </div>\n </header>\n {{/let}}\n </template>\n}\n"],"names":["asLink","value","NavItem","setComponentTemplate","precompileTemplate","strictMode","scope","NavLink","and","popover","Menu","templateOnly","PopoverNavItem","hash","CloseIcon","ListIcon","AppHeader","Component","g","prototype","tracked","i","void 0","detectOverflow","_buildTask","context","generator","element","timeout","sensing","relevantChildren","children","filter","elem","tagName","toLowerCase","getAttribute","length","headerWidth","map","e","Math","floor","scrollWidth","reduce","sum","elemWidth","Number","parseInt","getComputedStyle","getPropertyValue","childElementCount","topNavShown","clientWidth","flipflop","modifier","sensor","perform","window","addEventListener","removeEventListener","closeWhenLink","checkForClose","event","hitALink","composedPath","some","target","includes","hidePopover","uniqueId","styles","CommandElement","or","not","IconButton"],"mappings":"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"}
|