{"version":3,"file":"skyux-layout-testing.mjs","sources":["../../../../../libs/components/layout/testing/src/legacy/action-button-fixture.ts","../../../../../libs/components/layout/testing/src/legacy/card-fixture.ts","../../../../../libs/components/layout/testing/src/legacy/page-summary-fixture.ts","../../../../../libs/components/layout/testing/src/modules/back-to-top/back-to-top-harness.ts","../../../../../libs/components/layout/testing/src/modules/box/box-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-description-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-term-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-content-harness.ts","../../../../../libs/components/layout/testing/src/modules/description-list/description-list-harness.ts","../../../../../libs/components/layout/testing/src/modules/fluid-grid/column-harness.ts","../../../../../libs/components/layout/testing/src/modules/fluid-grid/row-harness.ts","../../../../../libs/components/layout/testing/src/modules/fluid-grid/fluid-grid-harness.ts","../../../../../libs/components/layout/testing/src/modules/text-expand/text-expand-modal-harness.ts","../../../../../libs/components/layout/testing/src/modules/text-expand/text-expand-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-item-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-view-actions-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-section-harness.ts","../../../../../libs/components/layout/testing/src/modules/toolbar/toolbar-harness.ts","../../../../../libs/components/layout/testing/src/modules/action-button/action-button-harness.ts","../../../../../libs/components/layout/testing/src/modules/action-button/action-button-container-harness.ts","../../../../../libs/components/layout/testing/src/skyux-layout-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX action button component.\n * @internal\n */\nexport class SkyActionButtonFixture {\n  /**\n   * The action button's current header text.\n   */\n  public get headerText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(By.css('.sky-action-button-header')),\n    );\n  }\n\n  /**\n   * The action button's current details text.\n   */\n  public get detailsText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(By.css('sky-action-button-details')),\n    );\n  }\n\n  /**\n   * The action button's current icon type.\n   */\n  public get iconType(): string | undefined {\n    const classList = this.#debugEl.query(By.css('.fa.sky-icon')).nativeElement\n      .classList;\n\n    for (let i = 0, n = classList.length; i < n; i++) {\n      const cls = classList.item(i);\n\n      if (cls.indexOf('fa-') === 0) {\n        return cls.substr(3);\n      }\n    }\n    /* istanbul ignore next */\n    return undefined;\n  }\n\n  #debugEl: DebugElement;\n\n  constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n    this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n      fixture,\n      skyTestId,\n      'sky-action-button',\n    );\n  }\n\n  /**\n   * Clicks the action button.\n   */\n  public actionClick(): void {\n    this.#debugEl\n      .query(By.css('.sky-action-button'))\n      .triggerEventHandler('click', {});\n  }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX avatar component.\n * @internal\n */\nexport class SkyCardFixture {\n  /**\n   * The card's current title.\n   */\n  public get titleText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(By.css('sky-card-title')),\n    );\n  }\n\n  /**\n   * The card's current content text.\n   */\n  public get contentText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(By.css('sky-card-content')),\n    );\n  }\n\n  /**\n   * A flag indicating whether the user can select the card.\n   */\n  public get selectable(): boolean {\n    return !!this.#debugEl.query(By.css('.sky-card-check'));\n  }\n\n  /**\n   * A flag indicating whether the card is currently selected.  If the card\n   * is not selectable, an error is thrown.\n   */\n  public get selected(): boolean {\n    if (this.selectable) {\n      return this.#getCheckInputEl().nativeElement.checked;\n    }\n\n    throw new Error('The card is not selectable.');\n  }\n\n  #debugEl: DebugElement;\n\n  constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n    this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n      fixture,\n      skyTestId,\n      'sky-card',\n    );\n  }\n\n  /**\n   * Selects the card.\n   */\n  public select(): void {\n    if (!this.selected) {\n      this.#clickCheckLabelEl();\n    }\n  }\n\n  /**\n   * Deselects the card.\n   */\n  public deselect(): void {\n    if (this.selected) {\n      this.#clickCheckLabelEl();\n    }\n  }\n\n  #clickCheckLabelEl(): void {\n    this.#debugEl\n      .query(By.css('.sky-card-check label.sky-checkbox-wrapper'))\n      .nativeElement.click();\n  }\n\n  #getCheckInputEl(): DebugElement {\n    return this.#debugEl.query(\n      By.css('.sky-card-check .sky-checkbox-wrapper input'),\n    );\n  }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX page summary component.\n * @internal\n */\nexport class SkyPageSummaryFixture {\n  /**\n   * The page summary's current title text.\n   */\n  public get titleText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(\n        By.css('sky-page-summary-title .sky-page-summary-title'),\n      ),\n    );\n  }\n\n  /**\n   * The page summary's current subtitle text.\n   */\n  public get subtitleText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(\n        By.css('sky-page-summary-subtitle .sky-page-summary-subtitle'),\n      ),\n    );\n  }\n\n  /**\n   * The page summary's current content text.\n   */\n  public get contentText(): string | undefined {\n    return SkyAppTestUtility.getText(\n      this.#debugEl.query(\n        By.css('sky-page-summary-content .sky-page-summary-content'),\n      ),\n    );\n  }\n\n  #debugEl: DebugElement;\n\n  constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n    this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n      fixture,\n      skyTestId,\n      'sky-page-summary',\n    );\n  }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a back to top component in tests.\n */\nexport class SkyBackToTopHarness extends ComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-back-to-top';\n\n  #getBackToTop = this.locatorFor('.sky-back-to-top button');\n\n  /**\n   * Clicks the back to top button.\n   */\n  public async clickBackToTop(): Promise<void> {\n    return await (await this.#getBackToTop()).click();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyBoxHeadingLevel, SkyBoxHeadingStyle } from '@skyux/layout';\n\nimport { SkyBoxHarnessFilters } from './box-harness.filters';\n\n/**\n * Harness for interacting with a box component in tests.\n */\nexport class SkyBoxHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-box';\n\n  #getBox = this.locatorFor('.sky-box');\n  #getHeading = this.locatorForOptional(\n    '.sky-box-header-content h2, .sky-box-header-content h3, .sky-box-header-content h4, .sky-box-header-content h5',\n  );\n  #getH2 = this.locatorForOptional('.sky-box-header-content h2');\n  #getH3 = this.locatorForOptional('.sky-box-header-content h3');\n  #getH4 = this.locatorForOptional('.sky-box-header-content h4');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyBoxHarness` that meets certain criteria\n   */\n  public static with(\n    filters: SkyBoxHarnessFilters,\n  ): HarnessPredicate<SkyBoxHarness> {\n    return SkyBoxHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Clicks the help inline button.\n   */\n  public async clickHelpInline(): Promise<void> {\n    return await (await this.#getHelpInline()).click();\n  }\n\n  /**\n   * Gets the help popover content.\n   */\n  public async getHelpPopoverContent(): Promise<string | undefined> {\n    return await (await this.#getHelpInline()).getPopoverContent();\n  }\n\n  /**\n   * Gets the help popover title.\n   */\n  public async getHelpPopoverTitle(): Promise<string | undefined> {\n    return await (await this.#getHelpInline()).getPopoverTitle();\n  }\n\n  /**\n   * Gets the box's heading text. If `headingHidden` is true,\n   * the text will still be returned.\n   */\n  public async getHeadingText(): Promise<string | undefined> {\n    return await (await this.#getHeading())?.text();\n  }\n\n  /**\n   * Whether the heading is hidden.\n   */\n  public async getHeadingHidden(): Promise<boolean> {\n    const heading = await this.#getHeading();\n    return (await heading?.hasClass('sky-screen-reader-only')) ?? false;\n  }\n\n  /**\n   * The semantic heading level used for the checkbox group. Returns undefined if heading level is not set.\n   */\n  public async getHeadingLevel(): Promise<SkyBoxHeadingLevel | undefined> {\n    return (await this.#getH2())\n      ? 2\n      : (await this.#getH3())\n        ? 3\n        : (await this.#getH4())\n          ? 4\n          : 5;\n  }\n\n  /**\n   * The heading style used for the checkbox group.\n   */\n  public async getHeadingStyle(): Promise<SkyBoxHeadingStyle> {\n    const heading = await this.#getHeading();\n\n    const isHeadingStyle2 = await heading?.hasClass('sky-font-heading-2');\n    const isHeadingStyle3 = await heading?.hasClass('sky-font-heading-3');\n    const isHeadingStyle4 = await heading?.hasClass('sky-font-heading-4');\n\n    return isHeadingStyle2 ? 2 : isHeadingStyle3 ? 3 : isHeadingStyle4 ? 4 : 5;\n  }\n\n  /**\n   * Gets the aria-label property of the box\n   */\n  public async getAriaLabel(): Promise<string | null> {\n    return await (await this.#getBox()).getAttribute('aria-label');\n  }\n\n  /**\n   * Gets the aria-labelledby property of the box\n   */\n  public async getAriaLabelledby(): Promise<string | null> {\n    return await (await this.#getBox()).getAttribute('aria-labelledby');\n  }\n\n  /**\n   * Gets the aria-role property of the box\n   */\n  public async getAriaRole(): Promise<string | null> {\n    return await (await this.#getBox()).getAttribute('role');\n  }\n\n  async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n    const harness = await this.locatorForOptional(\n      SkyHelpInlineHarness.with({\n        ancestor: '.sky-box-header-content',\n      }),\n    )();\n\n    if (harness) {\n      return harness;\n    }\n\n    throw Error('No help inline found.');\n  }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a description list description component in tests.\n * @internal\n */\nexport class SkyDescriptionListDescriptionHarness extends ComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'dd';\n\n  public async getText(): Promise<string> {\n    const description = (\n      await (\n        await this.locatorFor('.sky-description-list-description')()\n      ).text()\n    ).trim();\n\n    if (description === '') {\n      return await (\n        await this.locatorFor('.sky-description-list-default-value')()\n      ).text();\n    }\n    return description;\n  }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a description list term component in tests.\n * @internal\n */\nexport class SkyDescriptionListTermHarness extends ComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'dt';\n\n  public async getText(): Promise<string> {\n    return await (await this.locatorFor('span.description-list-term')()).text();\n  }\n}\n","import { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\n\nimport { SkyDescriptionListDescriptionHarness } from './description-list-description-harness';\nimport { SkyDescriptionListTermHarness } from './description-list-term-harness';\n\n/**\n * Harness for interacting with a description list content component in tests.\n */\nexport class SkyDescriptionListContentHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'div.sky-description-list-content';\n\n  #getDescription = this.locatorForOptional(\n    SkyDescriptionListDescriptionHarness,\n  );\n  #getTerm = this.locatorForOptional(SkyDescriptionListTermHarness);\n\n  /**\n   * Clicks the help inline button.\n   */\n  public async clickHelpInline(): Promise<void> {\n    await (await this.#getHelpInline()).click();\n  }\n\n  /**\n   * Gets the description component text.\n   */\n  public async getDescriptionText(): Promise<string> {\n    const description = await this.#getDescription();\n\n    if (description === null) {\n      throw Error('No description list description found.');\n    }\n\n    return await description.getText();\n  }\n\n  /**\n   * Gets the help popover content.\n   */\n  public async getHelpPopoverContent(): Promise<string | undefined> {\n    return await (await this.#getHelpInline()).getPopoverContent();\n  }\n\n  /**\n   * Gets the help popover title.\n   */\n  public async getHelpPopoverTitle(): Promise<string | undefined> {\n    return await (await this.#getHelpInline()).getPopoverTitle();\n  }\n\n  /**\n   * Gets the term component text.\n   */\n  public async getTermText(): Promise<string> {\n    const term = await this.#getTerm();\n\n    if (term === null) {\n      throw Error('No description list term found.');\n    }\n\n    return await term.getText();\n  }\n\n  async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n    const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n\n    if (harness) {\n      return harness;\n    }\n\n    throw Error('No help inline found.');\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyDescriptionListModeType } from '@skyux/layout';\n\nimport { SkyDescriptionListContentHarness } from './description-list-content-harness';\nimport { SkyDescriptionListHarnessFilters } from './description-list-harness-filters';\n\n/**\n * Harness for interacting with a description list component in tests.\n */\nexport class SkyDescriptionListHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-description-list';\n\n  #getListEl = this.locatorFor('.sky-description-list');\n  #getContentEls = this.locatorForAll(SkyDescriptionListContentHarness);\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyDescriptionListHarness` that meets certain criteria\n   */\n  public static with(\n    filters: SkyDescriptionListHarnessFilters,\n  ): HarnessPredicate<SkyDescriptionListHarness> {\n    return SkyDescriptionListHarness.getDataSkyIdPredicate(filters);\n  }\n\n  public async getContent(): Promise<SkyDescriptionListContentHarness[]> {\n    const items = await this.#getContentEls();\n\n    if (items.length === 0) {\n      throw new Error('Unable to find any description list content.');\n    }\n\n    return items;\n  }\n\n  /**\n   * Gets the mode of the description list.\n   */\n  public async getMode(): Promise<SkyDescriptionListModeType> {\n    const listEl = await this.#getListEl();\n\n    const longDescription = await listEl.hasClass(\n      'sky-description-list-long-description-mode',\n    );\n    const horizontal = await listEl.hasClass(\n      'sky-description-list-horizontal-mode',\n    );\n\n    if (longDescription) {\n      return 'longDescription';\n    } else if (horizontal) {\n      return 'horizontal';\n    } else {\n      return 'vertical';\n    }\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyColumnHarnessFilters } from './column-harness-filters';\n\nconst sizes = ['xs', 'sm', 'md', 'lg'];\n\n/**\n * Harness for interacting with a fluid grid column component in tests.\n */\nexport class SkyColumnHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-column';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyColumnHarness` that meets certain criteria\n   */\n  public static with(\n    filters: SkyColumnHarnessFilters,\n  ): HarnessPredicate<SkyColumnHarness> {\n    return SkyColumnHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the size of the column in an XSmall responsive context.\n   */\n  public async getXSmallSize(): Promise<number> {\n    return await this.#getColumnSize(0);\n  }\n\n  /**\n   * Gets the size of the column in a Small responsive context.\n   */\n  public async getSmallSize(): Promise<number> {\n    return await this.#getColumnSize(1);\n  }\n\n  /**\n   * Gets the size of the column in a Medium responsive context.\n   */\n  public async getMediumSize(): Promise<number> {\n    return await this.#getColumnSize(2);\n  }\n\n  /**\n   * Gets the size of the column in a Large responsive context.\n   */\n  public async getLargeSize(): Promise<number> {\n    return await this.#getColumnSize(3);\n  }\n\n  async #getColumnSize(index: number): Promise<number> {\n    const size = sizes[index];\n\n    const result = await this.#getColumnClass(size);\n\n    /* istanbul ignore if */\n    if (!result && !index) {\n      throw Error('No column sizes found.');\n    }\n\n    return result || (await this.#getColumnSize(index - 1));\n  }\n\n  async #getColumnClass(size: string): Promise<number> {\n    const host = await this.host();\n\n    for (let i = 12; i; i--) {\n      if (await host.hasClass(`sky-column-${size}-${i}`)) {\n        return i;\n      }\n    }\n\n    return 0;\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyColumnHarness } from './column-harness';\nimport { SkyRowHarnessFilters } from './row-harness-filters';\n\n/**\n * Harness for interacting with a fluid grid column component in tests.\n */\nexport class SkyRowHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-row';\n\n  #getRow = this.locatorFor('.sky-row');\n  #getColumns = this.locatorForAll(SkyColumnHarness);\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyRowHarness` that meets certain criteria\n   */\n  public static with(\n    filters: SkyRowHarnessFilters,\n  ): HarnessPredicate<SkyRowHarness> {\n    return SkyRowHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets all of the columns in the row.\n   */\n  public async getColumns(): Promise<SkyColumnHarness[]> {\n    return await this.#getColumns();\n  }\n\n  /**\n   * Gets the ordering of the columns in the row.\n   * @returns `normal` | `reverse`\n   */\n  public async getColumnOrder(): Promise<string> {\n    const row = await this.#getRow();\n\n    return (await row.hasClass('sky-row-reverse')) ? 'reverse' : 'normal';\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyFluidGridHarnessFilters } from './fluid-grid-harness-filters';\nimport { SkyRowHarness } from './row-harness';\n\n/**\n * Harness for interacting with a fluid grid component in tests.\n */\nexport class SkyFluidGridHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-fluid-grid';\n\n  #getGrid = this.locatorFor('.sky-fluid-grid');\n  #getRows = this.locatorForAll(SkyRowHarness);\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyFluidGridHarness` that meets certain criteria\n   */\n  public static with(\n    filters: SkyFluidGridHarnessFilters,\n  ): HarnessPredicate<SkyFluidGridHarness> {\n    return SkyFluidGridHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the gutter size for the grid.\n   */\n  public async getGutterSize(): Promise<string> {\n    const grid = await this.#getGrid();\n\n    const small = await grid.hasClass('sky-fluid-grid-gutter-size-small');\n    const medium = await grid.hasClass('sky-fluid-grid-gutter-size-medium');\n\n    if (small) {\n      return 'small';\n    } else if (medium) {\n      return 'medium';\n    } else {\n      return 'large';\n    }\n  }\n\n  /**\n   * Gets all of the rows in the grid.\n   */\n  public async getRows(): Promise<SkyRowHarness[]> {\n    return await this.#getRows();\n  }\n\n  /**\n   * Whether the fluid grid has margin enabled.\n   */\n  public async hasMargin(): Promise<boolean> {\n    return !(await (\n      await this.#getGrid()\n    ).hasClass('sky-fluid-grid-no-margin'));\n  }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness for interacting with a text expand modal component in tests.\n */\nexport class SkyTextExpandModalHarness extends ComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-text-expand-modal';\n\n  #getCloseButton = this.locatorFor('sky-modal-footer button.sky-btn');\n  #getHeader = this.locatorFor('sky-modal-header');\n  #getText = this.locatorFor('sky-modal-content.sky-text-expand-modal-content');\n\n  /**\n   * Clicks the modal close button.\n   */\n  public async clickCloseButton(): Promise<void> {\n    const button = await this.#getCloseButton();\n\n    await button.click();\n  }\n\n  /**\n   * Gets the modal title.\n   */\n  public async getExpandModalTitle(): Promise<string> {\n    return await (await this.#getHeader()).text();\n  }\n\n  /**\n   * Gets the expanded text in the modal.\n   */\n  public async getText(): Promise<string> {\n    return await (await this.#getText()).text();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTextExpandHarnessFilters } from './text-expand-harness-filters';\nimport { SkyTextExpandModalHarness } from './text-expand-modal-harness';\n\n/**\n * Harness for interacting with a text expand component in tests.\n */\nexport class SkyTextExpandHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-text-expand';\n\n  #documentRootLocator = this.documentRootLocatorFactory();\n  #getExpandCollapseButton = this.locatorForOptional(\n    '.sky-text-expand-see-more',\n  );\n  #getText = this.locatorFor('.sky-text-expand-text');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyTextExpandHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyTextExpandHarnessFilters,\n  ): HarnessPredicate<SkyTextExpandHarness> {\n    return SkyTextExpandHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Clicks the button element that expands or collapses text.\n   */\n  public async clickExpandCollapseButton(): Promise<void> {\n    const button = await this.#getExpandCollapseButton();\n\n    if (button === null) {\n      throw Error('Could not find button element.');\n    }\n\n    await button.click();\n  }\n\n  /**\n   * Gets the harness to interact with the modal expanded view.\n   */\n  public async getExpandedViewModal(): Promise<SkyTextExpandModalHarness> {\n    const modal = await this.#documentRootLocator.locatorForOptional(\n      SkyTextExpandModalHarness,\n    )();\n\n    if (modal === null) {\n      throw Error('Could not find text expand modal.');\n    }\n\n    return modal;\n  }\n\n  /**\n   * Gets the text content of the text expand.\n   */\n  public async getText(): Promise<string> {\n    return await (await this.#getText()).text();\n  }\n\n  /**\n   * Whether the text will expand to a modal.\n   */\n  public async textExpandsToModal(): Promise<boolean> {\n    return (\n      (await (\n        await this.#getExpandCollapseButton()\n      )?.getAttribute('aria-haspopup')) !== null\n    );\n  }\n\n  /**\n   * Whether the text is expanded.\n   */\n  public async isExpanded(): Promise<boolean> {\n    if (await this.textExpandsToModal()) {\n      try {\n        await this.getExpandedViewModal();\n        return true;\n      } catch {\n        return false;\n      }\n    }\n\n    return (\n      (await (\n        await this.#getExpandCollapseButton()\n      )?.getAttribute('aria-expanded')) === 'true'\n    );\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyToolbarItemHarnessFilters } from './toolbar-item-harness-filters';\n\n/**\n * Harness to interact with a toolbar item component in tests.\n */\nexport class SkyToolbarItemHarness extends SkyQueryableComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-toolbar-item';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyToolbarItemHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyToolbarItemHarnessFilters,\n  ): HarnessPredicate<SkyToolbarItemHarness> {\n    return SkyToolbarItemHarness.getDataSkyIdPredicate(filters);\n  }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with a toolbar view actions component in tests.\n */\nexport class SkyToolbarViewActionsHarness extends SkyQueryableComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-toolbar-view-actions';\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyToolbarItemHarness } from './toolbar-item-harness';\nimport { SkyToolbarItemHarnessFilters } from './toolbar-item-harness-filters';\nimport { SkyToolbarSectionHarnessFilters } from './toolbar-section-harness-filters';\nimport { SkyToolbarViewActionsHarness } from './toolbar-view-actions-harness';\n\n/**\n * Harness to interact with a toolbar section component in tests.\n */\nexport class SkyToolbarSectionHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-toolbar-section';\n\n  #getViewActions = this.locatorForOptional(SkyToolbarViewActionsHarness);\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyToolbarSectionHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyToolbarSectionHarnessFilters,\n  ): HarnessPredicate<SkyToolbarSectionHarness> {\n    return SkyToolbarSectionHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets a harness for a specific toolbar item that meets certain criteria.\n   */\n  public async getItem(\n    filter: SkyToolbarItemHarnessFilters,\n  ): Promise<SkyToolbarItemHarness> {\n    return await this.locatorFor(SkyToolbarItemHarness.with(filter))();\n  }\n\n  /**\n   * Gets an array of all toolbar items.\n   */\n  public async getItems(\n    filters?: SkyToolbarItemHarnessFilters,\n  ): Promise<SkyToolbarItemHarness[]> {\n    const items = await this.locatorForAll(\n      SkyToolbarItemHarness.with(filters || {}),\n    )();\n\n    if (items.length === 0) {\n      if (filters) {\n        throw new Error(\n          `Unable to find any toolbar section items with filter(s): ${JSON.stringify(filters)}`,\n        );\n      }\n      throw new Error('Unable to find any toolbar section items.');\n    }\n\n    return items;\n  }\n\n  /**\n   * Gets the harness to interact with the toolbar's view actions.\n   */\n  public async getViewActions(): Promise<SkyToolbarViewActionsHarness> {\n    const actions = await this.#getViewActions();\n\n    if (actions === null) {\n      throw Error('Unable to find toolbar section view actions.');\n    }\n\n    return actions;\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyToolbarHarnessFilters } from './toolbar-harness-filters';\nimport { SkyToolbarItemHarness } from './toolbar-item-harness';\nimport { SkyToolbarItemHarnessFilters } from './toolbar-item-harness-filters';\nimport { SkyToolbarSectionHarness } from './toolbar-section-harness';\nimport { SkyToolbarSectionHarnessFilters } from './toolbar-section-harness-filters';\nimport { SkyToolbarViewActionsHarness } from './toolbar-view-actions-harness';\n\n/**\n * Harness for interacting with a toolbar component in tests.\n */\nexport class SkyToolbarHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-toolbar';\n\n  #getViewActions = this.locatorForOptional(SkyToolbarViewActionsHarness);\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyToolbarHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyToolbarHarnessFilters,\n  ): HarnessPredicate<SkyToolbarHarness> {\n    return SkyToolbarHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets a harness for a specific toolbar item that meets certain criteria.\n   */\n  public async getItem(\n    filter: SkyToolbarItemHarnessFilters,\n  ): Promise<SkyToolbarItemHarness> {\n    return await this.locatorFor(SkyToolbarItemHarness.with(filter))();\n  }\n\n  /**\n   * Gets an array of all toolbar items.\n   */\n  public async getItems(\n    filters?: SkyToolbarItemHarnessFilters,\n  ): Promise<SkyToolbarItemHarness[]> {\n    const items = await this.locatorForAll(\n      SkyToolbarItemHarness.with(filters || {}),\n    )();\n\n    if (items.length === 0) {\n      if (filters) {\n        throw new Error(\n          `Unable to find any toolbar items with filter(s): ${JSON.stringify(filters)}`,\n        );\n      }\n      throw new Error('Unable to find any toolbar items.');\n    }\n\n    return items;\n  }\n\n  /**\n   * Gets a harness for a specific toolbar section that meets certain criteria.\n   */\n  public async getSection(\n    filter: SkyToolbarSectionHarnessFilters,\n  ): Promise<SkyToolbarSectionHarness> {\n    return await this.locatorFor(SkyToolbarSectionHarness.with(filter))();\n  }\n\n  /**\n   * Gets an array of all toolbar sections.\n   */\n  public async getSections(\n    filters?: SkyToolbarSectionHarnessFilters,\n  ): Promise<SkyToolbarSectionHarness[]> {\n    const sections = await this.locatorForAll(\n      SkyToolbarSectionHarness.with(filters || {}),\n    )();\n\n    if (sections.length === 0) {\n      if (filters) {\n        throw new Error(\n          `Unable to find any toolbar sections with filter(s): ${JSON.stringify(filters)}`,\n        );\n      }\n      throw new Error('Unable to find any toolbar sections.');\n    }\n\n    return sections;\n  }\n\n  /**\n   * Gets the harness to interact with the toolbar's view actions.\n   */\n  public async getViewActions(): Promise<SkyToolbarViewActionsHarness> {\n    const actions = await this.#getViewActions();\n\n    if (actions === null) {\n      throw Error('Unable to find toolbar view actions.');\n    }\n\n    return actions;\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyIconHarness } from '@skyux/icon/testing';\n\nimport { SkyActionButtonHarnessFilters } from './action-button-harness.filters';\n\n/**\n * Harness for interacting with a action button component in tests.\n */\nexport class SkyActionButtonHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-action-button';\n\n  #actionButton = this.locatorFor('.sky-action-button');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyActionButtonHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyActionButtonHarnessFilters,\n  ): HarnessPredicate<SkyActionButtonHarness> {\n    return SkyActionButtonHarness.getDataSkyIdPredicate(filters).addOption(\n      'header',\n      filters.header,\n      async (harness, header) => {\n        const harnessHeaderText = await harness.getHeaderText();\n        return await HarnessPredicate.stringMatches(harnessHeaderText, header);\n      },\n    );\n  }\n\n  /**\n   * Clicks the action button.\n   */\n  public async click(): Promise<void> {\n    return await (await this.#actionButton()).click();\n  }\n\n  /**\n   * Gets the action button details text.\n   */\n  public async getDetailsText(): Promise<string | null> {\n    const details = await this.locatorFor('sky-action-button-details')();\n    return (await details.text()).trim();\n  }\n\n  /**\n   * Gets the action button header text.\n   */\n  public async getHeaderText(): Promise<string | null> {\n    const header = await this.locatorFor('.sky-action-button-header')();\n    return (await header.text()).trim();\n  }\n\n  /**\n   * Gets the action button icon type.\n   */\n  public async getIconType(): Promise<string | undefined> {\n    const icon = await this.locatorFor(SkyIconHarness)();\n    return await icon.getIconName();\n  }\n\n  /**\n   * Gets the action button link.\n   */\n  public async getLink(): Promise<string | undefined> {\n    return (await (await this.#actionButton()).getProperty('href')).trim();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyActionButtonContainerAlignItemsType } from '@skyux/layout';\n\nimport { SkyActionButtonContainerHarnessFilters } from './action-button-container-harness.filters';\nimport { SkyActionButtonHarness } from './action-button-harness';\nimport { SkyActionButtonHarnessFilters } from './action-button-harness.filters';\n\n/**\n * Harness for interacting with a action button container component in tests.\n */\nexport class SkyActionButtonContainerHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-action-button-container';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyActionButtonContainerHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyActionButtonContainerHarnessFilters,\n  ): HarnessPredicate<SkyActionButtonContainerHarness> {\n    return SkyActionButtonContainerHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets an action button that matches the given filter.\n   */\n  public async getActionButton(\n    filter: SkyActionButtonHarnessFilters,\n  ): Promise<SkyActionButtonHarness> {\n    return await this.locatorFor(SkyActionButtonHarness.with(filter))();\n  }\n\n  /**\n   * Gets the action buttons.\n   */\n  public async getActionButtons(): Promise<SkyActionButtonHarness[]> {\n    return await this.locatorForAll(SkyActionButtonHarness)();\n  }\n\n  /**\n   * Gets the alignment of the buttons inside the container.\n   */\n  public async getAlignment(): Promise<SkyActionButtonContainerAlignItemsType> {\n    return (await (\n      await this.locatorFor('.sky-action-button-flex')()\n    ).hasClass('sky-action-button-flex-align-left'))\n      ? 'left'\n      : 'center';\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAKA;;;AAGG;MACU,sBAAsB,CAAA;AACjC;;AAEG;AACH,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CACzD;;AAGH;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CACzD;;AAGH;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC3D,aAAA,SAAS;AAEZ,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAE7B,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5B,gBAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;;;;AAIxB,QAAA,OAAO,SAAS;;AAGlB,IAAA,QAAQ;IAER,WAAY,CAAA,OAA8B,EAAE,SAAiB,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,uBAAuB,CACvD,OAAO,EACP,SAAS,EACT,mBAAmB,CACpB;;AAGH;;AAEG;IACI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC;AACF,aAAA,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAClC,aAAA,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC;;AAEtC;;AC3DD;;;AAGG;MACU,cAAc,CAAA;AACzB;;AAEG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAC9C;;AAGH;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAChD;;AAGH;;AAEG;AACH,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;;AAGzD;;;AAGG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,OAAO;;AAGtD,QAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;;AAGhD,IAAA,QAAQ;IAER,WAAY,CAAA,OAA8B,EAAE,SAAiB,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,uBAAuB,CACvD,OAAO,EACP,SAAS,EACT,UAAU,CACX;;AAGH;;AAEG;IACI,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE;;;AAI7B;;AAEG;IACI,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,kBAAkB,EAAE;;;IAI7B,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC;AACF,aAAA,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC;aAC1D,aAAa,CAAC,KAAK,EAAE;;IAG1B,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CACxB,EAAE,CAAC,GAAG,CAAC,6CAA6C,CAAC,CACtD;;AAEJ;;ACjFD;;;AAGG;MACU,qBAAqB,CAAA;AAChC;;AAEG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,EAAE,CAAC,GAAG,CAAC,gDAAgD,CAAC,CACzD,CACF;;AAGH;;AAEG;AACH,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,EAAE,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAC/D,CACF;;AAGH;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,EAAE,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAC7D,CACF;;AAGH,IAAA,QAAQ;IAER,WAAY,CAAA,OAA8B,EAAE,SAAiB,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,uBAAuB,CACvD,OAAO,EACP,SAAS,EACT,kBAAkB,CACnB;;AAEJ;;AClDD;;AAEG;AACG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;AACvD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,iBAAiB,CAAC;AAE/C,IAAA,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;AAE1D;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;QACzB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE;;;;ACVrD;;AAEG;AACG,MAAO,aAAc,SAAQ,mBAAmB,CAAA;AACpD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,SAAS,CAAC;AAEvC,IAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACrC,IAAA,WAAW,GAAG,IAAI,CAAC,kBAAkB,CACnC,gHAAgH,CACjH;AACD,IAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC;AAC9D,IAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC;AAC9D,IAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC;AAE9D;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA6B,EAAA;AAE7B,QAAA,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAGrD;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;QAC1B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE;;AAGpD;;AAEG;AACI,IAAA,MAAM,qBAAqB,GAAA;QAChC,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,iBAAiB,EAAE;;AAGhE;;AAEG;AACI,IAAA,MAAM,mBAAmB,GAAA;QAC9B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE;;AAG9D;;;AAGG;AACI,IAAA,MAAM,cAAc,GAAA;QACzB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE;;AAGjD;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;QACxC,OAAO,CAAC,MAAM,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,KAAK,KAAK;;AAGrE;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACzB,cAAE;AACF,cAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACpB,kBAAE;AACF,kBAAE,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACpB,sBAAE;sBACA,CAAC;;AAGX;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;QAExC,MAAM,eAAe,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC;QACrE,MAAM,eAAe,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC;QACrE,MAAM,eAAe,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC;QAErE,OAAO,eAAe,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC;;AAG5E;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,YAAY,CAAC;;AAGhE;;AAEG;AACI,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,iBAAiB,CAAC;;AAGrE;;AAEG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC;;AAG1D,IAAA,MAAM,cAAc,GAAA;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC3C,oBAAoB,CAAC,IAAI,CAAC;AACxB,YAAA,QAAQ,EAAE,yBAAyB;SACpC,CAAC,CACH,EAAE;QAEH,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,OAAO;;AAGhB,QAAA,MAAM,KAAK,CAAC,uBAAuB,CAAC;;;;AC/HxC;;;AAGG;AACG,MAAO,oCAAqC,SAAQ,gBAAgB,CAAA;AACxE;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAE3B,IAAA,MAAM,OAAO,GAAA;QAClB,MAAM,WAAW,GAAG,CAClB,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAAE,EAC5D,IAAI,EAAE,EACR,IAAI,EAAE;AAER,QAAA,IAAI,WAAW,KAAK,EAAE,EAAE;AACtB,YAAA,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAAE,EAC9D,IAAI,EAAE;;AAEV,QAAA,OAAO,WAAW;;;;ACtBtB;;;AAGG;AACG,MAAO,6BAA8B,SAAQ,gBAAgB,CAAA;AACjE;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAE3B,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,EAAE,IAAI,EAAE;;;;ACP/E;;AAEG;AACG,MAAO,gCAAiC,SAAQ,mBAAmB,CAAA;AACvE;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,kCAAkC,CAAC;AAEhE,IAAA,eAAe,GAAG,IAAI,CAAC,kBAAkB,CACvC,oCAAoC,CACrC;AACD,IAAA,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC;AAEjE;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;QAC1B,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE;;AAG7C;;AAEG;AACI,IAAA,MAAM,kBAAkB,GAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AAEhD,QAAA,IAAI,WAAW,KAAK,IAAI,EAAE;AACxB,YAAA,MAAM,KAAK,CAAC,wCAAwC,CAAC;;AAGvD,QAAA,OAAO,MAAM,WAAW,CAAC,OAAO,EAAE;;AAGpC;;AAEG;AACI,IAAA,MAAM,qBAAqB,GAAA;QAChC,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,iBAAiB,EAAE;;AAGhE;;AAEG;AACI,IAAA,MAAM,mBAAmB,GAAA;QAC9B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE;;AAG9D;;AAEG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AAElC,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,MAAM,KAAK,CAAC,iCAAiC,CAAC;;AAGhD,QAAA,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE;;AAG7B,IAAA,MAAM,cAAc,GAAA;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE;QAErE,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,OAAO;;AAGhB,QAAA,MAAM,KAAK,CAAC,uBAAuB,CAAC;;;;ACnExC;;AAEG;AACG,MAAO,yBAA0B,SAAQ,mBAAmB,CAAA;AAChE;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,sBAAsB,CAAC;AAEpD,IAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;AACrD,IAAA,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC;AAErE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAyC,EAAA;AAEzC,QAAA,OAAO,yBAAyB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAG1D,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AAEzC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;;AAGjE,QAAA,OAAO,KAAK;;AAGd;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE;QAEtC,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,QAAQ,CAC3C,4CAA4C,CAC7C;QACD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CACtC,sCAAsC,CACvC;QAED,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,iBAAiB;;aACnB,IAAI,UAAU,EAAE;AACrB,YAAA,OAAO,YAAY;;aACd;AACL,YAAA,OAAO,UAAU;;;;;ACpDvB,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAEtC;;AAEG;AACG,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AACvD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;AAE1C;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAgC,EAAA;AAEhC,QAAA,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAGxD;;AAEG;AACI,IAAA,MAAM,aAAa,GAAA;AACxB,QAAA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;;AAGrC;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;;AAGrC;;AAEG;AACI,IAAA,MAAM,aAAa,GAAA;AACxB,QAAA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;;AAGrC;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;;IAGrC,MAAM,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAG/C,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;AACrB,YAAA,MAAM,KAAK,CAAC,wBAAwB,CAAC;;AAGvC,QAAA,OAAO,MAAM,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;;IAGzD,MAAM,eAAe,CAAC,IAAY,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;QAE9B,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACvB,YAAA,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA,WAAA,EAAc,IAAI,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAAC,EAAE;AAClD,gBAAA,OAAO,CAAC;;;AAIZ,QAAA,OAAO,CAAC;;;;ACtEZ;;AAEG;AACG,MAAO,aAAc,SAAQ,mBAAmB,CAAA;AACpD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,SAAS,CAAC;AAEvC,IAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACrC,IAAA,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAElD;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA6B,EAAA;AAE7B,QAAA,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAGrD;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE;;AAGjC;;;AAGG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;AAEhC,QAAA,OAAO,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,SAAS,GAAG,QAAQ;;;;ACpCzE;;AAEG;AACG,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAC1D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,gBAAgB,CAAC;AAE9C,IAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAC7C,IAAA,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAE5C;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAmC,EAAA;AAEnC,QAAA,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAG3D;;AAEG;AACI,IAAA,MAAM,aAAa,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;QAElC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAEvE,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,OAAO;;aACT,IAAI,MAAM,EAAE;AACjB,YAAA,OAAO,QAAQ;;aACV;AACL,YAAA,OAAO,OAAO;;;AAIlB;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE;;AAG9B;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,OAAO,EAAE,MAAM,CACb,MAAM,IAAI,CAAC,QAAQ,EAAE,EACrB,QAAQ,CAAC,0BAA0B,CAAC,CAAC;;;;ACzD3C;;AAEG;AACG,MAAO,yBAA0B,SAAQ,gBAAgB,CAAA;AAC7D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,uBAAuB,CAAC;AAErD,IAAA,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC;AACpE,IAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAChD,IAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,iDAAiD,CAAC;AAE7E;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AAE3C,QAAA,MAAM,MAAM,CAAC,KAAK,EAAE;;AAGtB;;AAEG;AACI,IAAA,MAAM,mBAAmB,GAAA;QAC9B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE;;AAG/C;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;;;;AC7B/C;;AAEG;AACG,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAC3D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,iBAAiB,CAAC;AAE/C,IAAA,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,EAAE;AACxD,IAAA,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAChD,2BAA2B,CAC5B;AACD,IAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;AAEnD;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAoC,EAAA;AAEpC,QAAA,OAAO,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAG5D;;AAEG;AACI,IAAA,MAAM,yBAAyB,GAAA;AACpC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE;AAEpD,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,MAAM,KAAK,CAAC,gCAAgC,CAAC;;AAG/C,QAAA,MAAM,MAAM,CAAC,KAAK,EAAE;;AAGtB;;AAEG;AACI,IAAA,MAAM,oBAAoB,GAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAC9D,yBAAyB,CAC1B,EAAE;AAEH,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,MAAM,KAAK,CAAC,mCAAmC,CAAC;;AAGlD,QAAA,OAAO,KAAK;;AAGd;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;;AAG7C;;AAEG;AACI,IAAA,MAAM,kBAAkB,GAAA;AAC7B,QAAA,QACE,CAAC,MAAM,CACL,MAAM,IAAI,CAAC,wBAAwB,EAAE,GACpC,YAAY,CAAC,eAAe,CAAC,MAAM,IAAI;;AAI9C;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,IAAI,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE;AACnC,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,oBAAoB,EAAE;AACjC,gBAAA,OAAO,IAAI;;AACX,YAAA,MAAM;AACN,gBAAA,OAAO,KAAK;;;AAIhB,QAAA,QACE,CAAC,MAAM,CACL,MAAM,IAAI,CAAC,wBAAwB,EAAE,GACpC,YAAY,CAAC,eAAe,CAAC,MAAM,MAAM;;;;ACxFlD;;AAEG;AACG,MAAO,qBAAsB,SAAQ,4BAA4B,CAAA;AACrE;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,kBAAkB,CAAC;AAEhD;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAqC,EAAA;AAErC,QAAA,OAAO,qBAAqB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;;;ACnB/D;;AAEG;AACG,MAAO,4BAA6B,SAAQ,4BAA4B,CAAA;AAC5E;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,0BAA0B,CAAC;;;ACD1D;;AAEG;AACG,MAAO,wBAAyB,SAAQ,mBAAmB,CAAA;AAC/D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,qBAAqB,CAAC;AAEnD,IAAA,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC;AAEvE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAwC,EAAA;AAExC,QAAA,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAGhE;;AAEG;IACI,MAAM,OAAO,CAClB,MAAoC,EAAA;AAEpC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;;AAGpE;;AAEG;IACI,MAAM,QAAQ,CACnB,OAAsC,EAAA;AAEtC,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CACpC,qBAAqB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1C,EAAE;AAEH,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,IAAI,KAAK,CACb,CAAA,yDAAA,EAA4D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAE,CAAA,CACtF;;AAEH,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;;AAG9D,QAAA,OAAO,KAAK;;AAGd;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AAE5C,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,MAAM,KAAK,CAAC,8CAA8C,CAAC;;AAG7D,QAAA,OAAO,OAAO;;;;AC5DlB;;AAEG;AACG,MAAO,iBAAkB,SAAQ,mBAAmB,CAAA;AACxD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,aAAa,CAAC;AAE3C,IAAA,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC;AAEvE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAiC,EAAA;AAEjC,QAAA,OAAO,iBAAiB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAGzD;;AAEG;IACI,MAAM,OAAO,CAClB,MAAoC,EAAA;AAEpC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;;AAGpE;;AAEG;IACI,MAAM,QAAQ,CACnB,OAAsC,EAAA;AAEtC,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CACpC,qBAAqB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1C,EAAE;AAEH,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,IAAI,KAAK,CACb,CAAA,iDAAA,EAAoD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAE,CAAA,CAC9E;;AAEH,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;;AAGtD,QAAA,OAAO,KAAK;;AAGd;;AAEG;IACI,MAAM,UAAU,CACrB,MAAuC,EAAA;AAEvC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;;AAGvE;;AAEG;IACI,MAAM,WAAW,CACtB,OAAyC,EAAA;AAEzC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,wBAAwB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAC7C,EAAE;AAEH,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,IAAI,KAAK,CACb,CAAA,oDAAA,EAAuD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAE,CAAA,CACjF;;AAEH,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;;AAGzD,QAAA,OAAO,QAAQ;;AAGjB;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AAE5C,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,MAAM,KAAK,CAAC,sCAAsC,CAAC;;AAGrD,QAAA,OAAO,OAAO;;;;ACjGlB;;AAEG;AACG,MAAO,sBAAuB,SAAQ,mBAAmB,CAAA;AAC7D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,mBAAmB,CAAC;AAEjD,IAAA,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAErD;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAsC,EAAA;QAEtC,OAAO,sBAAsB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,CACpE,QAAQ,EACR,OAAO,CAAC,MAAM,EACd,OAAO,OAAO,EAAE,MAAM,KAAI;AACxB,YAAA,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE;YACvD,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC;AACxE,SAAC,CACF;;AAGH;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE;;AAGnD;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;QACpE,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;;AAGtC;;AAEG;AACI,IAAA,MAAM,aAAa,GAAA;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;QACnE,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;;AAGrC;;AAEG;AACI,IAAA,MAAM,WAAW,GAAA;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AACpD,QAAA,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE;;AAGjC;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;;;;AC7D1E;;AAEG;AACG,MAAO,+BAAgC,SAAQ,mBAAmB,CAAA;AACtE;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,6BAA6B,CAAC;AAE3D;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA+C,EAAA;AAE/C,QAAA,OAAO,+BAA+B,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAGvE;;AAEG;IACI,MAAM,eAAe,CAC1B,MAAqC,EAAA;AAErC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;;AAGrE;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;QAC3B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE;;AAG3D;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,OAAO,CAAC,MAAM,CACZ,MAAM,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,EAClD,QAAQ,CAAC,mCAAmC,CAAC;AAC7C,cAAE;cACA,QAAQ;;;;ACnDhB;;AAEG;;;;"}