@taiga-ui/testing 3.54.0-canary.e1ba43c → 3.55.0-canary.17e839c

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.
@@ -166,21 +166,6 @@ class TuiButtonHarness extends TuiComponentHarness {
166
166
  }
167
167
  TuiButtonHarness.hostSelector = `button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]`;
168
168
 
169
- class TuiPrimitiveCalendarHarness extends TuiComponentHarness {
170
- clickDay(day) {
171
- return __awaiter(this, void 0, void 0, function* () {
172
- const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
173
- return dayCell.click();
174
- });
175
- }
176
- hoverDay(day) {
177
- return __awaiter(this, void 0, void 0, function* () {
178
- const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
179
- return dayCell.hover();
180
- });
181
- }
182
- }
183
- TuiPrimitiveCalendarHarness.hostSelector = `tui-primitive-calendar`;
184
169
  class TuiDayCellHarness extends ComponentHarness {
185
170
  static with(options) {
186
171
  return new HarnessPredicate(TuiDayCellHarness, options).addOption(`day`, options.day, (harness, text) => __awaiter(this, void 0, void 0, function* () { return HarnessPredicate.stringMatches(harness.getText(), `${text}`); }));
@@ -202,6 +187,21 @@ class TuiDayCellHarness extends ComponentHarness {
202
187
  }
203
188
  }
204
189
  TuiDayCellHarness.hostSelector = `.t-cell:not(.t-cell_unavailable)`;
190
+ class TuiPrimitiveCalendarHarness extends TuiComponentHarness {
191
+ clickDay(day) {
192
+ return __awaiter(this, void 0, void 0, function* () {
193
+ const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
194
+ return dayCell.click();
195
+ });
196
+ }
197
+ hoverDay(day) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
200
+ return dayCell.hover();
201
+ });
202
+ }
203
+ }
204
+ TuiPrimitiveCalendarHarness.hostSelector = `tui-primitive-calendar`;
205
205
 
206
206
  class TuiPrimitiveSpinButtonHarness extends TuiComponentHarness {
207
207
  isLeftDisabled() {
@@ -263,15 +263,6 @@ class TuiPrimitiveYearMonthPaginationHarness extends TuiComponentHarness {
263
263
  }
264
264
  TuiPrimitiveYearMonthPaginationHarness.hostSelector = `tui-primitive-year-month-pagination`;
265
265
 
266
- class TuiPrimitiveYearPickerHarness extends TuiComponentHarness {
267
- clickYear(year) {
268
- return __awaiter(this, void 0, void 0, function* () {
269
- const yearCell = yield this.locatorFor(TuiYearCellHarness.with({ year }))();
270
- return yearCell.click();
271
- });
272
- }
273
- }
274
- TuiPrimitiveYearPickerHarness.hostSelector = `tui-primitive-year-picker`;
275
266
  class TuiYearCellHarness extends ComponentHarness {
276
267
  static with(options) {
277
268
  return new HarnessPredicate(TuiYearCellHarness, options).addOption(`year`, options.year, (harness, text) => __awaiter(this, void 0, void 0, function* () { return HarnessPredicate.stringMatches(harness.getText(), text); }));
@@ -288,6 +279,15 @@ class TuiYearCellHarness extends ComponentHarness {
288
279
  }
289
280
  }
290
281
  TuiYearCellHarness.hostSelector = `.t-cell`;
282
+ class TuiPrimitiveYearPickerHarness extends TuiComponentHarness {
283
+ clickYear(year) {
284
+ return __awaiter(this, void 0, void 0, function* () {
285
+ const yearCell = yield this.locatorFor(TuiYearCellHarness.with({ year }))();
286
+ return yearCell.click();
287
+ });
288
+ }
289
+ }
290
+ TuiPrimitiveYearPickerHarness.hostSelector = `tui-primitive-year-picker`;
291
291
 
292
292
  class TuiCalendarHarness extends TuiComponentHarness {
293
293
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-testing-core.js","sources":["../../../projects/testing/core/accordion.harness.ts","../../../projects/testing/core/svg.harness.ts","../../../projects/testing/core/accordion-item.harness.ts","../../../projects/testing/core/marker-icon.harness.ts","../../../projects/testing/core/action.harness.ts","../../../projects/testing/core/avatar.harness.ts","../../../projects/testing/core/badge.harness.ts","../../../projects/testing/core/loader.harness.ts","../../../projects/testing/core/button.harness.ts","../../../projects/testing/core/primitive-calender.harness.ts","../../../projects/testing/core/primitive-spin-button.harness.ts","../../../projects/testing/core/primitive-year-month-pagination.harness.ts","../../../projects/testing/core/primitive-year-picker.harness.ts","../../../projects/testing/core/calendar.harness.ts","../../../projects/testing/core/card.harness.ts","../../../projects/testing/core/dialog.harness.ts","../../../projects/testing/core/hosted-dropdown.harness.ts","../../../projects/testing/core/island.harness.ts","../../../projects/testing/core/primitive-textfield.harness.ts","../../../projects/testing/core/select.harness.ts","../../../projects/testing/core/tag.harness.ts","../../../projects/testing/core/textfield.harness.ts","../../../projects/testing/core/toggle.harness.ts","../../../projects/testing/core/taiga-ui-testing-core.ts"],"sourcesContent":["import {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiAccordionHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-accordion`;\n\n async hasRoundedCorners(): Promise<boolean> {\n return (await this.locatorFor(`.t-group`)()).hasClass(`tui-group_rounded`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiSvgHarness extends TuiComponentHarness {\n static hostSelector = `tui-svg`;\n\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n async text(): Promise<string> {\n return (await this.host()).text();\n }\n\n async isInnerHTML(): Promise<boolean> {\n return !!(await this.locatorForOptional(`div`)());\n }\n\n async getUse(): Promise<string | null> {\n return (\n (await this.locatorForOptional(`use`)())?.getAttribute(`xlink:href`) ?? null\n );\n }\n}\n","import {TestKey} from '@angular/cdk/testing';\nimport {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiAccordionItemHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-accordion-item`;\n\n private readonly header = this.locatorFor(`.t-header`);\n\n async getTitle(): Promise<string> {\n return (await this.locatorFor(`.t-title`)()).text();\n }\n\n async getContent(): Promise<string | null> {\n return (await this.locatorForOptional(`.t-content`)())?.text() ?? null;\n }\n\n async clickHeader(): Promise<void> {\n return (await this.locatorFor(`.t-header`)()).click();\n }\n\n async getBorders(): Promise<string | null> {\n return (await this.host()).getAttribute(`data-borders`);\n }\n\n async hasArrow(): Promise<boolean> {\n return (\n !!(await this.locatorForOptional(\n TuiSvgHarness.with({selector: `.t-icon`}),\n )()) ?? false\n );\n }\n\n async focus(): Promise<void> {\n return (await this.header()).focus();\n }\n\n async sendEscKey(): Promise<void> {\n return (await this.header()).sendKeys(TestKey.ESCAPE);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiMarkerIconHarness extends TuiComponentHarness {\n static hostSelector = `tui-marker-icon`;\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiMarkerIconHarness} from './marker-icon.harness';\n\nexport class TuiActionHarness extends TuiComponentHarness {\n static hostSelector = `button[tuiAction], a[tuiAction]`;\n\n protected getIconHarness = this.locatorForOptional(TuiMarkerIconHarness);\n\n async icon(): Promise<TuiMarkerIconHarness | null> {\n return this.getIconHarness();\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiAvatarHarness extends TuiComponentHarness {\n static hostSelector = `tui-avatar`;\n\n async text(): Promise<string> {\n return (await this.host()).text();\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiBadgeHarness extends TuiComponentHarness {\n static hostSelector = `tui-badge`;\n\n async text(): Promise<string> {\n return (await this.host()).text();\n }\n\n async padding(): Promise<string | null> {\n return (await this.host()).getAttribute(`data-padding`);\n }\n\n async hasClass(cls: string): Promise<boolean> {\n return (await this.host()).hasClass(cls);\n }\n}\n","import {tuiHarnessWith, tuiWithPredicate} from '@taiga-ui/testing/utils';\n\n@tuiWithPredicate\nexport class TuiLoaderHarness extends tuiHarnessWith<TuiLoaderHarness>(`tui-loader`) {\n private readonly loader = this.locatorForOptional(`fieldset.t-content + .t-loader`);\n\n async isLoading(): Promise<boolean> {\n return !!(await this.loader());\n }\n\n async getText(): Promise<string> {\n const loader = await this.loader();\n\n return loader?.text() ?? ``;\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiLoaderHarness} from './loader.harness';\n\nexport class TuiButtonHarness extends TuiComponentHarness {\n static hostSelector = `button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]`;\n private readonly loader = this.locatorForOptional(TuiLoaderHarness);\n\n async isLoading(): Promise<boolean> {\n return !!(await this.loader());\n }\n\n async hasClass(input: string): Promise<boolean> {\n return (await this.host()).hasClass(input);\n }\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiPrimitiveCalendarHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-calendar`;\n\n async clickDay(day: number): Promise<void> {\n const dayCell = await this.locatorFor(\n TuiDayCellHarness.with({day, ancestor: `#date-rows`}),\n )();\n\n return dayCell.click();\n }\n\n async hoverDay(day: number): Promise<void> {\n const dayCell = await this.locatorFor(\n TuiDayCellHarness.with({day, ancestor: `#date-rows`}),\n )();\n\n return dayCell.hover();\n }\n}\n\nclass TuiDayCellHarness extends ComponentHarness {\n static hostSelector = `.t-cell:not(.t-cell_unavailable)`;\n\n static with(options: TuiDayCellHarnessFilters): HarnessPredicate<TuiDayCellHarness> {\n return new HarnessPredicate(TuiDayCellHarness, options).addOption(\n `day`,\n options.day,\n async (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), `${text}`),\n );\n }\n\n async getText(): Promise<string> {\n return (await this.locatorFor(`.t-item`)()).text();\n }\n\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n async hover(): Promise<void> {\n return (await this.host()).hover();\n }\n}\n\ninterface TuiDayCellHarnessFilters extends BaseHarnessFilters {\n day: number;\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiButtonHarness} from './button.harness';\n\nexport class TuiPrimitiveSpinButtonHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-spin-button`;\n\n async isLeftDisabled(): Promise<boolean> {\n return (await this.locatorForAll(TuiButtonHarness)())[0].hasClass(`t-hidden`);\n }\n\n async isRightDisabled(): Promise<boolean> {\n return (await this.locatorForAll(TuiButtonHarness)())[1].hasClass(`t-hidden`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiPrimitiveSpinButtonHarness} from './primitive-spin-button.harness';\n\nexport class TuiPrimitiveYearMonthPaginationHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-year-month-pagination`;\n\n private readonly buttonLeft = this.locatorForOptional(\n `button[tuiIconButton]:first-child`,\n );\n\n private readonly content = this.locatorForOptional(`.t-calendar-title`);\n\n private readonly buttonRight = this.locatorForOptional(\n `button[tuiIconButton]:last-child`,\n );\n\n private readonly button = this.locatorForOptional(`#year-btn`);\n private readonly primitiveSpinButton = this.locatorFor(TuiPrimitiveSpinButtonHarness);\n\n async clickLeft(): Promise<void> {\n return (await this.buttonLeft())?.click();\n }\n\n async getContentText(): Promise<string> {\n return (await this.content())?.text() ?? ``;\n }\n\n async clickRight(): Promise<void> {\n return (await this.buttonRight())?.click();\n }\n\n async clickYear(): Promise<void> {\n return (await this.button())?.click();\n }\n\n async isLeftDisabled(): Promise<boolean> {\n return (await this.primitiveSpinButton()).isLeftDisabled();\n }\n\n async isRightDisabled(): Promise<boolean> {\n return (await this.primitiveSpinButton()).isRightDisabled();\n }\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiPrimitiveYearPickerHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-year-picker`;\n\n async clickYear(year: string): Promise<void> {\n const yearCell = await this.locatorFor(TuiYearCellHarness.with({year}))();\n\n return yearCell.click();\n }\n}\n\nclass TuiYearCellHarness extends ComponentHarness {\n static hostSelector = `.t-cell`;\n\n static with(\n options: TuiYearCellHarnessFilters,\n ): HarnessPredicate<TuiYearCellHarness> {\n return new HarnessPredicate(TuiYearCellHarness, options).addOption(\n `year`,\n options.year,\n async (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n\n async getText(): Promise<string> {\n return (await this.locatorFor(`.t-item`)()).text();\n }\n\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n}\n\ninterface TuiYearCellHarnessFilters extends BaseHarnessFilters {\n year: string;\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiPrimitiveCalendarHarness} from './primitive-calender.harness';\nimport {TuiPrimitiveYearMonthPaginationHarness} from './primitive-year-month-pagination.harness';\nimport {TuiPrimitiveYearPickerHarness} from './primitive-year-picker.harness';\n\nexport class TuiCalendarHarness extends TuiComponentHarness {\n static hostSelector = `tui-calendar`;\n\n private readonly getPrimitiveYearPickerHarness = this.locatorForOptional(\n TuiPrimitiveYearPickerHarness,\n );\n\n private readonly getPrimitiveYearMonthPaginationHarness = this.locatorForOptional(\n TuiPrimitiveYearMonthPaginationHarness,\n );\n\n private readonly getPrimitiveCalendarHarness = this.locatorForOptional(\n TuiPrimitiveCalendarHarness,\n );\n\n async yearPickerShown(): Promise<boolean> {\n return !!(await this.getPrimitiveYearPickerHarness());\n }\n\n async yearMonthPaginationShown(): Promise<boolean> {\n return !!(await this.getPrimitiveYearMonthPaginationHarness());\n }\n\n async primitiveCalendarShown(): Promise<boolean> {\n return !!(await this.getPrimitiveCalendarHarness());\n }\n\n async isPaginationLeftDisabled(): Promise<boolean> {\n return (\n (await this.getPrimitiveYearMonthPaginationHarness())?.isLeftDisabled() ??\n false\n );\n }\n\n async isPaginationRightDisabled(): Promise<boolean> {\n return (\n (await this.getPrimitiveYearMonthPaginationHarness())?.isRightDisabled() ??\n false\n );\n }\n\n async clickMonthLeft(): Promise<void> {\n return (await this.getPrimitiveYearMonthPaginationHarness())?.clickLeft();\n }\n\n async getContentText(): Promise<string> {\n return (\n (await this.getPrimitiveYearMonthPaginationHarness())?.getContentText() ?? ``\n );\n }\n\n async clickMonthRight(): Promise<void> {\n return (await this.getPrimitiveYearMonthPaginationHarness())?.clickRight();\n }\n\n async clickPaginationYear(): Promise<void> {\n return (await this.getPrimitiveYearMonthPaginationHarness())?.clickYear();\n }\n\n async clickPickerYear(year: string): Promise<void> {\n return (await this.getPrimitiveYearPickerHarness())?.clickYear(year);\n }\n\n async clickDay(day: number): Promise<void> {\n return (await this.getPrimitiveCalendarHarness())?.clickDay(day);\n }\n\n async hoverDay(day: number): Promise<void> {\n return (await this.getPrimitiveCalendarHarness())?.hoverDay(day);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiThumbnailCardHarness extends TuiComponentHarness {\n static hostSelector = `tui-thumbnail-card`;\n\n async hasPaymentSystemLogo(): Promise<boolean> {\n const tuiSvg = await this.locatorForOptional(\n TuiSvgHarness.with({selector: `.t-payment-system-logo`}),\n )();\n\n return !!tuiSvg;\n }\n\n async hasBrandLogo(): Promise<boolean> {\n const tuiSvg = await this.locatorForOptional(\n TuiSvgHarness.with({selector: `.t-brand-logo`}),\n )();\n\n return !!tuiSvg;\n }\n}\n\n/**\n * @deprecated use {@link TuiThumbnailCardHarness}\n */\nexport class TuiCardHarness extends TuiThumbnailCardHarness {\n static override hostSelector = `tui-card`;\n}\n","import {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiButtonHarness} from './button.harness';\n\nexport class TuiDialogHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-dialog`;\n\n async getCloseButton(): Promise<TuiButtonHarness | null> {\n return this.locatorForOptional(\n TuiButtonHarness.with({\n selector: `[automation-id=tui-dialog__close]`,\n }),\n )();\n }\n}\n","import {TestKey} from '@angular/cdk/testing';\nimport {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiHostedDropdownHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-hosted-dropdown`;\n\n async sendSpaceKey(): Promise<void> {\n return (await this.host()).sendKeys(` `);\n }\n\n async sendEscKey(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.ESCAPE);\n }\n}\n","import {TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiIslandHarness extends TuiComponentHarness {\n static hostSelector = `tui-island`;\n\n async getSize(): Promise<TuiSizeL | TuiSizeS> {\n if (await this.isSizeL()) {\n return `l`;\n }\n\n if (await this.isSizeM()) {\n return `m`;\n }\n\n return `s`;\n }\n\n async getTextAlign(): Promise<'center' | 'left' | 'right'> {\n if (await this.isTextAlignLeft()) {\n return `left`;\n }\n\n if (await this.isTextAlignCenter()) {\n return `center`;\n }\n\n return `right`;\n }\n\n async isHoverable(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_hoverable`);\n }\n\n private async isTextAlignLeft(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_text-align_left`);\n }\n\n private async isTextAlignCenter(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_text-align_center`);\n }\n\n private async isSizeM(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_size_m`);\n }\n\n private async isSizeL(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_size_l`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiPrimitiveTextfieldHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-textfield`;\n\n async valueDecorationText(): Promise<string> {\n return (await this.locatorFor(`tui-value-decoration`)()).text();\n }\n\n async inputPlaceholder(): Promise<string> {\n return (await this.locatorFor(`input`)()).getProperty(`placeholder`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiHostedDropdownHarness} from './hosted-dropdown.harness';\n\nexport class TuiSelectHarness extends TuiComponentHarness {\n static hostSelector = `tui-select`;\n private readonly hostedDropdown = this.locatorFor(TuiHostedDropdownHarness);\n\n async sendSpaceKey(): Promise<void> {\n return (await this.hostedDropdown()).sendSpaceKey();\n }\n\n async sendEscKey(): Promise<void> {\n return (await this.hostedDropdown()).sendEscKey();\n }\n}\n","import {TestElement, TestKey} from '@angular/cdk/testing';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiTagHarness extends TuiComponentHarness {\n static hostSelector = `tui-tag`;\n\n async getCrossIcon(): Promise<TuiSvgHarness | null> {\n return this.locatorForOptional(TuiSvgHarness.with({selector: `.t-icon`}))();\n }\n\n async getBackgroundColor(): Promise<string> {\n const div = await this.locatorFor(`:first-child`)();\n\n return div.getCssValue(`background-color`);\n }\n\n async getInput(): Promise<TestElement | null> {\n return this.locatorForOptional(`input.t-edit`)();\n }\n\n async sendEnter(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.ENTER);\n }\n\n async sendBackspace(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.BACKSPACE);\n }\n\n async sendDelete(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.DELETE);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiTextfieldHarness extends TuiComponentHarness {\n static hostSelector = `input[tuiTextfield], textarea[tuiTextfield]`;\n\n async sendSpaceKey(): Promise<void> {\n return (await this.host()).sendKeys(` `);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiToggleHarness extends TuiComponentHarness {\n static hostSelector = `tui-toggle`;\n protected input = this.locatorFor(`input`);\n\n async toggle(): Promise<void> {\n return (await this.input()).click();\n }\n\n async getIcons(): Promise<TuiSvgHarness[]> {\n return this.locatorForAll(TuiSvgHarness)();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEM,MAAO,mBAAoB,SAAQ,mCAAmC,CAAA;IAGlE,iBAAiB,GAAA;;AACnB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAA,QAAA,CAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA,iBAAA,CAAmB,CAAC,CAAC;SAC9E,CAAA,CAAA;AAAA,KAAA;;AAJM,mBAAY,CAAA,YAAA,GAAG,eAAe;;ACDnC,MAAO,aAAc,SAAQ,mBAAmB,CAAA;IAG5C,KAAK,GAAA;;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;SACtC,CAAA,CAAA;AAAA,KAAA;IAEK,IAAI,GAAA;;YACN,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;SACrC,CAAA,CAAA;AAAA,KAAA;IAEK,WAAW,GAAA;;AACb,YAAA,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAK,GAAA,CAAA,CAAC,EAAE,CAAC,CAAC;SACrD,CAAA,CAAA;AAAA,KAAA;IAEK,MAAM,GAAA;;;YACR,QACI,MAAA,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAA,GAAA,CAAK,CAAC,EAAE,CAAC,0CAAE,YAAY,CAAC,YAAY,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,EAC9E;;AACL,KAAA;;AAlBM,aAAY,CAAA,YAAA,GAAG,SAAS;;ACE7B,MAAO,uBAAwB,SAAQ,mCAAmC,CAAA;AAAhF,IAAA,WAAA,GAAA;;AAGqB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA,SAAA,CAAW,CAAC,CAAC;KAiC1D;IA/BS,QAAQ,GAAA;;AACV,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAU,QAAA,CAAA,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;SACvD,CAAA,CAAA;AAAA,KAAA;IAEK,UAAU,GAAA;;;AACZ,YAAA,OAAO,MAAA,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAY,UAAA,CAAA,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;;AAC1E,KAAA;IAEK,WAAW,GAAA;;AACb,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAW,SAAA,CAAA,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;SACzD,CAAA,CAAA;AAAA,KAAA;IAEK,UAAU,GAAA;;AACZ,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAc,YAAA,CAAA,CAAC,CAAC;SAC3D,CAAA,CAAA;AAAA,KAAA;IAEK,QAAQ,GAAA;;;YACV,QACI,CAAA,EAAA,GAAA,CAAC,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAC5B,aAAa,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAA,OAAA,CAAS,EAAC,CAAC,CAC5C,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,EACf;;AACL,KAAA;IAEK,KAAK,GAAA;;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;SACxC,CAAA,CAAA;AAAA,KAAA;IAEK,UAAU,GAAA;;AACZ,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACzD,CAAA,CAAA;AAAA,KAAA;;AAlCM,uBAAY,CAAA,YAAA,GAAG,oBAAoB;;ACJxC,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;;AAClD,oBAAY,CAAA,YAAA,GAAG,iBAAiB;;ACCrC,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAAzD,IAAA,WAAA,GAAA;;AAGc,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;KAK5E;IAHS,IAAI,GAAA;;AACN,YAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAChC,CAAA,CAAA;AAAA,KAAA;;AANM,gBAAY,CAAA,YAAA,GAAG,iCAAiC;;ACHrD,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;IAG/C,IAAI,GAAA;;YACN,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;SACrC,CAAA,CAAA;AAAA,KAAA;;AAJM,gBAAY,CAAA,YAAA,GAAG,YAAY;;ACDhC,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;IAG9C,IAAI,GAAA;;YACN,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;SACrC,CAAA,CAAA;AAAA,KAAA;IAEK,OAAO,GAAA;;AACT,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAc,YAAA,CAAA,CAAC,CAAC;SAC3D,CAAA,CAAA;AAAA,KAAA;AAEK,IAAA,QAAQ,CAAC,GAAW,EAAA;;AACtB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC5C,CAAA,CAAA;AAAA,KAAA;;AAZM,eAAY,CAAA,YAAA,GAAG,WAAW;;ACAxB,IAAA,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,cAAc,CAAmB,YAAY,CAAC,CAAA;AAApF,IAAA,WAAA,GAAA;;AACqB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA,8BAAA,CAAgC,CAAC,CAAC;KAWvF;IATS,SAAS,GAAA;;YACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAClC,CAAA,CAAA;AAAA,KAAA;IAEK,OAAO,GAAA;;;AACT,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnC,OAAO,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,EAAE,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAA,CAAE,CAAC;;AAC/B,KAAA;EACJ;AAZY,gBAAgB,GAAA,UAAA,CAAA;IAD5B,gBAAgB;AACJ,CAAA,EAAA,gBAAgB,CAY5B;;ACXK,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAAzD,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;KASvE;IAPS,SAAS,GAAA;;YACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAClC,CAAA,CAAA;AAAA,KAAA;AAEK,IAAA,QAAQ,CAAC,KAAa,EAAA;;AACxB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9C,CAAA,CAAA;AAAA,KAAA;;AATM,gBAAY,CAAA,YAAA,GAAG,0EAA0E;;ACE9F,MAAO,2BAA4B,SAAQ,mBAAmB,CAAA;AAG1D,IAAA,QAAQ,CAAC,GAAW,EAAA;;YACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CACjC,iBAAiB,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC,CACxD,EAAE,CAAC;AAEJ,YAAA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;SAC1B,CAAA,CAAA;AAAA,KAAA;AAEK,IAAA,QAAQ,CAAC,GAAW,EAAA;;YACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CACjC,iBAAiB,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC,CACxD,EAAE,CAAC;AAEJ,YAAA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;SAC1B,CAAA,CAAA;AAAA,KAAA;;AAhBM,2BAAY,CAAA,YAAA,GAAG,wBAAwB,CAAC;AAmBnD,MAAM,iBAAkB,SAAQ,gBAAgB,CAAA;IAG5C,OAAO,IAAI,CAAC,OAAiC,EAAA;AACzC,QAAA,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,CAC7D,CAAA,GAAA,CAAK,EACL,OAAO,CAAC,GAAG,EACX,CAAO,OAAO,EAAE,IAAI,oDAChB,OAAA,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAA,CAAE,CAAC,CAAA,EAAA,CAAA,CACnE,CAAC;KACL;IAEK,OAAO,GAAA;;AACT,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAS,OAAA,CAAA,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;SACtD,CAAA,CAAA;AAAA,KAAA;IAEK,KAAK,GAAA;;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;SACtC,CAAA,CAAA;AAAA,KAAA;IAEK,KAAK,GAAA;;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;SACtC,CAAA,CAAA;AAAA,KAAA;;AArBM,iBAAY,CAAA,YAAA,GAAG,kCAAkC;;ACxBtD,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;IAG5D,cAAc,GAAA;;AAChB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA,QAAA,CAAU,CAAC,CAAC;SACjF,CAAA,CAAA;AAAA,KAAA;IAEK,eAAe,GAAA;;AACjB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA,QAAA,CAAU,CAAC,CAAC;SACjF,CAAA,CAAA;AAAA,KAAA;;AARM,6BAAY,CAAA,YAAA,GAAG,2BAA2B;;ACD/C,MAAO,sCAAuC,SAAQ,mBAAmB,CAAA;AAA/E,IAAA,WAAA,GAAA;;AAGqB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CACjD,CAAA,iCAAA,CAAmC,CACtC,CAAC;AAEe,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA,iBAAA,CAAmB,CAAC,CAAC;AAEvD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAClD,CAAA,gCAAA,CAAkC,CACrC,CAAC;AAEe,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA,SAAA,CAAW,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;KAyBzF;IAvBS,SAAS,GAAA;;;YACX,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;;AAC7C,KAAA;IAEK,cAAc,GAAA;;;AAChB,YAAA,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;;AAC/C,KAAA;IAEK,UAAU,GAAA;;;YACZ,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;;AAC9C,KAAA;IAEK,SAAS,GAAA;;;YACX,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;;AACzC,KAAA;IAEK,cAAc,GAAA;;YAChB,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,cAAc,EAAE,CAAC;SAC9D,CAAA,CAAA;AAAA,KAAA;IAEK,eAAe,GAAA;;YACjB,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,eAAe,EAAE,CAAC;SAC/D,CAAA,CAAA;AAAA,KAAA;;AArCM,sCAAY,CAAA,YAAA,GAAG,qCAAqC;;ACEzD,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;AAG5D,IAAA,SAAS,CAAC,IAAY,EAAA;;AACxB,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;AAE1E,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC3B,CAAA,CAAA;AAAA,KAAA;;AANM,6BAAY,CAAA,YAAA,GAAG,2BAA2B,CAAC;AAStD,MAAM,kBAAmB,SAAQ,gBAAgB,CAAA;IAG7C,OAAO,IAAI,CACP,OAAkC,EAAA;AAElC,QAAA,OAAO,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,CAC9D,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,CAAO,OAAO,EAAE,IAAI,KAChB,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA,EAAA,OAAA,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAA,EAAA,CAAA,CAC9D,CAAC;KACL;IAEK,OAAO,GAAA;;AACT,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAS,OAAA,CAAA,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;SACtD,CAAA,CAAA;AAAA,KAAA;IAEK,KAAK,GAAA;;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;SACtC,CAAA,CAAA;AAAA,KAAA;;AAnBM,kBAAY,CAAA,YAAA,GAAG,SAAS;;ACZ7B,MAAO,kBAAmB,SAAQ,mBAAmB,CAAA;AAA3D,IAAA,WAAA,GAAA;;AAGqB,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,CAAC,kBAAkB,CACpE,6BAA6B,CAChC,CAAC;AAEe,QAAA,IAAA,CAAA,sCAAsC,GAAG,IAAI,CAAC,kBAAkB,CAC7E,sCAAsC,CACzC,CAAC;AAEe,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAClE,2BAA2B,CAC9B,CAAC;KAyDL;IAvDS,eAAe,GAAA;;YACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC;SACzD,CAAA,CAAA;AAAA,KAAA;IAEK,wBAAwB,GAAA;;YAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,CAAC;SAClE,CAAA,CAAA;AAAA,KAAA;IAEK,sBAAsB,GAAA;;YACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;SACvD,CAAA,CAAA;AAAA,KAAA;IAEK,wBAAwB,GAAA;;;AAC1B,YAAA,QACI,CAAA,EAAA,GAAA,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,0CAAE,cAAc,EAAE,MACvE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,EACP;;AACL,KAAA;IAEK,yBAAyB,GAAA;;;AAC3B,YAAA,QACI,CAAA,EAAA,GAAA,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,0CAAE,eAAe,EAAE,MACxE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,EACP;;AACL,KAAA;IAEK,cAAc,GAAA;;;YAChB,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,EAAE,CAAC;;AAC7E,KAAA;IAEK,cAAc,GAAA;;;AAChB,YAAA,QACI,CAAA,EAAA,GAAA,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,0CAAE,cAAc,EAAE,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAA,CAAE,EAC/E;;AACL,KAAA;IAEK,eAAe,GAAA;;;YACjB,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,EAAE,CAAC;;AAC9E,KAAA;IAEK,mBAAmB,GAAA;;;YACrB,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,sCAAsC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,EAAE,CAAC;;AAC7E,KAAA;AAEK,IAAA,eAAe,CAAC,IAAY,EAAA;;;AAC9B,YAAA,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,IAAI,CAAC,CAAC;;AACxE,KAAA;AAEK,IAAA,QAAQ,CAAC,GAAW,EAAA;;;AACtB,YAAA,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,GAAG,CAAC,CAAC;;AACpE,KAAA;AAEK,IAAA,QAAQ,CAAC,GAAW,EAAA;;;AACtB,YAAA,OAAO,CAAA,EAAA,IAAC,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,GAAG,CAAC,CAAC;;AACpE,KAAA;;AApEM,kBAAY,CAAA,YAAA,GAAG,cAAc;;ACHlC,MAAO,uBAAwB,SAAQ,mBAAmB,CAAA;IAGtD,oBAAoB,GAAA;;AACtB,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACxC,aAAa,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAA,sBAAA,CAAwB,EAAC,CAAC,CAC3D,EAAE,CAAC;YAEJ,OAAO,CAAC,CAAC,MAAM,CAAC;SACnB,CAAA,CAAA;AAAA,KAAA;IAEK,YAAY,GAAA;;AACd,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACxC,aAAa,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAA,aAAA,CAAe,EAAC,CAAC,CAClD,EAAE,CAAC;YAEJ,OAAO,CAAC,CAAC,MAAM,CAAC;SACnB,CAAA,CAAA;AAAA,KAAA;;AAhBM,uBAAY,CAAA,YAAA,GAAG,oBAAoB,CAAC;AAmB/C;;AAEG;AACG,MAAO,cAAe,SAAQ,uBAAuB,CAAA;;AACvC,cAAY,CAAA,YAAA,GAAG,UAAU;;ACxBvC,MAAO,gBAAiB,SAAQ,mCAAmC,CAAA;IAG/D,cAAc,GAAA;;AAChB,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAC1B,gBAAgB,CAAC,IAAI,CAAC;AAClB,gBAAA,QAAQ,EAAE,CAAmC,iCAAA,CAAA;aAChD,CAAC,CACL,EAAE,CAAC;SACP,CAAA,CAAA;AAAA,KAAA;;AARM,gBAAY,CAAA,YAAA,GAAG,YAAY;;ACFhC,MAAO,wBAAyB,SAAQ,mCAAmC,CAAA;IAGvE,YAAY,GAAA;;AACd,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;SAC5C,CAAA,CAAA;AAAA,KAAA;IAEK,UAAU,GAAA;;AACZ,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACvD,CAAA,CAAA;AAAA,KAAA;;AARM,wBAAY,CAAA,YAAA,GAAG,qBAAqB;;ACDzC,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;IAG/C,OAAO,GAAA;;AACT,YAAA,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;AACtB,gBAAA,OAAO,GAAG,CAAC;AACd,aAAA;AAED,YAAA,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;AACtB,gBAAA,OAAO,GAAG,CAAC;AACd,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACd,CAAA,CAAA;AAAA,KAAA;IAEK,YAAY,GAAA;;AACd,YAAA,IAAI,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE;AAC9B,gBAAA,OAAO,MAAM,CAAC;AACjB,aAAA;AAED,YAAA,IAAI,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAChC,gBAAA,OAAO,QAAQ,CAAC;AACnB,aAAA;AAED,YAAA,OAAO,OAAO,CAAC;SAClB,CAAA,CAAA;AAAA,KAAA;IAEK,WAAW,GAAA;;AACb,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAsB,oBAAA,CAAA,CAAC,CAAC;SAC/D,CAAA,CAAA;AAAA,KAAA;IAEa,eAAe,GAAA;;AACzB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC;SACrE,CAAA,CAAA;AAAA,KAAA;IAEa,iBAAiB,GAAA;;AAC3B,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAA8B,4BAAA,CAAA,CAAC,CAAC;SACvE,CAAA,CAAA;AAAA,KAAA;IAEa,OAAO,GAAA;;AACjB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAmB,iBAAA,CAAA,CAAC,CAAC;SAC5D,CAAA,CAAA;AAAA,KAAA;IAEa,OAAO,GAAA;;AACjB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAmB,iBAAA,CAAA,CAAC,CAAC;SAC5D,CAAA,CAAA;AAAA,KAAA;;AA5CM,gBAAY,CAAA,YAAA,GAAG,YAAY;;ACFhC,MAAO,4BAA6B,SAAQ,mBAAmB,CAAA;IAG3D,mBAAmB,GAAA;;AACrB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAsB,oBAAA,CAAA,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;SACnE,CAAA,CAAA;AAAA,KAAA;IAEK,gBAAgB,GAAA;;AAClB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAA,KAAA,CAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA,WAAA,CAAa,CAAC,CAAC;SACxE,CAAA,CAAA;AAAA,KAAA;;AARM,4BAAY,CAAA,YAAA,GAAG,yBAAyB;;ACC7C,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAAzD,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;KAS/E;IAPS,YAAY,GAAA;;YACd,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC;SACvD,CAAA,CAAA;AAAA,KAAA;IAEK,UAAU,GAAA;;YACZ,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC;SACrD,CAAA,CAAA;AAAA,KAAA;;AATM,gBAAY,CAAA,YAAA,GAAG,YAAY;;ACAhC,MAAO,aAAc,SAAQ,mBAAmB,CAAA;IAG5C,YAAY,GAAA;;AACd,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,CAAS,OAAA,CAAA,EAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAA,CAAA;AAAA,KAAA;IAEK,kBAAkB,GAAA;;YACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAA,YAAA,CAAc,CAAC,EAAE,CAAC;AAEpD,YAAA,OAAO,GAAG,CAAC,WAAW,CAAC,CAAA,gBAAA,CAAkB,CAAC,CAAC;SAC9C,CAAA,CAAA;AAAA,KAAA;IAEK,QAAQ,GAAA;;AACV,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAc,YAAA,CAAA,CAAC,EAAE,CAAC;SACpD,CAAA,CAAA;AAAA,KAAA;IAEK,SAAS,GAAA;;AACX,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACtD,CAAA,CAAA;AAAA,KAAA;IAEK,aAAa,GAAA;;AACf,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC1D,CAAA,CAAA;AAAA,KAAA;IAEK,UAAU,GAAA;;AACZ,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACvD,CAAA,CAAA;AAAA,KAAA;;AA1BM,aAAY,CAAA,YAAA,GAAG,SAAS;;ACJ7B,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;IAGlD,YAAY,GAAA;;AACd,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;SAC5C,CAAA,CAAA;AAAA,KAAA;;AAJM,mBAAY,CAAA,YAAA,GAAG,6CAA6C;;ACCjE,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAAzD,IAAA,WAAA,GAAA;;AAEc,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA,KAAA,CAAO,CAAC,CAAC;KAS9C;IAPS,MAAM,GAAA;;YACR,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC;SACvC,CAAA,CAAA;AAAA,KAAA;IAEK,QAAQ,GAAA;;AACV,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;SAC9C,CAAA,CAAA;AAAA,KAAA;;AATM,gBAAY,CAAA,YAAA,GAAG,YAAY;;ACLtC;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-testing-core.js","sources":["../../../projects/testing/core/accordion.harness.ts","../../../projects/testing/core/svg.harness.ts","../../../projects/testing/core/accordion-item.harness.ts","../../../projects/testing/core/marker-icon.harness.ts","../../../projects/testing/core/action.harness.ts","../../../projects/testing/core/avatar.harness.ts","../../../projects/testing/core/badge.harness.ts","../../../projects/testing/core/loader.harness.ts","../../../projects/testing/core/button.harness.ts","../../../projects/testing/core/primitive-calender.harness.ts","../../../projects/testing/core/primitive-spin-button.harness.ts","../../../projects/testing/core/primitive-year-month-pagination.harness.ts","../../../projects/testing/core/primitive-year-picker.harness.ts","../../../projects/testing/core/calendar.harness.ts","../../../projects/testing/core/card.harness.ts","../../../projects/testing/core/dialog.harness.ts","../../../projects/testing/core/hosted-dropdown.harness.ts","../../../projects/testing/core/island.harness.ts","../../../projects/testing/core/primitive-textfield.harness.ts","../../../projects/testing/core/select.harness.ts","../../../projects/testing/core/tag.harness.ts","../../../projects/testing/core/textfield.harness.ts","../../../projects/testing/core/toggle.harness.ts","../../../projects/testing/core/taiga-ui-testing-core.ts"],"sourcesContent":["import {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiAccordionHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-accordion`;\n\n async hasRoundedCorners(): Promise<boolean> {\n return (await this.locatorFor(`.t-group`)()).hasClass(`tui-group_rounded`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiSvgHarness extends TuiComponentHarness {\n static hostSelector = `tui-svg`;\n\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n async text(): Promise<string> {\n return (await this.host()).text();\n }\n\n async isInnerHTML(): Promise<boolean> {\n return !!(await this.locatorForOptional(`div`)());\n }\n\n async getUse(): Promise<string | null> {\n return (\n (await this.locatorForOptional(`use`)())?.getAttribute(`xlink:href`) ?? null\n );\n }\n}\n","import {TestKey} from '@angular/cdk/testing';\nimport {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiAccordionItemHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-accordion-item`;\n\n private readonly header = this.locatorFor(`.t-header`);\n\n async getTitle(): Promise<string> {\n return (await this.locatorFor(`.t-title`)()).text();\n }\n\n async getContent(): Promise<string | null> {\n return (await this.locatorForOptional(`.t-content`)())?.text() ?? null;\n }\n\n async clickHeader(): Promise<void> {\n return (await this.locatorFor(`.t-header`)()).click();\n }\n\n async getBorders(): Promise<string | null> {\n return (await this.host()).getAttribute(`data-borders`);\n }\n\n async hasArrow(): Promise<boolean> {\n return (\n !!(await this.locatorForOptional(\n TuiSvgHarness.with({selector: `.t-icon`}),\n )()) ?? false\n );\n }\n\n async focus(): Promise<void> {\n return (await this.header()).focus();\n }\n\n async sendEscKey(): Promise<void> {\n return (await this.header()).sendKeys(TestKey.ESCAPE);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiMarkerIconHarness extends TuiComponentHarness {\n static hostSelector = `tui-marker-icon`;\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiMarkerIconHarness} from './marker-icon.harness';\n\nexport class TuiActionHarness extends TuiComponentHarness {\n static hostSelector = `button[tuiAction], a[tuiAction]`;\n\n protected getIconHarness = this.locatorForOptional(TuiMarkerIconHarness);\n\n async icon(): Promise<TuiMarkerIconHarness | null> {\n return this.getIconHarness();\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiAvatarHarness extends TuiComponentHarness {\n static hostSelector = `tui-avatar`;\n\n async text(): Promise<string> {\n return (await this.host()).text();\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiBadgeHarness extends TuiComponentHarness {\n static hostSelector = `tui-badge`;\n\n async text(): Promise<string> {\n return (await this.host()).text();\n }\n\n async padding(): Promise<string | null> {\n return (await this.host()).getAttribute(`data-padding`);\n }\n\n async hasClass(cls: string): Promise<boolean> {\n return (await this.host()).hasClass(cls);\n }\n}\n","import {tuiHarnessWith, tuiWithPredicate} from '@taiga-ui/testing/utils';\n\n@tuiWithPredicate\nexport class TuiLoaderHarness extends tuiHarnessWith<TuiLoaderHarness>(`tui-loader`) {\n private readonly loader = this.locatorForOptional(`fieldset.t-content + .t-loader`);\n\n async isLoading(): Promise<boolean> {\n return !!(await this.loader());\n }\n\n async getText(): Promise<string> {\n const loader = await this.loader();\n\n return loader?.text() ?? ``;\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiLoaderHarness} from './loader.harness';\n\nexport class TuiButtonHarness extends TuiComponentHarness {\n static hostSelector = `button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]`;\n private readonly loader = this.locatorForOptional(TuiLoaderHarness);\n\n async isLoading(): Promise<boolean> {\n return !!(await this.loader());\n }\n\n async hasClass(input: string): Promise<boolean> {\n return (await this.host()).hasClass(input);\n }\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\ninterface TuiDayCellHarnessFilters extends BaseHarnessFilters {\n day: number;\n}\n\nclass TuiDayCellHarness extends ComponentHarness {\n static hostSelector = `.t-cell:not(.t-cell_unavailable)`;\n\n static with(options: TuiDayCellHarnessFilters): HarnessPredicate<TuiDayCellHarness> {\n return new HarnessPredicate(TuiDayCellHarness, options).addOption(\n `day`,\n options.day,\n async (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), `${text}`),\n );\n }\n\n async getText(): Promise<string> {\n return (await this.locatorFor(`.t-item`)()).text();\n }\n\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n async hover(): Promise<void> {\n return (await this.host()).hover();\n }\n}\n\nexport class TuiPrimitiveCalendarHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-calendar`;\n\n async clickDay(day: number): Promise<void> {\n const dayCell = await this.locatorFor(\n TuiDayCellHarness.with({day, ancestor: `#date-rows`}),\n )();\n\n return dayCell.click();\n }\n\n async hoverDay(day: number): Promise<void> {\n const dayCell = await this.locatorFor(\n TuiDayCellHarness.with({day, ancestor: `#date-rows`}),\n )();\n\n return dayCell.hover();\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiButtonHarness} from './button.harness';\n\nexport class TuiPrimitiveSpinButtonHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-spin-button`;\n\n async isLeftDisabled(): Promise<boolean> {\n return (await this.locatorForAll(TuiButtonHarness)())[0].hasClass(`t-hidden`);\n }\n\n async isRightDisabled(): Promise<boolean> {\n return (await this.locatorForAll(TuiButtonHarness)())[1].hasClass(`t-hidden`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiPrimitiveSpinButtonHarness} from './primitive-spin-button.harness';\n\nexport class TuiPrimitiveYearMonthPaginationHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-year-month-pagination`;\n\n private readonly buttonLeft = this.locatorForOptional(\n `button[tuiIconButton]:first-child`,\n );\n\n private readonly content = this.locatorForOptional(`.t-calendar-title`);\n\n private readonly buttonRight = this.locatorForOptional(\n `button[tuiIconButton]:last-child`,\n );\n\n private readonly button = this.locatorForOptional(`#year-btn`);\n private readonly primitiveSpinButton = this.locatorFor(TuiPrimitiveSpinButtonHarness);\n\n async clickLeft(): Promise<void> {\n return (await this.buttonLeft())?.click();\n }\n\n async getContentText(): Promise<string> {\n return (await this.content())?.text() ?? ``;\n }\n\n async clickRight(): Promise<void> {\n return (await this.buttonRight())?.click();\n }\n\n async clickYear(): Promise<void> {\n return (await this.button())?.click();\n }\n\n async isLeftDisabled(): Promise<boolean> {\n return (await this.primitiveSpinButton()).isLeftDisabled();\n }\n\n async isRightDisabled(): Promise<boolean> {\n return (await this.primitiveSpinButton()).isRightDisabled();\n }\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\ninterface TuiYearCellHarnessFilters extends BaseHarnessFilters {\n year: string;\n}\n\nclass TuiYearCellHarness extends ComponentHarness {\n static hostSelector = `.t-cell`;\n\n static with(\n options: TuiYearCellHarnessFilters,\n ): HarnessPredicate<TuiYearCellHarness> {\n return new HarnessPredicate(TuiYearCellHarness, options).addOption(\n `year`,\n options.year,\n async (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n\n async getText(): Promise<string> {\n return (await this.locatorFor(`.t-item`)()).text();\n }\n\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n}\n\nexport class TuiPrimitiveYearPickerHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-year-picker`;\n\n async clickYear(year: string): Promise<void> {\n const yearCell = await this.locatorFor(TuiYearCellHarness.with({year}))();\n\n return yearCell.click();\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiPrimitiveCalendarHarness} from './primitive-calender.harness';\nimport {TuiPrimitiveYearMonthPaginationHarness} from './primitive-year-month-pagination.harness';\nimport {TuiPrimitiveYearPickerHarness} from './primitive-year-picker.harness';\n\nexport class TuiCalendarHarness extends TuiComponentHarness {\n static hostSelector = `tui-calendar`;\n\n private readonly getPrimitiveYearPickerHarness = this.locatorForOptional(\n TuiPrimitiveYearPickerHarness,\n );\n\n private readonly getPrimitiveYearMonthPaginationHarness = this.locatorForOptional(\n TuiPrimitiveYearMonthPaginationHarness,\n );\n\n private readonly getPrimitiveCalendarHarness = this.locatorForOptional(\n TuiPrimitiveCalendarHarness,\n );\n\n async yearPickerShown(): Promise<boolean> {\n return !!(await this.getPrimitiveYearPickerHarness());\n }\n\n async yearMonthPaginationShown(): Promise<boolean> {\n return !!(await this.getPrimitiveYearMonthPaginationHarness());\n }\n\n async primitiveCalendarShown(): Promise<boolean> {\n return !!(await this.getPrimitiveCalendarHarness());\n }\n\n async isPaginationLeftDisabled(): Promise<boolean> {\n return (\n (await this.getPrimitiveYearMonthPaginationHarness())?.isLeftDisabled() ??\n false\n );\n }\n\n async isPaginationRightDisabled(): Promise<boolean> {\n return (\n (await this.getPrimitiveYearMonthPaginationHarness())?.isRightDisabled() ??\n false\n );\n }\n\n async clickMonthLeft(): Promise<void> {\n return (await this.getPrimitiveYearMonthPaginationHarness())?.clickLeft();\n }\n\n async getContentText(): Promise<string> {\n return (\n (await this.getPrimitiveYearMonthPaginationHarness())?.getContentText() ?? ``\n );\n }\n\n async clickMonthRight(): Promise<void> {\n return (await this.getPrimitiveYearMonthPaginationHarness())?.clickRight();\n }\n\n async clickPaginationYear(): Promise<void> {\n return (await this.getPrimitiveYearMonthPaginationHarness())?.clickYear();\n }\n\n async clickPickerYear(year: string): Promise<void> {\n return (await this.getPrimitiveYearPickerHarness())?.clickYear(year);\n }\n\n async clickDay(day: number): Promise<void> {\n return (await this.getPrimitiveCalendarHarness())?.clickDay(day);\n }\n\n async hoverDay(day: number): Promise<void> {\n return (await this.getPrimitiveCalendarHarness())?.hoverDay(day);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiThumbnailCardHarness extends TuiComponentHarness {\n static hostSelector = `tui-thumbnail-card`;\n\n async hasPaymentSystemLogo(): Promise<boolean> {\n const tuiSvg = await this.locatorForOptional(\n TuiSvgHarness.with({selector: `.t-payment-system-logo`}),\n )();\n\n return !!tuiSvg;\n }\n\n async hasBrandLogo(): Promise<boolean> {\n const tuiSvg = await this.locatorForOptional(\n TuiSvgHarness.with({selector: `.t-brand-logo`}),\n )();\n\n return !!tuiSvg;\n }\n}\n\n/**\n * @deprecated use {@link TuiThumbnailCardHarness}\n */\nexport class TuiCardHarness extends TuiThumbnailCardHarness {\n static override hostSelector = `tui-card`;\n}\n","import {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiButtonHarness} from './button.harness';\n\nexport class TuiDialogHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-dialog`;\n\n async getCloseButton(): Promise<TuiButtonHarness | null> {\n return this.locatorForOptional(\n TuiButtonHarness.with({\n selector: `[automation-id=tui-dialog__close]`,\n }),\n )();\n }\n}\n","import {TestKey} from '@angular/cdk/testing';\nimport {TuiContentContainerComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiHostedDropdownHarness extends TuiContentContainerComponentHarness {\n static hostSelector = `tui-hosted-dropdown`;\n\n async sendSpaceKey(): Promise<void> {\n return (await this.host()).sendKeys(` `);\n }\n\n async sendEscKey(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.ESCAPE);\n }\n}\n","import {TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiIslandHarness extends TuiComponentHarness {\n static hostSelector = `tui-island`;\n\n async getSize(): Promise<TuiSizeL | TuiSizeS> {\n if (await this.isSizeL()) {\n return `l`;\n }\n\n if (await this.isSizeM()) {\n return `m`;\n }\n\n return `s`;\n }\n\n async getTextAlign(): Promise<'center' | 'left' | 'right'> {\n if (await this.isTextAlignLeft()) {\n return `left`;\n }\n\n if (await this.isTextAlignCenter()) {\n return `center`;\n }\n\n return `right`;\n }\n\n async isHoverable(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_hoverable`);\n }\n\n private async isTextAlignLeft(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_text-align_left`);\n }\n\n private async isTextAlignCenter(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_text-align_center`);\n }\n\n private async isSizeM(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_size_m`);\n }\n\n private async isSizeL(): Promise<boolean> {\n return (await this.host()).hasClass(`tui-island_size_l`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiPrimitiveTextfieldHarness extends TuiComponentHarness {\n static hostSelector = `tui-primitive-textfield`;\n\n async valueDecorationText(): Promise<string> {\n return (await this.locatorFor(`tui-value-decoration`)()).text();\n }\n\n async inputPlaceholder(): Promise<string> {\n return (await this.locatorFor(`input`)()).getProperty(`placeholder`);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiHostedDropdownHarness} from './hosted-dropdown.harness';\n\nexport class TuiSelectHarness extends TuiComponentHarness {\n static hostSelector = `tui-select`;\n private readonly hostedDropdown = this.locatorFor(TuiHostedDropdownHarness);\n\n async sendSpaceKey(): Promise<void> {\n return (await this.hostedDropdown()).sendSpaceKey();\n }\n\n async sendEscKey(): Promise<void> {\n return (await this.hostedDropdown()).sendEscKey();\n }\n}\n","import {TestElement, TestKey} from '@angular/cdk/testing';\nimport {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiTagHarness extends TuiComponentHarness {\n static hostSelector = `tui-tag`;\n\n async getCrossIcon(): Promise<TuiSvgHarness | null> {\n return this.locatorForOptional(TuiSvgHarness.with({selector: `.t-icon`}))();\n }\n\n async getBackgroundColor(): Promise<string> {\n const div = await this.locatorFor(`:first-child`)();\n\n return div.getCssValue(`background-color`);\n }\n\n async getInput(): Promise<TestElement | null> {\n return this.locatorForOptional(`input.t-edit`)();\n }\n\n async sendEnter(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.ENTER);\n }\n\n async sendBackspace(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.BACKSPACE);\n }\n\n async sendDelete(): Promise<void> {\n return (await this.host()).sendKeys(TestKey.DELETE);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nexport class TuiTextfieldHarness extends TuiComponentHarness {\n static hostSelector = `input[tuiTextfield], textarea[tuiTextfield]`;\n\n async sendSpaceKey(): Promise<void> {\n return (await this.host()).sendKeys(` `);\n }\n}\n","import {TuiComponentHarness} from '@taiga-ui/testing/utils';\n\nimport {TuiSvgHarness} from './svg.harness';\n\nexport class TuiToggleHarness extends TuiComponentHarness {\n static hostSelector = `tui-toggle`;\n protected input = this.locatorFor(`input`);\n\n async toggle(): Promise<void> {\n return (await this.input()).click();\n }\n\n async getIcons(): Promise<TuiSvgHarness[]> {\n return this.locatorForAll(TuiSvgHarness)();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -94,6 +94,13 @@ const tuiWaitAllImgInside = (prevSubject, enabled = true) => {
94
94
  };
95
95
 
96
96
  /// <reference types="cypress" />
97
+ function makeScreenshotName(name) {
98
+ return (name !== null && name !== void 0 ? name : Cypress.currentTest.titlePath
99
+ .join(`-`)
100
+ .replace(/\s|-/g, `.`)
101
+ .replace(/['[\]`()]/g, ``)
102
+ .toLowerCase());
103
+ }
97
104
  function tuiAddMatchImageSnapshotCommand(options) {
98
105
  const matchSnapshotFn = matchImageSnapshotCommand(options);
99
106
  Cypress.Commands.add(`matchImageSnapshot`, { prevSubject: [`optional`, `element`, `window`, `document`] }, (prevSubject, nameOrOptions, options) => {
@@ -106,13 +113,6 @@ function tuiAddMatchImageSnapshotCommand(options) {
106
113
  matchSnapshotFn(prevSubject, makeScreenshotName(name), overloadedOptions);
107
114
  });
108
115
  }
109
- function makeScreenshotName(name) {
110
- return (name !== null && name !== void 0 ? name : Cypress.currentTest.titlePath
111
- .join(`-`)
112
- .replace(/\s|-/g, `.`)
113
- .replace(/['[\]`()]/g, ``)
114
- .toLowerCase());
115
- }
116
116
 
117
117
  /// <reference types="cypress" />
118
118
  function tuiAddSnapshotPlugin(on, config, { newSnapshotMarkEnabled, newSnapshotMarkFn }) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-testing-cypress.js","sources":["../../../projects/testing/cypress/assertions/be-in-viewport.ts","../../../projects/testing/cypress/commands/wait-all-img-inside.command.ts","../../../projects/testing/cypress/snapshot/command.ts","../../../projects/testing/cypress/snapshot/plugin.ts","../../../projects/testing/cypress/taiga-ui-testing-cypress.ts"],"sourcesContent":["/// <reference types=\"cypress\" />\n/// <reference types=\"node\" />\n\n/**\n * Check if element is inside viewport\n *\n * @note WARNING! `.should('be.visible')` doesn't not check if element is inside viewport\n * @see https://github.com/cypress-io/cypress/issues/17483\n * @see https://github.com/cypress-io/cypress/issues/877#issuecomment-342187174\n * @see https://github.com/cypress-io/cypress/issues/877#issuecomment-657583222\n * @example\n ```ts\n cy.get('#test').should('be.inViewport');\n ```\n * */\nexport const tuiBeInViewportAssertion: Chai.ChaiPlugin = _chai => {\n chai.Assertion.addMethod(`inViewport`, function () {\n const subject = this._obj;\n const {top, bottom} = subject[0].getBoundingClientRect();\n\n const viewportHeight: number =\n // @ts-ignore TS2339: Property 'state' does not exist on type 'cy & CyEventEmitter'.\n Cypress.$(cy.state(`window`)).height() || 0;\n\n const subjectOverlapsAllViewport = top < 0 && bottom > viewportHeight;\n const topBorderIsVisible = top >= 0 && top < viewportHeight;\n const bottomBorderIsVisible = bottom >= 0 && bottom < viewportHeight;\n\n this.assert(\n subjectOverlapsAllViewport || topBorderIsVisible || bottomBorderIsVisible,\n `expected #{this} to be in viewport`,\n `expected #{this} to not be in viewport`,\n subject,\n );\n });\n};\n","/// <reference types=\"cypress\" />\n\nexport const tuiWaitAllImgInside = (\n prevSubject: Cypress.PrevSubjectMap<void>[Cypress.PrevSubject],\n enabled: boolean = true,\n): Cypress.Chainable<JQuery<HTMLBodyElement>> | Cypress.Chainable<JQuery> => {\n const target =\n prevSubject && Cypress.dom.isJquery(prevSubject)\n ? cy.wrap(prevSubject, {log: false})\n : cy.get(`body`, {log: false});\n\n target.then($target => {\n const img = $target.find(`img`);\n\n if (img.length && enabled) {\n const log = Cypress.log({\n displayName: `Wait all images`,\n message: `naturalWidth greaterThan 0`,\n name: `tuiWaitAllImgInside`,\n autoEnd: false,\n consoleProps: () => ({\n prevSubject,\n img,\n }),\n });\n\n cy.wrap($target, {log: false})\n .get(`img`, {log: false})\n .each((img: JQuery<HTMLImageElement>) => {\n const nativeImage = img.get(0);\n const url = nativeImage?.src || nativeImage?.srcset;\n\n if (!url) {\n return;\n }\n\n const offsetParent = img.prop(`offsetParent`);\n\n return cy.window({log: false}).then((win: Window) => {\n const rect = nativeImage.getBoundingClientRect();\n const isInViewport =\n offsetParent &&\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <=\n (win.innerHeight ||\n win.document.documentElement.clientHeight) &&\n rect.right <=\n (win.innerWidth ||\n win.document.documentElement.clientWidth);\n\n if (isInViewport) {\n if (url.includes(`base64`)) {\n (expect as any)(\n nativeImage.naturalWidth,\n ).to.be.greaterThan(0);\n } else {\n cy.request({\n url,\n failOnStatusCode: false,\n log: false,\n }).then(resp => {\n if (resp.status === 200) {\n cy.get(img as any, {log: false}).should(\n (el: JQuery<HTMLImageElement>) =>\n (expect as any)(\n el[0].naturalWidth,\n ).to.be.greaterThan(0),\n );\n }\n });\n }\n }\n });\n })\n .then(() => log.end());\n }\n });\n\n return target;\n};\n","/// <reference types=\"cypress\" />\n// eslint-disable-next-line @taiga-ui/experience/no-deep-imports\nimport {tuiIsObject, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Options} from 'cypress-image-snapshot';\nimport {matchImageSnapshotCommand} from 'cypress-image-snapshot/command';\n\nimport {tuiWaitAllImgInside} from '../commands/wait-all-img-inside.command';\n\ndeclare module 'cypress-image-snapshot/command' {\n function matchImageSnapshotCommand(options: Options): (...args: unknown[]) => void;\n}\n\ninterface TuiSnapshotCommandOptions {\n waitAllImages?: boolean;\n}\n\ndeclare global {\n namespace Cypress {\n interface Chainable {\n matchImageSnapshot(\n name: string,\n options?: Options & TuiSnapshotCommandOptions,\n ): void;\n }\n }\n}\n\nexport function tuiAddMatchImageSnapshotCommand(\n options: Options & TuiSnapshotCommandOptions,\n): void {\n const matchSnapshotFn = matchImageSnapshotCommand(options);\n\n Cypress.Commands.add(\n `matchImageSnapshot`,\n {prevSubject: [`optional`, `element`, `window`, `document`]},\n (\n prevSubject,\n nameOrOptions: string | (Options & TuiSnapshotCommandOptions),\n options?: Options & TuiSnapshotCommandOptions,\n ) => {\n const name = tuiIsString(nameOrOptions) ? nameOrOptions : undefined;\n const overloadedOptions = tuiIsObject(nameOrOptions)\n ? nameOrOptions\n : options;\n\n tuiWaitAllImgInside(prevSubject, overloadedOptions?.waitAllImages ?? true);\n\n matchSnapshotFn(prevSubject, makeScreenshotName(name), overloadedOptions);\n },\n );\n}\n\nfunction makeScreenshotName(name?: string): string {\n return (\n name ??\n Cypress.currentTest.titlePath\n .join(`-`)\n .replace(/\\s|-/g, `.`)\n .replace(/['[\\]`()]/g, ``)\n .toLowerCase()\n );\n}\n","/// <reference types=\"cypress\" />\n/// <reference types=\"node\" />\n\nimport fs from 'fs';\n\ndeclare module 'cypress-image-snapshot/plugin' {\n function matchImageSnapshotPlugin(\n details: Cypress.ScreenshotDetails,\n ): Cypress.AfterScreenshotReturnObject | void;\n}\n\nexport interface TuiSnapshotPluginOptions {\n newSnapshotMarkEnabled: boolean;\n newSnapshotMarkFn: (oldSnapshotFileName: string) => string;\n}\n\nexport async function tuiAddSnapshotPlugin(\n on: Cypress.PluginEvents,\n config: Cypress.PluginConfigOptions,\n {newSnapshotMarkEnabled, newSnapshotMarkFn}: TuiSnapshotPluginOptions,\n): Promise<void> {\n const {addMatchImageSnapshotPlugin, matchImageSnapshotPlugin} = await import(\n `cypress-image-snapshot/plugin`\n );\n\n addMatchImageSnapshotPlugin(on, config);\n\n on(`after:screenshot`, (details: Cypress.ScreenshotDetails) => {\n const {name, path, testFailure} = details;\n const possibleSnapshotPath = path\n .replace(`screenshots`, `snapshots`)\n .replace(/\\.(\\w+)$/g, `.snap.$1`);\n const snapshotAlreadyExists = fs.existsSync(possibleSnapshotPath);\n\n if (newSnapshotMarkEnabled && !testFailure && !snapshotAlreadyExists) {\n const newName = newSnapshotMarkFn(name);\n const newPath = path.replace(name, newName);\n\n fs.renameSync(path, newPath);\n\n console.info(\n `\\x1B[32m%s\\x1B[0m`,\n `\\t[tuiAddSnapshotPlugin]:`,\n `${name} => ${newName}`,\n );\n\n return matchImageSnapshotPlugin({...details, path: newPath});\n }\n\n return matchImageSnapshotPlugin(details);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-testing-cypress.js","sources":["../../../projects/testing/cypress/assertions/be-in-viewport.ts","../../../projects/testing/cypress/commands/wait-all-img-inside.command.ts","../../../projects/testing/cypress/snapshot/command.ts","../../../projects/testing/cypress/snapshot/plugin.ts","../../../projects/testing/cypress/taiga-ui-testing-cypress.ts"],"sourcesContent":["/// <reference types=\"cypress\" />\n/// <reference types=\"node\" />\n\n/**\n * Check if element is inside viewport\n *\n * @note WARNING! `.should('be.visible')` doesn't not check if element is inside viewport\n * @see https://github.com/cypress-io/cypress/issues/17483\n * @see https://github.com/cypress-io/cypress/issues/877#issuecomment-342187174\n * @see https://github.com/cypress-io/cypress/issues/877#issuecomment-657583222\n * @example\n ```ts\n cy.get('#test').should('be.inViewport');\n ```\n * */\nexport const tuiBeInViewportAssertion: Chai.ChaiPlugin = _chai => {\n chai.Assertion.addMethod(`inViewport`, function () {\n const subject = this._obj;\n const {top, bottom} = subject[0].getBoundingClientRect();\n\n const viewportHeight: number =\n // @ts-ignore TS2339: Property 'state' does not exist on type 'cy & CyEventEmitter'.\n Cypress.$(cy.state(`window`)).height() || 0;\n\n const subjectOverlapsAllViewport = top < 0 && bottom > viewportHeight;\n const topBorderIsVisible = top >= 0 && top < viewportHeight;\n const bottomBorderIsVisible = bottom >= 0 && bottom < viewportHeight;\n\n this.assert(\n subjectOverlapsAllViewport || topBorderIsVisible || bottomBorderIsVisible,\n `expected #{this} to be in viewport`,\n `expected #{this} to not be in viewport`,\n subject,\n );\n });\n};\n","/// <reference types=\"cypress\" />\n\nexport const tuiWaitAllImgInside = (\n prevSubject: Cypress.PrevSubjectMap<void>[Cypress.PrevSubject],\n enabled: boolean = true,\n): Cypress.Chainable<JQuery<HTMLBodyElement>> | Cypress.Chainable<JQuery> => {\n const target =\n prevSubject && Cypress.dom.isJquery(prevSubject)\n ? cy.wrap(prevSubject, {log: false})\n : cy.get(`body`, {log: false});\n\n target.then($target => {\n const img = $target.find(`img`);\n\n if (img.length && enabled) {\n const log = Cypress.log({\n displayName: `Wait all images`,\n message: `naturalWidth greaterThan 0`,\n name: `tuiWaitAllImgInside`,\n autoEnd: false,\n consoleProps: () => ({\n prevSubject,\n img,\n }),\n });\n\n cy.wrap($target, {log: false})\n .get(`img`, {log: false})\n .each((img: JQuery<HTMLImageElement>) => {\n const nativeImage = img.get(0);\n const url = nativeImage?.src || nativeImage?.srcset;\n\n if (!url) {\n return;\n }\n\n const offsetParent = img.prop(`offsetParent`);\n\n return cy.window({log: false}).then((win: Window) => {\n const rect = nativeImage.getBoundingClientRect();\n const isInViewport =\n offsetParent &&\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <=\n (win.innerHeight ||\n win.document.documentElement.clientHeight) &&\n rect.right <=\n (win.innerWidth ||\n win.document.documentElement.clientWidth);\n\n if (isInViewport) {\n if (url.includes(`base64`)) {\n (expect as any)(\n nativeImage.naturalWidth,\n ).to.be.greaterThan(0);\n } else {\n cy.request({\n url,\n failOnStatusCode: false,\n log: false,\n }).then(resp => {\n if (resp.status === 200) {\n cy.get(img as any, {log: false}).should(\n (el: JQuery<HTMLImageElement>) =>\n (expect as any)(\n el[0].naturalWidth,\n ).to.be.greaterThan(0),\n );\n }\n });\n }\n }\n });\n })\n .then(() => log.end());\n }\n });\n\n return target;\n};\n","/// <reference types=\"cypress\" />\n// eslint-disable-next-line @taiga-ui/experience/no-deep-imports\nimport {tuiIsObject, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Options} from 'cypress-image-snapshot';\nimport {matchImageSnapshotCommand} from 'cypress-image-snapshot/command';\n\nimport {tuiWaitAllImgInside} from '../commands/wait-all-img-inside.command';\n\ndeclare module 'cypress-image-snapshot/command' {\n function matchImageSnapshotCommand(options: Options): (...args: unknown[]) => void;\n}\n\ninterface TuiSnapshotCommandOptions {\n waitAllImages?: boolean;\n}\n\ndeclare global {\n namespace Cypress {\n interface Chainable {\n matchImageSnapshot(\n name: string,\n options?: Options & TuiSnapshotCommandOptions,\n ): void;\n }\n }\n}\n\nfunction makeScreenshotName(name?: string): string {\n return (\n name ??\n Cypress.currentTest.titlePath\n .join(`-`)\n .replace(/\\s|-/g, `.`)\n .replace(/['[\\]`()]/g, ``)\n .toLowerCase()\n );\n}\n\nexport function tuiAddMatchImageSnapshotCommand(\n options: Options & TuiSnapshotCommandOptions,\n): void {\n const matchSnapshotFn = matchImageSnapshotCommand(options);\n\n Cypress.Commands.add(\n `matchImageSnapshot`,\n {prevSubject: [`optional`, `element`, `window`, `document`]},\n (\n prevSubject,\n nameOrOptions: string | (Options & TuiSnapshotCommandOptions),\n options?: Options & TuiSnapshotCommandOptions,\n ) => {\n const name = tuiIsString(nameOrOptions) ? nameOrOptions : undefined;\n const overloadedOptions = tuiIsObject(nameOrOptions)\n ? nameOrOptions\n : options;\n\n tuiWaitAllImgInside(prevSubject, overloadedOptions?.waitAllImages ?? true);\n\n matchSnapshotFn(prevSubject, makeScreenshotName(name), overloadedOptions);\n },\n );\n}\n","/// <reference types=\"cypress\" />\n/// <reference types=\"node\" />\n\nimport fs from 'fs';\n\ndeclare module 'cypress-image-snapshot/plugin' {\n function matchImageSnapshotPlugin(\n details: Cypress.ScreenshotDetails,\n ): Cypress.AfterScreenshotReturnObject | void;\n}\n\nexport interface TuiSnapshotPluginOptions {\n newSnapshotMarkEnabled: boolean;\n newSnapshotMarkFn: (oldSnapshotFileName: string) => string;\n}\n\nexport async function tuiAddSnapshotPlugin(\n on: Cypress.PluginEvents,\n config: Cypress.PluginConfigOptions,\n {newSnapshotMarkEnabled, newSnapshotMarkFn}: TuiSnapshotPluginOptions,\n): Promise<void> {\n const {addMatchImageSnapshotPlugin, matchImageSnapshotPlugin} = await import(\n `cypress-image-snapshot/plugin`\n );\n\n addMatchImageSnapshotPlugin(on, config);\n\n on(`after:screenshot`, (details: Cypress.ScreenshotDetails) => {\n const {name, path, testFailure} = details;\n const possibleSnapshotPath = path\n .replace(`screenshots`, `snapshots`)\n .replace(/\\.(\\w+)$/g, `.snap.$1`);\n const snapshotAlreadyExists = fs.existsSync(possibleSnapshotPath);\n\n if (newSnapshotMarkEnabled && !testFailure && !snapshotAlreadyExists) {\n const newName = newSnapshotMarkFn(name);\n const newPath = path.replace(name, newName);\n\n fs.renameSync(path, newPath);\n\n console.info(\n `\\x1B[32m%s\\x1B[0m`,\n `\\t[tuiAddSnapshotPlugin]:`,\n `${name} => ${newName}`,\n );\n\n return matchImageSnapshotPlugin({...details, path: newPath});\n }\n\n return matchImageSnapshotPlugin(details);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ class TuiMockEvent extends Event {
5
5
  super(type, options);
6
6
  const event = new Event(type);
7
7
  for (const key in options) {
8
- Object.defineProperty(event, key, { value: options[key] });
8
+ if (options.hasOwnProperty(key)) {
9
+ Object.defineProperty(event, key, { value: options[key] });
10
+ }
9
11
  }
10
12
  // @ts-ignore
11
13
  return event;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-testing-mocks.js","sources":["../../../projects/testing/mocks/event.ts","../../../projects/testing/mocks/sanitizer.ts","../../../projects/testing/mocks/switch-ng-dev-mode.ts","../../../projects/testing/mocks/taiga-ui-testing-mocks.ts"],"sourcesContent":["export class TuiMockEvent<T> extends Event {\n constructor(type: string, options: CustomEventInit<T> & Record<string, any> = {}) {\n super(type, options);\n\n const event = new Event(type);\n\n for (const key in options) {\n Object.defineProperty(event, key, {value: options[key]});\n }\n\n // @ts-ignore\n return event;\n }\n}\n","import {SecurityContext} from '@angular/core';\nimport {TUI_SANITIZER} from '@taiga-ui/core';\n\nexport const TUI_SANITIZER_MOCK = {\n provide: TUI_SANITIZER,\n useValue: {\n sanitize(_context: SecurityContext, src: string) {\n // Skip error\n // WARNING: sanitizing HTML stripped some content, see\n // https://g.co/ng/security#xss\n return src;\n },\n },\n};\n","declare const global: Record<any, any> & Window;\n\nexport function tuiSwitchNgDevMode(enable: boolean): void {\n if (global) {\n global.ngDevMode = enable;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAM,MAAO,YAAgB,SAAQ,KAAK,CAAA;IACtC,WAAY,CAAA,IAAY,EAAE,OAAA,GAAoD,EAAE,EAAA;AAC5E,QAAA,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAErB,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAE9B,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACvB,YAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;AAC5D,SAAA;;AAGD,QAAA,OAAO,KAAK,CAAC;KAChB;AACJ;;ACVY,MAAA,kBAAkB,GAAG;AAC9B,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,QAAQ,EAAE;QACN,QAAQ,CAAC,QAAyB,EAAE,GAAW,EAAA;;;;AAI3C,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA;;;ACVC,SAAU,kBAAkB,CAAC,MAAe,EAAA;AAC9C,IAAA,IAAI,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;AAC7B,KAAA;AACL;;ACNA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-testing-mocks.js","sources":["../../../projects/testing/mocks/event.ts","../../../projects/testing/mocks/sanitizer.ts","../../../projects/testing/mocks/switch-ng-dev-mode.ts","../../../projects/testing/mocks/taiga-ui-testing-mocks.ts"],"sourcesContent":["export class TuiMockEvent<T> extends Event {\n constructor(type: string, options: CustomEventInit<T> & Record<string, any> = {}) {\n super(type, options);\n\n const event = new Event(type);\n\n for (const key in options) {\n if (options.hasOwnProperty(key)) {\n Object.defineProperty(event, key, {value: options[key]});\n }\n }\n\n // @ts-ignore\n return event;\n }\n}\n","import {SecurityContext} from '@angular/core';\nimport {TUI_SANITIZER} from '@taiga-ui/core';\n\nexport const TUI_SANITIZER_MOCK = {\n provide: TUI_SANITIZER,\n useValue: {\n sanitize(_context: SecurityContext, src: string) {\n // Skip error\n // WARNING: sanitizing HTML stripped some content, see\n // https://g.co/ng/security#xss\n return src;\n },\n },\n};\n","declare const global: Record<any, any> & Window;\n\nexport function tuiSwitchNgDevMode(enable: boolean): void {\n if (global) {\n global.ngDevMode = enable;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAM,MAAO,YAAgB,SAAQ,KAAK,CAAA;IACtC,WAAY,CAAA,IAAY,EAAE,OAAA,GAAoD,EAAE,EAAA;AAC5E,QAAA,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAErB,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAE9B,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACvB,YAAA,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC7B,gBAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;AAC5D,aAAA;AACJ,SAAA;;AAGD,QAAA,OAAO,KAAK,CAAC;KAChB;AACJ;;ACZY,MAAA,kBAAkB,GAAG;AAC9B,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,QAAQ,EAAE;QACN,QAAQ,CAAC,QAAyB,EAAE,GAAW,EAAA;;;;AAI3C,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA;;;ACVC,SAAU,kBAAkB,CAAC,MAAe,EAAA;AAC9C,IAAA,IAAI,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;AAC7B,KAAA;AACL;;ACNA;;AAEG;;;;"}
@@ -107,7 +107,7 @@ class TuiContentContainerComponentHarness extends ContentContainerComponentHarne
107
107
  }
108
108
  }
109
109
 
110
- /// <reference types="jasmine" />
110
+ /// <reference types="jest" />
111
111
  function tuiTestCleaner(context, setValue = `value`, clearValue = null) {
112
112
  let pageObject;
113
113
  let fixture;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-testing-utils.js","sources":["../../../projects/testing/utils/keyboard-event.ts","../../../projects/testing/utils/active-element.ts","../../../projects/testing/utils/configure-test-suite.ts","../../../projects/testing/utils/date.ts","../../../projects/testing/utils/helpers.ts","../../../projects/testing/utils/input/cleaner.unit-common.ts","../../../projects/testing/utils/input/filler.unit-common.ts","../../../projects/testing/utils/input/form-control-state.unit-common.ts","../../../projects/testing/utils/input/placeholder.unit-common.ts","../../../projects/testing/utils/input/tooltip.unit-common.ts","../../../projects/testing/utils/page-object.ts","../../../projects/testing/utils/replace-nbsp.ts","../../../projects/testing/utils/native-input.page-object.ts","../../../projects/testing/utils/viewport.ts","../../../projects/testing/utils/taiga-ui-testing-utils.ts"],"sourcesContent":["export function tuiCreateKeyboardEvent(\n key: string,\n eventType: string = `keydown`,\n): KeyboardEvent {\n const event = new KeyboardEvent(eventType, {bubbles: true});\n\n delete (event as any).target;\n Object.defineProperty(event, `type`, {value: eventType});\n\n delete (event as any).key;\n Object.defineProperty(event, `key`, {value: key});\n\n return event;\n}\n","import {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\n\nexport function tuiDispatchOnActive<T>(key: string, fixture?: ComponentFixture<T>): void {\n document.activeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n\n fixture?.detectChanges();\n}\n\nexport function tuiActiveText(): string {\n return document.activeElement?.textContent?.trim() ?? ``;\n}\n\nexport function tuiIsActive(element: Element): boolean {\n return document.activeElement === element;\n}\n","import {ComponentFixture, getTestBed, TestBed} from '@angular/core/testing';\n\nexport const configureTestSuite = (configureModule?: () => void): void => {\n const testBedApi = getTestBed();\n const originReset = TestBed.resetTestingModule;\n\n beforeAll(() => {\n TestBed.resetTestingModule();\n TestBed.resetTestingModule = () => TestBed;\n });\n\n // Custom hook\n if (configureModule) {\n beforeAll(async () => {\n configureModule();\n await TestBed.compileComponents();\n });\n }\n\n afterEach(() => {\n // @ts-ignore\n testBedApi._activeFixtures.forEach((fixture: ComponentFixture<unknown>) =>\n fixture.destroy(),\n );\n // reset ViewEngine TestBed\n // @ts-ignore\n testBedApi._instantiated = false;\n // reset Ivy TestBed\n // @ts-ignore\n testBedApi._testModuleRef = null;\n });\n\n afterAll(() => {\n TestBed.resetTestingModule = originReset;\n TestBed.resetTestingModule();\n });\n};\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\ndeclare const global: {Date: typeof Date};\n\nconst OriginalDate = global.Date;\n\nexport function tuiMockCurrentDate(dateOrNumber: Date | number): void {\n const date: Date = tuiIsNumber(dateOrNumber)\n ? new OriginalDate(dateOrNumber)\n : dateOrNumber;\n\n class MockDate extends OriginalDate {\n constructor() {\n super();\n\n return date;\n }\n }\n\n global.Date = MockDate as typeof Date;\n}\n\nexport function tuiRestoreRealDate(): void {\n global.Date = OriginalDate;\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/**\n * Decorator to add default static 'with' method.\n * Use in conjunction with {@link tuiHarnessWith} mixin.\n */\nexport function tuiWithPredicate<\n T extends ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n },\n>(original: T): T {\n original.with = (options: BaseHarnessFilters = {}) =>\n new HarnessPredicate(original, options);\n\n return original;\n}\n\n/**\n * Mixin to extend {@link ComponentHarness} and add typed\n * static 'with' method. Use {@link tuiWithPredicate} decorator\n * to monkey-patch default static 'with' method.\n */\nexport function tuiHarnessWith<T>(\n hostSelector: string,\n): ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n} {\n return class extends ComponentHarness {\n static hostSelector = hostSelector;\n\n // @ts-ignore\n static with(_options: BaseHarnessFilters = {}): HarnessPredicate<T> {\n throw new Error(`Hummus`);\n }\n } as unknown as ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n };\n}\n\nexport class TuiComponentHarness extends ComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\nexport class TuiContentContainerComponentHarness extends ContentContainerComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n","/// <reference types=\"jasmine\" />\n\nimport {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n cleaner: boolean;\n control?: FormControl;\n disabled?: boolean;\n readOnly: boolean;\n value?: unknown;\n}\n\nexport function tuiTestCleaner(\n context: TestParams,\n setValue: any = `value`,\n clearValue: any = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Cross for field cleaning`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.autoDetectChanges();\n });\n\n describe(`Cross included`, () => {\n beforeEach(() => {\n testComponent.cleaner = true;\n });\n\n it(`If no value is specified, the cross is not shown`, () => {\n updateValue(clearValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is readonly, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is disabled, the cross is not shown`, () => {\n updateValue(setValue);\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n testComponent.disabled = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If a value is specified, a cross is shown`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).not.toBeNull();\n });\n\n it(`When you click on the cross, the field value is cleared`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n getCleaner()!.nativeElement.click();\n fixture.detectChanges();\n\n expect(inputPO.value).toBe(``);\n\n if (testComponent.control !== undefined) {\n expect(testComponent.control.value).toEqual(clearValue);\n }\n\n if (testComponent.value !== undefined) {\n expect(testComponent.value).toEqual(clearValue);\n }\n });\n });\n\n describe(`Cross disabled`, () => {\n it(`The value is set, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.cleaner = false;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getCleaner(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}cleaner`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFiller(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Filler (mask)`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n describe(`if there is no value in the field`, () => {\n beforeEach(() => {\n testComponent.control.setValue(clearValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`when focusing appears`, async () => {\n inputPO.focus();\n fixture.detectChanges();\n await fixture.whenStable();\n expect(getFiller()).not.toBeNull();\n });\n });\n\n describe(`if the field has a value`, () => {\n beforeEach(() => {\n testComponent.control.setValue(setValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`also not visible when focusing`, () => {\n inputPO.nativeElement?.focus();\n fixture.detectChanges();\n\n expect(getFiller()).toBeNull();\n });\n });\n });\n\n function getFiller(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}filler`);\n }\n}\n","import {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFormControlState(context: TestParams): void {\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`FormControl state`, () => {\n beforeEach(() => {\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n it(`After initializing control dirty === false`, () => {\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After control initialization touched === false`, () => {\n expect(testComponent.control.touched).toBe(false);\n });\n\n it(`After setting value from outside dirty === false`, () => {\n testComponent.control.setValue(`123`);\n fixture.detectChanges();\n\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After entering the value dirty === true`, () => {\n inputPO.sendText(`123`);\n\n expect(testComponent.control.dirty).toBe(true);\n });\n\n it(`After setting and de-focusing touched === true`, async () => {\n inputPO.focus();\n inputPO.blur();\n\n await fixture.whenStable();\n\n fixture.detectChanges();\n expect(testComponent.control.touched).toBe(true);\n });\n });\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n labelOutside: boolean;\n size: 'l' | 'm' | 's';\n value?: unknown;\n}\n\nexport function tuiTestPlaceholder(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = ``,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Placeholder`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`in size S`, () => {\n beforeEach(() => {\n testComponent.size = `s`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if specified, not shown`, () => {\n updateValue(setValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size M`, () => {\n beforeEach(() => {\n testComponent.size = `m`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size L`, () => {\n beforeEach(() => {\n testComponent.size = `l`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getPlaceholder(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}placeholder`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n disabled?: boolean;\n hintContent: string | null;\n readOnly: boolean;\n size: unknown;\n}\n\nexport function tuiTestTooltip(context: TestParams): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Tooltip in a field`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`There is tooltip content`, () => {\n it(`if field is disabled, there is no tooltip`, () => {\n testComponent.disabled = true;\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n\n it(`if field is not disabled, there is tooltip`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n\n it(`if field is readonly, there is tooltip`, () => {\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n });\n\n describe(`There is no tooltip content`, () => {\n beforeEach(() => {\n testComponent.hintContent = null;\n fixture.detectChanges();\n });\n\n it(`tooltip without content is hidden`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n });\n });\n\n function getTooltip(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}tooltip`);\n }\n}\n","import {DebugElement, Predicate} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nexport class TuiPageObject<T> {\n constructor(protected fixture: ComponentFixture<T>) {}\n\n static getIds({nativeElement}: DebugElement): string[] {\n const attributeValue: string | null = nativeElement.getAttribute(`automation-id`);\n\n return attributeValue === null ? [] : attributeValue.split(` `);\n }\n\n static containsId(debugElement: DebugElement, automationId: string): boolean {\n return TuiPageObject.getIds(debugElement).includes(automationId);\n }\n\n private static byAutomationId(automationId: string): Predicate<DebugElement> {\n return debugElement => TuiPageObject.containsId(debugElement, automationId);\n }\n\n getByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement | null {\n return debugElement.query(TuiPageObject.byAutomationId(automationId));\n }\n\n // Syncing result order with DOM order: https://github.com/angular/angular/issues/13066\n getAllByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement[] {\n const debugEls = debugElement.queryAll(\n TuiPageObject.byAutomationId(automationId),\n );\n const domEls = Array.from(\n debugElement.nativeElement.querySelectorAll(\n `[automation-id='${automationId}']`,\n ),\n );\n\n return debugEls.sort(\n (a, b) => domEls.indexOf(a.nativeElement) - domEls.indexOf(b.nativeElement),\n );\n }\n}\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\n\nexport function tuiReplaceNbsp(content?: string): string {\n return content?.replace(new RegExp(CHAR_NO_BREAK_SPACE, `g`), ` `) ?? ``;\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\nimport {TuiPageObject} from './page-object';\nimport {tuiReplaceNbsp} from './replace-nbsp';\n\nexport class TuiNativeInputPO {\n private readonly pageObject: TuiPageObject<unknown>;\n\n constructor(\n private readonly fixture: ComponentFixture<unknown>,\n private readonly automationId: string,\n private readonly hostDebugElement?: DebugElement,\n ) {\n this.pageObject = new TuiPageObject(fixture);\n }\n\n get nativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return (\n this.pageObject.getByAutomationId(this.automationId, this.hostDebugElement)\n ?.nativeElement ?? null\n );\n }\n\n get value(): string {\n return tuiReplaceNbsp(this.nativeElement?.value ?? ``);\n }\n\n get focused(): boolean {\n return document.activeElement === this.nativeElement;\n }\n\n sendText(value: string): void {\n this.focus(); // need focus before initial value for emulate user interaction\n\n const nativeElement = this.nativeElement;\n\n if (nativeElement) {\n nativeElement.value = value;\n nativeElement.dispatchEvent(new Event(`input`, {bubbles: true}));\n }\n\n this.fixture.detectChanges();\n }\n\n // @bad TODO: Fix this with actually moving focus rather than just blurring\n sendTextAndBlur(value: string): void {\n this.focus();\n this.sendText(value);\n this.blur();\n }\n\n sendKeydown(key: string): void {\n this.nativeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n this.fixture.detectChanges();\n }\n\n focus(): void {\n this.nativeElement?.focus();\n this.fixture.detectChanges();\n }\n\n blur(): void {\n this.nativeElement?.blur();\n this.fixture.detectChanges();\n }\n\n click(): void {\n this.nativeElement?.click();\n this.fixture.detectChanges();\n }\n}\n","export function tuiTestingViewport(width: number, height: number): void {\n Object.defineProperty(global, `innerWidth`, {\n writable: true,\n configurable: true,\n value: width,\n });\n\n Object.defineProperty(global.document.documentElement, `clientWidth`, {\n writable: true,\n configurable: true,\n value: width - 15,\n });\n\n Object.defineProperty(global, `innerHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n\n Object.defineProperty(global.document.documentElement, `clientHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-testing-utils.js","sources":["../../../projects/testing/utils/keyboard-event.ts","../../../projects/testing/utils/active-element.ts","../../../projects/testing/utils/configure-test-suite.ts","../../../projects/testing/utils/date.ts","../../../projects/testing/utils/helpers.ts","../../../projects/testing/utils/input/cleaner.unit-common.ts","../../../projects/testing/utils/input/filler.unit-common.ts","../../../projects/testing/utils/input/form-control-state.unit-common.ts","../../../projects/testing/utils/input/placeholder.unit-common.ts","../../../projects/testing/utils/input/tooltip.unit-common.ts","../../../projects/testing/utils/page-object.ts","../../../projects/testing/utils/replace-nbsp.ts","../../../projects/testing/utils/native-input.page-object.ts","../../../projects/testing/utils/viewport.ts","../../../projects/testing/utils/taiga-ui-testing-utils.ts"],"sourcesContent":["export function tuiCreateKeyboardEvent(\n key: string,\n eventType: string = `keydown`,\n): KeyboardEvent {\n const event = new KeyboardEvent(eventType, {bubbles: true});\n\n delete (event as any).target;\n Object.defineProperty(event, `type`, {value: eventType});\n\n delete (event as any).key;\n Object.defineProperty(event, `key`, {value: key});\n\n return event;\n}\n","import {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\n\nexport function tuiDispatchOnActive<T>(key: string, fixture?: ComponentFixture<T>): void {\n document.activeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n\n fixture?.detectChanges();\n}\n\nexport function tuiActiveText(): string {\n return document.activeElement?.textContent?.trim() ?? ``;\n}\n\nexport function tuiIsActive(element: Element): boolean {\n return document.activeElement === element;\n}\n","import {ComponentFixture, getTestBed, TestBed} from '@angular/core/testing';\n\nexport const configureTestSuite = (configureModule?: () => void): void => {\n const testBedApi = getTestBed();\n const originReset = TestBed.resetTestingModule;\n\n beforeAll(() => {\n TestBed.resetTestingModule();\n TestBed.resetTestingModule = () => TestBed;\n });\n\n // Custom hook\n if (configureModule) {\n beforeAll(async () => {\n configureModule();\n await TestBed.compileComponents();\n });\n }\n\n afterEach(() => {\n // @ts-ignore\n testBedApi._activeFixtures.forEach((fixture: ComponentFixture<unknown>) =>\n fixture.destroy(),\n );\n // reset ViewEngine TestBed\n // @ts-ignore\n testBedApi._instantiated = false;\n // reset Ivy TestBed\n // @ts-ignore\n testBedApi._testModuleRef = null;\n });\n\n afterAll(() => {\n TestBed.resetTestingModule = originReset;\n TestBed.resetTestingModule();\n });\n};\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\ndeclare const global: {Date: typeof Date};\n\nconst OriginalDate = global.Date;\n\nexport function tuiMockCurrentDate(dateOrNumber: Date | number): void {\n const date: Date = tuiIsNumber(dateOrNumber)\n ? new OriginalDate(dateOrNumber)\n : dateOrNumber;\n\n class MockDate extends OriginalDate {\n constructor() {\n super();\n\n return date;\n }\n }\n\n global.Date = MockDate as typeof Date;\n}\n\nexport function tuiRestoreRealDate(): void {\n global.Date = OriginalDate;\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/**\n * Decorator to add default static 'with' method.\n * Use in conjunction with {@link tuiHarnessWith} mixin.\n */\nexport function tuiWithPredicate<\n T extends ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n },\n>(original: T): T {\n original.with = (options: BaseHarnessFilters = {}) =>\n new HarnessPredicate(original, options);\n\n return original;\n}\n\n/**\n * Mixin to extend {@link ComponentHarness} and add typed\n * static 'with' method. Use {@link tuiWithPredicate} decorator\n * to monkey-patch default static 'with' method.\n */\nexport function tuiHarnessWith<T>(\n hostSelector: string,\n): ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n} {\n return class extends ComponentHarness {\n static hostSelector = hostSelector;\n\n // @ts-ignore\n static with(_options: BaseHarnessFilters = {}): HarnessPredicate<T> {\n throw new Error(`Hummus`);\n }\n } as unknown as ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n };\n}\n\nexport class TuiComponentHarness extends ComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\nexport class TuiContentContainerComponentHarness extends ContentContainerComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n","/// <reference types=\"jest\" />\n\nimport {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n cleaner: boolean;\n control?: FormControl;\n disabled?: boolean;\n readOnly: boolean;\n value?: unknown;\n}\n\nexport function tuiTestCleaner(\n context: TestParams,\n setValue: any = `value`,\n clearValue: any = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Cross for field cleaning`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.autoDetectChanges();\n });\n\n describe(`Cross included`, () => {\n beforeEach(() => {\n testComponent.cleaner = true;\n });\n\n it(`If no value is specified, the cross is not shown`, () => {\n updateValue(clearValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is readonly, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is disabled, the cross is not shown`, () => {\n updateValue(setValue);\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n testComponent.disabled = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If a value is specified, a cross is shown`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).not.toBeNull();\n });\n\n it(`When you click on the cross, the field value is cleared`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n getCleaner()!.nativeElement.click();\n fixture.detectChanges();\n\n expect(inputPO.value).toBe(``);\n\n if (testComponent.control !== undefined) {\n expect(testComponent.control.value).toEqual(clearValue);\n }\n\n if (testComponent.value !== undefined) {\n expect(testComponent.value).toEqual(clearValue);\n }\n });\n });\n\n describe(`Cross disabled`, () => {\n it(`The value is set, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.cleaner = false;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getCleaner(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}cleaner`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFiller(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Filler (mask)`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n describe(`if there is no value in the field`, () => {\n beforeEach(() => {\n testComponent.control.setValue(clearValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`when focusing appears`, async () => {\n inputPO.focus();\n fixture.detectChanges();\n await fixture.whenStable();\n expect(getFiller()).not.toBeNull();\n });\n });\n\n describe(`if the field has a value`, () => {\n beforeEach(() => {\n testComponent.control.setValue(setValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`also not visible when focusing`, () => {\n inputPO.nativeElement?.focus();\n fixture.detectChanges();\n\n expect(getFiller()).toBeNull();\n });\n });\n });\n\n function getFiller(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}filler`);\n }\n}\n","import {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFormControlState(context: TestParams): void {\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`FormControl state`, () => {\n beforeEach(() => {\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n it(`After initializing control dirty === false`, () => {\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After control initialization touched === false`, () => {\n expect(testComponent.control.touched).toBe(false);\n });\n\n it(`After setting value from outside dirty === false`, () => {\n testComponent.control.setValue(`123`);\n fixture.detectChanges();\n\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After entering the value dirty === true`, () => {\n inputPO.sendText(`123`);\n\n expect(testComponent.control.dirty).toBe(true);\n });\n\n it(`After setting and de-focusing touched === true`, async () => {\n inputPO.focus();\n inputPO.blur();\n\n await fixture.whenStable();\n\n fixture.detectChanges();\n expect(testComponent.control.touched).toBe(true);\n });\n });\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n labelOutside: boolean;\n size: 'l' | 'm' | 's';\n value?: unknown;\n}\n\nexport function tuiTestPlaceholder(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = ``,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Placeholder`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`in size S`, () => {\n beforeEach(() => {\n testComponent.size = `s`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if specified, not shown`, () => {\n updateValue(setValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size M`, () => {\n beforeEach(() => {\n testComponent.size = `m`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size L`, () => {\n beforeEach(() => {\n testComponent.size = `l`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getPlaceholder(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}placeholder`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n disabled?: boolean;\n hintContent: string | null;\n readOnly: boolean;\n size: unknown;\n}\n\nexport function tuiTestTooltip(context: TestParams): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Tooltip in a field`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`There is tooltip content`, () => {\n it(`if field is disabled, there is no tooltip`, () => {\n testComponent.disabled = true;\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n\n it(`if field is not disabled, there is tooltip`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n\n it(`if field is readonly, there is tooltip`, () => {\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n });\n\n describe(`There is no tooltip content`, () => {\n beforeEach(() => {\n testComponent.hintContent = null;\n fixture.detectChanges();\n });\n\n it(`tooltip without content is hidden`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n });\n });\n\n function getTooltip(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}tooltip`);\n }\n}\n","import {DebugElement, Predicate} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nexport class TuiPageObject<T> {\n constructor(protected fixture: ComponentFixture<T>) {}\n\n static getIds({nativeElement}: DebugElement): string[] {\n const attributeValue: string | null = nativeElement.getAttribute(`automation-id`);\n\n return attributeValue === null ? [] : attributeValue.split(` `);\n }\n\n static containsId(debugElement: DebugElement, automationId: string): boolean {\n return TuiPageObject.getIds(debugElement).includes(automationId);\n }\n\n private static byAutomationId(automationId: string): Predicate<DebugElement> {\n return debugElement => TuiPageObject.containsId(debugElement, automationId);\n }\n\n getByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement | null {\n return debugElement.query(TuiPageObject.byAutomationId(automationId));\n }\n\n // Syncing result order with DOM order: https://github.com/angular/angular/issues/13066\n getAllByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement[] {\n const debugEls = debugElement.queryAll(\n TuiPageObject.byAutomationId(automationId),\n );\n const domEls = Array.from(\n debugElement.nativeElement.querySelectorAll(\n `[automation-id='${automationId}']`,\n ),\n );\n\n return debugEls.sort(\n (a, b) => domEls.indexOf(a.nativeElement) - domEls.indexOf(b.nativeElement),\n );\n }\n}\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\n\nexport function tuiReplaceNbsp(content?: string): string {\n return content?.replace(new RegExp(CHAR_NO_BREAK_SPACE, `g`), ` `) ?? ``;\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\nimport {TuiPageObject} from './page-object';\nimport {tuiReplaceNbsp} from './replace-nbsp';\n\nexport class TuiNativeInputPO {\n private readonly pageObject: TuiPageObject<unknown>;\n\n constructor(\n private readonly fixture: ComponentFixture<unknown>,\n private readonly automationId: string,\n private readonly hostDebugElement?: DebugElement,\n ) {\n this.pageObject = new TuiPageObject(fixture);\n }\n\n get nativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return (\n this.pageObject.getByAutomationId(this.automationId, this.hostDebugElement)\n ?.nativeElement ?? null\n );\n }\n\n get value(): string {\n return tuiReplaceNbsp(this.nativeElement?.value ?? ``);\n }\n\n get focused(): boolean {\n return document.activeElement === this.nativeElement;\n }\n\n sendText(value: string): void {\n this.focus(); // need focus before initial value for emulate user interaction\n\n const nativeElement = this.nativeElement;\n\n if (nativeElement) {\n nativeElement.value = value;\n nativeElement.dispatchEvent(new Event(`input`, {bubbles: true}));\n }\n\n this.fixture.detectChanges();\n }\n\n // @bad TODO: Fix this with actually moving focus rather than just blurring\n sendTextAndBlur(value: string): void {\n this.focus();\n this.sendText(value);\n this.blur();\n }\n\n sendKeydown(key: string): void {\n this.nativeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n this.fixture.detectChanges();\n }\n\n focus(): void {\n this.nativeElement?.focus();\n this.fixture.detectChanges();\n }\n\n blur(): void {\n this.nativeElement?.blur();\n this.fixture.detectChanges();\n }\n\n click(): void {\n this.nativeElement?.click();\n this.fixture.detectChanges();\n }\n}\n","export function tuiTestingViewport(width: number, height: number): void {\n Object.defineProperty(global, `innerWidth`, {\n writable: true,\n configurable: true,\n value: width,\n });\n\n Object.defineProperty(global.document.documentElement, `clientWidth`, {\n writable: true,\n configurable: true,\n value: width - 15,\n });\n\n Object.defineProperty(global, `innerHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n\n Object.defineProperty(global.document.documentElement, `clientHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}