@onecx/angular-accelerator 6.13.2 → 6.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "chart": {
3
+ "fruit1": "Apfel",
4
+ "fruit2": "Banane",
5
+ "fruit3": "Orange"
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "chart": {
3
+ "fruit1": "Apple",
4
+ "fruit2": "Banana",
5
+ "fruit3": "Orange"
6
+ }
7
+ }
@@ -348,9 +348,16 @@ class DiagramHarness extends ComponentHarness {
348
348
  async getDiagramTypeSelectButton() {
349
349
  return await this.locatorForOptional('p-selectbutton[name="diagram-type-select-button"]')();
350
350
  }
351
+ async getCanvasElement() {
352
+ return await this.locatorForOptional('p-chart canvas')();
353
+ }
351
354
  async getAllSelectionButtons() {
352
355
  return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons();
353
356
  }
357
+ async getCanvasAriaLabel() {
358
+ const canvas = await this.getCanvasElement();
359
+ return canvas ? canvas.getAttribute('aria-label') : null;
360
+ }
354
361
  }
355
362
 
356
363
  class FilterViewHarness extends ContentContainerComponentHarness {
@@ -1 +1 @@
1
- {"version":3,"file":"onecx-angular-accelerator-testing.mjs","sources":["../../../../libs/angular-accelerator/testing/column-group-selection.harness.ts","../../../../libs/angular-accelerator/testing/content-container.harness.ts","../../../../libs/angular-accelerator/testing/content.harness.ts","../../../../libs/angular-accelerator/testing/custom-group-column-selector.harness.ts","../../../../libs/angular-accelerator/testing/data-layout-selection.harness.ts","../../../../libs/angular-accelerator/testing/more-actions-menu-button.harness.ts","../../../../libs/angular-accelerator/testing/default-grid-item.harness.ts","../../../../libs/angular-accelerator/testing/default-list-item.harness.ts","../../../../libs/angular-accelerator/testing/data-list-grid.harness.ts","../../../../libs/angular-accelerator/testing/data-table.harness.ts","../../../../libs/angular-accelerator/testing/data-view.harness.ts","../../../../libs/angular-accelerator/testing/diagram.harness.ts","../../../../libs/angular-accelerator/testing/filter-view.harness.ts","../../../../libs/angular-accelerator/testing/group-by-count-diagram.harness.ts","../../../../libs/angular-accelerator/testing/slot.harness.ts","../../../../libs/angular-accelerator/testing/interactive-data-view.harness.ts","../../../../libs/angular-accelerator/testing/lifecycle.harness.ts","../../../../libs/angular-accelerator/testing/page-header.harness.ts","../../../../libs/angular-accelerator/testing/search-header.harness.ts","../../../../libs/angular-accelerator/testing/dialog-message-content.harness.ts","../../../../libs/angular-accelerator/testing/dialog-content.harness.ts","../../../../libs/angular-accelerator/testing/dialog-footer.harness.ts","../../../../libs/angular-accelerator/testing/dialog-inline.harness.ts","../../../../libs/angular-accelerator/testing/index.ts","../../../../libs/angular-accelerator/testing/onecx-angular-accelerator-testing.ts"],"sourcesContent":["import { ComponentHarness } from '@angular/cdk/testing'\nimport { PSelectHarness } from '@onecx/angular-testing'\n\nexport class ColumnGroupSelectionHarness extends ComponentHarness {\n static hostSelector = 'ocx-column-group-selection'\n\n getPSelect = this.locatorFor(PSelectHarness)\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness } from '@onecx/angular-testing'\n\nexport class OcxContentContainerHarness extends ComponentHarness {\n static hostSelector = 'ocx-content-container'\n\n async getLayoutClasses() {\n const div = await this.locatorFor(DivHarness)()\n const actualClassList = await div.getClassList()\n\n return actualClassList\n }\n\n async getLayout(): Promise<'horizontal' | 'vertical'> {\n const layoutClassses = await this.getLayoutClasses()\n return layoutClassses.find((c) => c.endsWith(':flex-row')) ? 'horizontal' : 'vertical'\n }\n\n async getBreakpoint(): Promise<'sm' | 'md' | 'lg' | 'xl' | undefined> {\n const layoutClassses = await this.getLayoutClasses()\n const layoutClass = layoutClassses.find((c) => c.endsWith(':flex-row'))\n return layoutClass?.split(':')[0] as 'sm' | 'md' | 'lg' | 'xl' | undefined\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness, PHarness } from '@onecx/angular-testing'\n\nexport class OcxContentHarness extends ComponentHarness {\n static hostSelector = 'ocx-content'\n\n async getContentClasses() {\n const div = await this.locatorFor(DivHarness)()\n const actualClassList = await div.getClassList()\n\n return actualClassList\n }\n\n async getTitleClasses(titleElementId: string) {\n const p = await this.getTitleHarness(titleElementId)\n if (p) {\n const actualClassList = await p.getClassList()\n return actualClassList\n }\n return null\n }\n\n async getTitle(titleElementId: string) {\n const p = await this.getTitleHarness(titleElementId)\n if (p) {\n const titleContent = await p.getText()\n return titleContent\n }\n return null\n }\n\n async getTitleHarness(titleElementId: string) {\n const pHarness = await this.locatorForOptional(PHarness.with({ id: titleElementId }))()\n return pHarness\n }\n\n async hasTitle(titleElementId: string): Promise<boolean> {\n const title = await this.getTitleHarness(titleElementId)\n return !!title\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PDialogHarness, PPicklistHarness, PButtonHarness } from '@onecx/angular-testing'\n\nexport class CustomGroupColumnSelectorHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-custom-group-column-selector'\n\n getCustomGroupColumnSelectorButton = this.locatorFor(\n PButtonHarness.with({\n id: 'customGroupColumnSelectorButton',\n })\n )\n\n getDialog = this.locatorFor(PDialogHarness)\n getCancelButton = this.locatorFor(PButtonHarness.with({ id: 'cancelButton' }))\n getSaveButton = this.locatorFor(PButtonHarness.with({ id: 'saveButton' }))\n getPicklist = this.locatorFor(PPicklistHarness)\n getSelectButtons = this.locatorForOptional('[name]')\n\n async getFrozenActionColumnSelectButton() {\n return await this.locatorForAll(`[name=\"frozen-action-column-select-button\"] .p-togglebutton`)()\n }\n\n async getActionColumnPositionSelectButtons() {\n return await this.locatorForAll(`[name=\"action-column-position-select-button\"] .p-togglebutton`)()\n }\n\n async openCustomGroupColumnSelectorDialog() {\n if (!(await (await this.getDialog()).isVisible())) {\n await (await this.getCustomGroupColumnSelectorButton()).click()\n } else {\n console.warn('Unable to open CustomGroupColumnSelectionDialog, because it is already open.')\n }\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PToggleButtonHarness } from '@onecx/angular-testing'\n\nexport class DataLayoutSelectionHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-layout-selection'\n\n getListLayoutSelectionToggleButton = this.locatorFor(\n PToggleButtonHarness.with({ onLabel: 'ocx-data-layout-selection-list' })\n )\n getGridLayoutSelectionToggleButton = this.locatorFor(\n PToggleButtonHarness.with({ onLabel: 'ocx-data-layout-selection-grid' })\n )\n getTableLayoutSelectionToggleButton = this.locatorFor(\n PToggleButtonHarness.with({ onLabel: 'ocx-data-layout-selection-table' })\n )\n\n async getCurrentLayout() {\n return await (await this.host()).getAttribute('ng-reflect-layout')\n }\n\n async selectListLayout() {\n await (await this.getListLayoutSelectionToggleButton()).click()\n }\n\n async selectGridLayout() {\n await (await this.getGridLayoutSelectionToggleButton()).click()\n }\n\n async selectTableLayout() {\n await (await this.getTableLayoutSelectionToggleButton()).click()\n }\n}\n","import { ContentContainerComponentHarness, HarnessLoader } from '@angular/cdk/testing'\nimport { MenuItemHarness } from '@onecx/angular-testing'\n\nexport class MoreActionsMenuButtonHarness extends ContentContainerComponentHarness {\n static hostSelector = '.more-actions-menu-button'\n\n async getHarnessLoaderForPMenuOverlay(): Promise<HarnessLoader | null> {\n return this.documentRootLocatorFactory().harnessLoaderForOptional('.p-menu-overlay')\n }\n\n async isOpen(): Promise<boolean> {\n return !!(await this.getHarnessLoaderForPMenuOverlay())\n }\n\n async open() {\n if (!(await this.isOpen())) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async close() {\n if (await this.isOpen()) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async getAllActionsMenuItems() {\n await this.open()\n if (await this.getHarnessLoaderForPMenuOverlay()) {\n return this.documentRootLocatorFactory().locatorForAll(MenuItemHarness)()\n }\n return []\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness } from '@onecx/angular-testing'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class DefaultGridItemHarness extends ComponentHarness {\n static hostSelector = '.data-grid-item'\n\n getMoreActionsButton = this.locatorFor(MoreActionsMenuButtonHarness)\n private getAllDivs = this.locatorForAll(DivHarness)\n private getGridImg = this.locatorFor('img')\n\n async getData() {\n const isDataGridItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((divHarness) => this.checkDivsHasClasses(divHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataGridItemsDiv[index])\n const getDivTexts: (string | null)[] = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n getDivTexts.unshift(await (await this.getGridImg()).getAttribute('src'))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { ButtonHarness, DivHarness } from '@onecx/angular-testing'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DefaultListItemHarness extends ComponentHarness {\n static hostSelector = '.data-list-items'\n\n getAllActionButtons = this.locatorForAll('button')\n getViewButton = this.locatorForOptional(ButtonHarness.with({ class: 'viewListItemButton' }))\n getEditButton = this.locatorForOptional(ButtonHarness.with({ class: 'editListItemButton' }))\n getDeleteButton = this.locatorForOptional(ButtonHarness.with({ class: 'deleteListItemButton' }))\n\n private getAllDivs = this.locatorForAll(DivHarness)\n\n async getData() {\n await waitForDeferredViewsToBeRendered(this)\n const isDataListItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((innerDivHarness) => this.checkDivsHasClasses(innerDivHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataListItemsDiv[index])\n const getDivTexts = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name-row')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ContentContainerComponentHarness, TestElement, parallel } from '@angular/cdk/testing'\nimport { PMenuHarness, PPaginatorHarness } from '@onecx/angular-testing'\nimport { DefaultGridItemHarness } from './default-grid-item.harness'\nimport { DefaultListItemHarness } from './default-list-item.harness'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DataListGridHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-list-grid'\n\n getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getMenuButton = this.locatorFor(`[name=\"data-grid-item-menu-button\"]`)\n getListOverflowMenuButton = this.locatorFor(`[name=\"data-list-overflow-item-menu-button\"]`)\n getListOverflowMenu = this.locatorForOptional(PMenuHarness)\n\n async getDefaultListItems() {\n await waitForDeferredViewsToBeRendered(this)\n return await this.locatorForAll(DefaultListItemHarness)()\n }\n\n async getActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden') {\n if (actionButtonType === 'list') {\n return await this.locatorForAll(`[name=\"data-list-action-button\"]`)()\n } else if (actionButtonType === 'grid-hidden') {\n return await this.documentRootLocatorFactory().locatorForAll(\n `[data-automationid=\"data-grid-action-button-hidden\"]`\n )()\n } else {\n return await this.documentRootLocatorFactory().locatorForAll(`[data-automationid=\"data-grid-action-button\"]`)()\n }\n }\n\n async getListOverflowMenuItems() {\n const menu = await this.getListOverflowMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async actionButtonIsDisabled(actionButton: TestElement, viewType: 'list' | 'grid'): Promise<boolean> {\n if (viewType === 'list') {\n return await actionButton.getProperty('disabled')\n } else {\n return await actionButton.hasClass('p-disabled')\n }\n }\n\n async hasAmountOfActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden', amount: number) {\n return (await this.getActionButtons(actionButtonType)).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(viewType: 'list' | 'grid', amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons(viewType)\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton, viewType)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n}\n","import {\n BaseHarnessFilters,\n ContentContainerComponentHarness,\n HarnessPredicate,\n TestElement,\n parallel,\n} from '@angular/cdk/testing'\nimport {\n TableHeaderColumnHarness,\n TableRowHarness,\n PPaginatorHarness,\n PTableCheckboxHarness,\n PMenuHarness,\n MenuItemHarness,\n} from '@onecx/angular-testing'\n\nexport interface DataTableHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class DataTableHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-table'\n\n static with(options: DataTableHarnessFilters): HarnessPredicate<DataTableHarness> {\n return new HarnessPredicate(DataTableHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n getHeaderColumns = this.locatorForAll(TableHeaderColumnHarness)\n getRows = this.locatorForAll(TableRowHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getOverflowMenu = this.locatorForOptional(PMenuHarness)\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async rowSelectionIsEnabled(): Promise<boolean> {\n const pTableCheckbox = await this.getHarnessesForCheckboxes('all')\n return pTableCheckbox.length > 0\n }\n\n async getHarnessesForCheckboxes(type: 'all' | 'checked' | 'unchecked'): Promise<PTableCheckboxHarness[]> {\n let checkBoxHarnesses: PTableCheckboxHarness[]\n if (type === 'checked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: true }))\n return checkBoxHarnesses\n }\n if (type === 'unchecked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: false }))\n return checkBoxHarnesses\n } else {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness)\n return checkBoxHarnesses\n }\n }\n\n async getActionColumnHeader(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-header-${position}\"]`)()\n }\n\n async getActionColumn(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-${position}\"]`)()\n }\n\n async getActionButtons() {\n return await this.locatorForAll(`[name=\"data-table-action-button\"]`)()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"data-table-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getOverflowMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getOverflowMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async actionButtonIsDisabled(actionButton: TestElement) {\n const isDisabled = await actionButton.getProperty('disabled')\n return isDisabled\n }\n\n async hasAmountOfActionButtons(amount: number) {\n return (await this.getActionButtons()).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons()\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n\n async columnIsFrozen(column: TestElement | null | undefined) {\n if (column === null || column === undefined) {\n throw new Error('Given column is null')\n }\n return await column.hasClass('p-datatable-frozen-column')\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataListGridHarness } from './data-list-grid.harness'\nimport { DataTableHarness } from './data-table.harness'\n\nexport class DataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-view'\n\n getDataTable = this.locatorForOptional(DataTableHarness)\n getDataListGrid = this.locatorForOptional(DataListGridHarness)\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PChartHarness, PSelectButtonHarness } from '@onecx/angular-testing'\n\nexport class DiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-diagram'\n\n getChart = this.locatorFor(PChartHarness)\n\n async getTotalNumberOfResults(): Promise<number | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"amountOfData\"]')())?.text().then((s) => Number(s))\n }\n\n async getSumLabel(): Promise<string | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"sumLabel\"]')())?.text()\n }\n\n async getDiagramTypeSelectButton() {\n return await this.locatorForOptional('p-selectbutton[name=\"diagram-type-select-button\"]')()\n }\n\n async getAllSelectionButtons() {\n return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons()\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataTableHarness } from './data-table.harness'\nimport { PButtonHarness, PChipHarness, SpanHarness } from '@onecx/angular-testing'\n\nexport class FilterViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-filter-view'\n\n getOverlayResetFiltersButton = this.documentRootLocatorFactory().locatorForOptional(\n PButtonHarness.with({ id: 'ocxFilterViewOverlayReset' })\n )\n getFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewManage' }))\n getChipsResetFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewReset' }))\n getChips = this.locatorForAll(PChipHarness)\n getNoFiltersMessage = this.locatorForOptional(SpanHarness.with({ id: 'ocxFilterViewNoFilters' }))\n\n async getDataTable() {\n return await this.documentRootLocatorFactory().locatorForOptional(\n DataTableHarness.with({ id: 'ocxFilterViewDataTable' })\n )()\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DiagramHarness } from './diagram.harness'\n\nexport class GroupByCountDiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-group-by-count-diagram'\n\n getDiagram = this.locatorFor(DiagramHarness)\n}","import { BaseHarnessFilters, ContentContainerComponentHarness } from '@angular/cdk/testing'\n\nexport interface SlotHarnessFilters extends BaseHarnessFilters {\n name?: string\n}\n\nexport class SlotHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-slot'\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness, PButtonHarness } from '@onecx/angular-testing'\nimport { PSelectHarness } from '@onecx/angular-testing'\nimport { DataLayoutSelectionHarness } from './data-layout-selection.harness'\nimport { DataViewHarness } from './data-view.harness'\nimport { SlotHarness } from './slot.harness'\nimport { CustomGroupColumnSelectorHarness } from './custom-group-column-selector.harness'\n\nexport class InteractiveDataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-interactive-data-view'\n\n async getHeaderStyleClasses() {\n const headerDiv = await this.locatorFor(DivHarness.with({ id: 'interactiveDataViewHeader' }))()\n const headerClassList = await headerDiv.getClassList()\n return headerClassList\n }\n\n async getContentStyleClasses() {\n const contentDiv = await this.locatorFor(DivHarness.with({ id: 'interactiveDataViewContent' }))()\n const contentClassList = await contentDiv.getClassList()\n return contentClassList\n }\n\n getDataLayoutSelection = this.locatorFor(DataLayoutSelectionHarness)\n getColumnGroupSelectionSelect = this.locatorForOptional(PSelectHarness.with({ id: 'columnGroupSelectionSelect' }))\n getCustomGroupColumnSelector = this.locatorForOptional(CustomGroupColumnSelectorHarness)\n getCustomGroupColumnSelectorSlot = this.locatorForOptional(SlotHarness)\n getDataListGridSortingSelect = this.locatorForOptional(PSelectHarness.with({ id: 'dataListGridSortingSelect' }))\n getDataListGridSortingButton = this.locatorForOptional(PButtonHarness.with({ id: 'dataListGridSortingButton' }))\n getDataView = this.locatorFor(DataViewHarness)\n}\n","import { ContentContainerComponentHarness } from \"@angular/cdk/testing\"\n\nexport class LifecycleHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-lifecycle'\n\n getSteps = this.locatorForAll('.p-timeline-event-content .card')\n getHighlightedSteps = this.locatorForAll('.p-timeline-event-content .card.bg-primary')\n}","import { BaseHarnessFilters, ComponentHarness, ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport {\n ListItemHarness,\n MenuItemHarness,\n PBreadcrumbHarness,\n PButtonHarness,\n PMenuHarness,\n} from '@onecx/angular-testing'\n\nexport class PageHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-page-header'\n\n getPageHeaderWrapperHarness = this.locatorForAll('[name=\"ocx-page-header-wrapper\"]')\n getBreadcrumb = this.locatorForOptional(PBreadcrumbHarness)\n getMenu = this.locatorForOptional(PMenuHarness)\n\n async getElementByTitle(title: string) {\n return await this.locatorForOptional(`[title=\"${title}\"]`)()\n }\n\n async getElementByAriaLabel(ariaLabel: string) {\n return await this.locatorForOptional(`[aria-label=\"${ariaLabel}\"]`)()\n }\n\n async getObjectInfos() {\n return await this.locatorForAll(ObjectDetailItemHarness)()\n }\n\n async getObjectInfoByLabel(objectInfolabel: string) {\n return await this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))()\n }\n\n async getInlineActionButtons() {\n const inlineActionButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-button' })\n )()\n const inlineActionIconButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-icon-button' })\n )()\n return inlineActionButtons.concat(inlineActionIconButtons)\n }\n\n async getInlineActionButtonByLabel(buttonLabel: string) {\n return await this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))()\n }\n\n async getInlineActionButtonByIcon(buttonIcon: string) {\n return await this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"ocx-page-header-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async getBreadcrumbItem(itemText: string): Promise<ListItemHarness | undefined | null> {\n const breadcrumb = await this.getBreadcrumb()\n return await breadcrumb?.getBreadcrumbItem(itemText)\n }\n\n async getHeaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-header')())?.text()\n }\n\n async getSubheaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-subheader')())?.text()\n }\n}\n\ninterface ObjectDetailItemHarnessFilters extends BaseHarnessFilters {\n label?: string\n}\n\nclass ObjectDetailItemHarness extends ContentContainerComponentHarness {\n static hostSelector = '.object-info'\n\n getLabelElement = this.locatorFor('[name=\"object-detail-label\"]')\n getValueElement = this.locatorForOptional('[name=\"object-detail-value\"]')\n getIconElement = this.locatorForOptional('[name=\"object-detail-icon\"]')\n\n static with(options: ObjectDetailItemHarnessFilters): HarnessPredicate<ObjectDetailItemHarness> {\n return new HarnessPredicate(ObjectDetailItemHarness, options).addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label)\n )\n }\n\n async getLabel() {\n return (await this.getLabelElement()).text()\n }\n\n async getValue() {\n return (await this.getValueElement())?.text()\n }\n\n async getValueStyles() {\n return (await this.getValueElement())?.getAttribute('class')\n }\n\n async getIcon() {\n return (await this.getIconElement())?.getAttribute('class')\n }\n\n async getLabelTooltipContent(): Promise<string | null> {\n return this.getTooltipFromElement(await this.getLabelElement())\n }\n\n async getValueTooltipContent(): Promise<string | null> {\n return this.getTooltipFromElement(\n await this.locatorForOptional('[name=\"object-detail-value\"] > span:first-of-type')()\n )\n }\n\n async getActionItemTooltipContent(): Promise<string | null> {\n return this.getTooltipFromElement(\n await this.locatorForOptional('[name=\"object-detail-value\"] p-button')()\n )\n }\n\n private async getTooltipFromElement(element: any): Promise<string | null> {\n if (!element) return null\n \n await element.hover()\n await this.forceStabilize()\n \n const rootLocator = this.documentRootLocatorFactory()\n const tooltipEl = await rootLocator.locatorForOptional('.p-tooltip .p-tooltip-text')()\n if (tooltipEl) {\n const text = await tooltipEl.text()\n await element.mouseAway()\n await this.forceStabilize()\n return text\n }\n \n return null\n }\n}","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PButtonHarness } from '@onecx/angular-testing'\nimport { PageHeaderHarness } from './page-header.harness'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class SearchHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-search-header'\n\n getPageHeader = this.locatorFor(PageHeaderHarness)\n getSearchButton = this.locatorFor(\n PButtonHarness.with({\n id: 'searchButton',\n })\n )\n\n getResetButton = this.locatorFor(\n PButtonHarness.with({\n id: 'resetButton',\n })\n )\n\n getSimpleAdvancedButton = this.locatorForOptional(\n PButtonHarness.with({\n id: 'simpleAdvancedButton',\n })\n )\n\n getMoreActionsMenuButton = this.locatorForOptional(MoreActionsMenuButtonHarness)\n\n async clickResetButton() {\n await (await this.getResetButton()).click()\n }\n\n async clickSearchButton() {\n await (await this.getSearchButton()).click()\n }\n\n async toggleSimpleAdvanced() {\n if (await this.getSimpleAdvancedButton()) {\n await (await this.getSimpleAdvancedButton())?.click()\n } else {\n console.warn('No SimpleAdvancedButton is being displayed to toggle, because no advanced form field is defined.')\n }\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class DialogMessageContentHarness extends ComponentHarness {\n static hostSelector = '.dialogMessageContent'\n\n private getMessageSpan = this.locatorFor('#dialogMessage')\n private getIcon = this.locatorForOptional('i')\n\n async getMessageContent(): Promise<string> {\n return await (await this.getMessageSpan()).text()\n }\n\n async getIconValue(): Promise<string | null | undefined> {\n return await (await this.getIcon())?.getAttribute('class')\n }\n}\n","import { ContentContainerComponentHarness } from '@onecx/angular-testing'\nimport { DialogMessageContentHarness } from './dialog-message-content.harness'\n\nexport class DialogContentHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-dialog-content'\n\n getDialogMessageContent = this.locatorForOptional(DialogMessageContentHarness)\n}\n","import { ContentContainerComponentHarness, PButtonDirectiveHarness } from '@onecx/angular-testing'\n\nexport class DialogFooterHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-dialog-footer'\n\n getPrimaryButton = this.locatorFor(PButtonDirectiveHarness.with({ id: 'buttonDialogPrimaryButton' }))\n getSecondaryButton = this.locatorForOptional(PButtonDirectiveHarness.with({ id: 'buttonDialogSecondaryButton' }))\n\n async clickPrimaryButton() {\n await (await this.getPrimaryButton()).click()\n }\n\n async clickSecondaryButton() {\n await (await this.getSecondaryButton())?.click()\n }\n\n async getPrimaryButtonLabel(): Promise<string | null> {\n return await (await this.getPrimaryButton()).getLabel()\n }\n\n async getPrimaryButtonIcon(): Promise<string | null> {\n return await (await this.getPrimaryButton()).getIcon()\n }\n\n async getSecondaryButtonLabel(): Promise<string | null | undefined> {\n return await (await this.getSecondaryButton())?.getLabel()\n }\n\n async getSecondaryButtonIcon(): Promise<string | null | undefined> {\n return await (await this.getSecondaryButton())?.getIcon()\n }\n\n async getPrimaryButtonDisabled(): Promise<boolean> {\n return await (await this.getPrimaryButton()).getDisabled()\n }\n\n async getSecondaryButtonDisabled(): Promise<boolean | undefined> {\n return await (await this.getSecondaryButton())?.getDisabled()\n }\n}\n","import { ContentContainerComponentHarness } from '@onecx/angular-testing'\nimport { DialogContentHarness } from './dialog-content.harness'\nimport { DialogFooterHarness } from './dialog-footer.harness'\n\nexport class DialogInlineHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-dialog-inline'\n\n getDialogContent = this.locatorFor(DialogContentHarness)\n getDialogFooter = this.locatorFor(DialogFooterHarness)\n}\n","import { ensureIntersectionObserverMockExists, ensureOriginMockExists } from '@onecx/angular-testing'\n\nexport * from './column-group-selection.harness'\nexport * from './content-container.harness'\nexport * from './content.harness'\nexport * from './custom-group-column-selector.harness'\nexport * from './data-layout-selection.harness'\nexport * from './data-list-grid.harness'\nexport * from './data-table.harness'\nexport * from './data-view.harness'\nexport * from './default-grid-item.harness'\nexport * from './default-list-item.harness'\nexport * from './diagram.harness'\nexport * from './filter-view.harness'\nexport * from './group-by-count-diagram.harness'\nexport * from './interactive-data-view.harness'\nexport * from './lifecycle.harness'\nexport * from './more-actions-menu-button.harness'\nexport * from './page-header.harness'\nexport * from './slot.harness'\nexport * from './search-header.harness'\nexport * from '../testing/dialog-content.harness'\nexport * from '../testing/dialog-footer.harness'\nexport * from '../testing/dialog-inline.harness'\nexport * from '../testing/dialog-message-content.harness'\n\nexport * from '@angular/cdk/testing'\nexport * from '@angular/cdk/testing/testbed'\nexport * from '@onecx/angular-testing'\n\nensureIntersectionObserverMockExists()\nensureOriginMockExists()\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ContentContainerComponentHarness"],"mappings":"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"}
1
+ {"version":3,"file":"onecx-angular-accelerator-testing.mjs","sources":["../../../../libs/angular-accelerator/testing/column-group-selection.harness.ts","../../../../libs/angular-accelerator/testing/content-container.harness.ts","../../../../libs/angular-accelerator/testing/content.harness.ts","../../../../libs/angular-accelerator/testing/custom-group-column-selector.harness.ts","../../../../libs/angular-accelerator/testing/data-layout-selection.harness.ts","../../../../libs/angular-accelerator/testing/more-actions-menu-button.harness.ts","../../../../libs/angular-accelerator/testing/default-grid-item.harness.ts","../../../../libs/angular-accelerator/testing/default-list-item.harness.ts","../../../../libs/angular-accelerator/testing/data-list-grid.harness.ts","../../../../libs/angular-accelerator/testing/data-table.harness.ts","../../../../libs/angular-accelerator/testing/data-view.harness.ts","../../../../libs/angular-accelerator/testing/diagram.harness.ts","../../../../libs/angular-accelerator/testing/filter-view.harness.ts","../../../../libs/angular-accelerator/testing/group-by-count-diagram.harness.ts","../../../../libs/angular-accelerator/testing/slot.harness.ts","../../../../libs/angular-accelerator/testing/interactive-data-view.harness.ts","../../../../libs/angular-accelerator/testing/lifecycle.harness.ts","../../../../libs/angular-accelerator/testing/page-header.harness.ts","../../../../libs/angular-accelerator/testing/search-header.harness.ts","../../../../libs/angular-accelerator/testing/dialog-message-content.harness.ts","../../../../libs/angular-accelerator/testing/dialog-content.harness.ts","../../../../libs/angular-accelerator/testing/dialog-footer.harness.ts","../../../../libs/angular-accelerator/testing/dialog-inline.harness.ts","../../../../libs/angular-accelerator/testing/index.ts","../../../../libs/angular-accelerator/testing/onecx-angular-accelerator-testing.ts"],"sourcesContent":["import { ComponentHarness } from '@angular/cdk/testing'\nimport { PSelectHarness } from '@onecx/angular-testing'\n\nexport class ColumnGroupSelectionHarness extends ComponentHarness {\n static hostSelector = 'ocx-column-group-selection'\n\n getPSelect = this.locatorFor(PSelectHarness)\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness } from '@onecx/angular-testing'\n\nexport class OcxContentContainerHarness extends ComponentHarness {\n static hostSelector = 'ocx-content-container'\n\n async getLayoutClasses() {\n const div = await this.locatorFor(DivHarness)()\n const actualClassList = await div.getClassList()\n\n return actualClassList\n }\n\n async getLayout(): Promise<'horizontal' | 'vertical'> {\n const layoutClassses = await this.getLayoutClasses()\n return layoutClassses.find((c) => c.endsWith(':flex-row')) ? 'horizontal' : 'vertical'\n }\n\n async getBreakpoint(): Promise<'sm' | 'md' | 'lg' | 'xl' | undefined> {\n const layoutClassses = await this.getLayoutClasses()\n const layoutClass = layoutClassses.find((c) => c.endsWith(':flex-row'))\n return layoutClass?.split(':')[0] as 'sm' | 'md' | 'lg' | 'xl' | undefined\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness, PHarness } from '@onecx/angular-testing'\n\nexport class OcxContentHarness extends ComponentHarness {\n static hostSelector = 'ocx-content'\n\n async getContentClasses() {\n const div = await this.locatorFor(DivHarness)()\n const actualClassList = await div.getClassList()\n\n return actualClassList\n }\n\n async getTitleClasses(titleElementId: string) {\n const p = await this.getTitleHarness(titleElementId)\n if (p) {\n const actualClassList = await p.getClassList()\n return actualClassList\n }\n return null\n }\n\n async getTitle(titleElementId: string) {\n const p = await this.getTitleHarness(titleElementId)\n if (p) {\n const titleContent = await p.getText()\n return titleContent\n }\n return null\n }\n\n async getTitleHarness(titleElementId: string) {\n const pHarness = await this.locatorForOptional(PHarness.with({ id: titleElementId }))()\n return pHarness\n }\n\n async hasTitle(titleElementId: string): Promise<boolean> {\n const title = await this.getTitleHarness(titleElementId)\n return !!title\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PDialogHarness, PPicklistHarness, PButtonHarness } from '@onecx/angular-testing'\n\nexport class CustomGroupColumnSelectorHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-custom-group-column-selector'\n\n getCustomGroupColumnSelectorButton = this.locatorFor(\n PButtonHarness.with({\n id: 'customGroupColumnSelectorButton',\n })\n )\n\n getDialog = this.locatorFor(PDialogHarness)\n getCancelButton = this.locatorFor(PButtonHarness.with({ id: 'cancelButton' }))\n getSaveButton = this.locatorFor(PButtonHarness.with({ id: 'saveButton' }))\n getPicklist = this.locatorFor(PPicklistHarness)\n getSelectButtons = this.locatorForOptional('[name]')\n\n async getFrozenActionColumnSelectButton() {\n return await this.locatorForAll(`[name=\"frozen-action-column-select-button\"] .p-togglebutton`)()\n }\n\n async getActionColumnPositionSelectButtons() {\n return await this.locatorForAll(`[name=\"action-column-position-select-button\"] .p-togglebutton`)()\n }\n\n async openCustomGroupColumnSelectorDialog() {\n if (!(await (await this.getDialog()).isVisible())) {\n await (await this.getCustomGroupColumnSelectorButton()).click()\n } else {\n console.warn('Unable to open CustomGroupColumnSelectionDialog, because it is already open.')\n }\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PToggleButtonHarness } from '@onecx/angular-testing'\n\nexport class DataLayoutSelectionHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-layout-selection'\n\n getListLayoutSelectionToggleButton = this.locatorFor(\n PToggleButtonHarness.with({ onLabel: 'ocx-data-layout-selection-list' })\n )\n getGridLayoutSelectionToggleButton = this.locatorFor(\n PToggleButtonHarness.with({ onLabel: 'ocx-data-layout-selection-grid' })\n )\n getTableLayoutSelectionToggleButton = this.locatorFor(\n PToggleButtonHarness.with({ onLabel: 'ocx-data-layout-selection-table' })\n )\n\n async getCurrentLayout() {\n return await (await this.host()).getAttribute('ng-reflect-layout')\n }\n\n async selectListLayout() {\n await (await this.getListLayoutSelectionToggleButton()).click()\n }\n\n async selectGridLayout() {\n await (await this.getGridLayoutSelectionToggleButton()).click()\n }\n\n async selectTableLayout() {\n await (await this.getTableLayoutSelectionToggleButton()).click()\n }\n}\n","import { ContentContainerComponentHarness, HarnessLoader } from '@angular/cdk/testing'\nimport { MenuItemHarness } from '@onecx/angular-testing'\n\nexport class MoreActionsMenuButtonHarness extends ContentContainerComponentHarness {\n static hostSelector = '.more-actions-menu-button'\n\n async getHarnessLoaderForPMenuOverlay(): Promise<HarnessLoader | null> {\n return this.documentRootLocatorFactory().harnessLoaderForOptional('.p-menu-overlay')\n }\n\n async isOpen(): Promise<boolean> {\n return !!(await this.getHarnessLoaderForPMenuOverlay())\n }\n\n async open() {\n if (!(await this.isOpen())) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async close() {\n if (await this.isOpen()) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async getAllActionsMenuItems() {\n await this.open()\n if (await this.getHarnessLoaderForPMenuOverlay()) {\n return this.documentRootLocatorFactory().locatorForAll(MenuItemHarness)()\n }\n return []\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness } from '@onecx/angular-testing'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class DefaultGridItemHarness extends ComponentHarness {\n static hostSelector = '.data-grid-item'\n\n getMoreActionsButton = this.locatorFor(MoreActionsMenuButtonHarness)\n private getAllDivs = this.locatorForAll(DivHarness)\n private getGridImg = this.locatorFor('img')\n\n async getData() {\n const isDataGridItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((divHarness) => this.checkDivsHasClasses(divHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataGridItemsDiv[index])\n const getDivTexts: (string | null)[] = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n getDivTexts.unshift(await (await this.getGridImg()).getAttribute('src'))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { ButtonHarness, DivHarness } from '@onecx/angular-testing'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DefaultListItemHarness extends ComponentHarness {\n static hostSelector = '.data-list-items'\n\n getAllActionButtons = this.locatorForAll('button')\n getViewButton = this.locatorForOptional(ButtonHarness.with({ class: 'viewListItemButton' }))\n getEditButton = this.locatorForOptional(ButtonHarness.with({ class: 'editListItemButton' }))\n getDeleteButton = this.locatorForOptional(ButtonHarness.with({ class: 'deleteListItemButton' }))\n\n private getAllDivs = this.locatorForAll(DivHarness)\n\n async getData() {\n await waitForDeferredViewsToBeRendered(this)\n const isDataListItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((innerDivHarness) => this.checkDivsHasClasses(innerDivHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataListItemsDiv[index])\n const getDivTexts = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name-row')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ContentContainerComponentHarness, TestElement, parallel } from '@angular/cdk/testing'\nimport { PMenuHarness, PPaginatorHarness } from '@onecx/angular-testing'\nimport { DefaultGridItemHarness } from './default-grid-item.harness'\nimport { DefaultListItemHarness } from './default-list-item.harness'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DataListGridHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-list-grid'\n\n getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getMenuButton = this.locatorFor(`[name=\"data-grid-item-menu-button\"]`)\n getListOverflowMenuButton = this.locatorFor(`[name=\"data-list-overflow-item-menu-button\"]`)\n getListOverflowMenu = this.locatorForOptional(PMenuHarness)\n\n async getDefaultListItems() {\n await waitForDeferredViewsToBeRendered(this)\n return await this.locatorForAll(DefaultListItemHarness)()\n }\n\n async getActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden') {\n if (actionButtonType === 'list') {\n return await this.locatorForAll(`[name=\"data-list-action-button\"]`)()\n } else if (actionButtonType === 'grid-hidden') {\n return await this.documentRootLocatorFactory().locatorForAll(\n `[data-automationid=\"data-grid-action-button-hidden\"]`\n )()\n } else {\n return await this.documentRootLocatorFactory().locatorForAll(`[data-automationid=\"data-grid-action-button\"]`)()\n }\n }\n\n async getListOverflowMenuItems() {\n const menu = await this.getListOverflowMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async actionButtonIsDisabled(actionButton: TestElement, viewType: 'list' | 'grid'): Promise<boolean> {\n if (viewType === 'list') {\n return await actionButton.getProperty('disabled')\n } else {\n return await actionButton.hasClass('p-disabled')\n }\n }\n\n async hasAmountOfActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden', amount: number) {\n return (await this.getActionButtons(actionButtonType)).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(viewType: 'list' | 'grid', amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons(viewType)\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton, viewType)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n}\n","import {\n BaseHarnessFilters,\n ContentContainerComponentHarness,\n HarnessPredicate,\n TestElement,\n parallel,\n} from '@angular/cdk/testing'\nimport {\n TableHeaderColumnHarness,\n TableRowHarness,\n PPaginatorHarness,\n PTableCheckboxHarness,\n PMenuHarness,\n MenuItemHarness,\n} from '@onecx/angular-testing'\n\nexport interface DataTableHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class DataTableHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-table'\n\n static with(options: DataTableHarnessFilters): HarnessPredicate<DataTableHarness> {\n return new HarnessPredicate(DataTableHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n getHeaderColumns = this.locatorForAll(TableHeaderColumnHarness)\n getRows = this.locatorForAll(TableRowHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getOverflowMenu = this.locatorForOptional(PMenuHarness)\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async rowSelectionIsEnabled(): Promise<boolean> {\n const pTableCheckbox = await this.getHarnessesForCheckboxes('all')\n return pTableCheckbox.length > 0\n }\n\n async getHarnessesForCheckboxes(type: 'all' | 'checked' | 'unchecked'): Promise<PTableCheckboxHarness[]> {\n let checkBoxHarnesses: PTableCheckboxHarness[]\n if (type === 'checked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: true }))\n return checkBoxHarnesses\n }\n if (type === 'unchecked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: false }))\n return checkBoxHarnesses\n } else {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness)\n return checkBoxHarnesses\n }\n }\n\n async getActionColumnHeader(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-header-${position}\"]`)()\n }\n\n async getActionColumn(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-${position}\"]`)()\n }\n\n async getActionButtons() {\n return await this.locatorForAll(`[name=\"data-table-action-button\"]`)()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"data-table-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getOverflowMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getOverflowMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async actionButtonIsDisabled(actionButton: TestElement) {\n const isDisabled = await actionButton.getProperty('disabled')\n return isDisabled\n }\n\n async hasAmountOfActionButtons(amount: number) {\n return (await this.getActionButtons()).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons()\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n\n async columnIsFrozen(column: TestElement | null | undefined) {\n if (column === null || column === undefined) {\n throw new Error('Given column is null')\n }\n return await column.hasClass('p-datatable-frozen-column')\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataListGridHarness } from './data-list-grid.harness'\nimport { DataTableHarness } from './data-table.harness'\n\nexport class DataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-view'\n\n getDataTable = this.locatorForOptional(DataTableHarness)\n getDataListGrid = this.locatorForOptional(DataListGridHarness)\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PChartHarness, PSelectButtonHarness } from '@onecx/angular-testing'\n\nexport class DiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-diagram'\n\n getChart = this.locatorFor(PChartHarness)\n\n async getTotalNumberOfResults(): Promise<number | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"amountOfData\"]')())?.text().then((s) => Number(s))\n }\n\n async getSumLabel(): Promise<string | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"sumLabel\"]')())?.text()\n }\n\n async getDiagramTypeSelectButton() {\n return await this.locatorForOptional('p-selectbutton[name=\"diagram-type-select-button\"]')()\n }\n\n async getCanvasElement() {\n return await this.locatorForOptional('p-chart canvas')()\n }\n\n async getAllSelectionButtons() {\n return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons()\n }\n\n async getCanvasAriaLabel(): Promise<string | null> {\n const canvas = await this.getCanvasElement()\n return canvas ? canvas.getAttribute('aria-label') : null\n }\n}","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataTableHarness } from './data-table.harness'\nimport { PButtonHarness, PChipHarness, SpanHarness } from '@onecx/angular-testing'\n\nexport class FilterViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-filter-view'\n\n getOverlayResetFiltersButton = this.documentRootLocatorFactory().locatorForOptional(\n PButtonHarness.with({ id: 'ocxFilterViewOverlayReset' })\n )\n getFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewManage' }))\n getChipsResetFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewReset' }))\n getChips = this.locatorForAll(PChipHarness)\n getNoFiltersMessage = this.locatorForOptional(SpanHarness.with({ id: 'ocxFilterViewNoFilters' }))\n\n async getDataTable() {\n return await this.documentRootLocatorFactory().locatorForOptional(\n DataTableHarness.with({ id: 'ocxFilterViewDataTable' })\n )()\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DiagramHarness } from './diagram.harness'\n\nexport class GroupByCountDiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-group-by-count-diagram'\n\n getDiagram = this.locatorFor(DiagramHarness)\n}","import { BaseHarnessFilters, ContentContainerComponentHarness } from '@angular/cdk/testing'\n\nexport interface SlotHarnessFilters extends BaseHarnessFilters {\n name?: string\n}\n\nexport class SlotHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-slot'\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness, PButtonHarness } from '@onecx/angular-testing'\nimport { PSelectHarness } from '@onecx/angular-testing'\nimport { DataLayoutSelectionHarness } from './data-layout-selection.harness'\nimport { DataViewHarness } from './data-view.harness'\nimport { SlotHarness } from './slot.harness'\nimport { CustomGroupColumnSelectorHarness } from './custom-group-column-selector.harness'\n\nexport class InteractiveDataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-interactive-data-view'\n\n async getHeaderStyleClasses() {\n const headerDiv = await this.locatorFor(DivHarness.with({ id: 'interactiveDataViewHeader' }))()\n const headerClassList = await headerDiv.getClassList()\n return headerClassList\n }\n\n async getContentStyleClasses() {\n const contentDiv = await this.locatorFor(DivHarness.with({ id: 'interactiveDataViewContent' }))()\n const contentClassList = await contentDiv.getClassList()\n return contentClassList\n }\n\n getDataLayoutSelection = this.locatorFor(DataLayoutSelectionHarness)\n getColumnGroupSelectionSelect = this.locatorForOptional(PSelectHarness.with({ id: 'columnGroupSelectionSelect' }))\n getCustomGroupColumnSelector = this.locatorForOptional(CustomGroupColumnSelectorHarness)\n getCustomGroupColumnSelectorSlot = this.locatorForOptional(SlotHarness)\n getDataListGridSortingSelect = this.locatorForOptional(PSelectHarness.with({ id: 'dataListGridSortingSelect' }))\n getDataListGridSortingButton = this.locatorForOptional(PButtonHarness.with({ id: 'dataListGridSortingButton' }))\n getDataView = this.locatorFor(DataViewHarness)\n}\n","import { ContentContainerComponentHarness } from \"@angular/cdk/testing\"\n\nexport class LifecycleHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-lifecycle'\n\n getSteps = this.locatorForAll('.p-timeline-event-content .card')\n getHighlightedSteps = this.locatorForAll('.p-timeline-event-content .card.bg-primary')\n}","import { BaseHarnessFilters, ComponentHarness, ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport {\n ListItemHarness,\n MenuItemHarness,\n PBreadcrumbHarness,\n PButtonHarness,\n PMenuHarness,\n} from '@onecx/angular-testing'\n\nexport class PageHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-page-header'\n\n getPageHeaderWrapperHarness = this.locatorForAll('[name=\"ocx-page-header-wrapper\"]')\n getBreadcrumb = this.locatorForOptional(PBreadcrumbHarness)\n getMenu = this.locatorForOptional(PMenuHarness)\n\n async getElementByTitle(title: string) {\n return await this.locatorForOptional(`[title=\"${title}\"]`)()\n }\n\n async getElementByAriaLabel(ariaLabel: string) {\n return await this.locatorForOptional(`[aria-label=\"${ariaLabel}\"]`)()\n }\n\n async getObjectInfos() {\n return await this.locatorForAll(ObjectDetailItemHarness)()\n }\n\n async getObjectInfoByLabel(objectInfolabel: string) {\n return await this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))()\n }\n\n async getInlineActionButtons() {\n const inlineActionButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-button' })\n )()\n const inlineActionIconButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-icon-button' })\n )()\n return inlineActionButtons.concat(inlineActionIconButtons)\n }\n\n async getInlineActionButtonByLabel(buttonLabel: string) {\n return await this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))()\n }\n\n async getInlineActionButtonByIcon(buttonIcon: string) {\n return await this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"ocx-page-header-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async getBreadcrumbItem(itemText: string): Promise<ListItemHarness | undefined | null> {\n const breadcrumb = await this.getBreadcrumb()\n return await breadcrumb?.getBreadcrumbItem(itemText)\n }\n\n async getHeaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-header')())?.text()\n }\n\n async getSubheaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-subheader')())?.text()\n }\n}\n\ninterface ObjectDetailItemHarnessFilters extends BaseHarnessFilters {\n label?: string\n}\n\nclass ObjectDetailItemHarness extends ContentContainerComponentHarness {\n static hostSelector = '.object-info'\n\n getLabelElement = this.locatorFor('[name=\"object-detail-label\"]')\n getValueElement = this.locatorForOptional('[name=\"object-detail-value\"]')\n getIconElement = this.locatorForOptional('[name=\"object-detail-icon\"]')\n\n static with(options: ObjectDetailItemHarnessFilters): HarnessPredicate<ObjectDetailItemHarness> {\n return new HarnessPredicate(ObjectDetailItemHarness, options).addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label)\n )\n }\n\n async getLabel() {\n return (await this.getLabelElement()).text()\n }\n\n async getValue() {\n return (await this.getValueElement())?.text()\n }\n\n async getValueStyles() {\n return (await this.getValueElement())?.getAttribute('class')\n }\n\n async getIcon() {\n return (await this.getIconElement())?.getAttribute('class')\n }\n\n async getLabelTooltipContent(): Promise<string | null> {\n return this.getTooltipFromElement(await this.getLabelElement())\n }\n\n async getValueTooltipContent(): Promise<string | null> {\n return this.getTooltipFromElement(\n await this.locatorForOptional('[name=\"object-detail-value\"] > span:first-of-type')()\n )\n }\n\n async getActionItemTooltipContent(): Promise<string | null> {\n return this.getTooltipFromElement(\n await this.locatorForOptional('[name=\"object-detail-value\"] p-button')()\n )\n }\n\n private async getTooltipFromElement(element: any): Promise<string | null> {\n if (!element) return null\n \n await element.hover()\n await this.forceStabilize()\n \n const rootLocator = this.documentRootLocatorFactory()\n const tooltipEl = await rootLocator.locatorForOptional('.p-tooltip .p-tooltip-text')()\n if (tooltipEl) {\n const text = await tooltipEl.text()\n await element.mouseAway()\n await this.forceStabilize()\n return text\n }\n \n return null\n }\n}","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PButtonHarness } from '@onecx/angular-testing'\nimport { PageHeaderHarness } from './page-header.harness'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class SearchHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-search-header'\n\n getPageHeader = this.locatorFor(PageHeaderHarness)\n getSearchButton = this.locatorFor(\n PButtonHarness.with({\n id: 'searchButton',\n })\n )\n\n getResetButton = this.locatorFor(\n PButtonHarness.with({\n id: 'resetButton',\n })\n )\n\n getSimpleAdvancedButton = this.locatorForOptional(\n PButtonHarness.with({\n id: 'simpleAdvancedButton',\n })\n )\n\n getMoreActionsMenuButton = this.locatorForOptional(MoreActionsMenuButtonHarness)\n\n async clickResetButton() {\n await (await this.getResetButton()).click()\n }\n\n async clickSearchButton() {\n await (await this.getSearchButton()).click()\n }\n\n async toggleSimpleAdvanced() {\n if (await this.getSimpleAdvancedButton()) {\n await (await this.getSimpleAdvancedButton())?.click()\n } else {\n console.warn('No SimpleAdvancedButton is being displayed to toggle, because no advanced form field is defined.')\n }\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class DialogMessageContentHarness extends ComponentHarness {\n static hostSelector = '.dialogMessageContent'\n\n private getMessageSpan = this.locatorFor('#dialogMessage')\n private getIcon = this.locatorForOptional('i')\n\n async getMessageContent(): Promise<string> {\n return await (await this.getMessageSpan()).text()\n }\n\n async getIconValue(): Promise<string | null | undefined> {\n return await (await this.getIcon())?.getAttribute('class')\n }\n}\n","import { ContentContainerComponentHarness } from '@onecx/angular-testing'\nimport { DialogMessageContentHarness } from './dialog-message-content.harness'\n\nexport class DialogContentHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-dialog-content'\n\n getDialogMessageContent = this.locatorForOptional(DialogMessageContentHarness)\n}\n","import { ContentContainerComponentHarness, PButtonDirectiveHarness } from '@onecx/angular-testing'\n\nexport class DialogFooterHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-dialog-footer'\n\n getPrimaryButton = this.locatorFor(PButtonDirectiveHarness.with({ id: 'buttonDialogPrimaryButton' }))\n getSecondaryButton = this.locatorForOptional(PButtonDirectiveHarness.with({ id: 'buttonDialogSecondaryButton' }))\n\n async clickPrimaryButton() {\n await (await this.getPrimaryButton()).click()\n }\n\n async clickSecondaryButton() {\n await (await this.getSecondaryButton())?.click()\n }\n\n async getPrimaryButtonLabel(): Promise<string | null> {\n return await (await this.getPrimaryButton()).getLabel()\n }\n\n async getPrimaryButtonIcon(): Promise<string | null> {\n return await (await this.getPrimaryButton()).getIcon()\n }\n\n async getSecondaryButtonLabel(): Promise<string | null | undefined> {\n return await (await this.getSecondaryButton())?.getLabel()\n }\n\n async getSecondaryButtonIcon(): Promise<string | null | undefined> {\n return await (await this.getSecondaryButton())?.getIcon()\n }\n\n async getPrimaryButtonDisabled(): Promise<boolean> {\n return await (await this.getPrimaryButton()).getDisabled()\n }\n\n async getSecondaryButtonDisabled(): Promise<boolean | undefined> {\n return await (await this.getSecondaryButton())?.getDisabled()\n }\n}\n","import { ContentContainerComponentHarness } from '@onecx/angular-testing'\nimport { DialogContentHarness } from './dialog-content.harness'\nimport { DialogFooterHarness } from './dialog-footer.harness'\n\nexport class DialogInlineHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-dialog-inline'\n\n getDialogContent = this.locatorFor(DialogContentHarness)\n getDialogFooter = this.locatorFor(DialogFooterHarness)\n}\n","import { ensureIntersectionObserverMockExists, ensureOriginMockExists } from '@onecx/angular-testing'\n\nexport * from './column-group-selection.harness'\nexport * from './content-container.harness'\nexport * from './content.harness'\nexport * from './custom-group-column-selector.harness'\nexport * from './data-layout-selection.harness'\nexport * from './data-list-grid.harness'\nexport * from './data-table.harness'\nexport * from './data-view.harness'\nexport * from './default-grid-item.harness'\nexport * from './default-list-item.harness'\nexport * from './diagram.harness'\nexport * from './filter-view.harness'\nexport * from './group-by-count-diagram.harness'\nexport * from './interactive-data-view.harness'\nexport * from './lifecycle.harness'\nexport * from './more-actions-menu-button.harness'\nexport * from './page-header.harness'\nexport * from './slot.harness'\nexport * from './search-header.harness'\nexport * from '../testing/dialog-content.harness'\nexport * from '../testing/dialog-footer.harness'\nexport * from '../testing/dialog-inline.harness'\nexport * from '../testing/dialog-message-content.harness'\n\nexport * from '@angular/cdk/testing'\nexport * from '@angular/cdk/testing/testbed'\nexport * from '@onecx/angular-testing'\n\nensureIntersectionObserverMockExists()\nensureOriginMockExists()\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ContentContainerComponentHarness"],"mappings":"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"}
@@ -4424,16 +4424,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
4424
4424
  class GroupByCountDiagramComponent {
4425
4425
  constructor() {
4426
4426
  this.translateService = inject(TranslateService);
4427
+ this._data$ = new BehaviorSubject([]);
4427
4428
  this.sumKey = 'SEARCH.SUMMARY_TITLE';
4428
4429
  this.diagramType = "PIE" /* DiagramType.PIE */;
4429
4430
  /**
4430
4431
  * This property determines if diagram should generate the colors for the data that does not have any set.
4431
4432
  *
4432
- * Setting this property to false will result in using the provided colors only if every data item has one. In the scenario where at least one item does not have a color set, diagram will generate all colors.
4433
+ * Setting this property to false will result in using the provided colors only if every data item has one.
4434
+ * In the scenario where at least one item does not have a color set, diagram will generate all colors.
4433
4435
  */
4434
4436
  this.fillMissingColors = true;
4435
4437
  this.supportedDiagramTypes = [];
4436
- this._data$ = new BehaviorSubject([]);
4438
+ this._allLabelKeys$ = new BehaviorSubject([]);
4439
+ this._showAllLabels$ = new BehaviorSubject(false);
4437
4440
  this._columnType$ = new BehaviorSubject(ColumnType.STRING);
4438
4441
  this._columnField$ = new BehaviorSubject('');
4439
4442
  this._colors$ = new BehaviorSubject({});
@@ -4441,6 +4444,18 @@ class GroupByCountDiagramComponent {
4441
4444
  this.diagramTypeChanged = new EventEmitter();
4442
4445
  this.componentStateChanged = new EventEmitter();
4443
4446
  }
4447
+ get allLabelKeys() {
4448
+ return this._allLabelKeys$.getValue();
4449
+ }
4450
+ set allLabelKeys(value) {
4451
+ this._allLabelKeys$.next(value);
4452
+ }
4453
+ get showAllLabels() {
4454
+ return this._showAllLabels$.getValue();
4455
+ }
4456
+ set showAllLabels(value) {
4457
+ this._showAllLabels$.next(value);
4458
+ }
4444
4459
  get data() {
4445
4460
  return this._data$.getValue();
4446
4461
  }
@@ -4473,13 +4488,39 @@ class GroupByCountDiagramComponent {
4473
4488
  this._colors$.next(value);
4474
4489
  }
4475
4490
  ngOnInit() {
4476
- this.diagramData$ = combineLatest([this._data$, this._columnField$, this._columnType$, this._colors$]).pipe(mergeMap(([data, columnField, columnType, colors]) => {
4491
+ this.diagramData$ = combineLatest([
4492
+ this._data$,
4493
+ this._columnField$,
4494
+ this._columnType$,
4495
+ this._colors$,
4496
+ this._allLabelKeys$,
4497
+ this._showAllLabels$,
4498
+ ]).pipe(mergeMap(([data, columnField, columnType, colors, allLabelKeys, showAllLabels]) => {
4477
4499
  const columnData = data.map((d) => ObjectUtils.resolveFieldData(d, columnField));
4478
- const occurrences = columnData.reduce((acc, current) => {
4479
- return acc.some((e) => e.label === current)
4480
- ? (acc.find((e) => e.label === current).value++, acc)
4481
- : [...acc, { label: current, value: 1, backgroundColor: colors[current.toString()] }];
4482
- }, []);
4500
+ let occurrences = [];
4501
+ if (showAllLabels && allLabelKeys.length > 0) {
4502
+ occurrences = allLabelKeys.map((label) => ({
4503
+ label: label,
4504
+ value: 0,
4505
+ backgroundColor: colors[label],
4506
+ }));
4507
+ columnData.forEach((current) => {
4508
+ const foundColumn = occurrences.find((e) => e.label === current);
4509
+ if (foundColumn) {
4510
+ foundColumn.value++;
4511
+ }
4512
+ else {
4513
+ occurrences.push({ label: current, value: 1, backgroundColor: colors[current.toString()] });
4514
+ }
4515
+ });
4516
+ }
4517
+ else {
4518
+ occurrences = columnData.reduce((acc, current) => {
4519
+ return acc.some((e) => e.label === current)
4520
+ ? (acc.find((e) => e.label === current).value++, acc)
4521
+ : [...acc, { label: current, value: 1, backgroundColor: colors[current.toString()] }];
4522
+ }, []);
4523
+ }
4483
4524
  if (columnType === ColumnType.TRANSLATION_KEY && occurrences.length > 0) {
4484
4525
  return this.translateService.get(occurrences.map((o) => o.label)).pipe(map((translations) => occurrences.map((o) => ({
4485
4526
  label: translations[o.label],
@@ -4487,9 +4528,7 @@ class GroupByCountDiagramComponent {
4487
4528
  backgroundColor: o.backgroundColor,
4488
4529
  }))));
4489
4530
  }
4490
- else {
4491
- return of(occurrences);
4492
- }
4531
+ return of(occurrences);
4493
4532
  }));
4494
4533
  }
4495
4534
  dataClicked(event) {
@@ -4503,7 +4542,7 @@ class GroupByCountDiagramComponent {
4503
4542
  });
4504
4543
  }
4505
4544
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GroupByCountDiagramComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4506
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GroupByCountDiagramComponent, isStandalone: false, selector: "ocx-group-by-count-diagram", inputs: { sumKey: "sumKey", diagramType: "diagramType", fillMissingColors: "fillMissingColors", supportedDiagramTypes: "supportedDiagramTypes", data: "data", columnType: "columnType", columnField: "columnField", column: "column", colors: "colors" }, outputs: { dataSelected: "dataSelected", diagramTypeChanged: "diagramTypeChanged", componentStateChanged: "componentStateChanged" }, ngImport: i0, template: "<ocx-diagram\n [data]=\"(diagramData$ | async) || []\"\n [fillMissingColors]=\"fillMissingColors\"\n [sumKey]=\"sumKey\"\n [diagramType]=\"diagramType\"\n (onDataSelect)=\"dataClicked($event)\"\n [supportedDiagramTypes]=\"supportedDiagramTypes\"\n (diagramTypeChanged)=\"onDiagramTypeChanged($event)\"\n></ocx-diagram>\n", dependencies: [{ kind: "component", type: DiagramComponent, selector: "ocx-diagram", inputs: ["data", "sumKey", "fillMissingColors", "diagramType", "supportedDiagramTypes"], outputs: ["dataSelected", "diagramTypeChanged", "componentStateChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
4545
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GroupByCountDiagramComponent, isStandalone: false, selector: "ocx-group-by-count-diagram", inputs: { sumKey: "sumKey", diagramType: "diagramType", fillMissingColors: "fillMissingColors", supportedDiagramTypes: "supportedDiagramTypes", allLabelKeys: "allLabelKeys", showAllLabels: "showAllLabels", data: "data", columnType: "columnType", columnField: "columnField", column: "column", colors: "colors" }, outputs: { dataSelected: "dataSelected", diagramTypeChanged: "diagramTypeChanged", componentStateChanged: "componentStateChanged" }, ngImport: i0, template: "<ocx-diagram\n [data]=\"(diagramData$ | async) || []\"\n [fillMissingColors]=\"fillMissingColors\"\n [sumKey]=\"sumKey\"\n [diagramType]=\"diagramType\"\n (onDataSelect)=\"dataClicked($event)\"\n [supportedDiagramTypes]=\"supportedDiagramTypes\"\n (diagramTypeChanged)=\"onDiagramTypeChanged($event)\"\n></ocx-diagram>\n", dependencies: [{ kind: "component", type: DiagramComponent, selector: "ocx-diagram", inputs: ["data", "sumKey", "fillMissingColors", "diagramType", "supportedDiagramTypes"], outputs: ["dataSelected", "diagramTypeChanged", "componentStateChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
4507
4546
  }
4508
4547
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GroupByCountDiagramComponent, decorators: [{
4509
4548
  type: Component,
@@ -4516,6 +4555,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
4516
4555
  type: Input
4517
4556
  }], supportedDiagramTypes: [{
4518
4557
  type: Input
4558
+ }], allLabelKeys: [{
4559
+ type: Input
4560
+ }], showAllLabels: [{
4561
+ type: Input
4519
4562
  }], data: [{
4520
4563
  type: Input
4521
4564
  }], columnType: [{