@theseam/ui-common 0.4.30 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/index.d.ts +2 -0
- package/asset-reader/index.d.ts +67 -5
- package/breadcrumbs/index.d.ts +46 -5
- package/buttons/index.d.ts +220 -5
- package/card/index.d.ts +46 -5
- package/carousel/index.d.ts +100 -5
- package/checkbox/index.d.ts +200 -5
- package/confirm-dialog/index.d.ts +64 -5
- package/core/index.d.ts +139 -5
- package/data-exporter/index.d.ts +60 -5
- package/data-filters/index.d.ts +219 -5
- package/datatable/index.d.ts +1339 -5
- package/datatable-alterations-display/index.d.ts +101 -0
- package/datatable-dynamic/index.d.ts +548 -5
- package/dynamic/index.d.ts +469 -5
- package/dynamic-component-loader/index.d.ts +42 -5
- package/fesm2022/theseam-ui-common-ai.mjs +6 -0
- package/fesm2022/theseam-ui-common-ai.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-asset-reader.mjs +193 -0
- package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +171 -0
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-buttons.mjs +478 -0
- package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-card.mjs +128 -0
- package/fesm2022/theseam-ui-common-card.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-carousel.mjs +269 -0
- package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-checkbox.mjs +393 -0
- package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +183 -0
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-core.mjs +229 -0
- package/fesm2022/theseam-ui-common-core.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-data-exporter.mjs +89 -0
- package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-data-filters.mjs +516 -0
- package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +350 -0
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +1096 -0
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-datatable.mjs +4263 -0
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +134 -0
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-dynamic.mjs +699 -0
- package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-footer-bar.mjs +38 -0
- package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-form-field-error.mjs +494 -0
- package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-form-field.mjs +675 -0
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-framework.mjs +4018 -0
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-google-maps.mjs +2191 -0
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-graphql.mjs +1745 -0
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-icon.mjs +646 -0
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-layout.mjs +118 -0
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-loading.mjs +130 -0
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-menu.mjs +1322 -0
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-modal.mjs +1447 -0
- package/fesm2022/theseam-ui-common-modal.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-models.mjs +55 -0
- package/fesm2022/theseam-ui-common-models.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +72 -0
- package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-popover.mjs +520 -0
- package/fesm2022/theseam-ui-common-popover.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-progress.mjs +97 -0
- package/fesm2022/theseam-ui-common-progress.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-rich-text.mjs +782 -0
- package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-scrollbar.mjs +158 -0
- package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-services.mjs +281 -0
- package/fesm2022/theseam-ui-common-services.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-shared.mjs +719 -0
- package/fesm2022/theseam-ui-common-shared.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-storage.mjs +146 -0
- package/fesm2022/theseam-ui-common-storage.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-story-helpers.mjs +512 -0
- package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-tabbed.mjs +292 -0
- package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +211 -0
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +1207 -0
- package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-table.mjs +341 -0
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-tel-input.mjs +843 -0
- package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-testing.mjs +315 -0
- package/fesm2022/theseam-ui-common-testing.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-tiled-select.mjs +584 -0
- package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +517 -0
- package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-toggle-group.mjs +269 -0
- package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-tooltip.mjs +592 -0
- package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +78 -0
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-utils.mjs +1366 -0
- package/fesm2022/theseam-ui-common-utils.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-validators.mjs +94 -0
- package/fesm2022/theseam-ui-common-validators.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +85 -0
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-viewers.mjs +566 -0
- package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -0
- package/fesm2022/theseam-ui-common-widget.mjs +1466 -0
- package/fesm2022/theseam-ui-common-widget.mjs.map +1 -0
- package/fesm2022/theseam-ui-common.mjs +7 -0
- package/fesm2022/theseam-ui-common.mjs.map +1 -0
- package/footer-bar/index.d.ts +15 -5
- package/form-field/index.d.ts +255 -5
- package/form-field-error/index.d.ts +102 -5
- package/framework/index.d.ts +1372 -5
- package/framework/nav/nav-item/nav-item.component.scss +3 -1
- package/framework/nav/styles/_themes/light/_variables.scss +6 -4
- package/framework/nav/styles/_themes/primary/_variables.scss +6 -4
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +3 -1
- package/framework/side-nav/styles/_themes/light/_variables.scss +3 -1
- package/framework/side-nav/styles/_themes/primary/_variables.scss +7 -5
- package/google-maps/index.d.ts +657 -5
- package/graphql/index.d.ts +336 -5
- package/icon/index.d.ts +193 -5
- package/index.d.ts +2 -5
- package/layout/index.d.ts +61 -5
- package/loading/index.d.ts +42 -5
- package/menu/index.d.ts +437 -5
- package/modal/index.d.ts +531 -5
- package/models/index.d.ts +36 -5
- package/navigation-reload/index.d.ts +24 -5
- package/package.json +185 -316
- package/popover/index.d.ts +127 -5
- package/progress/index.d.ts +38 -5
- package/progress/progress-circle/styles/_variables.scss +5 -3
- package/rich-text/index.d.ts +537 -5
- package/scrollbar/index.d.ts +95 -5
- package/services/index.d.ts +129 -5
- package/shared/index.d.ts +229 -5
- package/storage/index.d.ts +35 -5
- package/story-helpers/index.d.ts +184 -5
- package/styles/bootstrap/_bs-variables.scss +5 -3
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +1 -1
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +6 -4
- package/styles/vendor/quill/_quill.scss +2 -2
- package/tabbed/index.d.ts +108 -5
- package/table/index.d.ts +110 -5
- package/table-cell-type/index.d.ts +145 -5
- package/table-cell-types/index.d.ts +537 -5
- package/tel-input/index.d.ts +532 -5
- package/testing/index.d.ts +220 -5
- package/tiled-select/index.d.ts +179 -5
- package/toggle-edit/index.d.ts +160 -5
- package/toggle-group/index.d.ts +61 -5
- package/tooltip/index.d.ts +118 -0
- package/unsaved-changes-dialog/index.d.ts +24 -5
- package/utils/index.d.ts +434 -5
- package/validators/index.d.ts +49 -5
- package/vertical-list-filter/index.d.ts +31 -5
- package/viewers/index.d.ts +173 -5
- package/widget/index.d.ts +535 -5
- package/asset-reader/asset-reader-helper.service.d.ts +0 -10
- package/asset-reader/asset-reader.module.d.ts +0 -7
- package/asset-reader/encrypted-asset-link.directive.d.ts +0 -26
- package/asset-reader/encrypted-asset-reader.d.ts +0 -24
- package/asset-reader/public-api.d.ts +0 -4
- package/breadcrumbs/breadcrumb.d.ts +0 -11
- package/breadcrumbs/breadcrumbs/breadcrumbs.component.d.ts +0 -11
- package/breadcrumbs/breadcrumbs-resolver.d.ts +0 -5
- package/breadcrumbs/breadcrumbs.module.d.ts +0 -9
- package/breadcrumbs/breadcrumbs.service.d.ts +0 -23
- package/breadcrumbs/public-api.d.ts +0 -5
- package/buttons/badge-button/badge-button.component.d.ts +0 -23
- package/buttons/button/button.component.d.ts +0 -35
- package/buttons/buttons.module.d.ts +0 -12
- package/buttons/progress-circle-button/progress-circle-button.component.d.ts +0 -22
- package/buttons/public-api.d.ts +0 -6
- package/buttons/testing/anchor-badge-button.harness.d.ts +0 -16
- package/buttons/testing/anchor-button.harness.d.ts +0 -16
- package/buttons/testing/badge-button.harness.d.ts +0 -15
- package/buttons/testing/base-badge-button.harness.d.ts +0 -15
- package/buttons/testing/base-button.harness.d.ts +0 -19
- package/buttons/testing/button.harness.d.ts +0 -15
- package/buttons/testing/index.d.ts +0 -5
- package/buttons/testing/toggle-button.harness.d.ts +0 -21
- package/buttons/toggle-button/toggle-button.component.d.ts +0 -29
- package/card/card-action/card-action.component.d.ts +0 -12
- package/card/card-body/card-body.component.d.ts +0 -13
- package/card/card-footer/card-footer.component.d.ts +0 -5
- package/card/card-header/card-header.component.d.ts +0 -7
- package/card/card.component.d.ts +0 -6
- package/card/card.module.d.ts +0 -13
- package/card/public-api.d.ts +0 -6
- package/carousel/carousel-slide.directive.d.ts +0 -8
- package/carousel/carousel.component.d.ts +0 -85
- package/carousel/carousel.module.d.ts +0 -11
- package/carousel/public-api.d.ts +0 -3
- package/checkbox/checkbox.component.d.ts +0 -141
- package/checkbox/checkbox.module.d.ts +0 -8
- package/checkbox/public-api.d.ts +0 -3
- package/checkbox/testing/checkbox.harness.d.ts +0 -49
- package/checkbox/testing/index.d.ts +0 -1
- package/confirm-dialog/confirm-click.directive.d.ts +0 -31
- package/confirm-dialog/confirm-dialog.component.d.ts +0 -16
- package/confirm-dialog/confirm-dialog.module.d.ts +0 -12
- package/confirm-dialog/confirm-dialog.service.d.ts +0 -18
- package/confirm-dialog/public-api.d.ts +0 -4
- package/core/common-behaviors/active.d.ts +0 -8
- package/core/common-behaviors/constructor.d.ts +0 -9
- package/core/common-behaviors/disabled.d.ts +0 -17
- package/core/common-behaviors/element-ref.d.ts +0 -4
- package/core/common-behaviors/index.d.ts +0 -9
- package/core/common-behaviors/initialized.d.ts +0 -30
- package/core/common-behaviors/renderer2.d.ts +0 -4
- package/core/common-behaviors/size.d.ts +0 -9
- package/core/common-behaviors/tabindex.d.ts +0 -18
- package/core/common-behaviors/theme.d.ts +0 -10
- package/core/input-decorators/index.d.ts +0 -2
- package/core/input-decorators/input-boolean.decorator.d.ts +0 -12
- package/core/input-decorators/input-number.decorator.d.ts +0 -12
- package/core/public-api.d.ts +0 -2
- package/data-exporter/data-exporter.d.ts +0 -30
- package/data-exporter/data-exporter.module.d.ts +0 -6
- package/data-exporter/exporters/csv-exporter.d.ts +0 -11
- package/data-exporter/exporters/xlsx-exporter.d.ts +0 -11
- package/data-exporter/public-api.d.ts +0 -4
- package/data-filters/data-filter-container.d.ts +0 -8
- package/data-filters/data-filter-def.d.ts +0 -10
- package/data-filters/data-filter.d.ts +0 -53
- package/data-filters/data-filters.module.d.ts +0 -15
- package/data-filters/filters/data-filter-search/data-filter-search.component.d.ts +0 -39
- package/data-filters/filters/data-filter-search/search-filter-options.d.ts +0 -2
- package/data-filters/filters/data-filter-text/data-filter-text.component.d.ts +0 -37
- package/data-filters/filters/data-filter-text/text-filter-options.d.ts +0 -25
- package/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.d.ts +0 -46
- package/data-filters/public-api.d.ts +0 -9
- package/datatable/datatable/datatable.component.d.ts +0 -266
- package/datatable/datatable-action-menu/datatable-action-menu.component.d.ts +0 -23
- package/datatable/datatable-action-menu-item/datatable-action-menu-item.component.d.ts +0 -33
- package/datatable/datatable-column/datatable-column.component.d.ts +0 -44
- package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +0 -25
- package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +0 -18
- package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +0 -16
- package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +0 -15
- package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +0 -18
- package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +0 -13
- package/datatable/datatable-export-button/datatable-export-button.component.d.ts +0 -25
- package/datatable/datatable-footer/datatable-footer-tpl.directive.d.ts +0 -8
- package/datatable/datatable-footer/datatable-footer.directive.d.ts +0 -9
- package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +0 -17
- package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +0 -5
- package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +0 -5
- package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +0 -5
- package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +0 -5
- package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +0 -11
- package/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.d.ts +0 -8
- package/datatable/datatable-row-detail/datatable-row-detail.directive.d.ts +0 -40
- package/datatable/datatable.module.d.ts +0 -56
- package/datatable/directives/datatable-action-menu-item.directive.d.ts +0 -36
- package/datatable/directives/datatable-action-menu-toggle.directive.d.ts +0 -30
- package/datatable/directives/datatable-cell-tpl.directive.d.ts +0 -8
- package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +0 -8
- package/datatable/directives/datatable-column-filter.directive.d.ts +0 -10
- package/datatable/directives/datatable-filter.directive.d.ts +0 -9
- package/datatable/directives/datatable-row-action-item.directive.d.ts +0 -8
- package/datatable/models/action-item-column-position.d.ts +0 -13
- package/datatable/models/columns-alteration.d.ts +0 -61
- package/datatable/models/columns-alterations/hide-column.columns-alteration.d.ts +0 -15
- package/datatable/models/columns-alterations/order.columns-alteration.d.ts +0 -20
- package/datatable/models/columns-alterations/sort.columns-alteration.d.ts +0 -14
- package/datatable/models/columns-alterations/width.columns-alteration.d.ts +0 -16
- package/datatable/models/columns-data-filter.d.ts +0 -57
- package/datatable/models/columns-data-filters/models.d.ts +0 -65
- package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +0 -23
- package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +0 -22
- package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +0 -21
- package/datatable/models/columns-data-filters/utils.d.ts +0 -15
- package/datatable/models/datatable-accessor.d.ts +0 -21
- package/datatable/models/datatable-config.d.ts +0 -97
- package/datatable/models/datatable-data-source.d.ts +0 -14
- package/datatable/models/datatable-gql-data-source.d.ts +0 -7
- package/datatable/models/internal-column-props.d.ts +0 -7
- package/datatable/models/menubar-item-data.d.ts +0 -3
- package/datatable/models/page-info.d.ts +0 -18
- package/datatable/models/preferences-accessor.d.ts +0 -3
- package/datatable/models/preferences.d.ts +0 -18
- package/datatable/models/sort-event.d.ts +0 -4
- package/datatable/models/sort-item.d.ts +0 -5
- package/datatable/models/table-column.d.ts +0 -35
- package/datatable/public-api.d.ts +0 -54
- package/datatable/services/columns-alterations-manager.service.d.ts +0 -42
- package/datatable/services/columns-filters.service.d.ts +0 -29
- package/datatable/services/columns-manager.service.d.ts +0 -65
- package/datatable/services/datatable-column-changes.service.d.ts +0 -9
- package/datatable/services/datatable-preferences.service.d.ts +0 -22
- package/datatable/services/datatable-scrollbar-helper.service.d.ts +0 -22
- package/datatable/tokens/datatable-accessor.d.ts +0 -3
- package/datatable/tokens/datatable-preferences-accessor.d.ts +0 -3
- package/datatable/tokens/menubar-item-data.d.ts +0 -3
- package/datatable/utils/create-action-menu-column.d.ts +0 -3
- package/datatable/utils/create-checkbox-column.d.ts +0 -3
- package/datatable/utils/get-column-prop.d.ts +0 -5
- package/datatable/utils/map-columns-alterations-states.d.ts +0 -2
- package/datatable/utils/remove-unused-diffs.d.ts +0 -7
- package/datatable/utils/set-column-defaults.d.ts +0 -2
- package/datatable/utils/translate-templates.d.ts +0 -2
- package/datatable/utils/with-stored-column-info.d.ts +0 -3
- package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +0 -33
- package/datatable-dynamic/datatable-dynamic-def.d.ts +0 -71
- package/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.d.ts +0 -18
- package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +0 -63
- package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +0 -16
- package/datatable-dynamic/datatable-dynamic-menu-bar-token.d.ts +0 -3
- package/datatable-dynamic/datatable-dynamic.component.d.ts +0 -89
- package/datatable-dynamic/datatable-dynamic.module.d.ts +0 -22
- package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +0 -75
- package/datatable-dynamic/dynamic-datatable-def.service.d.ts +0 -62
- package/datatable-dynamic/dynamic-datatable-row-actions.service.d.ts +0 -19
- package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +0 -17
- package/datatable-dynamic/models/dynamic-datatable-filter-menu-item.d.ts +0 -7
- package/datatable-dynamic/models/dynamic-datatable-menu-bar.d.ts +0 -63
- package/datatable-dynamic/models/dynamic-datatable-row-action-context.d.ts +0 -5
- package/datatable-dynamic/models/dynamic-datatable-row-action.d.ts +0 -17
- package/datatable-dynamic/models/index.d.ts +0 -5
- package/datatable-dynamic/public-api.d.ts +0 -13
- package/datatable-dynamic/utils/defaults/set-dynamic-datatable-columns-defaults.d.ts +0 -2
- package/datatable-dynamic/utils/defaults/set-dynamic-datatable-def-defaults.d.ts +0 -2
- package/datatable-dynamic/utils/defaults/set-dynamic-datatable-filter-menu-defaults.d.ts +0 -2
- package/datatable-dynamic/utils/defaults/set-dynamic-datatable-options-defaults.d.ts +0 -2
- package/datatable-dynamic/utils/index.d.ts +0 -4
- package/dynamic/action/api/dynamic-action-api-def.d.ts +0 -35
- package/dynamic/action/api/dynamic-action-api-errors.d.ts +0 -1
- package/dynamic/action/api/dynamic-action-api.d.ts +0 -3
- package/dynamic/action/api/dynamic-action-api.service.d.ts +0 -33
- package/dynamic/action/dynamic-action-helper.service.d.ts +0 -39
- package/dynamic/action/index.d.ts +0 -10
- package/dynamic/action/link/dynamic-action-link-def.d.ts +0 -58
- package/dynamic/action/link/dynamic-action-link.d.ts +0 -3
- package/dynamic/action/link/dynamic-action-link.service.d.ts +0 -17
- package/dynamic/action/modal/dynamic-action-modal-def.d.ts +0 -10
- package/dynamic/action/modal/dynamic-action-modal.d.ts +0 -3
- package/dynamic/action/modal/dynamic-action-modal.service.d.ts +0 -32
- package/dynamic/dynamic-value-helper.service.d.ts +0 -38
- package/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.d.ts +0 -19
- package/dynamic/evaluators/exporters-data-evaluator/exporters-data-value.d.ts +0 -8
- package/dynamic/evaluators/exporters-data-evaluator/index.d.ts +0 -2
- package/dynamic/evaluators/index.d.ts +0 -2
- package/dynamic/evaluators/jexl-evaluator/index.d.ts +0 -2
- package/dynamic/evaluators/jexl-evaluator/jexl-evaluator.d.ts +0 -13
- package/dynamic/evaluators/jexl-evaluator/jexl-value.d.ts +0 -11
- package/dynamic/models/dynamic-action-confirm-def.d.ts +0 -10
- package/dynamic/models/dynamic-action-context.d.ts +0 -2
- package/dynamic/models/dynamic-action-def.d.ts +0 -9
- package/dynamic/models/dynamic-action-ui-anchor-def.d.ts +0 -39
- package/dynamic/models/dynamic-action-ui-button-def.d.ts +0 -13
- package/dynamic/models/dynamic-action-ui-def.d.ts +0 -37
- package/dynamic/models/dynamic-action.d.ts +0 -11
- package/dynamic/models/dynamic-value-base-type.d.ts +0 -4
- package/dynamic/models/dynamic-value-evaluatable-type.d.ts +0 -3
- package/dynamic/models/dynamic-value-evaluator.d.ts +0 -6
- package/dynamic/models/dynamic-value-primitive.d.ts +0 -1
- package/dynamic/models/dynamic-value-type.d.ts +0 -4
- package/dynamic/models/dynamic-value.d.ts +0 -3
- package/dynamic/models/index.d.ts +0 -13
- package/dynamic/public-api.d.ts +0 -6
- package/dynamic/tokens/api-config.d.ts +0 -30
- package/dynamic/tokens/dynamic-action.d.ts +0 -3
- package/dynamic/tokens/dynamic-data.d.ts +0 -2
- package/dynamic/tokens/dynamic-value-evaluator.d.ts +0 -3
- package/dynamic/tokens/index.d.ts +0 -4
- package/dynamic/utils/index.d.ts +0 -1
- package/dynamic/utils/is-action-type.d.ts +0 -2
- package/dynamic-component-loader/dynamic-component-loader.module.d.ts +0 -11
- package/dynamic-component-loader/dynamic-component-loader.service.d.ts +0 -16
- package/dynamic-component-loader/dynamic-component-manifest.d.ts +0 -9
- package/dynamic-component-loader/dynamic-component-tokens.d.ts +0 -4
- package/dynamic-component-loader/public-api.d.ts +0 -4
- package/esm2020/asset-reader/asset-reader-helper.service.mjs +0 -70
- package/esm2020/asset-reader/asset-reader.module.mjs +0 -20
- package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +0 -74
- package/esm2020/asset-reader/encrypted-asset-reader.mjs +0 -20
- package/esm2020/asset-reader/public-api.mjs +0 -5
- package/esm2020/asset-reader/theseam-ui-common-asset-reader.mjs +0 -5
- package/esm2020/breadcrumbs/breadcrumb.mjs +0 -2
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +0 -18
- package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +0 -2
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +0 -28
- package/esm2020/breadcrumbs/breadcrumbs.service.mjs +0 -156
- package/esm2020/breadcrumbs/public-api.mjs +0 -6
- package/esm2020/breadcrumbs/theseam-ui-common-breadcrumbs.mjs +0 -5
- package/esm2020/buttons/badge-button/badge-button.component.mjs +0 -62
- package/esm2020/buttons/button/button.component.mjs +0 -85
- package/esm2020/buttons/buttons.module.mjs +0 -51
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +0 -52
- package/esm2020/buttons/public-api.mjs +0 -7
- package/esm2020/buttons/testing/anchor-badge-button.harness.mjs +0 -18
- package/esm2020/buttons/testing/anchor-button.harness.mjs +0 -18
- package/esm2020/buttons/testing/badge-button.harness.mjs +0 -14
- package/esm2020/buttons/testing/base-badge-button.harness.mjs +0 -29
- package/esm2020/buttons/testing/base-button.harness.mjs +0 -41
- package/esm2020/buttons/testing/button.harness.mjs +0 -16
- package/esm2020/buttons/testing/index.mjs +0 -6
- package/esm2020/buttons/testing/toggle-button.harness.mjs +0 -25
- package/esm2020/buttons/theseam-ui-common-buttons.mjs +0 -5
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +0 -79
- package/esm2020/card/card-action/card-action.component.mjs +0 -31
- package/esm2020/card/card-body/card-body.component.mjs +0 -32
- package/esm2020/card/card-footer/card-footer.component.mjs +0 -11
- package/esm2020/card/card-header/card-header.component.mjs +0 -21
- package/esm2020/card/card.component.mjs +0 -17
- package/esm2020/card/card.module.mjs +0 -48
- package/esm2020/card/public-api.mjs +0 -7
- package/esm2020/card/theseam-ui-common-card.mjs +0 -5
- package/esm2020/carousel/carousel-slide.directive.mjs +0 -16
- package/esm2020/carousel/carousel.component.mjs +0 -212
- package/esm2020/carousel/carousel.module.mjs +0 -38
- package/esm2020/carousel/public-api.mjs +0 -4
- package/esm2020/carousel/theseam-ui-common-carousel.mjs +0 -5
- package/esm2020/checkbox/checkbox.component.mjs +0 -285
- package/esm2020/checkbox/checkbox.module.mjs +0 -21
- package/esm2020/checkbox/public-api.mjs +0 -4
- package/esm2020/checkbox/testing/checkbox.harness.mjs +0 -63
- package/esm2020/checkbox/testing/index.mjs +0 -2
- package/esm2020/checkbox/theseam-ui-common-checkbox.mjs +0 -5
- package/esm2020/confirm-dialog/confirm-click.directive.mjs +0 -71
- package/esm2020/confirm-dialog/confirm-dialog.component.mjs +0 -38
- package/esm2020/confirm-dialog/confirm-dialog.module.mjs +0 -47
- package/esm2020/confirm-dialog/confirm-dialog.service.mjs +0 -41
- package/esm2020/confirm-dialog/public-api.mjs +0 -5
- package/esm2020/confirm-dialog/theseam-ui-common-confirm-dialog.mjs +0 -5
- package/esm2020/core/common-behaviors/active.mjs +0 -14
- package/esm2020/core/common-behaviors/constructor.mjs +0 -9
- package/esm2020/core/common-behaviors/disabled.mjs +0 -21
- package/esm2020/core/common-behaviors/element-ref.mjs +0 -2
- package/esm2020/core/common-behaviors/index.mjs +0 -10
- package/esm2020/core/common-behaviors/initialized.mjs +0 -63
- package/esm2020/core/common-behaviors/renderer2.mjs +0 -2
- package/esm2020/core/common-behaviors/size.mjs +0 -24
- package/esm2020/core/common-behaviors/tabindex.mjs +0 -23
- package/esm2020/core/common-behaviors/theme.mjs +0 -24
- package/esm2020/core/input-decorators/index.mjs +0 -3
- package/esm2020/core/input-decorators/input-boolean.decorator.mjs +0 -26
- package/esm2020/core/input-decorators/input-number.decorator.mjs +0 -26
- package/esm2020/core/public-api.mjs +0 -3
- package/esm2020/core/theseam-ui-common-core.mjs +0 -5
- package/esm2020/data-exporter/data-exporter.mjs +0 -7
- package/esm2020/data-exporter/data-exporter.module.mjs +0 -25
- package/esm2020/data-exporter/exporters/csv-exporter.mjs +0 -35
- package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +0 -33
- package/esm2020/data-exporter/public-api.mjs +0 -5
- package/esm2020/data-exporter/theseam-ui-common-data-exporter.mjs +0 -5
- package/esm2020/data-filters/data-filter-container.mjs +0 -3
- package/esm2020/data-filters/data-filter-def.mjs +0 -3
- package/esm2020/data-filters/data-filter.mjs +0 -25
- package/esm2020/data-filters/data-filters.module.mjs +0 -66
- package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +0 -121
- package/esm2020/data-filters/filters/data-filter-search/search-filter-options.mjs +0 -2
- package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +0 -148
- package/esm2020/data-filters/filters/data-filter-text/text-filter-options.mjs +0 -2
- package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +0 -166
- package/esm2020/data-filters/public-api.mjs +0 -10
- package/esm2020/data-filters/theseam-ui-common-data-filters.mjs +0 -5
- package/esm2020/datatable/datatable/datatable.component.mjs +0 -879
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +0 -112
- package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +0 -50
- package/esm2020/datatable/datatable-column/datatable-column.component.mjs +0 -107
- package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +0 -55
- package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +0 -54
- package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +0 -48
- package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +0 -44
- package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +0 -67
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +0 -51
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +0 -106
- package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +0 -16
- package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +0 -24
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +0 -49
- package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +0 -11
- package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +0 -11
- package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +0 -11
- package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +0 -11
- package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +0 -30
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +0 -16
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +0 -77
- package/esm2020/datatable/datatable.module.mjs +0 -247
- package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +0 -62
- package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +0 -137
- package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +0 -16
- package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +0 -16
- package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +0 -26
- package/esm2020/datatable/directives/datatable-filter.directive.mjs +0 -27
- package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +0 -16
- package/esm2020/datatable/models/action-item-column-position.mjs +0 -5
- package/esm2020/datatable/models/columns-alteration.mjs +0 -38
- package/esm2020/datatable/models/columns-alterations/hide-column.columns-alteration.mjs +0 -38
- package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +0 -83
- package/esm2020/datatable/models/columns-alterations/sort.columns-alteration.mjs +0 -33
- package/esm2020/datatable/models/columns-alterations/width.columns-alteration.mjs +0 -41
- package/esm2020/datatable/models/columns-data-filter.mjs +0 -10
- package/esm2020/datatable/models/columns-data-filters/models.mjs +0 -74
- package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +0 -113
- package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +0 -104
- package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +0 -86
- package/esm2020/datatable/models/columns-data-filters/utils.mjs +0 -28
- package/esm2020/datatable/models/datatable-accessor.mjs +0 -2
- package/esm2020/datatable/models/datatable-config.mjs +0 -3
- package/esm2020/datatable/models/datatable-data-source.mjs +0 -42
- package/esm2020/datatable/models/datatable-gql-data-source.mjs +0 -15
- package/esm2020/datatable/models/internal-column-props.mjs +0 -15
- package/esm2020/datatable/models/menubar-item-data.mjs +0 -2
- package/esm2020/datatable/models/page-info.mjs +0 -2
- package/esm2020/datatable/models/preferences-accessor.mjs +0 -2
- package/esm2020/datatable/models/preferences.mjs +0 -6
- package/esm2020/datatable/models/sort-event.mjs +0 -2
- package/esm2020/datatable/models/sort-item.mjs +0 -2
- package/esm2020/datatable/models/table-column.mjs +0 -2
- package/esm2020/datatable/public-api.mjs +0 -55
- package/esm2020/datatable/services/columns-alterations-manager.service.mjs +0 -136
- package/esm2020/datatable/services/columns-filters.service.mjs +0 -109
- package/esm2020/datatable/services/columns-manager.service.mjs +0 -286
- package/esm2020/datatable/services/datatable-column-changes.service.mjs +0 -20
- package/esm2020/datatable/services/datatable-preferences.service.mjs +0 -94
- package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +0 -50
- package/esm2020/datatable/theseam-ui-common-datatable.mjs +0 -5
- package/esm2020/datatable/tokens/datatable-accessor.mjs +0 -3
- package/esm2020/datatable/tokens/datatable-preferences-accessor.mjs +0 -3
- package/esm2020/datatable/tokens/menubar-item-data.mjs +0 -3
- package/esm2020/datatable/utils/create-action-menu-column.mjs +0 -19
- package/esm2020/datatable/utils/create-checkbox-column.mjs +0 -15
- package/esm2020/datatable/utils/get-column-prop.mjs +0 -9
- package/esm2020/datatable/utils/map-columns-alterations-states.mjs +0 -42
- package/esm2020/datatable/utils/remove-unused-diffs.mjs +0 -9
- package/esm2020/datatable/utils/set-column-defaults.mjs +0 -10
- package/esm2020/datatable/utils/translate-templates.mjs +0 -12
- package/esm2020/datatable/utils/with-stored-column-info.mjs +0 -20
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +0 -118
- package/esm2020/datatable-dynamic/datatable-dynamic-def.mjs +0 -2
- package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +0 -50
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +0 -148
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +0 -2
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-token.mjs +0 -3
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +0 -75
- package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +0 -80
- package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +0 -400
- package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +0 -88
- package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +0 -46
- package/esm2020/datatable-dynamic/models/dynamic-datatable-action-menu-record.mjs +0 -2
- package/esm2020/datatable-dynamic/models/dynamic-datatable-filter-menu-item.mjs +0 -2
- package/esm2020/datatable-dynamic/models/dynamic-datatable-menu-bar.mjs +0 -2
- package/esm2020/datatable-dynamic/models/dynamic-datatable-row-action-context.mjs +0 -2
- package/esm2020/datatable-dynamic/models/dynamic-datatable-row-action.mjs +0 -2
- package/esm2020/datatable-dynamic/models/index.mjs +0 -6
- package/esm2020/datatable-dynamic/public-api.mjs +0 -14
- package/esm2020/datatable-dynamic/theseam-ui-common-datatable-dynamic.mjs +0 -5
- package/esm2020/datatable-dynamic/utils/defaults/set-dynamic-datatable-columns-defaults.mjs +0 -8
- package/esm2020/datatable-dynamic/utils/defaults/set-dynamic-datatable-def-defaults.mjs +0 -13
- package/esm2020/datatable-dynamic/utils/defaults/set-dynamic-datatable-filter-menu-defaults.mjs +0 -6
- package/esm2020/datatable-dynamic/utils/defaults/set-dynamic-datatable-options-defaults.mjs +0 -6
- package/esm2020/datatable-dynamic/utils/index.mjs +0 -5
- package/esm2020/dynamic/action/api/dynamic-action-api-def.mjs +0 -2
- package/esm2020/dynamic/action/api/dynamic-action-api-errors.mjs +0 -4
- package/esm2020/dynamic/action/api/dynamic-action-api.mjs +0 -2
- package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +0 -209
- package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +0 -158
- package/esm2020/dynamic/action/index.mjs +0 -11
- package/esm2020/dynamic/action/link/dynamic-action-link-def.mjs +0 -2
- package/esm2020/dynamic/action/link/dynamic-action-link.mjs +0 -2
- package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +0 -47
- package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +0 -2
- package/esm2020/dynamic/action/modal/dynamic-action-modal.mjs +0 -2
- package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +0 -85
- package/esm2020/dynamic/dynamic-value-helper.service.mjs +0 -105
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +0 -30
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-value.mjs +0 -2
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/index.mjs +0 -3
- package/esm2020/dynamic/evaluators/index.mjs +0 -3
- package/esm2020/dynamic/evaluators/jexl-evaluator/index.mjs +0 -3
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +0 -32
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-value.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-action-confirm-def.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-action-context.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-action-def.mjs +0 -3
- package/esm2020/dynamic/models/dynamic-action-ui-anchor-def.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-action-ui-button-def.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-action-ui-def.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-action.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-value-base-type.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-value-evaluatable-type.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-value-evaluator.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-value-primitive.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-value-type.mjs +0 -2
- package/esm2020/dynamic/models/dynamic-value.mjs +0 -2
- package/esm2020/dynamic/models/index.mjs +0 -14
- package/esm2020/dynamic/public-api.mjs +0 -7
- package/esm2020/dynamic/theseam-ui-common-dynamic.mjs +0 -5
- package/esm2020/dynamic/tokens/api-config.mjs +0 -29
- package/esm2020/dynamic/tokens/dynamic-action.mjs +0 -3
- package/esm2020/dynamic/tokens/dynamic-data.mjs +0 -3
- package/esm2020/dynamic/tokens/dynamic-value-evaluator.mjs +0 -3
- package/esm2020/dynamic/tokens/index.mjs +0 -5
- package/esm2020/dynamic/utils/index.mjs +0 -2
- package/esm2020/dynamic/utils/is-action-type.mjs +0 -4
- package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +0 -50
- package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +0 -78
- package/esm2020/dynamic-component-loader/dynamic-component-manifest.mjs +0 -2
- package/esm2020/dynamic-component-loader/dynamic-component-tokens.mjs +0 -5
- package/esm2020/dynamic-component-loader/public-api.mjs +0 -5
- package/esm2020/dynamic-component-loader/theseam-ui-common-dynamic-component-loader.mjs +0 -5
- package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +0 -11
- package/esm2020/footer-bar/footer-bar.module.mjs +0 -20
- package/esm2020/footer-bar/public-api.mjs +0 -3
- package/esm2020/footer-bar/theseam-ui-common-footer-bar.mjs +0 -5
- package/esm2020/form-field/form-field-error.directive.mjs +0 -30
- package/esm2020/form-field/form-field-help-text.directive.mjs +0 -16
- package/esm2020/form-field/form-field-label-tpl.directive.mjs +0 -16
- package/esm2020/form-field/form-field-required-indicator.component.mjs +0 -61
- package/esm2020/form-field/form-field-tokens.mjs +0 -3
- package/esm2020/form-field/form-field.component.mjs +0 -221
- package/esm2020/form-field/form-field.module.mjs +0 -61
- package/esm2020/form-field/input.directive.mjs +0 -227
- package/esm2020/form-field/public-api.mjs +0 -10
- package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +0 -8
- package/esm2020/form-field/testing/form-field.harness.mjs +0 -45
- package/esm2020/form-field/testing/index.mjs +0 -3
- package/esm2020/form-field/theseam-ui-common-form-field.mjs +0 -5
- package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +0 -26
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +0 -26
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +0 -18
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +0 -384
- package/esm2020/form-field-error/form-field-error.module.mjs +0 -39
- package/esm2020/form-field-error/public-api.mjs +0 -6
- package/esm2020/form-field-error/theseam-ui-common-form-field-error.mjs +0 -5
- package/esm2020/framework/base-layout/base-layout-action.mjs +0 -2
- package/esm2020/framework/base-layout/base-layout-nav.mjs +0 -2
- package/esm2020/framework/base-layout/base-layout-ref.mjs +0 -2
- package/esm2020/framework/base-layout/base-layout-tokens.mjs +0 -3
- package/esm2020/framework/base-layout/base-layout.component.mjs +0 -133
- package/esm2020/framework/base-layout/base-layout.module.mjs +0 -80
- package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +0 -16
- package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +0 -16
- package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +0 -16
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +0 -66
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +0 -16
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +0 -16
- package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +0 -16
- package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +0 -16
- package/esm2020/framework/base-layout/index.mjs +0 -15
- package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +0 -16
- package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +0 -23
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +0 -119
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-item.mjs +0 -2
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.mjs +0 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor.mjs +0 -2
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +0 -177
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +0 -207
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +0 -181
- package/esm2020/framework/dashboard/dashboard-widgets-tokens.mjs +0 -3
- package/esm2020/framework/dashboard/dashboard.component.mjs +0 -24
- package/esm2020/framework/dashboard/dashboard.module.mjs +0 -60
- package/esm2020/framework/dashboard/index.mjs +0 -12
- package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +0 -2
- package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +0 -28
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +0 -256
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +0 -116
- package/esm2020/framework/dynamic-router/index.mjs +0 -6
- package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +0 -26
- package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +0 -55
- package/esm2020/framework/nav/index.mjs +0 -6
- package/esm2020/framework/nav/nav-item/nav-item.component.mjs +0 -227
- package/esm2020/framework/nav/nav-utils.mjs +0 -107
- package/esm2020/framework/nav/nav.models.mjs +0 -2
- package/esm2020/framework/nav/nav.module.mjs +0 -67
- package/esm2020/framework/nav/nav.service.mjs +0 -204
- package/esm2020/framework/public-api.mjs +0 -8
- package/esm2020/framework/schema-form/index.mjs +0 -5
- package/esm2020/framework/schema-form/schema-form-framework.component.mjs +0 -21
- package/esm2020/framework/schema-form/schema-form-framework.mjs +0 -85
- package/esm2020/framework/schema-form/schema-form-widget.mjs +0 -2
- package/esm2020/framework/schema-form/schema-form.module.mjs +0 -45
- package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +0 -53
- package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +0 -20
- package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +0 -43
- package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +0 -49
- package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +0 -48
- package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +0 -54
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +0 -156
- package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +0 -48
- package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +0 -57
- package/esm2020/framework/side-nav/index.mjs +0 -8
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +0 -186
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +0 -40
- package/esm2020/framework/side-nav/side-nav-tokens.mjs +0 -7
- package/esm2020/framework/side-nav/side-nav-utils.mjs +0 -90
- package/esm2020/framework/side-nav/side-nav.component.mjs +0 -408
- package/esm2020/framework/side-nav/side-nav.models.mjs +0 -2
- package/esm2020/framework/side-nav/side-nav.module.mjs +0 -32
- package/esm2020/framework/side-nav/side-nav.service.mjs +0 -178
- package/esm2020/framework/theseam-ui-common-framework.mjs +0 -5
- package/esm2020/framework/top-bar/index.mjs +0 -10
- package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +0 -16
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +0 -22
- package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +0 -16
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +0 -56
- package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +0 -19
- package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +0 -16
- package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +0 -17
- package/esm2020/framework/top-bar/top-bar.component.mjs +0 -141
- package/esm2020/framework/top-bar/top-bar.module.mjs +0 -83
- package/esm2020/google-maps/google-maps/google-maps.component.mjs +0 -333
- package/esm2020/google-maps/google-maps-api-loader/google-maps-api-loader.mjs +0 -3
- package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +0 -104
- package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +0 -25
- package/esm2020/google-maps/google-maps-contextmenu.mjs +0 -114
- package/esm2020/google-maps/google-maps-controls.service.mjs +0 -67
- package/esm2020/google-maps/google-maps-feature-helpers.mjs +0 -223
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +0 -209
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +0 -165
- package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +0 -58
- package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +0 -115
- package/esm2020/google-maps/google-maps.module.mjs +0 -72
- package/esm2020/google-maps/google-maps.service.mjs +0 -429
- package/esm2020/google-maps/map-control.component.mjs +0 -66
- package/esm2020/google-maps/map-controls-service.mjs +0 -4
- package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +0 -128
- package/esm2020/google-maps/map-value-manager.service.mjs +0 -48
- package/esm2020/google-maps/public-api.mjs +0 -18
- package/esm2020/google-maps/theseam-ui-common-google-maps.mjs +0 -5
- package/esm2020/graphql/datatable/create-page-info-observable.mjs +0 -38
- package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +0 -212
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +0 -50
- package/esm2020/graphql/datatable/datatable-helpers.mjs +0 -175
- package/esm2020/graphql/datatable/get-page-info.mjs +0 -10
- package/esm2020/graphql/datatable/index.mjs +0 -10
- package/esm2020/graphql/datatable/map-filter-states.mjs +0 -63
- package/esm2020/graphql/datatable/map-page-info.mjs +0 -14
- package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +0 -139
- package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +0 -75
- package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +0 -44
- package/esm2020/graphql/datatable/mapper-context.mjs +0 -2
- package/esm2020/graphql/models/direction.mjs +0 -8
- package/esm2020/graphql/models/gql-datatable-accessor.mjs +0 -2
- package/esm2020/graphql/models/hint-definition.mjs +0 -2
- package/esm2020/graphql/models/hint-transform-operation.mjs +0 -2
- package/esm2020/graphql/models/hint-transformer.mjs +0 -2
- package/esm2020/graphql/models/hints-kind.mjs +0 -9
- package/esm2020/graphql/models/hints-token.mjs +0 -2
- package/esm2020/graphql/models/index.mjs +0 -10
- package/esm2020/graphql/models/query-processing-config.mjs +0 -2
- package/esm2020/graphql/models/variable.mjs +0 -7
- package/esm2020/graphql/public-api.mjs +0 -3
- package/esm2020/graphql/theseam-ui-common-graphql.mjs +0 -5
- package/esm2020/graphql/utils/contains-variable.mjs +0 -14
- package/esm2020/graphql/utils/gql-var.mjs +0 -4
- package/esm2020/graphql/utils/hints-tokens-containing-hint.mjs +0 -4
- package/esm2020/graphql/utils/index.mjs +0 -11
- package/esm2020/graphql/utils/inline-variables.mjs +0 -51
- package/esm2020/graphql/utils/parse-comments.mjs +0 -24
- package/esm2020/graphql/utils/parse-hints.mjs +0 -108
- package/esm2020/graphql/utils/remove-variable-definition.mjs +0 -14
- package/esm2020/graphql/utils/remove-variable-definitions-not-defined.mjs +0 -19
- package/esm2020/graphql/utils/remove-variable.mjs +0 -22
- package/esm2020/graphql/utils/to-gql.mjs +0 -40
- package/esm2020/icon/icon/icon.component.mjs +0 -139
- package/esm2020/icon/icon-btn/icon-btn.component.mjs +0 -183
- package/esm2020/icon/icon-notification/icon-notification.component.mjs +0 -124
- package/esm2020/icon/icon.mjs +0 -2
- package/esm2020/icon/icon.module.mjs +0 -38
- package/esm2020/icon/public-api.mjs +0 -7
- package/esm2020/icon/theseam-ui-common-icon.mjs +0 -5
- package/esm2020/icon/utils/file-extension-icon.mjs +0 -33
- package/esm2020/icon/utils/get-known-icon.mjs +0 -82
- package/esm2020/icon/utils/index.mjs +0 -3
- package/esm2020/layout/breakpoint-aliases.mjs +0 -11
- package/esm2020/layout/layout.module.mjs +0 -25
- package/esm2020/layout/layout.service.mjs +0 -32
- package/esm2020/layout/observe-media-query.mjs +0 -41
- package/esm2020/layout/public-api.mjs +0 -5
- package/esm2020/layout/theseam-ui-common-layout.mjs +0 -5
- package/esm2020/loading/loading/loading.component.mjs +0 -26
- package/esm2020/loading/loading-overlay.service.mjs +0 -58
- package/esm2020/loading/loading-themes.mjs +0 -18
- package/esm2020/loading/loading.models.mjs +0 -2
- package/esm2020/loading/loading.module.mjs +0 -41
- package/esm2020/loading/public-api.mjs +0 -6
- package/esm2020/loading/theseam-ui-common-loading.mjs +0 -5
- package/esm2020/menu/menu-animations.mjs +0 -58
- package/esm2020/menu/menu-divider.component.mjs +0 -13
- package/esm2020/menu/menu-footer/menu-footer.component.mjs +0 -32
- package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +0 -54
- package/esm2020/menu/menu-header/menu-header.component.mjs +0 -32
- package/esm2020/menu/menu-item.component.mjs +0 -158
- package/esm2020/menu/menu-panel-token.mjs +0 -6
- package/esm2020/menu/menu-panel.mjs +0 -2
- package/esm2020/menu/menu-toggle.directive.mjs +0 -427
- package/esm2020/menu/menu.component.mjs +0 -200
- package/esm2020/menu/menu.module.mjs +0 -67
- package/esm2020/menu/public-api.mjs +0 -16
- package/esm2020/menu/testing/menu-footer.harness.mjs +0 -28
- package/esm2020/menu/testing/menu-header.harness.mjs +0 -23
- package/esm2020/menu/testing/menu-item.harness.mjs +0 -59
- package/esm2020/menu/testing/menu.harness.mjs +0 -163
- package/esm2020/menu/testing/utils.mjs +0 -13
- package/esm2020/menu/theseam-ui-common-menu.mjs +0 -5
- package/esm2020/modal/directives/modal-close.directive.mjs +0 -74
- package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +0 -16
- package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +0 -16
- package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +0 -16
- package/esm2020/modal/directives/modal-title.directive.mjs +0 -20
- package/esm2020/modal/directives/modal.directive.mjs +0 -25
- package/esm2020/modal/modal/modal.component.mjs +0 -162
- package/esm2020/modal/modal-body/modal-body.component.mjs +0 -21
- package/esm2020/modal/modal-config.mjs +0 -47
- package/esm2020/modal/modal-container/modal-container.component.mjs +0 -245
- package/esm2020/modal/modal-footer/modal-footer.component.mjs +0 -17
- package/esm2020/modal/modal-header/modal-header.component.mjs +0 -28
- package/esm2020/modal/modal-injectors.mjs +0 -23
- package/esm2020/modal/modal-ref.mjs +0 -171
- package/esm2020/modal/modal-utils.mjs +0 -14
- package/esm2020/modal/modal.models.mjs +0 -3
- package/esm2020/modal/modal.module.mjs +0 -127
- package/esm2020/modal/modal.service.mjs +0 -352
- package/esm2020/modal/public-api.mjs +0 -20
- package/esm2020/modal/route-modal/route-modal.component.mjs +0 -62
- package/esm2020/modal/theseam-ui-common-modal.mjs +0 -5
- package/esm2020/models/component-type.mjs +0 -4
- package/esm2020/models/http-status-codes.mjs +0 -20
- package/esm2020/models/public-api.mjs +0 -8
- package/esm2020/models/size-prefixes.mjs +0 -2
- package/esm2020/models/size-types.mjs +0 -2
- package/esm2020/models/theme-names.mjs +0 -26
- package/esm2020/models/theme-prefixes.mjs +0 -2
- package/esm2020/models/theme-types.mjs +0 -2
- package/esm2020/models/theseam-ui-common-models.mjs +0 -5
- package/esm2020/navigation-reload/navigation-reload.config.mjs +0 -2
- package/esm2020/navigation-reload/navigation-reload.provider.mjs +0 -14
- package/esm2020/navigation-reload/navigation-reload.service.mjs +0 -54
- package/esm2020/navigation-reload/public-api.mjs +0 -4
- package/esm2020/navigation-reload/theseam-ui-common-navigation-reload.mjs +0 -5
- package/esm2020/popover/popover/popover.component.mjs +0 -160
- package/esm2020/popover/popover-animations.mjs +0 -46
- package/esm2020/popover/popover.directive.mjs +0 -264
- package/esm2020/popover/popover.module.mjs +0 -40
- package/esm2020/popover/public-api.mjs +0 -5
- package/esm2020/popover/theseam-ui-common-popover.mjs +0 -5
- package/esm2020/progress/progress-circle/progress-circle.component.mjs +0 -65
- package/esm2020/progress/progress.module.mjs +0 -24
- package/esm2020/progress/public-api.mjs +0 -3
- package/esm2020/progress/theseam-ui-common-progress.mjs +0 -5
- package/esm2020/public_api.mjs +0 -2
- package/esm2020/rich-text/public-api.mjs +0 -5
- package/esm2020/rich-text/rich-text/rich-text.component.mjs +0 -594
- package/esm2020/rich-text/rich-text.module.mjs +0 -32
- package/esm2020/rich-text/theseam-ui-common-rich-text.mjs +0 -5
- package/esm2020/rich-text/utils/models.mjs +0 -24
- package/esm2020/rich-text/utils/utils.mjs +0 -123
- package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +0 -60
- package/esm2020/scrollbar/overlay-scrollbars-config-model.mjs +0 -2
- package/esm2020/scrollbar/overlay-scrollbars-config.mjs +0 -13
- package/esm2020/scrollbar/overlay-scrollbars.service.mjs +0 -83
- package/esm2020/scrollbar/public-api.mjs +0 -6
- package/esm2020/scrollbar/scrollbar.module.mjs +0 -30
- package/esm2020/scrollbar/theseam-ui-common-scrollbar.mjs +0 -5
- package/esm2020/services/asset-loader.service.mjs +0 -32
- package/esm2020/services/font-loader.service.mjs +0 -83
- package/esm2020/services/preferences/preferences-accessor.mjs +0 -2
- package/esm2020/services/preferences/preferences-manager.service.mjs +0 -69
- package/esm2020/services/preferences/preferences-record.mjs +0 -72
- package/esm2020/services/preferences/preferences.models.mjs +0 -2
- package/esm2020/services/public-api.mjs +0 -8
- package/esm2020/services/router-helpers.service.mjs +0 -25
- package/esm2020/services/theseam-ui-common-services.mjs +0 -5
- package/esm2020/shared/components/index.mjs +0 -2
- package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +0 -49
- package/esm2020/shared/directives/auto-focus.directive.mjs +0 -54
- package/esm2020/shared/directives/click-outside.directive.mjs +0 -52
- package/esm2020/shared/directives/disable-control.directive.mjs +0 -27
- package/esm2020/shared/directives/elem-resized.directive.mjs +0 -28
- package/esm2020/shared/directives/hover-class-toggle.directive.mjs +0 -88
- package/esm2020/shared/directives/hover-class.directive.mjs +0 -82
- package/esm2020/shared/directives/index.mjs +0 -9
- package/esm2020/shared/directives/ng-select-extra.directive.mjs +0 -184
- package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +0 -61
- package/esm2020/shared/pipes/index.mjs +0 -3
- package/esm2020/shared/pipes/mask-chars.pipe.mjs +0 -25
- package/esm2020/shared/pipes/truncate.pipe.mjs +0 -23
- package/esm2020/shared/public-api.mjs +0 -5
- package/esm2020/shared/shared.module.mjs +0 -93
- package/esm2020/shared/theseam-ui-common-shared.mjs +0 -5
- package/esm2020/storage/local-storage.service.mjs +0 -78
- package/esm2020/storage/localstorage-memory.mjs +0 -64
- package/esm2020/storage/public-api.mjs +0 -2
- package/esm2020/storage/theseam-ui-common-storage.mjs +0 -5
- package/esm2020/story-helpers/arg-type-helpers.mjs +0 -31
- package/esm2020/story-helpers/args-to-tpl.mjs +0 -83
- package/esm2020/story-helpers/initial-route-factory.mjs +0 -4
- package/esm2020/story-helpers/initial-route.service.mjs +0 -27
- package/esm2020/story-helpers/on-story-bootstrapped-exec.mjs +0 -61
- package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +0 -39
- package/esm2020/story-helpers/public-api.mjs +0 -16
- package/esm2020/story-helpers/route-button.mjs +0 -12
- package/esm2020/story-helpers/routes-arg-type.mjs +0 -19
- package/esm2020/story-helpers/story-empty-with-route.component.mjs +0 -12
- package/esm2020/story-helpers/story-empty.component.mjs +0 -11
- package/esm2020/story-helpers/story-helper-components.module.mjs +0 -42
- package/esm2020/story-helpers/story-initial-route.mjs +0 -28
- package/esm2020/story-helpers/story-modal-container.component.mjs +0 -90
- package/esm2020/story-helpers/story-preferences-accessor.service.mjs +0 -34
- package/esm2020/story-helpers/story-toastr.service.mjs +0 -36
- package/esm2020/story-helpers/theseam-ui-common-story-helpers.mjs +0 -5
- package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +0 -17
- package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +0 -37
- package/esm2020/tabbed/public-api.mjs +0 -9
- package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +0 -16
- package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +0 -33
- package/esm2020/tabbed/tabbed-models.mjs +0 -2
- package/esm2020/tabbed/tabbed.component.mjs +0 -119
- package/esm2020/tabbed/tabbed.module.mjs +0 -54
- package/esm2020/tabbed/tabbed.service.mjs +0 -30
- package/esm2020/tabbed/theseam-ui-common-tabbed.mjs +0 -5
- package/esm2020/table/public-api.mjs +0 -6
- package/esm2020/table/table/table.component.mjs +0 -181
- package/esm2020/table/table-cell-tpl.directive.mjs +0 -17
- package/esm2020/table/table-column-header-tpl.directive.mjs +0 -17
- package/esm2020/table/table-column.component.mjs +0 -68
- package/esm2020/table/table.module.mjs +0 -48
- package/esm2020/table/theseam-ui-common-table.mjs +0 -5
- package/esm2020/table-cell-type/public-api.mjs +0 -12
- package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +0 -67
- package/esm2020/table-cell-type/table-cell-type-action.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-column.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-config.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-export-props.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-manifest-provider.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-models.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-name.mjs +0 -2
- package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +0 -100
- package/esm2020/table-cell-type/table-cell-type-tokens.mjs +0 -4
- package/esm2020/table-cell-type/table-cell-type.module.mjs +0 -29
- package/esm2020/table-cell-type/theseam-ui-common-table-cell-type.mjs +0 -5
- package/esm2020/table-cell-types/public-api.mjs +0 -23
- package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +0 -86
- package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +0 -52
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +0 -84
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +0 -175
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +0 -82
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-manifests.mjs +0 -92
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +0 -67
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +0 -168
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +0 -77
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string-config.mjs +0 -2
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +0 -197
- package/esm2020/table-cell-types/table-cell-types.module.mjs +0 -118
- package/esm2020/table-cell-types/theseam-ui-common-table-cell-types.mjs +0 -5
- package/esm2020/tel-input/intl-tel-input.mjs +0 -55
- package/esm2020/tel-input/models/index.mjs +0 -3
- package/esm2020/tel-input/models/tel-input-country-data.mjs +0 -2
- package/esm2020/tel-input/models/tel-input-number-format-name.mjs +0 -8
- package/esm2020/tel-input/phone-number.pipe.mjs +0 -49
- package/esm2020/tel-input/public-api.mjs +0 -11
- package/esm2020/tel-input/tel-input/tel-input.component.mjs +0 -198
- package/esm2020/tel-input/tel-input-constants.mjs +0 -18
- package/esm2020/tel-input/tel-input-validator.mjs +0 -27
- package/esm2020/tel-input/tel-input.directive.mjs +0 -209
- package/esm2020/tel-input/tel-input.module.mjs +0 -43
- package/esm2020/tel-input/testing/tel-input.harness.mjs +0 -49
- package/esm2020/tel-input/theseam-ui-common-tel-input.mjs +0 -5
- package/esm2020/tel-input/utils/add-country-code.mjs +0 -23
- package/esm2020/tel-input/utils/coerce-phone-number-format.mjs +0 -22
- package/esm2020/tel-input/utils/get-country-code.mjs +0 -9
- package/esm2020/tel-input/utils/get-dial-code.mjs +0 -45
- package/esm2020/tel-input/utils/get-global-intl-tel-input-globals.mjs +0 -4
- package/esm2020/tel-input/utils/get-global-intl-tel-input-utils.mjs +0 -4
- package/esm2020/tel-input/utils/get-intl-tel-input-utils.mjs +0 -17
- package/esm2020/tel-input/utils/get-validation-error-message.mjs +0 -12
- package/esm2020/tel-input/utils/index.mjs +0 -10
- package/esm2020/tel-input/utils/process-country-codes.mjs +0 -46
- package/esm2020/testing/current-tick-time.mjs +0 -16
- package/esm2020/testing/fake-toastr.mjs +0 -29
- package/esm2020/testing/get-harness.mjs +0 -19
- package/esm2020/testing/harnesses/ng-select-dropdown.harness.mjs +0 -39
- package/esm2020/testing/harnesses/ng-select-option.harness.mjs +0 -26
- package/esm2020/testing/harnesses/ng-select.harness.mjs +0 -104
- package/esm2020/testing/public-api.mjs +0 -10
- package/esm2020/testing/render-story.mjs +0 -10
- package/esm2020/testing/story-expect.mjs +0 -40
- package/esm2020/testing/theseam-ui-common-testing.mjs +0 -5
- package/esm2020/testing/tick-helper.mjs +0 -74
- package/esm2020/theseam-ui-common.mjs +0 -5
- package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +0 -214
- package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +0 -159
- package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +0 -63
- package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +0 -17
- package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +0 -16
- package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +0 -19
- package/esm2020/tiled-select/public-api.mjs +0 -10
- package/esm2020/tiled-select/testing/index.mjs +0 -3
- package/esm2020/tiled-select/testing/tiled-select-harness.mjs +0 -21
- package/esm2020/tiled-select/testing/tiled-select-tile-harness.mjs +0 -23
- package/esm2020/tiled-select/theseam-ui-common-tiled-select.mjs +0 -5
- package/esm2020/tiled-select/tiled-select.models.mjs +0 -2
- package/esm2020/tiled-select/tiled-select.module.mjs +0 -51
- package/esm2020/toggle-edit/models/can-toggle-edit.mjs +0 -2
- package/esm2020/toggle-edit/models/index.mjs +0 -3
- package/esm2020/toggle-edit/models/toggle-edit-ref.mjs +0 -2
- package/esm2020/toggle-edit/public-api.mjs +0 -7
- package/esm2020/toggle-edit/theseam-ui-common-toggle-edit.mjs +0 -5
- package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +0 -11
- package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +0 -16
- package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +0 -57
- package/esm2020/toggle-edit/toggle-edit.component.mjs +0 -414
- package/esm2020/toggle-edit/toggle-edit.module.mjs +0 -64
- package/esm2020/toggle-group/public-api.mjs +0 -4
- package/esm2020/toggle-group/theseam-ui-common-toggle-group.mjs +0 -5
- package/esm2020/toggle-group/toggle-group-option.directive.mjs +0 -47
- package/esm2020/toggle-group/toggle-group.directive.mjs +0 -199
- package/esm2020/toggle-group/toggle-group.module.mjs +0 -33
- package/esm2020/unsaved-changes-dialog/public-api.mjs +0 -5
- package/esm2020/unsaved-changes-dialog/theseam-ui-common-unsaved-changes-dialog.mjs +0 -5
- package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +0 -30
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +0 -21
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +0 -38
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +0 -17
- package/esm2020/utils/array-move.mjs +0 -62
- package/esm2020/utils/calc-percentage.mjs +0 -4
- package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +0 -18
- package/esm2020/utils/create-padding.mjs +0 -17
- package/esm2020/utils/file-utils.mjs +0 -49
- package/esm2020/utils/form/get-control-name.mjs +0 -31
- package/esm2020/utils/form/get-control-path.mjs +0 -38
- package/esm2020/utils/form/has-required-control.mjs +0 -50
- package/esm2020/utils/form/is-empty-input-value.mjs +0 -6
- package/esm2020/utils/form/observe-control-is-different.mjs +0 -18
- package/esm2020/utils/form/observe-control-status.mjs +0 -17
- package/esm2020/utils/form/observe-control-valid.mjs +0 -30
- package/esm2020/utils/form/observe-control-value-change.mjs +0 -10
- package/esm2020/utils/form/observe-control-value.mjs +0 -11
- package/esm2020/utils/form/wait-on-non-pending-status.mjs +0 -18
- package/esm2020/utils/fractional-digits-count.mjs +0 -19
- package/esm2020/utils/geo-json/close-polygons.mjs +0 -38
- package/esm2020/utils/geo-json/coerce-feature-collection.mjs +0 -44
- package/esm2020/utils/geo-json/geo-json-to-area.mjs +0 -11
- package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +0 -21
- package/esm2020/utils/geo-json/is-only-geometry-types.mjs +0 -23
- package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +0 -32
- package/esm2020/utils/geo-json/merge-polygons.mjs +0 -35
- package/esm2020/utils/geo-json/min-max-points.validator.mjs +0 -56
- package/esm2020/utils/geo-json/no-empty-feature-collection.validator.mjs +0 -24
- package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +0 -63
- package/esm2020/utils/geo-json/no-kinks.validator.mjs +0 -39
- package/esm2020/utils/geo-json/read-geo-file.mjs +0 -93
- package/esm2020/utils/geo-json/split-multi-polygons.mjs +0 -29
- package/esm2020/utils/get-attribute.mjs +0 -7
- package/esm2020/utils/has-attribute.mjs +0 -7
- package/esm2020/utils/has-property.mjs +0 -7
- package/esm2020/utils/input-masks.mjs +0 -2
- package/esm2020/utils/is-absolute-url.mjs +0 -17
- package/esm2020/utils/is-null-or-undefined-or-empty.mjs +0 -4
- package/esm2020/utils/is-null-or-undefined.mjs +0 -4
- package/esm2020/utils/is-numeric.mjs +0 -4
- package/esm2020/utils/load-style-sheet.mjs +0 -14
- package/esm2020/utils/load-style.mjs +0 -13
- package/esm2020/utils/not-null-or-undefined-or-empty.mjs +0 -4
- package/esm2020/utils/not-null-or-undefined.mjs +0 -4
- package/esm2020/utils/obj-utils.mjs +0 -26
- package/esm2020/utils/observe-query-list.mjs +0 -5
- package/esm2020/utils/operators/index.mjs +0 -3
- package/esm2020/utils/operators/map-each.mjs +0 -6
- package/esm2020/utils/operators/tap-first.mjs +0 -14
- package/esm2020/utils/pad-end.mjs +0 -9
- package/esm2020/utils/pad-start.mjs +0 -9
- package/esm2020/utils/polling-ticker.mjs +0 -121
- package/esm2020/utils/public-api.mjs +0 -54
- package/esm2020/utils/refreshable.mjs +0 -65
- package/esm2020/utils/router/index.mjs +0 -7
- package/esm2020/utils/router/is-empty-url-route.mjs +0 -4
- package/esm2020/utils/router/leaf-child-route.mjs +0 -8
- package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +0 -11
- package/esm2020/utils/router/route-snapshot-path-full.mjs +0 -5
- package/esm2020/utils/router/route-snapshot-path-relative.mjs +0 -4
- package/esm2020/utils/router/will-have-data-prop.mjs +0 -10
- package/esm2020/utils/subscriber-count.mjs +0 -45
- package/esm2020/utils/theseam-ui-common-utils.mjs +0 -5
- package/esm2020/utils/toggle-attribute.mjs +0 -36
- package/esm2020/utils/wait-on-condition-async.mjs +0 -30
- package/esm2020/utils/wrap-into-observable.mjs +0 -8
- package/esm2020/validators/decimal.validator.mjs +0 -25
- package/esm2020/validators/email-exists.validator.mjs +0 -18
- package/esm2020/validators/integer.validator.mjs +0 -25
- package/esm2020/validators/phone-length.validator.mjs +0 -8
- package/esm2020/validators/public-api.mjs +0 -6
- package/esm2020/validators/tax-id.validator.mjs +0 -13
- package/esm2020/validators/theseam-ui-common-validators.mjs +0 -5
- package/esm2020/vertical-list-filter/public-api.mjs +0 -3
- package/esm2020/vertical-list-filter/testing/index.mjs +0 -2
- package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +0 -28
- package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +0 -5
- package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +0 -52
- package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +0 -219
- package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +0 -32
- package/esm2020/viewers/html-template-viewer/index.mjs +0 -3
- package/esm2020/viewers/pdf-viewer/index.mjs +0 -4
- package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +0 -143
- package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +0 -28
- package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -164
- package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +0 -33
- package/esm2020/viewers/public-api.mjs +0 -3
- package/esm2020/viewers/theseam-ui-common-viewers.mjs +0 -5
- package/esm2020/widget/directives/widget-drag-handle.directive.mjs +0 -150
- package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +0 -16
- package/esm2020/widget/directives/widget-title-tpl.directive.mjs +0 -16
- package/esm2020/widget/preferences/widget-preferences.models.mjs +0 -5
- package/esm2020/widget/preferences/widget-preferences.service.mjs +0 -78
- package/esm2020/widget/preferences/widget-preferences.token.mjs +0 -3
- package/esm2020/widget/public-api.mjs +0 -42
- package/esm2020/widget/theseam-ui-common-widget.mjs +0 -5
- package/esm2020/widget/widget/widget.component.mjs +0 -214
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +0 -30
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +0 -24
- package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +0 -24
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +0 -39
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +0 -24
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +0 -24
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +0 -24
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +0 -22
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +0 -24
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +0 -17
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +0 -124
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +0 -14
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +0 -46
- package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +0 -38
- package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +0 -32
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +0 -13
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +0 -41
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +0 -17
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +0 -122
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +0 -48
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +0 -11
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +0 -27
- package/esm2020/widget/widget-footer/widget-footer.component.mjs +0 -11
- package/esm2020/widget/widget-registry.models.mjs +0 -2
- package/esm2020/widget/widget-registry.service.mjs +0 -56
- package/esm2020/widget/widget-token.mjs +0 -5
- package/esm2020/widget/widget.models.mjs +0 -2
- package/esm2020/widget/widget.module.mjs +0 -125
- package/fesm2015/theseam-ui-common-asset-reader.mjs +0 -186
- package/fesm2015/theseam-ui-common-asset-reader.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +0 -201
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-buttons.mjs +0 -492
- package/fesm2015/theseam-ui-common-buttons.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-card.mjs +0 -153
- package/fesm2015/theseam-ui-common-card.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-carousel.mjs +0 -266
- package/fesm2015/theseam-ui-common-carousel.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-checkbox.mjs +0 -391
- package/fesm2015/theseam-ui-common-checkbox.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs +0 -192
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-core.mjs +0 -225
- package/fesm2015/theseam-ui-common-core.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-data-exporter.mjs +0 -93
- package/fesm2015/theseam-ui-common-data-exporter.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-data-filters.mjs +0 -508
- package/fesm2015/theseam-ui-common-data-filters.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +0 -998
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +0 -3685
- package/fesm2015/theseam-ui-common-datatable.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +0 -135
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-dynamic.mjs +0 -722
- package/fesm2015/theseam-ui-common-dynamic.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-footer-bar.mjs +0 -35
- package/fesm2015/theseam-ui-common-footer-bar.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-form-field-error.mjs +0 -479
- package/fesm2015/theseam-ui-common-form-field-error.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-form-field.mjs +0 -670
- package/fesm2015/theseam-ui-common-form-field.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-framework.mjs +0 -3891
- package/fesm2015/theseam-ui-common-framework.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +0 -2083
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +0 -1115
- package/fesm2015/theseam-ui-common-graphql.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-icon.mjs +0 -587
- package/fesm2015/theseam-ui-common-icon.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-layout.mjs +0 -101
- package/fesm2015/theseam-ui-common-layout.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-loading.mjs +0 -139
- package/fesm2015/theseam-ui-common-loading.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-menu.mjs +0 -1361
- package/fesm2015/theseam-ui-common-menu.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-modal.mjs +0 -1378
- package/fesm2015/theseam-ui-common-modal.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-models.mjs +0 -52
- package/fesm2015/theseam-ui-common-models.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-navigation-reload.mjs +0 -75
- package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-popover.mjs +0 -506
- package/fesm2015/theseam-ui-common-popover.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-progress.mjs +0 -93
- package/fesm2015/theseam-ui-common-progress.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-rich-text.mjs +0 -767
- package/fesm2015/theseam-ui-common-rich-text.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-scrollbar.mjs +0 -184
- package/fesm2015/theseam-ui-common-scrollbar.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-services.mjs +0 -273
- package/fesm2015/theseam-ui-common-services.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-shared.mjs +0 -739
- package/fesm2015/theseam-ui-common-shared.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-storage.mjs +0 -148
- package/fesm2015/theseam-ui-common-storage.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-story-helpers.mjs +0 -514
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +0 -288
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-table-cell-type.mjs +0 -201
- package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +0 -1134
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-table.mjs +0 -320
- package/fesm2015/theseam-ui-common-table.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-tel-input.mjs +0 -841
- package/fesm2015/theseam-ui-common-tel-input.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-testing.mjs +0 -395
- package/fesm2015/theseam-ui-common-testing.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-tiled-select.mjs +0 -571
- package/fesm2015/theseam-ui-common-tiled-select.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +0 -560
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +0 -281
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +0 -106
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-utils.mjs +0 -1387
- package/fesm2015/theseam-ui-common-utils.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-validators.mjs +0 -94
- package/fesm2015/theseam-ui-common-validators.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +0 -96
- package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-viewers.mjs +0 -602
- package/fesm2015/theseam-ui-common-viewers.mjs.map +0 -1
- package/fesm2015/theseam-ui-common-widget.mjs +0 -1395
- package/fesm2015/theseam-ui-common-widget.mjs.map +0 -1
- package/fesm2015/theseam-ui-common.mjs +0 -6
- package/fesm2015/theseam-ui-common.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-asset-reader.mjs +0 -184
- package/fesm2020/theseam-ui-common-asset-reader.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +0 -201
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-buttons.mjs +0 -466
- package/fesm2020/theseam-ui-common-buttons.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-card.mjs +0 -151
- package/fesm2020/theseam-ui-common-card.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-carousel.mjs +0 -266
- package/fesm2020/theseam-ui-common-carousel.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-checkbox.mjs +0 -373
- package/fesm2020/theseam-ui-common-checkbox.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs +0 -192
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-core.mjs +0 -233
- package/fesm2020/theseam-ui-common-core.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-data-exporter.mjs +0 -93
- package/fesm2020/theseam-ui-common-data-exporter.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-data-filters.mjs +0 -500
- package/fesm2020/theseam-ui-common-data-filters.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +0 -986
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +0 -3662
- package/fesm2020/theseam-ui-common-datatable.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +0 -133
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-dynamic.mjs +0 -689
- package/fesm2020/theseam-ui-common-dynamic.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-footer-bar.mjs +0 -35
- package/fesm2020/theseam-ui-common-footer-bar.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-form-field-error.mjs +0 -483
- package/fesm2020/theseam-ui-common-form-field-error.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-form-field.mjs +0 -659
- package/fesm2020/theseam-ui-common-form-field.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-framework.mjs +0 -3883
- package/fesm2020/theseam-ui-common-framework.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +0 -2072
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +0 -1121
- package/fesm2020/theseam-ui-common-graphql.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-icon.mjs +0 -587
- package/fesm2020/theseam-ui-common-icon.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-layout.mjs +0 -111
- package/fesm2020/theseam-ui-common-layout.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-loading.mjs +0 -138
- package/fesm2020/theseam-ui-common-loading.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-menu.mjs +0 -1288
- package/fesm2020/theseam-ui-common-menu.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-modal.mjs +0 -1370
- package/fesm2020/theseam-ui-common-modal.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-models.mjs +0 -55
- package/fesm2020/theseam-ui-common-models.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-navigation-reload.mjs +0 -74
- package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-popover.mjs +0 -503
- package/fesm2020/theseam-ui-common-popover.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-progress.mjs +0 -93
- package/fesm2020/theseam-ui-common-progress.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-rich-text.mjs +0 -773
- package/fesm2020/theseam-ui-common-rich-text.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-scrollbar.mjs +0 -184
- package/fesm2020/theseam-ui-common-scrollbar.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-services.mjs +0 -274
- package/fesm2020/theseam-ui-common-services.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-shared.mjs +0 -733
- package/fesm2020/theseam-ui-common-shared.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-storage.mjs +0 -148
- package/fesm2020/theseam-ui-common-storage.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-story-helpers.mjs +0 -512
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +0 -286
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-table-cell-type.mjs +0 -198
- package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +0 -1109
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-table.mjs +0 -322
- package/fesm2020/theseam-ui-common-table.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-tel-input.mjs +0 -810
- package/fesm2020/theseam-ui-common-tel-input.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-testing.mjs +0 -359
- package/fesm2020/theseam-ui-common-testing.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-tiled-select.mjs +0 -557
- package/fesm2020/theseam-ui-common-tiled-select.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +0 -553
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +0 -277
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +0 -106
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-utils.mjs +0 -1364
- package/fesm2020/theseam-ui-common-utils.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-validators.mjs +0 -94
- package/fesm2020/theseam-ui-common-validators.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +0 -87
- package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-viewers.mjs +0 -598
- package/fesm2020/theseam-ui-common-viewers.mjs.map +0 -1
- package/fesm2020/theseam-ui-common-widget.mjs +0 -1387
- package/fesm2020/theseam-ui-common-widget.mjs.map +0 -1
- package/fesm2020/theseam-ui-common.mjs +0 -6
- package/fesm2020/theseam-ui-common.mjs.map +0 -1
- package/footer-bar/footer-bar/footer-bar.component.d.ts +0 -5
- package/footer-bar/footer-bar.module.d.ts +0 -8
- package/footer-bar/public-api.d.ts +0 -2
- package/form-field/form-field-error.directive.d.ts +0 -15
- package/form-field/form-field-help-text.directive.d.ts +0 -8
- package/form-field/form-field-label-tpl.directive.d.ts +0 -8
- package/form-field/form-field-required-indicator.component.d.ts +0 -16
- package/form-field/form-field-tokens.d.ts +0 -2
- package/form-field/form-field.component.d.ts +0 -117
- package/form-field/form-field.module.d.ts +0 -16
- package/form-field/input.directive.d.ts +0 -70
- package/form-field/public-api.d.ts +0 -9
- package/form-field/testing/form-field-required-indicator.harness.d.ts +0 -5
- package/form-field/testing/form-field.harness.d.ts +0 -14
- package/form-field/testing/index.d.ts +0 -2
- package/form-field-error/form-field-error/form-field-error.component.d.ts +0 -8
- package/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.d.ts +0 -12
- package/form-field-error/form-field-error-list/form-field-error-list-item.directive.d.ts +0 -9
- package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +0 -65
- package/form-field-error/form-field-error.module.d.ts +0 -11
- package/form-field-error/public-api.d.ts +0 -5
- package/framework/base-layout/base-layout-action.d.ts +0 -31
- package/framework/base-layout/base-layout-nav.d.ts +0 -18
- package/framework/base-layout/base-layout-ref.d.ts +0 -14
- package/framework/base-layout/base-layout-tokens.d.ts +0 -3
- package/framework/base-layout/base-layout.component.d.ts +0 -48
- package/framework/base-layout/base-layout.module.d.ts +0 -20
- package/framework/base-layout/directives/base-layout-content-footer.directive.d.ts +0 -9
- package/framework/base-layout/directives/base-layout-content-header.directive.d.ts +0 -9
- package/framework/base-layout/directives/base-layout-content.directive.d.ts +0 -9
- package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +0 -22
- package/framework/base-layout/directives/base-layout-side-bar-footer.directive.d.ts +0 -9
- package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +0 -9
- package/framework/base-layout/directives/base-layout-side-bar.directive.d.ts +0 -9
- package/framework/base-layout/directives/base-layout-top-bar.directive.d.ts +0 -9
- package/framework/base-layout/index.d.ts +0 -14
- package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +0 -9
- package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +0 -13
- package/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.d.ts +0 -50
- package/framework/dashboard/dashboard-widgets/dashboard-widgets-item.d.ts +0 -43
- package/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.d.ts +0 -3
- package/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor.d.ts +0 -15
- package/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.d.ts +0 -30
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.d.ts +0 -62
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.service.d.ts +0 -37
- package/framework/dashboard/dashboard-widgets-tokens.d.ts +0 -7
- package/framework/dashboard/dashboard.component.d.ts +0 -10
- package/framework/dashboard/dashboard.module.d.ts +0 -17
- package/framework/dashboard/index.d.ts +0 -11
- package/framework/dynamic-router/dynamic-route-def.d.ts +0 -8
- package/framework/dynamic-router/dynamic-router.module.d.ts +0 -9
- package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.d.ts +0 -5
- package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +0 -25
- package/framework/dynamic-router/index.d.ts +0 -5
- package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -9
- package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +0 -25
- package/framework/nav/index.d.ts +0 -5
- package/framework/nav/nav-item/nav-item.component.d.ts +0 -74
- package/framework/nav/nav-utils.d.ts +0 -20
- package/framework/nav/nav.models.d.ts +0 -77
- package/framework/nav/nav.module.d.ts +0 -17
- package/framework/nav/nav.service.d.ts +0 -27
- package/framework/public-api.d.ts +0 -7
- package/framework/schema-form/index.d.ts +0 -4
- package/framework/schema-form/schema-form-framework.component.d.ts +0 -8
- package/framework/schema-form/schema-form-framework.d.ts +0 -32
- package/framework/schema-form/schema-form-widget.d.ts +0 -61
- package/framework/schema-form/schema-form.module.d.ts +0 -9
- package/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.d.ts +0 -25
- package/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.d.ts +0 -12
- package/framework/schema-form-controls/schema-form-input/schema-form-input.component.d.ts +0 -23
- package/framework/schema-form-controls/schema-form-number/schema-form-number.component.d.ts +0 -26
- package/framework/schema-form-controls/schema-form-select/schema-form-select.component.d.ts +0 -24
- package/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.d.ts +0 -22
- package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +0 -38
- package/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.d.ts +0 -23
- package/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.d.ts +0 -32
- package/framework/side-nav/index.d.ts +0 -7
- package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +0 -70
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +0 -14
- package/framework/side-nav/side-nav-tokens.d.ts +0 -14
- package/framework/side-nav/side-nav-utils.d.ts +0 -24
- package/framework/side-nav/side-nav.component.d.ts +0 -66
- package/framework/side-nav/side-nav.models.d.ts +0 -93
- package/framework/side-nav/side-nav.module.d.ts +0 -9
- package/framework/side-nav/side-nav.service.d.ts +0 -24
- package/framework/top-bar/index.d.ts +0 -9
- package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +0 -8
- package/framework/top-bar/top-bar-item.directive.d.ts +0 -11
- package/framework/top-bar/top-bar-menu-btn-detail.directive.d.ts +0 -8
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +0 -26
- package/framework/top-bar/top-bar-menu.directive.d.ts +0 -8
- package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +0 -8
- package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +0 -7
- package/framework/top-bar/top-bar.component.d.ts +0 -85
- package/framework/top-bar/top-bar.module.d.ts +0 -21
- package/google-maps/google-maps/google-maps.component.d.ts +0 -105
- package/google-maps/google-maps-api-loader/google-maps-api-loader.d.ts +0 -4
- package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +0 -74
- package/google-maps/google-maps-api-loader/noop-google-maps-api-loader.d.ts +0 -13
- package/google-maps/google-maps-contextmenu.d.ts +0 -15
- package/google-maps/google-maps-controls.service.d.ts +0 -26
- package/google-maps/google-maps-feature-helpers.d.ts +0 -41
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +0 -106
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.d.ts +0 -83
- package/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.d.ts +0 -24
- package/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.d.ts +0 -37
- package/google-maps/google-maps.module.d.ts +0 -20
- package/google-maps/google-maps.service.d.ts +0 -65
- package/google-maps/map-control.component.d.ts +0 -23
- package/google-maps/map-controls-service.d.ts +0 -13
- package/google-maps/map-file-drop/map-file-drop.component.d.ts +0 -37
- package/google-maps/map-value-manager.service.d.ts +0 -21
- package/google-maps/public-api.d.ts +0 -17
- package/graphql/datatable/create-page-info-observable.d.ts +0 -4
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +0 -64
- package/graphql/datatable/datatable-graphql.service.d.ts +0 -29
- package/graphql/datatable/datatable-helpers.d.ts +0 -12
- package/graphql/datatable/get-page-info.d.ts +0 -4
- package/graphql/datatable/index.d.ts +0 -9
- package/graphql/datatable/map-filter-states.d.ts +0 -18
- package/graphql/datatable/map-page-info.d.ts +0 -11
- package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +0 -4
- package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +0 -4
- package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +0 -4
- package/graphql/datatable/mapper-context.d.ts +0 -6
- package/graphql/models/direction.d.ts +0 -6
- package/graphql/models/gql-datatable-accessor.d.ts +0 -9
- package/graphql/models/hint-definition.d.ts +0 -7
- package/graphql/models/hint-transform-operation.d.ts +0 -5
- package/graphql/models/hint-transformer.d.ts +0 -3
- package/graphql/models/hints-kind.d.ts +0 -7
- package/graphql/models/hints-token.d.ts +0 -7
- package/graphql/models/index.d.ts +0 -9
- package/graphql/models/query-processing-config.d.ts +0 -13
- package/graphql/models/variable.d.ts +0 -5
- package/graphql/public-api.d.ts +0 -2
- package/graphql/utils/contains-variable.d.ts +0 -2
- package/graphql/utils/gql-var.d.ts +0 -3
- package/graphql/utils/hints-tokens-containing-hint.d.ts +0 -2
- package/graphql/utils/index.d.ts +0 -10
- package/graphql/utils/inline-variables.d.ts +0 -2
- package/graphql/utils/parse-comments.d.ts +0 -2
- package/graphql/utils/parse-hints.d.ts +0 -17
- package/graphql/utils/remove-variable-definition.d.ts +0 -2
- package/graphql/utils/remove-variable-definitions-not-defined.d.ts +0 -3
- package/graphql/utils/remove-variable.d.ts +0 -2
- package/graphql/utils/to-gql.d.ts +0 -1
- package/icon/icon/icon.component.d.ts +0 -57
- package/icon/icon-btn/icon-btn.component.d.ts +0 -76
- package/icon/icon-notification/icon-notification.component.d.ts +0 -50
- package/icon/icon.d.ts +0 -2
- package/icon/icon.module.d.ts +0 -11
- package/icon/public-api.d.ts +0 -6
- package/icon/utils/file-extension-icon.d.ts +0 -3
- package/icon/utils/get-known-icon.d.ts +0 -2
- package/icon/utils/index.d.ts +0 -2
- package/layout/breakpoint-aliases.d.ts +0 -20
- package/layout/layout.module.d.ts +0 -8
- package/layout/layout.service.d.ts +0 -23
- package/layout/observe-media-query.d.ts +0 -8
- package/layout/public-api.d.ts +0 -4
- package/loading/loading/loading.component.d.ts +0 -9
- package/loading/loading-overlay.service.d.ts +0 -16
- package/loading/loading-themes.d.ts +0 -3
- package/loading/loading.models.d.ts +0 -1
- package/loading/loading.module.d.ts +0 -13
- package/loading/public-api.d.ts +0 -5
- package/menu/menu-animations.d.ts +0 -8
- package/menu/menu-divider.component.d.ts +0 -5
- package/menu/menu-footer/menu-footer.component.d.ts +0 -12
- package/menu/menu-footer-action/menu-footer-action.component.d.ts +0 -22
- package/menu/menu-header/menu-header.component.d.ts +0 -12
- package/menu/menu-item.component.d.ts +0 -54
- package/menu/menu-panel-token.d.ts +0 -6
- package/menu/menu-panel.d.ts +0 -20
- package/menu/menu-toggle.directive.d.ts +0 -83
- package/menu/menu.component.d.ts +0 -79
- package/menu/menu.module.d.ts +0 -16
- package/menu/public-api.d.ts +0 -15
- package/menu/testing/menu-footer.harness.d.ts +0 -22
- package/menu/testing/menu-header.harness.d.ts +0 -18
- package/menu/testing/menu-item.harness.d.ts +0 -37
- package/menu/testing/menu.harness.d.ts +0 -74
- package/menu/testing/utils.d.ts +0 -5
- package/modal/directives/modal-close.directive.d.ts +0 -23
- package/modal/directives/modal-footer-tpl.directive.d.ts +0 -8
- package/modal/directives/modal-header-icon-tpl.directive.d.ts +0 -8
- package/modal/directives/modal-header-title-tpl.directive.d.ts +0 -8
- package/modal/directives/modal-title.directive.d.ts +0 -9
- package/modal/directives/modal.directive.d.ts +0 -11
- package/modal/modal/modal.component.d.ts +0 -58
- package/modal/modal-body/modal-body.component.d.ts +0 -7
- package/modal/modal-config.d.ts +0 -93
- package/modal/modal-container/modal-container.component.d.ts +0 -81
- package/modal/modal-footer/modal-footer.component.d.ts +0 -6
- package/modal/modal-header/modal-header.component.d.ts +0 -11
- package/modal/modal-injectors.d.ts +0 -23
- package/modal/modal-ref.d.ts +0 -52
- package/modal/modal-utils.d.ts +0 -8
- package/modal/modal.models.d.ts +0 -24
- package/modal/modal.module.d.ts +0 -25
- package/modal/modal.service.d.ts +0 -98
- package/modal/public-api.d.ts +0 -19
- package/modal/route-modal/route-modal.component.d.ts +0 -18
- package/models/component-type.d.ts +0 -2
- package/models/http-status-codes.d.ts +0 -18
- package/models/public-api.d.ts +0 -7
- package/models/size-prefixes.d.ts +0 -1
- package/models/size-types.d.ts +0 -1
- package/models/theme-names.d.ts +0 -2
- package/models/theme-prefixes.d.ts +0 -1
- package/models/theme-types.d.ts +0 -2
- package/navigation-reload/navigation-reload.config.d.ts +0 -5
- package/navigation-reload/navigation-reload.provider.d.ts +0 -3
- package/navigation-reload/navigation-reload.service.d.ts +0 -13
- package/navigation-reload/public-api.d.ts +0 -3
- package/popover/popover/popover.component.d.ts +0 -50
- package/popover/popover-animations.d.ts +0 -4
- package/popover/popover.directive.d.ts +0 -61
- package/popover/popover.module.d.ts +0 -11
- package/popover/public-api.d.ts +0 -4
- package/progress/progress-circle/progress-circle.component.d.ts +0 -29
- package/progress/progress.module.d.ts +0 -8
- package/progress/public-api.d.ts +0 -2
- package/public_api.d.ts +0 -2
- package/rich-text/public-api.d.ts +0 -4
- package/rich-text/rich-text/rich-text.component.d.ts +0 -194
- package/rich-text/rich-text.module.d.ts +0 -10
- package/rich-text/utils/models.d.ts +0 -343
- package/rich-text/utils/utils.d.ts +0 -14
- package/scrollbar/overlay-scrollbar.directive.d.ts +0 -23
- package/scrollbar/overlay-scrollbars-config-model.d.ts +0 -2
- package/scrollbar/overlay-scrollbars-config.d.ts +0 -51
- package/scrollbar/overlay-scrollbars.service.d.ts +0 -23
- package/scrollbar/public-api.d.ts +0 -5
- package/scrollbar/scrollbar.module.d.ts +0 -8
- package/services/asset-loader.service.d.ts +0 -15
- package/services/font-loader.service.d.ts +0 -45
- package/services/preferences/preferences-accessor.d.ts +0 -15
- package/services/preferences/preferences-manager.service.d.ts +0 -15
- package/services/preferences/preferences-record.d.ts +0 -28
- package/services/preferences/preferences.models.d.ts +0 -3
- package/services/public-api.d.ts +0 -7
- package/services/router-helpers.service.d.ts +0 -10
- package/shared/components/index.d.ts +0 -1
- package/shared/components/password-input-reveal/password-input-reveal.component.d.ts +0 -17
- package/shared/directives/auto-focus.directive.d.ts +0 -18
- package/shared/directives/click-outside.directive.d.ts +0 -13
- package/shared/directives/disable-control.directive.d.ts +0 -9
- package/shared/directives/elem-resized.directive.d.ts +0 -20
- package/shared/directives/hover-class-toggle.directive.d.ts +0 -36
- package/shared/directives/hover-class.directive.d.ts +0 -31
- package/shared/directives/index.d.ts +0 -8
- package/shared/directives/ng-select-extra.directive.d.ts +0 -42
- package/shared/directives/ngx-quill-extra.directive.d.ts +0 -23
- package/shared/pipes/index.d.ts +0 -2
- package/shared/pipes/mask-chars.pipe.d.ts +0 -7
- package/shared/pipes/truncate.pipe.d.ts +0 -7
- package/shared/public-api.d.ts +0 -4
- package/shared/shared.module.d.ts +0 -22
- package/storage/local-storage.service.d.ts +0 -31
- package/storage/localstorage-memory.d.ts +0 -37
- package/storage/public-api.d.ts +0 -1
- package/story-helpers/arg-type-helpers.d.ts +0 -6
- package/story-helpers/args-to-tpl.d.ts +0 -25
- package/story-helpers/initial-route-factory.d.ts +0 -2
- package/story-helpers/initial-route.service.d.ts +0 -10
- package/story-helpers/on-story-bootstrapped-exec.d.ts +0 -24
- package/story-helpers/on-story-bootstrapped-trigger.d.ts +0 -23
- package/story-helpers/public-api.d.ts +0 -15
- package/story-helpers/route-button.d.ts +0 -5
- package/story-helpers/routes-arg-type.d.ts +0 -7
- package/story-helpers/story-empty-with-route.component.d.ts +0 -5
- package/story-helpers/story-empty.component.d.ts +0 -5
- package/story-helpers/story-helper-components.module.d.ts +0 -12
- package/story-helpers/story-initial-route.d.ts +0 -8
- package/story-helpers/story-modal-container.component.d.ts +0 -23
- package/story-helpers/story-preferences-accessor.service.d.ts +0 -19
- package/story-helpers/story-toastr.service.d.ts +0 -33
- package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -7
- package/tabbed/directives/tabbed-tab.directive.d.ts +0 -13
- package/tabbed/public-api.d.ts +0 -8
- package/tabbed/tabbed-content/tabbed-content.component.d.ts +0 -7
- package/tabbed/tabbed-item/tabbed-item.component.d.ts +0 -16
- package/tabbed/tabbed-models.d.ts +0 -12
- package/tabbed/tabbed.component.d.ts +0 -44
- package/tabbed/tabbed.module.d.ts +0 -14
- package/tabbed/tabbed.service.d.ts +0 -10
- package/table/public-api.d.ts +0 -5
- package/table/table/table.component.d.ts +0 -63
- package/table/table-cell-tpl.directive.d.ts +0 -7
- package/table/table-column-header-tpl.directive.d.ts +0 -7
- package/table/table-column.component.d.ts +0 -24
- package/table/table.module.d.ts +0 -13
- package/table-cell-type/public-api.d.ts +0 -11
- package/table-cell-type/services/table-cell-types-helpers.service.d.ts +0 -18
- package/table-cell-type/table-cell-type-action.d.ts +0 -13
- package/table-cell-type/table-cell-type-column.d.ts +0 -12
- package/table-cell-type/table-cell-type-config.d.ts +0 -12
- package/table-cell-type/table-cell-type-export-props.d.ts +0 -15
- package/table-cell-type/table-cell-type-manifest-provider.d.ts +0 -7
- package/table-cell-type/table-cell-type-models.d.ts +0 -39
- package/table-cell-type/table-cell-type-name.d.ts +0 -1
- package/table-cell-type/table-cell-type-selector.component.d.ts +0 -27
- package/table-cell-type/table-cell-type-tokens.d.ts +0 -4
- package/table-cell-type/table-cell-type.module.d.ts +0 -9
- package/table-cell-types/public-api.d.ts +0 -22
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +0 -44
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +0 -21
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +0 -3
- package/table-cell-types/table-cell-type-date/table-cell-type-date-config.d.ts +0 -9
- package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +0 -14
- package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +0 -3
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +0 -38
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +0 -21
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +0 -3
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +0 -34
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +0 -55
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +0 -30
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +0 -21
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +0 -3
- package/table-cell-types/table-cell-type-manifests.d.ts +0 -11
- package/table-cell-types/table-cell-type-phone/table-cell-type-phone-config.d.ts +0 -13
- package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +0 -19
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +0 -29
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +0 -50
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +0 -49
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +0 -23
- package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +0 -18
- package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +0 -57
- package/table-cell-types/table-cell-types.module.d.ts +0 -26
- package/tel-input/intl-tel-input.d.ts +0 -300
- package/tel-input/models/index.d.ts +0 -2
- package/tel-input/models/tel-input-country-data.d.ts +0 -9
- package/tel-input/models/tel-input-number-format-name.d.ts +0 -4
- package/tel-input/phone-number.pipe.d.ts +0 -14
- package/tel-input/public-api.d.ts +0 -10
- package/tel-input/tel-input/tel-input.component.d.ts +0 -86
- package/tel-input/tel-input-constants.d.ts +0 -4
- package/tel-input/tel-input-validator.d.ts +0 -7
- package/tel-input/tel-input.directive.d.ts +0 -35
- package/tel-input/tel-input.module.d.ts +0 -12
- package/tel-input/testing/tel-input.harness.d.ts +0 -19
- package/tel-input/utils/add-country-code.d.ts +0 -7
- package/tel-input/utils/coerce-phone-number-format.d.ts +0 -7
- package/tel-input/utils/get-country-code.d.ts +0 -2
- package/tel-input/utils/get-dial-code.d.ts +0 -9
- package/tel-input/utils/get-global-intl-tel-input-globals.d.ts +0 -2
- package/tel-input/utils/get-global-intl-tel-input-utils.d.ts +0 -2
- package/tel-input/utils/get-intl-tel-input-utils.d.ts +0 -2
- package/tel-input/utils/get-validation-error-message.d.ts +0 -5
- package/tel-input/utils/index.d.ts +0 -9
- package/tel-input/utils/process-country-codes.d.ts +0 -8
- package/testing/current-tick-time.d.ts +0 -13
- package/testing/fake-toastr.d.ts +0 -30
- package/testing/get-harness.d.ts +0 -7
- package/testing/harnesses/ng-select-dropdown.harness.d.ts +0 -23
- package/testing/harnesses/ng-select-option.harness.d.ts +0 -18
- package/testing/harnesses/ng-select.harness.d.ts +0 -50
- package/testing/public-api.d.ts +0 -9
- package/testing/render-story.d.ts +0 -2
- package/testing/story-expect.d.ts +0 -6
- package/testing/tick-helper.d.ts +0 -70
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +0 -56
- package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +0 -45
- package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +0 -26
- package/tiled-select/directives/tiled-select-tile-icon-tpl.directive.d.ts +0 -8
- package/tiled-select/directives/tiled-select-tile-label-tpl.directive.d.ts +0 -8
- package/tiled-select/directives/tiled-select-tile-overlay.directive.d.ts +0 -10
- package/tiled-select/public-api.d.ts +0 -9
- package/tiled-select/testing/index.d.ts +0 -2
- package/tiled-select/testing/tiled-select-harness.d.ts +0 -9
- package/tiled-select/testing/tiled-select-tile-harness.d.ts +0 -17
- package/tiled-select/tiled-select.models.d.ts +0 -13
- package/tiled-select/tiled-select.module.d.ts +0 -14
- package/toggle-edit/models/can-toggle-edit.d.ts +0 -7
- package/toggle-edit/models/index.d.ts +0 -2
- package/toggle-edit/models/toggle-edit-ref.d.ts +0 -30
- package/toggle-edit/public-api.d.ts +0 -6
- package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +0 -5
- package/toggle-edit/toggle-edit-display-tpl.directive.d.ts +0 -8
- package/toggle-edit/toggle-edit-keyboard-listener.service.d.ts +0 -17
- package/toggle-edit/toggle-edit.component.d.ts +0 -93
- package/toggle-edit/toggle-edit.module.d.ts +0 -18
- package/toggle-group/public-api.d.ts +0 -3
- package/toggle-group/toggle-group-option.directive.d.ts +0 -18
- package/toggle-group/toggle-group.directive.d.ts +0 -38
- package/toggle-group/toggle-group.module.d.ts +0 -10
- package/unsaved-changes-dialog/public-api.d.ts +0 -4
- package/unsaved-changes-dialog/unsaved-changes-can-deactivate.d.ts +0 -7
- package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +0 -5
- package/unsaved-changes-dialog/unsaved-changes-dialog.guard.d.ts +0 -11
- package/unsaved-changes-dialog/unsaved-changes-dialog.module.d.ts +0 -7
- package/utils/array-move.d.ts +0 -49
- package/utils/calc-percentage.d.ts +0 -1
- package/utils/cdk/get-closest-widget-cdk-drag.d.ts +0 -8
- package/utils/create-padding.d.ts +0 -1
- package/utils/file-utils.d.ts +0 -12
- package/utils/form/get-control-name.d.ts +0 -22
- package/utils/form/get-control-path.d.ts +0 -27
- package/utils/form/has-required-control.d.ts +0 -31
- package/utils/form/is-empty-input-value.d.ts +0 -1
- package/utils/form/observe-control-is-different.d.ts +0 -13
- package/utils/form/observe-control-status.d.ts +0 -7
- package/utils/form/observe-control-valid.d.ts +0 -14
- package/utils/form/observe-control-value-change.d.ts +0 -9
- package/utils/form/observe-control-value.d.ts +0 -6
- package/utils/form/wait-on-non-pending-status.d.ts +0 -12
- package/utils/fractional-digits-count.d.ts +0 -8
- package/utils/geo-json/close-polygons.d.ts +0 -9
- package/utils/geo-json/coerce-feature-collection.d.ts +0 -2
- package/utils/geo-json/geo-json-to-area.d.ts +0 -6
- package/utils/geo-json/is-feature-collection.validator.d.ts +0 -3
- package/utils/geo-json/is-only-geometry-types.d.ts +0 -5
- package/utils/geo-json/is-only-geometry-types.validator.d.ts +0 -4
- package/utils/geo-json/merge-polygons.d.ts +0 -9
- package/utils/geo-json/min-max-points.validator.d.ts +0 -3
- package/utils/geo-json/no-empty-feature-collection.validator.d.ts +0 -3
- package/utils/geo-json/no-inner-rings.validator.d.ts +0 -10
- package/utils/geo-json/no-kinks.validator.d.ts +0 -3
- package/utils/geo-json/read-geo-file.d.ts +0 -7
- package/utils/geo-json/split-multi-polygons.d.ts +0 -8
- package/utils/get-attribute.d.ts +0 -4
- package/utils/has-attribute.d.ts +0 -4
- package/utils/has-property.d.ts +0 -1
- package/utils/input-masks.d.ts +0 -1
- package/utils/is-absolute-url.d.ts +0 -1
- package/utils/is-null-or-undefined-or-empty.d.ts +0 -1
- package/utils/is-null-or-undefined.d.ts +0 -1
- package/utils/is-numeric.d.ts +0 -1
- package/utils/load-style-sheet.d.ts +0 -1
- package/utils/load-style.d.ts +0 -1
- package/utils/not-null-or-undefined-or-empty.d.ts +0 -1
- package/utils/not-null-or-undefined.d.ts +0 -1
- package/utils/obj-utils.d.ts +0 -8
- package/utils/observe-query-list.d.ts +0 -3
- package/utils/operators/index.d.ts +0 -2
- package/utils/operators/map-each.d.ts +0 -2
- package/utils/operators/tap-first.d.ts +0 -5
- package/utils/pad-end.d.ts +0 -1
- package/utils/pad-start.d.ts +0 -1
- package/utils/polling-ticker.d.ts +0 -13
- package/utils/public-api.d.ts +0 -53
- package/utils/refreshable.d.ts +0 -20
- package/utils/router/index.d.ts +0 -6
- package/utils/router/is-empty-url-route.d.ts +0 -2
- package/utils/router/leaf-child-route.d.ts +0 -2
- package/utils/router/operators/activated-routes-with-data-property.d.ts +0 -7
- package/utils/router/route-snapshot-path-full.d.ts +0 -2
- package/utils/router/route-snapshot-path-relative.d.ts +0 -2
- package/utils/router/will-have-data-prop.d.ts +0 -2
- package/utils/subscriber-count.d.ts +0 -13
- package/utils/toggle-attribute.d.ts +0 -16
- package/utils/wait-on-condition-async.d.ts +0 -1
- package/utils/wrap-into-observable.d.ts +0 -2
- package/validators/decimal.validator.d.ts +0 -9
- package/validators/email-exists.validator.d.ts +0 -10
- package/validators/integer.validator.d.ts +0 -9
- package/validators/phone-length.validator.d.ts +0 -7
- package/validators/public-api.d.ts +0 -5
- package/validators/tax-id.validator.d.ts +0 -11
- package/vertical-list-filter/public-api.d.ts +0 -2
- package/vertical-list-filter/testing/index.d.ts +0 -1
- package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +0 -9
- package/vertical-list-filter/vertical-list-filter.component.d.ts +0 -17
- package/viewers/html-template-viewer/html-template-viewer.component.d.ts +0 -70
- package/viewers/html-template-viewer/html-template-viewer.module.d.ts +0 -10
- package/viewers/html-template-viewer/index.d.ts +0 -2
- package/viewers/pdf-viewer/index.d.ts +0 -3
- package/viewers/pdf-viewer/pdf-page/pdf-page.component.d.ts +0 -42
- package/viewers/pdf-viewer/pdf-renderer.service.d.ts +0 -9
- package/viewers/pdf-viewer/pdf-viewer.component.d.ts +0 -62
- package/viewers/pdf-viewer/pdf-viewer.module.d.ts +0 -10
- package/viewers/public-api.d.ts +0 -2
- package/widget/directives/widget-drag-handle.directive.d.ts +0 -56
- package/widget/directives/widget-icon-tpl.directive.d.ts +0 -8
- package/widget/directives/widget-title-tpl.directive.d.ts +0 -8
- package/widget/preferences/widget-preferences.models.d.ts +0 -8
- package/widget/preferences/widget-preferences.service.d.ts +0 -21
- package/widget/preferences/widget-preferences.token.d.ts +0 -3
- package/widget/public-api.d.ts +0 -41
- package/widget/widget/widget.component.d.ts +0 -85
- package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +0 -5
- package/widget/widget-content-components/widget-button-group/widget-button-group.module.d.ts +0 -9
- package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +0 -5
- package/widget/widget-content-components/widget-content-header/widget-content-header.module.d.ts +0 -8
- package/widget/widget-content-components/widget-description/widget-description.component.d.ts +0 -5
- package/widget/widget-content-components/widget-description/widget-description.module.d.ts +0 -8
- package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +0 -17
- package/widget/widget-content-components/widget-empty-label/widget-empty-label.module.d.ts +0 -8
- package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +0 -5
- package/widget/widget-content-components/widget-footer-link/widget-footer-link.module.d.ts +0 -8
- package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +0 -5
- package/widget/widget-content-components/widget-footer-text/widget-footer-text.module.d.ts +0 -8
- package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +0 -14
- package/widget/widget-content-components/widget-header-badge/widget-header-badge.module.d.ts +0 -8
- package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.d.ts +0 -8
- package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +0 -65
- package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +0 -5
- package/widget/widget-content-components/widget-list-group/widget-list-group.module.d.ts +0 -11
- package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -16
- package/widget/widget-content-components/widget-table/widget-table.module.d.ts +0 -10
- package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +0 -5
- package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +0 -17
- package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +0 -5
- package/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.d.ts +0 -8
- package/widget/widget-content-components/widget-tile/widget-tile.component.d.ts +0 -51
- package/widget/widget-content-components/widget-tile/widget-tile.module.d.ts +0 -13
- package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +0 -5
- package/widget/widget-content-components/widget-tile-list/widget-tile-list.module.d.ts +0 -9
- package/widget/widget-footer/widget-footer.component.d.ts +0 -5
- package/widget/widget-registry.models.d.ts +0 -20
- package/widget/widget-registry.service.d.ts +0 -19
- package/widget/widget-token.d.ts +0 -6
- package/widget/widget.models.d.ts +0 -7
- package/widget/widget.module.d.ts +0 -30
|
@@ -1,879 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { animate, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { coerceArray } from '@angular/cdk/coercion';
|
|
4
|
-
import { isDataSource } from '@angular/cdk/collections';
|
|
5
|
-
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, HostListener, Inject, InjectionToken, Input, isDevMode, Optional, Output, ViewChild } from '@angular/core';
|
|
6
|
-
import { BehaviorSubject, combineLatest, from, isObservable, of, Subject, Subscription } from 'rxjs';
|
|
7
|
-
import { concatMap, distinctUntilChanged, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
8
|
-
import { faChevronDown, faChevronRight, faFilter, faSpinner } from '@fortawesome/free-solid-svg-icons';
|
|
9
|
-
import { ColumnMode, DatatableComponent as NgxDatatableComponent, DatatableRowDetailDirective, SortType } from '@marklb/ngx-datatable';
|
|
10
|
-
import { InputBoolean, InputNumber } from '@theseam/ui-common/core';
|
|
11
|
-
import { composeDataFilters, composeDataFilterStates } from '@theseam/ui-common/data-filters';
|
|
12
|
-
import { isNullOrUndefined, notNullOrUndefined, waitOnConditionAsync } from '@theseam/ui-common/utils';
|
|
13
|
-
import { DatatableActionMenuComponent } from '../datatable-action-menu/datatable-action-menu.component';
|
|
14
|
-
import { DatatableColumnComponent } from '../datatable-column/datatable-column.component';
|
|
15
|
-
import { TheSeamDatatableFooterDirective } from '../datatable-footer/datatable-footer.directive';
|
|
16
|
-
import { DatatableMenuBarComponent } from '../datatable-menu-bar/datatable-menu-bar.component';
|
|
17
|
-
import { TheSeamDatatableRowDetailDirective } from '../datatable-row-detail/datatable-row-detail.directive';
|
|
18
|
-
import { DatatableRowActionItemDirective } from '../directives/datatable-row-action-item.directive';
|
|
19
|
-
import { DatatableDataSource } from '../models/datatable-data-source';
|
|
20
|
-
import { ColumnsManagerService } from '../services/columns-manager.service';
|
|
21
|
-
import { DatatableColumnChangesService } from '../services/datatable-column-changes.service';
|
|
22
|
-
import { THESEAM_DATATABLE_ACCESSOR } from '../tokens/datatable-accessor';
|
|
23
|
-
import { removeUnusedDiffs } from '../utils/remove-unused-diffs';
|
|
24
|
-
import { translateTemplateColumns } from '../utils/translate-templates';
|
|
25
|
-
import { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service';
|
|
26
|
-
import { mapColumnsAlterationsStates } from '../utils/map-columns-alterations-states';
|
|
27
|
-
import { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration';
|
|
28
|
-
import { getColumnProp } from '../utils/get-column-prop';
|
|
29
|
-
import { OrderColumnsAlteration } from '../models/columns-alterations/order.columns-alteration';
|
|
30
|
-
import { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration';
|
|
31
|
-
import { isActionItemColumnPosition } from '../models/action-item-column-position';
|
|
32
|
-
import { ColumnsFiltersService } from '../services/columns-filters.service';
|
|
33
|
-
import { THESEAM_DATATABLE_CONFIG } from '../models/datatable-config';
|
|
34
|
-
import { TheSeamDatatableColumnFilterDirective } from '../directives/datatable-column-filter.directive';
|
|
35
|
-
import * as i0 from "@angular/core";
|
|
36
|
-
import * as i1 from "../services/datatable-preferences.service";
|
|
37
|
-
import * as i2 from "../services/columns-manager.service";
|
|
38
|
-
import * as i3 from "../services/columns-alterations-manager.service";
|
|
39
|
-
import * as i4 from "../services/columns-filters.service";
|
|
40
|
-
import * as i5 from "@angular/common";
|
|
41
|
-
import * as i6 from "@marklb/ngx-datatable";
|
|
42
|
-
import * as i7 from "@fortawesome/angular-fontawesome";
|
|
43
|
-
import * as i8 from "@theseam/ui-common/shared";
|
|
44
|
-
import * as i9 from "@theseam/ui-common/icon";
|
|
45
|
-
import * as i10 from "@theseam/ui-common/buttons";
|
|
46
|
-
import * as i11 from "@theseam/ui-common/popover";
|
|
47
|
-
import * as i12 from "@theseam/ui-common/table-cell-type";
|
|
48
|
-
import * as i13 from "../datatable-column-filter-menu/datatable-column-filter-menu.component";
|
|
49
|
-
/**
|
|
50
|
-
* Intended for internal classes declared by the `TheSeamDatatableModule`.
|
|
51
|
-
*/
|
|
52
|
-
export const THESEAM_DATATABLE = new InjectionToken('LibDatatable');
|
|
53
|
-
export const _THESEAM_DATATABLE = {
|
|
54
|
-
provide: THESEAM_DATATABLE,
|
|
55
|
-
// tslint:disable-next-line:no-use-before-declare
|
|
56
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
57
|
-
};
|
|
58
|
-
export const _THESEAM_DATATABLE_ACCESSOR = {
|
|
59
|
-
provide: THESEAM_DATATABLE_ACCESSOR,
|
|
60
|
-
// tslint:disable-next-line:no-use-before-declare
|
|
61
|
-
useExisting: forwardRef(() => DatatableComponent)
|
|
62
|
-
};
|
|
63
|
-
export class DatatableComponent {
|
|
64
|
-
get filters() {
|
|
65
|
-
return [
|
|
66
|
-
...this._menuBarsFiltersSubject.value,
|
|
67
|
-
...this._columnsFilters.filters()
|
|
68
|
-
];
|
|
69
|
-
}
|
|
70
|
-
get preferencesKey() { return this._preferencesKey.value; }
|
|
71
|
-
set preferencesKey(value) { this._preferencesKey.next(value || undefined); }
|
|
72
|
-
set columns(value) {
|
|
73
|
-
this._columnsManager.setInputColumns(Array.isArray(value) ? value : []);
|
|
74
|
-
this._columnsFilters.registerColumnFilters(Array.isArray(value) ? value : []);
|
|
75
|
-
}
|
|
76
|
-
get rows() { return this._rows.value; }
|
|
77
|
-
set rows(value) {
|
|
78
|
-
this._rows.next(value || []);
|
|
79
|
-
}
|
|
80
|
-
get selectionType() { return this._columnsManager.getSelectionType(); }
|
|
81
|
-
set selectionType(value) {
|
|
82
|
-
this._columnsManager.setSelectionType(notNullOrUndefined(value) ? value : undefined);
|
|
83
|
-
}
|
|
84
|
-
get sortType() { return this._sortType; }
|
|
85
|
-
set sortType(value) {
|
|
86
|
-
if (notNullOrUndefined(value) && (value === SortType.single || value === SortType.multi)) {
|
|
87
|
-
this._sortType = value;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
this._sortType = SortType.single;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
get sorts() {
|
|
94
|
-
return this.ngxDatatable ? this.ngxDatatable.sorts : this._sorts;
|
|
95
|
-
}
|
|
96
|
-
set sorts(value) {
|
|
97
|
-
this._sorts = notNullOrUndefined(value) ? coerceArray(value) : [];
|
|
98
|
-
}
|
|
99
|
-
get cssClasses() {
|
|
100
|
-
return this._cssClasses;
|
|
101
|
-
}
|
|
102
|
-
set cssClasses(value) {
|
|
103
|
-
if (notNullOrUndefined(value)) {
|
|
104
|
-
this._cssClasses = value;
|
|
105
|
-
}
|
|
106
|
-
else if (notNullOrUndefined(this._config?.cssClasses)) {
|
|
107
|
-
this._cssClasses = this._config?.cssClasses;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this._cssClasses = this._cssClassesDefault;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
get messages() {
|
|
114
|
-
return this._messages;
|
|
115
|
-
}
|
|
116
|
-
set messages(value) {
|
|
117
|
-
if (notNullOrUndefined(value)) {
|
|
118
|
-
this._messages = value;
|
|
119
|
-
}
|
|
120
|
-
else if (notNullOrUndefined(this._config?.messages)) {
|
|
121
|
-
this._messages = {
|
|
122
|
-
...this._messagesDefault,
|
|
123
|
-
...this._config?.messages
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this._messages = this._messagesDefault;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
get headerHeight() {
|
|
131
|
-
return this._headerHeight;
|
|
132
|
-
}
|
|
133
|
-
set headerHeight(value) {
|
|
134
|
-
if (notNullOrUndefined(value)) {
|
|
135
|
-
this._headerHeight = value;
|
|
136
|
-
}
|
|
137
|
-
else if (notNullOrUndefined(this._config?.headerHeight)) {
|
|
138
|
-
this._headerHeight = this._config?.headerHeight;
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
this._headerHeight = this._headerHeightDefault;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
get rowHeight() {
|
|
145
|
-
return this._rowHeight;
|
|
146
|
-
}
|
|
147
|
-
set rowHeight(value) {
|
|
148
|
-
if (notNullOrUndefined(value)) {
|
|
149
|
-
this._rowHeight = value;
|
|
150
|
-
}
|
|
151
|
-
else if (notNullOrUndefined(this._config?.rowHeight)) {
|
|
152
|
-
this._rowHeight = this._config?.rowHeight;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
this._rowHeight = this._rowHeightDefault;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
get footerHeight() {
|
|
159
|
-
return this._footerHeight;
|
|
160
|
-
}
|
|
161
|
-
set footerHeight(value) {
|
|
162
|
-
if (notNullOrUndefined(value)) {
|
|
163
|
-
this._footerHeight = value;
|
|
164
|
-
}
|
|
165
|
-
else if (notNullOrUndefined(this._config?.footerHeight)) {
|
|
166
|
-
this._footerHeight = this._config?.footerHeight;
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
this._footerHeight = this._footerHeightDefault;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
set dataSource(value) {
|
|
173
|
-
if (value instanceof DatatableDataSource) {
|
|
174
|
-
value.setDatatableAccessor(this);
|
|
175
|
-
}
|
|
176
|
-
this._dataSourceSubject.next(value || undefined);
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Sets position behavior for optional Action Menu Button column.
|
|
180
|
-
*
|
|
181
|
-
* Defaults to `frozenRight`.
|
|
182
|
-
*/
|
|
183
|
-
get actionItemColumnPosition() { return this._actionItemColumnPosition; }
|
|
184
|
-
set actionItemColumnPosition(value) {
|
|
185
|
-
if (notNullOrUndefined(value) && isActionItemColumnPosition(value)) {
|
|
186
|
-
this._actionItemColumnPosition = value;
|
|
187
|
-
}
|
|
188
|
-
else if (notNullOrUndefined(this._config?.actionItemColumnPosition) && isActionItemColumnPosition(this._config?.actionItemColumnPosition)) {
|
|
189
|
-
this._actionItemColumnPosition = this._config?.actionItemColumnPosition;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
this._actionItemColumnPosition = this._actionItemColumnPositionDefault;
|
|
193
|
-
}
|
|
194
|
-
this._columnsManager.setActionItemColumnPosition(this._actionItemColumnPosition);
|
|
195
|
-
}
|
|
196
|
-
get columnFilterIcon() {
|
|
197
|
-
return this._columnFilterIcon;
|
|
198
|
-
}
|
|
199
|
-
set columnFilterIcon(value) {
|
|
200
|
-
if (notNullOrUndefined(value)) {
|
|
201
|
-
this._columnFilterIcon = value;
|
|
202
|
-
}
|
|
203
|
-
else if (notNullOrUndefined(this._config?.columnFilterIcon)) {
|
|
204
|
-
this._columnFilterIcon = this._config?.columnFilterIcon;
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
this._columnFilterIcon = this._columnFilterIconDefault;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
get columnFilterUpdateMethod() {
|
|
211
|
-
return this._columnFilterUpdateMethod;
|
|
212
|
-
}
|
|
213
|
-
set columnFilterUpdateMethod(value) {
|
|
214
|
-
if (notNullOrUndefined(value)) {
|
|
215
|
-
this._columnFilterUpdateMethod = value;
|
|
216
|
-
}
|
|
217
|
-
else if (notNullOrUndefined(this._config?.columnFilterUpdateMethod)) {
|
|
218
|
-
this._columnFilterUpdateMethod = this._config?.columnFilterUpdateMethod;
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
this._columnFilterUpdateMethod = this._columnFilterUpdateMethodDefault;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
get columnFilterUpdateDebounce() {
|
|
225
|
-
return this._columnFilterUpdateDebounce;
|
|
226
|
-
}
|
|
227
|
-
set columnFilterUpdateDebounce(value) {
|
|
228
|
-
if (notNullOrUndefined(value)) {
|
|
229
|
-
this._columnFilterUpdateDebounce = value;
|
|
230
|
-
}
|
|
231
|
-
else if (notNullOrUndefined(this._config?.columnFilterUpdateDebounce)) {
|
|
232
|
-
this._columnFilterUpdateDebounce = this._config?.columnFilterUpdateDebounce;
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
this._columnFilterUpdateDebounce = this._columnFilterUpdateDebounceDefault;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
set columnComponents(value) {
|
|
239
|
-
this._columnsManager.setTemplateColumns(translateTemplateColumns(value?.toArray() ?? []));
|
|
240
|
-
}
|
|
241
|
-
get rowActionItem() { return this._rowActionItem; }
|
|
242
|
-
set rowActionItem(value) {
|
|
243
|
-
this._rowActionItem = value;
|
|
244
|
-
this._columnsManager.setRowActionItem(notNullOrUndefined(value) ? value : undefined);
|
|
245
|
-
}
|
|
246
|
-
get menuBarComponent() { return this._menuBarComponent; }
|
|
247
|
-
set menuBarComponent(value) {
|
|
248
|
-
this._menuBarComponent = value;
|
|
249
|
-
if (this._menuBarSub) {
|
|
250
|
-
this._menuBarSub.unsubscribe();
|
|
251
|
-
}
|
|
252
|
-
if (value) {
|
|
253
|
-
this._setMenuBarFilters(value.filters());
|
|
254
|
-
this._menuBarSub = this._menuBarComponent?.filtersChanged
|
|
255
|
-
.subscribe(v => { this._setMenuBarFilters(value.filters()); });
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
set columnFilterTemplates(value) {
|
|
259
|
-
this._columnsFilters.setFilterTemplates(value?.toArray() ?? []);
|
|
260
|
-
}
|
|
261
|
-
get actionMenuCellTpl() { return this._actionMenuCellTpl; }
|
|
262
|
-
set actionMenuCellTpl(value) {
|
|
263
|
-
this._actionMenuCellTpl = value;
|
|
264
|
-
this._columnsManager.setActionMenuCellTpl(notNullOrUndefined(value) ? value : undefined);
|
|
265
|
-
}
|
|
266
|
-
get treeToggleTpl() { return this._treeToggleTpl; }
|
|
267
|
-
set treeToggleTpl(value) {
|
|
268
|
-
this._treeToggleTpl = value;
|
|
269
|
-
this._columnsManager.setTreeToggleTpl(notNullOrUndefined(value) ? value : undefined);
|
|
270
|
-
}
|
|
271
|
-
get headerTpl() { return this._headerTpl; }
|
|
272
|
-
set headerTpl(value) {
|
|
273
|
-
this._headerTpl = value;
|
|
274
|
-
this._columnsManager.setHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
275
|
-
}
|
|
276
|
-
get blankHeaderTpl() { return this._blankHeaderTpl; }
|
|
277
|
-
set blankHeaderTpl(value) {
|
|
278
|
-
this._blankHeaderTpl = value;
|
|
279
|
-
this._columnsManager.setBlankHeaderTpl(notNullOrUndefined(value) ? value : undefined);
|
|
280
|
-
}
|
|
281
|
-
get cellTypeSelectorTpl() { return this._cellTypeSelectorTpl; }
|
|
282
|
-
set cellTypeSelectorTpl(value) {
|
|
283
|
-
this._cellTypeSelectorTpl = value;
|
|
284
|
-
this._columnsManager.setCellTypeSelectorTpl(notNullOrUndefined(value) ? value : undefined);
|
|
285
|
-
}
|
|
286
|
-
// TODO: Remove this DOM-dependent code when a way to property listen for
|
|
287
|
-
// dblclick on the header reasize handles.
|
|
288
|
-
_dblClick(event) {
|
|
289
|
-
const isHandle = event.target.classList.contains('resize-handle');
|
|
290
|
-
if (isHandle) {
|
|
291
|
-
const isResizeable = event.target.parentElement?.classList.contains('resizeable');
|
|
292
|
-
if (isResizeable) {
|
|
293
|
-
event.stopPropagation();
|
|
294
|
-
const id = event.target.parentElement
|
|
295
|
-
?.querySelector('.datatable-column-header-separator')
|
|
296
|
-
?.getAttribute('data-column-id');
|
|
297
|
-
this._columnsManager.columns$.pipe(take(1)).subscribe(columns => {
|
|
298
|
-
const column = columns.find(c => c.$$id === id);
|
|
299
|
-
if (column) {
|
|
300
|
-
const columnProp = getColumnProp(column);
|
|
301
|
-
if (columnProp) {
|
|
302
|
-
const alteration = new WidthColumnsAlteration({ columnProp, canAutoResize: true }, false);
|
|
303
|
-
this._columnsAlterationsManager.add([alteration]);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
constructor(_preferences, _columnsManager, _columnsAlterationsManager, _columnsFilters, _config) {
|
|
311
|
-
this._preferences = _preferences;
|
|
312
|
-
this._columnsManager = _columnsManager;
|
|
313
|
-
this._columnsAlterationsManager = _columnsAlterationsManager;
|
|
314
|
-
this._columnsFilters = _columnsFilters;
|
|
315
|
-
this._config = _config;
|
|
316
|
-
this._faChevronDown = faChevronDown;
|
|
317
|
-
this._faChevronRight = faChevronRight;
|
|
318
|
-
this._faSpinner = faSpinner;
|
|
319
|
-
this._ngUnsubscribe = new Subject();
|
|
320
|
-
this._menuBarsFiltersSubject = new BehaviorSubject([]);
|
|
321
|
-
this._dataSourceSubject = new BehaviorSubject(undefined);
|
|
322
|
-
this._resizing = {};
|
|
323
|
-
this._preferencesKey = new BehaviorSubject(undefined);
|
|
324
|
-
this._rows = new BehaviorSubject([]);
|
|
325
|
-
this.columnMode = ColumnMode.force;
|
|
326
|
-
this.selected = [];
|
|
327
|
-
this.externalPaging = false;
|
|
328
|
-
this.externalSorting = false;
|
|
329
|
-
this.externalFiltering = false;
|
|
330
|
-
this.count = 0;
|
|
331
|
-
this.offset = 0;
|
|
332
|
-
this.loadingIndicator = false;
|
|
333
|
-
this.reorderable = true;
|
|
334
|
-
this.swapColumns = false;
|
|
335
|
-
this._sortType = SortType.single;
|
|
336
|
-
this._sorts = [];
|
|
337
|
-
this._cssClassesDefault = {
|
|
338
|
-
sortAscending: 'datatable-icon-up',
|
|
339
|
-
sortDescending: 'datatable-icon-down',
|
|
340
|
-
pagerLeftArrow: 'datatable-icon-left',
|
|
341
|
-
pagerRightArrow: 'datatable-icon-right',
|
|
342
|
-
pagerPrevious: 'datatable-icon-prev',
|
|
343
|
-
pagerNext: 'datatable-icon-skip'
|
|
344
|
-
};
|
|
345
|
-
this._messagesDefault = {
|
|
346
|
-
// Message to show when array is presented
|
|
347
|
-
// but contains no values
|
|
348
|
-
emptyMessage: 'No records found',
|
|
349
|
-
// Footer total message
|
|
350
|
-
totalMessage: 'total',
|
|
351
|
-
// Footer selected message
|
|
352
|
-
selectedMessage: 'selected'
|
|
353
|
-
};
|
|
354
|
-
this.rowIdentity = (x) => x;
|
|
355
|
-
this.groupExpansionDefault = false;
|
|
356
|
-
this.selectAllRowsOnPage = false;
|
|
357
|
-
this.summaryRow = false;
|
|
358
|
-
this.summaryHeight = 30;
|
|
359
|
-
this.summaryPosition = 'top';
|
|
360
|
-
this.virtualization = true;
|
|
361
|
-
this._headerHeightDefault = 50;
|
|
362
|
-
this._rowHeightDefault = 50;
|
|
363
|
-
this._footerHeightDefault = 40;
|
|
364
|
-
this.scrollbarV = true;
|
|
365
|
-
this.scrollbarH = true;
|
|
366
|
-
this._actionItemColumnPositionDefault = 'frozenRight';
|
|
367
|
-
this._columnFilterIconDefault = faFilter;
|
|
368
|
-
this._columnFilterUpdateMethodDefault = 'valueChanges';
|
|
369
|
-
this._columnFilterUpdateDebounceDefault = 400;
|
|
370
|
-
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
371
|
-
this.scroll = new EventEmitter();
|
|
372
|
-
this.activate = new EventEmitter();
|
|
373
|
-
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
374
|
-
this.select = new EventEmitter();
|
|
375
|
-
this.sort = new EventEmitter();
|
|
376
|
-
this.page = new EventEmitter();
|
|
377
|
-
this.reorder = new EventEmitter();
|
|
378
|
-
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
379
|
-
this.resize = new EventEmitter();
|
|
380
|
-
this.tableContextmenu = new EventEmitter(false);
|
|
381
|
-
this.treeAction = new EventEmitter();
|
|
382
|
-
this.actionRefreshRequest = new EventEmitter();
|
|
383
|
-
this.hiddenColumnsChange = new EventEmitter();
|
|
384
|
-
this._colDiffersInp = {};
|
|
385
|
-
this._colDiffersTpl = {};
|
|
386
|
-
this._rowDetailToggleSubscription = Subscription.EMPTY;
|
|
387
|
-
this._preferencesKey.pipe(distinctUntilChanged(), switchMap(key => {
|
|
388
|
-
if (!notNullOrUndefined(key) || key.length === 0) {
|
|
389
|
-
return of(undefined);
|
|
390
|
-
}
|
|
391
|
-
return from(waitOnConditionAsync(() => this._preferences.isLoaded(key))).pipe(switchMap(() => this._columnsAlterationsManager.changes.pipe(startWith(undefined), tap(() => {
|
|
392
|
-
this._preferences.setAlterations(key, this._columnsAlterationsManager.get());
|
|
393
|
-
}))));
|
|
394
|
-
}), takeUntil(this._ngUnsubscribe)).subscribe();
|
|
395
|
-
const applyPrefs = (cols) => this._columnsAlterationsManager.changes.pipe(startWith(undefined), map(() => {
|
|
396
|
-
this._columnsAlterationsManager.apply(cols, this);
|
|
397
|
-
return cols;
|
|
398
|
-
}));
|
|
399
|
-
this._preferencesKey.pipe(distinctUntilChanged(), switchMap(prefsKey => {
|
|
400
|
-
if (!notNullOrUndefined(prefsKey)) {
|
|
401
|
-
return of(undefined);
|
|
402
|
-
}
|
|
403
|
-
return this._preferences.preferences(prefsKey).pipe(switchMap(async (preferences) => {
|
|
404
|
-
await waitOnConditionAsync(() => this._preferences.isLoaded(prefsKey));
|
|
405
|
-
return preferences;
|
|
406
|
-
}), take(1), map(preferences => {
|
|
407
|
-
let alterations = [];
|
|
408
|
-
try {
|
|
409
|
-
alterations = mapColumnsAlterationsStates(preferences.alterations);
|
|
410
|
-
}
|
|
411
|
-
catch (e) {
|
|
412
|
-
if (isDevMode()) {
|
|
413
|
-
// eslint-disable-next-line no-console
|
|
414
|
-
console.warn('Unable to map columns alterations states');
|
|
415
|
-
// eslint-disable-next-line no-console
|
|
416
|
-
console.warn(e);
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
this._columnsAlterationsManager.add(alterations);
|
|
420
|
-
}));
|
|
421
|
-
}), takeUntil(this._ngUnsubscribe)).subscribe();
|
|
422
|
-
this.columns$ = combineLatest([this._columnsManager.columns$, this._columnsFilters.columnActiveFilterProps$]).pipe(map(([columns, columnActiveFilterProps]) => columns.map(col => ({
|
|
423
|
-
...col,
|
|
424
|
-
filterActive: columnActiveFilterProps.includes(this._columnsFilters.getColumnFilterProp(col) || '')
|
|
425
|
-
}))));
|
|
426
|
-
this.displayColumns$ = this.columns$.pipe(switchMap(cols => applyPrefs(cols)), map(cols => cols.filter(c => !c.hidden)), tap(v => removeUnusedDiffs(v, this._colDiffersInp, this._colDiffersTpl)));
|
|
427
|
-
this.filters$ = combineLatest([this._menuBarsFiltersSubject.asObservable(), this._columnsFilters.columnsFilters$]).pipe(map(([menuFilters, columnsFilters]) => [...menuFilters, ...columnsFilters]));
|
|
428
|
-
this.filterStates = this.filters$.pipe(switchMap(filters => composeDataFilterStates(filters)));
|
|
429
|
-
this.rows$ = this._dataSourceSubject.pipe(switchMap(dataSource => {
|
|
430
|
-
// console.log('dataSource', dataSource)
|
|
431
|
-
let dataStream;
|
|
432
|
-
if (isDataSource(dataSource)) {
|
|
433
|
-
// console.log('~datasource')
|
|
434
|
-
dataStream = dataSource.connect(this);
|
|
435
|
-
}
|
|
436
|
-
else if (isObservable(dataSource)) {
|
|
437
|
-
// console.log('~observable')
|
|
438
|
-
dataStream = dataSource;
|
|
439
|
-
}
|
|
440
|
-
else if (Array.isArray(dataSource)) {
|
|
441
|
-
// console.log('~array')
|
|
442
|
-
dataStream = of(dataSource);
|
|
443
|
-
}
|
|
444
|
-
else {
|
|
445
|
-
// console.log('~rows fallback')
|
|
446
|
-
dataStream = this._rows.asObservable();
|
|
447
|
-
// .pipe(tap(v => console.log('rows~', v)))
|
|
448
|
-
}
|
|
449
|
-
if (!this.externalFiltering) {
|
|
450
|
-
// console.log('not using externalFiltering')
|
|
451
|
-
dataStream = dataStream.pipe(switchMap(rows => this.filters$.pipe(
|
|
452
|
-
// tap(v => console.log('filters', v)),
|
|
453
|
-
concatMap(filters => of(rows).pipe(composeDataFilters(filters))))));
|
|
454
|
-
// dataStream = this._filtersSubject.pipe(
|
|
455
|
-
// tap(v => console.log('filters', v)),
|
|
456
|
-
// concatMap(filters => dataStream.pipe(composeDataFilters(filters))),
|
|
457
|
-
// tap(v => console.log('composed filters', v)),
|
|
458
|
-
// )
|
|
459
|
-
}
|
|
460
|
-
return dataStream.pipe(
|
|
461
|
-
// tap(v => console.log('stream', v)),
|
|
462
|
-
takeUntil(this._ngUnsubscribe));
|
|
463
|
-
}));
|
|
464
|
-
// TODO: Implement viewChange for CollectionViewer.
|
|
465
|
-
this.viewChange = this.page.pipe(map(p => ({ start: 0, end: p.count })));
|
|
466
|
-
}
|
|
467
|
-
ngOnInit() {
|
|
468
|
-
if (this.rowDetail) {
|
|
469
|
-
this._rowDetailToggleSubscription = this.rowDetail._toggle.subscribe(event => {
|
|
470
|
-
if (this.ngxRowDetail) {
|
|
471
|
-
this.ngxRowDetail.toggle.emit(event);
|
|
472
|
-
}
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
this._setDatatableConfigOrDefault();
|
|
476
|
-
}
|
|
477
|
-
/** Sets missing inputs from config */
|
|
478
|
-
_setDatatableConfigOrDefault() {
|
|
479
|
-
if (isNullOrUndefined(this.messages)) {
|
|
480
|
-
this.messages = undefined;
|
|
481
|
-
}
|
|
482
|
-
if (isNullOrUndefined(this.headerHeight)) {
|
|
483
|
-
this.headerHeight = undefined;
|
|
484
|
-
}
|
|
485
|
-
if (isNullOrUndefined(this.rowHeight)) {
|
|
486
|
-
this.rowHeight = undefined;
|
|
487
|
-
}
|
|
488
|
-
if (isNullOrUndefined(this.footerHeight)) {
|
|
489
|
-
this.footerHeight = undefined;
|
|
490
|
-
}
|
|
491
|
-
if (isNullOrUndefined(this.cssClasses)) {
|
|
492
|
-
this.cssClasses = undefined;
|
|
493
|
-
}
|
|
494
|
-
if (isNullOrUndefined(this.columnFilterIcon)) {
|
|
495
|
-
this.columnFilterIcon = undefined;
|
|
496
|
-
}
|
|
497
|
-
if (isNullOrUndefined(this.columnFilterUpdateMethod)) {
|
|
498
|
-
this.columnFilterUpdateMethod = undefined;
|
|
499
|
-
}
|
|
500
|
-
if (isNullOrUndefined(this.columnFilterUpdateDebounce)) {
|
|
501
|
-
this.columnFilterUpdateDebounce = undefined;
|
|
502
|
-
}
|
|
503
|
-
if (isNullOrUndefined(this.actionItemColumnPosition)) {
|
|
504
|
-
this.actionItemColumnPosition = undefined;
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
ngOnDestroy() {
|
|
508
|
-
this._rowDetailToggleSubscription.unsubscribe();
|
|
509
|
-
}
|
|
510
|
-
_setMenuBarFilters(filters) {
|
|
511
|
-
this._menuBarsFiltersSubject.next(filters || []);
|
|
512
|
-
}
|
|
513
|
-
getColumnComponent(propName) {
|
|
514
|
-
if (!this.columnComponents || this.columnComponents.length === 0) {
|
|
515
|
-
return null;
|
|
516
|
-
}
|
|
517
|
-
const tpl = this.columnComponents.find(t => t.prop === propName);
|
|
518
|
-
if (tpl) {
|
|
519
|
-
return tpl;
|
|
520
|
-
}
|
|
521
|
-
return null;
|
|
522
|
-
}
|
|
523
|
-
_columnData(col) {
|
|
524
|
-
const comp = this.getColumnComponent(col.prop);
|
|
525
|
-
return { col, comp };
|
|
526
|
-
}
|
|
527
|
-
_getRowExpanded(row) {
|
|
528
|
-
if (this.ngxDatatable && this.ngxDatatable.bodyComponent) {
|
|
529
|
-
return this.ngxDatatable.bodyComponent.getRowExpanded(row);
|
|
530
|
-
}
|
|
531
|
-
return false;
|
|
532
|
-
}
|
|
533
|
-
trackByFnColumn(index, item) {
|
|
534
|
-
return item.prop;
|
|
535
|
-
}
|
|
536
|
-
onDatatableResize(event) {
|
|
537
|
-
if (this.ngxDatatable && this.ngxDatatableElement && this.ngxDatatableElement.nativeElement) {
|
|
538
|
-
// TODO: Consider integrating this into the ngx-datatable library to avoid
|
|
539
|
-
// multiple resize calls when the table resizes itself.
|
|
540
|
-
this.ngxDatatable.recalculate();
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
_onResize(event) {
|
|
544
|
-
this.resize.emit(event);
|
|
545
|
-
if (!notNullOrUndefined(event.column)) {
|
|
546
|
-
return;
|
|
547
|
-
}
|
|
548
|
-
const columnProp = getColumnProp(event.column);
|
|
549
|
-
if (columnProp) {
|
|
550
|
-
let addAlteration = false;
|
|
551
|
-
if (!this._resizing[columnProp]) {
|
|
552
|
-
this._resizing[columnProp] = true;
|
|
553
|
-
addAlteration = true;
|
|
554
|
-
}
|
|
555
|
-
if (event.isDone) {
|
|
556
|
-
this._resizing[columnProp] = false;
|
|
557
|
-
addAlteration = true;
|
|
558
|
-
}
|
|
559
|
-
if (addAlteration) {
|
|
560
|
-
const alteration = new WidthColumnsAlteration({
|
|
561
|
-
columnProp,
|
|
562
|
-
width: event.column.width,
|
|
563
|
-
canAutoResize: false
|
|
564
|
-
}, true);
|
|
565
|
-
this._columnsAlterationsManager.add([alteration]);
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
_onReorder(event) {
|
|
570
|
-
this.reorder.emit(event);
|
|
571
|
-
const columnProp = getColumnProp(event.column);
|
|
572
|
-
if (columnProp) {
|
|
573
|
-
const currentOrderAlteration = this._columnsAlterationsManager.get().find(x => x.type === 'order');
|
|
574
|
-
const state = {
|
|
575
|
-
columns: [
|
|
576
|
-
...(currentOrderAlteration?.state.columns || []).filter((x) => x.columnProp !== columnProp),
|
|
577
|
-
{ columnProp, index: event.newValue }
|
|
578
|
-
]
|
|
579
|
-
};
|
|
580
|
-
const alteration = new OrderColumnsAlteration(state, true);
|
|
581
|
-
this._columnsAlterationsManager.add([alteration]);
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
_onSort(event) {
|
|
585
|
-
this.sort.emit(event);
|
|
586
|
-
const alteration = new SortColumnsAlteration({ sorts: event.sorts }, true);
|
|
587
|
-
this._columnsAlterationsManager.add([alteration]);
|
|
588
|
-
}
|
|
589
|
-
_onTreeAction(event) {
|
|
590
|
-
const index = event.rowIndex;
|
|
591
|
-
const row = event.row;
|
|
592
|
-
if (row.treeStatus === 'collapsed') {
|
|
593
|
-
row.treeStatus = 'expanded';
|
|
594
|
-
}
|
|
595
|
-
else {
|
|
596
|
-
row.treeStatus = 'collapsed';
|
|
597
|
-
}
|
|
598
|
-
this.rows = [...this.rows];
|
|
599
|
-
}
|
|
600
|
-
triggerActionRefreshRequest() {
|
|
601
|
-
this.actionRefreshRequest.emit(undefined);
|
|
602
|
-
}
|
|
603
|
-
/**
|
|
604
|
-
* Returns the page info from the wrapped NgxDatatable instance or defaults.
|
|
605
|
-
*/
|
|
606
|
-
get pageInfo() {
|
|
607
|
-
return {
|
|
608
|
-
offset: this.ngxDatatable?.offset ?? 0,
|
|
609
|
-
pageSize: this.ngxDatatable?.pageSize ?? 0,
|
|
610
|
-
limit: this.ngxDatatable?.limit,
|
|
611
|
-
count: this.ngxDatatable?.count ?? 0
|
|
612
|
-
};
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
DatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableComponent, deps: [{ token: i1.DatatablePreferencesService }, { token: i2.ColumnsManagerService }, { token: i3.ColumnsAlterationsManagerService }, { token: i4.ColumnsFiltersService }, { token: THESEAM_DATATABLE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
616
|
-
DatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableComponent, selector: "seam-datatable", inputs: { preferencesKey: "preferencesKey", targetMarkerTemplate: "targetMarkerTemplate", columns: "columns", rows: "rows", columnMode: "columnMode", groupRowsBy: "groupRowsBy", groupedRows: "groupedRows", selected: "selected", externalPaging: "externalPaging", externalSorting: "externalSorting", externalFiltering: "externalFiltering", limit: "limit", count: "count", offset: "offset", loadingIndicator: "loadingIndicator", selectionType: "selectionType", reorderable: "reorderable", swapColumns: "swapColumns", sortType: "sortType", sorts: "sorts", cssClasses: "cssClasses", messages: "messages", rowIdentity: "rowIdentity", rowClass: "rowClass", selectCheck: "selectCheck", displayCheck: "displayCheck", groupExpansionDefault: "groupExpansionDefault", trackByProp: "trackByProp", selectAllRowsOnPage: "selectAllRowsOnPage", treeFromRelation: "treeFromRelation", treeToRelation: "treeToRelation", summaryRow: "summaryRow", summaryHeight: "summaryHeight", summaryPosition: "summaryPosition", virtualization: "virtualization", headerHeight: "headerHeight", rowHeight: "rowHeight", footerHeight: "footerHeight", scrollbarV: "scrollbarV", scrollbarH: "scrollbarH", dataSource: "dataSource", actionItemColumnPosition: "actionItemColumnPosition", columnFilterIcon: "columnFilterIcon", columnFilterUpdateMethod: "columnFilterUpdateMethod", columnFilterUpdateDebounce: "columnFilterUpdateDebounce" }, outputs: { scroll: "scroll", activate: "activate", select: "select", sort: "sort", page: "page", reorder: "reorder", resize: "resize", tableContextmenu: "tableContextmenu", treeAction: "treeAction", actionRefreshRequest: "actionRefreshRequest", hiddenColumnsChange: "hiddenColumnsChange" }, host: { listeners: { "dblclick": "_dblClick($event)" } }, providers: [
|
|
617
|
-
_THESEAM_DATATABLE,
|
|
618
|
-
DatatableColumnChangesService,
|
|
619
|
-
_THESEAM_DATATABLE_ACCESSOR,
|
|
620
|
-
ColumnsManagerService,
|
|
621
|
-
ColumnsAlterationsManagerService,
|
|
622
|
-
ColumnsFiltersService
|
|
623
|
-
], queries: [{ propertyName: "actionMenu", first: true, predicate: DatatableActionMenuComponent, descendants: true, static: true }, { propertyName: "rowActionItem", first: true, predicate: DatatableRowActionItemDirective, descendants: true }, { propertyName: "rowDetail", first: true, predicate: TheSeamDatatableRowDetailDirective, descendants: true, static: true }, { propertyName: "footer", first: true, predicate: TheSeamDatatableFooterDirective, descendants: true, static: true }, { propertyName: "menuBarComponent", first: true, predicate: DatatableMenuBarComponent, descendants: true }, { propertyName: "columnComponents", predicate: DatatableColumnComponent }, { propertyName: "columnFilterTemplates", predicate: TheSeamDatatableColumnFilterDirective }], viewQueries: [{ propertyName: "ngxDatatable", first: true, predicate: NgxDatatableComponent, descendants: true }, { propertyName: "ngxDatatableElement", first: true, predicate: NgxDatatableComponent, descendants: true, read: ElementRef }, { propertyName: "ngxRowDetail", first: true, predicate: DatatableRowDetailDirective, descendants: true }, { propertyName: "actionMenuCellTpl", first: true, predicate: ["actionMenuCellTpl"], descendants: true, static: true }, { propertyName: "treeToggleTpl", first: true, predicate: ["treeToggleTpl"], descendants: true, static: true }, { propertyName: "headerTpl", first: true, predicate: ["headerTpl"], descendants: true, static: true }, { propertyName: "blankHeaderTpl", first: true, predicate: ["blankHeaderTpl"], descendants: true, static: true }, { propertyName: "cellTypeSelectorTpl", first: true, predicate: ["cellTypeSelectorTpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <div class=\"d-inline-flex align-items-center\">\n <ng-container *ngIf=\"column.filterable\">\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column.filterActive\"\n style=\"width: 1rem;\"\n title=\"Click to see filter options\"></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <button\n seamButton\n *ngIf=\"column.sortable\"\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()\"\n title=\"Click to sort\">\n <strong class=\"draggable\">{{column.name}}</strong>\n </button>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\n </div>\n <ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column\"\n [updateMethod]=\"columnFilterUpdateMethod\"\n [debounce]=\"columnFilterUpdateDebounce\"\n (closePopover)=\"popover?.closePopover()\"></seam-datatable-column-filter-menu>\n </ng-template>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}::ng-deep .ngx-datatable .datatable-body-row{position:relative}::ng-deep .ngx-datatable .datatable-row-right{position:absolute!important;top:0}::ng-deep .ngx-datatable .datatable-row-right{right:0}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "displayPageCount", "displayPager", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DatatableGroupHeaderDirective, selector: "ngx-datatable-group-header", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableColumnCellTreeToggle, selector: "[ngx-datatable-tree-toggle]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "directive", type: i6.DatatableGroupHeaderTemplateDirective, selector: "[ngx-datatable-group-header-template]" }, { kind: "component", type: i7.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: i8.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"] }, { kind: "component", type: i9.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "component", type: i10.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i11.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: i12.TableCellTypeSelectorComponent, selector: "seam-table-cell-type-selector", inputs: ["type", "value", "rowIndex", "row", "colData"] }, { kind: "component", type: i13.DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: ["column", "updateMethod", "debounce"], outputs: ["closePopover"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: [
|
|
624
|
-
trigger('slideDown', [
|
|
625
|
-
transition(':enter', [
|
|
626
|
-
style({ transform: 'translateY(-20%)', opacity: '0' }),
|
|
627
|
-
animate('250ms', style({ transform: 'translateY(0)', opacity: '1' })),
|
|
628
|
-
]),
|
|
629
|
-
transition(':leave', [
|
|
630
|
-
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
631
|
-
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
632
|
-
])
|
|
633
|
-
])
|
|
634
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
635
|
-
__decorate([
|
|
636
|
-
InputBoolean()
|
|
637
|
-
], DatatableComponent.prototype, "externalPaging", void 0);
|
|
638
|
-
__decorate([
|
|
639
|
-
InputBoolean()
|
|
640
|
-
], DatatableComponent.prototype, "externalSorting", void 0);
|
|
641
|
-
__decorate([
|
|
642
|
-
InputBoolean()
|
|
643
|
-
], DatatableComponent.prototype, "externalFiltering", void 0);
|
|
644
|
-
__decorate([
|
|
645
|
-
InputNumber()
|
|
646
|
-
], DatatableComponent.prototype, "limit", void 0);
|
|
647
|
-
__decorate([
|
|
648
|
-
InputNumber(0)
|
|
649
|
-
], DatatableComponent.prototype, "count", void 0);
|
|
650
|
-
__decorate([
|
|
651
|
-
InputNumber(0)
|
|
652
|
-
], DatatableComponent.prototype, "offset", void 0);
|
|
653
|
-
__decorate([
|
|
654
|
-
InputBoolean()
|
|
655
|
-
], DatatableComponent.prototype, "loadingIndicator", void 0);
|
|
656
|
-
__decorate([
|
|
657
|
-
InputBoolean()
|
|
658
|
-
], DatatableComponent.prototype, "reorderable", void 0);
|
|
659
|
-
__decorate([
|
|
660
|
-
InputBoolean()
|
|
661
|
-
], DatatableComponent.prototype, "swapColumns", void 0);
|
|
662
|
-
__decorate([
|
|
663
|
-
InputBoolean()
|
|
664
|
-
], DatatableComponent.prototype, "groupExpansionDefault", void 0);
|
|
665
|
-
__decorate([
|
|
666
|
-
InputBoolean()
|
|
667
|
-
], DatatableComponent.prototype, "selectAllRowsOnPage", void 0);
|
|
668
|
-
__decorate([
|
|
669
|
-
InputBoolean()
|
|
670
|
-
], DatatableComponent.prototype, "summaryRow", void 0);
|
|
671
|
-
__decorate([
|
|
672
|
-
InputNumber()
|
|
673
|
-
], DatatableComponent.prototype, "summaryHeight", void 0);
|
|
674
|
-
__decorate([
|
|
675
|
-
InputBoolean()
|
|
676
|
-
], DatatableComponent.prototype, "virtualization", void 0);
|
|
677
|
-
__decorate([
|
|
678
|
-
InputNumber()
|
|
679
|
-
], DatatableComponent.prototype, "headerHeight", null);
|
|
680
|
-
__decorate([
|
|
681
|
-
InputNumber()
|
|
682
|
-
], DatatableComponent.prototype, "rowHeight", null);
|
|
683
|
-
__decorate([
|
|
684
|
-
InputNumber()
|
|
685
|
-
], DatatableComponent.prototype, "footerHeight", null);
|
|
686
|
-
__decorate([
|
|
687
|
-
InputBoolean()
|
|
688
|
-
], DatatableComponent.prototype, "scrollbarV", void 0);
|
|
689
|
-
__decorate([
|
|
690
|
-
InputBoolean()
|
|
691
|
-
], DatatableComponent.prototype, "scrollbarH", void 0);
|
|
692
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableComponent, decorators: [{
|
|
693
|
-
type: Component,
|
|
694
|
-
args: [{ selector: 'seam-datatable', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
695
|
-
trigger('slideDown', [
|
|
696
|
-
transition(':enter', [
|
|
697
|
-
style({ transform: 'translateY(-20%)', opacity: '0' }),
|
|
698
|
-
animate('250ms', style({ transform: 'translateY(0)', opacity: '1' })),
|
|
699
|
-
]),
|
|
700
|
-
transition(':leave', [
|
|
701
|
-
style({ transform: 'translateY(0)', opacity: '1' }),
|
|
702
|
-
animate('250ms', style({ transform: 'translateY(-20%)', opacity: '0' })),
|
|
703
|
-
])
|
|
704
|
-
])
|
|
705
|
-
], providers: [
|
|
706
|
-
_THESEAM_DATATABLE,
|
|
707
|
-
DatatableColumnChangesService,
|
|
708
|
-
_THESEAM_DATATABLE_ACCESSOR,
|
|
709
|
-
ColumnsManagerService,
|
|
710
|
-
ColumnsAlterationsManagerService,
|
|
711
|
-
ColumnsFiltersService
|
|
712
|
-
], template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"_onSort($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"_onReorder($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template\n #headerTpl\n ngx-datatable-header-template\n let-column=\"column\"\n let-sortFn=\"sortFn\"\n>\n <div class=\"d-inline-flex align-items-center\">\n <ng-container *ngIf=\"column.filterable\">\n <button\n seamIconBtn\n [icon]=\"columnFilterIcon\"\n size=\"sm\"\n [seamPopover]=\"filterMenu\"\n [seamPopoverBaseWidth]=\"300\"\n class=\"datatable-column-header-filter-button d-flex align-items-center mr-2\"\n [class.datatable-column-header-filter-button-active]=\"column.filterActive\"\n style=\"width: 1rem;\"\n title=\"Click to see filter options\"></button>\n </ng-container>\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <button\n seamButton\n *ngIf=\"column.sortable\"\n class=\"datatable-sort-target p-0\"\n (click)=\"sortFn()\"\n title=\"Click to sort\">\n <strong class=\"draggable\">{{column.name}}</strong>\n </button>\n <div class=\"datatable-column-header-separator\" [attr.data-column-id]=\"column.$$id\"></div>\n </div>\n <ng-template #filterMenu let-popover=\"popover\">\n <seam-datatable-column-filter-menu\n [column]=\"column\"\n [updateMethod]=\"columnFilterUpdateMethod\"\n [debounce]=\"columnFilterUpdateDebounce\"\n (closePopover)=\"popover?.closePopover()\"></seam-datatable-column-filter-menu>\n </ng-template>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"_faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"_faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"_faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;inset:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}::ng-deep .ngx-datatable .datatable-body-row{position:relative}::ng-deep .ngx-datatable .datatable-row-right{position:absolute!important;top:0}::ng-deep .ngx-datatable .datatable-row-right{right:0}\n"] }]
|
|
713
|
-
}], ctorParameters: function () { return [{ type: i1.DatatablePreferencesService }, { type: i2.ColumnsManagerService }, { type: i3.ColumnsAlterationsManagerService }, { type: i4.ColumnsFiltersService }, { type: undefined, decorators: [{
|
|
714
|
-
type: Optional
|
|
715
|
-
}, {
|
|
716
|
-
type: Inject,
|
|
717
|
-
args: [THESEAM_DATATABLE_CONFIG]
|
|
718
|
-
}] }]; }, propDecorators: { preferencesKey: [{
|
|
719
|
-
type: Input
|
|
720
|
-
}], targetMarkerTemplate: [{
|
|
721
|
-
type: Input
|
|
722
|
-
}], columns: [{
|
|
723
|
-
type: Input
|
|
724
|
-
}], rows: [{
|
|
725
|
-
type: Input
|
|
726
|
-
}], columnMode: [{
|
|
727
|
-
type: Input
|
|
728
|
-
}], groupRowsBy: [{
|
|
729
|
-
type: Input
|
|
730
|
-
}], groupedRows: [{
|
|
731
|
-
type: Input
|
|
732
|
-
}], selected: [{
|
|
733
|
-
type: Input
|
|
734
|
-
}], externalPaging: [{
|
|
735
|
-
type: Input
|
|
736
|
-
}], externalSorting: [{
|
|
737
|
-
type: Input
|
|
738
|
-
}], externalFiltering: [{
|
|
739
|
-
type: Input
|
|
740
|
-
}], limit: [{
|
|
741
|
-
type: Input
|
|
742
|
-
}], count: [{
|
|
743
|
-
type: Input
|
|
744
|
-
}], offset: [{
|
|
745
|
-
type: Input
|
|
746
|
-
}], loadingIndicator: [{
|
|
747
|
-
type: Input
|
|
748
|
-
}], selectionType: [{
|
|
749
|
-
type: Input
|
|
750
|
-
}], reorderable: [{
|
|
751
|
-
type: Input
|
|
752
|
-
}], swapColumns: [{
|
|
753
|
-
type: Input
|
|
754
|
-
}], sortType: [{
|
|
755
|
-
type: Input
|
|
756
|
-
}], sorts: [{
|
|
757
|
-
type: Input
|
|
758
|
-
}], cssClasses: [{
|
|
759
|
-
type: Input
|
|
760
|
-
}], messages: [{
|
|
761
|
-
type: Input
|
|
762
|
-
}], rowIdentity: [{
|
|
763
|
-
type: Input
|
|
764
|
-
}], rowClass: [{
|
|
765
|
-
type: Input
|
|
766
|
-
}], selectCheck: [{
|
|
767
|
-
type: Input
|
|
768
|
-
}], displayCheck: [{
|
|
769
|
-
type: Input
|
|
770
|
-
}], groupExpansionDefault: [{
|
|
771
|
-
type: Input
|
|
772
|
-
}], trackByProp: [{
|
|
773
|
-
type: Input
|
|
774
|
-
}], selectAllRowsOnPage: [{
|
|
775
|
-
type: Input
|
|
776
|
-
}], treeFromRelation: [{
|
|
777
|
-
type: Input
|
|
778
|
-
}], treeToRelation: [{
|
|
779
|
-
type: Input
|
|
780
|
-
}], summaryRow: [{
|
|
781
|
-
type: Input
|
|
782
|
-
}], summaryHeight: [{
|
|
783
|
-
type: Input
|
|
784
|
-
}], summaryPosition: [{
|
|
785
|
-
type: Input
|
|
786
|
-
}], virtualization: [{
|
|
787
|
-
type: Input
|
|
788
|
-
}], headerHeight: [{
|
|
789
|
-
type: Input
|
|
790
|
-
}], rowHeight: [{
|
|
791
|
-
type: Input
|
|
792
|
-
}], footerHeight: [{
|
|
793
|
-
type: Input
|
|
794
|
-
}], scrollbarV: [{
|
|
795
|
-
type: Input
|
|
796
|
-
}], scrollbarH: [{
|
|
797
|
-
type: Input
|
|
798
|
-
}], dataSource: [{
|
|
799
|
-
type: Input
|
|
800
|
-
}], actionItemColumnPosition: [{
|
|
801
|
-
type: Input
|
|
802
|
-
}], columnFilterIcon: [{
|
|
803
|
-
type: Input
|
|
804
|
-
}], columnFilterUpdateMethod: [{
|
|
805
|
-
type: Input
|
|
806
|
-
}], columnFilterUpdateDebounce: [{
|
|
807
|
-
type: Input
|
|
808
|
-
}], scroll: [{
|
|
809
|
-
type: Output
|
|
810
|
-
}], activate: [{
|
|
811
|
-
type: Output
|
|
812
|
-
}], select: [{
|
|
813
|
-
type: Output
|
|
814
|
-
}], sort: [{
|
|
815
|
-
type: Output
|
|
816
|
-
}], page: [{
|
|
817
|
-
type: Output
|
|
818
|
-
}], reorder: [{
|
|
819
|
-
type: Output
|
|
820
|
-
}], resize: [{
|
|
821
|
-
type: Output
|
|
822
|
-
}], tableContextmenu: [{
|
|
823
|
-
type: Output
|
|
824
|
-
}], treeAction: [{
|
|
825
|
-
type: Output
|
|
826
|
-
}], actionRefreshRequest: [{
|
|
827
|
-
type: Output
|
|
828
|
-
}], hiddenColumnsChange: [{
|
|
829
|
-
type: Output
|
|
830
|
-
}], columnComponents: [{
|
|
831
|
-
type: ContentChildren,
|
|
832
|
-
args: [DatatableColumnComponent]
|
|
833
|
-
}], actionMenu: [{
|
|
834
|
-
type: ContentChild,
|
|
835
|
-
args: [DatatableActionMenuComponent, { static: true }]
|
|
836
|
-
}], rowActionItem: [{
|
|
837
|
-
type: ContentChild,
|
|
838
|
-
args: [DatatableRowActionItemDirective]
|
|
839
|
-
}], rowDetail: [{
|
|
840
|
-
type: ContentChild,
|
|
841
|
-
args: [TheSeamDatatableRowDetailDirective, { static: true }]
|
|
842
|
-
}], footer: [{
|
|
843
|
-
type: ContentChild,
|
|
844
|
-
args: [TheSeamDatatableFooterDirective, { static: true }]
|
|
845
|
-
}], menuBarComponent: [{
|
|
846
|
-
type: ContentChild,
|
|
847
|
-
args: [DatatableMenuBarComponent]
|
|
848
|
-
}], columnFilterTemplates: [{
|
|
849
|
-
type: ContentChildren,
|
|
850
|
-
args: [TheSeamDatatableColumnFilterDirective]
|
|
851
|
-
}], ngxDatatable: [{
|
|
852
|
-
type: ViewChild,
|
|
853
|
-
args: [NgxDatatableComponent]
|
|
854
|
-
}], ngxDatatableElement: [{
|
|
855
|
-
type: ViewChild,
|
|
856
|
-
args: [NgxDatatableComponent, { read: ElementRef }]
|
|
857
|
-
}], ngxRowDetail: [{
|
|
858
|
-
type: ViewChild,
|
|
859
|
-
args: [DatatableRowDetailDirective]
|
|
860
|
-
}], actionMenuCellTpl: [{
|
|
861
|
-
type: ViewChild,
|
|
862
|
-
args: ['actionMenuCellTpl', { static: true }]
|
|
863
|
-
}], treeToggleTpl: [{
|
|
864
|
-
type: ViewChild,
|
|
865
|
-
args: ['treeToggleTpl', { static: true }]
|
|
866
|
-
}], headerTpl: [{
|
|
867
|
-
type: ViewChild,
|
|
868
|
-
args: ['headerTpl', { static: true }]
|
|
869
|
-
}], blankHeaderTpl: [{
|
|
870
|
-
type: ViewChild,
|
|
871
|
-
args: ['blankHeaderTpl', { static: true }]
|
|
872
|
-
}], cellTypeSelectorTpl: [{
|
|
873
|
-
type: ViewChild,
|
|
874
|
-
args: ['cellTypeSelectorTpl', { static: true }]
|
|
875
|
-
}], _dblClick: [{
|
|
876
|
-
type: HostListener,
|
|
877
|
-
args: ['dblclick', ['$event']]
|
|
878
|
-
}] } });
|
|
879
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS9kYXRhdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RSxPQUFPLEVBQWdCLFdBQVcsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQzlFLE9BQU8sRUFBZ0MsWUFBWSxFQUFhLE1BQU0sMEJBQTBCLENBQUE7QUFDaEcsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBQ0wsU0FBUyxFQUlULFFBQVEsRUFDUixNQUFNLEVBR04sU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN0RyxPQUFP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YUFBYTtzQkFEaEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVN4QyxTQUFTO3NCQURaLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFTcEMsY0FBYztzQkFEakIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBU3pDLG1CQUFtQjtzQkFEdEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBc0JsRCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VBcnJheSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlLCBpc0RhdGFTb3VyY2UsIExpc3RSYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucydcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjb25jYXRNYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBmYUNoZXZyb25Eb3duLCBmYUNoZXZyb25SaWdodCwgZmFGaWx0ZXIsIGZhU3Bpbm5lciB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7XG4gIENvbHVtbk1vZGUsXG4gIENvbnRleHRtZW51VHlwZSxcbiAgRGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGUsXG4gIERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZSxcbiAgRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlLFxuICBEYXRhdGFibGVDb21wb25lbnQgYXMgTmd4RGF0YXRhYmxlQ29tcG9uZW50LFxuICBEYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gIFNvcnRUeXBlLFxuICBUcmVlU3RhdHVzXG59IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcbmltcG9ydCB0eXBlIHsgU2VsZWN0aW9uVHlwZSB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHsgY29tcG9zZURhdGFGaWx0ZXJzLCBjb21wb3NlRGF0YUZpbHRlclN0YXRlcywgRGF0YUZpbHRlciwgRGF0YUZpbHRlclN0YXRlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcbmltcG9ydCB7IElFbGVtZW50UmVzaXplZEV2ZW50IH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3NoYXJlZCdcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkLCBub3ROdWxsT3JVbmRlZmluZWQsIHdhaXRPbkNvbmRpdGlvbkFzeW5jIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXRhYmxlLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1hY3Rpb24tbWVudS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhdGFibGUtY29sdW1uL2RhdGF0YWJsZS1jb2x1bW4uY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXRhYmxlLW1lbnUtYmFyL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLXJvdy1hY3Rpb24taXRlbS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IgfSBmcm9tICcuLi9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xuaW1wb3J0IHsgRGF0YXRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uL21vZGVscy9kYXRhdGFibGUtZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBUaGVTZWFtUGFnZUluZm8gfSBmcm9tICcuLi9tb2RlbHMvcGFnZS1pbmZvJ1xuaW1wb3J0IHsgU29ydEV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzL3NvcnQtZXZlbnQnXG5pbXBvcnQgeyBTb3J0SXRlbSB9IGZyb20gJy4uL21vZGVscy9zb3J0LWl0ZW0nXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbidcbmltcG9ydCB7IENvbHVtbnNNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbHVtbnMtbWFuYWdlci5zZXJ2aWNlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kYXRhdGFibGUtY29sdW1uLWNoYW5nZXMuc2VydmljZSdcbmltcG9ydCB7IERhdGF0YWJsZVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuaW1wb3J0IHsgVEhFU0VBTV9EQVRBVEFCTEVfQUNDRVNTT1IgfSBmcm9tICcuLi90b2tlbnMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xuaW1wb3J0IHsgcmVtb3ZlVW51c2VkRGlmZnMgfSBmcm9tICcuLi91dGlscy9yZW1vdmUtdW51c2VkLWRpZmZzJ1xuaW1wb3J0IHsgdHJhbnNsYXRlVGVtcGxhdGVDb2x1bW5zIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNsYXRlLXRlbXBsYXRlcydcbmltcG9ydCB7IENvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29sdW1ucy1hbHRlcmF0aW9ucy1tYW5hZ2VyLnNlcnZpY2UnXG5pbXBvcnQgeyBDb2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb24nXG5pbXBvcnQgeyBtYXBDb2x1bW5zQWx0ZXJhdGlvbnNTdGF0ZXMgfSBmcm9tICcuLi91dGlscy9tYXAtY29sdW1ucy1hbHRlcmF0aW9ucy1zdGF0ZXMnXG5pbXBvcnQgeyBXaWR0aENvbHVtbnNBbHRlcmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbnMtYWx0ZXJhdGlvbnMvd2lkdGguY29sdW1ucy1hbHRlcmF0aW9uJ1xuaW1wb3J0IHsgZ2V0Q29sdW1uUHJvcCB9IGZyb20gJy4uL3V0aWxzL2dldC1jb2x1bW4tcHJvcCdcbmltcG9ydCB7IE9yZGVyQ29sdW1uc0FsdGVyYXRpb24sIE9yZGVyQ29sdW1uc0FsdGVyYXRpb25TdGF0ZSB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb25zL29yZGVyLmNvbHVtbnMtYWx0ZXJhdGlvbidcbmltcG9ydCB7IFNvcnRDb2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb25zL3NvcnQuY29sdW1ucy1hbHRlcmF0aW9uJ1xuaW1wb3J0IHsgQWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uLCBpc0FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy9hY3Rpb24taXRlbS1jb2x1bW4tcG9zaXRpb24nXG5pbXBvcnQgeyBDb2x1bW5zRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb2x1bW5zLWZpbHRlcnMuc2VydmljZSdcbmltcG9ydCB7IFRIRVNFQU1fREFUQVRBQkxFX0NPTkZJRywgVGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZCwgVGhlU2VhbURhdGF0YWJsZUNvbmZpZywgVGhlU2VhbURhdGF0YWJsZU1lc3NhZ2VzIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGF0YWJsZS1jb25maWcnXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXIuZGlyZWN0aXZlJ1xuXG4vKipcbiAqIE5PVEU6IFRoaXMgaXMgc3RpbGwgYmVpbmcgd29ya2VkIG9uLiBJIGFtIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoaXMgbW9kZWxcbiAqIGJlY2F1c2UgYG5neC1kYXRhdGFibGVgIGp1c3QgdXNlcyBhbiB1bnR5cGVkIG9iamVjdCBhbmQgc2V0cyBwcm9wZXJ0aWVzIGluXG4gKiBtdWx0aXBsZSBwbGFjZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNlbGxDb250ZXh0IHtcbiAgYWxsUm93c1NlbGVjdGVkOiBmYWxzZVxuXG4gIHNlbGVjdEZuOiAoKSA9PiBhbnlcbiAgc29ydERpcj86ICdhc2MnIHwgJ2Rlc2MnXG4gIHNvcnRGbjogKCkgPT4gYW55XG5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG5cbiAgb25DaGVja2JveENoYW5nZUZuPzogYW55XG4gIGFjdGl2YXRlRm4/OiBhbnlcbiAgcm93PzogYW55XG4gIGdyb3VwPzogYW55XG4gIHZhbHVlPzogYW55XG4gIGNvbHVtbj86IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5cbiAgcm93SGVpZ2h0PzogbnVtYmVyXG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuXG4gIHJvd0luZGV4PzogbnVtYmVyXG4gIHRyZWVTdGF0dXM/OiBUcmVlU3RhdHVzXG4gIG9uVHJlZUFjdGlvbj86IGFueVxufVxuXG4vKipcbiAqIEludGVuZGVkIGZvciBpbnRlcm5hbCBjbGFzc2VzIGRlY2xhcmVkIGJ5IHRoZSBgVGhlU2VhbURhdGF0YWJsZU1vZHVsZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVTRUFNX0RBVEFUQUJMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRhRmlsdGVyPignTGliRGF0YXRhYmxlJylcblxuZXhwb3J0IGNvbnN0IF9USEVTRUFNX0RBVEFUQUJMRTogYW55ID0ge1xuICBwcm92aWRlOiBUSEVTRUFNX0RBVEFUQUJMRSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhdGFibGVDb21wb25lbnQpXG59XG5cbmV4cG9ydCBjb25zdCBfVEhFU0VBTV9EQVRBVEFCTEVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogVEhFU0VBTV9EQVRBVEFCTEVfQUNDRVNTT1IsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXRhYmxlQ29tcG9uZW50KVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZURvd24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMjAlKScsIG9wYWNpdHk6ICcwJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjUwbXMnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLCBvcGFjaXR5OiAnMScgfSkpLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsIG9wYWNpdHk6ICcxJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjUwbXMnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTIwJSknLCBvcGFjaXR5OiAnMCcgfSkpLFxuICAgICAgXSlcbiAgICBdKVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBfVEhFU0VBTV9EQVRBVEFCTEUsXG4gICAgRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UsXG4gICAgX1RIRVNFQU1fREFUQVRBQkxFX0FDQ0VTU09SLFxuICAgIENvbHVtbnNNYW5hZ2VyU2VydmljZSxcbiAgICBDb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyU2VydmljZSxcbiAgICBDb2x1bW5zRmlsdGVyc1NlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVGhlU2VhbURhdGF0YWJsZUFjY2Vzc29yLCBDb2xsZWN0aW9uVmlld2VyIHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2V4dGVybmFsUGFnaW5nOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2V4dGVybmFsU29ydGluZzogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9leHRlcm5hbEZpbHRlcmluZzogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9sb2FkaW5nSW5kaWNhdG9yOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Jlb3JkZXJhYmxlOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3N3YXBDb2x1bW5zOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2dyb3VwRXhwYW5zaW9uRGVmYXVsdDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zZWxlY3RBbGxSb3dzT25QYWdlOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3N1bW1hcnlSb3c6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdmlydHVhbGl6YXRpb246IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2Nyb2xsYmFyVjogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zY3JvbGxiYXJIOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2xpbWl0OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY291bnQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9vZmZzZXQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oZWFkZXJIZWlnaHQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yb3dIZWlnaHQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mb290ZXJIZWlnaHQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zdW1tYXJ5SGVpZ2h0OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc29ydHM6IFNvcnRJdGVtW10gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcmVhZG9ubHkgX2ZhQ2hldnJvbkRvd24gPSBmYUNoZXZyb25Eb3duXG4gIHJlYWRvbmx5IF9mYUNoZXZyb25SaWdodCA9IGZhQ2hldnJvblJpZ2h0XG4gIHJlYWRvbmx5IF9mYVNwaW5uZXIgPSBmYVNwaW5uZXJcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKVxuICBwcml2YXRlIHJlYWRvbmx5IF9tZW51QmFyc0ZpbHRlcnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhRmlsdGVyW10+KFtdKVxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU291cmNlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YVNvdXJjZTxhbnk+IHwgYW55W10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICBwcml2YXRlIF9yZXNpemluZzogeyBbcHJvcDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge31cblxuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU3RhdGVzOiBPYnNlcnZhYmxlPERhdGFGaWx0ZXJTdGF0ZVtdPlxuXG4gIGdldCBmaWx0ZXJzKCk6IERhdGFGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuX21lbnVCYXJzRmlsdGVyc1N1YmplY3QudmFsdWUsXG4gICAgICAuLi50aGlzLl9jb2x1bW5zRmlsdGVycy5maWx0ZXJzKClcbiAgICBdXG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVycyQ6IE9ic2VydmFibGU8RGF0YUZpbHRlcltdPlxuXG4gIEBJbnB1dCgpXG4gIGdldCBwcmVmZXJlbmNlc0tleSgpOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX3ByZWZlcmVuY2VzS2V5LnZhbHVlIH1cbiAgc2V0IHByZWZlcmVuY2VzS2V5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7IHRoaXMuX3ByZWZlcmVuY2VzS2V5Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKSB9XG4gIHByaXZhdGUgX3ByZWZlcmVuY2VzS2V5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPih1bmRlZmluZWQpXG5cbiAgQElucHV0KCkgdGFyZ2V0TWFya2VyVGVtcGxhdGU6IGFueVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW5zKHZhbHVlOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zTWFuYWdlci5zZXRJbnB1dENvbHVtbnMoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdKVxuICAgIHRoaXMuX2NvbHVtbnNGaWx0ZXJzLnJlZ2lzdGVyQ29sdW1uRmlsdGVycyhBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW10pXG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcm93cygpOiBhbnlbXSB7IHJldHVybiB0aGlzLl9yb3dzLnZhbHVlIH1cbiAgc2V0IHJvd3ModmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fcm93cy5uZXh0KHZhbHVlIHx8IFtdKVxuICB9XG4gIHByaXZhdGUgX3Jvd3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSlcblxuICBwdWJsaWMgcm93cyQ6IE9ic2VydmFibGU8YW55W10+XG5cbiAgQElucHV0KCkgY29sdW1uTW9kZTogQ29sdW1uTW9kZSB8IHVuZGVmaW5lZCB8IG51bGwgPSBDb2x1bW5Nb2RlLmZvcmNlXG5cbiAgQElucHV0KCkgZ3JvdXBSb3dzQnk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZ3JvdXBlZFJvd3M6IGFueVtdIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSB8IHVuZGVmaW5lZCB8IG51bGwgPSBbXVxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBleHRlcm5hbFBhZ2luZyA9IGZhbHNlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBleHRlcm5hbFNvcnRpbmcgPSBmYWxzZVxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZXh0ZXJuYWxGaWx0ZXJpbmcgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIGxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKDApIGNvdW50ID0gMFxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoMCkgb2Zmc2V0ID0gMFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBsb2FkaW5nSW5kaWNhdG9yID0gZmFsc2VcblxuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0aW9uVHlwZSgpOiBTZWxlY3Rpb25UeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9jb2x1bW5zTWFuYWdlci5nZXRTZWxlY3Rpb25UeXBlKCkgfVxuICBzZXQgc2VsZWN0aW9uVHlwZSh2YWx1ZTogU2VsZWN0aW9uVHlwZSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9jb2x1bW5zTWFuYWdlci5zZXRTZWxlY3Rpb25UeXBlKG5vdE51bGxPclVuZGVmaW5lZCh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZClcbiAgfVxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSByZW9yZGVyYWJsZSA9IHRydWVcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHN3YXBDb2x1bW5zID0gZmFsc2VcblxuICBASW5wdXQoKVxuICBnZXQgc29ydFR5cGUoKTogU29ydFR5cGUgeyByZXR1cm4gdGhpcy5fc29ydFR5cGUgfVxuICBzZXQgc29ydFR5cGUodmFsdWU6IFNvcnRUeXBlKSB7XG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh2YWx1ZSkgJiYgKHZhbHVlID09PSBTb3J0VHlwZS5zaW5nbGUgfHwgdmFsdWUgPT09IFNvcnRUeXBlLm11bHRpKSkge1xuICAgICAgdGhpcy5fc29ydFR5cGUgPSB2YWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zb3J0VHlwZSA9IFNvcnRUeXBlLnNpbmdsZVxuICAgIH1cbiAgfVxuICBfc29ydFR5cGU6IFNvcnRUeXBlID0gU29ydFR5cGUuc2luZ2xlXG5cbiAgQElucHV0KClcbiAgZ2V0IHNvcnRzKCk6IFNvcnRJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLm5neERhdGF0YWJsZSA/IHRoaXMubmd4RGF0YXRhYmxlLnNvcnRzIDogdGhpcy5fc29ydHNcbiAgfVxuICBzZXQgc29ydHModmFsdWU6IFNvcnRJdGVtW10pIHtcbiAgICB0aGlzLl9zb3J0cyA9IG5vdE51bGxPclVuZGVmaW5lZCh2YWx1ZSkgPyBjb2VyY2VBcnJheSh2YWx1ZSkgOiBbXVxuICB9XG4gIF9zb3J0czogU29ydEl0ZW1bXSA9IFtdXG5cbiAgQElucHV0KCkgZ2V0IGNzc0NsYXNzZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jc3NDbGFzc2VzXG4gIH1cbiAgc2V0IGNzc0NsYXNzZXModmFsdWU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX2Nzc0NsYXNzZXMgPSB2YWx1ZVxuICAgIH1cbiAgICBlbHNlIGlmIChub3ROdWxsT3JVbmRlZmluZWQodGhpcy5fY29uZmlnPy5jc3NDbGFzc2VzKSkge1xuICAgICAgdGhpcy5fY3NzQ2xhc3NlcyA9IHRoaXMuX2NvbmZpZz8uY3NzQ2xhc3Nlc1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX2Nzc0NsYXNzZXMgPSB0aGlzLl9jc3NDbGFzc2VzRGVmYXVsdFxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jc3NDbGFzc2VzRGVmYXVsdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBzb3J0QXNjZW5kaW5nOiAnZGF0YXRhYmxlLWljb24tdXAnLFxuICAgIHNvcnREZXNjZW5kaW5nOiAnZGF0YXRhYmxlLWljb24tZG93bicsXG4gICAgcGFnZXJMZWZ0QXJyb3c6ICdkYXRhdGFibGUtaWNvbi1sZWZ0JyxcbiAgICBwYWdlclJpZ2h0QXJyb3c6ICdkYXRhdGFibGUtaWNvbi1yaWdodCcsXG4gICAgcGFnZXJQcmV2aW91czogJ2RhdGF0YWJsZS1pY29uLXByZXYnLFxuICAgIHBhZ2VyTmV4dDogJ2RhdGF0YWJsZS1pY29uLXNraXAnXG4gIH1cbiAgX2Nzc0NsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgZ2V0IG1lc3NhZ2VzKCk6IFRoZVNlYW1EYXRhdGFibGVNZXNzYWdlcyB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlc1xuICB9XG4gIHNldCBtZXNzYWdlcyh2YWx1ZTogVGhlU2VhbURhdGF0YWJsZU1lc3NhZ2VzIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9tZXNzYWdlcyA9IHZhbHVlXG4gICAgfVxuICAgIGVsc2UgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9jb25maWc/Lm1lc3NhZ2VzKSkge1xuICAgICAgdGhpcy5fbWVzc2FnZXMgPSB7XG4gICAgICAgIC4uLnRoaXMuX21lc3NhZ2VzRGVmYXVsdCxcbiAgICAgICAgLi4udGhpcy5fY29uZmlnPy5tZXNzYWdlc1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX21lc3NhZ2VzID0gdGhpcy5fbWVzc2FnZXNEZWZhdWx0XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX21lc3NhZ2VzRGVmYXVsdDogVGhlU2VhbURhdGF0YWJsZU1lc3NhZ2VzID0ge1xuICAgIC8vIE1lc3NhZ2UgdG8gc2hvdyB3aGVuIGFycmF5IGlzIHByZXNlbnRlZFxuICAgIC8vIGJ1dCBjb250YWlucyBubyB2YWx1ZXNcbiAgICBlbXB0eU1lc3NhZ2U6ICdObyByZWNvcmRzIGZvdW5kJyxcblxuICAgIC8vIEZvb3RlciB0b3RhbCBtZXNzYWdlXG4gICAgdG90YWxNZXNzYWdlOiAndG90YWwnLFxuXG4gICAgLy8gRm9vdGVyIHNlbGVjdGVkIG1lc3NhZ2VcbiAgICBzZWxlY3RlZE1lc3NhZ2U6ICdzZWxlY3RlZCdcbiAgfVxuICBfbWVzc2FnZXM6IFRoZVNlYW1EYXRhdGFibGVNZXNzYWdlcyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSByb3dJZGVudGl0eTogKCh4OiBhbnkpID0+IGFueSkgfCB1bmRlZmluZWQgfCBudWxsID0gKHg6IGFueSkgPT4geFxuXG4gIEBJbnB1dCgpIHJvd0NsYXNzOiBhbnkgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgc2VsZWN0Q2hlY2s6IGFueSB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZGlzcGxheUNoZWNrOiAoKHJvdzogYW55LCBjb2x1bW4/OiBhbnksIHZhbHVlPzogYW55KSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZ3JvdXBFeHBhbnNpb25EZWZhdWx0ID0gZmFsc2VcblxuICBASW5wdXQoKSB0cmFja0J5UHJvcDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzZWxlY3RBbGxSb3dzT25QYWdlID0gZmFsc2VcblxuICBASW5wdXQoKSB0cmVlRnJvbVJlbGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG4gIEBJbnB1dCgpIHRyZWVUb1JlbGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzdW1tYXJ5Um93ID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgc3VtbWFyeUhlaWdodCA9IDMwXG4gIEBJbnB1dCgpIHN1bW1hcnlQb3NpdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICd0b3AnXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHZpcnR1YWxpemF0aW9uID0gdHJ1ZVxuXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpXG4gIGdldCBoZWFkZXJIZWlnaHQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRlckhlaWdodFxuICB9XG4gIHNldCBoZWFkZXJIZWlnaHQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgICAgdGhpcy5faGVhZGVySGVpZ2h0ID0gdmFsdWVcbiAgICB9XG4gICAgZWxzZSBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2NvbmZpZz8uaGVhZGVySGVpZ2h0KSkge1xuICAgICAgdGhpcy5faGVhZGVySGVpZ2h0ID0gdGhpcy5fY29uZmlnPy5oZWFkZXJIZWlnaHRcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl9oZWFkZXJIZWlnaHQgPSB0aGlzLl9oZWFkZXJIZWlnaHREZWZhdWx0XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlYWRlckhlaWdodERlZmF1bHQ6IG51bWJlciA9IDUwXG4gIF9oZWFkZXJIZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKVxuICBnZXQgcm93SGVpZ2h0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9yb3dIZWlnaHRcbiAgfVxuICBzZXQgcm93SGVpZ2h0KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3Jvd0hlaWdodCA9IHZhbHVlXG4gICAgfVxuICAgIGVsc2UgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9jb25maWc/LnJvd0hlaWdodCkpIHtcbiAgICAgIHRoaXMuX3Jvd0hlaWdodCA9IHRoaXMuX2NvbmZpZz8ucm93SGVpZ2h0XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fcm93SGVpZ2h0ID0gdGhpcy5fcm93SGVpZ2h0RGVmYXVsdFxuICAgIH1cbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9yb3dIZWlnaHREZWZhdWx0OiBudW1iZXIgPSA1MFxuICBfcm93SGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKClcbiAgZ2V0IGZvb3RlckhlaWdodCgpOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZm9vdGVySGVpZ2h0XG4gIH1cbiAgc2V0IGZvb3RlckhlaWdodCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9mb290ZXJIZWlnaHQgPSB2YWx1ZVxuICAgIH1cbiAgICBlbHNlIGlmIChub3ROdWxsT3JVbmRlZmluZWQodGhpcy5fY29uZmlnPy5mb290ZXJIZWlnaHQpKSB7XG4gICAgICB0aGlzLl9mb290ZXJIZWlnaHQgPSB0aGlzLl9jb25maWc/LmZvb3RlckhlaWdodFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX2Zvb3RlckhlaWdodCA9IHRoaXMuX2Zvb3RlckhlaWdodERlZmF1bHRcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9vdGVySGVpZ2h0RGVmYXVsdDogbnVtYmVyID0gNDBcbiAgX2Zvb3RlckhlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzY3JvbGxiYXJWID0gdHJ1ZVxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2Nyb2xsYmFySCA9IHRydWVcblxuICBASW5wdXQoKVxuICBzZXQgZGF0YVNvdXJjZSh2YWx1ZTogRGF0YVNvdXJjZTxhbnk+IHwgYW55W10gfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0YXRhYmxlRGF0YVNvdXJjZSkge1xuICAgICAgdmFsdWUuc2V0RGF0YXRhYmxlQWNjZXNzb3IodGhpcylcbiAgICB9XG4gICAgdGhpcy5fZGF0YVNvdXJjZVN1YmplY3QubmV4dCh2YWx1ZSB8fCB1bmRlZmluZWQpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyBwb3NpdGlvbiBiZWhhdmlvciBmb3Igb3B0aW9uYWwgQWN0aW9uIE1lbnUgQnV0dG9uIGNvbHVtbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYGZyb3plblJpZ2h0YC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25JdGVtQ29sdW1uUG9zaXRpb24oKTogQWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX2FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiB9XG4gIHNldCBhY3Rpb25JdGVtQ29sdW1uUG9zaXRpb24odmFsdWU6IEFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpICYmIGlzQWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uKHZhbHVlKSkge1xuICAgICAgdGhpcy5fYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uID0gdmFsdWVcbiAgICB9XG4gICAgZWxzZSBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2NvbmZpZz8uYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uKSAmJiBpc0FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbih0aGlzLl9jb25maWc/LmFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbikpIHtcbiAgICAgIHRoaXMuX2FjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbiA9IHRoaXMuX2NvbmZpZz8uYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uID0gdGhpcy5fYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uRGVmYXVsdFxuICAgIH1cblxuICAgIHRoaXMuX2NvbHVtbnNNYW5hZ2VyLnNldEFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbih0aGlzLl9hY3Rpb25JdGVtQ29sdW1uUG9zaXRpb24pXG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uRGVmYXVsdDogQWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uID0gJ2Zyb3plblJpZ2h0J1xuICBfYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uOiBBY3Rpb25JdGVtQ29sdW1uUG9zaXRpb24gfCB1bmRlZmluZWRcblxuICBASW5wdXQoKSBnZXQgY29sdW1uRmlsdGVySWNvbigpOiBTZWFtSWNvbiB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5GaWx0ZXJJY29uXG4gIH1cbiAgc2V0IGNvbHVtbkZpbHRlckljb24odmFsdWU6IFNlYW1JY29uIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJJY29uID0gdmFsdWVcbiAgICB9XG4gICAgZWxzZSBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2NvbmZpZz8uY29sdW1uRmlsdGVySWNvbikpIHtcbiAgICAgIHRoaXMuX2NvbHVtbkZpbHRlckljb24gPSB0aGlzLl9jb25maWc/LmNvbHVtbkZpbHRlckljb25cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJJY29uID0gdGhpcy5fY29sdW1uRmlsdGVySWNvbkRlZmF1bHRcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uRmlsdGVySWNvbkRlZmF1bHQ6IFNlYW1JY29uID0gZmFGaWx0ZXJcbiAgX2NvbHVtbkZpbHRlckljb246IFNlYW1JY29uIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGdldCBjb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2QoKTogVGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZCB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2RcbiAgfVxuICBzZXQgY29sdW1uRmlsdGVyVXBkYXRlTWV0aG9kKHZhbHVlOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uRmlsdGVyVXBkYXRlTWV0aG9kIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2QgPSB2YWx1ZVxuICAgIH1cbiAgICBlbHNlIGlmIChub3ROdWxsT3JVbmRlZmluZWQodGhpcy5fY29uZmlnPy5jb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2QpKSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2QgPSB0aGlzLl9jb25maWc/LmNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZCA9IHRoaXMuX2NvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZERlZmF1bHRcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uRmlsdGVyVXBkYXRlTWV0aG9kRGVmYXVsdDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZCA9ICd2YWx1ZUNoYW5nZXMnXG4gIF9jb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2Q6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2QgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgZ2V0IGNvbHVtbkZpbHRlclVwZGF0ZURlYm91bmNlKCk6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5GaWx0ZXJVcGRhdGVEZWJvdW5jZVxuICB9XG4gIHNldCBjb2x1bW5GaWx0ZXJVcGRhdGVEZWJvdW5jZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJVcGRhdGVEZWJvdW5jZSA9IHZhbHVlXG4gICAgfVxuICAgIGVsc2UgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9jb25maWc/LmNvbHVtbkZpbHRlclVwZGF0ZURlYm91bmNlKSkge1xuICAgICAgdGhpcy5fY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2UgPSB0aGlzLl9jb25maWc/LmNvbHVtbkZpbHRlclVwZGF0ZURlYm91bmNlXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2UgPSB0aGlzLl9jb2x1bW5GaWx0ZXJVcGRhdGVEZWJvdW5jZURlZmF1bHRcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2VEZWZhdWx0OiBudW1iZXIgPSA0MDBcbiAgX2NvbHVtbkZpbHRlclVwZGF0ZURlYm91bmNlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSByZWFkb25seSBzY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgYWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBPdXRwdXQoKSByZWFkb25seSBzb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0RXZlbnQ+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRoZVNlYW1QYWdlSW5mbz4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVvcmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRhYmxlQ29udGV4dG1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6IENvbnRleHRtZW51VHlwZSwgY29udGVudDogYW55IH0+KGZhbHNlKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdHJlZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGFjdGlvblJlZnJlc2hSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWRkZW5Db2x1bW5zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50KVxuICBzZXQgY29sdW1uQ29tcG9uZW50cyh2YWx1ZTogUXVlcnlMaXN0PERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jb2x1bW5zTWFuYWdlci5zZXRUZW1wbGF0ZUNvbHVtbnModHJhbnNsYXRlVGVtcGxhdGVDb2x1bW5zKHZhbHVlPy50b0FycmF5KCkgPz8gW10pKVxuICB9XG5cbiAgQENvbnRlbnRDaGlsZChEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBhY3Rpb25NZW51PzogRGF0YXRhYmxlQWN0aW9uTWVudUNvbXBvbmVudFxuICBAQ29udGVudENoaWxkKERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUpXG4gIGdldCByb3dBY3Rpb25JdGVtKCk6IERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fcm93QWN0aW9uSXRlbSB9XG4gIHNldCByb3dBY3Rpb25JdGVtKHZhbHVlOiBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcm93QWN0aW9uSXRlbSA9IHZhbHVlXG4gICAgdGhpcy5fY29sdW1uc01hbmFnZXIuc2V0Um93QWN0aW9uSXRlbShub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQpXG4gIH1cbiAgcHJpdmF0ZSBfcm93QWN0aW9uSXRlbTogRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSB8IHVuZGVmaW5lZFxuXG4gIEBDb250ZW50Q2hpbGQoVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgcm93RGV0YWlsPzogVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZVxuICBAQ29udGVudENoaWxkKFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGZvb3Rlcj86IFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmVcblxuICBAQ29udGVudENoaWxkKERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQpXG4gIGdldCBtZW51QmFyQ29tcG9uZW50KCk6IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fbWVudUJhckNvbXBvbmVudCB9XG4gIHNldCBtZW51QmFyQ29tcG9uZW50KHZhbHVlOiBEYXRhdGFibGVNZW51QmFyQ29tcG9uZW50IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbWVudUJhckNvbXBvbmVudCA9IHZhbHVlXG5cbiAgICBpZiAodGhpcy5fbWVudUJhclN1YikgeyB0aGlzLl9tZW51QmFyU3ViLnVuc3Vic2NyaWJlKCkgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zZXRNZW51QmFyRmlsdGVycyh2YWx1ZS5maWx0ZXJzKCkpXG5cbiAgICAgIHRoaXMuX21lbnVCYXJTdWIgPSB0aGlzLl9tZW51QmFyQ29tcG9uZW50Py5maWx0ZXJzQ2hhbmdlZFxuICAgICAgICAuc3Vic2NyaWJlKHYgPT4geyB0aGlzLl9zZXRNZW51QmFyRmlsdGVycyh2YWx1ZS5maWx0ZXJzKCkpIH0pXG4gICAgfVxuICB9XG4gIHByaXZhdGUgX21lbnVCYXJDb21wb25lbnQ6IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSBfbWVudUJhclN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXG5cbiAgQENvbnRlbnRDaGlsZHJlbihUaGVTZWFtRGF0YXRhYmxlQ29sdW1uRmlsdGVyRGlyZWN0aXZlKVxuICBzZXQgY29sdW1uRmlsdGVyVGVtcGxhdGVzKHZhbHVlOiBRdWVyeUxpc3Q8VGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5zZXRGaWx0ZXJUZW1wbGF0ZXModmFsdWU/LnRvQXJyYXkoKSA/PyBbXSlcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoTmd4RGF0YXRhYmxlQ29tcG9uZW50KSBuZ3hEYXRhdGFibGU/OiBOZ3hEYXRhdGFibGVDb21wb25lbnRcbiAgQFZpZXdDaGlsZChOZ3hEYXRhdGFibGVDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBuZ3hEYXRhdGFibGVFbGVtZW50PzogRWxlbWVudFJlZlxuICBAVmlld0NoaWxkKERhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSkgbmd4Um93RGV0YWlsPzogRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlXG5cbiAgQFZpZXdDaGlsZCgnYWN0aW9uTWVudUNlbGxUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBnZXQgYWN0aW9uTWVudUNlbGxUcGwoKTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9hY3Rpb25NZW51Q2VsbFRwbCB9XG4gIHNldCBhY3Rpb25NZW51Q2VsbFRwbCh2YWx1ZTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2FjdGlvbk1lbnVDZWxsVHBsID0gdmFsdWVcbiAgICB0aGlzLl9jb2x1bW5zTWFuYWdlci5zZXRBY3Rpb25NZW51Q2VsbFRwbChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQpXG4gIH1cbiAgcHJpdmF0ZSBfYWN0aW9uTWVudUNlbGxUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZT4gfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKCd0cmVlVG9nZ2xlVHBsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgZ2V0IHRyZWVUb2dnbGVUcGwoKTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGU+IHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX3RyZWVUb2dnbGVUcGwgfVxuICBzZXQgdHJlZVRvZ2dsZVRwbCh2YWx1ZTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGU+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fdHJlZVRvZ2dsZVRwbCA9IHZhbHVlXG4gICAgdGhpcy5fY29sdW1uc01hbmFnZXIuc2V0VHJlZVRvZ2dsZVRwbChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQpXG4gIH1cbiAgcHJpdmF0ZSBfdHJlZVRvZ2dsZVRwbDogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGU+IHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZCgnaGVhZGVyVHBsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgZ2V0IGhlYWRlclRwbCgpOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5IZWFkZXJEaXJlY3RpdmU+IHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX2hlYWRlclRwbCB9XG4gIHNldCBoZWFkZXJUcGwodmFsdWU6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9oZWFkZXJUcGwgPSB2YWx1ZVxuICAgIHRoaXMuX2NvbHVtbnNNYW5hZ2VyLnNldEhlYWRlclRwbChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQpXG4gIH1cbiAgcHJpdmF0ZSBfaGVhZGVyVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5IZWFkZXJEaXJlY3RpdmU+IHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZCgnYmxhbmtIZWFkZXJUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBnZXQgYmxhbmtIZWFkZXJUcGwoKTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9ibGFua0hlYWRlclRwbCB9XG4gIHNldCBibGFua0hlYWRlclRwbCh2YWx1ZTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2JsYW5rSGVhZGVyVHBsID0gdmFsdWVcbiAgICB0aGlzLl9jb2x1bW5zTWFuYWdlci5zZXRCbGFua0hlYWRlclRwbChub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQpXG4gIH1cbiAgcHJpdmF0ZSBfYmxhbmtIZWFkZXJUcGw6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKCdjZWxsVHlwZVNlbGVjdG9yVHBsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgZ2V0IGNlbGxUeXBlU2VsZWN0b3JUcGwoKTogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9jZWxsVHlwZVNlbGVjdG9yVHBsIH1cbiAgc2V0IGNlbGxUeXBlU2VsZWN0b3JUcGwodmFsdWU6IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jZWxsVHlwZVNlbGVjdG9yVHBsID0gdmFsdWVcbiAgICB0aGlzLl9jb2x1bW5zTWFuYWdlci5zZXRDZWxsVHlwZVNlbGVjdG9yVHBsKG5vdE51bGxPclVuZGVmaW5lZCh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZClcbiAgfVxuICBwcml2YXRlIF9jZWxsVHlwZVNlbGVjdG9yVHBsOiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+IHwgdW5kZWZpbmVkXG5cbiAgcHVibGljIGNvbHVtbkNvbXBvbmVudHMkPzogT2JzZXJ2YWJsZTxEYXRhdGFibGVDb2x1bW5Db21wb25lbnRbXT5cbiAgcHJpdmF0ZSBfY29sRGlmZmVyc0lucDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9ID0ge31cbiAgcHJpdmF0ZSBfY29sRGlmZmVyc1RwbDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9ID0ge31cblxuICBwdWJsaWMgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPlxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheUNvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICB2aWV3Q2hhbmdlOiBPYnNlcnZhYmxlPExpc3RSYW5nZT5cblxuICBwcml2YXRlIF9yb3dEZXRhaWxUb2dnbGVTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFlcblxuICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBET00tZGVwZW5kZW50IGNvZGUgd2hlbiBhIHdheSB0byBwcm9wZXJ0eSBsaXN0ZW4gZm9yXG4gIC8vIGRibGNsaWNrIG9uIHRoZSBoZWFkZXIgcmVhc2l6ZSBoYW5kbGVzLlxuICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycsIFsgJyRldmVudCcgXSlcbiAgX2RibENsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpc0hhbmRsZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucygncmVzaXplLWhhbmRsZScpXG4gICAgaWYgKGlzSGFuZGxlKSB7XG4gICAgICBjb25zdCBpc1Jlc2l6ZWFibGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3Jlc2l6ZWFibGUnKVxuICAgICAgaWYgKGlzUmVzaXplYWJsZSkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICBjb25zdCBpZCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnRcbiAgICAgICAgICA/LnF1ZXJ5U2VsZWN0b3IoJy5kYXRhdGFibGUtY29sdW1uLWhlYWRlci1zZXBhcmF0b3InKVxuICAgICAgICAgID8uZ2V0QXR0cmlidXRlKCdkYXRhLWNvbHVtbi1pZCcpXG4gICAgICAgIHRoaXMuX2NvbHVtbnNNYW5hZ2VyLmNvbHVtbnMkLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoY29sdW1ucyA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKGMgPT4gYy4kJGlkID09PSBpZClcbiAgICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5Qcm9wID0gZ2V0Q29sdW1uUHJvcChjb2x1bW4pXG4gICAgICAgICAgICBpZiAoY29sdW1uUHJvcCkge1xuICAgICAgICAgICAgICBjb25zdCBhbHRlcmF0aW9uID0gbmV3IFdpZHRoQ29sdW1uc0FsdGVyYXRpb24oeyBjb2x1bW5Qcm9wLCBjYW5BdXRvUmVzaXplOiB0cnVlIH0sIGZhbHNlKVxuICAgICAgICAgICAgICB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmFkZChbIGFsdGVyYXRpb24gXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJlZmVyZW5jZXM6IERhdGF0YWJsZVByZWZlcmVuY2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zTWFuYWdlcjogQ29sdW1uc01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXI6IENvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbnNGaWx0ZXJzOiBDb2x1bW5zRmlsdGVyc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRV9DT05GSUcpIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZz86IFRoZVNlYW1EYXRhdGFibGVDb25maWdcbiAgKSB7XG4gICAgdGhpcy5fcHJlZmVyZW5jZXNLZXkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoa2V5ID0+IHtcbiAgICAgICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQoa2V5KSB8fCBrZXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmcm9tKHdhaXRPbkNvbmRpdGlvbkFzeW5jKCgpID0+IHRoaXMuX3ByZWZlcmVuY2VzLmlzTG9hZGVkKGtleSkpKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2V0QWx0ZXJhdGlvbnMoa2V5LCB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmdldCgpKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSlcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgY29uc3QgYXBwbHlQcmVmcyA9IChjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pID0+IHRoaXMuX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXIuY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmFwcGx5KGNvbHMsIHRoaXMpXG4gICAgICAgIHJldHVybiBjb2xzXG4gICAgICB9KSxcbiAgICApXG5cbiAgICB0aGlzLl9wcmVmZXJlbmNlc0tleS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChwcmVmc0tleSA9PiB7XG4gICAgICAgIGlmICghbm90TnVsbE9yVW5kZWZpbmVkKHByZWZzS2V5KSkge1xuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZWZlcmVuY2VzLnByZWZlcmVuY2VzKHByZWZzS2V5KS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChhc3luYyBwcmVmZXJlbmNlcyA9PiB7XG4gICAgICAgICAgICBhd2FpdCB3YWl0T25Db25kaXRpb25Bc3luYygoKSA9PiB0aGlzLl9wcmVmZXJlbmNlcy5pc0xvYWRlZChwcmVmc0tleSkpXG4gICAgICAgICAgICByZXR1cm4gcHJlZmVyZW5jZXNcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIG1hcChwcmVmZXJlbmNlcyA9PiB7XG4gICAgICAgICAgICBsZXQgYWx0ZXJhdGlvbnM6IENvbHVtbnNBbHRlcmF0aW9uW10gPSBbXVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYWx0ZXJhdGlvbnMgPSBtYXBDb2x1bW5zQWx0ZXJhdGlvbnNTdGF0ZXMocHJlZmVyZW5jZXMuYWx0ZXJhdGlvbnMpXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdVbmFibGUgdG8gbWFwIGNvbHVtbnMgYWx0ZXJhdGlvbnMgc3RhdGVzJylcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXIuYWRkKGFsdGVyYXRpb25zKVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5jb2x1bW5zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbHVtbnNNYW5hZ2VyLmNvbHVtbnMkLCB0aGlzLl9jb2x1bW5zRmlsdGVycy5jb2x1bW5BY3RpdmVGaWx0ZXJQcm9wcyRdKS5waXBlKFxuICAgICAgbWFwKChbIGNvbHVtbnMsIGNvbHVtbkFjdGl2ZUZpbHRlclByb3BzIF0pID0+IGNvbHVtbnMubWFwKGNvbCA9PiAoe1xuICAgICAgICAuLi5jb2wsXG4gICAgICAgIGZpbHRlckFjdGl2ZTogY29sdW1uQWN0aXZlRmlsdGVyUHJvcHMuaW5jbHVkZXModGhpcy5fY29sdW1uc0ZpbHRlcnMuZ2V0Q29sdW1uRmlsdGVyUHJvcChjb2wpIHx8ICcnKVxuICAgICAgfSkpKVxuICAgIClcblxuICAgIHRoaXMuZGlzcGxheUNvbHVtbnMkID0gdGhpcy5jb2x1bW5zJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGNvbHMgPT4gYXBwbHlQcmVmcyhjb2xzKSksXG4gICAgICBtYXAoY29scyA9PiBjb2xzLmZpbHRlcihjID0+ICFjLmhpZGRlbikpLFxuICAgICAgdGFwKHYgPT4gcmVtb3ZlVW51c2VkRGlmZnModiwgdGhpcy5fY29sRGlmZmVyc0lucCwgdGhpcy5fY29sRGlmZmVyc1RwbCkpLFxuICAgIClcblxuICAgIHRoaXMuZmlsdGVycyQgPSBjb21iaW5lTGF0ZXN0KFsgdGhpcy5fbWVudUJhcnNGaWx0ZXJzU3ViamVjdC5hc09ic2VydmFibGUoKSwgdGhpcy5fY29sdW1uc0ZpbHRlcnMuY29sdW1uc0ZpbHRlcnMkIF0pLnBpcGUoXG4gICAgICBtYXAoKFsgbWVudUZpbHRlcnMsIGNvbHVtbnNGaWx0ZXJzIF0pID0+IFsgLi4ubWVudUZpbHRlcnMsIC4uLmNvbHVtbnNGaWx0ZXJzIF0pXG4gICAgKVxuXG4gICAgdGhpcy5maWx0ZXJTdGF0ZXMgPSB0aGlzLmZpbHRlcnMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZmlsdGVycyA9PiBjb21wb3NlRGF0YUZpbHRlclN0YXRlcyhmaWx0ZXJzKSlcbiAgICApXG5cbiAgICB0aGlzLnJvd3MkID0gdGhpcy5fZGF0YVNvdXJjZVN1YmplY3QucGlwZShcbiAgICAgIHN3aXRjaE1hcChkYXRhU291cmNlID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2RhdGFTb3VyY2UnLCBkYXRhU291cmNlKVxuICAgICAgICBsZXQgZGF0YVN0cmVhbTogT2JzZXJ2YWJsZTxhbnlbXT5cblxuICAgICAgICBpZiAoaXNEYXRhU291cmNlKGRhdGFTb3VyY2UpKSB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ35kYXRhc291cmNlJylcbiAgICAgICAgICBkYXRhU3RyZWFtID0gZGF0YVNvdXJjZS5jb25uZWN0KHRoaXMpIGFzIGFueVxuICAgICAgICB9IGVsc2UgaWYgKGlzT2JzZXJ2YWJsZShkYXRhU291cmNlKSkge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd+b2JzZXJ2YWJsZScpXG4gICAgICAgICAgZGF0YVN0cmVhbSA9IGRhdGFTb3VyY2UgYXMgYW55XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkYXRhU291cmNlKSkge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd+YXJyYXknKVxuICAgICAgICAgIGRhdGFTdHJlYW0gPSBvZihkYXRhU291cmNlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd+cm93cyBmYWxsYmFjaycpXG4gICAgICAgICAgZGF0YVN0cmVhbSA9IHRoaXMuX3Jvd3MuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC8vIC5waXBlKHRhcCh2ID0+IGNvbnNvbGUubG9nKCdyb3dzficsIHYpKSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5leHRlcm5hbEZpbHRlcmluZykge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdub3QgdXNpbmcgZXh0ZXJuYWxGaWx0ZXJpbmcnKVxuICAgICAgICAgIGRhdGFTdHJlYW0gPSBkYXRhU3RyZWFtLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAocm93cyA9PiB0aGlzLmZpbHRlcnMkLnBpcGUoXG4gICAgICAgICAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdmaWx0ZXJzJywgdikpLFxuICAgICAgICAgICAgICBjb25jYXRNYXAoZmlsdGVycyA9PiBvZihyb3dzKS5waXBlKGNvbXBvc2VEYXRhRmlsdGVycyhmaWx0ZXJzKSkpLFxuICAgICAgICAgICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygnY29tcG9zZWQgZmlsdGVycycsIHYpKSxcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgLy8gZGF0YVN0cmVhbSA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnBpcGUoXG4gICAgICAgICAgLy8gICB0YXAodiA9PiBjb25zb2xlLmxvZygnZmlsdGVycycsIHYpKSxcbiAgICAgICAgICAvLyAgIGNvbmNhdE1hcChmaWx0ZXJzID0+IGRhdGFTdHJlYW0ucGlwZShjb21wb3NlRGF0YUZpbHRlcnMoZmlsdGVycykpKSxcbiAgICAgICAgICAvLyAgIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdjb21wb3NlZCBmaWx0ZXJzJywgdikpLFxuICAgICAgICAgIC8vIClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRhU3RyZWFtLnBpcGUoXG4gICAgICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ3N0cmVhbScsIHYpKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG5cbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgdmlld0NoYW5nZSBmb3IgQ29sbGVjdGlvblZpZXdlci5cbiAgICB0aGlzLnZpZXdDaGFuZ2UgPSB0aGlzLnBhZ2UucGlwZShtYXAocCA9PiAoeyBzdGFydDogMCwgZW5kOiBwLmNvdW50IH0pKSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJvd0RldGFpbCkge1xuICAgICAgdGhpcy5fcm93RGV0YWlsVG9nZ2xlU3Vic2NyaXB0aW9uID0gdGhpcy5yb3dEZXRhaWwuX3RvZ2dsZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5uZ3hSb3dEZXRhaWwpIHtcbiAgICAgICAgICB0aGlzLm5neFJvd0RldGFpbC50b2dnbGUuZW1pdChldmVudClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICB0aGlzLl9zZXREYXRhdGFibGVDb25maWdPckRlZmF1bHQoKVxuICB9XG5cbiAgLyoqIFNldHMgbWlzc2luZyBpbnB1dHMgZnJvbSBjb25maWcgKi9cbiAgcHJpdmF0ZSBfc2V0RGF0YXRhYmxlQ29uZmlnT3JEZWZhdWx0KCkge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLm1lc3NhZ2VzKSkge1xuICAgICAgdGhpcy5tZXNzYWdlcyA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5oZWFkZXJIZWlnaHQpKSB7XG4gICAgICB0aGlzLmhlYWRlckhlaWdodCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5yb3dIZWlnaHQpKSB7XG4gICAgICB0aGlzLnJvd0hlaWdodCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5mb290ZXJIZWlnaHQpKSB7XG4gICAgICB0aGlzLmZvb3RlckhlaWdodCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5jc3NDbGFzc2VzKSkge1xuICAgICAgdGhpcy5jc3NDbGFzc2VzID0gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvbHVtbkZpbHRlckljb24pKSB7XG4gICAgICB0aGlzLmNvbHVtbkZpbHRlckljb24gPSB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuY29sdW1uRmlsdGVyVXBkYXRlTWV0aG9kKSkge1xuICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2QgPSB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2UpKSB7XG4gICAgICB0aGlzLmNvbHVtbkZpbHRlclVwZGF0ZURlYm91bmNlID0gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmFjdGlvbkl0ZW1Db2x1bW5Qb3NpdGlvbikpIHtcbiAgICAgIHRoaXMuYWN0aW9uSXRlbUNvbHVtblBvc2l0aW9uID0gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fcm93RGV0YWlsVG9nZ2xlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHByaXZhdGUgX3NldE1lbnVCYXJGaWx0ZXJzKGZpbHRlcnM6IERhdGFGaWx0ZXJbXSkge1xuICAgIHRoaXMuX21lbnVCYXJzRmlsdGVyc1N1YmplY3QubmV4dChmaWx0ZXJzIHx8IFtdKVxuICB9XG5cbiAgcHVibGljIGdldENvbHVtbkNvbXBvbmVudChwcm9wTmFtZTogc3RyaW5nKTogRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkNvbXBvbmVudHMgfHwgdGhpcy5jb2x1bW5Db21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB0cGwgPSB0aGlzLmNvbHVtbkNvbXBvbmVudHMuZmluZCh0ID0+IHQucHJvcCA9PT0gcHJvcE5hbWUpXG4gICAgaWYgKHRwbCkge1xuICAgICAgcmV0dXJuIHRwbFxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBfY29sdW1uRGF0YShjb2w6IGFueSk6IHsgY29sOiBhbnksIGNvbXA6IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB8IG51bGwgfSB7XG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ2V0Q29sdW1uQ29tcG9uZW50KGNvbC5wcm9wKVxuICAgIHJldHVybiB7IGNvbCwgY29tcCB9XG4gIH1cblxuICBfZ2V0Um93RXhwYW5kZWQocm93OiBhbnkpIHtcbiAgICBpZiAodGhpcy5uZ3hEYXRhdGFibGUgJiYgdGhpcy5uZ3hEYXRhdGFibGUuYm9keUNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMubmd4RGF0YXRhYmxlLmJvZHlDb21wb25lbnQuZ2V0Um93RXhwYW5kZWQocm93KVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5Rm5Db2x1bW4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIGl0ZW0ucHJvcFxuICB9XG5cbiAgcHVibGljIG9uRGF0YXRhYmxlUmVzaXplKGV2ZW50OiBJRWxlbWVudFJlc2l6ZWRFdmVudCkge1xuICAgIGlmICh0aGlzLm5neERhdGF0YWJsZSAmJiB0aGlzLm5neERhdGF0YWJsZUVsZW1lbnQgJiYgdGhpcy5uZ3hEYXRhdGFibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIC8vIFRPRE86IENvbnNpZGVyIGludGVncmF0aW5nIHRoaXMgaW50byB0aGUgbmd4LWRhdGF0YWJsZSBsaWJyYXJ5IHRvIGF2b2lkXG4gICAgICAvLyBtdWx0aXBsZSByZXNpemUgY2FsbHMgd2hlbiB0aGUgdGFibGUgcmVzaXplcyBpdHNlbGYuXG4gICAgICB0aGlzLm5neERhdGF0YWJsZS5yZWNhbGN1bGF0ZSgpXG4gICAgfVxuICB9XG5cbiAgX29uUmVzaXplKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlc2l6ZS5lbWl0KGV2ZW50KVxuXG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQoZXZlbnQuY29sdW1uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgY29sdW1uUHJvcCA9IGdldENvbHVtblByb3AoZXZlbnQuY29sdW1uKVxuICAgIGlmIChjb2x1bW5Qcm9wKSB7XG4gICAgICBsZXQgYWRkQWx0ZXJhdGlvbiA9IGZhbHNlXG5cbiAgICAgIGlmICghdGhpcy5fcmVzaXppbmdbY29sdW1uUHJvcF0pIHtcbiAgICAgICAgdGhpcy5fcmVzaXppbmdbY29sdW1uUHJvcF0gPSB0cnVlXG4gICAgICAgIGFkZEFsdGVyYXRpb24gPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5pc0RvbmUpIHtcbiAgICAgICAgdGhpcy5fcmVzaXppbmdbY29sdW1uUHJvcF0gPSBmYWxzZVxuICAgICAgICBhZGRBbHRlcmF0aW9uID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoYWRkQWx0ZXJhdGlvbikge1xuICAgICAgICBjb25zdCBhbHRlcmF0aW9uID0gbmV3IFdpZHRoQ29sdW1uc0FsdGVyYXRpb24oe1xuICAgICAgICAgIGNvbHVtblByb3AsXG4gICAgICAgICAgd2lkdGg6IGV2ZW50LmNvbHVtbi53aWR0aCxcbiAgICAgICAgICBjYW5BdXRvUmVzaXplOiBmYWxzZVxuICAgICAgICB9LCB0cnVlKVxuICAgICAgICB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmFkZChbIGFsdGVyYXRpb24gXSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfb25SZW9yZGVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlb3JkZXIuZW1pdChldmVudClcblxuICAgIGNvbnN0IGNvbHVtblByb3AgPSBnZXRDb2x1bW5Qcm9wKGV2ZW50LmNvbHVtbilcbiAgICBpZiAoY29sdW1uUHJvcCkge1xuICAgICAgY29uc3QgY3VycmVudE9yZGVyQWx0ZXJhdGlvbiA9IHRoaXMuX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXIuZ2V0KCkuZmluZCh4ID0+IHgudHlwZSA9PT0gJ29yZGVyJylcbiAgICAgIGNvbnN0IHN0YXRlOiBPcmRlckNvbHVtbnNBbHRlcmF0aW9uU3RhdGUgPSB7XG4gICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICAuLi4oY3VycmVudE9yZGVyQWx0ZXJhdGlvbj8uc3RhdGUuY29sdW1ucyB8fCBbXSkuZmlsdGVyKCh4OiBhbnkpID0+IHguY29sdW1uUHJvcCAhPT0gY29sdW1uUHJvcCksXG4gICAgICAgICAgeyBjb2x1bW5Qcm9wLCBpbmRleDogZXZlbnQubmV3VmFsdWUgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgICBjb25zdCBhbHRlcmF0aW9uID0gbmV3IE9yZGVyQ29sdW1uc0FsdGVyYXRpb24oc3RhdGUsIHRydWUpXG4gICAgICB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmFkZChbIGFsdGVyYXRpb24gXSlcbiAgICB9XG4gIH1cblxuICBfb25Tb3J0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnQuZW1pdChldmVudClcblxuICAgIGNvbnN0IGFsdGVyYXRpb24gPSBuZXcgU29ydENvbHVtbnNBbHRlcmF0aW9uKHsgc29ydHM6IGV2ZW50LnNvcnRzIH0sIHRydWUpXG4gICAgdGhpcy5fY29sdW1uc0FsdGVyYXRpb25zTWFuYWdlci5hZGQoWyBhbHRlcmF0aW9uIF0pXG4gIH1cblxuICBfb25UcmVlQWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbmRleCA9IGV2ZW50LnJvd0luZGV4XG4gICAgY29uc3Qgcm93ID0gZXZlbnQucm93XG4gICAgaWYgKHJvdy50cmVlU3RhdHVzID09PSAnY29sbGFwc2VkJykge1xuICAgICAgcm93LnRyZWVTdGF0dXMgPSAnZXhwYW5kZWQnXG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy50cmVlU3RhdHVzID0gJ2NvbGxhcHNlZCdcbiAgICB9XG4gICAgdGhpcy5yb3dzID0gWyAuLi50aGlzLnJvd3MgXVxuICB9XG5cbiAgcHVibGljIHRyaWdnZXJBY3Rpb25SZWZyZXNoUmVxdWVzdCgpIHtcbiAgICB0aGlzLmFjdGlvblJlZnJlc2hSZXF1ZXN0LmVtaXQodW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBhZ2UgaW5mbyBmcm9tIHRoZSB3cmFwcGVkIE5neERhdGF0YWJsZSBpbnN0YW5jZSBvciBkZWZhdWx0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZUluZm8oKTogVGhlU2VhbVBhZ2VJbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0OiB0aGlzLm5neERhdGF0YWJsZT8ub2Zmc2V0ID8/IDAsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5uZ3hEYXRhdGFibGU/LnBhZ2VTaXplID8/IDAsXG4gICAgICBsaW1pdDogdGhpcy5uZ3hEYXRhdGFibGU/LmxpbWl0LFxuICAgICAgY291bnQ6IHRoaXMubmd4RGF0YXRhYmxlPy5jb3VudCA/PyAwXG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRhdGFibGUtd3JhcHBlclwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJzZWFtLWRhdGF0YWJsZS1tZW51LWJhclwiPjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImRhdGF0YWJsZS10YWJsZS13cmFwcGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxuZ3gtZGF0YXRhYmxlXG4gICAgICAgIFtjb2x1bW5Nb2RlXT1cIiRhbnkoY29sdW1uTW9kZSlcIlxuICAgICAgICBbc2Nyb2xsYmFyVl09XCJzY3JvbGxiYXJWXCJcbiAgICAgICAgW3Njcm9sbGJhckhdPVwic2Nyb2xsYmFySFwiXG4gICAgICAgIFt2aXJ0dWFsaXphdGlvbl09XCJ2aXJ0dWFsaXphdGlvblwiXG4gICAgICAgIFt0YXJnZXRNYXJrZXJUZW1wbGF0ZV09XCJ0YXJnZXRNYXJrZXJUZW1wbGF0ZVwiXG4gICAgICAgIFtncm91cFJvd3NCeV09XCIkYW55KGdyb3VwUm93c0J5KVwiXG4gICAgICAgIFtncm91cGVkUm93c109XCIkYW55KGdyb3VwZWRSb3dzKVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCIkYW55KHNlbGVjdGVkKVwiXG4gICAgICAgIFtleHRlcm5hbFBhZ2luZ109XCJleHRlcm5hbFBhZ2luZ1wiXG4gICAgICAgIFtleHRlcm5hbFNvcnRpbmddPVwiZXh0ZXJuYWxTb3J0aW5nXCJcbiAgICAgICAgW2xpbWl0XT1cIiRhbnkobGltaXQpXCJcbiAgICAgICAgW2NvdW50XT1cIiRhbnkoY291bnQpXCJcbiAgICAgICAgW29mZnNldF09XCIkYW55KG9mZnNldClcIlxuICAgICAgICBbbG9hZGluZ0luZGljYXRvcl09XCJsb2FkaW5nSW5kaWNhdG9yXCJcbiAgICAgICAgW3NlbGVjdGlvblR5cGVdPVwiJGFueShzZWxlY3Rpb25UeXBlKVwiXG4gICAgICAgIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gICAgICAgIFtzd2FwQ29sdW1uc109XCJzd2FwQ29sdW1uc1wiXG4gICAgICAgIFtzb3J0VHlwZV09XCIkYW55KHNvcnRUeXBlKVwiXG4gICAgICAgIFtzb3J0c109XCIkYW55KF9zb3J0cylcIlxuICAgICAgICBbY3NzQ2xhc3Nlc109XCJjc3NDbGFzc2VzXCJcbiAgICAgICAgW21lc3NhZ2VzXT1cIm1lc3NhZ2VzXCJcbiAgICAgICAgW3Jvd0lkZW50aXR5XT1cIiRhbnkocm93SWRlbnRpdHkpXCJcbiAgICAgICAgW3Jvd0NsYXNzXT1cInJvd0NsYXNzXCJcbiAgICAgICAgW3NlbGVjdENoZWNrXT1cInNlbGVjdENoZWNrXCJcbiAgICAgICAgW2Rpc3BsYXlDaGVja109XCIkYW55KGRpc3BsYXlDaGVjaylcIlxuICAgICAgICBbZ3JvdXBFeHBhbnNpb25EZWZhdWx0XT1cImdyb3VwRXhwYW5zaW9uRGVmYXVsdFwiXG4gICAgICAgIFt0cmFja0J5UHJvcF09XCIkYW55KHRyYWNrQnlQcm9wKVwiXG4gICAgICAgIFtzZWxlY3RBbGxSb3dzT25QYWdlXT1cInNlbGVjdEFsbFJvd3NPblBhZ2VcIlxuICAgICAgICBbdHJlZUZyb21SZWxhdGlvbl09XCIkYW55KHRyZWVGcm9tUmVsYXRpb24pXCJcbiAgICAgICAgW3RyZWVUb1JlbGF0aW9uXT1cIiRhbnkodHJlZVRvUmVsYXRpb24pXCJcbiAgICAgICAgW3N1bW1hcnlSb3ddPVwic3VtbWFyeVJvd1wiXG4gICAgICAgIFtzdW1tYXJ5SGVpZ2h0XT1cIiRhbnkoc3VtbWFyeUhlaWdodClcIlxuICAgICAgICBbc3VtbWFyeVBvc2l0aW9uXT1cIiRhbnkoc3VtbWFyeVBvc2l0aW9uKVwiXG4gICAgICAgIFtyb3dzXT1cInJvd3MkIHwgYXN5bmNcIlxuICAgICAgICBbY29sdW1uc109XCIkYW55KGRpc3BsYXlDb2x1bW5zJCB8IGFzeW5jKVwiXG4gICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiJGFueShoZWFkZXJIZWlnaHQpXCJcbiAgICAgICAgW3Jvd0hlaWdodF09XCIkYW55KHJvd0hlaWdodClcIlxuICAgICAgICBbZm9vdGVySGVpZ2h0XT1cIiRhbnkoZm9vdGVySGVpZ2h0KVwiXG4gICAgICAgIChzY3JvbGwpPVwic2Nyb2xsLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChhY3RpdmF0ZSk9XCJhY3RpdmF0ZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoc2VsZWN0KT1cInNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgICAgICAoc29ydCk9XCJfb25Tb3J0KCRldmVudClcIlxuICAgICAgICAocGFnZSk9XCJwYWdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChyZW9yZGVyKT1cIl9vblJlb3JkZXIoJGV2ZW50KVwiXG4gICAgICAgIChyZXNpemUpPVwiX29uUmVzaXplKCRldmVudClcIlxuICAgICAgICAodGFibGVDb250ZXh0bWVudSk9XCJ0YWJsZUNvbnRleHRtZW51LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh0cmVlQWN0aW9uKT1cInRyZWVBY3Rpb24uZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKHNlYW1FbGVtUmVzaXplZCk9XCJvbkRhdGF0YWJsZVJlc2l6ZSgkZXZlbnQpXCJcbiAgICAgICAgKHRyZWVBY3Rpb24pPVwiX29uVHJlZUFjdGlvbigkZXZlbnQpXCI+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtZ3JvdXAtaGVhZGVyIFtyb3dIZWlnaHRdPVwiNTBcIiAjbXlHcm91cEhlYWRlciAqbmdJZj1cImdyb3VwUm93c0J5XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1ncm91cD1cImdyb3VwXCIgbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIiBuZ3gtZGF0YXRhYmxlLWdyb3VwLWhlYWRlci10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCBiZy1saWdodCBwLTFcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm9yZGVyLWJvdHRvbV09XCIhZXhwYW5kZWRcIlxuICAgICAgICAgICAgICBbY2xhc3MuZGF0YXRhYmxlLWljb24tcmlnaHRdPVwiIWV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRhdGF0YWJsZS1pY29uLWRvd25dPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgICB0aXRsZT1cIkV4cGFuZC9Db2xsYXBzZSBHcm91cFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJuZ3hEYXRhdGFibGU/Lmdyb3VwSGVhZGVyPy50b2dnbGVFeHBhbmRHcm91cChncm91cClcIj5cbiAgICAgICAgICAgICAgPGI+QWdlOiB7eyBncm91cC5hZ2UgfX08L2I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtZ3JvdXAtaGVhZGVyPlxuXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLXJvdy1kZXRhaWwgKm5nSWY9XCJyb3dEZXRhaWwgJiYgcm93RGV0YWlsLnRlbXBsYXRlXCJcbiAgICAgICAgICBbcm93SGVpZ2h0XT1cInJvd0RldGFpbC5yb3dIZWlnaHQgfHwgMFwiXG4gICAgICAgICAgW3RlbXBsYXRlXT1cIiRhbnkocm93RGV0YWlsLnRlbXBsYXRlKVwiXG4gICAgICAgICAgKHRvZ2dsZSk9XCJyb3dEZXRhaWwudG9nZ2xlLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtcm93LWRldGFpbD5cblxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1mb290ZXIgKm5nSWY9XCJmb290ZXIgJiYgZm9vdGVyLnRlbXBsYXRlXCJcbiAgICAgICAgICBbdGVtcGxhdGVdPVwiJGFueShmb290ZXIudGVtcGxhdGUpXCI+XG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1mb290ZXI+XG4gICAgICA8L25neC1kYXRhdGFibGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYmxhbmtIZWFkZXJUcGwgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNoZWFkZXJUcGxcbiAgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGVcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1zb3J0Rm49XCJzb3J0Rm5cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZC1pbmxpbmUtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmZpbHRlcmFibGVcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgc2VhbUljb25CdG5cbiAgICAgICAgW2ljb25dPVwiY29sdW1uRmlsdGVySWNvblwiXG4gICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgIFtzZWFtUG9wb3Zlcl09XCJmaWx0ZXJNZW51XCJcbiAgICAgICAgW3NlYW1Qb3BvdmVyQmFzZVdpZHRoXT1cIjMwMFwiXG4gICAgICAgIGNsYXNzPVwiZGF0YXRhYmxlLWNvbHVtbi1oZWFkZXItZmlsdGVyLWJ1dHRvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1yLTJcIlxuICAgICAgICBbY2xhc3MuZGF0YXRhYmxlLWNvbHVtbi1oZWFkZXItZmlsdGVyLWJ1dHRvbi1hY3RpdmVdPVwiY29sdW1uLmZpbHRlckFjdGl2ZVwiXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDFyZW07XCJcbiAgICAgICAgdGl0bGU9XCJDbGljayB0byBzZWUgZmlsdGVyIG9wdGlvbnNcIj48L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8c3Ryb25nICpuZ0lmPVwiIWNvbHVtbi5zb3J0YWJsZVwiIGNsYXNzPVwiZHJhZ2dhYmxlXCI+e3tjb2x1bW4ubmFtZX19PC9zdHJvbmc+XG4gICAgPGJ1dHRvblxuICAgICAgc2VhbUJ1dHRvblxuICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgY2xhc3M9XCJkYXRhdGFibGUtc29ydC10YXJnZXQgcC0wXCJcbiAgICAgIChjbGljayk9XCJzb3J0Rm4oKVwiXG4gICAgICB0aXRsZT1cIkNsaWNrIHRvIHNvcnRcIj5cbiAgICAgIDxzdHJvbmcgY2xhc3M9XCJkcmFnZ2FibGVcIj57e2NvbHVtbi5uYW1lfX08L3N0cm9uZz5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0YXRhYmxlLWNvbHVtbi1oZWFkZXItc2VwYXJhdG9yXCIgW2F0dHIuZGF0YS1jb2x1bW4taWRdPVwiY29sdW1uLiQkaWRcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjZmlsdGVyTWVudSBsZXQtcG9wb3Zlcj1cInBvcG92ZXJcIj5cbiAgICA8c2VhbS1kYXRhdGFibGUtY29sdW1uLWZpbHRlci1tZW51XG4gICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICBbdXBkYXRlTWV0aG9kXT1cImNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZFwiXG4gICAgICBbZGVib3VuY2VdPVwiY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2VcIlxuICAgICAgKGNsb3NlUG9wb3Zlcik9XCJwb3BvdmVyPy5jbG9zZVBvcG92ZXIoKVwiPjwvc2VhbS1kYXRhdGFibGUtY29sdW1uLWZpbHRlci1tZW51PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjZWxsVHlwZVNlbGVjdG9yVHBsIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZVxuICBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCIgbGV0LXJvdz1cInJvd1wiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPHNlYW0tdGFibGUtY2VsbC10eXBlLXNlbGVjdG9yICpuZ0lmPVwicm93XCJcbiAgICBbdHlwZV09XCJjb2x1bW4uY2VsbFR5cGVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgW3Jvd0luZGV4XT1cInJvd0luZGV4XCJcbiAgICBbcm93XT1cInJvd1wiXG4gICAgW2NvbERhdGFdPVwiY29sdW1uXCI+XG4gIDwvc2VhbS10YWJsZS1jZWxsLXR5cGUtc2VsZWN0b3I+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FjdGlvbk1lbnVDZWxsVHBsIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZVxuICBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCIgbGV0LXJvdz1cInJvd1wiPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cgJiYgcm93QWN0aW9uSXRlbT8udGVtcGxhdGVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkocm93QWN0aW9uSXRlbT8udGVtcGxhdGUpXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm93LCByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cmVlVG9nZ2xlVHBsIG5neC1kYXRhdGFibGUtdHJlZS10b2dnbGUgbGV0LXRyZWU9XCJjZWxsQ29udGV4dFwiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJwLTAgYmctdHJhbnNwYXJlbnQgYm9yZGVyLTAgYnRuXCJcbiAgICBbZGlzYWJsZWRdPVwidHJlZS50cmVlU3RhdHVzPT09J2Rpc2FibGVkJ1wiXG4gICAgKGNsaWNrKT1cInRyZWUub25UcmVlQWN0aW9uKClcIj5cbiAgICA8c3BhbiAqbmdJZj1cInRyZWUudHJlZVN0YXR1cz09PSdsb2FkaW5nJ1wiPlxuICAgICAgPGZhLWljb24gW2ljb25dPVwiX2ZhU3Bpbm5lclwiPjwvZmEtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJ0cmVlLnRyZWVTdGF0dXM9PT0nY29sbGFwc2VkJ1wiPlxuICAgICAgPGZhLWljb24gW2ljb25dPVwiX2ZhQ2hldnJvblJpZ2h0XCI+PC9mYS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cInRyZWUudHJlZVN0YXR1cz09PSdleHBhbmRlZCdcIj5cbiAgICAgIDxmYS1pY29uIFtpY29uXT1cIl9mYUNoZXZyb25Eb3duXCI+PC9mYS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cInRyZWUudHJlZVN0YXR1cz09PSdkaXNhYmxlZCdcIj5cbiAgICAgIDxmYS1pY29uIFtpY29uXT1cIl9mYUNoZXZyb25SaWdodFwiPjwvZmEtaWNvbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|