@energinet/watt 4.2.2 → 4.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/watt-data-table.component.d.ts +2 -1
- package/esm2022/badge/energinet-watt-badge.js +1 -1
- package/esm2022/badge/energinet-watt-badge.js.map +1 -0
- package/esm2022/badge/index.js +1 -1
- package/esm2022/badge/index.js.map +1 -0
- package/esm2022/badge/watt-badge.component.js +1 -1
- package/esm2022/badge/watt-badge.component.js.map +1 -0
- package/esm2022/breadcrumbs/energinet-watt-breadcrumbs.js +1 -1
- package/esm2022/breadcrumbs/energinet-watt-breadcrumbs.js.map +1 -0
- package/esm2022/breadcrumbs/index.js +1 -1
- package/esm2022/breadcrumbs/index.js.map +1 -0
- package/esm2022/breadcrumbs/watt-breadcrumbs.component.js +1 -1
- package/esm2022/breadcrumbs/watt-breadcrumbs.component.js.map +1 -0
- package/esm2022/button/energinet-watt-button.js +1 -1
- package/esm2022/button/energinet-watt-button.js.map +1 -0
- package/esm2022/button/index.js +1 -1
- package/esm2022/button/index.js.map +1 -0
- package/esm2022/button/watt-button.component.js +1 -1
- package/esm2022/button/watt-button.component.js.map +1 -0
- package/esm2022/card/energinet-watt-card.js +1 -1
- package/esm2022/card/energinet-watt-card.js.map +1 -0
- package/esm2022/card/index.js +1 -1
- package/esm2022/card/index.js.map +1 -0
- package/esm2022/card/watt-card-title.component.js +1 -1
- package/esm2022/card/watt-card-title.component.js.map +1 -0
- package/esm2022/card/watt-card.component.js +1 -1
- package/esm2022/card/watt-card.component.js.map +1 -0
- package/esm2022/checkbox/energinet-watt-checkbox.js +1 -1
- package/esm2022/checkbox/energinet-watt-checkbox.js.map +1 -0
- package/esm2022/checkbox/index.js +1 -1
- package/esm2022/checkbox/index.js.map +1 -0
- package/esm2022/checkbox/watt-checkbox.component.js +1 -1
- package/esm2022/checkbox/watt-checkbox.component.js.map +1 -0
- package/esm2022/chip/energinet-watt-chip.js +1 -1
- package/esm2022/chip/energinet-watt-chip.js.map +1 -0
- package/esm2022/chip/index.js +1 -1
- package/esm2022/chip/index.js.map +1 -0
- package/esm2022/chip/watt-action-chip.component.js +1 -1
- package/esm2022/chip/watt-action-chip.component.js.map +1 -0
- package/esm2022/chip/watt-chip.component.js +1 -1
- package/esm2022/chip/watt-chip.component.js.map +1 -0
- package/esm2022/chip/watt-chip.directive.js +1 -1
- package/esm2022/chip/watt-chip.directive.js.map +1 -0
- package/esm2022/chip/watt-date-chip.component.js +1 -1
- package/esm2022/chip/watt-date-chip.component.js.map +1 -0
- package/esm2022/chip/watt-date-range-chip.component.js +1 -1
- package/esm2022/chip/watt-date-range-chip.component.js.map +1 -0
- package/esm2022/chip/watt-filter-chip.component.js +1 -1
- package/esm2022/chip/watt-filter-chip.component.js.map +1 -0
- package/esm2022/chip/watt-menu-chip.component.js +1 -1
- package/esm2022/chip/watt-menu-chip.component.js.map +1 -0
- package/esm2022/clipboard/energinet-watt-clipboard.js +1 -1
- package/esm2022/clipboard/energinet-watt-clipboard.js.map +1 -0
- package/esm2022/clipboard/index.js +1 -1
- package/esm2022/clipboard/index.js.map +1 -0
- package/esm2022/clipboard/watt-clipboard-intl.service.js +1 -1
- package/esm2022/clipboard/watt-clipboard-intl.service.js.map +1 -0
- package/esm2022/clipboard/watt-copy-to-clipboard.directive.js +1 -1
- package/esm2022/clipboard/watt-copy-to-clipboard.directive.js.map +1 -0
- package/esm2022/code/energinet-watt-code.js +1 -1
- package/esm2022/code/energinet-watt-code.js.map +1 -0
- package/esm2022/code/index.js +1 -1
- package/esm2022/code/index.js.map +1 -0
- package/esm2022/code/watt-code-intl.service.js +1 -1
- package/esm2022/code/watt-code-intl.service.js.map +1 -0
- package/esm2022/code/watt-code.component.js +1 -1
- package/esm2022/code/watt-code.component.js.map +1 -0
- package/esm2022/code/watt-code.worker.token.js +1 -1
- package/esm2022/code/watt-code.worker.token.js.map +1 -0
- package/esm2022/core/breakpoints/breakpoints-observer.js +1 -1
- package/esm2022/core/breakpoints/breakpoints-observer.js.map +1 -0
- package/esm2022/core/breakpoints/breakpoints.js +1 -1
- package/esm2022/core/breakpoints/breakpoints.js.map +1 -0
- package/esm2022/core/breakpoints/energinet-watt-core-breakpoints.js +1 -1
- package/esm2022/core/breakpoints/energinet-watt-core-breakpoints.js.map +1 -0
- package/esm2022/core/breakpoints/index.js +1 -1
- package/esm2022/core/breakpoints/index.js.map +1 -0
- package/esm2022/core/color/color-helper.service.js +1 -1
- package/esm2022/core/color/color-helper.service.js.map +1 -0
- package/esm2022/core/color/colors.js +1 -1
- package/esm2022/core/color/colors.js.map +1 -0
- package/esm2022/core/color/energinet-watt-core-color.js +1 -1
- package/esm2022/core/color/energinet-watt-core-color.js.map +1 -0
- package/esm2022/core/color/index.js +1 -1
- package/esm2022/core/color/index.js.map +1 -0
- package/esm2022/core/date/dayjs.js +1 -1
- package/esm2022/core/date/dayjs.js.map +1 -0
- package/esm2022/core/date/energinet-watt-core-date.js +1 -1
- package/esm2022/core/date/energinet-watt-core-date.js.map +1 -0
- package/esm2022/core/date/index.js +1 -1
- package/esm2022/core/date/index.js.map +1 -0
- package/esm2022/core/date/watt-danish-datetime.providers.js +1 -1
- package/esm2022/core/date/watt-danish-datetime.providers.js.map +1 -0
- package/esm2022/core/date/watt-date-adapter.js +1 -1
- package/esm2022/core/date/watt-date-adapter.js.map +1 -0
- package/esm2022/core/date/watt-date-range.js +1 -1
- package/esm2022/core/date/watt-date-range.js.map +1 -0
- package/esm2022/core/date/watt-date.pipe.js +1 -1
- package/esm2022/core/date/watt-date.pipe.js.map +1 -0
- package/esm2022/core/date/watt-format-date.js +1 -1
- package/esm2022/core/date/watt-format-date.js.map +1 -0
- package/esm2022/core/date/watt-locale.service.js +1 -1
- package/esm2022/core/date/watt-locale.service.js.map +1 -0
- package/esm2022/data/energinet-watt-data.js +1 -1
- package/esm2022/data/energinet-watt-data.js.map +1 -0
- package/esm2022/data/index.js +1 -1
- package/esm2022/data/index.js.map +1 -0
- package/esm2022/data/watt-data-actions.component.js +1 -1
- package/esm2022/data/watt-data-actions.component.js.map +1 -0
- package/esm2022/data/watt-data-filters.component.js +1 -1
- package/esm2022/data/watt-data-filters.component.js.map +1 -0
- package/esm2022/data/watt-data-intl.service.js +1 -1
- package/esm2022/data/watt-data-intl.service.js.map +1 -0
- package/esm2022/data/watt-data-table.component.js +6 -3
- package/esm2022/data/watt-data-table.component.js.map +1 -0
- package/esm2022/datetime-field/energinet-watt-datetime-field.js +1 -1
- package/esm2022/datetime-field/energinet-watt-datetime-field.js.map +1 -0
- package/esm2022/datetime-field/index.js +1 -1
- package/esm2022/datetime-field/index.js.map +1 -0
- package/esm2022/datetime-field/watt-datetime-field.component.js +1 -1
- package/esm2022/datetime-field/watt-datetime-field.component.js.map +1 -0
- package/esm2022/description-list/energinet-watt-description-list.js +1 -1
- package/esm2022/description-list/energinet-watt-description-list.js.map +1 -0
- package/esm2022/description-list/index.js +1 -1
- package/esm2022/description-list/index.js.map +1 -0
- package/esm2022/description-list/watt-description-list-item.component.js +1 -1
- package/esm2022/description-list/watt-description-list-item.component.js.map +1 -0
- package/esm2022/description-list/watt-description-list.component.js +1 -1
- package/esm2022/description-list/watt-description-list.component.js.map +1 -0
- package/esm2022/drawer/energinet-watt-drawer.js +1 -1
- package/esm2022/drawer/energinet-watt-drawer.js.map +1 -0
- package/esm2022/drawer/index.js +1 -1
- package/esm2022/drawer/index.js.map +1 -0
- package/esm2022/drawer/watt-drawer-actions.component.js +1 -1
- package/esm2022/drawer/watt-drawer-actions.component.js.map +1 -0
- package/esm2022/drawer/watt-drawer-content.component.js +1 -1
- package/esm2022/drawer/watt-drawer-content.component.js.map +1 -0
- package/esm2022/drawer/watt-drawer-heading.component.js +1 -1
- package/esm2022/drawer/watt-drawer-heading.component.js.map +1 -0
- package/esm2022/drawer/watt-drawer-topbar.component.js +1 -1
- package/esm2022/drawer/watt-drawer-topbar.component.js.map +1 -0
- package/esm2022/drawer/watt-drawer.component.js +1 -1
- package/esm2022/drawer/watt-drawer.component.js.map +1 -0
- package/esm2022/dropdown/energinet-watt-dropdown.js +1 -1
- package/esm2022/dropdown/energinet-watt-dropdown.js.map +1 -0
- package/esm2022/dropdown/index.js +1 -1
- package/esm2022/dropdown/index.js.map +1 -0
- package/esm2022/dropdown/watt-dropdown-option.js +1 -1
- package/esm2022/dropdown/watt-dropdown-option.js.map +1 -0
- package/esm2022/dropdown/watt-dropdown-value.js +1 -1
- package/esm2022/dropdown/watt-dropdown-value.js.map +1 -0
- package/esm2022/dropdown/watt-dropdown.component.js +1 -1
- package/esm2022/dropdown/watt-dropdown.component.js.map +1 -0
- package/esm2022/dropzone/energinet-watt-dropzone.js +1 -1
- package/esm2022/dropzone/energinet-watt-dropzone.js.map +1 -0
- package/esm2022/dropzone/index.js +1 -1
- package/esm2022/dropzone/index.js.map +1 -0
- package/esm2022/dropzone/watt-dropzone-intl.js +1 -1
- package/esm2022/dropzone/watt-dropzone-intl.js.map +1 -0
- package/esm2022/dropzone/watt-dropzone-validators.js +1 -1
- package/esm2022/dropzone/watt-dropzone-validators.js.map +1 -0
- package/esm2022/dropzone/watt-dropzone.js +1 -1
- package/esm2022/dropzone/watt-dropzone.js.map +1 -0
- package/esm2022/empty-state/energinet-watt-empty-state.js +1 -1
- package/esm2022/empty-state/energinet-watt-empty-state.js.map +1 -0
- package/esm2022/empty-state/icons/explore.js +1 -1
- package/esm2022/empty-state/icons/explore.js.map +1 -0
- package/esm2022/empty-state/icons/no-results.js +1 -1
- package/esm2022/empty-state/icons/no-results.js.map +1 -0
- package/esm2022/empty-state/icons/not-found.js +1 -1
- package/esm2022/empty-state/icons/not-found.js.map +1 -0
- package/esm2022/empty-state/icons/power.js +1 -1
- package/esm2022/empty-state/icons/power.js.map +1 -0
- package/esm2022/empty-state/index.js +1 -1
- package/esm2022/empty-state/index.js.map +1 -0
- package/esm2022/empty-state/watt-empty-state.component.js +1 -1
- package/esm2022/empty-state/watt-empty-state.component.js.map +1 -0
- package/esm2022/energinet-watt.js +1 -1
- package/esm2022/energinet-watt.js.map +1 -0
- package/esm2022/expandable-card/energinet-watt-expandable-card.js +1 -1
- package/esm2022/expandable-card/energinet-watt-expandable-card.js.map +1 -0
- package/esm2022/expandable-card/index.js +1 -1
- package/esm2022/expandable-card/index.js.map +1 -0
- package/esm2022/expandable-card/watt-expandable-card.component.js +1 -1
- package/esm2022/expandable-card/watt-expandable-card.component.js.map +1 -0
- package/esm2022/field/energinet-watt-field.js +1 -1
- package/esm2022/field/energinet-watt-field.js.map +1 -0
- package/esm2022/field/index.js +1 -1
- package/esm2022/field/index.js.map +1 -0
- package/esm2022/field/watt-field-error.component.js +1 -1
- package/esm2022/field/watt-field-error.component.js.map +1 -0
- package/esm2022/field/watt-field-hint.component.js +1 -1
- package/esm2022/field/watt-field-hint.component.js.map +1 -0
- package/esm2022/field/watt-field-intl.service.js +1 -1
- package/esm2022/field/watt-field-intl.service.js.map +1 -0
- package/esm2022/field/watt-field-warning.component.js +1 -1
- package/esm2022/field/watt-field-warning.component.js.map +1 -0
- package/esm2022/field/watt-field.component.js +1 -1
- package/esm2022/field/watt-field.component.js.map +1 -0
- package/esm2022/file-field/energinet-watt-file-field.js +1 -1
- package/esm2022/file-field/energinet-watt-file-field.js.map +1 -0
- package/esm2022/file-field/index.js +1 -1
- package/esm2022/file-field/index.js.map +1 -0
- package/esm2022/file-field/watt-file-field.component.js +1 -1
- package/esm2022/file-field/watt-file-field.component.js.map +1 -0
- package/esm2022/icon/energinet-watt-icon.js +1 -1
- package/esm2022/icon/energinet-watt-icon.js.map +1 -0
- package/esm2022/icon/flags/energinet-watt-icon-flags.js +1 -1
- package/esm2022/icon/flags/energinet-watt-icon-flags.js.map +1 -0
- package/esm2022/icon/flags/index.js +1 -1
- package/esm2022/icon/flags/index.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-ch.js +1 -1
- package/esm2022/icon/flags/watt-flag-ch.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-de.js +1 -1
- package/esm2022/icon/flags/watt-flag-de.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-dk.js +1 -1
- package/esm2022/icon/flags/watt-flag-dk.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-fi.js +1 -1
- package/esm2022/icon/flags/watt-flag-fi.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-gb.js +1 -1
- package/esm2022/icon/flags/watt-flag-gb.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-nl.js +1 -1
- package/esm2022/icon/flags/watt-flag-nl.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-no.js +1 -1
- package/esm2022/icon/flags/watt-flag-no.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-pl.js +1 -1
- package/esm2022/icon/flags/watt-flag-pl.js.map +1 -0
- package/esm2022/icon/flags/watt-flag-se.js +1 -1
- package/esm2022/icon/flags/watt-flag-se.js.map +1 -0
- package/esm2022/icon/flags/watt-flag.js +1 -1
- package/esm2022/icon/flags/watt-flag.js.map +1 -0
- package/esm2022/icon/icon.component.js +1 -1
- package/esm2022/icon/icon.component.js.map +1 -0
- package/esm2022/icon/icons.js +1 -1
- package/esm2022/icon/icons.js.map +1 -0
- package/esm2022/icon/index.js +1 -1
- package/esm2022/icon/index.js.map +1 -0
- package/esm2022/index.js +1 -1
- package/esm2022/index.js.map +1 -0
- package/esm2022/menu/energinet-watt-menu.js +1 -1
- package/esm2022/menu/energinet-watt-menu.js.map +1 -0
- package/esm2022/menu/index.js +1 -1
- package/esm2022/menu/index.js.map +1 -0
- package/esm2022/menu/watt-menu-group.component.js +1 -1
- package/esm2022/menu/watt-menu-group.component.js.map +1 -0
- package/esm2022/menu/watt-menu-item.component.js +1 -1
- package/esm2022/menu/watt-menu-item.component.js.map +1 -0
- package/esm2022/menu/watt-menu-trigger.directive.js +1 -1
- package/esm2022/menu/watt-menu-trigger.directive.js.map +1 -0
- package/esm2022/menu/watt-menu.component.js +1 -1
- package/esm2022/menu/watt-menu.component.js.map +1 -0
- package/esm2022/modal/energinet-watt-modal.js +1 -1
- package/esm2022/modal/energinet-watt-modal.js.map +1 -0
- package/esm2022/modal/index.js +1 -1
- package/esm2022/modal/index.js.map +1 -0
- package/esm2022/modal/watt-modal.component.js +1 -1
- package/esm2022/modal/watt-modal.component.js.map +1 -0
- package/esm2022/modal/watt-modal.service.js +1 -1
- package/esm2022/modal/watt-modal.service.js.map +1 -0
- package/esm2022/paginator/energinet-watt-paginator.js +1 -1
- package/esm2022/paginator/energinet-watt-paginator.js.map +1 -0
- package/esm2022/paginator/index.js +1 -1
- package/esm2022/paginator/index.js.map +1 -0
- package/esm2022/paginator/watt-paginator-intl.service.js +1 -1
- package/esm2022/paginator/watt-paginator-intl.service.js.map +1 -0
- package/esm2022/paginator/watt-paginator.component.js +1 -1
- package/esm2022/paginator/watt-paginator.component.js.map +1 -0
- package/esm2022/phone-field/energinet-watt-phone-field.js +1 -1
- package/esm2022/phone-field/energinet-watt-phone-field.js.map +1 -0
- package/esm2022/phone-field/index.js +1 -1
- package/esm2022/phone-field/index.js.map +1 -0
- package/esm2022/phone-field/watt-phone-field-intl.service.js +1 -1
- package/esm2022/phone-field/watt-phone-field-intl.service.js.map +1 -0
- package/esm2022/phone-field/watt-phone-field.component.js +1 -1
- package/esm2022/phone-field/watt-phone-field.component.js.map +1 -0
- package/esm2022/picker/__shared/energinet-watt-picker-__shared.js +1 -1
- package/esm2022/picker/__shared/energinet-watt-picker-__shared.js.map +1 -0
- package/esm2022/picker/__shared/index.js +1 -1
- package/esm2022/picker/__shared/index.js.map +1 -0
- package/esm2022/picker/__shared/placeholder-mask/watt-placeholder-mask.component.js +1 -1
- package/esm2022/picker/__shared/placeholder-mask/watt-placeholder-mask.component.js.map +1 -0
- package/esm2022/picker/__shared/watt-picker-base.js +1 -1
- package/esm2022/picker/__shared/watt-picker-base.js.map +1 -0
- package/esm2022/picker/__shared/watt-picker-value.js +1 -1
- package/esm2022/picker/__shared/watt-picker-value.js.map +1 -0
- package/esm2022/picker/datepicker/energinet-watt-picker-datepicker.js +1 -1
- package/esm2022/picker/datepicker/energinet-watt-picker-datepicker.js.map +1 -0
- package/esm2022/picker/datepicker/index.js +1 -1
- package/esm2022/picker/datepicker/index.js.map +1 -0
- package/esm2022/picker/datepicker/watt-datepicker-intl.service.js +1 -1
- package/esm2022/picker/datepicker/watt-datepicker-intl.service.js.map +1 -0
- package/esm2022/picker/datepicker/watt-datepicker.component.js +1 -1
- package/esm2022/picker/datepicker/watt-datepicker.component.js.map +1 -0
- package/esm2022/picker/timepicker/energinet-watt-picker-timepicker.js +1 -1
- package/esm2022/picker/timepicker/energinet-watt-picker-timepicker.js.map +1 -0
- package/esm2022/picker/timepicker/index.js +1 -1
- package/esm2022/picker/timepicker/index.js.map +1 -0
- package/esm2022/picker/timepicker/maskito-time-range-mask.js +1 -1
- package/esm2022/picker/timepicker/maskito-time-range-mask.js.map +1 -0
- package/esm2022/picker/timepicker/watt-timepicker.component.js +1 -1
- package/esm2022/picker/timepicker/watt-timepicker.component.js.map +1 -0
- package/esm2022/progress-tracker/energinet-watt-progress-tracker.js +1 -1
- package/esm2022/progress-tracker/energinet-watt-progress-tracker.js.map +1 -0
- package/esm2022/progress-tracker/index.js +1 -1
- package/esm2022/progress-tracker/index.js.map +1 -0
- package/esm2022/progress-tracker/watt-progress-tracker-step.component.js +1 -1
- package/esm2022/progress-tracker/watt-progress-tracker-step.component.js.map +1 -0
- package/esm2022/progress-tracker/watt-progress-tracker.component.js +1 -1
- package/esm2022/progress-tracker/watt-progress-tracker.component.js.map +1 -0
- package/esm2022/query-params/energinet-watt-query-params.js +1 -1
- package/esm2022/query-params/energinet-watt-query-params.js.map +1 -0
- package/esm2022/query-params/index.js +1 -1
- package/esm2022/query-params/index.js.map +1 -0
- package/esm2022/query-params/watt-query-params.directive.js +1 -1
- package/esm2022/query-params/watt-query-params.directive.js.map +1 -0
- package/esm2022/radio/energinet-watt-radio.js +1 -1
- package/esm2022/radio/energinet-watt-radio.js.map +1 -0
- package/esm2022/radio/index.js +1 -1
- package/esm2022/radio/index.js.map +1 -0
- package/esm2022/radio/watt-radio-group.component.js +1 -1
- package/esm2022/radio/watt-radio-group.component.js.map +1 -0
- package/esm2022/radio/watt-radio.component.js +1 -1
- package/esm2022/radio/watt-radio.component.js.map +1 -0
- package/esm2022/search/energinet-watt-search.js +1 -1
- package/esm2022/search/energinet-watt-search.js.map +1 -0
- package/esm2022/search/index.js +1 -1
- package/esm2022/search/index.js.map +1 -0
- package/esm2022/search/watt-search.component.js +1 -1
- package/esm2022/search/watt-search.component.js.map +1 -0
- package/esm2022/segmented-buttons/energinet-watt-segmented-buttons.js +1 -1
- package/esm2022/segmented-buttons/energinet-watt-segmented-buttons.js.map +1 -0
- package/esm2022/segmented-buttons/index.js +1 -1
- package/esm2022/segmented-buttons/index.js.map +1 -0
- package/esm2022/segmented-buttons/watt-segmented-button.component.js +1 -1
- package/esm2022/segmented-buttons/watt-segmented-button.component.js.map +1 -0
- package/esm2022/segmented-buttons/watt-segmented-buttons.component.js +1 -1
- package/esm2022/segmented-buttons/watt-segmented-buttons.component.js.map +1 -0
- package/esm2022/shell/energinet-watt-shell.js +1 -1
- package/esm2022/shell/energinet-watt-shell.js.map +1 -0
- package/esm2022/shell/index.js +1 -1
- package/esm2022/shell/index.js.map +1 -0
- package/esm2022/shell/nav-list/index.js +1 -1
- package/esm2022/shell/nav-list/index.js.map +1 -0
- package/esm2022/shell/nav-list/watt-expand-on-active-link.directive.js +1 -1
- package/esm2022/shell/nav-list/watt-expand-on-active-link.directive.js.map +1 -0
- package/esm2022/shell/nav-list/watt-nav-list-item.component.js +1 -1
- package/esm2022/shell/nav-list/watt-nav-list-item.component.js.map +1 -0
- package/esm2022/shell/nav-list/watt-nav-list.component.js +1 -1
- package/esm2022/shell/nav-list/watt-nav-list.component.js.map +1 -0
- package/esm2022/shell/shell.component.js +1 -1
- package/esm2022/shell/shell.component.js.map +1 -0
- package/esm2022/slide-toggle/energinet-watt-slide-toggle.js +1 -1
- package/esm2022/slide-toggle/energinet-watt-slide-toggle.js.map +1 -0
- package/esm2022/slide-toggle/index.js +1 -1
- package/esm2022/slide-toggle/index.js.map +1 -0
- package/esm2022/slide-toggle/watt-slide-toggle.component.js +1 -1
- package/esm2022/slide-toggle/watt-slide-toggle.component.js.map +1 -0
- package/esm2022/slider/energinet-watt-slider.js +1 -1
- package/esm2022/slider/energinet-watt-slider.js.map +1 -0
- package/esm2022/slider/index.js +1 -1
- package/esm2022/slider/index.js.map +1 -0
- package/esm2022/slider/watt-slider.component.js +1 -1
- package/esm2022/slider/watt-slider.component.js.map +1 -0
- package/esm2022/spinner/energinet-watt-spinner.js +1 -1
- package/esm2022/spinner/energinet-watt-spinner.js.map +1 -0
- package/esm2022/spinner/index.js +1 -1
- package/esm2022/spinner/index.js.map +1 -0
- package/esm2022/spinner/watt-spinner.component.js +1 -1
- package/esm2022/spinner/watt-spinner.component.js.map +1 -0
- package/esm2022/stepper/energinet-watt-stepper.js +1 -1
- package/esm2022/stepper/energinet-watt-stepper.js.map +1 -0
- package/esm2022/stepper/index.js +1 -1
- package/esm2022/stepper/index.js.map +1 -0
- package/esm2022/stepper/watt-stepper-step.component.js +1 -1
- package/esm2022/stepper/watt-stepper-step.component.js.map +1 -0
- package/esm2022/stepper/watt-stepper.component.js +1 -1
- package/esm2022/stepper/watt-stepper.component.js.map +1 -0
- package/esm2022/table/energinet-watt-table.js +1 -1
- package/esm2022/table/energinet-watt-table.js.map +1 -0
- package/esm2022/table/index.js +1 -1
- package/esm2022/table/index.js.map +1 -0
- package/esm2022/table/watt-table-data-source.js +1 -1
- package/esm2022/table/watt-table-data-source.js.map +1 -0
- package/esm2022/table/watt-table-expand-animation.js +1 -1
- package/esm2022/table/watt-table-expand-animation.js.map +1 -0
- package/esm2022/table/watt-table.component.js +15 -4
- package/esm2022/table/watt-table.component.js.map +1 -0
- package/esm2022/tabs/energinet-watt-tabs.js +1 -1
- package/esm2022/tabs/energinet-watt-tabs.js.map +1 -0
- package/esm2022/tabs/index.js +1 -1
- package/esm2022/tabs/index.js.map +1 -0
- package/esm2022/tabs/watt-link-tab.component.js +1 -1
- package/esm2022/tabs/watt-link-tab.component.js.map +1 -0
- package/esm2022/tabs/watt-link-tabs.component.js +1 -1
- package/esm2022/tabs/watt-link-tabs.component.js.map +1 -0
- package/esm2022/tabs/watt-tab.component.js +1 -1
- package/esm2022/tabs/watt-tab.component.js.map +1 -0
- package/esm2022/tabs/watt-tabs-action.component.js +1 -1
- package/esm2022/tabs/watt-tabs-action.component.js.map +1 -0
- package/esm2022/tabs/watt-tabs.component.js +1 -1
- package/esm2022/tabs/watt-tabs.component.js.map +1 -0
- package/esm2022/text-field/energinet-watt-text-field.js +1 -1
- package/esm2022/text-field/energinet-watt-text-field.js.map +1 -0
- package/esm2022/text-field/index.js +1 -1
- package/esm2022/text-field/index.js.map +1 -0
- package/esm2022/text-field/watt-text-field.component.js +1 -1
- package/esm2022/text-field/watt-text-field.component.js.map +1 -0
- package/esm2022/textarea-field/energinet-watt-textarea-field.js +1 -1
- package/esm2022/textarea-field/energinet-watt-textarea-field.js.map +1 -0
- package/esm2022/textarea-field/index.js +1 -1
- package/esm2022/textarea-field/index.js.map +1 -0
- package/esm2022/textarea-field/watt-textarea-field.component.js +1 -1
- package/esm2022/textarea-field/watt-textarea-field.component.js.map +1 -0
- package/esm2022/toast/energinet-watt-toast.js +1 -1
- package/esm2022/toast/energinet-watt-toast.js.map +1 -0
- package/esm2022/toast/index.js +1 -1
- package/esm2022/toast/index.js.map +1 -0
- package/esm2022/toast/watt-toast.component.js +1 -1
- package/esm2022/toast/watt-toast.component.js.map +1 -0
- package/esm2022/toast/watt-toast.service.js +1 -1
- package/esm2022/toast/watt-toast.service.js.map +1 -0
- package/esm2022/tooltip/energinet-watt-tooltip.js +1 -1
- package/esm2022/tooltip/energinet-watt-tooltip.js.map +1 -0
- package/esm2022/tooltip/index.js +1 -1
- package/esm2022/tooltip/index.js.map +1 -0
- package/esm2022/tooltip/watt-tooltip.component.js +1 -1
- package/esm2022/tooltip/watt-tooltip.component.js.map +1 -0
- package/esm2022/tooltip/watt-tooltip.directive.js +1 -1
- package/esm2022/tooltip/watt-tooltip.directive.js.map +1 -0
- package/esm2022/utils/css/css-custom-properties.service.js +1 -1
- package/esm2022/utils/css/css-custom-properties.service.js.map +1 -0
- package/esm2022/utils/css/energinet-watt-utils-css.js +1 -1
- package/esm2022/utils/css/energinet-watt-utils-css.js.map +1 -0
- package/esm2022/utils/css/index.js +1 -1
- package/esm2022/utils/css/index.js.map +1 -0
- package/esm2022/utils/intersection-observer/energinet-watt-utils-intersection-observer.js +1 -1
- package/esm2022/utils/intersection-observer/energinet-watt-utils-intersection-observer.js.map +1 -0
- package/esm2022/utils/intersection-observer/index.js +1 -1
- package/esm2022/utils/intersection-observer/index.js.map +1 -0
- package/esm2022/utils/intersection-observer/watt-intersection-observer.service.js +1 -1
- package/esm2022/utils/intersection-observer/watt-intersection-observer.service.js.map +1 -0
- package/esm2022/utils/resize-observer/energinet-watt-utils-resize-observer.js +1 -1
- package/esm2022/utils/resize-observer/energinet-watt-utils-resize-observer.js.map +1 -0
- package/esm2022/utils/resize-observer/index.js +1 -1
- package/esm2022/utils/resize-observer/index.js.map +1 -0
- package/esm2022/utils/resize-observer/watt-resize-observer.directive.js +1 -1
- package/esm2022/utils/resize-observer/watt-resize-observer.directive.js.map +1 -0
- package/esm2022/utils/resize-observer/watt-resize-observer.service.js +1 -1
- package/esm2022/utils/resize-observer/watt-resize-observer.service.js.map +1 -0
- package/esm2022/validation-message/energinet-watt-validation-message.js +1 -1
- package/esm2022/validation-message/energinet-watt-validation-message.js.map +1 -0
- package/esm2022/validation-message/index.js +1 -1
- package/esm2022/validation-message/index.js.map +1 -0
- package/esm2022/validation-message/watt-validation-message.component.js +1 -1
- package/esm2022/validation-message/watt-validation-message.component.js.map +1 -0
- package/esm2022/validators/energinet-watt-validators.js +1 -1
- package/esm2022/validators/energinet-watt-validators.js.map +1 -0
- package/esm2022/validators/index.js +1 -1
- package/esm2022/validators/index.js.map +1 -0
- package/esm2022/validators/watt-range.validators.js +1 -1
- package/esm2022/validators/watt-range.validators.js.map +1 -0
- package/esm2022/vater/energinet-watt-vater.js +1 -1
- package/esm2022/vater/energinet-watt-vater.js.map +1 -0
- package/esm2022/vater/index.js +1 -1
- package/esm2022/vater/index.js.map +1 -0
- package/esm2022/vater/types.js +1 -1
- package/esm2022/vater/types.js.map +1 -0
- package/esm2022/vater/vater-flex.component.js +1 -1
- package/esm2022/vater/vater-flex.component.js.map +1 -0
- package/esm2022/vater/vater-layout.directive.js +1 -1
- package/esm2022/vater/vater-layout.directive.js.map +1 -0
- package/esm2022/vater/vater-spacer.component.js +1 -1
- package/esm2022/vater/vater-spacer.component.js.map +1 -0
- package/esm2022/vater/vater-stack.component.js +1 -1
- package/esm2022/vater/vater-stack.component.js.map +1 -0
- package/esm2022/vater/vater-utility.directive.js +1 -1
- package/esm2022/vater/vater-utility.directive.js.map +1 -0
- package/esm2022/year-field/energinet-watt-year-field.js +1 -1
- package/esm2022/year-field/energinet-watt-year-field.js.map +1 -0
- package/esm2022/year-field/index.js +1 -1
- package/esm2022/year-field/index.js.map +1 -0
- package/esm2022/year-field/watt-year-field.component.js +1 -1
- package/esm2022/year-field/watt-year-field.component.js.map +1 -0
- package/esm2022/yearmonth-field/energinet-watt-yearmonth-field.js +1 -1
- package/esm2022/yearmonth-field/energinet-watt-yearmonth-field.js.map +1 -0
- package/esm2022/yearmonth-field/index.js +1 -1
- package/esm2022/yearmonth-field/index.js.map +1 -0
- package/esm2022/yearmonth-field/watt-yearmonth-field.component.js +1 -1
- package/esm2022/yearmonth-field/watt-yearmonth-field.component.js.map +1 -0
- package/esm2022/yearmonth-field/year-month.js +1 -1
- package/esm2022/yearmonth-field/year-month.js.map +1 -0
- package/package.json +110 -110
- package/table/watt-table.component.d.ts +6 -1
|
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
46
46
|
</ng-template>`,
|
|
47
47
|
}]
|
|
48
48
|
}], propDecorators: { templateRef: [{ type: i0.ViewChild, args: ['templateRef', { isSignal: true }] }], nextButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextButtonLabel", required: false }] }], disableNextButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableNextButton", required: false }] }], loadingNextButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingNextButton", required: false }] }], previousButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousButtonLabel", required: false }] }], enabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "enabled", required: false }] }], disablePreviousButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "disablePreviousButton", required: false }] }], entering: [{ type: i0.Output, args: ["entering"] }], leaving: [{ type: i0.Output, args: ["leaving"] }], next: [{ type: i0.Output, args: ["next"] }] } });
|
|
49
|
-
//# sourceMappingURL=
|
|
49
|
+
//# sourceMappingURL=watt-stepper-step.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watt-stepper-step.component.js","sourceRoot":"","sources":["../../../../libs/watt/package/stepper/watt-stepper-step.component.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB;;;;;;;;;;;;;;;GAeG;AACH,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAe,SAAS,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;;AAE/C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAC;AAQ/B,MAAM,OAAO,wBAAyB,SAAQ,OAAO;IACnC,WAAW,GAAG,SAAS,CAAuB,aAAa,uDAAC,CAAC;IAE7E,eAAe,GAAG,KAAK,qEAAU,CAAC;IAClC,iBAAiB,GAAG,KAAK,CAAU,KAAK,6DAAC,CAAC;IAC1C,iBAAiB,GAAG,KAAK,CAAU,KAAK,6DAAC,CAAC;IAC1C,mBAAmB,GAAG,KAAK,yEAAU,CAAC;IACtC,OAAO,GAAG,KAAK,CAAU,IAAI,mDAAC,CAAC;IAC/B,qBAAqB,GAAG,KAAK,CAAU,KAAK,iEAAC,CAAC;IAE9C,QAAQ,GAAG,MAAM,EAAW,CAAC;IAC7B,OAAO,GAAG,MAAM,EAAW,CAAC;IAC5B,IAAI,GAAG,MAAM,EAAQ,CAAC;uGAZX,wBAAwB;2FAAxB,wBAAwB,usCAJzB;;iBAEK;;2FAEJ,wBAAwB;kBANpC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE;;iBAEK;iBAChB;yEAE+D,aAAa","sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { Component, input, output, TemplateRef, viewChild } from '@angular/core';\nimport { MatStep } from '@angular/material/stepper';\nimport { CdkStep } from '@angular/cdk/stepper';\n\nexport { CdkStep as WattStep };\n\n@Component({\n selector: 'watt-stepper-step',\n template: ` <ng-template #templateRef>\n <ng-content />\n </ng-template>`,\n})\nexport class WattStepperStepComponent extends MatStep {\n public readonly templateRef = viewChild<TemplateRef<unknown>>('templateRef');\n\n nextButtonLabel = input<string>();\n disableNextButton = input<boolean>(false);\n loadingNextButton = input<boolean>(false);\n previousButtonLabel = input<string>();\n enabled = input<boolean>(true);\n disablePreviousButton = input<boolean>(false);\n\n entering = output<CdkStep>();\n leaving = output<CdkStep>();\n next = output<void>();\n}\n"]}
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
94
94
|
args: [MatStepper]
|
|
95
95
|
}] } });
|
|
96
96
|
export const WATT_STEPPER = [WattStepperComponent, WattStepperStepComponent];
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1zdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3N0ZXBwZXIvd2F0dC1zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3N0ZXBwZXIvd2F0dC1zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxZQUFZO0FBQ1osT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQWlCekUsTUFBTSxPQUFPLG9CQUFxQixT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Qix3QkFBd0IseUZBRzlCLFVBQVUsdUVDakV2Qix5MUZBd0ZBLDY2RER4Q1ksZ0JBQWdCLG1KQUFVLGdCQUFnQix3b0JBQUUsaUJBQWlCLGtHQUFFLG1CQUFtQixpSUFBaEUsTUFBTTs7MkZBVXZCLG9CQUFvQjtrQkFmaEMsU0FBUzsrQkFDRSxjQUFjLGlCQUdULGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsYUFDbEY7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUU7eUJBQ2xFO3dCQUNELEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUMxRCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTtxQkFDM0Q7O3NCQUdBLE1BQU07O3NCQUNOLEtBQUs7O3NCQUVMLGVBQWU7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFOztzQkFHL0QsU0FBUzt1QkFBQyxVQUFVOztBQStDdkIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2RrU3RlcHBlciwgU1RFUFBFUl9HTE9CQUxfT1BUSU9OUywgU3RlcHBlclNlbGVjdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWF0U3RlcHBlciwgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgUnhQdXNoIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvcHVzaCc7XG5pbXBvcnQgeyBmcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcbmltcG9ydCB7IFdhdHRJY29uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24nO1xuXG5pbXBvcnQgeyBXYXR0U3RlcHBlclN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtc3RlcHBlci1zdGVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LXN0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFJ4UHVzaCwgTWF0U3RlcHBlck1vZHVsZSwgV2F0dEljb25Db21wb25lbnQsIFdhdHRCdXR0b25Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTVEVQUEVSX0dMT0JBTF9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IHsgc2hvd0Vycm9yOiB0cnVlLCBkaXNwbGF5RGVmYXVsdEluZGljYXRvclR5cGU6IGZhbHNlIH0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBXYXR0U3RlcHBlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogTWF0U3RlcHBlciwgdXNlRXhpc3Rpbmc6IFdhdHRTdGVwcGVyQ29tcG9uZW50IH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRTdGVwcGVyQ29tcG9uZW50IGV4dGVuZHMgTWF0U3RlcHBlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBpc0NvbXBsZXRpbmcgPSBmYWxzZTtcblxuICBAQ29udGVudENoaWxkcmVuKFdhdHRTdGVwcGVyU3RlcENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBkZWNsYXJlIF9zdGVwczogUXVlcnlMaXN0PFdhdHRTdGVwcGVyU3RlcENvbXBvbmVudD47XG5cbiAgQFZpZXdDaGlsZChNYXRTdGVwcGVyKSBzdGVwcGVyITogTWF0U3RlcHBlcjtcblxuICBzZWxlY3RlZEluZGV4Q2hhbmdlZCQhOiBPYnNlcnZhYmxlPFN0ZXBwZXJTZWxlY3Rpb25FdmVudD47XG4gIG9uRmlyc3RTdGVwJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIG9uTGFzdFN0ZXAkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgb3ZlcnJpZGUgcmVzZXQoKSB7XG4gICAgdGhpcy5zdGVwcGVyLnJlc2V0KCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlZCQgPSBmcm9tKHRoaXMuc3RlcHBlci5zZWxlY3Rpb25DaGFuZ2UpO1xuICAgIHRoaXMub25MYXN0U3RlcCQgPSB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2VkJC5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20ob2YodGhpcy5fc3RlcHMpKSxcbiAgICAgIG1hcCgoW2luZGV4LCBzdGVwc10pID0+IGluZGV4LnNlbGVjdGVkSW5kZXggPT09IHN0ZXBzLmZpbHRlcigoeCkgPT4geC5lbmFibGVkKCkpLmxlbmd0aCAtIDEpLFxuICAgICAgc3RhcnRXaXRoKGZhbHNlKVxuICAgICk7XG4gICAgdGhpcy5vbkZpcnN0U3RlcCQgPSB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2VkJC5waXBlKFxuICAgICAgbWFwKChpbmRleCkgPT4gaW5kZXguc2VsZWN0ZWRJbmRleCA9PT0gMCksXG4gICAgICBzdGFydFdpdGgodHJ1ZSlcbiAgICApO1xuXG4gICAgLy8gRW1pdCBlbnRlcmluZyBhbmQgbGVhdmluZyBldmVudHNcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2VkJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgdGhpcy5fc3RlcHMuZ2V0KGNoYW5nZS5zZWxlY3RlZEluZGV4KT8uZW50ZXJpbmcuZW1pdChjaGFuZ2Uuc2VsZWN0ZWRTdGVwKTtcbiAgICAgIHRoaXMuX3N0ZXBzLmdldChjaGFuZ2UucHJldmlvdXNseVNlbGVjdGVkSW5kZXgpPy5sZWF2aW5nLmVtaXQoY2hhbmdlLnByZXZpb3VzbHlTZWxlY3RlZFN0ZXApO1xuICAgIH0pO1xuICB9XG5cbiAgbmV4dFN0ZXAoc3RlcDogV2F0dFN0ZXBwZXJTdGVwQ29tcG9uZW50KTogdm9pZCB7XG4gICAgc3RlcC5uZXh0LmVtaXQoKTtcbiAgICB0aGlzLnN0ZXBwZXIuc2VsZWN0ZWQ/LnN0ZXBDb250cm9sPy5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgfVxuXG4gIHByZXZpb3VzU3RlcCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBwZXIucHJldmlvdXMoKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZD8uc3RlcENvbnRyb2w/Lm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFdBVFRfU1RFUFBFUiA9IFtXYXR0U3RlcHBlckNvbXBvbmVudCwgV2F0dFN0ZXBwZXJTdGVwQ29tcG9uZW50XTtcbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48bWF0LXN0ZXBwZXJcbiAgI3N0ZXBwZXJcbiAgW2Rpc2FibGVSaXBwbGVdPVwiZGlzYWJsZVJpcHBsZVwiXG4gIFtsaW5lYXJdPVwidHJ1ZVwiXG4gIGFuaW1hdGlvbkR1cmF0aW9uPVwiMFwiXG4gIGNsYXNzPVwid2F0dC1zdGVwcGVyXCJcbj5cbiAgPG5nLXRlbXBsYXRlIGxldC1pbmRleD1cImluZGV4XCIgbWF0U3RlcHBlckljb249XCJlZGl0XCI+XG4gICAge3sgaW5kZXggKyAxIH19XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBtYXRTdGVwcGVySWNvbj1cImRvbmVcIj5cbiAgICA8d2F0dC1pY29uIG5hbWU9XCJjaGVja21hcmtcIiAvPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgbGV0LWluZGV4PVwiaW5kZXhcIiBtYXRTdGVwcGVySWNvbj1cIm51bWJlclwiPlxuICAgIEBpZiAoXG4gICAgICBzdGVwcGVyLnN0ZXBzLmdldChpbmRleCk/LmNvbXBsZXRlZCAmJlxuICAgICAgc3RlcHBlci5zdGVwcy5nZXQoaW5kZXgpPy5pbnRlcmFjdGVkICYmXG4gICAgICBpbmRleCAhPT0gc3RlcHBlci5zZWxlY3RlZEluZGV4XG4gICAgKSB7XG4gICAgICA8d2F0dC1pY29uIG5hbWU9XCJjaGVja21hcmtcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAge3sgaW5kZXggKyAxIH19XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgbGV0LWluZGV4PVwiaW5kZXhcIiBtYXRTdGVwcGVySWNvbj1cImVycm9yXCI+XG4gICAge3sgaW5kZXggKyAxIH19XG4gIDwvbmctdGVtcGxhdGU+XG4gIEBmb3IgKHN0ZXAgb2YgX3N0ZXBzOyB0cmFjayBzdGVwKSB7XG4gICAgQGlmIChzdGVwLmVuYWJsZWQoKSkge1xuICAgICAgPG1hdC1zdGVwIFtlZGl0YWJsZV09XCJzdGVwLmVkaXRhYmxlXCIgW3N0ZXBDb250cm9sXT1cInN0ZXAuc3RlcENvbnRyb2xcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD57eyBzdGVwLmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndhdHQtc3RlcHBlci1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcC50ZW1wbGF0ZVJlZigpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YXR0LXN0ZXBwZXItYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICBAaWYgKCEob25GaXJzdFN0ZXAkIHwgcHVzaCkpIHtcbiAgICAgICAgICAgIDx3YXR0LWJ1dHRvblxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3RlcC5kaXNhYmxlUHJldmlvdXNCdXR0b24oKVwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlvdXNTdGVwKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8d2F0dC1pY29uIG5hbWU9XCJsZWZ0XCIgLz5cbiAgICAgICAgICAgICAge3sgc3RlcC5wcmV2aW91c0J1dHRvbkxhYmVsKCkgfX1cbiAgICAgICAgICAgIDwvd2F0dC1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmICghKG9uTGFzdFN0ZXAkIHwgcHVzaCkpIHtcbiAgICAgICAgICAgIDx3YXR0LWJ1dHRvblxuICAgICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRTdGVwKHN0ZXApXCJcbiAgICAgICAgICAgICAgW2xvYWRpbmddPVwic3RlcC5sb2FkaW5nTmV4dEJ1dHRvbigpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN0ZXAuZGlzYWJsZU5leHRCdXR0b24oKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHN0ZXAubmV4dEJ1dHRvbkxhYmVsKCkgfX1cbiAgICAgICAgICAgICAgPHdhdHQtaWNvbiBuYW1lPVwicmlnaHRcIiAvPlxuICAgICAgICAgICAgPC93YXR0LWJ1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKG9uTGFzdFN0ZXAkIHwgcHVzaCkge1xuICAgICAgICAgICAgPHdhdHQtYnV0dG9uXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNDb21wbGV0aW5nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3RlcC5kaXNhYmxlTmV4dEJ1dHRvbigpXCJcbiAgICAgICAgICAgICAgPnt7IHN0ZXAubmV4dEJ1dHRvbkxhYmVsKCkgfX1cbiAgICAgICAgICAgIDwvd2F0dC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXN0ZXA+XG4gICAgfVxuICB9XG48L21hdC1zdGVwcGVyPlxuIl19
|
|
97
|
+
//# sourceMappingURL=watt-stepper.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watt-stepper.component.js","sourceRoot":"","sources":["../../../../libs/watt/package/stepper/watt-stepper.component.ts","../../../../libs/watt/package/stepper/watt-stepper.component.html"],"names":[],"mappings":"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","sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { CdkStepper, STEPPER_GLOBAL_OPTIONS, StepperSelectionEvent } from '@angular/cdk/stepper';\nimport { MatStepper, MatStepperModule } from '@angular/material/stepper';\nimport { RxPush } from '@rx-angular/template/push';\nimport { from, map, Observable, of, startWith, withLatestFrom } from 'rxjs';\n\nimport { WattButtonComponent } from '@energinet/watt/button';\nimport { WattIconComponent } from '@energinet/watt/icon';\n\nimport { WattStepperStepComponent } from './watt-stepper-step.component';\n\n@Component({\n selector: 'watt-stepper',\n templateUrl: './watt-stepper.component.html',\n styleUrls: ['./watt-stepper.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, RxPush, MatStepperModule, WattIconComponent, WattButtonComponent],\n providers: [\n {\n provide: STEPPER_GLOBAL_OPTIONS,\n useValue: { showError: true, displayDefaultIndicatorType: false },\n },\n { provide: CdkStepper, useExisting: WattStepperComponent },\n { provide: MatStepper, useExisting: WattStepperComponent },\n ],\n})\nexport class WattStepperComponent extends MatStepper implements AfterViewInit {\n @Output() completed = new EventEmitter<void>();\n @Input() isCompleting = false;\n\n @ContentChildren(WattStepperStepComponent, { descendants: true })\n declare _steps: QueryList<WattStepperStepComponent>;\n\n @ViewChild(MatStepper) stepper!: MatStepper;\n\n selectedIndexChanged$!: Observable<StepperSelectionEvent>;\n onFirstStep$!: Observable<boolean>;\n onLastStep$!: Observable<boolean>;\n\n private destroyRef = inject(DestroyRef);\n\n override reset() {\n this.stepper.reset();\n }\n\n override ngAfterViewInit(): void {\n this.selectedIndexChanged$ = from(this.stepper.selectionChange);\n this.onLastStep$ = this.selectedIndexChanged$.pipe(\n withLatestFrom(of(this._steps)),\n map(([index, steps]) => index.selectedIndex === steps.filter((x) => x.enabled()).length - 1),\n startWith(false)\n );\n this.onFirstStep$ = this.selectedIndexChanged$.pipe(\n map((index) => index.selectedIndex === 0),\n startWith(true)\n );\n\n // Emit entering and leaving events\n this.selectedIndexChanged$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((change) => {\n this._steps.get(change.selectedIndex)?.entering.emit(change.selectedStep);\n this._steps.get(change.previouslySelectedIndex)?.leaving.emit(change.previouslySelectedStep);\n });\n }\n\n nextStep(step: WattStepperStepComponent): void {\n step.next.emit();\n this.stepper.selected?.stepControl?.markAllAsTouched();\n this.stepper.next();\n }\n\n previousStep(): void {\n this.stepper.previous();\n }\n\n complete(): void {\n this.stepper.selected?.stepControl?.markAllAsTouched();\n this.completed.emit();\n }\n}\n\nexport const WATT_STEPPER = [WattStepperComponent, WattStepperStepComponent];\n","<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-stepper\n #stepper\n [disableRipple]=\"disableRipple\"\n [linear]=\"true\"\n animationDuration=\"0\"\n class=\"watt-stepper\"\n>\n <ng-template let-index=\"index\" matStepperIcon=\"edit\">\n {{ index + 1 }}\n </ng-template>\n <ng-template matStepperIcon=\"done\">\n <watt-icon name=\"checkmark\" />\n </ng-template>\n <ng-template let-index=\"index\" matStepperIcon=\"number\">\n @if (\n stepper.steps.get(index)?.completed &&\n stepper.steps.get(index)?.interacted &&\n index !== stepper.selectedIndex\n ) {\n <watt-icon name=\"checkmark\" />\n } @else {\n {{ index + 1 }}\n }\n </ng-template>\n <ng-template let-index=\"index\" matStepperIcon=\"error\">\n {{ index + 1 }}\n </ng-template>\n @for (step of _steps; track step) {\n @if (step.enabled()) {\n <mat-step [editable]=\"step.editable\" [stepControl]=\"step.stepControl\">\n <ng-template matStepLabel>{{ step.label }}</ng-template>\n <div class=\"watt-stepper-content-wrapper\">\n <ng-container *ngTemplateOutlet=\"step.templateRef()\" />\n </div>\n <div class=\"watt-stepper-button-wrapper\">\n @if (!(onFirstStep$ | push)) {\n <watt-button\n [disabled]=\"step.disablePreviousButton()\"\n variant=\"secondary\"\n (click)=\"previousStep()\"\n >\n <watt-icon name=\"left\" />\n {{ step.previousButtonLabel() }}\n </watt-button>\n }\n\n @if (!(onLastStep$ | push)) {\n <watt-button\n variant=\"secondary\"\n (click)=\"nextStep(step)\"\n [loading]=\"step.loadingNextButton()\"\n [disabled]=\"step.disableNextButton()\"\n >\n {{ step.nextButtonLabel() }}\n <watt-icon name=\"right\" />\n </watt-button>\n }\n\n @if (onLastStep$ | push) {\n <watt-button\n variant=\"primary\"\n [loading]=\"isCompleting\"\n (click)=\"complete()\"\n [disabled]=\"step.disableNextButton()\"\n >{{ step.nextButtonLabel() }}\n </watt-button>\n }\n </div>\n </mat-step>\n }\n }\n</mat-stepper>\n"]}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './index';
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=energinet-watt-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"energinet-watt-table.js","sourceRoot":"","sources":["../../../../libs/watt/package/table/energinet-watt-table.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
package/esm2022/table/index.js
CHANGED
|
@@ -18,4 +18,4 @@
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { WattTableDataSource, dataSource } from './watt-table-data-source';
|
|
20
20
|
export { WattTableComponent, WattTableCellDirective, WattTableToolbarDirective, WATT_TABLE, } from './watt-table.component';
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/watt/package/table/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB;;;;;;;;;;;;;;;GAeG;AACH,YAAY;AACZ,OAAO,EAAwB,mBAAmB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAGL,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,GACX,MAAM,wBAAwB,CAAC","sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nexport { IWattTableDataSource, WattTableDataSource, dataSource } from './watt-table-data-source';\nexport {\n type WattTableColumn,\n type WattTableColumnDef,\n WattTableComponent,\n WattTableCellDirective,\n WattTableToolbarDirective,\n WATT_TABLE,\n} from './watt-table.component';\n"]}
|
|
@@ -24,4 +24,4 @@ export const dataSource = (computation) => {
|
|
|
24
24
|
});
|
|
25
25
|
return dataSource;
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=data
|
|
27
|
+
//# sourceMappingURL=watt-table-data-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watt-table-data-source.js","sourceRoot":"","sources":["../../../../libs/watt/package/table/watt-table-data-source.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAW7D;;GAEG;AACH,MAAM,OAAO,mBACX,SAAQ,kBAAqB;IAG7B,YACE,WAAiB,EACjB,SAA6C,EAAE,qBAAqB,EAAE,KAAK,EAAE;QAE7E,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnB,IAAI,MAAM,CAAC,qBAAqB;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAS,EAAO,EAAE;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;IACN,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;CACF;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,WAAsB,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,gDAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,mBAAmB,EAAK,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE;QACV,UAAU,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC","sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { DataSource } from '@angular/cdk/collections';\nimport { computed, effect } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\n\nexport interface IWattTableDataSource<T> extends DataSource<T> {\n data: T[];\n filter: string;\n filteredData: T[];\n paginator: MatPaginator | null | undefined;\n sort: MatSort | null | undefined;\n totalCount: number;\n}\n\n/**\n * @see https://material.angular.dev/components/table/api#MatTableDataSource\n */\nexport class WattTableDataSource<T>\n extends MatTableDataSource<T>\n implements IWattTableDataSource<T>\n{\n constructor(\n initialData?: T[],\n config: { disableClientSideSort: boolean } = { disableClientSideSort: false }\n ) {\n super(initialData);\n\n if (config.disableClientSideSort)\n this.sortData = (data: T[]): T[] => {\n return data;\n };\n }\n\n get totalCount() {\n return this.data.length;\n }\n}\n\n/** Convenience method for creating a data source from reactive input. */\nexport const dataSource = <T>(computation: () => T[]) => {\n const data = computed(computation);\n const dataSource = new WattTableDataSource<T>();\n effect(() => {\n dataSource.data = data();\n });\n return dataSource;\n};\n"]}
|
|
@@ -62,4 +62,4 @@ export const animateExpandableCells = (elements, trigger) => {
|
|
|
62
62
|
},
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=watt-table-expand-animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watt-table-expand-animation.js","sourceRoot":"","sources":["../../../../libs/watt/package/table/watt-table-expand-animation.ts"],"names":[],"mappings":"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","sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport {\n afterRenderEffect,\n computed,\n ElementRef,\n linkedSignal,\n Signal,\n untracked,\n} from '@angular/core';\nimport { EXPANDABLE_CLASS } from './watt-table.component';\n\nexport const animateExpandableCells = (\n elements: Signal<readonly ElementRef<HTMLTableCellElement>[]>,\n trigger: Signal<unknown>\n) => {\n const cells = computed<HTMLTableCellElement[]>(() => elements().map((c) => c.nativeElement));\n const expandable = computed(() => cells().filter((c) => c.classList.contains(EXPANDABLE_CLASS)));\n\n // Accumulate a map of the height of cells. This needs to remember previous values\n // in case the table navigates/filters or otherwise changes the cells, since cell\n // elements will be added or removed from the list dynamically.\n const heightMap = linkedSignal<Record<string, number>, Record<string, number>>({\n source: computed(() => {\n trigger(); // recalculate when cells are expanded\n return Object.fromEntries(expandable().map((cell) => [cell.dataset.key, cell.offsetHeight]));\n }),\n computation: (source, prev) => ({ ...prev?.value, ...source }),\n });\n\n // Compute the differences in height for each cell since the last `trigger`\n const deltaMap = linkedSignal<Record<string, number>, [string, number][]>({\n source: heightMap,\n computation: (source, prev) =>\n Object.entries(source).map(([key, height]) => [key, height - (prev?.source[key] ?? 0)]),\n });\n\n return afterRenderEffect({\n read: () => {\n trigger(); // run the animation in response to the `trigger` signal only\n untracked(() => {\n deltaMap()\n .filter(([, deltaY]) => deltaY !== 0)\n .forEach(([key, deltaY]) => {\n // Animate all cells below the expanding cell\n const rowIndex = cells().find((c) => c.dataset.key === key)?.dataset.rowIndex;\n if (!rowIndex) return;\n cells()\n .filter((c) => c.dataset.rowIndex && c.dataset.rowIndex > rowIndex)\n .forEach((c) => {\n c.animate(\n { transform: [`translateY(${deltaY * -1}px)`, 'translateY(0)'] },\n { duration: 300, easing: 'cubic-bezier(0.4, 0, 0.2, 1)', composite: 'add' }\n );\n });\n });\n });\n },\n });\n};\n"]}
|
|
@@ -126,6 +126,10 @@ export class WattTableComponent {
|
|
|
126
126
|
* Whether to allow the user to clear the sort. Defaults to `true`.
|
|
127
127
|
*/
|
|
128
128
|
sortClear = input(true, ...(ngDevMode ? [{ debugName: "sortClear" }] : []));
|
|
129
|
+
/**
|
|
130
|
+
* Optional function to determine CSS class(es) for each row.
|
|
131
|
+
*/
|
|
132
|
+
rowClass = input(...(ngDevMode ? [undefined, { debugName: "rowClass" }] : []));
|
|
129
133
|
/**
|
|
130
134
|
* Whether the table should include a checkbox column for row selection.
|
|
131
135
|
*/
|
|
@@ -268,6 +272,13 @@ export class WattTableComponent {
|
|
|
268
272
|
return false;
|
|
269
273
|
return activeRowComparator ? activeRowComparator(row, activeRow) : row === activeRow;
|
|
270
274
|
};
|
|
275
|
+
getRowClass = (row) => {
|
|
276
|
+
const rowClass = this.rowClass();
|
|
277
|
+
if (!rowClass)
|
|
278
|
+
return '';
|
|
279
|
+
const result = rowClass(row);
|
|
280
|
+
return Array.isArray(result) ? result.join(' ') : result;
|
|
281
|
+
};
|
|
271
282
|
onRowClick = (row) => {
|
|
272
283
|
if (this.disabled() || window.getSelection()?.toString() !== '')
|
|
273
284
|
return;
|
|
@@ -302,7 +313,7 @@ export class WattTableComponent {
|
|
|
302
313
|
*/
|
|
303
314
|
toggleSelection = (row) => this.selection.update((s) => (s.includes(row) ? s.filter((r) => r !== row) : s.concat(row)));
|
|
304
315
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
305
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattTableComponent, isStandalone: true, selector: "watt-table", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, stickyFooter: { classPropertyName: "stickyFooter", publicName: "stickyFooter", isSignal: true, isRequired: false, transformFunction: null }, resolveHeader: { classPropertyName: "resolveHeader", publicName: "resolveHeader", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortClear: { classPropertyName: "sortClear", publicName: "sortClear", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, suppressRowHoverHighlight: { classPropertyName: "suppressRowHoverHighlight", publicName: "suppressRowHoverHighlight", isSignal: true, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: true, isRequired: false, transformFunction: null }, activeRowComparator: { classPropertyName: "activeRowComparator", publicName: "activeRowComparator", isSignal: true, isRequired: false, transformFunction: null }, hideColumnHeaders: { classPropertyName: "hideColumnHeaders", publicName: "hideColumnHeaders", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", expanded: "expandedChange", rowClick: "rowClick", sortChange: "sortChange" }, host: { properties: { "class.watt-table-variant-zebra": "variant() === \"zebra\"", "style.--watt-table-grid-template-columns": "sizing().join(\" \")" } }, queries: [{ propertyName: "cells", predicate: (WattTableCellDirective), isSignal: true }, { propertyName: "toolbar", first: true, predicate: (WattTableToolbarDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }, { propertyName: "tableCellElements", predicate: ["td"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattCheckboxComponent, selector: "watt-checkbox", inputs: ["required"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [NgTemplateOutlet]] });
|
|
316
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattTableComponent, isStandalone: true, selector: "watt-table", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, stickyFooter: { classPropertyName: "stickyFooter", publicName: "stickyFooter", isSignal: true, isRequired: false, transformFunction: null }, resolveHeader: { classPropertyName: "resolveHeader", publicName: "resolveHeader", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortClear: { classPropertyName: "sortClear", publicName: "sortClear", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, suppressRowHoverHighlight: { classPropertyName: "suppressRowHoverHighlight", publicName: "suppressRowHoverHighlight", isSignal: true, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: true, isRequired: false, transformFunction: null }, activeRowComparator: { classPropertyName: "activeRowComparator", publicName: "activeRowComparator", isSignal: true, isRequired: false, transformFunction: null }, hideColumnHeaders: { classPropertyName: "hideColumnHeaders", publicName: "hideColumnHeaders", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", expanded: "expandedChange", rowClick: "rowClick", sortChange: "sortChange" }, host: { properties: { "class.watt-table-variant-zebra": "variant() === \"zebra\"", "style.--watt-table-grid-template-columns": "sizing().join(\" \")" } }, queries: [{ propertyName: "cells", predicate: (WattTableCellDirective), isSignal: true }, { propertyName: "toolbar", first: true, predicate: (WattTableToolbarDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }, { propertyName: "tableCellElements", predicate: ["td"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [class]=\"getRowClass(row)\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattCheckboxComponent, selector: "watt-checkbox", inputs: ["required"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [NgTemplateOutlet]] });
|
|
306
317
|
}
|
|
307
318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattTableComponent, decorators: [{
|
|
308
319
|
type: Component,
|
|
@@ -318,7 +329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
318
329
|
], encapsulation: ViewEncapsulation.None, selector: 'watt-table', host: {
|
|
319
330
|
'[class.watt-table-variant-zebra]': 'variant() === "zebra"',
|
|
320
331
|
'[style.--watt-table-grid-template-columns]': 'sizing().join(" ")',
|
|
321
|
-
}, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"] }]
|
|
322
|
-
}], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], displayedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayedColumns", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], stickyFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyFooter", required: false }] }], resolveHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolveHeader", required: false }] }], sortBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortBy", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], sortClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortClear", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], suppressRowHoverHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "suppressRowHoverHighlight", required: false }] }], activeRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRow", required: false }] }], activeRowComparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRowComparator", required: false }] }], hideColumnHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideColumnHeaders", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], cells: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattTableCellDirective), { isSignal: true }] }], toolbar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattTableToolbarDirective), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }], tableCellElements: [{ type: i0.ViewChildren, args: ['td', { isSignal: true }] }] } });
|
|
332
|
+
}, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [class]=\"getRowClass(row)\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:48px;padding:var(--watt-space-xs) var(--watt-space-m);line-height:18px}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center;text-align:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right;text-align:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n):not(.watt-table-active-row)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-cell-wrapper{width:100%}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"] }]
|
|
333
|
+
}], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], displayedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayedColumns", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], stickyFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyFooter", required: false }] }], resolveHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolveHeader", required: false }] }], sortBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortBy", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], sortClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortClear", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], suppressRowHoverHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "suppressRowHoverHighlight", required: false }] }], activeRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRow", required: false }] }], activeRowComparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRowComparator", required: false }] }], hideColumnHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideColumnHeaders", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], cells: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattTableCellDirective), { isSignal: true }] }], toolbar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattTableToolbarDirective), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }], tableCellElements: [{ type: i0.ViewChildren, args: ['td', { isSignal: true }] }] } });
|
|
323
334
|
export const WATT_TABLE = [WattTableComponent, WattTableCellDirective, WattTableToolbarDirective];
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS90YWJsZS93YXR0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3RhYmxlL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQVksWUFBWSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF3QixtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUV2RSx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUM7QUF3SDlELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFdBQW9DLENBQUEsQ0FBQyxDQUFDO0lBRTNEOztPQUVHO0lBQ00sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLHlDQUF1QixLQUFLLEVBQUUsZUFBZSxPQUF4QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO0lBRWpGOztPQUVHO0lBQ00sTUFBTSxHQUFHLEtBQUssQ0FBUyxTQUFTLDBDQUFJLEtBQUssRUFBRSxxQkFBcUIsT0FBOUIsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsR0FBQyxDQUFDO0lBRTdFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDM0IsVUFBcUMsRUFDckMsT0FBZ0I7UUFFaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQWxCVSxzQkFBc0I7MkZBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7QUF5QkQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBeUMsQ0FBQSxDQUFDLENBQUM7SUFDaEUsTUFBTSxDQUFDLHNCQUFzQixDQUMzQixVQUF3QyxFQUN4QyxPQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7dUdBUFUseUJBQXlCOzJGQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7O0FBV0Q7OztHQUdHO0FBcUJILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7OztPQUdHO0lBQ00sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLHFEQUEyQixDQUFDO0lBRWhFOzs7OztPQUtHO0lBQ00sT0FBTyxHQUFHLEtBQUssQ0FBd0IsRUFBRSxtREFBQyxDQUFDO0lBRXBEOztPQUVHO0lBQ00sZ0JBQWdCLEdBQUcsS0FBSyxzRUFBWSxDQUFDO0lBRTlDOztPQUVHO0lBQ00sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLG9EQUFDLENBQUM7SUFFakM7O09BRUc7SUFDTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEVBQUUsdURBQUMsQ0FBQztJQUVqQzs7O09BR0c7SUFDTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssbURBQUMsQ0FBQztJQUVoQzs7T0FFRztJQUNNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyx3REFBQyxDQUFDO0lBRXJDOzs7O09BSUc7SUFDTSxhQUFhLEdBQUcsS0FBSyxtRUFBMkIsQ0FBQztJQUUxRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxLQUFLLENBQUMsRUFBRSxrREFBQyxDQUFDO0lBRTVCOztPQUVHO0lBQ00sYUFBYSxHQUFHLEtBQUssQ0FBZ0IsRUFBRSx5REFBQyxDQUFDO0lBRWxEOztPQUVHO0lBQ00sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLHFEQUFDLENBQUM7SUFFakM7O09BRUc7SUFDTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssc0RBQUMsQ0FBQztJQUVuQzs7T0FFRztJQUNNLFNBQVMsR0FBRyxLQUFLLENBQU0sRUFBRSxxREFBQyxDQUFDO0lBRXBDOztPQUVHO0lBQ00seUJBQXlCLEdBQUcsS0FBSyxDQUFDLEtBQUsscUVBQUMsQ0FBQztJQUVsRDs7T0FFRztJQUNNLFNBQVMsR0FBRyxLQUFLLCtEQUFLLENBQUM7SUFFaEM7Ozs7Ozs7O09BUUc7SUFDTSxtQkFBbUIsR0FBRyxLQUFLLHlFQUE0QyxDQUFDO0lBRWpGOztPQUVHO0lBQ00saUJBQWlCLEdBQUcsS0FBSyxDQUFDLEtBQUssNkRBQUMsQ0FBQztJQUUxQzs7T0FFRztJQUNNLE9BQU8sR0FBRyxLQUFLLDZEQUFXLENBQUM7SUFFcEM7O09BRUc7SUFDTSxRQUFRLEdBQUcsS0FBSyxDQUFNLEVBQUUsb0RBQUMsQ0FBQztJQUVuQzs7T0FFRztJQUNNLE9BQU8sR0FBRyxLQUFLLDZEQUFnQyxDQUFDO0lBRXpEOzs7OztPQUtHO0lBQ08sU0FBUyxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7SUFFdkM7O09BRUc7SUFDTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXpEOztPQUVHO0lBQ00sVUFBVSxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRXJDLFVBQVU7SUFDQSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUEsc0JBQXlCLENBQUEsaURBQUMsQ0FBQztJQUNuRCxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUEseUJBQTRCLENBQUEsbURBQUMsQ0FBQztJQUNyRCxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sZ0RBQUMsQ0FBQztJQUVwQyxtREFBbUQ7SUFDekMsaUJBQWlCLEdBQUcsWUFBWSxDQUFtQyxJQUFJLDZEQUFDLENBQUM7SUFDekUsZUFBZSxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFMUYsYUFBYTtJQUNILGlCQUFpQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEYsaUJBQWlCLEdBQUcsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDcEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1QyxPQUFPLGlCQUFpQixDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUYsQ0FBQyxDQUFDO0lBRUYsbUNBQW1DO0lBQ3pCLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQztJQUN0QyxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztJQUUxQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHFEQUFDLENBQUM7SUFDaEYsWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyx3REFBQyxDQUFDO0lBQ3ZGLGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkUsT0FBTztZQUNMLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkQsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZELEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztTQUMzRCxDQUFDO0lBQ0osQ0FBQywyREFBQyxDQUFDO0lBRU8sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRTthQUMxQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQzthQUMxQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNYLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ1osS0FBSyxJQUFJLENBQUMsY0FBYztvQkFDdEIsT0FBTyxzQkFBc0IsQ0FBQztnQkFDaEMsS0FBSyxJQUFJLENBQUMsZ0JBQWdCO29CQUN4QixPQUFPLGFBQWEsQ0FBQztnQkFDdkI7b0JBQ0UsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLGtEQUFDLENBQUM7SUFFSCw4REFBOEQ7SUFDdEQsV0FBVyxHQUFHLENBQUMsTUFBMEIsRUFBRSxHQUFNLEVBQUUsRUFBRTtRQUMzRCxJQUFJLE1BQU0sQ0FBQyxJQUFJO1lBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNyQixDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLEtBQUssVUFBVTtnQkFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUN0QixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFFUSxpQkFBaUIsR0FBRyxDQUFDLE1BQTBCLEVBQUUsRUFBRSxDQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBRTNELGVBQWUsR0FBRyxDQUFDLE1BQTRDLEVBQUUsRUFBRTtRQUMzRSxJQUFJLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RSxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUM1RSxDQUFDLENBQUM7SUFFUSxhQUFhLEdBQUcsQ0FBQyxNQUEwQixFQUFFLEdBQU0sRUFBRSxFQUFFO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSTtZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3BELElBQUksSUFBSSxZQUFZLElBQUk7WUFBRSxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVRLFNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFNLEVBQUUsRUFBRTtRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRO1lBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVO1lBQUUsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDO0lBRVEsV0FBVyxHQUFHLENBQUMsR0FBTSxFQUFFLEVBQUU7UUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM3QixPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDdkYsQ0FBQyxDQUFDO0lBRVEsVUFBVSxHQUFHLENBQUMsR0FBTSxFQUFFLEVBQUU7UUFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFBRSxPQUFPO1FBQ3hFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQ25FLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0lBRUY7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxtQkFBbUIsQ0FBQztnQkFBRSxPQUFPO1lBQ3pELFVBQVUsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEdBQU0sRUFBRSxZQUFvQixFQUFFLEVBQUU7Z0JBQ2hFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtvQkFBRSxPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQjtnQkFDdEYsSUFBSSxLQUFLLFlBQVksSUFBSTtvQkFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEQsT0FBTyxLQUFlLENBQUM7WUFDekIsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFMUU7O09BRUc7SUFDSCxlQUFlLEdBQUcsQ0FBQyxHQUFNLEVBQUUsRUFBRSxDQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO3VHQWpRcEYsa0JBQWtCOzJGQUFsQixrQkFBa0IsMGtHQXFJSyxDQUFBLHNCQUF5QixDQUFBLHVFQUMxQixDQUFBLHlCQUE0QixDQUFBLHNHQUNsQyxPQUFPLDZKQzNXcEMsNjBNQTRMQSxrZ01Ec0JJLE9BQU8sb0ZBQ1AsZ0JBQWdCLG1KQUVoQixXQUFXLDhWQUNYLGFBQWEsaWRBQ2IsY0FBYywrZ0RBQ2QsaUJBQWlCLGtHQUNqQixxQkFBcUIsMkVBTHJCLFlBQVksaUdBRFosZ0JBQWdCOzsyRkFpQlAsa0JBQWtCO2tCQXBCOUIsU0FBUzs4QkFDQzt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLHFCQUFxQjtxQkFDdEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxZQUMzQixZQUFZLFFBR2hCO3dCQUNKLGtDQUFrQyxFQUFFLHVCQUF1Qjt3QkFDM0QsNENBQTRDLEVBQUUsb0JBQW9CO3FCQUNuRTtpMEVBdUlpQyxzQkFBeUIseUZBQzFCLHlCQUE0QixtRkFDbEMsT0FBTywrRUFHMkMsSUFBSTtBQTBIbkYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IEtleVZhbHVlLCBLZXlWYWx1ZVBpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICB2aWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgU2lnbmFsLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0TW9kdWxlLCBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgV2F0dENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NoZWNrYm94JztcbmltcG9ydCB7IHdhdHRGb3JtYXREYXRlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NvcmUvZGF0ZSc7XG5pbXBvcnQgeyBXYXR0SWNvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IElXYXR0VGFibGVEYXRhU291cmNlLCBXYXR0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi93YXR0LXRhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7IGFuaW1hdGVFeHBhbmRhYmxlQ2VsbHMgfSBmcm9tICcuL3dhdHQtdGFibGUtZXhwYW5kLWFuaW1hdGlvbic7XG5cbi8qKiBDbGFzcyBuYW1lIGZvciBleHBhbmRhYmxlIGNlbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEVYUEFOREFCTEVfQ0xBU1MgPSAnd2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXYXR0VGFibGVDb2x1bW48VD4ge1xuICAvKipcbiAgICogVGhlIGRhdGEgdGhhdCB0aGlzIGNvbHVtbiBzaG91bGQgYmUgYm91bmQgdG8sIGVpdGhlciBhcyBhIHByb3BlcnR5IG9mIGBUYFxuICAgKiBvciBkZXJpdmVkIGZyb20gZWFjaCByb3cgb2YgYFRgIHVzaW5nIGFuIGFjY2Vzc29yIGZ1bmN0aW9uLiAgVXNlIGBudWxsYFxuICAgKiBmb3IgY29sdW1ucyB0aGF0IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGRhdGEsIGJ1dCBub3RlIHRoYXQgdGhpc1xuICAgKiB3aWxsIGRpc2FibGUgc29ydGluZyBhbmQgYXV0b21hdGljIGNlbGwgcG9wdWxhdGlvbi5cbiAgICovXG4gIGFjY2Vzc29yOiBrZXlvZiBUIHwgKChyb3c6IFQpID0+IHVua25vd24pIHwgbnVsbDtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgaGVhZGVyIHRleHQgdG8gYSBzdGF0aWMgZGlzcGxheSB2YWx1ZS4gVGhpcyB3aWxsIHByZXZlbnRcbiAgICogdGhlIGByZXNvbHZlSGVhZGVyYCBpbnB1dCBmdW5jdGlvbiBmcm9tIGJlaW5nIGNhbGxlZCBmb3IgdGhpcyBjb2x1bW4uXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBjZWxsIGNvbnRlbnQgd2hlbiBub3QgdXNpbmcgdGVtcGxhdGUuIEJ5IGRlZmF1bHQsXG4gICAqIGNlbGwgY29udGVudCBpcyBmb3VuZCB1c2luZyB0aGUgYGFjY2Vzc29yYCAodW5sZXNzIGl0IGlzIGBudWxsYCkuXG4gICAqL1xuICBjZWxsPzogKHJvdzogVCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIGZvciB0aGlzIGNvbHVtbi4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAqIHVubGVzcyBgYWNjZXNzb3JgIGlzIGBudWxsYC5cbiAgICovXG4gIHNvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbHVtbiBzaXplIHVzaW5nIGdyaWQgc2l6aW5nIHZhbHVlcy4gRGVmYXVsdHMgdG8gYFwiYXV0b1wiYC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogQWNjZXB0cyBhbGwgb2YgdGhlIENTUyBncmlkIHRyYWNrIHNpemUga2V5d29yZHMgKHN1Y2ggYXMgYG1pbi1jb250ZW50YCxcbiAgICogYG1heC1jb250ZW50YCwgYG1pbm1heCgpYCkgYXMgd2VsbCBhcyBmcmFjdGlvbmFsIChgZnJgKSwgcGVyY2VudGFnZSAoYCVgKVxuICAgKiBhbmQgbGVuZ3RoIChgcHhgLCBgZW1gLCBldGMpIHVuaXRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jdHJhY2stc2l6ZXNcbiAgICovXG4gIHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvcml6b250YWxseSBhbGlnbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbHVtbi4gRGVmYXVsdHMgdG8gYFwibGVmdFwiYC5cbiAgICovXG4gIGFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgaWNvbiB3aWxsIGJlIHNob3duIGluIHRoZSBoZWFkZXIgY2VsbCwgd2l0aCBhbiBjbGljayBldmVudC5cbiAgICovXG4gIGhlbHBlckFjdGlvbj86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgaGVhZGVyIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGhlYWRlckNlbGxDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBkYXRhIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGRhdGFDZWxsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uIGZvciB0aGUgY29sdW1uLlxuICAgKi9cbiAgZm9vdGVyPzogV2F0dFRhYmxlQ29sdW1uRm9vdGVyO1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gcmVtYWlucyB2aXNpYmxlIHdoZW4gaG9yaXpvbnRhbGx5IHNjcm9sbGluZy5cbiAgICovXG4gIHN0aWNreUVuZD86IFNpZ25hbDxib29sZWFuPjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBjZWxsIGlzIHJlcGxhY2VkIHdpdGggYW4gZXhwYW5kYWJsZSBhcnJvdyBhbmQgdGhlIGNvbnRlbnQgaXMgZGVmZXJyZWQuXG4gICAqIENsaWNraW5nIG9uIHRoZSBhcnJvdyByZXZlYWxzIHRoZSBjb250ZW50IGJlbG93IHRoZSBjdXJyZW50IHJvdy5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBgdHJhY2tCeWAgZnVuY3Rpb24gd2hlbiB1c2luZyBgZXhwYW5kYWJsZWAsXG4gICAqIG90aGVyd2lzZSBhbmltYXRpb25zIGNhbiBiZSBpbmFjY3VyYXRlIHdoZW4gZGF0YSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvb2x0aXAgdGV4dCB0byBzaG93IG9uIGhvdmVyIG9mIHRoZSBoZWFkZXIgY2VsbC5cbiAgICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBjZWxsIG9mIGEgY29sdW1uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdHRUYWJsZUNvbHVtbkZvb3RlciB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZm9vdGVyIGNlbGwuXG4gICAqL1xuICB2YWx1ZT86IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGZvb3RlciBjZWxsLlxuICAgKi9cbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVjb3JkIGZvciBkZWZpbmluZyBjb2x1bW5zIHdpdGgga2V5cyB1c2VkIGFzIGNvbHVtbiBpZGVudGlmaWVycy5cbiAqL1xuZXhwb3J0IHR5cGUgV2F0dFRhYmxlQ29sdW1uRGVmPFQ+ID0gUmVjb3JkPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+PjtcblxuLy8gVXNlZCBmb3Igc3Ryb25nbHkgdHlwaW5nIHRoZSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZVxuaW50ZXJmYWNlIFdhdHRUYWJsZUNlbGxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBUO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgV2F0dFRhYmxlVG9vbGJhckNvbnRleHQ8VD4ge1xuICAkaW1wbGljaXQ6IFQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVDZWxsXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZUNlbGxEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVDZWxsQ29udGV4dDxUPj4pO1xuXG4gIC8qKlxuICAgKiBUaGUgV2F0dFRhYmxlQ29sdW1uIHRoaXMgdGVtcGxhdGUgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbiA9IGlucHV0LnJlcXVpcmVkPFdhdHRUYWJsZUNvbHVtbjxUPj4oeyBhbGlhczogJ3dhdHRUYWJsZUNlbGwnIH0pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXIgdGV4dCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlciA9IGlucHV0PHN0cmluZz4odW5kZWZpbmVkLCB7IGFsaWFzOiAnd2F0dFRhYmxlQ2VsbEhlYWRlcicgfSk7XG5cbiAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oXG4gICAgX2RpcmVjdGl2ZTogV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZTxUPixcbiAgICBjb250ZXh0OiB1bmtub3duXG4gICk6IGNvbnRleHQgaXMgV2F0dFRhYmxlQ2VsbENvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVUb29sYmFyXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVUb29sYmFyQ29udGV4dDxUW10+Pik7XG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgIF9kaXJlY3RpdmU6IFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4sXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBjb250ZXh0IGlzIFdhdHRUYWJsZVRvb2xiYXJDb250ZXh0PFRbXT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV0FUVF9UQUJMRSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC90YWJsZSc7YFxuICovXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBLZXlWYWx1ZVBpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgICBXYXR0Q2hlY2tib3hDb21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHNlbGVjdG9yOiAnd2F0dC10YWJsZScsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy53YXR0LXRhYmxlLXZhcmlhbnQtemVicmFdJzogJ3ZhcmlhbnQoKSA9PT0gXCJ6ZWJyYVwiJyxcbiAgICAnW3N0eWxlLi0td2F0dC10YWJsZS1ncmlkLXRlbXBsYXRlLWNvbHVtbnNdJzogJ3NpemluZygpLmpvaW4oXCIgXCIpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dFRhYmxlQ29tcG9uZW50PFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSdzIHNvdXJjZSBvZiBkYXRhLiBQcm9wZXJ0eSBzaG91bGQgbm90IGJlIGNoYW5nZWQgYWZ0ZXJcbiAgICogaW5pdGlhbGl6YXRpb24sIGluc3RlYWQgdXBkYXRlIHRoZSBkYXRhIG9uIHRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlID0gaW5wdXQucmVxdWlyZWQ8SVdhdHRUYWJsZURhdGFTb3VyY2U8VD4+KCk7XG5cbiAgLyoqXG4gICAqIENvbHVtbiBkZWZpbml0aW9uIHJlY29yZCB3aXRoIGtleXMgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4gaWRlbnRpZmllcnNcbiAgICogYW5kIHZhbHVlcyBiZWluZyB0aGUgY29sdW1uIGNvbmZpZ3VyYXRpb24uIFRoZSBvcmRlciBvZiB0aGUgY29sdW1uc1xuICAgKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBwcm9wZXJ0eSBvcmRlciwgYnV0IGNhbiBiZSBvdmVycnVsZWQgYnkgdGhlXG4gICAqIGBkaXNwbGF5ZWRDb2x1bW5zYCBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBpbnB1dDxXYXR0VGFibGVDb2x1bW5EZWY8VD4+KHt9KTtcblxuICAvKipcbiAgICogVXNlZCBmb3IgaGlkaW5nIG9yIHJlb3JkZXJpbmcgY29sdW1ucyBkZWZpbmVkIGluIHRoZSBgY29sdW1uc2AgaW5wdXQuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zID0gaW5wdXQ8c3RyaW5nW10+KCk7XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIGRpc2FibGluZyB0aGUgdGFibGUuIFRoaXMgd2lsbCBkaXNhYmxlIGFsbCB1c2VyIGludGVyYWN0aW9uXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogUHJvdmlkZSBhIGRlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBmb3IgdmlzdWFsbHkgaW1wYWlyZWQgdXNlcnMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9IGlucHV0KCcnKTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIHRhYmxlIHdpbGwgc2hvdyBhIGxvYWRpbmcgaW5kaWNhdG9yXG4gICAqIHdoZW4gdGhlcmUgaXMgbm8gZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIElmIHRydWUgdGhlIGZvb3RlciB3aWxsIGJlIHN0aWNreVxuICAgKi9cbiAgcmVhZG9ubHkgc3RpY2t5Rm9vdGVyID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZGV0ZXJtaW5pbmcgaGVhZGVyIHRleHQgZm9yIGNvbHVtbnMgdGhhdFxuICAgKiBkbyBub3QgaGF2ZSBhIHN0YXRpYyBoZWFkZXIgdGV4dCBzZXQgaW4gdGhlIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKiBVc2VmdWwgZm9yIHByb3ZpZGluZyB0cmFuc2xhdGlvbnMgb2YgY29sdW1uIGhlYWRlcnMuXG4gICAqL1xuICByZWFkb25seSByZXNvbHZlSGVhZGVyID0gaW5wdXQ8KGtleTogc3RyaW5nKSA9PiBzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIGNvbHVtbiB0aGF0IHNob3VsZCBiZSBzb3J0ZWQgaW5pdGlhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydEJ5ID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBkaXJlY3Rpb24gb2YgdGhlIGluaXRpYWxseSBzb3J0ZWQgY29sdW1uLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydERpcmVjdGlvbiA9IGlucHV0PFNvcnREaXJlY3Rpb24+KCcnKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyB0aGUgdXNlciB0byBjbGVhciB0aGUgc29ydC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydENsZWFyID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRhYmxlIHNob3VsZCBpbmNsdWRlIGEgY2hlY2tib3ggY29sdW1uIGZvciByb3cgc2VsZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VsZWN0ZWQgcm93cy4gT25seSBhcHBsaWNhYmxlIHdoZW4gc2VsZWN0YWJsZSBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzZWxlY3Rpb24gPSBtb2RlbDxUW10+KFtdKTtcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gZGlzYWJsZSByb3cgaG92ZXIgaGlnaGxpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSByb3cuXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVSb3cgPSBpbnB1dDxUPigpO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY29tcGFyYXRvciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdHdvIHJvd3MgYXJlIGVxdWFsLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFjdGl2ZSByb3cgaXMgdG8gY29tcGFyZVxuICAgKiB0aGUgdHdvIHJvdyBvYmplY3RzIHVzaW5nIHN0cmljdCBlcXVhbGl0eSBjaGVjay4gVGhpcyBpcyBzdWZmaWNpZW50XG4gICAqIGFzIGxvbmcgYXMgdGhlIGluc3RhbmNlcyByZW1haW4gdGhlIHNhbWUsIHdoaWNoIG1heSBub3QgYmUgdGhlIGNhc2VcbiAgICogaWYgcm93IGRhdGEgaXMgcmVjcmVhdGVkIG9yIHJlYnVpbHQgZnJvbSBzZXJpYWxpemF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlUm93Q29tcGFyYXRvciA9IGlucHV0PChjdXJyZW50Um93OiBULCBhY3RpdmVSb3c6IFQpID0+IGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gaGVhZGVycyB3aWxsIG5vdCBiZSBzaG93bi4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgaGlkZUNvbHVtbkhlYWRlcnMgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIENob29zZSBmcm9tIGEgcHJlZGVmaW5lZCBzZXQgb2YgZGlzcGxheSB2YXJpYW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDwnemVicmEnPigpO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiByb3dzIHRoYXQgYXJlIGN1cnJlbnRseSBleHBhbmRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cGFuZGVkID0gbW9kZWw8VFtdPihbXSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bmN0aW9uIGZvciB1bmlxdWVseSBpZGVudGlmeWluZyByb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2tCeSA9IGlucHV0PFRyYWNrQnlGdW5jdGlvbjxUPiB8IGtleW9mIFQ+KCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICogVGhlIGBvYnNlcnZlZGAgYm9vbGVhbiBmcm9tIHRoZSBgU3ViamVjdGAgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgYSByb3cgaXNcbiAgICogY2xpY2thYmxlIG9yIG5vdC4gVGhpcyBpcyBhdmFpbGFibGUgb24gYEV2ZW50RW1pdHRlcmAsIGJ1dCBub3Qgb24gYG91dHB1dGAsXG4gICAqIHdoaWNoIGlzIHdoeSB0aGlzIHdvcmthcm91bmQgaXMgdXNlZC5cbiAgICovXG4gIHByb3RlY3RlZCByb3dDbGljayQgPSBuZXcgU3ViamVjdDxUPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciBhIHJvdyBpcyBjbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcm93Q2xpY2sgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLnJvd0NsaWNrJCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBhY3RpdmUgc29ydCBvciBzb3J0IGRpcmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNvcnRDaGFuZ2UgPSBvdXRwdXQ8U29ydD4oKTtcblxuICAvLyBRdWVyaWVzXG4gIHByb3RlY3RlZCBjZWxscyA9IGNvbnRlbnRDaGlsZHJlbihXYXR0VGFibGVDZWxsRGlyZWN0aXZlPFQ+KTtcbiAgcHJvdGVjdGVkIHRvb2xiYXIgPSBjb250ZW50Q2hpbGQoV2F0dFRhYmxlVG9vbGJhckRpcmVjdGl2ZTxUPik7XG4gIHByb3RlY3RlZCBzb3J0ID0gdmlld0NoaWxkKE1hdFNvcnQpO1xuXG4gIC8vIEVuYWJsZXMgYW5pbWF0aW9uIGZvciBleHBhbmRpbmcvY29sbGFwc2luZyBjZWxsc1xuICBwcm90ZWN0ZWQgdGFibGVDZWxsRWxlbWVudHMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4+KCd0ZCcpO1xuICBwcm90ZWN0ZWQgYW5pbWF0aW9uRWZmZWN0ID0gYW5pbWF0ZUV4cGFuZGFibGVDZWxscyh0aGlzLnRhYmxlQ2VsbEVsZW1lbnRzLCB0aGlzLmV4cGFuZGVkKTtcblxuICAvLyBTZWxlY3RhYmxlXG4gIHByb3RlY3RlZCBmaWx0ZXJTZWxlY3Rpb25CeSA9IChyb3dzOiBUW10pID0+IHJvd3MuZmlsdGVyKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uKCkuaW5jbHVkZXMocm93KSk7XG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGE7XG4gICAgY29uc3QgZmlsdGVyZWRTZWxlY3Rpb24gPSB0aGlzLmZpbHRlclNlbGVjdGlvbkJ5KGZpbHRlcmVkRGF0YSk7XG4gICAgaWYgKCFmaWx0ZXJlZFNlbGVjdGlvbi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZmlsdGVyZWRTZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID8gdHJ1ZSA6IG51bGw7XG4gIH07XG5cbiAgLy8gVW5pcXVlIG5hbWVzIGZvciBzcGVjaWFsIGNvbHVtbnNcbiAgcHJvdGVjdGVkIGNoZWNrYm94Q29sdW1uID0gJ19fY2hlY2tib3hDb2x1bW5fXyc7XG4gIHByb3RlY3RlZCBleHBhbmRhYmxlQ29sdW1uID0gJ19fZXhwYW5kYWJsZUNvbHVtbl9fJztcblxuICBwcm90ZWN0ZWQgaGFzRm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmNvbHVtbnMoKSkuc29tZSgoYykgPT4gYy5mb290ZXIpKTtcbiAgcHJvdGVjdGVkIGlzRXhwYW5kYWJsZSA9IGNvbXB1dGVkKCgpID0+IE9iamVjdC52YWx1ZXModGhpcy5jb2x1bW5zKCkpLnNvbWUoKGMpID0+IGMuZXhwYW5kYWJsZSkpO1xuICBwcm90ZWN0ZWQgcmVuZGVyZWRDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMoKSA/PyBPYmplY3Qua2V5cyh0aGlzLmNvbHVtbnMoKSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLnNlbGVjdGFibGUoKSA/IFt0aGlzLmNoZWNrYm94Q29sdW1uXSA6IFtdKSxcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKChrZXkpID0+ICF0aGlzLmNvbHVtbnMoKVtrZXldLmV4cGFuZGFibGUpLFxuICAgICAgLi4uKHRoaXMuaXNFeHBhbmRhYmxlKCkgPyBbdGhpcy5leHBhbmRhYmxlQ29sdW1uXSA6IFtdKSxcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKChrZXkpID0+IHRoaXMuY29sdW1ucygpW2tleV0uZXhwYW5kYWJsZSksXG4gICAgXTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHNpemluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zKCk7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyZWRDb2x1bW5zKClcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gIWNvbHVtbnNba2V5XT8uZXhwYW5kYWJsZSlcbiAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgIGNhc2UgdGhpcy5jaGVja2JveENvbHVtbjpcbiAgICAgICAgICAgIHJldHVybiAndmFyKC0td2F0dC1zcGFjZS14bCknO1xuICAgICAgICAgIGNhc2UgdGhpcy5leHBhbmRhYmxlQ29sdW1uOlxuICAgICAgICAgICAgcmV0dXJuICdtaW4tY29udGVudCc7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5zW2tleV0/LnNpemUgPz8gJ2F1dG8nO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIFRyeSB0byBnZXQgY2VsbCBkYXRhIGZvciBhIHNwZWNpZmljIGBjb2x1bW5gIGFuZCBgcm93YC4gKi9cbiAgcHJpdmF0ZSBnZXRDZWxsRGF0YSA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPiwgcm93OiBUKSA9PiB7XG4gICAgaWYgKGNvbHVtbi5jZWxsKSByZXR1cm4gY29sdW1uLmNlbGwocm93KTtcbiAgICByZXR1cm4gIWNvbHVtbi5hY2Nlc3NvclxuICAgICAgPyAnJ1xuICAgICAgOiB0eXBlb2YgY29sdW1uLmFjY2Vzc29yID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY29sdW1uLmFjY2Vzc29yKHJvdylcbiAgICAgICAgOiByb3dbY29sdW1uLmFjY2Vzc29yXTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uVGVtcGxhdGUgPSAoY29sdW1uOiBXYXR0VGFibGVDb2x1bW48VD4pID0+XG4gICAgdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbik/LnRlbXBsYXRlUmVmO1xuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5IZWFkZXIgPSAoY29sdW1uOiBLZXlWYWx1ZTxzdHJpbmcsIFdhdHRUYWJsZUNvbHVtbjxUPj4pID0+IHtcbiAgICBpZiAodHlwZW9mIGNvbHVtbi52YWx1ZS5oZWFkZXIgPT09ICdzdHJpbmcnKSByZXR1cm4gY29sdW1uLnZhbHVlLmhlYWRlcjtcbiAgICBjb25zdCBjZWxsID0gdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbi52YWx1ZSk7XG4gICAgcmV0dXJuIGNlbGw/LmhlYWRlcigpID8/IHRoaXMucmVzb2x2ZUhlYWRlcigpPy4oY29sdW1uLmtleSkgPz8gY29sdW1uLmtleTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uQ2VsbCA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPiwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgY2VsbCA9IHRoaXMuZ2V0Q2VsbERhdGEoY29sdW1uLCByb3cpO1xuICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQgfHwgY2VsbCA9PT0gbnVsbCkgcmV0dXJuICfigJQnO1xuICAgIGlmIChjZWxsIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIHdhdHRGb3JtYXREYXRlKGNlbGwpO1xuICAgIHJldHVybiBjZWxsO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRSb3dLZXkgPSAoaW5kZXg6IG51bWJlciwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgdHJhY2tCeSA9IHRoaXMudHJhY2tCeSgpO1xuICAgIGlmICh0eXBlb2YgdHJhY2tCeSA9PT0gJ3N0cmluZycpIHJldHVybiByb3dbdHJhY2tCeV07XG4gICAgaWYgKHR5cGVvZiB0cmFja0J5ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdHJhY2tCeShpbmRleCwgcm93KTtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlKCkuZGF0YS5pbmRleE9mKHJvdyk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlUm93ID0gKHJvdzogVCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZVJvdyA9IHRoaXMuYWN0aXZlUm93KCk7XG4gICAgY29uc3QgYWN0aXZlUm93Q29tcGFyYXRvciA9IHRoaXMuYWN0aXZlUm93Q29tcGFyYXRvcigpO1xuICAgIGlmICghYWN0aXZlUm93KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFjdGl2ZVJvd0NvbXBhcmF0b3IgPyBhY3RpdmVSb3dDb21wYXJhdG9yKHJvdywgYWN0aXZlUm93KSA6IHJvdyA9PT0gYWN0aXZlUm93O1xuICB9O1xuXG4gIHByb3RlY3RlZCBvblJvd0NsaWNrID0gKHJvdzogVCkgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgd2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpICE9PSAnJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzRXhwYW5kYWJsZSgpKSB7XG4gICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZSgocm93cykgPT5cbiAgICAgICAgcm93cy5pbmNsdWRlcyhyb3cpID8gcm93cy5maWx0ZXIoKHIpID0+IHIgIT0gcm93KSA6IFsuLi5yb3dzLCByb3ddXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucm93Q2xpY2skLm5leHQocm93KTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgICAgZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0KCk7XG4gICAgICBpZiAoIShkYXRhU291cmNlIGluc3RhbmNlb2YgV2F0dFRhYmxlRGF0YVNvdXJjZSkpIHJldHVybjtcbiAgICAgIGRhdGFTb3VyY2Uuc29ydGluZ0RhdGFBY2Nlc3NvciA9IChyb3c6IFQsIHNvcnRIZWFkZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sdW1ucygpW3NvcnRIZWFkZXJJZF07XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDZWxsRGF0YShjb2x1bW4sIHJvdyk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKTsgLy8gY2FzZSBpbnNlbnNpdGl2ZSBzb3J0aW5nXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiB2YWx1ZS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBudW1iZXI7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgc2VsZWN0aW9uLCBlbWl0dGluZyBgc2VsZWN0aW9uQ2hhbmdlYCBpZiBgc2VsZWN0aW9uYCB3YXMgbm90IGVtcHR5LlxuICAgKi9cbiAgY2xlYXJTZWxlY3Rpb24gPSAoKSA9PiB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+ICghcy5sZW5ndGggPyBzIDogW10pKTtcblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc2VsZWN0aW9uIG9mIGEgcm93LlxuICAgKi9cbiAgdG9nZ2xlU2VsZWN0aW9uID0gKHJvdzogVCkgPT5cbiAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+IChzLmluY2x1ZGVzKHJvdykgPyBzLmZpbHRlcigocikgPT4gciAhPT0gcm93KSA6IHMuY29uY2F0KHJvdykpKTtcbn1cblxuZXhwb3J0IGNvbnN0IFdBVFRfVEFCTEUgPSBbV2F0dFRhYmxlQ29tcG9uZW50LCBXYXR0VGFibGVDZWxsRGlyZWN0aXZlLCBXYXR0VGFibGVUb29sYmFyRGlyZWN0aXZlXTtcbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48dGFibGVcbiAgbWF0LXRhYmxlXG4gIG1hdFNvcnRcbiAgcm9sZT1cInRyZWVncmlkXCJcbiAgW25nQ2xhc3NdPVwieyAnd2F0dC10YWJsZS1oYXMtc2VsZWN0aW9uJzogZ2V0U2VsZWN0aW9uU3RhdGUoKSAhPT0gZmFsc2UgfVwiXG4gIFttYXRTb3J0QWN0aXZlXT1cInNvcnRCeSgpXCJcbiAgW21hdFNvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvbigpXCJcbiAgW21hdFNvcnREaXNhYmxlQ2xlYXJdPVwiIXNvcnRDbGVhcigpXCJcbiAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZSgpXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvbigpXCJcbiAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENoYW5nZS5lbWl0KCRldmVudClcIlxuPlxuICBAaWYgKHNlbGVjdGFibGUoKSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjaGVja2JveENvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cIndhdHQtdGFibGUtY2hlY2tib3gtY2VsbFwiPlxuICAgICAgICA8d2F0dC1jaGVja2JveFxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldFNlbGVjdGlvblN0YXRlKClcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi5zZXQoZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YSkgOiBjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJ3YXR0LXRhYmxlLWNoZWNrYm94LWNlbGxcIj5cbiAgICAgICAgPHdhdHQtY2hlY2tib3hcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3Rpb24oKS5pbmNsdWRlcyhyb3cpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVTZWxlY3Rpb24ocm93KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImV4cGFuZGFibGVDb2x1bW5cIj5cbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XG4gICAgPHRkXG4gICAgICAjdGRcbiAgICAgIG1hdC1jZWxsXG4gICAgICAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgIFthdHRyLmRhdGEta2V5XT1cImdldFJvd0tleShpbmRleCwgcm93KVwiXG4gICAgICBbYXR0ci5kYXRhLXJvdy1pbmRleF09XCJpbmRleFwiXG4gICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3cpXCJcbiAgICAgIFtjbGFzcy53YXR0LXRhYmxlLWNlbGwtLWV4cGFuZGVkXT1cImV4cGFuZGVkKCkuaW5jbHVkZXMocm93KVwiXG4gICAgPlxuICAgICAgPHdhdHQtaWNvbiBuYW1lPVwicmlnaHRcIiBzaXplPVwieHNcIiAvPlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCkgfCBrZXl2YWx1ZTsgdHJhY2sgY29sdW1uLmtleSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgW3N0aWNreUVuZF09XCJjb2x1bW4udmFsdWUuc3RpY2t5RW5kPy4oKVwiPlxuICAgICAgPHRoXG4gICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3tcbiAgICAgICAgICBjb2x1bW4udmFsdWUuaGVhZGVyQ2VsbENsYXNzXG4gICAgICAgIH19XCJcbiAgICAgID5cbiAgICAgICAgQGlmIChjb2x1bW4udmFsdWUuaGVscGVyQWN0aW9uOyBhcyBhY3Rpb24pIHtcbiAgICAgICAgICA8d2F0dC1pY29uIG5hbWU9XCJoZWxwXCIgKGNsaWNrKT1cImFjdGlvbigpXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIndhdHQtdGFibGUtaGVhZGVyLWNlbGxcIlxuICAgICAgICAgIG1hdC1zb3J0LWhlYWRlclxuICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbi52YWx1ZS5hbGlnbiA9PT0gJ3JpZ2h0JyA/ICdiZWZvcmUnIDogJ2FmdGVyJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW4udmFsdWUuYWNjZXNzb3IgfHwgY29sdW1uLnZhbHVlLnNvcnQgPT09IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldENvbHVtbkhlYWRlcihjb2x1bW4pIH19XG4gICAgICAgICAgQGlmIChjb2x1bW4udmFsdWUudG9vbHRpcDsgYXMgdG9vbHRpcCkge1xuICAgICAgICAgICAgPHdhdHQtaWNvbiBbdGl0bGVdPVwidG9vbHRpcFwiIG5hbWU9XCJpbmZvXCIgc3RhdGU9XCJkZWZhdWx0XCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cblxuICAgICAgPHRkXG4gICAgICAgICN0ZFxuICAgICAgICBtYXQtY2VsbFxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgW2F0dHIuZGF0YS1rZXldPVwiZ2V0Um93S2V5KGluZGV4LCByb3cpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRlZF09XCJleHBhbmRlZCgpLmluY2x1ZGVzKHJvdylcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3sgY29sdW1uLnZhbHVlLmRhdGFDZWxsQ2xhc3MgfX1cIlxuICAgICAgICAoY2xpY2spPVwiIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlICYmIG9uUm93Q2xpY2socm93KVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAoaXNFeHBhbmRhYmxlKCkpIHtcbiAgICAgICAgICBAZGVmZXIgKHdoZW4gIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlIHx8IGV4cGFuZGVkKCkuaW5jbHVkZXMocm93KSkge1xuICAgICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2F0dC10YWJsZS1jZWxsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4IH1cIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICB7eyBnZXRDb2x1bW5DZWxsKGNvbHVtbi52YWx1ZSwgcm93KSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtY2VsbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXggfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IGdldENvbHVtbkNlbGwoY29sdW1uLnZhbHVlLCByb3cpIH19XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3RkPlxuXG4gICAgICBAaWYgKGhhc0Zvb3RlcigpKSB7XG4gICAgICAgIDx0ZFxuICAgICAgICAgIG1hdC1mb290ZXItY2VsbFxuICAgICAgICAgICptYXRGb290ZXJDZWxsRGVmXG4gICAgICAgICAgY2xhc3M9XCJ7eyBjb2x1bW4udmFsdWUuZm9vdGVyPy5jbGFzcyB9fSB3YXR0LXRhYmxlLWFsaWduLXt7XG4gICAgICAgICAgICBjb2x1bW4udmFsdWUuYWxpZ24gPz8gJ2xlZnQnXG4gICAgICAgICAgfX0gXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbHVtbi52YWx1ZS5mb290ZXI/LnZhbHVlPy4oKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzcGFjZXJcIj5cbiAgICA8dGQgY2xhc3M9XCJ3YXR0LXRhYmxlLWZvb3Rlci1zcGFjZXJcIiBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgQGlmICghaGlkZUNvbHVtbkhlYWRlcnMoKSkge1xuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwicmVuZGVyZWRDb2x1bW5zKClcIj48L3RyPlxuICB9XG4gIDx0clxuICAgIG1hdC1yb3dcbiAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogcmVuZGVyZWRDb2x1bW5zKClcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwicm93ID09PSBhY3RpdmVSb3coKVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3dhdHQtdGFibGUtaGlnaGxpZ2h0LXJvdyc6ICFkaXNhYmxlZCgpICYmICFzdXBwcmVzc1Jvd0hvdmVySGlnaGxpZ2h0KCksXG4gICAgICAnd2F0dC10YWJsZS1jbGlja2FibGUtcm93JzogIWRpc2FibGVkKCkgJiYgcm93Q2xpY2skLm9ic2VydmVkLFxuICAgICAgJ3dhdHQtdGFibGUtYWN0aXZlLXJvdyc6IGlzQWN0aXZlUm93KHJvdyksXG4gICAgICAnd2F0dC10YWJsZS1uby1lbmQtZGl2aWRlcic6IGhpZGVDb2x1bW5IZWFkZXJzKCksXG4gICAgfVwiXG4gID48L3RyPlxuXG4gIEBpZiAodG9vbGJhcigpKSB7XG4gICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJbJ3NwYWNlciddXCI+PC90cj5cbiAgfVxuXG4gIEBpZiAoaGFzRm9vdGVyKCkpIHtcbiAgICA8dHJcbiAgICAgIG1hdC1mb290ZXItcm93XG4gICAgICBbY2xhc3Mud2F0dC10YWJsZS1oaWRlLWZvb3Rlcl09XCJsb2FkaW5nKCkgfHwgZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YS5sZW5ndGggPT09IDBcIlxuICAgICAgKm1hdEZvb3RlclJvd0RlZj1cInJlbmRlcmVkQ29sdW1ucygpOyBzdGlja3k6IHN0aWNreUZvb3RlcigpXCJcbiAgICA+PC90cj5cbiAgfVxuXG4gIDxuZy1jb250YWluZXIgKm1hdE5vRGF0YVJvdz5cbiAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgQGZvciAoaSBvZiBbMSwgMiwgM107IHRyYWNrIGkpIHtcbiAgICAgICAgPHRyIGNsYXNzPVwibWF0LW1kYy1yb3dcIj5cbiAgICAgICAgICBAZm9yIChfIG9mIHJlbmRlcmVkQ29sdW1ucygpOyB0cmFjayBfOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCIgW2NsYXNzLndhdHQtdGFibGUtbG9hZGluZy1jZWxsXT1cImkgPiAwIHx8ICFzZWxlY3RhYmxlKClcIj48L3RkPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICAgIH1cbiAgICB9XG4gIDwvbmctY29udGFpbmVyPlxuPC90YWJsZT5cblxuQGlmICh0b29sYmFyKCk7IGFzIHRvb2xiYXIpIHtcbiAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtdG9vbGJhclwiIHJvbGU9XCJ0b29sYmFyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgdG9vbGJhci50ZW1wbGF0ZVJlZjtcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbHRlclNlbGVjdGlvbkJ5KGRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEpIH1cbiAgICAgIFwiXG4gICAgLz5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
335
|
+
//# sourceMappingURL=watt-table.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watt-table.component.js","sourceRoot":"","sources":["../../../../libs/watt/package/table/watt-table.component.ts","../../../../libs/watt/package/table/watt-table.component.html"],"names":[],"mappings":"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","sourcesContent":["//#region License\n/**\n * @license\n * Copyright 2020 Energinet DataHub A/S\n *\n * Licensed under the Apache License, Version 2.0 (the \"License2\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//#endregion\nimport { KeyValue, KeyValuePipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n contentChild,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { Signal, TrackByFunction } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatSort, MatSortModule, Sort, SortDirection } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { Subject } from 'rxjs';\n\nimport { WattCheckboxComponent } from '@energinet/watt/checkbox';\nimport { wattFormatDate } from '@energinet/watt/core/date';\nimport { WattIconComponent } from '@energinet/watt/icon';\nimport { IWattTableDataSource, WattTableDataSource } from './watt-table-data-source';\nimport { animateExpandableCells } from './watt-table-expand-animation';\n\n/** Class name for expandable cells. */\nexport const EXPANDABLE_CLASS = 'watt-table-cell--expandable';\n\nexport interface WattTableColumn<T> {\n /**\n * The data that this column should be bound to, either as a property of `T`\n * or derived from each row of `T` using an accessor function. Use `null`\n * for columns that should not be associated with data, but note that this\n * will disable sorting and automatic cell population.\n */\n accessor: keyof T | ((row: T) => unknown) | null;\n\n /**\n * Resolve the header text to a static display value. This will prevent\n * the `resolveHeader` input function from being called for this column.\n */\n header?: string;\n\n /**\n * Callback for determining cell content when not using template. By default,\n * cell content is found using the `accessor` (unless it is `null`).\n */\n cell?: (row: T) => string;\n\n /**\n * Enable or disable sorting for this column. Defaults to `true`\n * unless `accessor` is `null`.\n */\n sort?: boolean;\n\n /**\n * Set the column size using grid sizing values. Defaults to `\"auto\"`.\n *\n * @remarks\n * Accepts all of the CSS grid track size keywords (such as `min-content`,\n * `max-content`, `minmax()`) as well as fractional (`fr`), percentage (`%`)\n * and length (`px`, `em`, etc) units.\n *\n * @see https://drafts.csswg.org/css-grid/#track-sizes\n */\n size?: string;\n\n /**\n * Horizontally align the contents of the column. Defaults to `\"left\"`.\n */\n align?: 'left' | 'right' | 'center';\n\n /**\n * Helper icon will be shown in the header cell, with an click event.\n */\n helperAction?: () => void;\n\n /**\n * CSS class to apply to the header cell element.\n */\n headerCellClass?: string;\n\n /**\n * CSS class to apply to the data cell element.\n */\n dataCellClass?: string;\n\n /**\n * Footer configuration for the column.\n */\n footer?: WattTableColumnFooter;\n\n /**\n * When set to `true`, the column remains visible when horizontally scrolling.\n */\n stickyEnd?: Signal<boolean>;\n\n /**\n * When `true`, the cell is replaced with an expandable arrow and the content is deferred.\n * Clicking on the arrow reveals the content below the current row.\n *\n * @remarks\n * It is recommended to provide a custom `trackBy` function when using `expandable`,\n * otherwise animations can be inaccurate when data is changed.\n */\n expandable?: boolean;\n\n /**\n * Tooltip text to show on hover of the header cell.\n */\n tooltip?: string;\n}\n\n/**\n * Configuration for the footer cell of a column.\n */\nexport interface WattTableColumnFooter {\n /**\n * The value that will be displayed in the footer cell.\n */\n value?: Signal<string | number>;\n\n /**\n * CSS class to apply to the footer cell.\n */\n class?: string;\n}\n\n/**\n * Record for defining columns with keys used as column identifiers.\n */\nexport type WattTableColumnDef<T> = Record<string, WattTableColumn<T>>;\n\n// Used for strongly typing the structural directive\ninterface WattTableCellContext<T> {\n $implicit: T;\n index: number;\n}\n\ninterface WattTableToolbarContext<T> {\n $implicit: T;\n}\n\n@Directive({\n selector: '[wattTableCell]',\n})\nexport class WattTableCellDirective<T> {\n templateRef = inject(TemplateRef<WattTableCellContext<T>>);\n\n /**\n * The WattTableColumn this template applies to.\n */\n readonly column = input.required<WattTableColumn<T>>({ alias: 'wattTableCell' });\n\n /**\n * Optional header text for the column.\n */\n readonly header = input<string>(undefined, { alias: 'wattTableCellHeader' });\n\n static ngTemplateContextGuard<T>(\n _directive: WattTableCellDirective<T>,\n context: unknown\n ): context is WattTableCellContext<T> {\n return true;\n }\n}\n\n@Directive({\n selector: '[wattTableToolbar]',\n})\nexport class WattTableToolbarDirective<T> {\n templateRef = inject(TemplateRef<WattTableToolbarContext<T[]>>);\n static ngTemplateContextGuard<T>(\n _directive: WattTableToolbarDirective<T>,\n context: unknown\n ): context is WattTableToolbarContext<T[]> {\n return true;\n }\n}\n\n/**\n * Usage:\n * `import { WATT_TABLE } from '@energinet/watt/table';`\n */\n@Component({\n imports: [\n NgClass,\n NgTemplateOutlet,\n KeyValuePipe,\n FormsModule,\n MatSortModule,\n MatTableModule,\n WattIconComponent,\n WattCheckboxComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n selector: 'watt-table',\n styleUrls: ['./watt-table.component.scss'],\n templateUrl: './watt-table.component.html',\n host: {\n '[class.watt-table-variant-zebra]': 'variant() === \"zebra\"',\n '[style.--watt-table-grid-template-columns]': 'sizing().join(\" \")',\n },\n})\nexport class WattTableComponent<T> {\n /**\n * The table's source of data. Property should not be changed after\n * initialization, instead update the data on the instance itself.\n */\n readonly dataSource = input.required<IWattTableDataSource<T>>();\n\n /**\n * Column definition record with keys representing the column identifiers\n * and values being the column configuration. The order of the columns\n * is determined by the property order, but can be overruled by the\n * `displayedColumns` input.\n */\n readonly columns = input<WattTableColumnDef<T>>({});\n\n /**\n * Used for hiding or reordering columns defined in the `columns` input.\n */\n readonly displayedColumns = input<string[]>();\n\n /**\n * Used for disabling the table. This will disable all user interaction\n */\n readonly disabled = input(false);\n\n /**\n * Provide a description of the table for visually impaired users.\n */\n readonly description = input('');\n\n /**\n * If set to `true`, the table will show a loading indicator\n * when there is no data.\n */\n readonly loading = input(false);\n\n /**\n * If true the footer will be sticky\n */\n readonly stickyFooter = input(false);\n\n /**\n * Optional callback for determining header text for columns that\n * do not have a static header text set in the column definition.\n * Useful for providing translations of column headers.\n */\n readonly resolveHeader = input<(key: string) => string>();\n\n /**\n * Identifier for column that should be sorted initially.\n */\n readonly sortBy = input('');\n\n /**\n * The sort direction of the initially sorted column.\n */\n readonly sortDirection = input<SortDirection>('');\n\n /**\n * Whether to allow the user to clear the sort. Defaults to `true`.\n */\n readonly sortClear = input(true);\n\n /**\n * Optional function to determine CSS class(es) for each row.\n */\n readonly rowClass = input<(row: T) => string | string[]>();\n\n /**\n * Whether the table should include a checkbox column for row selection.\n */\n readonly selectable = input(false);\n\n /**\n * Sets the selected rows. Only applicable when selectable is `true`.\n */\n readonly selection = model<T[]>([]);\n\n /**\n * Set to true to disable row hover highlight.\n */\n readonly suppressRowHoverHighlight = input(false);\n\n /**\n * Highlights the currently active row.\n */\n readonly activeRow = input<T>();\n\n /**\n * Custom comparator function to determine if two rows are equal.\n *\n * @remarks\n * The default behavior for determining the active row is to compare\n * the two row objects using strict equality check. This is sufficient\n * as long as the instances remain the same, which may not be the case\n * if row data is recreated or rebuilt from serialization.\n */\n readonly activeRowComparator = input<(currentRow: T, activeRow: T) => boolean>();\n\n /**\n * If set to `true`, the column headers will not be shown. Default is `false`.\n */\n readonly hideColumnHeaders = input(false);\n\n /**\n * Choose from a predefined set of display variants.\n */\n readonly variant = input<'zebra'>();\n\n /**\n * Array of rows that are currently expanded.\n */\n readonly expanded = model<T[]>([]);\n\n /**\n * Optional function for uniquely identifying rows.\n */\n readonly trackBy = input<TrackByFunction<T> | keyof T>();\n\n /**\n * @ignore\n * The `observed` boolean from the `Subject` is used to determine if a row is\n * clickable or not. This is available on `EventEmitter`, but not on `output`,\n * which is why this workaround is used.\n */\n protected rowClick$ = new Subject<T>();\n\n /**\n * Emits whenever a row is clicked.\n */\n readonly rowClick = outputFromObservable(this.rowClick$);\n\n /**\n * Event emitted when the user changes the active sort or sort direction.\n */\n readonly sortChange = output<Sort>();\n\n // Queries\n protected cells = contentChildren(WattTableCellDirective<T>);\n protected toolbar = contentChild(WattTableToolbarDirective<T>);\n protected sort = viewChild(MatSort);\n\n // Enables animation for expanding/collapsing cells\n protected tableCellElements = viewChildren<ElementRef<HTMLTableCellElement>>('td');\n protected animationEffect = animateExpandableCells(this.tableCellElements, this.expanded);\n\n // Selectable\n protected filterSelectionBy = (rows: T[]) => rows.filter((row) => this.selection().includes(row));\n protected getSelectionState = () => {\n const filteredData = this.dataSource().filteredData;\n const filteredSelection = this.filterSelectionBy(filteredData);\n if (!filteredSelection.length) return false;\n return filteredSelection.length === this.dataSource().filteredData.length ? true : null;\n };\n\n // Unique names for special columns\n protected checkboxColumn = '__checkboxColumn__';\n protected expandableColumn = '__expandableColumn__';\n\n protected hasFooter = computed(() => Object.values(this.columns()).some((c) => c.footer));\n protected isExpandable = computed(() => Object.values(this.columns()).some((c) => c.expandable));\n protected renderedColumns = computed(() => {\n const columns = this.displayedColumns() ?? Object.keys(this.columns());\n return [\n ...(this.selectable() ? [this.checkboxColumn] : []),\n ...columns.filter((key) => !this.columns()[key].expandable),\n ...(this.isExpandable() ? [this.expandableColumn] : []),\n ...columns.filter((key) => this.columns()[key].expandable),\n ];\n });\n\n protected sizing = computed(() => {\n const columns = this.columns();\n return this.renderedColumns()\n .filter((key) => !columns[key]?.expandable)\n .map((key) => {\n switch (key) {\n case this.checkboxColumn:\n return 'var(--watt-space-xl)';\n case this.expandableColumn:\n return 'min-content';\n default:\n return columns[key]?.size ?? 'auto';\n }\n });\n });\n\n /** Try to get cell data for a specific `column` and `row`. */\n private getCellData = (column: WattTableColumn<T>, row: T) => {\n if (column.cell) return column.cell(row);\n return !column.accessor\n ? ''\n : typeof column.accessor === 'function'\n ? column.accessor(row)\n : row[column.accessor];\n };\n\n protected getColumnTemplate = (column: WattTableColumn<T>) =>\n this.cells().find((item) => item.column() === column)?.templateRef;\n\n protected getColumnHeader = (column: KeyValue<string, WattTableColumn<T>>) => {\n if (typeof column.value.header === 'string') return column.value.header;\n const cell = this.cells().find((item) => item.column() === column.value);\n return cell?.header() ?? this.resolveHeader()?.(column.key) ?? column.key;\n };\n\n protected getColumnCell = (column: WattTableColumn<T>, row: T) => {\n const cell = this.getCellData(column, row);\n if (cell === undefined || cell === null) return '—';\n if (cell instanceof Date) return wattFormatDate(cell);\n return cell;\n };\n\n protected getRowKey = (index: number, row: T) => {\n const trackBy = this.trackBy();\n if (typeof trackBy === 'string') return row[trackBy];\n if (typeof trackBy === 'function') return trackBy(index, row);\n return this.dataSource().data.indexOf(row);\n };\n\n protected isActiveRow = (row: T) => {\n const activeRow = this.activeRow();\n const activeRowComparator = this.activeRowComparator();\n if (!activeRow) return false;\n return activeRowComparator ? activeRowComparator(row, activeRow) : row === activeRow;\n };\n\n protected getRowClass = (row: T): string => {\n const rowClass = this.rowClass();\n if (!rowClass) return '';\n const result = rowClass(row);\n return Array.isArray(result) ? result.join(' ') : result;\n };\n\n protected onRowClick = (row: T) => {\n if (this.disabled() || window.getSelection()?.toString() !== '') return;\n if (this.isExpandable()) {\n this.expanded.update((rows) =>\n rows.includes(row) ? rows.filter((r) => r != row) : [...rows, row]\n );\n }\n\n this.rowClick$.next(row);\n };\n\n constructor() {\n effect(() => {\n const dataSource = this.dataSource();\n dataSource.sort = this.sort();\n if (!(dataSource instanceof WattTableDataSource)) return;\n dataSource.sortingDataAccessor = (row: T, sortHeaderId: string) => {\n const column = this.columns()[sortHeaderId];\n const value = this.getCellData(column, row);\n if (typeof value === 'string') return value.toLowerCase(); // case insensitive sorting\n if (value instanceof Date) return value.getTime();\n return value as number;\n };\n });\n }\n\n /**\n * Clears the selection, emitting `selectionChange` if `selection` was not empty.\n */\n clearSelection = () => this.selection.update((s) => (!s.length ? s : []));\n\n /**\n * Toggles the selection of a row.\n */\n toggleSelection = (row: T) =>\n this.selection.update((s) => (s.includes(row) ? s.filter((r) => r !== row) : s.concat(row)));\n}\n\nexport const WATT_TABLE = [WattTableComponent, WattTableCellDirective, WattTableToolbarDirective];\n","<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" state=\"default\" />\n }\n </div>\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row, index }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [class]=\"getRowClass(row)\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n"]}
|