ontimize-web-ngx 15.7.0 → 15.8.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/esm2020/lib/components/app-header/o-app-header.component.mjs +4 -4
- package/esm2020/lib/components/app-header/o-app-header.module.mjs +5 -5
- package/esm2020/lib/components/app-sidenav/image/o-app-sidenav-image.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.module.mjs +5 -5
- package/esm2020/lib/components/bar-menu/locale-menu-item/o-locale-bar-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-group/o-bar-menu-group.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-item/o-bar-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-separator/o-bar-menu-separator.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/o-bar-menu-base.class.mjs +4 -4
- package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/o-bar-menu.module.mjs +5 -5
- package/esm2020/lib/components/bar-menu/o-base-menu-item.class.mjs +4 -4
- package/esm2020/lib/components/breadcrumb/o-breadcrumb.component.mjs +4 -4
- package/esm2020/lib/components/breadcrumb/o-breadcrumb.module.mjs +5 -5
- package/esm2020/lib/components/button/o-button.component.mjs +4 -4
- package/esm2020/lib/components/button/o-button.module.mjs +5 -5
- package/esm2020/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.mjs +4 -4
- package/esm2020/lib/components/button-toggle/o-button-toggle.component.mjs +4 -4
- package/esm2020/lib/components/button-toggle/o-button-toggle.module.mjs +5 -5
- package/esm2020/lib/components/card-menu-item/o-card-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/card-menu-item/o-card-menu-item.module.mjs +5 -5
- package/esm2020/lib/components/container/column/o-column.component.mjs +4 -4
- package/esm2020/lib/components/container/column/o-column.module.mjs +5 -5
- package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.component.mjs +4 -4
- package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.module.mjs +5 -5
- package/esm2020/lib/components/container/o-container-collapsible-component.class.mjs +4 -4
- package/esm2020/lib/components/container/o-container-component.class.mjs +4 -4
- package/esm2020/lib/components/container/row/o-row.component.mjs +4 -4
- package/esm2020/lib/components/container/row/o-row.module.mjs +5 -5
- package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.component.mjs +4 -4
- package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.module.mjs +5 -5
- package/esm2020/lib/components/contextmenu/context-menu/o-context-menu-content.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu/o-wrapper-content-menu/o-wrapper-content-menu.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu-group/o-context-menu-group.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu-item/o-context-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu-separator/o-context-menu-separator.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-content-menu-base-item.class.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu-overlay.service.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu.directive.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu.module.mjs +5 -5
- package/esm2020/lib/components/contextmenu/o-context-menu.service.mjs +4 -4
- package/esm2020/lib/components/dual-list-selector/dual-list-selector-item/date/o-dual-list-selector-date-item.component.mjs +4 -4
- package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +4 -4
- package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.module.mjs +5 -5
- package/esm2020/lib/components/expandable-container/o-expandable-container.component.mjs +4 -4
- package/esm2020/lib/components/expandable-container/o-expandable-container.module.mjs +5 -5
- package/esm2020/lib/components/filter-builder/filter-builder-menu/filter-builder-menu.component.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder-clear.directive.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder-query.directive.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder.module.mjs +5 -5
- package/esm2020/lib/components/form/guards/o-form-can-deactivate.guard.mjs +4 -4
- package/esm2020/lib/components/form/navigation/o-form-confirm-exit.service.mjs +4 -4
- package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +4 -4
- package/esm2020/lib/components/form/o-form.component.mjs +4 -4
- package/esm2020/lib/components/form/o-form.module.mjs +5 -5
- package/esm2020/lib/components/form/services/o-form-message.service.mjs +4 -4
- package/esm2020/lib/components/form/toolbar/o-form-toolbar.component.mjs +4 -4
- package/esm2020/lib/components/form/toolbar/o-form-toolbar.module.mjs +5 -5
- package/esm2020/lib/components/form-container/o-form-container.component.mjs +4 -4
- package/esm2020/lib/components/form-container/o-form-container.module.mjs +5 -5
- package/esm2020/lib/components/grid/grid-item/o-grid-item.component.mjs +4 -4
- package/esm2020/lib/components/grid/grid-item/o-grid-item.directive.mjs +4 -4
- package/esm2020/lib/components/grid/o-grid.component.mjs +4 -4
- package/esm2020/lib/components/grid/o-grid.module.mjs +5 -5
- package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/image/fullscreen/fullscreen-dialog.component.mjs +4 -4
- package/esm2020/lib/components/image/o-image.component.mjs +4 -4
- package/esm2020/lib/components/image/o-image.module.mjs +5 -5
- package/esm2020/lib/components/input/checkbox/o-checkbox.component.mjs +4 -4
- package/esm2020/lib/components/input/checkbox/o-checkbox.module.mjs +5 -5
- package/esm2020/lib/components/input/combo/combo-renderer/boolean/o-combo-renderer-boolean.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/currency/o-combo-renderer-currency.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/date/o-combo-renderer-date.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/icon/o-combo-renderer-icon.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/integer/o-combo-renderer-integer.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/o-combo-renderer.class.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/percentage/o-combo-renderer-percentage.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/real/o-combo-renderer-real.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/o-combo.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/o-combo.module.mjs +5 -5
- package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +4 -4
- package/esm2020/lib/components/input/currency-input/o-currency-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +4 -4
- package/esm2020/lib/components/input/date-input/o-date-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-range/o-daterange-input.component.mjs +4 -4
- package/esm2020/lib/components/input/date-range/o-daterange-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.component.mjs +4 -4
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.directive.mjs +4 -4
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-picker.component.mjs +4 -4
- package/esm2020/lib/components/input/email-input/o-email-input.component.mjs +4 -4
- package/esm2020/lib/components/input/email-input/o-email-input.module.mjs +5 -5
- package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +4 -4
- package/esm2020/lib/components/input/file-input/o-file-input.module.mjs +5 -5
- package/esm2020/lib/components/input/hour-input/index.mjs +4 -0
- package/esm2020/lib/components/input/hour-input/o-hour-input.component.mjs +38 -9
- package/esm2020/lib/components/input/hour-input/o-hour-input.directive.mjs +46 -0
- package/esm2020/lib/components/input/hour-input/o-hour-input.module.mjs +8 -7
- package/esm2020/lib/components/input/html-input/o-html-input.component.mjs +4 -4
- package/esm2020/lib/components/input/html-input/o-html-input.module.mjs +5 -5
- package/esm2020/lib/components/input/index.mjs +2 -3
- package/esm2020/lib/components/input/integer-input/o-integer-input.component.mjs +4 -4
- package/esm2020/lib/components/input/integer-input/o-integer-input.module.mjs +5 -5
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/currency/o-list-picker-renderer-currency.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/date/o-list-picker-renderer-date.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/integer/o-list-picker-renderer-integer.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/o-list-picker-renderer.class.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/percentage/o-list-picker-renderer-percentage.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/real/o-list-picker-renderer-real.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/o-list-picker.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/o-list-picker.module.mjs +5 -5
- package/esm2020/lib/components/input/nif-input/o-nif-input.component.mjs +4 -4
- package/esm2020/lib/components/input/nif-input/o-nif-input.module.mjs +5 -5
- package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +4 -4
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +4 -4
- package/esm2020/lib/components/input/password-input/o-password-input.component.mjs +4 -4
- package/esm2020/lib/components/input/password-input/o-password-input.module.mjs +5 -5
- package/esm2020/lib/components/input/percent-input/o-percent-input.component.mjs +4 -4
- package/esm2020/lib/components/input/percent-input/o-percent-input.module.mjs +5 -5
- package/esm2020/lib/components/input/phone-input/data/country-code.mjs +4 -4
- package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +4 -4
- package/esm2020/lib/components/input/phone-input/o-phone-input.module.mjs +5 -5
- package/esm2020/lib/components/input/radio/o-radio.component.mjs +4 -4
- package/esm2020/lib/components/input/radio/o-radio.module.mjs +5 -5
- package/esm2020/lib/components/input/real-input/o-real-input.component.mjs +4 -4
- package/esm2020/lib/components/input/real-input/o-real-input.module.mjs +5 -5
- package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +4 -4
- package/esm2020/lib/components/input/search-input/o-search-input.module.mjs +5 -5
- package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.component.mjs +4 -4
- package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.module.mjs +5 -5
- package/esm2020/lib/components/input/slider/o-slider.component.mjs +4 -4
- package/esm2020/lib/components/input/slider/o-slider.module.mjs +5 -5
- package/esm2020/lib/components/input/text-input/o-text-input.component.mjs +4 -4
- package/esm2020/lib/components/input/text-input/o-text-input.module.mjs +5 -5
- package/esm2020/lib/components/input/textarea-input/o-textarea-input.component.mjs +4 -4
- package/esm2020/lib/components/input/textarea-input/o-textarea-input.module.mjs +5 -5
- package/esm2020/lib/components/input/time-input/o-time-input.component.mjs +4 -4
- package/esm2020/lib/components/input/time-input/o-time-input.module.mjs +5 -5
- package/esm2020/lib/components/language-selector/o-language-selector.component.mjs +4 -4
- package/esm2020/lib/components/language-selector/o-language-selector.module.mjs +5 -5
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +4 -4
- package/esm2020/lib/components/list/list-item/o-list-item.directive.mjs +4 -4
- package/esm2020/lib/components/list/o-list.component.mjs +4 -4
- package/esm2020/lib/components/list/o-list.module.mjs +5 -5
- package/esm2020/lib/components/list/renderers/avatar/o-list-item-avatar.component.mjs +4 -4
- package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +4 -4
- package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +4 -4
- package/esm2020/lib/components/list/renderers/o-list-item-card-renderer.class.mjs +4 -4
- package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +4 -4
- package/esm2020/lib/components/list/renderers/text/o-list-item-text.component.mjs +4 -4
- package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/material/ckeditor/ck-editor.component.mjs +4 -4
- package/esm2020/lib/components/material/ckeditor/ck-editor.module.mjs +5 -5
- package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.component.mjs +4 -4
- package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.module.mjs +5 -5
- package/esm2020/lib/components/o-form-data-component.class.mjs +4 -4
- package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/o-service-base-component.class.mjs +15 -10
- package/esm2020/lib/components/o-service-component.class.mjs +7 -7
- package/esm2020/lib/components/o-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/table/column/calculated/o-table-column-calculated.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/boolean/o-table-cell-editor-boolean.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/date/o-table-cell-editor-date.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/email/o-table-cell-editor-email.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/integer/o-table-cell-editor-integer.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +10 -4
- package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/text/o-table-cell-editor-text.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.mjs +26 -12
- package/esm2020/lib/components/table/column/cell-renderer/action/o-table-cell-renderer-action.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/boolean/o-table-cell-renderer-boolean.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/cell-renderer.mjs +11 -4
- package/esm2020/lib/components/table/column/cell-renderer/chip/o-table-cell-renderer-chip.component.mjs +65 -0
- package/esm2020/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/date/o-table-cell-renderer-date.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/image/o-table-cell-renderer-image.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/index.mjs +3 -1
- package/esm2020/lib/components/table/column/cell-renderer/integer/o-table-cell-renderer-integer.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/list/o-table-cell-renderer-list.component.mjs +41 -0
- package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/percentage/o-table-cell-renderer-percentage.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/real/o-table-cell-renderer-real.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/time/o-table-cell-renderer-time.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/translate/o-table-cell-renderer-translate.component.mjs +4 -4
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/default-o-table.datasource.mjs +137 -66
- package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +5 -5
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/o-table-base-dialog.class.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.service.mjs +4 -4
- package/esm2020/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.mjs +6 -6
- package/esm2020/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.mjs +11 -14
- package/esm2020/lib/components/table/extensions/footer/paginator/o-table-mat-paginator-intl.mjs +4 -4
- package/esm2020/lib/components/table/extensions/footer/paginator/o-table-paginator.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-button/o-table-button.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-buttons/o-table-buttons.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-column-select-all/o-table-column-select-all.directive.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-grouping/columns/o-table-columns-grouping-column.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-grouping/o-table-columns-grouping.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-header/o-table-header.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.mjs +5 -5
- package/esm2020/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.mjs +6 -4
- package/esm2020/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-option/o-table-option.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/o-table-datasource.service.mjs +4 -4
- package/esm2020/lib/components/table/extensions/o-table-strategy.service.mjs +10 -4
- package/esm2020/lib/components/table/extensions/pipes/o-table-row-class.pipe.mjs +4 -4
- package/esm2020/lib/components/table/extensions/row/o-table-row.directive.mjs +4 -4
- package/esm2020/lib/components/table/extensions/row/table-row-expandable/o-table-row-expandable.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +19 -19
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort-header.mjs +14 -7
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort-module.mjs +5 -5
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +4 -4
- package/esm2020/lib/components/table/index.mjs +2 -1
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table-loading.service.mjs +113 -0
- package/esm2020/lib/components/table/o-table.component.mjs +317 -121
- package/esm2020/lib/components/table/o-table.module.mjs +46 -40
- package/esm2020/lib/components/tree/header/tree-menu/o-tree-menu.component.mjs +4 -4
- package/esm2020/lib/components/tree/o-tree-dao.service.mjs +4 -4
- package/esm2020/lib/components/tree/o-tree.component.mjs +4 -4
- package/esm2020/lib/components/tree/o-tree.module.mjs +5 -5
- package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +4 -4
- package/esm2020/lib/components/user-info/o-user-info.component.mjs +4 -4
- package/esm2020/lib/components/user-info/o-user-info.module.mjs +5 -5
- package/esm2020/lib/components/user-info/user-info-configuration/o-user-info-configuration.directive.mjs +4 -4
- package/esm2020/lib/components/user-info/user-info-configuration-item/o-user-info-configuration-item.directive.mjs +4 -4
- package/esm2020/lib/config/o-modules.mjs +5 -5
- package/esm2020/lib/directives/input-regulate.directive.mjs +4 -4
- package/esm2020/lib/directives/keyboard-listener.directive.mjs +4 -4
- package/esm2020/lib/directives/locker.directive.mjs +4 -4
- package/esm2020/lib/directives/o-file-drag-and-drop.directive.mjs +4 -4
- package/esm2020/lib/directives/o-hidden.directive.mjs +4 -4
- package/esm2020/lib/directives/o-mat-error.directive.mjs +4 -4
- package/esm2020/lib/directives/o-mat-prefix.directive.mjs +4 -4
- package/esm2020/lib/directives/o-mat-suffix.directive.mjs +4 -4
- package/esm2020/lib/directives/o-tab-group.directive.mjs +4 -4
- package/esm2020/lib/interfaces/column-filter-change-event.interface.mjs +2 -0
- package/esm2020/lib/interfaces/index.mjs +2 -1
- package/esm2020/lib/layouts/app-layout/app-layout-header/o-app-layout-header.component.mjs +4 -4
- package/esm2020/lib/layouts/app-layout/app-layout-sidenav/o-app-layout-sidenav.component.mjs +4 -4
- package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +4 -4
- package/esm2020/lib/layouts/app-layout/o-app-layout.module.mjs +5 -5
- package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.component.mjs +4 -4
- package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.module.mjs +5 -5
- package/esm2020/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/directives/o-form-layout-manager-content.directive.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/guards/o-form-layout-can-activate-child.guard.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.module.mjs +5 -5
- package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/split-pane/options/o-form-layout-split-pane-options.directive.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/tabgroup/options/o-form-layout-tabgroup-options.directive.mjs +4 -4
- package/esm2020/lib/ontimize-web-ngx.module.mjs +5 -5
- package/esm2020/lib/pipes/columns-filter.pipe.mjs +4 -4
- package/esm2020/lib/pipes/is-empty-value.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-currency.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-icon.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-integer.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-moment.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-percentage.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-real.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-safe.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-translate.pipe.mjs +8 -8
- package/esm2020/lib/pipes/order-by.pipe.mjs +4 -4
- package/esm2020/lib/services/app-menu.service.mjs +4 -4
- package/esm2020/lib/services/appearance.service.mjs +4 -4
- package/esm2020/lib/services/auth-guard.service.mjs +4 -4
- package/esm2020/lib/services/auth.service.mjs +4 -4
- package/esm2020/lib/services/base-service-response.adapter.mjs +4 -4
- package/esm2020/lib/services/base-service.class.mjs +4 -4
- package/esm2020/lib/services/currency.service.mjs +4 -4
- package/esm2020/lib/services/dialog.service.mjs +4 -4
- package/esm2020/lib/services/icon.service.mjs +4 -4
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +4 -4
- package/esm2020/lib/services/jsonapi/jsonapi-service-response.adapter.mjs +4 -4
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +4 -4
- package/esm2020/lib/services/local-storage.service.mjs +4 -4
- package/esm2020/lib/services/login-storage.service.mjs +4 -4
- package/esm2020/lib/services/moment.service.mjs +4 -4
- package/esm2020/lib/services/navigation.service.mjs +4 -4
- package/esm2020/lib/services/number.service.mjs +4 -4
- package/esm2020/lib/services/o-auth.service.mjs +4 -4
- package/esm2020/lib/services/o-breadcrumb.service.mjs +4 -4
- package/esm2020/lib/services/o-error-dialog-manager.service.mjs +4 -4
- package/esm2020/lib/services/o-form-layout-manager.service.mjs +4 -4
- package/esm2020/lib/services/o-modules-info.service.mjs +4 -4
- package/esm2020/lib/services/o-user-info.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/o-preference-response.adapter.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-base-service.class.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-export.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-file.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-service-response.adapter.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-export-data-base-provider.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-export-data-provider-3x.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-export-data-provider.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-icon-registry.service.mjs +4 -4
- package/esm2020/lib/services/pagination-context.service.mjs +4 -4
- package/esm2020/lib/services/parser/o-service-response.parser.mjs +4 -4
- package/esm2020/lib/services/permissions/o-permissions.module.mjs +5 -5
- package/esm2020/lib/services/permissions/ontimize-ee-permissions.service.mjs +4 -4
- package/esm2020/lib/services/permissions/ontimize-permissions.service.mjs +4 -4
- package/esm2020/lib/services/permissions/permissions-can-activate.guard.mjs +4 -4
- package/esm2020/lib/services/permissions/permissions.service.mjs +4 -4
- package/esm2020/lib/services/remote-config.service.mjs +5 -5
- package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +4 -4
- package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +4 -4
- package/esm2020/lib/services/share-can-activate-child.service.mjs +4 -4
- package/esm2020/lib/services/snackbar.service.mjs +4 -4
- package/esm2020/lib/services/state/o-app-menu-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-component-state.service.mjs +10 -10
- package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-form-layout-manager-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-grid-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-list-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-table-component-state.class.mjs +1 -1
- package/esm2020/lib/services/state/o-table-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-tree-component-state.service.mjs +4 -4
- package/esm2020/lib/services/translate/o-translate.parser.mjs +4 -4
- package/esm2020/lib/services/translate/o-translate.service.mjs +4 -4
- package/esm2020/lib/shared/components/dialog/o-dialog-internal.component.mjs +4 -4
- package/esm2020/lib/shared/components/dialog/o-dialog.component.mjs +4 -4
- package/esm2020/lib/shared/components/error403/o-error-403.component.mjs +4 -4
- package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +4 -4
- package/esm2020/lib/shared/components/filter/store-filter/o-store-filter-dialog.component.mjs +4 -4
- package/esm2020/lib/shared/components/snackbar/o-snackbar-base.class.mjs +4 -4
- package/esm2020/lib/shared/components/snackbar/o-snackbar.component.mjs +4 -4
- package/esm2020/lib/shared/components/validation/o-error.component.mjs +4 -4
- package/esm2020/lib/shared/components/validation/o-validator.component.mjs +4 -4
- package/esm2020/lib/shared/material/custom.material.module.mjs +5 -5
- package/esm2020/lib/shared/material/date/ontimize-moment-date-adapter.mjs +4 -4
- package/esm2020/lib/shared/shared.module.mjs +5 -5
- package/esm2020/lib/types/aggregate-function.type.mjs +1 -1
- package/esm2020/lib/types/table/o-table-global-config.type.mjs +1 -1
- package/fesm2015/ontimize-web-ngx.mjs +1945 -1348
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +1928 -1345
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +1 -1
- package/lib/components/dual-list-selector/o-dual-list-selector.component.d.ts +1 -1
- package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
- package/lib/components/input/hour-input/index.d.ts +3 -0
- package/lib/components/input/hour-input/o-hour-input.component.d.ts +6 -2
- package/lib/components/input/hour-input/o-hour-input.directive.d.ts +8 -0
- package/lib/components/input/hour-input/o-hour-input.module.d.ts +5 -4
- package/lib/components/input/index.d.ts +1 -2
- package/lib/components/o-service-base-component.class.d.ts +2 -1
- package/lib/components/o-service-component.class.d.ts +1 -1
- package/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.d.ts +5 -3
- package/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.d.ts +2 -2
- package/lib/components/table/column/cell-renderer/cell-renderer.d.ts +5 -1
- package/lib/components/table/column/cell-renderer/chip/o-table-cell-renderer-chip.component.d.ts +23 -0
- package/lib/components/table/column/cell-renderer/index.d.ts +2 -0
- package/lib/components/table/column/cell-renderer/list/o-table-cell-renderer-list.component.d.ts +14 -0
- package/lib/components/table/column/o-table-column.component.d.ts +2 -1
- package/lib/components/table/extensions/default-o-table.datasource.d.ts +6 -1
- package/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.d.ts +1 -1
- package/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.d.ts +1 -1
- package/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.d.ts +1 -2
- package/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.d.ts +2 -1
- package/lib/components/table/extensions/o-table-strategy.service.d.ts +2 -1
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -0
- package/lib/components/table/extensions/sort/o-mat-sort-header.d.ts +5 -3
- package/lib/components/table/index.d.ts +1 -0
- package/lib/components/table/o-table-base.class.d.ts +3 -1
- package/lib/components/table/o-table-loading.service.d.ts +28 -0
- package/lib/components/table/o-table.component.d.ts +25 -4
- package/lib/components/table/o-table.module.d.ts +48 -45
- package/lib/interfaces/column-filter-change-event.interface.d.ts +6 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/services/state/o-table-component-state.class.d.ts +1 -1
- package/lib/types/aggregate-function.type.d.ts +2 -1
- package/lib/types/table/o-table-global-config.type.d.ts +6 -0
- package/package.json +2 -2
- package/theme.scss +0 -2
|
@@ -335,13 +335,13 @@ export class OTableFilterByColumnDataDialogComponent {
|
|
|
335
335
|
}
|
|
336
336
|
;
|
|
337
337
|
}
|
|
338
|
-
OTableFilterByColumnDataDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
339
|
-
OTableFilterByColumnDataDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableFilterByColumnDataDialogComponent, selector: "o-table-filter-by-column-data-dialog", host: { properties: { "class.o-filter-by-column-dialog": "true" } }, viewQueries: [{ propertyName: "filter", first: true, predicate: ["filter"], descendants: true }, { propertyName: "filterValueList", first: true, predicate: ["filterValueList"], descendants: true }], ngImport: i0, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.FILTER_BY_COLUMN' | oTranslate }}: {{ column.title | oTranslate }}</span>\n<div mat-dialog-content class=\"dialog-list-container\">\n <div fxLayout=\"column\" class=\"content-wrapper\" [class.content-wrapper-fixed-dimension]=\"getFixedDimensionClass()\">\n <mat-slide-toggle #customFilterSlide (change)=\"onSlideChange($event)\" [checked]=\"(isCustomFilter | async)\" *ngIf=\"isDefaultFilter | async\">\n {{ 'TABLE.FILTER_BY_COLUMN.CUSTOM_FILTER' | oTranslate }}\n </mat-slide-toggle>\n <div fxFlex=\"1 1 100%\" *ngIf=\"!(isCustomFilter | async);else customFilterTemplate\" fxLayout=\"column\">\n <mat-form-field class=\"hinted\">\n <mat-icon matPrefix svgIcon=\"ontimize:search\"></mat-icon>\n <input matInput #filter placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n </mat-form-field>\n <div *ngIf=\"(listData | async).length > 0; else emptyListData\" fxLayout=\"row\" fxLayoutAlign=\"space-between start\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <mat-checkbox (change)=\"onSelectAllChange($event)\" [checked]=\"areAllSelected()\" [indeterminate]=\"isIndeterminate()\" [disabled]=\"!listData\"\n class=\"select-all-checkbox\">\n {{ 'TABLE.FILTER_BY_COLUMN.CHECK_ALL' | oTranslate }}\n </mat-checkbox>\n <span *ngIf=\"!listData\" class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY_FILTER' | oTranslate }}\n </span>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <button type=\"button\" mat-icon-button (click)=\"onClickSortValues()\">\n <mat-icon [svgIcon]=\"getSortByAlphaIcon()\"></mat-icon>\n </button>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"showFilterValuesOption\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div fxLayout=\"column\" class=\"filtervalues-container\">\n <div mat-subheader>\n {{'TABLE.FILTER_BY_COLUMN.LABEL_DATA' | oTranslate}}\n </div>\n <mat-divider></mat-divider>\n <mat-radio-group aria-label=\"Data\" fxLayout=\"column\" fxLayoutGap=\"12px\" [(ngModel)]=\"sourceData\" (change)=\"onChangeDataSource($event)\">\n <mat-radio-button value=\"current-page\">{{'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE' | oTranslate}}</mat-radio-button>\n <mat-radio-button value=\"all-data\">{{'TABLE.FILTER_BY_COLUMN.ALL_PAGE' | oTranslate}}</mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </div>\n </div>\n\n <ng-template #emptyListData>\n <span class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY' | oTranslate }}\n </span>\n </ng-template>\n <cdk-virtual-scroll-viewport itemSize=\"30\" fxFlex>\n <mat-selection-list *ngIf=\"preloadValues || listData\" #filterValueList class=\"select-values-list\" (selectionChange)=\"onSelect($event)\">\n <ng-container *cdkVirtualFor=\"let record of (listData | async); let i = index;templateCacheSize: 0\">\n <mat-list-option checkboxPosition=\"before\" [selected]=\"selection.isSelected(record)\" [value]=\"record\">\n <ng-container *ngIf=\"record.value | isEmptyValue; else showValue\">\n {{ 'TABLE.FILTER_BY_COLUMN.EMPTY_VALUE' | oTranslate }}\n </ng-container>\n <ng-template #showValue>\n <!-- if there are visible columns, show rendererValue -->\n <ng-container *ngIf=\"visibleColumnsArray?.length > 0; else noVisibleColumns\">\n {{ record.renderedValue }}\n </ng-container>\n\n <!-- If there are no visible columns, use the previous behavior -->\n <ng-template #noVisibleColumns>\n <!-- If there is no column renderer, show the raw value -->\n <ng-container *ngIf=\"!column.renderer; else withRenderer\">\n {{ record.value }}\n </ng-container>\n\n <!-- If there is a renderer, use its template reference -->\n <ng-template #withRenderer>\n <ng-template [ngTemplateOutlet]=\"column.renderer.templateref\" [ngTemplateOutletContext]=\"{\n cellvalue: record.value,\n rowvalue: record.rowValue\n }\"></ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n </mat-list-option>\n </ng-container>\n </mat-selection-list>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n\n\n<mat-dialog-actions fxLayoutAlign=\"space-between center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"clearAction\" class=\"o-button-info\">\n {{ 'TABLE.BUTTONS.FILTER_CLEAR' | oTranslate }} </button>\n <span align=\"end\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"cancelAction\" class=\"o-button-default cancel\">\n {{ 'CANCEL' | oTranslate }} </button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"acceptAction\" class=\"o-button-primary\">\n {{ 'ACCEPT' | oTranslate }} </button>\n </span>\n</mat-dialog-actions>\n\n<!-- TEMPLATE CUSTOM FILTER-->\n<ng-template #customFilterTemplate>\n <div *ngIf=\"isTextType()\">\n <mat-form-field fxFlex class=\"hinted\">\n <input matInput #filterText [formControl]=\"fcText\" placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div *ngIf=\"isNumericType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [formControl]=\"fcFrom\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n </mat-form-field>\n <mat-form-field>\n <input matInput [formControl]=\"fcTo\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n </mat-form-field>\n <button type=\"button\" mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n <div *ngIf=\"isDateType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerFrom\" [max]=\"fcTo.value\" [formControl]=\"fcFrom\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerFrom\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerFrom [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerTo\" [min]=\"fcFrom.value\" [formControl]=\"fcTo\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerTo\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerTo [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n\n</ng-template>\n", styles: [".filtervalues-container{padding:12px}.filtervalues-container .mat-divider{margin:8px}.filtervalues-container .mdc-list-group__subheader{font-weight:400;margin-top:0;margin-bottom:0}.filtervalues-container mat-radio-group.mat-mdc-radio-group{margin:12px 12px 0}.o-filter-by-column-dialog .mat-mdc-slide-toggle{padding-bottom:24px;padding-left:14px}.o-filter-by-column-dialog .content-wrapper{padding-top:12px;margin:0}.o-filter-by-column-dialog .content-wrapper.content-wrapper-fixed-dimension{max-height:430px;min-height:430px;min-width:250px;width:100%}.o-filter-by-column-dialog .content-wrapper .mat-mdc-form-field.hinted{margin-bottom:24px}.o-filter-by-column-dialog .content-wrapper .select-values-list{padding-top:0;overflow-y:auto;overflow-x:hidden;outline:none}.o-filter-by-column-dialog .content-wrapper .select-values-list .mat-mdc-list-item{height:30px}.o-filter-by-column-dialog .content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-filter-by-column-dialog .content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item .mat-icon{font-size:24px}.o-filter-by-column-dialog .content-wrapper .column-filter-empty-list{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i8.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i11.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i12.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i12.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i12.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i13.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i15.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i16.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i17.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i17.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i17.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.OTranslatePipe, name: "oTranslate" }, { kind: "pipe", type: i19.IsEmptyValuePipe, name: "isEmptyValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
338
|
+
OTableFilterByColumnDataDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableFilterByColumnDataDialogComponent, deps: [{ token: i0.Injector }, { token: i1.MatDialogRef }, { token: i2.OTableFilterByColumnService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
339
|
+
OTableFilterByColumnDataDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableFilterByColumnDataDialogComponent, selector: "o-table-filter-by-column-data-dialog", host: { properties: { "class.o-filter-by-column-dialog": "true" } }, viewQueries: [{ propertyName: "filter", first: true, predicate: ["filter"], descendants: true }, { propertyName: "filterValueList", first: true, predicate: ["filterValueList"], descendants: true }], ngImport: i0, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.FILTER_BY_COLUMN' | oTranslate }}: {{ column.title | oTranslate }}</span>\n<div mat-dialog-content class=\"dialog-list-container\">\n <div fxLayout=\"column\" class=\"content-wrapper\" [class.content-wrapper-fixed-dimension]=\"getFixedDimensionClass()\">\n <mat-slide-toggle #customFilterSlide (change)=\"onSlideChange($event)\" [checked]=\"(isCustomFilter | async)\" *ngIf=\"isDefaultFilter | async\">\n {{ 'TABLE.FILTER_BY_COLUMN.CUSTOM_FILTER' | oTranslate }}\n </mat-slide-toggle>\n <div fxFlex=\"1 1 100%\" *ngIf=\"!(isCustomFilter | async);else customFilterTemplate\" fxLayout=\"column\">\n <mat-form-field class=\"hinted\">\n <mat-icon matPrefix svgIcon=\"ontimize:search\"></mat-icon>\n <input matInput #filter placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n </mat-form-field>\n <div *ngIf=\"(listData | async).length > 0; else emptyListData\" fxLayout=\"row\" fxLayoutAlign=\"space-between start\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <mat-checkbox (change)=\"onSelectAllChange($event)\" [checked]=\"areAllSelected()\" [indeterminate]=\"isIndeterminate()\" [disabled]=\"!listData\"\n class=\"select-all-checkbox\">\n {{ 'TABLE.FILTER_BY_COLUMN.CHECK_ALL' | oTranslate }}\n </mat-checkbox>\n <span *ngIf=\"!listData\" class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY_FILTER' | oTranslate }}\n </span>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <button type=\"button\" mat-icon-button (click)=\"onClickSortValues()\">\n <mat-icon [svgIcon]=\"getSortByAlphaIcon()\"></mat-icon>\n </button>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"showFilterValuesOption\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div fxLayout=\"column\" class=\"filtervalues-container\">\n <div mat-subheader>\n {{'TABLE.FILTER_BY_COLUMN.LABEL_DATA' | oTranslate}}\n </div>\n <mat-divider></mat-divider>\n <mat-radio-group aria-label=\"Data\" fxLayout=\"column\" fxLayoutGap=\"12px\" [(ngModel)]=\"sourceData\" (change)=\"onChangeDataSource($event)\">\n <mat-radio-button value=\"current-page\">{{'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE' | oTranslate}}</mat-radio-button>\n <mat-radio-button value=\"all-data\">{{'TABLE.FILTER_BY_COLUMN.ALL_PAGE' | oTranslate}}</mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </div>\n </div>\n\n <ng-template #emptyListData>\n <span class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY' | oTranslate }}\n </span>\n </ng-template>\n <cdk-virtual-scroll-viewport itemSize=\"30\" fxFlex class=\"virtual-scroll-viewport\">\n <mat-selection-list *ngIf=\"preloadValues || listData\" #filterValueList class=\"select-values-list\" (selectionChange)=\"onSelect($event)\">\n <ng-container *cdkVirtualFor=\"let record of (listData | async); let i = index;templateCacheSize: 0\">\n <mat-list-option checkboxPosition=\"before\" [selected]=\"selection.isSelected(record)\" [value]=\"record\">\n <ng-container *ngIf=\"record.value | isEmptyValue; else showValue\">\n {{ 'TABLE.FILTER_BY_COLUMN.EMPTY_VALUE' | oTranslate }}\n </ng-container>\n <ng-template #showValue>\n <!-- if there are visible columns, show rendererValue -->\n <ng-container *ngIf=\"visibleColumnsArray?.length > 0; else noVisibleColumns\">\n {{ record.renderedValue }}\n </ng-container>\n\n <!-- If there are no visible columns, use the previous behavior -->\n <ng-template #noVisibleColumns>\n <!-- If there is no column renderer, show the raw value -->\n <ng-container *ngIf=\"!column.renderer; else withRenderer\">\n {{ record.value }}\n </ng-container>\n\n <!-- If there is a renderer, use its template reference -->\n <ng-template #withRenderer>\n <ng-template [ngTemplateOutlet]=\"column.renderer.templateref\" [ngTemplateOutletContext]=\"{\n cellvalue: record.value,\n rowvalue: record.rowValue\n }\"></ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n </mat-list-option>\n </ng-container>\n </mat-selection-list>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n\n\n<mat-dialog-actions fxLayoutAlign=\"space-between center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"clearAction\" class=\"o-button-info\">\n {{ 'TABLE.BUTTONS.FILTER_CLEAR' | oTranslate }} </button>\n <span align=\"end\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"cancelAction\" class=\"o-button-default cancel\">\n {{ 'CANCEL' | oTranslate }} </button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"acceptAction\" class=\"o-button-primary\">\n {{ 'ACCEPT' | oTranslate }} </button>\n </span>\n</mat-dialog-actions>\n\n<!-- TEMPLATE CUSTOM FILTER-->\n<ng-template #customFilterTemplate>\n <div *ngIf=\"isTextType()\">\n <mat-form-field fxFlex class=\"hinted\">\n <input matInput #filterText [formControl]=\"fcText\" placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div *ngIf=\"isNumericType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [formControl]=\"fcFrom\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n </mat-form-field>\n <mat-form-field>\n <input matInput [formControl]=\"fcTo\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n </mat-form-field>\n <button type=\"button\" mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n <div *ngIf=\"isDateType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerFrom\" [max]=\"fcTo.value\" [formControl]=\"fcFrom\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerFrom\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerFrom [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerTo\" [min]=\"fcFrom.value\" [formControl]=\"fcTo\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerTo\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerTo [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n\n</ng-template>\n", styles: [".filtervalues-container{padding:12px}.filtervalues-container .mat-divider{margin:8px}.filtervalues-container .mdc-list-group__subheader{font-weight:400;margin-top:0;margin-bottom:0}.filtervalues-container mat-radio-group.mat-mdc-radio-group{margin:12px 12px 0}.o-filter-by-column-dialog .mat-mdc-slide-toggle{padding-bottom:24px;padding-left:14px}.o-filter-by-column-dialog .content-wrapper{padding-top:12px;margin:0}.o-filter-by-column-dialog .content-wrapper.content-wrapper-fixed-dimension{max-height:430px;min-height:430px;min-width:250px;width:100%}.o-filter-by-column-dialog .content-wrapper .mat-mdc-form-field.hinted{margin-bottom:24px}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper{width:100%}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list{padding-top:0;overflow-y:auto;overflow-x:hidden;outline:none}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list .mat-mdc-list-item{height:30px}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item .mat-icon{font-size:24px}.o-filter-by-column-dialog .content-wrapper .column-filter-empty-list{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i8.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i11.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i12.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i12.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i12.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i13.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i15.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i16.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i17.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i17.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i17.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.OTranslatePipe, name: "oTranslate" }, { kind: "pipe", type: i19.IsEmptyValuePipe, name: "isEmptyValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableFilterByColumnDataDialogComponent, decorators: [{
|
|
341
341
|
type: Component,
|
|
342
342
|
args: [{ selector: 'o-table-filter-by-column-data-dialog', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
343
343
|
'[class.o-filter-by-column-dialog]': 'true'
|
|
344
|
-
}, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.FILTER_BY_COLUMN' | oTranslate }}: {{ column.title | oTranslate }}</span>\n<div mat-dialog-content class=\"dialog-list-container\">\n <div fxLayout=\"column\" class=\"content-wrapper\" [class.content-wrapper-fixed-dimension]=\"getFixedDimensionClass()\">\n <mat-slide-toggle #customFilterSlide (change)=\"onSlideChange($event)\" [checked]=\"(isCustomFilter | async)\" *ngIf=\"isDefaultFilter | async\">\n {{ 'TABLE.FILTER_BY_COLUMN.CUSTOM_FILTER' | oTranslate }}\n </mat-slide-toggle>\n <div fxFlex=\"1 1 100%\" *ngIf=\"!(isCustomFilter | async);else customFilterTemplate\" fxLayout=\"column\">\n <mat-form-field class=\"hinted\">\n <mat-icon matPrefix svgIcon=\"ontimize:search\"></mat-icon>\n <input matInput #filter placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n </mat-form-field>\n <div *ngIf=\"(listData | async).length > 0; else emptyListData\" fxLayout=\"row\" fxLayoutAlign=\"space-between start\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <mat-checkbox (change)=\"onSelectAllChange($event)\" [checked]=\"areAllSelected()\" [indeterminate]=\"isIndeterminate()\" [disabled]=\"!listData\"\n class=\"select-all-checkbox\">\n {{ 'TABLE.FILTER_BY_COLUMN.CHECK_ALL' | oTranslate }}\n </mat-checkbox>\n <span *ngIf=\"!listData\" class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY_FILTER' | oTranslate }}\n </span>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <button type=\"button\" mat-icon-button (click)=\"onClickSortValues()\">\n <mat-icon [svgIcon]=\"getSortByAlphaIcon()\"></mat-icon>\n </button>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"showFilterValuesOption\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div fxLayout=\"column\" class=\"filtervalues-container\">\n <div mat-subheader>\n {{'TABLE.FILTER_BY_COLUMN.LABEL_DATA' | oTranslate}}\n </div>\n <mat-divider></mat-divider>\n <mat-radio-group aria-label=\"Data\" fxLayout=\"column\" fxLayoutGap=\"12px\" [(ngModel)]=\"sourceData\" (change)=\"onChangeDataSource($event)\">\n <mat-radio-button value=\"current-page\">{{'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE' | oTranslate}}</mat-radio-button>\n <mat-radio-button value=\"all-data\">{{'TABLE.FILTER_BY_COLUMN.ALL_PAGE' | oTranslate}}</mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </div>\n </div>\n\n <ng-template #emptyListData>\n <span class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY' | oTranslate }}\n </span>\n </ng-template>\n <cdk-virtual-scroll-viewport itemSize=\"30\" fxFlex>\n <mat-selection-list *ngIf=\"preloadValues || listData\" #filterValueList class=\"select-values-list\" (selectionChange)=\"onSelect($event)\">\n <ng-container *cdkVirtualFor=\"let record of (listData | async); let i = index;templateCacheSize: 0\">\n <mat-list-option checkboxPosition=\"before\" [selected]=\"selection.isSelected(record)\" [value]=\"record\">\n <ng-container *ngIf=\"record.value | isEmptyValue; else showValue\">\n {{ 'TABLE.FILTER_BY_COLUMN.EMPTY_VALUE' | oTranslate }}\n </ng-container>\n <ng-template #showValue>\n <!-- if there are visible columns, show rendererValue -->\n <ng-container *ngIf=\"visibleColumnsArray?.length > 0; else noVisibleColumns\">\n {{ record.renderedValue }}\n </ng-container>\n\n <!-- If there are no visible columns, use the previous behavior -->\n <ng-template #noVisibleColumns>\n <!-- If there is no column renderer, show the raw value -->\n <ng-container *ngIf=\"!column.renderer; else withRenderer\">\n {{ record.value }}\n </ng-container>\n\n <!-- If there is a renderer, use its template reference -->\n <ng-template #withRenderer>\n <ng-template [ngTemplateOutlet]=\"column.renderer.templateref\" [ngTemplateOutletContext]=\"{\n cellvalue: record.value,\n rowvalue: record.rowValue\n }\"></ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n </mat-list-option>\n </ng-container>\n </mat-selection-list>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n\n\n<mat-dialog-actions fxLayoutAlign=\"space-between center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"clearAction\" class=\"o-button-info\">\n {{ 'TABLE.BUTTONS.FILTER_CLEAR' | oTranslate }} </button>\n <span align=\"end\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"cancelAction\" class=\"o-button-default cancel\">\n {{ 'CANCEL' | oTranslate }} </button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"acceptAction\" class=\"o-button-primary\">\n {{ 'ACCEPT' | oTranslate }} </button>\n </span>\n</mat-dialog-actions>\n\n<!-- TEMPLATE CUSTOM FILTER-->\n<ng-template #customFilterTemplate>\n <div *ngIf=\"isTextType()\">\n <mat-form-field fxFlex class=\"hinted\">\n <input matInput #filterText [formControl]=\"fcText\" placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div *ngIf=\"isNumericType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [formControl]=\"fcFrom\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n </mat-form-field>\n <mat-form-field>\n <input matInput [formControl]=\"fcTo\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n </mat-form-field>\n <button type=\"button\" mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n <div *ngIf=\"isDateType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerFrom\" [max]=\"fcTo.value\" [formControl]=\"fcFrom\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerFrom\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerFrom [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerTo\" [min]=\"fcFrom.value\" [formControl]=\"fcTo\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerTo\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerTo [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n\n</ng-template>\n", styles: [".filtervalues-container{padding:12px}.filtervalues-container .mat-divider{margin:8px}.filtervalues-container .mdc-list-group__subheader{font-weight:400;margin-top:0;margin-bottom:0}.filtervalues-container mat-radio-group.mat-mdc-radio-group{margin:12px 12px 0}.o-filter-by-column-dialog .mat-mdc-slide-toggle{padding-bottom:24px;padding-left:14px}.o-filter-by-column-dialog .content-wrapper{padding-top:12px;margin:0}.o-filter-by-column-dialog .content-wrapper.content-wrapper-fixed-dimension{max-height:430px;min-height:430px;min-width:250px;width:100%}.o-filter-by-column-dialog .content-wrapper .mat-mdc-form-field.hinted{margin-bottom:24px}.o-filter-by-column-dialog .content-wrapper .select-values-list{padding-top:0;overflow-y:auto;overflow-x:hidden;outline:none}.o-filter-by-column-dialog .content-wrapper .select-values-list .mat-mdc-list-item{height:30px}.o-filter-by-column-dialog .content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-filter-by-column-dialog .content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item .mat-icon{font-size:24px}.o-filter-by-column-dialog .content-wrapper .column-filter-empty-list{text-align:center}\n"] }]
|
|
344
|
+
}, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.FILTER_BY_COLUMN' | oTranslate }}: {{ column.title | oTranslate }}</span>\n<div mat-dialog-content class=\"dialog-list-container\">\n <div fxLayout=\"column\" class=\"content-wrapper\" [class.content-wrapper-fixed-dimension]=\"getFixedDimensionClass()\">\n <mat-slide-toggle #customFilterSlide (change)=\"onSlideChange($event)\" [checked]=\"(isCustomFilter | async)\" *ngIf=\"isDefaultFilter | async\">\n {{ 'TABLE.FILTER_BY_COLUMN.CUSTOM_FILTER' | oTranslate }}\n </mat-slide-toggle>\n <div fxFlex=\"1 1 100%\" *ngIf=\"!(isCustomFilter | async);else customFilterTemplate\" fxLayout=\"column\">\n <mat-form-field class=\"hinted\">\n <mat-icon matPrefix svgIcon=\"ontimize:search\"></mat-icon>\n <input matInput #filter placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n </mat-form-field>\n <div *ngIf=\"(listData | async).length > 0; else emptyListData\" fxLayout=\"row\" fxLayoutAlign=\"space-between start\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <mat-checkbox (change)=\"onSelectAllChange($event)\" [checked]=\"areAllSelected()\" [indeterminate]=\"isIndeterminate()\" [disabled]=\"!listData\"\n class=\"select-all-checkbox\">\n {{ 'TABLE.FILTER_BY_COLUMN.CHECK_ALL' | oTranslate }}\n </mat-checkbox>\n <span *ngIf=\"!listData\" class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY_FILTER' | oTranslate }}\n </span>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <button type=\"button\" mat-icon-button (click)=\"onClickSortValues()\">\n <mat-icon [svgIcon]=\"getSortByAlphaIcon()\"></mat-icon>\n </button>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"showFilterValuesOption\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div fxLayout=\"column\" class=\"filtervalues-container\">\n <div mat-subheader>\n {{'TABLE.FILTER_BY_COLUMN.LABEL_DATA' | oTranslate}}\n </div>\n <mat-divider></mat-divider>\n <mat-radio-group aria-label=\"Data\" fxLayout=\"column\" fxLayoutGap=\"12px\" [(ngModel)]=\"sourceData\" (change)=\"onChangeDataSource($event)\">\n <mat-radio-button value=\"current-page\">{{'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE' | oTranslate}}</mat-radio-button>\n <mat-radio-button value=\"all-data\">{{'TABLE.FILTER_BY_COLUMN.ALL_PAGE' | oTranslate}}</mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </div>\n </div>\n\n <ng-template #emptyListData>\n <span class=\"column-filter-empty-list\">\n {{ 'TABLE.FILTER_BY_COLUMN.LIST_EMPTY' | oTranslate }}\n </span>\n </ng-template>\n <cdk-virtual-scroll-viewport itemSize=\"30\" fxFlex class=\"virtual-scroll-viewport\">\n <mat-selection-list *ngIf=\"preloadValues || listData\" #filterValueList class=\"select-values-list\" (selectionChange)=\"onSelect($event)\">\n <ng-container *cdkVirtualFor=\"let record of (listData | async); let i = index;templateCacheSize: 0\">\n <mat-list-option checkboxPosition=\"before\" [selected]=\"selection.isSelected(record)\" [value]=\"record\">\n <ng-container *ngIf=\"record.value | isEmptyValue; else showValue\">\n {{ 'TABLE.FILTER_BY_COLUMN.EMPTY_VALUE' | oTranslate }}\n </ng-container>\n <ng-template #showValue>\n <!-- if there are visible columns, show rendererValue -->\n <ng-container *ngIf=\"visibleColumnsArray?.length > 0; else noVisibleColumns\">\n {{ record.renderedValue }}\n </ng-container>\n\n <!-- If there are no visible columns, use the previous behavior -->\n <ng-template #noVisibleColumns>\n <!-- If there is no column renderer, show the raw value -->\n <ng-container *ngIf=\"!column.renderer; else withRenderer\">\n {{ record.value }}\n </ng-container>\n\n <!-- If there is a renderer, use its template reference -->\n <ng-template #withRenderer>\n <ng-template [ngTemplateOutlet]=\"column.renderer.templateref\" [ngTemplateOutletContext]=\"{\n cellvalue: record.value,\n rowvalue: record.rowValue\n }\"></ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n </mat-list-option>\n </ng-container>\n </mat-selection-list>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n\n\n<mat-dialog-actions fxLayoutAlign=\"space-between center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"clearAction\" class=\"o-button-info\">\n {{ 'TABLE.BUTTONS.FILTER_CLEAR' | oTranslate }} </button>\n <span align=\"end\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"cancelAction\" class=\"o-button-default cancel\">\n {{ 'CANCEL' | oTranslate }} </button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"acceptAction\" class=\"o-button-primary\">\n {{ 'ACCEPT' | oTranslate }} </button>\n </span>\n</mat-dialog-actions>\n\n<!-- TEMPLATE CUSTOM FILTER-->\n<ng-template #customFilterTemplate>\n <div *ngIf=\"isTextType()\">\n <mat-form-field fxFlex class=\"hinted\">\n <input matInput #filterText [formControl]=\"fcText\" placeholder=\"{{ 'TABLE.FILTER' | oTranslate }}\">\n <mat-hint>{{ 'TABLE.FILTER_BY_COLUMN.HINT_STAR' | oTranslate }}</mat-hint>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div *ngIf=\"isNumericType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [formControl]=\"fcFrom\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n </mat-form-field>\n <mat-form-field>\n <input matInput [formControl]=\"fcTo\" placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n </mat-form-field>\n <button type=\"button\" mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n <div *ngIf=\"isDateType()\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"12px\">\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerFrom\" [max]=\"fcTo.value\" [formControl]=\"fcFrom\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.FROM' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerFrom\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerFrom [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <mat-form-field>\n <input matInput [matDatepicker]=\"datepickerTo\" [min]=\"fcFrom.value\" [formControl]=\"fcTo\"\n placeholder=\"{{ 'TABLE.FILTER_BY_COLUMN.TO' | oTranslate }}\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerTo\">\n <mat-icon matDatepickerToggleIcon>today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #datepickerTo [startView]=\"getStartedViewDatepicker()\"></mat-datepicker>\n </mat-form-field>\n <button type=\"button\" matSuffix mat-icon-button (click)=\"clearValues()\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n </div>\n\n</ng-template>\n", styles: [".filtervalues-container{padding:12px}.filtervalues-container .mat-divider{margin:8px}.filtervalues-container .mdc-list-group__subheader{font-weight:400;margin-top:0;margin-bottom:0}.filtervalues-container mat-radio-group.mat-mdc-radio-group{margin:12px 12px 0}.o-filter-by-column-dialog .mat-mdc-slide-toggle{padding-bottom:24px;padding-left:14px}.o-filter-by-column-dialog .content-wrapper{padding-top:12px;margin:0}.o-filter-by-column-dialog .content-wrapper.content-wrapper-fixed-dimension{max-height:430px;min-height:430px;min-width:250px;width:100%}.o-filter-by-column-dialog .content-wrapper .mat-mdc-form-field.hinted{margin-bottom:24px}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper{width:100%}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list{padding-top:0;overflow-y:auto;overflow-x:hidden;outline:none}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list .mat-mdc-list-item{height:30px}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-filter-by-column-dialog .content-wrapper .cdk-virtual-scroll-content-wrapper .select-values-list .mat-mdc-list-item .mat-mdc-list-item .mat-icon{font-size:24px}.o-filter-by-column-dialog .content-wrapper .column-filter-empty-list{text-align:center}\n"] }]
|
|
345
345
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.MatDialogRef }, { type: i2.OTableFilterByColumnService }, { type: undefined, decorators: [{
|
|
346
346
|
type: Inject,
|
|
347
347
|
args: [MAT_DIALOG_DATA]
|
|
@@ -352,4 +352,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
352
352
|
type: ViewChild,
|
|
353
353
|
args: ['filterValueList']
|
|
354
354
|
}] } });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvZGlhbG9nL2ZpbHRlci1ieS1jb2x1bW4vby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvZGlhbG9nL2ZpbHRlci1ieS1jb2x1bW4vby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sd0JBQXdCLENBQUM7QUFHbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBc0IsTUFBTSx1REFBdUQsQ0FBQztBQUN0SCxPQUFPLEVBQTJCLCtCQUErQixFQUFFLE1BQU0sK0RBQStE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QUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUM7SUFDL0YsQ0FBQztJQUFBLENBQUM7O29JQWxZUyx1Q0FBdUMsaUhBK0N4QyxlQUFlO3dIQS9DZCx1Q0FBdUMsd1ZDbkNwRCwrd1BBK0lBOzJGRDVHYSx1Q0FBdUM7a0JBVm5ELFNBQVM7K0JBQ0Usc0NBQXNDLGlCQUdqQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLG1DQUFtQyxFQUFFLE1BQU07cUJBQzVDOzswQkFpREUsTUFBTTsyQkFBQyxlQUFlOzRDQWxCSixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ1csZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0b3IsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCwgTWF0U2VsZWN0aW9uTGlzdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLCBPQ29sdW1uVmFsdWVGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi12YWx1ZS1maWx0ZXIudHlwZSc7XG5pbXBvcnQgeyBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSwgVGFibGVGaWx0ZXJCeUNvbHVtbkRpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL3RhYmxlL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi1kYXRhLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vby10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0ZpbHRlckNvbHVtbiB9IGZyb20gJy4uLy4uL2hlYWRlci90YWJsZS1jb2x1bW5zLWZpbHRlci9jb2x1bW5zL28tdGFibGUtY29sdW1ucy1maWx0ZXItY29sdW1uLmNvbXBvbmVudCc7XG5cbmltcG9ydCB0eXBlIHsgT0NvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UgfSBmcm9tICcuL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvYmFzZS1zZXJ2aWNlLmNsYXNzJztcblxuY29uc3QgQ1VTVE9NX0ZJTFRFUlNfT1BFUkFUT1JTID0gbmV3IFNldChbQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5MRVNTX0VRVUFMLCBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLk1PUkVfRVFVQUwsIENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuQkVUV0VFTiwgQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5FUVVBTF0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4tZGF0YS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJ28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi1kYXRhLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydvLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4tZGF0YS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm8tZmlsdGVyLWJ5LWNvbHVtbi1kaWFsb2ddJzogJ3RydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlRmlsdGVyQnlDb2x1bW5EYXRhRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHVibGljIGFjY2VwdEFjdGlvbiA9IFRhYmxlRmlsdGVyQnlDb2x1bW5EaWFsb2dSZXN1bHQuQUNDRVBUO1xuICBwdWJsaWMgY2FuY2VsQWN0aW9uID0gVGFibGVGaWx0ZXJCeUNvbHVtbkRpYWxvZ1Jlc3VsdC5DQU5DRUw7XG4gIHB1YmxpYyBjbGVhckFjdGlvbiA9IFRhYmxlRmlsdGVyQnlDb2x1bW5EaWFsb2dSZXN1bHQuQ0xFQVI7XG5cbiAgY29sdW1uOiBPQ29sdW1uO1xuICBwcmVsb2FkVmFsdWVzOiBib29sZWFuID0gdHJ1ZTtcbiAgbW9kZTogc3RyaW5nO1xuICBzdGFydFZpZXc6ICdtb250aCcgfCAneWVhcicgfCAnbXVsdGkteWVhcicgfCAnJztcblxuICBwdWJsaWMgb25Tb3J0RmlsdGVyVmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8T0ZpbHRlckNvbHVtbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNDdXN0b21GaWx0ZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzQ3VzdG9tRmlsdGVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0N1c3RvbUZpbHRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0RlZmF1bHRGaWx0ZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzRGVmYXVsdEZpbHRlcjogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaXNEZWZhdWx0RmlsdGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBmY1RleHQgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIGZjRnJvbSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgZmNUbyA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICBwcm90ZWN0ZWQgY29sdW1uRGF0YTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSA9IFtdO1xuICBwcm90ZWN0ZWQgdGFibGVEYXRhOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGlzdERhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YVtdPihbXSk7XG4gIHByb3RlY3RlZCBfbGlzdERhdGE6IE9ic2VydmFibGU8VGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXT4gPSB0aGlzLmxpc3REYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgcHJvdGVjdGVkIHNlcnZpY2U6IEJhc2VTZXJ2aWNlPFNlcnZpY2VSZXNwb25zZT47XG5cbiAgQFZpZXdDaGlsZCgnZmlsdGVyJykgZmlsdGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdmaWx0ZXJWYWx1ZUxpc3QnKSBmaWx0ZXJWYWx1ZUxpc3Q6IE1hdFNlbGVjdGlvbkxpc3Q7XG4gIHB1YmxpYyBhY3RpdmVTb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8ICcnO1xuICBzb3VyY2VEYXRhOiAnY3VycmVudC1wYWdlJyB8ICdhbGwtZGF0YSc7XG4gIHF1ZXJ5QnlGaWx0ZXJDb2x1bW5TdWJzY3JpcHRpb246IGFueTtcbiAgdGFibGU6IE9UYWJsZUNvbXBvbmVudDtcbiAgc2hvd0ZpbHRlclZhbHVlc09wdGlvbjogYm9vbGVhbjtcbiAgcXVlcnlNZXRob2ROYW1lOiBzdHJpbmc7XG4gIHByZXZpb3VzRmlsdGVyOiBPQ29sdW1uVmFsdWVGaWx0ZXI7XG4gIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YT4odHJ1ZSwgW10sIHRydWUsIHRoaXMuY29tcGFyZU9wdGlvbnMoKSk7XG4gIHZpc2libGVDb2x1bW5zQXJyYXk6IHN0cmluZ1tdO1xuICBzZXBhcmF0b3I6IHN0cmluZ1xuICBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uOiBPRmlsdGVyQ29sdW1uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE9UYWJsZUZpbHRlckJ5Q29sdW1uRGF0YURpYWxvZ0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTZXJ2aWNlOiBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UsXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IHsgY29sdW1uOiBPQ29sdW1uOyB0YWJsZTogT1RhYmxlQ29tcG9uZW50IH1cbiAgKSB7XG4gICAgdGhpcy5pbml0RnJvbURhdGEoZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRGcm9tRGF0YShkYXRhOiB7IGNvbHVtbjogT0NvbHVtbjsgdGFibGU6IE9UYWJsZUNvbXBvbmVudCB9KSB7XG4gICAgdGhpcy5jb2x1bW4gPSBkYXRhLmNvbHVtbjtcbiAgICB0aGlzLnRhYmxlID0gZGF0YS50YWJsZTtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCB7XG4gICAgICBwYWdpbmF0aW9uQ29udHJvbHMsXG4gICAgICBvVGFibGVDb2x1bW5zRmlsdGVyQ29tcG9uZW50LFxuICAgICAgZGF0YVNvdXJjZVxuICAgIH0gPSB0aGlzLnRhYmxlO1xuXG4gICAgdGhpcy5zaG93RmlsdGVyVmFsdWVzT3B0aW9uID0gcGFnaW5hdGlvbkNvbnRyb2xzO1xuICAgIHRoaXMuZmlsdGVyQ29sdW1uRGVmaW5pdGlvbiA9IHRoaXMudGFibGUuZ2V0RmlsdGVyQ29sdW1uQnlBdHRyKHRoaXMuY29sdW1uLmF0dHIpO1xuICAgIGNvbnN0IHsgZmlsdGVyVmFsdWVzSW5EYXRhLCBzZXBhcmF0b3IsIHZpc2libGVDb2x1bW5zIH0gPSB0aGlzLmZpbHRlckNvbHVtbkRlZmluaXRpb247XG5cbiAgICB0aGlzLnNvdXJjZURhdGEgPSBmaWx0ZXJWYWx1ZXNJbkRhdGE7XG4gICAgdGhpcy5zZXBhcmF0b3IgPSBzZXBhcmF0b3I7XG4gICAgdGhpcy52aXNpYmxlQ29sdW1uc0FycmF5ID0gdmlzaWJsZUNvbHVtbnM7XG5cbiAgICB0aGlzLm1vZGUgPSBvVGFibGVDb2x1bW5zRmlsdGVyQ29tcG9uZW50Py5tb2RlID8/ICdkZWZhdWx0JztcbiAgICB0aGlzLnByZWxvYWRWYWx1ZXMgPSBvVGFibGVDb2x1bW5zRmlsdGVyQ29tcG9uZW50Py5wcmVsb2FkVmFsdWVzID8/IHRydWU7XG5cbiAgICB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPSB0aGlzLnRhYmxlLmdldFNvcnRGaWx0ZXJDb2x1bW4odGhpcy5jb2x1bW4pID8/ICcnO1xuICAgIHRoaXMuc3RhcnRWaWV3ID0gdGhpcy50YWJsZS5nZXRTdGFydFZpZXdGaWx0ZXJDb2x1bW4odGhpcy5jb2x1bW4pID8/ICdtb250aCc7XG4gICAgdGhpcy5wcmV2aW91c0ZpbHRlciA9IGRhdGFTb3VyY2UuZ2V0Q29sdW1uVmFsdWVGaWx0ZXJCeUF0dHIodGhpcy5jb2x1bW4uYXR0cikgPz8gdGhpcy5jcmVhdGVFbXB0eUZpbHRlcigpO1xuXG4gICAgY29uc3QgaXNDdXN0b20gPSBDVVNUT01fRklMVEVSU19PUEVSQVRPUlMuaGFzKHRoaXMucHJldmlvdXNGaWx0ZXIub3BlcmF0b3IpO1xuICAgIHRoaXMuaXNDdXN0b21GaWx0ZXJTdWJqZWN0Lm5leHQoaXNDdXN0b20pO1xuICAgIHRoaXMuaXNEZWZhdWx0RmlsdGVyU3ViamVjdC5uZXh0KCFpc0N1c3RvbSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW1wdHlGaWx0ZXIoKTogT0NvbHVtblZhbHVlRmlsdGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cjogdGhpcy5jb2x1bW4uYXR0cixcbiAgICAgIG9wZXJhdG9yOiB1bmRlZmluZWQsXG4gICAgICB2YWx1ZXM6IHVuZGVmaW5lZCxcbiAgICAgIGF2YWlsYWJsZVZhbHVlczogdW5kZWZpbmVkLFxuICAgICAgZmlsdGVyRXhwcmVzaW9uOiB1bmRlZmluZWQsXG4gICAgICBmaWx0ZXJWYWx1ZXNJbkRhdGE6IHRoaXMuc291cmNlRGF0YVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGF0YUFuZEluaXRpYWxpemVEYXRhTGlzdChwcmV2aW91c0ZpbHRlcjogT0NvbHVtblZhbHVlRmlsdGVyKSB7XG5cbiAgICB0aGlzLmNvbHVtbkRhdGEgPSB0aGlzLmZpbHRlclNlcnZpY2UuaW5pdGlhbGl6ZUNvbHVtbkZpbHRlckRhdGEoXG4gICAgICB0aGlzLnByZXZpb3VzRmlsdGVyLFxuICAgICAgdGhpcy5jb2x1bW4sXG4gICAgICB0aGlzLnRhYmxlRGF0YSxcbiAgICAgIHRoaXMudGFibGUucGFnZWFibGUsXG4gICAgICB0aGlzLmZpbHRlckNvbHVtbkRlZmluaXRpb25cbiAgICApO1xuXG4gICAgaWYgKHByZXZpb3VzRmlsdGVyLnZhbHVlcyAmJiBwcmV2aW91c0ZpbHRlci52YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuY29sdW1uRGF0YS5maWx0ZXIoaXRlbSA9PiBwcmV2aW91c0ZpbHRlci52YWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSAhPT0gLTEpKTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocHJldmlvdXNGaWx0ZXIpKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21GaWx0ZXJWYWx1ZXMocHJldmlvdXNGaWx0ZXIpO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemVEYXRhTGlzdChwcmV2aW91c0ZpbHRlcik7XG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJFdmVudCgpO1xuICB9XG5cbiAgZ2V0IGxpc3REYXRhKCk6IE9ic2VydmFibGU8VGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXT4ge1xuICAgIHJldHVybiB0aGlzLl9saXN0RGF0YTtcbiAgfVxuXG4gIHNldCBsaXN0RGF0YShhcmc6IE9ic2VydmFibGU8VGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXT4pIHtcbiAgICB0aGlzLl9saXN0RGF0YSA9IGFyZztcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplRGF0YUxpc3QoZmlsdGVyPzogT0NvbHVtblZhbHVlRmlsdGVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlbG9hZFZhbHVlcyB8fCAoZmlsdGVyICYmIGZpbHRlci5vcGVyYXRvciA9PT0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5JTikpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPT09IENvZGVzLkFTQ19TT1JUIHx8IHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbiA9PT0gQ29kZXMuREVTQ19TT1JUKSB7XG4gICAgICAgIHRoaXMuc29ydERhdGEoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0Lm5leHQodGhpcy5jb2x1bW5EYXRhLnNsaWNlKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplRmlsdGVyRXZlbnQoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGxldCBmaWx0ZXJWYWx1ZTogc3RyaW5nID0gdGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICBmaWx0ZXJWYWx1ZSA9IFV0aWwubm9ybWFsaXplU3RyaW5nKGZpbHRlclZhbHVlKTtcbiAgICAgICAgICBpZiAoZmlsdGVyVmFsdWUuaW5kZXhPZignKicpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YVN1YmplY3QubmV4dCh0aGlzLmNvbHVtbkRhdGEuZmlsdGVyKGl0ZW0gPT4gbmV3IFJlZ0V4cCgnXicgKyBVdGlsLm5vcm1hbGl6ZVN0cmluZyhmaWx0ZXJWYWx1ZSkuc3BsaXQoJyonKS5qb2luKCcuKicpICsgJyQnKS50ZXN0KFV0aWwubm9ybWFsaXplU3RyaW5nKGl0ZW0ucmVuZGVyZWRWYWx1ZSkpKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0Lm5leHQodGhpcy5jb2x1bW5EYXRhLmZpbHRlcihpdGVtID0+IChVdGlsLm5vcm1hbGl6ZVN0cmluZyhpdGVtLnJlbmRlcmVkVmFsdWUpLmluZGV4T2YoZmlsdGVyVmFsdWUpICE9PSAtMSkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplQ3VzdG9tRmlsdGVyVmFsdWVzKGZpbHRlcjogT0NvbHVtblZhbHVlRmlsdGVyKTogdm9pZCB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIGZpbHRlci5vcGVyYXRvciA9PT0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5FUVVBTDpcbiAgICAgICAgaWYgKHRoaXMuaXNUZXh0VHlwZSgpKSB7XG4gICAgICAgICAgdGhpcy5mY1RleHQuc2V0VmFsdWUoZmlsdGVyLnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGZpbHRlci5vcGVyYXRvciA9PT0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5CRVRXRUVOOlxuICAgICAgICB0aGlzLmZjRnJvbS5zZXRWYWx1ZSh0aGlzLmlzRGF0ZVR5cGUoKSA/IG5ldyBEYXRlKGZpbHRlci52YWx1ZXNbMF0pIDogZmlsdGVyLnZhbHVlc1swXSk7XG4gICAgICAgIHRoaXMuZmNUby5zZXRWYWx1ZSh0aGlzLmlzRGF0ZVR5cGUoKSA/IG5ldyBEYXRlKGZpbHRlci52YWx1ZXNbMV0pIDogZmlsdGVyLnZhbHVlc1sxXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBmaWx0ZXIub3BlcmF0b3IgPT09IENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuTU9SRV9FUVVBTDpcbiAgICAgICAgdGhpcy5mY0Zyb20uc2V0VmFsdWUodGhpcy5pc0RhdGVUeXBlKCkgPyBuZXcgRGF0ZShmaWx0ZXIudmFsdWVzKSA6IGZpbHRlci52YWx1ZXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZmlsdGVyLm9wZXJhdG9yID09PSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLkxFU1NfRVFVQUw6XG4gICAgICAgIHRoaXMuZmNUby5zZXRWYWx1ZSh0aGlzLmlzRGF0ZVR5cGUoKSA/IG5ldyBEYXRlKGZpbHRlci52YWx1ZXMpIDogZmlsdGVyLnZhbHVlcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cblxuICBhcmVBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmNvbHVtbkRhdGEubGVuZ3RoO1xuICB9XG5cbiAgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XG4gICAgcmV0dXJuIHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoICE9PSB0aGlzLmNvbHVtbkRhdGEubGVuZ3RoO1xuICB9XG5cbiAgb25TZWxlY3QoZXZlbnQ6IE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UpIHtcblxuICAgIGV2ZW50Lm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb24udmFsdWU7XG5cbiAgICAgIHZhbHVlLnNlbGVjdGVkID0gb3B0aW9uLnNlbGVjdGVkO1xuICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0LmdldFZhbHVlKCkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdCguLi50aGlzLmxpc3REYXRhU3ViamVjdC5nZXRWYWx1ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0RGF0YVN1YmplY3QuZ2V0VmFsdWUoKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29sdW1uVmFsdWVzRmlsdGVyKCk6IE9Db2x1bW5WYWx1ZUZpbHRlciB7XG4gICAgY29uc3QgZmlsdGVyOiBPQ29sdW1uVmFsdWVGaWx0ZXIgPSB7XG4gICAgICBhdHRyOiB0aGlzLmNvbHVtbi5hdHRyLFxuICAgICAgb3BlcmF0b3I6IHVuZGVmaW5lZCxcbiAgICAgIHZhbHVlczogdW5kZWZpbmVkLFxuICAgICAgYXZhaWxhYmxlVmFsdWVzOiB0aGlzLnByZXZpb3VzRmlsdGVyPy5hdmFpbGFibGVWYWx1ZXMgfHwgdW5kZWZpbmVkLFxuICAgICAgZmlsdGVyRXhwcmVzaW9uOiB0aGlzLnByZXZpb3VzRmlsdGVyPy5maWx0ZXJFeHByZXNpb24gfHwgdW5kZWZpbmVkLFxuICAgICAgZmlsdGVyVmFsdWVzSW5EYXRhOiB0aGlzLnNvdXJjZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmlzQ3VzdG9tRmlsdGVyU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlczogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xuICAgICAgaWYgKHNlbGVjdGVkVmFsdWVzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UuYXBwbHlTZWxlY3RlZFZhbHVlc1RvRmlsdGVyKHRoaXMuY29sdW1uLCB0aGlzLnRhYmxlRGF0YSwgZmlsdGVyLCBzZWxlY3RlZFZhbHVlcywgdGhpcy5maWx0ZXJDb2x1bW5EZWZpbml0aW9uLCB0aGlzLnRhYmxlLnBhZ2VhYmxlLCAoKSA9PiB0aGlzLnRhYmxlLmdldENvbXBvbmVudEZpbHRlcigpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZmNUZXh0LnZhbHVlKSB7XG4gICAgICAgIGZpbHRlci5vcGVyYXRvciA9IENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuRVFVQUw7XG4gICAgICAgIGZpbHRlci52YWx1ZXMgPSB0aGlzLmdldFR5cGVkVmFsdWUodGhpcy5mY1RleHQpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmNGcm9tLnZhbHVlICYmIHRoaXMuZmNUby52YWx1ZSkge1xuICAgICAgICBmaWx0ZXIub3BlcmF0b3IgPSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLkJFVFdFRU47XG4gICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZ2V0VHlwZWRWYWx1ZSh0aGlzLmZjRnJvbSk7XG4gICAgICAgIGNvbnN0IHRvVmFsdWUgPSB0aGlzLmdldFR5cGVkVmFsdWUodGhpcy5mY1RvKTtcbiAgICAgICAgZmlsdGVyLnZhbHVlcyA9IGZyb21WYWx1ZSA8PSB0b1ZhbHVlID8gW2Zyb21WYWx1ZSwgdG9WYWx1ZV0gOiBbdG9WYWx1ZSwgZnJvbVZhbHVlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmZjRnJvbS52YWx1ZSkge1xuICAgICAgICAgIGZpbHRlci5vcGVyYXRvciA9IENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuTU9SRV9FUVVBTDtcbiAgICAgICAgICBmaWx0ZXIudmFsdWVzID0gdGhpcy5nZXRUeXBlZFZhbHVlKHRoaXMuZmNGcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mY1RvLnZhbHVlKSB7XG4gICAgICAgICAgZmlsdGVyLm9wZXJhdG9yID0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5MRVNTX0VRVUFMO1xuICAgICAgICAgIGZpbHRlci52YWx1ZXMgPSB0aGlzLmdldFR5cGVkVmFsdWUodGhpcy5mY1RvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG5cbiAgY2xlYXJWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNUZXh0VHlwZSgpKSB7XG4gICAgICB0aGlzLmZjVGV4dC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0RhdGVUeXBlKCkgfHwgdGhpcy5pc051bWVyaWNUeXBlKCkpIHtcbiAgICAgIHRoaXMuZmNGcm9tLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmZjVG8uc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrU29ydFZhbHVlcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbikge1xuICAgICAgY2FzZSAnYXNjJzpcbiAgICAgICAgdGhpcy5hY3RpdmVTb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rlc2MnOlxuICAgICAgICB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPSAnYXNjJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMub25Tb3J0RmlsdGVyVmFsdWVzQ2hhbmdlLmVtaXQodGhpcy5nZXRGaWx0ZXJDb2x1bW4oKSk7XG4gICAgdGhpcy5zb3J0RGF0YSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNvcnREYXRhKCkge1xuICAgIGNvbnN0IHNvcnRlZERhdGEgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLmNvbHVtbkRhdGEpO1xuICAgIGlmICh0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gIT09ICcnKSB7XG4gICAgICB0aGlzLmxpc3REYXRhU3ViamVjdC5uZXh0KHNvcnRlZERhdGEuc29ydCh0aGlzLnNvcnRGdW5jdGlvbi5iaW5kKHRoaXMpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0Lm5leHQoc29ydGVkRGF0YSk7XG4gICAgfVxuXG4gIH1cblxuICBwcm90ZWN0ZWQgc29ydEZ1bmN0aW9uKGE6IGFueSwgYjogYW55KTogbnVtYmVyIHtcbiAgICBsZXQgcHJvcGVydHlBOiBudW1iZXIgfCBzdHJpbmcgPSAnJztcbiAgICBsZXQgcHJvcGVydHlCOiBudW1iZXIgfCBzdHJpbmcgPSAnJztcbiAgICBbcHJvcGVydHlBLCBwcm9wZXJ0eUJdID0gW2FbJ3ZhbHVlJ10sIGJbJ3ZhbHVlJ11dO1xuXG4gICAgcmV0dXJuIFV0aWwuc29ydEZ1bmN0aW9uKHByb3BlcnR5QSwgcHJvcGVydHlCLCB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24pO1xuICB9XG5cbiAgb25TbGlkZUNoYW5nZShlOiBNYXRTbGlkZVRvZ2dsZUNoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuaXNDdXN0b21GaWx0ZXJTdWJqZWN0Lm5leHQoZS5jaGVja2VkKTtcblxuICAgIGlmICghZS5jaGVja2VkKSB7XG4gICAgICAvLyBTZWxlY3Rpb24gbW9kZVxuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YUxpc3QoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJFdmVudCgpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgaXNUZXh0VHlwZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNOdW1lcmljVHlwZSgpICYmICF0aGlzLmlzRGF0ZVR5cGUoKTtcbiAgfVxuXG4gIGlzTnVtZXJpY1R5cGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnaW50ZWdlcicsICdyZWFsJywgJ2N1cnJlbmN5J10uaW5kZXhPZih0aGlzLmNvbHVtbi50eXBlKSAhPT0gLTE7XG4gIH1cblxuICBpc0RhdGVUeXBlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnZGF0ZScgPT09IHRoaXMuY29sdW1uLnR5cGU7XG4gIH1cblxuICBnZXRGaXhlZERpbWVuc2lvbkNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdzZWxlY3Rpb24nIHx8IHRoaXMubW9kZSA9PT0gJ2RlZmF1bHQnO1xuICB9XG5cbiAgZ2V0U29ydEJ5QWxwaGFJY29uKCkge1xuICAgIGxldCBpY29uID0gJ29udGltaXplOnNvcnRfYnlfYWxwaGEnO1xuICAgIGlmICh0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gIT09ICcnKSB7XG4gICAgICBpY29uICs9ICdfJyArIHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIGljb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RmlsdGVyQ29sdW1uKCk6IE9GaWx0ZXJDb2x1bW4ge1xuICAgIGxldCBvYmo6IE9GaWx0ZXJDb2x1bW4gPSB7IGF0dHI6ICcnLCBzb3J0OiAnJywgc3RhcnRWaWV3OiAnJyB9O1xuICAgIG9iai5hdHRyID0gdGhpcy5jb2x1bW4uYXR0cjtcbiAgICBvYmouc29ydCA9IHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbjtcbiAgICBvYmouc3RhcnRWaWV3ID0gdGhpcy5zdGFydFZpZXc7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGFydGVkVmlld0RhdGVwaWNrZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydFZpZXc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHlwZWRWYWx1ZShjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiBhbnkge1xuICAgIGxldCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHRoaXMuaXNOdW1lcmljVHlwZSgpKSB7XG4gICAgICB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRGF0ZVR5cGUoKSkge1xuICAgICAgdmFsdWUgPSBjb250cm9sLnZhbHVlLnZhbHVlT2YoKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIG9uQ2hhbmdlRGF0YVNvdXJjZShldmVudDogTWF0UmFkaW9DaGFuZ2UpIHtcbiAgICB0aGlzLnRhYmxlLmNsZWFyQ29sdW1uRmlsdGVyKHRoaXMuY29sdW1uLmF0dHIpO1xuICAgIHRoaXMuZ2V0RGF0YShldmVudC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoc291cmNlRGF0YT86ICdjdXJyZW50LXBhZ2UnIHwgJ2FsbC1kYXRhJykge1xuICAgIGlmIChzb3VyY2VEYXRhKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbHVtbkRlZmluaXRpb24uZmlsdGVyVmFsdWVzSW5EYXRhID0gc291cmNlRGF0YTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmdldERhdGFGb3JDb2x1bW5GaWx0ZXIoXG4gICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgdGhpcy50YWJsZSxcbiAgICAgIHRoaXMuY29sdW1uLFxuICAgICAgdGhpcy5maWx0ZXJDb2x1bW5EZWZpbml0aW9uXG4gICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLnBhcnNlRGF0YUFuZEluaXRpYWxpemVEYXRhTGlzdCh0aGlzLnByZXZpb3VzRmlsdGVyKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgaXNTZWxlY3RlZChpdGVtOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSkge1xuICAgIHJldHVybiBpdGVtLnNlbGVjdGVkO1xuICB9XG5cblxuICBjb21wYXJlT3B0aW9ucygpOiAoKG8xOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSwgbzI6IFRhYmxlRmlsdGVyQnlDb2x1bW5EYXRhKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChvMTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGEsIG8yOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSkgPT4gbzE/LnZhbHVlID09PSBvMj8udmFsdWU7XG4gIH07XG59XG4iLCI8c3BhbiBtYXQtZGlhbG9nLXRpdGxlPnt7ICdUQUJMRS5CVVRUT05TLkZJTFRFUl9CWV9DT0xVTU4nIHwgb1RyYW5zbGF0ZSB9fToge3sgY29sdW1uLnRpdGxlIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZGlhbG9nLWxpc3QtY29udGFpbmVyXCI+XG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiIFtjbGFzcy5jb250ZW50LXdyYXBwZXItZml4ZWQtZGltZW5zaW9uXT1cImdldEZpeGVkRGltZW5zaW9uQ2xhc3MoKVwiPlxuICAgIDxtYXQtc2xpZGUtdG9nZ2xlICNjdXN0b21GaWx0ZXJTbGlkZSAoY2hhbmdlKT1cIm9uU2xpZGVDaGFuZ2UoJGV2ZW50KVwiIFtjaGVja2VkXT1cIihpc0N1c3RvbUZpbHRlciB8IGFzeW5jKVwiICpuZ0lmPVwiaXNEZWZhdWx0RmlsdGVyIHwgYXN5bmNcIj5cbiAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkNVU1RPTV9GSUxURVInIHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8ZGl2IGZ4RmxleD1cIjEgMSAxMDAlXCIgKm5nSWY9XCIhKGlzQ3VzdG9tRmlsdGVyIHwgYXN5bmMpO2Vsc2UgY3VzdG9tRmlsdGVyVGVtcGxhdGVcIiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaGludGVkXCI+XG4gICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXggc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiPjwvbWF0LWljb24+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAjZmlsdGVyIHBsYWNlaG9sZGVyPVwie3sgJ1RBQkxFLkZJTFRFUicgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgICAgIDxtYXQtaGludD57eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5ISU5UX1NUQVInIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPGRpdiAqbmdJZj1cIihsaXN0RGF0YSB8IGFzeW5jKS5sZW5ndGggPiAwOyBlbHNlIGVtcHR5TGlzdERhdGFcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0YXJ0XCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RhcnRcIj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwib25TZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiIFtjaGVja2VkXT1cImFyZUFsbFNlbGVjdGVkKClcIiBbaW5kZXRlcm1pbmF0ZV09XCJpc0luZGV0ZXJtaW5hdGUoKVwiIFtkaXNhYmxlZF09XCIhbGlzdERhdGFcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtYWxsLWNoZWNrYm94XCI+XG4gICAgICAgICAgICB7eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5DSEVDS19BTEwnIHwgb1RyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWxpc3REYXRhXCIgY2xhc3M9XCJjb2x1bW4tZmlsdGVyLWVtcHR5LWxpc3RcIj5cbiAgICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkxJU1RfRU1QVFlfRklMVEVSJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0YXJ0XCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkNsaWNrU29ydFZhbHVlcygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiZ2V0U29ydEJ5QWxwaGFJY29uKClcIj48L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiICpuZ0lmPVwic2hvd0ZpbHRlclZhbHVlc09wdGlvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiZmlsdGVydmFsdWVzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IG1hdC1zdWJoZWFkZXI+XG4gICAgICAgICAgICAgICAge3snVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5MQUJFTF9EQVRBJyB8IG9UcmFuc2xhdGV9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgYXJpYS1sYWJlbD1cIkRhdGFcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMTJweFwiIFsobmdNb2RlbCldPVwic291cmNlRGF0YVwiIChjaGFuZ2UpPVwib25DaGFuZ2VEYXRhU291cmNlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cImN1cnJlbnQtcGFnZVwiPnt7J1RBQkxFLkZJTFRFUl9CWV9DT0xVTU4uQ1VSUkVOVF9QQUdFJyB8IG9UcmFuc2xhdGV9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cImFsbC1kYXRhXCI+e3snVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5BTExfUEFHRScgfCBvVHJhbnNsYXRlfX08L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUxpc3REYXRhPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbHVtbi1maWx0ZXItZW1wdHktbGlzdFwiPlxuICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkxJU1RfRU1QVFknIHwgb1RyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBpdGVtU2l6ZT1cIjMwXCIgZnhGbGV4PlxuICAgICAgICA8bWF0LXNlbGVjdGlvbi1saXN0ICpuZ0lmPVwicHJlbG9hZFZhbHVlcyB8fCBsaXN0RGF0YVwiICNmaWx0ZXJWYWx1ZUxpc3QgY2xhc3M9XCJzZWxlY3QtdmFsdWVzLWxpc3RcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJlY29yZCBvZiAobGlzdERhdGEgfCBhc3luYyk7IGxldCBpID0gaW5kZXg7dGVtcGxhdGVDYWNoZVNpemU6IDBcIj5cbiAgICAgICAgICAgIDxtYXQtbGlzdC1vcHRpb24gY2hlY2tib3hQb3NpdGlvbj1cImJlZm9yZVwiIFtzZWxlY3RlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyZWNvcmQpXCIgW3ZhbHVlXT1cInJlY29yZFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjb3JkLnZhbHVlIHwgaXNFbXB0eVZhbHVlOyBlbHNlIHNob3dWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkVNUFRZX1ZBTFVFJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd1ZhbHVlPlxuICAgICAgICAgICAgICAgIDwhLS0gIGlmIHRoZXJlIGFyZSB2aXNpYmxlIGNvbHVtbnMsIHNob3cgcmVuZGVyZXJWYWx1ZSAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlzaWJsZUNvbHVtbnNBcnJheT8ubGVuZ3RoID4gMDsgZWxzZSBub1Zpc2libGVDb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgICB7eyByZWNvcmQucmVuZGVyZWRWYWx1ZSB9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBJZiB0aGVyZSBhcmUgbm8gdmlzaWJsZSBjb2x1bW5zLCB1c2UgdGhlIHByZXZpb3VzIGJlaGF2aW9yIC0tPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9WaXNpYmxlQ29sdW1ucz5cbiAgICAgICAgICAgICAgICAgIDwhLS0gSWYgdGhlcmUgaXMgbm8gY29sdW1uIHJlbmRlcmVyLCBzaG93IHRoZSByYXcgdmFsdWUgLS0+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtbi5yZW5kZXJlcjsgZWxzZSB3aXRoUmVuZGVyZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgcmVjb3JkLnZhbHVlIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgPCEtLSBJZiB0aGVyZSBpcyBhIHJlbmRlcmVyLCB1c2UgaXRzIHRlbXBsYXRlIHJlZmVyZW5jZSAtLT5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjd2l0aFJlbmRlcmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLnJlbmRlcmVyLnRlbXBsYXRlcmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGx2YWx1ZTogcmVjb3JkLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93dmFsdWU6IHJlY29yZC5yb3dWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtbGlzdC1vcHRpb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LXNlbGVjdGlvbi1saXN0PlxuICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImNsZWFyQWN0aW9uXCIgY2xhc3M9XCJvLWJ1dHRvbi1pbmZvXCI+XG4gICAge3sgJ1RBQkxFLkJVVFRPTlMuRklMVEVSX0NMRUFSJyB8IG9UcmFuc2xhdGUgfX0gPC9idXR0b24+XG4gIDxzcGFuIGFsaWduPVwiZW5kXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImNhbmNlbEFjdGlvblwiIGNsYXNzPVwiby1idXR0b24tZGVmYXVsdCBjYW5jZWxcIj5cbiAgICAgIHt7ICdDQU5DRUwnIHwgb1RyYW5zbGF0ZSB9fSA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwiYWNjZXB0QWN0aW9uXCIgY2xhc3M9XCJvLWJ1dHRvbi1wcmltYXJ5XCI+XG4gICAgICB7eyAnQUNDRVBUJyB8IG9UcmFuc2xhdGUgfX0gPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuXG48IS0tIFRFTVBMQVRFIENVU1RPTSBGSUxURVItLT5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tRmlsdGVyVGVtcGxhdGU+XG4gIDxkaXYgKm5nSWY9XCJpc1RleHRUeXBlKClcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4IGNsYXNzPVwiaGludGVkXCI+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgI2ZpbHRlclRleHQgW2Zvcm1Db250cm9sXT1cImZjVGV4dFwiIHBsYWNlaG9sZGVyPVwie3sgJ1RBQkxFLkZJTFRFUicgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgICA8bWF0LWhpbnQ+e3sgJ1RBQkxFLkZJTFRFUl9CWV9DT0xVTU4uSElOVF9TVEFSJyB8IG9UcmFuc2xhdGUgfX08L21hdC1oaW50PlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXJWYWx1ZXMoKVwiPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOmNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaXNOdW1lcmljVHlwZSgpXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEycHhcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImZjRnJvbVwiIHBsYWNlaG9sZGVyPVwie3sgJ1RBQkxFLkZJTFRFUl9CWV9DT0xVTU4uRlJPTScgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImZjVG9cIiBwbGFjZWhvbGRlcj1cInt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLlRPJyB8IG9UcmFuc2xhdGUgfX1cIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXJWYWx1ZXMoKVwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaXNEYXRlVHlwZSgpXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEycHhcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlckZyb21cIiBbbWF4XT1cImZjVG8udmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwiZmNGcm9tXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5GUk9NJyB8IG9UcmFuc2xhdGUgfX1cIj5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZXBpY2tlckZyb21cIj5cbiAgICAgICAgPG1hdC1pY29uIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uPnRvZGF5PC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNkYXRlcGlja2VyRnJvbSBbc3RhcnRWaWV3XT1cImdldFN0YXJ0ZWRWaWV3RGF0ZXBpY2tlcigpXCI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlcGlja2VyVG9cIiBbbWluXT1cImZjRnJvbS52YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJmY1RvXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5UTycgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImRhdGVwaWNrZXJUb1wiPlxuICAgICAgICA8bWF0LWljb24gbWF0RGF0ZXBpY2tlclRvZ2dsZUljb24+dG9kYXk8L21hdC1pY29uPlxuICAgICAgPC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVwaWNrZXJUbyBbc3RhcnRWaWV3XT1cImdldFN0YXJ0ZWRWaWV3RGF0ZXBpY2tlcigpXCI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyVmFsdWVzKClcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6Y2xvc2VcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvZGlhbG9nL2ZpbHRlci1ieS1jb2x1bW4vby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvZGlhbG9nL2ZpbHRlci1ieS1jb2x1bW4vby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sd0JBQXdCLENBQUM7QUFHbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBc0IsTUFBTSx1REFBdUQsQ0FBQztBQUN0SCxPQUFPLEVBQTJCLCtCQUErQixFQUFFLE1BQU0sK0RBQStE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QUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUM7SUFDL0YsQ0FBQztJQUFBLENBQUM7O3FJQWxZUyx1Q0FBdUMsaUhBK0N4QyxlQUFlO3lIQS9DZCx1Q0FBdUMsd1ZDbkNwRCxpelBBK0lBOzRGRDVHYSx1Q0FBdUM7a0JBVm5ELFNBQVM7K0JBQ0Usc0NBQXNDLGlCQUdqQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLG1DQUFtQyxFQUFFLE1BQU07cUJBQzVDOzswQkFpREUsTUFBTTsyQkFBQyxlQUFlOzRDQWxCSixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ1csZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0b3IsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCwgTWF0U2VsZWN0aW9uTGlzdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLCBPQ29sdW1uVmFsdWVGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi12YWx1ZS1maWx0ZXIudHlwZSc7XG5pbXBvcnQgeyBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSwgVGFibGVGaWx0ZXJCeUNvbHVtbkRpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL3RhYmxlL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi1kYXRhLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vby10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0ZpbHRlckNvbHVtbiB9IGZyb20gJy4uLy4uL2hlYWRlci90YWJsZS1jb2x1bW5zLWZpbHRlci9jb2x1bW5zL28tdGFibGUtY29sdW1ucy1maWx0ZXItY29sdW1uLmNvbXBvbmVudCc7XG5cbmltcG9ydCB0eXBlIHsgT0NvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UgfSBmcm9tICcuL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvYmFzZS1zZXJ2aWNlLmNsYXNzJztcblxuY29uc3QgQ1VTVE9NX0ZJTFRFUlNfT1BFUkFUT1JTID0gbmV3IFNldChbQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5MRVNTX0VRVUFMLCBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLk1PUkVfRVFVQUwsIENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuQkVUV0VFTiwgQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5FUVVBTF0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4tZGF0YS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJ28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi1kYXRhLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydvLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4tZGF0YS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm8tZmlsdGVyLWJ5LWNvbHVtbi1kaWFsb2ddJzogJ3RydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlRmlsdGVyQnlDb2x1bW5EYXRhRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHVibGljIGFjY2VwdEFjdGlvbiA9IFRhYmxlRmlsdGVyQnlDb2x1bW5EaWFsb2dSZXN1bHQuQUNDRVBUO1xuICBwdWJsaWMgY2FuY2VsQWN0aW9uID0gVGFibGVGaWx0ZXJCeUNvbHVtbkRpYWxvZ1Jlc3VsdC5DQU5DRUw7XG4gIHB1YmxpYyBjbGVhckFjdGlvbiA9IFRhYmxlRmlsdGVyQnlDb2x1bW5EaWFsb2dSZXN1bHQuQ0xFQVI7XG5cbiAgY29sdW1uOiBPQ29sdW1uO1xuICBwcmVsb2FkVmFsdWVzOiBib29sZWFuID0gdHJ1ZTtcbiAgbW9kZTogc3RyaW5nO1xuICBzdGFydFZpZXc6ICdtb250aCcgfCAneWVhcicgfCAnbXVsdGkteWVhcicgfCAnJztcblxuICBwdWJsaWMgb25Tb3J0RmlsdGVyVmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8T0ZpbHRlckNvbHVtbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNDdXN0b21GaWx0ZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzQ3VzdG9tRmlsdGVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0N1c3RvbUZpbHRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0RlZmF1bHRGaWx0ZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzRGVmYXVsdEZpbHRlcjogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaXNEZWZhdWx0RmlsdGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBmY1RleHQgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIGZjRnJvbSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgZmNUbyA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICBwcm90ZWN0ZWQgY29sdW1uRGF0YTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSA9IFtdO1xuICBwcm90ZWN0ZWQgdGFibGVEYXRhOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGlzdERhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YVtdPihbXSk7XG4gIHByb3RlY3RlZCBfbGlzdERhdGE6IE9ic2VydmFibGU8VGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXT4gPSB0aGlzLmxpc3REYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgcHJvdGVjdGVkIHNlcnZpY2U6IEJhc2VTZXJ2aWNlPFNlcnZpY2VSZXNwb25zZT47XG5cbiAgQFZpZXdDaGlsZCgnZmlsdGVyJykgZmlsdGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdmaWx0ZXJWYWx1ZUxpc3QnKSBmaWx0ZXJWYWx1ZUxpc3Q6IE1hdFNlbGVjdGlvbkxpc3Q7XG4gIHB1YmxpYyBhY3RpdmVTb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8ICcnO1xuICBzb3VyY2VEYXRhOiAnY3VycmVudC1wYWdlJyB8ICdhbGwtZGF0YSc7XG4gIHF1ZXJ5QnlGaWx0ZXJDb2x1bW5TdWJzY3JpcHRpb246IGFueTtcbiAgdGFibGU6IE9UYWJsZUNvbXBvbmVudDtcbiAgc2hvd0ZpbHRlclZhbHVlc09wdGlvbjogYm9vbGVhbjtcbiAgcXVlcnlNZXRob2ROYW1lOiBzdHJpbmc7XG4gIHByZXZpb3VzRmlsdGVyOiBPQ29sdW1uVmFsdWVGaWx0ZXI7XG4gIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YT4odHJ1ZSwgW10sIHRydWUsIHRoaXMuY29tcGFyZU9wdGlvbnMoKSk7XG4gIHZpc2libGVDb2x1bW5zQXJyYXk6IHN0cmluZ1tdO1xuICBzZXBhcmF0b3I6IHN0cmluZ1xuICBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uOiBPRmlsdGVyQ29sdW1uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE9UYWJsZUZpbHRlckJ5Q29sdW1uRGF0YURpYWxvZ0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTZXJ2aWNlOiBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UsXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IHsgY29sdW1uOiBPQ29sdW1uOyB0YWJsZTogT1RhYmxlQ29tcG9uZW50IH1cbiAgKSB7XG4gICAgdGhpcy5pbml0RnJvbURhdGEoZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRGcm9tRGF0YShkYXRhOiB7IGNvbHVtbjogT0NvbHVtbjsgdGFibGU6IE9UYWJsZUNvbXBvbmVudCB9KSB7XG4gICAgdGhpcy5jb2x1bW4gPSBkYXRhLmNvbHVtbjtcbiAgICB0aGlzLnRhYmxlID0gZGF0YS50YWJsZTtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCB7XG4gICAgICBwYWdpbmF0aW9uQ29udHJvbHMsXG4gICAgICBvVGFibGVDb2x1bW5zRmlsdGVyQ29tcG9uZW50LFxuICAgICAgZGF0YVNvdXJjZVxuICAgIH0gPSB0aGlzLnRhYmxlO1xuXG4gICAgdGhpcy5zaG93RmlsdGVyVmFsdWVzT3B0aW9uID0gcGFnaW5hdGlvbkNvbnRyb2xzO1xuICAgIHRoaXMuZmlsdGVyQ29sdW1uRGVmaW5pdGlvbiA9IHRoaXMudGFibGUuZ2V0RmlsdGVyQ29sdW1uQnlBdHRyKHRoaXMuY29sdW1uLmF0dHIpO1xuICAgIGNvbnN0IHsgZmlsdGVyVmFsdWVzSW5EYXRhLCBzZXBhcmF0b3IsIHZpc2libGVDb2x1bW5zIH0gPSB0aGlzLmZpbHRlckNvbHVtbkRlZmluaXRpb247XG5cbiAgICB0aGlzLnNvdXJjZURhdGEgPSBmaWx0ZXJWYWx1ZXNJbkRhdGE7XG4gICAgdGhpcy5zZXBhcmF0b3IgPSBzZXBhcmF0b3I7XG4gICAgdGhpcy52aXNpYmxlQ29sdW1uc0FycmF5ID0gdmlzaWJsZUNvbHVtbnM7XG5cbiAgICB0aGlzLm1vZGUgPSBvVGFibGVDb2x1bW5zRmlsdGVyQ29tcG9uZW50Py5tb2RlID8/ICdkZWZhdWx0JztcbiAgICB0aGlzLnByZWxvYWRWYWx1ZXMgPSBvVGFibGVDb2x1bW5zRmlsdGVyQ29tcG9uZW50Py5wcmVsb2FkVmFsdWVzID8/IHRydWU7XG5cbiAgICB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPSB0aGlzLnRhYmxlLmdldFNvcnRGaWx0ZXJDb2x1bW4odGhpcy5jb2x1bW4pID8/ICcnO1xuICAgIHRoaXMuc3RhcnRWaWV3ID0gdGhpcy50YWJsZS5nZXRTdGFydFZpZXdGaWx0ZXJDb2x1bW4odGhpcy5jb2x1bW4pID8/ICdtb250aCc7XG4gICAgdGhpcy5wcmV2aW91c0ZpbHRlciA9IGRhdGFTb3VyY2UuZ2V0Q29sdW1uVmFsdWVGaWx0ZXJCeUF0dHIodGhpcy5jb2x1bW4uYXR0cikgPz8gdGhpcy5jcmVhdGVFbXB0eUZpbHRlcigpO1xuXG4gICAgY29uc3QgaXNDdXN0b20gPSBDVVNUT01fRklMVEVSU19PUEVSQVRPUlMuaGFzKHRoaXMucHJldmlvdXNGaWx0ZXIub3BlcmF0b3IpO1xuICAgIHRoaXMuaXNDdXN0b21GaWx0ZXJTdWJqZWN0Lm5leHQoaXNDdXN0b20pO1xuICAgIHRoaXMuaXNEZWZhdWx0RmlsdGVyU3ViamVjdC5uZXh0KCFpc0N1c3RvbSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW1wdHlGaWx0ZXIoKTogT0NvbHVtblZhbHVlRmlsdGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cjogdGhpcy5jb2x1bW4uYXR0cixcbiAgICAgIG9wZXJhdG9yOiB1bmRlZmluZWQsXG4gICAgICB2YWx1ZXM6IHVuZGVmaW5lZCxcbiAgICAgIGF2YWlsYWJsZVZhbHVlczogdW5kZWZpbmVkLFxuICAgICAgZmlsdGVyRXhwcmVzaW9uOiB1bmRlZmluZWQsXG4gICAgICBmaWx0ZXJWYWx1ZXNJbkRhdGE6IHRoaXMuc291cmNlRGF0YVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGF0YUFuZEluaXRpYWxpemVEYXRhTGlzdChwcmV2aW91c0ZpbHRlcjogT0NvbHVtblZhbHVlRmlsdGVyKSB7XG5cbiAgICB0aGlzLmNvbHVtbkRhdGEgPSB0aGlzLmZpbHRlclNlcnZpY2UuaW5pdGlhbGl6ZUNvbHVtbkZpbHRlckRhdGEoXG4gICAgICB0aGlzLnByZXZpb3VzRmlsdGVyLFxuICAgICAgdGhpcy5jb2x1bW4sXG4gICAgICB0aGlzLnRhYmxlRGF0YSxcbiAgICAgIHRoaXMudGFibGUucGFnZWFibGUsXG4gICAgICB0aGlzLmZpbHRlckNvbHVtbkRlZmluaXRpb25cbiAgICApO1xuXG4gICAgaWYgKHByZXZpb3VzRmlsdGVyLnZhbHVlcyAmJiBwcmV2aW91c0ZpbHRlci52YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuY29sdW1uRGF0YS5maWx0ZXIoaXRlbSA9PiBwcmV2aW91c0ZpbHRlci52YWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSAhPT0gLTEpKTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocHJldmlvdXNGaWx0ZXIpKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21GaWx0ZXJWYWx1ZXMocHJldmlvdXNGaWx0ZXIpO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemVEYXRhTGlzdChwcmV2aW91c0ZpbHRlcik7XG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJFdmVudCgpO1xuICB9XG5cbiAgZ2V0IGxpc3REYXRhKCk6IE9ic2VydmFibGU8VGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXT4ge1xuICAgIHJldHVybiB0aGlzLl9saXN0RGF0YTtcbiAgfVxuXG4gIHNldCBsaXN0RGF0YShhcmc6IE9ic2VydmFibGU8VGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXT4pIHtcbiAgICB0aGlzLl9saXN0RGF0YSA9IGFyZztcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplRGF0YUxpc3QoZmlsdGVyPzogT0NvbHVtblZhbHVlRmlsdGVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlbG9hZFZhbHVlcyB8fCAoZmlsdGVyICYmIGZpbHRlci5vcGVyYXRvciA9PT0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5JTikpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPT09IENvZGVzLkFTQ19TT1JUIHx8IHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbiA9PT0gQ29kZXMuREVTQ19TT1JUKSB7XG4gICAgICAgIHRoaXMuc29ydERhdGEoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0Lm5leHQodGhpcy5jb2x1bW5EYXRhLnNsaWNlKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplRmlsdGVyRXZlbnQoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGxldCBmaWx0ZXJWYWx1ZTogc3RyaW5nID0gdGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICBmaWx0ZXJWYWx1ZSA9IFV0aWwubm9ybWFsaXplU3RyaW5nKGZpbHRlclZhbHVlKTtcbiAgICAgICAgICBpZiAoZmlsdGVyVmFsdWUuaW5kZXhPZignKicpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YVN1YmplY3QubmV4dCh0aGlzLmNvbHVtbkRhdGEuZmlsdGVyKGl0ZW0gPT4gbmV3IFJlZ0V4cCgnXicgKyBVdGlsLm5vcm1hbGl6ZVN0cmluZyhmaWx0ZXJWYWx1ZSkuc3BsaXQoJyonKS5qb2luKCcuKicpICsgJyQnKS50ZXN0KFV0aWwubm9ybWFsaXplU3RyaW5nKGl0ZW0ucmVuZGVyZWRWYWx1ZSkpKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0Lm5leHQodGhpcy5jb2x1bW5EYXRhLmZpbHRlcihpdGVtID0+IChVdGlsLm5vcm1hbGl6ZVN0cmluZyhpdGVtLnJlbmRlcmVkVmFsdWUpLmluZGV4T2YoZmlsdGVyVmFsdWUpICE9PSAtMSkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplQ3VzdG9tRmlsdGVyVmFsdWVzKGZpbHRlcjogT0NvbHVtblZhbHVlRmlsdGVyKTogdm9pZCB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIGZpbHRlci5vcGVyYXRvciA9PT0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5FUVVBTDpcbiAgICAgICAgaWYgKHRoaXMuaXNUZXh0VHlwZSgpKSB7XG4gICAgICAgICAgdGhpcy5mY1RleHQuc2V0VmFsdWUoZmlsdGVyLnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGZpbHRlci5vcGVyYXRvciA9PT0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5CRVRXRUVOOlxuICAgICAgICB0aGlzLmZjRnJvbS5zZXRWYWx1ZSh0aGlzLmlzRGF0ZVR5cGUoKSA/IG5ldyBEYXRlKGZpbHRlci52YWx1ZXNbMF0pIDogZmlsdGVyLnZhbHVlc1swXSk7XG4gICAgICAgIHRoaXMuZmNUby5zZXRWYWx1ZSh0aGlzLmlzRGF0ZVR5cGUoKSA/IG5ldyBEYXRlKGZpbHRlci52YWx1ZXNbMV0pIDogZmlsdGVyLnZhbHVlc1sxXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBmaWx0ZXIub3BlcmF0b3IgPT09IENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuTU9SRV9FUVVBTDpcbiAgICAgICAgdGhpcy5mY0Zyb20uc2V0VmFsdWUodGhpcy5pc0RhdGVUeXBlKCkgPyBuZXcgRGF0ZShmaWx0ZXIudmFsdWVzKSA6IGZpbHRlci52YWx1ZXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZmlsdGVyLm9wZXJhdG9yID09PSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLkxFU1NfRVFVQUw6XG4gICAgICAgIHRoaXMuZmNUby5zZXRWYWx1ZSh0aGlzLmlzRGF0ZVR5cGUoKSA/IG5ldyBEYXRlKGZpbHRlci52YWx1ZXMpIDogZmlsdGVyLnZhbHVlcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cblxuICBhcmVBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmNvbHVtbkRhdGEubGVuZ3RoO1xuICB9XG5cbiAgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XG4gICAgcmV0dXJuIHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoICE9PSB0aGlzLmNvbHVtbkRhdGEubGVuZ3RoO1xuICB9XG5cbiAgb25TZWxlY3QoZXZlbnQ6IE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UpIHtcblxuICAgIGV2ZW50Lm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb24udmFsdWU7XG5cbiAgICAgIHZhbHVlLnNlbGVjdGVkID0gb3B0aW9uLnNlbGVjdGVkO1xuICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0LmdldFZhbHVlKCkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdCguLi50aGlzLmxpc3REYXRhU3ViamVjdC5nZXRWYWx1ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0RGF0YVN1YmplY3QuZ2V0VmFsdWUoKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29sdW1uVmFsdWVzRmlsdGVyKCk6IE9Db2x1bW5WYWx1ZUZpbHRlciB7XG4gICAgY29uc3QgZmlsdGVyOiBPQ29sdW1uVmFsdWVGaWx0ZXIgPSB7XG4gICAgICBhdHRyOiB0aGlzLmNvbHVtbi5hdHRyLFxuICAgICAgb3BlcmF0b3I6IHVuZGVmaW5lZCxcbiAgICAgIHZhbHVlczogdW5kZWZpbmVkLFxuICAgICAgYXZhaWxhYmxlVmFsdWVzOiB0aGlzLnByZXZpb3VzRmlsdGVyPy5hdmFpbGFibGVWYWx1ZXMgfHwgdW5kZWZpbmVkLFxuICAgICAgZmlsdGVyRXhwcmVzaW9uOiB0aGlzLnByZXZpb3VzRmlsdGVyPy5maWx0ZXJFeHByZXNpb24gfHwgdW5kZWZpbmVkLFxuICAgICAgZmlsdGVyVmFsdWVzSW5EYXRhOiB0aGlzLnNvdXJjZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmlzQ3VzdG9tRmlsdGVyU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlczogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xuICAgICAgaWYgKHNlbGVjdGVkVmFsdWVzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UuYXBwbHlTZWxlY3RlZFZhbHVlc1RvRmlsdGVyKHRoaXMuY29sdW1uLCB0aGlzLnRhYmxlRGF0YSwgZmlsdGVyLCBzZWxlY3RlZFZhbHVlcywgdGhpcy5maWx0ZXJDb2x1bW5EZWZpbml0aW9uLCB0aGlzLnRhYmxlLnBhZ2VhYmxlLCAoKSA9PiB0aGlzLnRhYmxlLmdldENvbXBvbmVudEZpbHRlcigpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZmNUZXh0LnZhbHVlKSB7XG4gICAgICAgIGZpbHRlci5vcGVyYXRvciA9IENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuRVFVQUw7XG4gICAgICAgIGZpbHRlci52YWx1ZXMgPSB0aGlzLmdldFR5cGVkVmFsdWUodGhpcy5mY1RleHQpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmNGcm9tLnZhbHVlICYmIHRoaXMuZmNUby52YWx1ZSkge1xuICAgICAgICBmaWx0ZXIub3BlcmF0b3IgPSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLkJFVFdFRU47XG4gICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZ2V0VHlwZWRWYWx1ZSh0aGlzLmZjRnJvbSk7XG4gICAgICAgIGNvbnN0IHRvVmFsdWUgPSB0aGlzLmdldFR5cGVkVmFsdWUodGhpcy5mY1RvKTtcbiAgICAgICAgZmlsdGVyLnZhbHVlcyA9IGZyb21WYWx1ZSA8PSB0b1ZhbHVlID8gW2Zyb21WYWx1ZSwgdG9WYWx1ZV0gOiBbdG9WYWx1ZSwgZnJvbVZhbHVlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmZjRnJvbS52YWx1ZSkge1xuICAgICAgICAgIGZpbHRlci5vcGVyYXRvciA9IENvbHVtblZhbHVlRmlsdGVyT3BlcmF0b3IuTU9SRV9FUVVBTDtcbiAgICAgICAgICBmaWx0ZXIudmFsdWVzID0gdGhpcy5nZXRUeXBlZFZhbHVlKHRoaXMuZmNGcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mY1RvLnZhbHVlKSB7XG4gICAgICAgICAgZmlsdGVyLm9wZXJhdG9yID0gQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvci5MRVNTX0VRVUFMO1xuICAgICAgICAgIGZpbHRlci52YWx1ZXMgPSB0aGlzLmdldFR5cGVkVmFsdWUodGhpcy5mY1RvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG5cbiAgY2xlYXJWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNUZXh0VHlwZSgpKSB7XG4gICAgICB0aGlzLmZjVGV4dC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0RhdGVUeXBlKCkgfHwgdGhpcy5pc051bWVyaWNUeXBlKCkpIHtcbiAgICAgIHRoaXMuZmNGcm9tLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmZjVG8uc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrU29ydFZhbHVlcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbikge1xuICAgICAgY2FzZSAnYXNjJzpcbiAgICAgICAgdGhpcy5hY3RpdmVTb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rlc2MnOlxuICAgICAgICB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gPSAnYXNjJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMub25Tb3J0RmlsdGVyVmFsdWVzQ2hhbmdlLmVtaXQodGhpcy5nZXRGaWx0ZXJDb2x1bW4oKSk7XG4gICAgdGhpcy5zb3J0RGF0YSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNvcnREYXRhKCkge1xuICAgIGNvbnN0IHNvcnRlZERhdGEgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLmNvbHVtbkRhdGEpO1xuICAgIGlmICh0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gIT09ICcnKSB7XG4gICAgICB0aGlzLmxpc3REYXRhU3ViamVjdC5uZXh0KHNvcnRlZERhdGEuc29ydCh0aGlzLnNvcnRGdW5jdGlvbi5iaW5kKHRoaXMpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGlzdERhdGFTdWJqZWN0Lm5leHQoc29ydGVkRGF0YSk7XG4gICAgfVxuXG4gIH1cblxuICBwcm90ZWN0ZWQgc29ydEZ1bmN0aW9uKGE6IGFueSwgYjogYW55KTogbnVtYmVyIHtcbiAgICBsZXQgcHJvcGVydHlBOiBudW1iZXIgfCBzdHJpbmcgPSAnJztcbiAgICBsZXQgcHJvcGVydHlCOiBudW1iZXIgfCBzdHJpbmcgPSAnJztcbiAgICBbcHJvcGVydHlBLCBwcm9wZXJ0eUJdID0gW2FbJ3ZhbHVlJ10sIGJbJ3ZhbHVlJ11dO1xuXG4gICAgcmV0dXJuIFV0aWwuc29ydEZ1bmN0aW9uKHByb3BlcnR5QSwgcHJvcGVydHlCLCB0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24pO1xuICB9XG5cbiAgb25TbGlkZUNoYW5nZShlOiBNYXRTbGlkZVRvZ2dsZUNoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuaXNDdXN0b21GaWx0ZXJTdWJqZWN0Lm5leHQoZS5jaGVja2VkKTtcblxuICAgIGlmICghZS5jaGVja2VkKSB7XG4gICAgICAvLyBTZWxlY3Rpb24gbW9kZVxuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YUxpc3QoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJFdmVudCgpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgaXNUZXh0VHlwZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNOdW1lcmljVHlwZSgpICYmICF0aGlzLmlzRGF0ZVR5cGUoKTtcbiAgfVxuXG4gIGlzTnVtZXJpY1R5cGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnaW50ZWdlcicsICdyZWFsJywgJ2N1cnJlbmN5J10uaW5kZXhPZih0aGlzLmNvbHVtbi50eXBlKSAhPT0gLTE7XG4gIH1cblxuICBpc0RhdGVUeXBlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnZGF0ZScgPT09IHRoaXMuY29sdW1uLnR5cGU7XG4gIH1cblxuICBnZXRGaXhlZERpbWVuc2lvbkNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdzZWxlY3Rpb24nIHx8IHRoaXMubW9kZSA9PT0gJ2RlZmF1bHQnO1xuICB9XG5cbiAgZ2V0U29ydEJ5QWxwaGFJY29uKCkge1xuICAgIGxldCBpY29uID0gJ29udGltaXplOnNvcnRfYnlfYWxwaGEnO1xuICAgIGlmICh0aGlzLmFjdGl2ZVNvcnREaXJlY3Rpb24gIT09ICcnKSB7XG4gICAgICBpY29uICs9ICdfJyArIHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIGljb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RmlsdGVyQ29sdW1uKCk6IE9GaWx0ZXJDb2x1bW4ge1xuICAgIGxldCBvYmo6IE9GaWx0ZXJDb2x1bW4gPSB7IGF0dHI6ICcnLCBzb3J0OiAnJywgc3RhcnRWaWV3OiAnJyB9O1xuICAgIG9iai5hdHRyID0gdGhpcy5jb2x1bW4uYXR0cjtcbiAgICBvYmouc29ydCA9IHRoaXMuYWN0aXZlU29ydERpcmVjdGlvbjtcbiAgICBvYmouc3RhcnRWaWV3ID0gdGhpcy5zdGFydFZpZXc7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGFydGVkVmlld0RhdGVwaWNrZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydFZpZXc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHlwZWRWYWx1ZShjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiBhbnkge1xuICAgIGxldCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHRoaXMuaXNOdW1lcmljVHlwZSgpKSB7XG4gICAgICB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRGF0ZVR5cGUoKSkge1xuICAgICAgdmFsdWUgPSBjb250cm9sLnZhbHVlLnZhbHVlT2YoKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIG9uQ2hhbmdlRGF0YVNvdXJjZShldmVudDogTWF0UmFkaW9DaGFuZ2UpIHtcbiAgICB0aGlzLnRhYmxlLmNsZWFyQ29sdW1uRmlsdGVyKHRoaXMuY29sdW1uLmF0dHIpO1xuICAgIHRoaXMuZ2V0RGF0YShldmVudC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoc291cmNlRGF0YT86ICdjdXJyZW50LXBhZ2UnIHwgJ2FsbC1kYXRhJykge1xuICAgIGlmIChzb3VyY2VEYXRhKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbHVtbkRlZmluaXRpb24uZmlsdGVyVmFsdWVzSW5EYXRhID0gc291cmNlRGF0YTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmdldERhdGFGb3JDb2x1bW5GaWx0ZXIoXG4gICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgdGhpcy50YWJsZSxcbiAgICAgIHRoaXMuY29sdW1uLFxuICAgICAgdGhpcy5maWx0ZXJDb2x1bW5EZWZpbml0aW9uXG4gICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLnBhcnNlRGF0YUFuZEluaXRpYWxpemVEYXRhTGlzdCh0aGlzLnByZXZpb3VzRmlsdGVyKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgaXNTZWxlY3RlZChpdGVtOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSkge1xuICAgIHJldHVybiBpdGVtLnNlbGVjdGVkO1xuICB9XG5cblxuICBjb21wYXJlT3B0aW9ucygpOiAoKG8xOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSwgbzI6IFRhYmxlRmlsdGVyQnlDb2x1bW5EYXRhKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChvMTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGEsIG8yOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSkgPT4gbzE/LnZhbHVlID09PSBvMj8udmFsdWU7XG4gIH07XG59XG4iLCI8c3BhbiBtYXQtZGlhbG9nLXRpdGxlPnt7ICdUQUJMRS5CVVRUT05TLkZJTFRFUl9CWV9DT0xVTU4nIHwgb1RyYW5zbGF0ZSB9fToge3sgY29sdW1uLnRpdGxlIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZGlhbG9nLWxpc3QtY29udGFpbmVyXCI+XG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiIFtjbGFzcy5jb250ZW50LXdyYXBwZXItZml4ZWQtZGltZW5zaW9uXT1cImdldEZpeGVkRGltZW5zaW9uQ2xhc3MoKVwiPlxuICAgIDxtYXQtc2xpZGUtdG9nZ2xlICNjdXN0b21GaWx0ZXJTbGlkZSAoY2hhbmdlKT1cIm9uU2xpZGVDaGFuZ2UoJGV2ZW50KVwiIFtjaGVja2VkXT1cIihpc0N1c3RvbUZpbHRlciB8IGFzeW5jKVwiICpuZ0lmPVwiaXNEZWZhdWx0RmlsdGVyIHwgYXN5bmNcIj5cbiAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkNVU1RPTV9GSUxURVInIHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8ZGl2IGZ4RmxleD1cIjEgMSAxMDAlXCIgKm5nSWY9XCIhKGlzQ3VzdG9tRmlsdGVyIHwgYXN5bmMpO2Vsc2UgY3VzdG9tRmlsdGVyVGVtcGxhdGVcIiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaGludGVkXCI+XG4gICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXggc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiPjwvbWF0LWljb24+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAjZmlsdGVyIHBsYWNlaG9sZGVyPVwie3sgJ1RBQkxFLkZJTFRFUicgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgICAgIDxtYXQtaGludD57eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5ISU5UX1NUQVInIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPGRpdiAqbmdJZj1cIihsaXN0RGF0YSB8IGFzeW5jKS5sZW5ndGggPiAwOyBlbHNlIGVtcHR5TGlzdERhdGFcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0YXJ0XCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RhcnRcIj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwib25TZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiIFtjaGVja2VkXT1cImFyZUFsbFNlbGVjdGVkKClcIiBbaW5kZXRlcm1pbmF0ZV09XCJpc0luZGV0ZXJtaW5hdGUoKVwiIFtkaXNhYmxlZF09XCIhbGlzdERhdGFcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtYWxsLWNoZWNrYm94XCI+XG4gICAgICAgICAgICB7eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5DSEVDS19BTEwnIHwgb1RyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWxpc3REYXRhXCIgY2xhc3M9XCJjb2x1bW4tZmlsdGVyLWVtcHR5LWxpc3RcIj5cbiAgICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkxJU1RfRU1QVFlfRklMVEVSJyB8IG9UcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0YXJ0XCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkNsaWNrU29ydFZhbHVlcygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiZ2V0U29ydEJ5QWxwaGFJY29uKClcIj48L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiICpuZ0lmPVwic2hvd0ZpbHRlclZhbHVlc09wdGlvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiZmlsdGVydmFsdWVzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IG1hdC1zdWJoZWFkZXI+XG4gICAgICAgICAgICAgICAge3snVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5MQUJFTF9EQVRBJyB8IG9UcmFuc2xhdGV9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgYXJpYS1sYWJlbD1cIkRhdGFcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMTJweFwiIFsobmdNb2RlbCldPVwic291cmNlRGF0YVwiIChjaGFuZ2UpPVwib25DaGFuZ2VEYXRhU291cmNlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cImN1cnJlbnQtcGFnZVwiPnt7J1RBQkxFLkZJTFRFUl9CWV9DT0xVTU4uQ1VSUkVOVF9QQUdFJyB8IG9UcmFuc2xhdGV9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cImFsbC1kYXRhXCI+e3snVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5BTExfUEFHRScgfCBvVHJhbnNsYXRlfX08L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUxpc3REYXRhPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbHVtbi1maWx0ZXItZW1wdHktbGlzdFwiPlxuICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkxJU1RfRU1QVFknIHwgb1RyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBpdGVtU2l6ZT1cIjMwXCIgZnhGbGV4IGNsYXNzPVwidmlydHVhbC1zY3JvbGwtdmlld3BvcnRcIj5cbiAgICAgICAgPG1hdC1zZWxlY3Rpb24tbGlzdCAqbmdJZj1cInByZWxvYWRWYWx1ZXMgfHwgbGlzdERhdGFcIiAjZmlsdGVyVmFsdWVMaXN0IGNsYXNzPVwic2VsZWN0LXZhbHVlcy1saXN0XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCByZWNvcmQgb2YgKGxpc3REYXRhIHwgYXN5bmMpOyBsZXQgaSA9IGluZGV4O3RlbXBsYXRlQ2FjaGVTaXplOiAwXCI+XG4gICAgICAgICAgICA8bWF0LWxpc3Qtb3B0aW9uIGNoZWNrYm94UG9zaXRpb249XCJiZWZvcmVcIiBbc2VsZWN0ZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocmVjb3JkKVwiIFt2YWx1ZV09XCJyZWNvcmRcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlY29yZC52YWx1ZSB8IGlzRW1wdHlWYWx1ZTsgZWxzZSBzaG93VmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5FTVBUWV9WQUxVRScgfCBvVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dWYWx1ZT5cbiAgICAgICAgICAgICAgICA8IS0tICBpZiB0aGVyZSBhcmUgdmlzaWJsZSBjb2x1bW5zLCBzaG93IHJlbmRlcmVyVmFsdWUgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpc2libGVDb2x1bW5zQXJyYXk/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9WaXNpYmxlQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAge3sgcmVjb3JkLnJlbmRlcmVkVmFsdWUgfX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwhLS0gSWYgdGhlcmUgYXJlIG5vIHZpc2libGUgY29sdW1ucywgdXNlIHRoZSBwcmV2aW91cyBiZWhhdmlvciAtLT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVmlzaWJsZUNvbHVtbnM+XG4gICAgICAgICAgICAgICAgICA8IS0tIElmIHRoZXJlIGlzIG5vIGNvbHVtbiByZW5kZXJlciwgc2hvdyB0aGUgcmF3IHZhbHVlIC0tPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4ucmVuZGVyZXI7IGVsc2Ugd2l0aFJlbmRlcmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHJlY29yZC52YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gSWYgdGhlcmUgaXMgYSByZW5kZXJlciwgdXNlIGl0cyB0ZW1wbGF0ZSByZWZlcmVuY2UgLS0+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3dpdGhSZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5yZW5kZXJlci50ZW1wbGF0ZXJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsdmFsdWU6IHJlY29yZC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3ZhbHVlOiByZWNvcmQucm93VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJjbGVhckFjdGlvblwiIGNsYXNzPVwiby1idXR0b24taW5mb1wiPlxuICAgIHt7ICdUQUJMRS5CVVRUT05TLkZJTFRFUl9DTEVBUicgfCBvVHJhbnNsYXRlIH19IDwvYnV0dG9uPlxuICA8c3BhbiBhbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJjYW5jZWxBY3Rpb25cIiBjbGFzcz1cIm8tYnV0dG9uLWRlZmF1bHQgY2FuY2VsXCI+XG4gICAgICB7eyAnQ0FOQ0VMJyB8IG9UcmFuc2xhdGUgfX0gPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImFjY2VwdEFjdGlvblwiIGNsYXNzPVwiby1idXR0b24tcHJpbWFyeVwiPlxuICAgICAge3sgJ0FDQ0VQVCcgfCBvVHJhbnNsYXRlIH19IDwvYnV0dG9uPlxuICA8L3NwYW4+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cblxuPCEtLSBURU1QTEFURSBDVVNUT00gRklMVEVSLS0+XG48bmctdGVtcGxhdGUgI2N1c3RvbUZpbHRlclRlbXBsYXRlPlxuICA8ZGl2ICpuZ0lmPVwiaXNUZXh0VHlwZSgpXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleCBjbGFzcz1cImhpbnRlZFwiPlxuICAgICAgPGlucHV0IG1hdElucHV0ICNmaWx0ZXJUZXh0IFtmb3JtQ29udHJvbF09XCJmY1RleHRcIiBwbGFjZWhvbGRlcj1cInt7ICdUQUJMRS5GSUxURVInIHwgb1RyYW5zbGF0ZSB9fVwiPlxuICAgICAgPG1hdC1oaW50Pnt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkhJTlRfU1RBUicgfCBvVHJhbnNsYXRlIH19PC9tYXQtaGludD5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyVmFsdWVzKClcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImlzTnVtZXJpY1R5cGUoKVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxMnB4XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJmY0Zyb21cIiBwbGFjZWhvbGRlcj1cInt7ICdUQUJMRS5GSUxURVJfQllfQ09MVU1OLkZST00nIHwgb1RyYW5zbGF0ZSB9fVwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJmY1RvXCIgcGxhY2Vob2xkZXI9XCJ7eyAnVEFCTEUuRklMVEVSX0JZX0NPTFVNTi5UTycgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyVmFsdWVzKClcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6Y2xvc2VcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImlzRGF0ZVR5cGUoKVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxMnB4XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImRhdGVwaWNrZXJGcm9tXCIgW21heF09XCJmY1RvLnZhbHVlXCIgW2Zvcm1Db250cm9sXT1cImZjRnJvbVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1RBQkxFLkZJTFRFUl9CWV9DT0xVTU4uRlJPTScgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImRhdGVwaWNrZXJGcm9tXCI+XG4gICAgICAgIDxtYXQtaWNvbiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvbj50b2RheTwvbWF0LWljb24+XG4gICAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZXBpY2tlckZyb20gW3N0YXJ0Vmlld109XCJnZXRTdGFydGVkVmlld0RhdGVwaWNrZXIoKVwiPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlclRvXCIgW21pbl09XCJmY0Zyb20udmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwiZmNUb1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1RBQkxFLkZJTFRFUl9CWV9DT0xVTU4uVE8nIHwgb1RyYW5zbGF0ZSB9fVwiPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkYXRlcGlja2VyVG9cIj5cbiAgICAgICAgPG1hdC1pY29uIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uPnRvZGF5PC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNkYXRlcGlja2VyVG8gW3N0YXJ0Vmlld109XCJnZXRTdGFydGVkVmlld0RhdGVwaWNrZXIoKVwiPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhclZhbHVlcygpXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOmNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -112,9 +112,9 @@ export class OTableFilterByColumnService {
|
|
|
112
112
|
return columnData;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
OTableFilterByColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
116
|
-
OTableFilterByColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
115
|
+
OTableFilterByColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableFilterByColumnService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
116
|
+
OTableFilterByColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableFilterByColumnService });
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableFilterByColumnService, decorators: [{
|
|
118
118
|
type: Injectable
|
|
119
119
|
}], ctorParameters: function () { return []; } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1maWx0ZXItYnktY29sdW1uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2RpYWxvZy9maWx0ZXItYnktY29sdW1uL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLHlCQUF5QixFQUFzQixNQUFNLHVEQUF1RCxDQUFDO0FBRXRILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQUtwRixNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLGdCQUFnQixDQUFDO0lBTWpCLDBCQUEwQixDQUFDLE1BQWUsRUFBRSxTQUFnQixFQUFFLGNBQXdCLEVBQUUsU0FBaUI7UUFDdkcsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVuRixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDcEU7aUJB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QUMsTUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRTtZQUM1QixJQUFJLG9CQUFvQixHQUEwQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ25LLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3JDO0lBRUgsQ0FBQztJQUdELDBCQUEwQixDQUN4QixNQUEwQixFQUMxQixNQUFlLEVBQ2YsU0FBZ0IsRUFDaEIsVUFBbUIsRUFDbkIsc0JBQXFDO1FBSXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFFckcsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDNUMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O3dIQTNMVSwyQkFBMkI7NEhBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvciwgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4tZGF0YS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0NvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGYWN0b3J5VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvZmFjdG9yeS51dGlsJztcbmltcG9ydCB7IE9Db25maWd1cmVTZXJ2aWNlQXJncyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2NvbmZpZ3VyZS1zZXJ2aWNlLWFyZ3MudHlwZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9vLXRhYmxlLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0ZpbHRlckNvbHVtbiB9IGZyb20gJy4uLy4uL2hlYWRlci90YWJsZS1jb2x1bW5zLWZpbHRlci9jb2x1bW5zL28tdGFibGUtY29sdW1ucy1maWx0ZXItY29sdW1uLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICogUmV0dXJucyB0aGUgZGlzcGxheWVkIChyZW5kZXJlZCkgdmFsdWVzIGZvciBhIGNvbHVtbiBmcm9tIHRoZSBnaXZlbiB0YWJsZSBkYXRhLlxuICogRmFsbHMgYmFjayB0byByYXcgdmFsdWUgaWYgbm8gcmVuZGVyZXIgaXMgZGVmaW5lZC5cbiAqL1xuICBnZXRDb2x1bW5EYXRhVXNpbmdSZW5kZXJlcihjb2x1bW46IE9Db2x1bW4sIHRhYmxlRGF0YTogYW55W10sIHZpc2libGVDb2x1bW5zOiBzdHJpbmdbXSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgdXNlQ3VzdG9tUmVuZGVyID0gQXJyYXkuaXNBcnJheSh2aXNpYmxlQ29sdW1ucykgJiYgdmlzaWJsZUNvbHVtbnMubGVuZ3RoID4gMDtcblxuICAgIHJldHVybiB0YWJsZURhdGEubWFwKHJvdyA9PiB7XG4gICAgICBpZiAodXNlQ3VzdG9tUmVuZGVyKSB7XG4gICAgICAgIHJldHVybiB2aXNpYmxlQ29sdW1ucy5tYXAoYXR0ciA9PiByb3dbYXR0cl0gPz8gJycpLmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gcm93W2NvbHVtbi5hdHRyXTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5yZW5kZXJlcj8uZ2V0Q2VsbERhdGE/LihyYXdWYWx1ZSwgcm93KSA/PyByYXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgbGlzdCBvZiBmaWx0ZXJhYmxlIGNvbHVtbiB2YWx1ZXMsIG9wdGlvbmFsbHkgbWFya2luZyBzZWxlY3RlZCBpdGVtcy5cbiAgICpcbiAgICogQHBhcmFtIGZpbHRlciAtIEN1cnJlbnQgZmlsdGVyIGNvbmZpZ3VyYXRpb24gKGNhbiBiZSBudWxsKVxuICAgKiBAcGFyYW0gY29sdW1uIC0gQ29sdW1uIGJlaW5nIGZpbHRlcmVkXG4gICAqIEBwYXJhbSB0YWJsZURhdGEgLSBEYXRhIHRvIGV4dHJhY3QgdmFsdWVzIGZyb20gKHBhZ2VkIG9yIGZ1bGwpXG4gICAqIEBwYXJhbSBpc1BhZ2VhYmxlIC0gV2hldGhlciB0aGUgdGFibGUgaXMgcGFnZWFibGVcbiAgICogQHBhcmFtIHNvdXJjZURhdGEgLSBJbmRpY2F0ZXMgd2hldGhlciBkYXRhIGNvbWVzIGZyb20gY3VycmVudCBwYWdlIG9yIGFsbCBkYXRhXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgY29sdW1uIHZhbHVlcyB3aXRoIHRoZWlyIHJlbmRlcmVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gc3RhdGVcbiAgICovXG5cbiAgcGFyc2VMaXN0RGF0YShcbiAgICBmaWx0ZXI6IE9Db2x1bW5WYWx1ZUZpbHRlcixcbiAgICBjb2x1bW46IE9Db2x1bW4sXG4gICAgdGFibGVEYXRhOiBhbnlbXSxcbiAgICBpc1BhZ2VhYmxlOiBib29sZWFuLFxuICAgIGZpbHRlckNvbHVtbkRlZmluaXRpb246IE9GaWx0ZXJDb2x1bW5cbiAgKTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSB7XG4gICAgY29uc3QgY29sdW1uRGF0YTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSA9IFtdO1xuICAgIGNvbnN0IHZpc2libGVDb2x1bW5zID0gZmlsdGVyQ29sdW1uRGVmaW5pdGlvbi52aXNpYmxlQ29sdW1ucztcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLnNlcGFyYXRvcjtcbiAgICBjb25zdCBzb3VyY2VEYXRhID0gZmlsdGVyQ29sdW1uRGVmaW5pdGlvbi5maWx0ZXJWYWx1ZXNJbkRhdGE7XG4gICAgY29uc3QgY29sUmVuZGVyZWRWYWx1ZXMgPSB0aGlzLmdldENvbHVtbkRhdGFVc2luZ1JlbmRlcmVyKGNvbHVtbiwgdGFibGVEYXRhLCB2aXNpYmxlQ29sdW1ucywgc2VwYXJhdG9yKTtcblxuICAgIC8vIERpZmZlcmVudGlhdGVkIGxvZ2ljOiB1c2UgY29sdW1uLmF0dHIgaWYgY2FsbGVkIGZyb20gdGhlIGNvbnRleHQgbWVudSwgb3RoZXJ3aXNlIHVzZSB2YWx1ZUNvbHVtblxuICAgIGNvbnN0IHZhbHVlQ29sdW1uID1jb2x1bW4udmFsdWVDb2x1bW4gPz8gY29sdW1uLmF0dHI7XG4gICAgY29uc3QgY29sVmFsdWVzID0gdGFibGVEYXRhLm1hcCgoZWxlbSkgPT4gVXRpbC5nZXRWYWx1ZUZyb21QYXRoKGVsZW0sIHZhbHVlQ29sdW1uKSk7XG5cbiAgICAvLyBVc2UgcHJlZGVmaW5lZCB2YWx1ZXMgaWYgYXZhaWxhYmxlIGluIHRoZSBmaWx0ZXIgY29uZmlndXJhdGlvblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChmaWx0ZXI/LmF2YWlsYWJsZVZhbHVlcykpIHtcbiAgICAgIHJldHVybiBmaWx0ZXIuYXZhaWxhYmxlVmFsdWVzO1xuICAgIH1cblxuICAgIGNvbFJlbmRlcmVkVmFsdWVzLmZvckVhY2goKHJlbmRlcmVkVmFsdWUsIGkpID0+IHtcblxuICAgICAgcmVuZGVyZWRWYWx1ZSA9IHJlbmRlcmVkVmFsdWUgPz8gJyc7XG5cbiAgICAgIGNvbnN0IGFscmVhZHlFeGlzdHMgPSBjb2x1bW5EYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlbmRlcmVkVmFsdWUgPT09IHJlbmRlcmVkVmFsdWUpO1xuXG4gICAgICAvLyBBdm9pZCBkdXBsaWNhdGVzIHVubGVzcyB3ZSdyZSBpbiBwYWdlYWJsZSBtb2RlIGFuZCBwcm9jZXNzaW5nIGFsbC1kYXRhXG4gICAgICBpZiAoIWFscmVhZHlFeGlzdHMgfHwgKGlzUGFnZWFibGUgJiYgc291cmNlRGF0YSA9PT0gJ2FsbC1kYXRhJykpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBmaWx0ZXI/Lm9wZXJhdG9yID09PSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLklOICYmXG4gICAgICAgICAgKGZpbHRlcj8udmFsdWVzID8/IFtdKS5pbmNsdWRlcyhjb2xWYWx1ZXNbaV0pO1xuXG4gICAgICAgIGNvbHVtbkRhdGEucHVzaCh7XG4gICAgICAgICAgcmVuZGVyZWRWYWx1ZSxcbiAgICAgICAgICB2YWx1ZTogY29sVmFsdWVzW2ldLFxuICAgICAgICAgIHJvd1ZhbHVlOiB0YWJsZURhdGFbaV0sXG4gICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgdGFibGVJbmRleDogaVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sdW1uRGF0YTtcbiAgfVxuXG4gIC8qKlxuICogQXBwbGllcyBzZWxlY3RlZCBmaWx0ZXIgdmFsdWVzIHRvIGEgZ2l2ZW4gY29sdW1uIGZpbHRlci5cbiAqIFVwZGF0ZXMgb3BlcmF0b3IsIHZhbHVlcywgYXZhaWxhYmxlVmFsdWVzIG9yIGZpbHRlckV4cHJlc3Npb24gYmFzZWQgb24gc291cmNlIGRhdGEuXG4gKlxuICogQHBhcmFtIGZpbHRlciAtIFRoZSBmaWx0ZXIgb2JqZWN0IHRvIHVwZGF0ZVxuICogQHBhcmFtIHNlbGVjdGVkVmFsdWVzIC0gTGlzdCBvZiBzZWxlY3RlZCBjb2x1bW4gZGF0YSBlbnRyaWVzXG4gKiBAcGFyYW0gc291cmNlRGF0YSAtIEluZGljYXRlcyB3aGV0aGVyIGZpbHRlcmluZyBpcyBiYXNlZCBvbiBjdXJyZW50IHBhZ2Ugb3IgYWxsIGRhdGFcbiAqIEBwYXJhbSBjb2x1bW5EYXRhIC0gRnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBjb2x1bW4gZmlsdGVyIGRhdGFcbiAqIEBwYXJhbSBnZXRDb21wb25lbnRGaWx0ZXJGbiAtIEZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBjb21wb25lbnQgZmlsdGVyIGV4cHJlc3Npb25cbiAqL1xuICBhcHBseVNlbGVjdGVkVmFsdWVzVG9GaWx0ZXIoXG4gICAgY29sdW1uOiBPQ29sdW1uLFxuICAgIHRhYmxlRGF0YTogYW55W10sXG4gICAgZmlsdGVyOiBPQ29sdW1uVmFsdWVGaWx0ZXIsXG4gICAgc2VsZWN0ZWRWYWx1ZXM6IFRhYmxlRmlsdGVyQnlDb2x1bW5EYXRhW10sXG4gICAgZmlsdGVyQnlDb2x1bW5EZWZpbml0aW9uOiBPRmlsdGVyQ29sdW1uLFxuICAgIGlzUGFnZWFibGU6IGJvb2xlYW4sXG4gICAgZ2V0Q29tcG9uZW50RmlsdGVyRm46ICgpID0+IGFueVxuICApOiB2b2lkIHtcbiAgICBmaWx0ZXIub3BlcmF0b3IgPSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLklOO1xuICAgIGZpbHRlci52YWx1ZXMgPSBzZWxlY3RlZFZhbHVlcy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcblxuICAgIGNvbnN0IHNvdXJjZURhdGEgPSBmaWx0ZXJCeUNvbHVtbkRlZmluaXRpb24uZmlsdGVyVmFsdWVzSW5EYXRhO1xuICAgIGNvbnN0IGVmZmVjdGl2ZVNvdXJjZURhdGEgPSBzb3VyY2VEYXRhID8/ICdjdXJyZW50LXBhZ2UnO1xuICAgIGlmIChlZmZlY3RpdmVTb3VyY2VEYXRhKSB7XG4gICAgICBmaWx0ZXIuYXZhaWxhYmxlVmFsdWVzID0gdGhpcy5wYXJzZUxpc3REYXRhKGZpbHRlciwgY29sdW1uLCBmaWx0ZXIuYXZhaWxhYmxlVmFsdWVzID8/IHRhYmxlRGF0YSwgaXNQYWdlYWJsZSwgZmlsdGVyQnlDb2x1bW5EZWZpbml0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVyLmZpbHRlckV4cHJlc2lvbiA9IGZpbHRlci5maWx0ZXJFeHByZXNpb24gfHwgZ2V0Q29tcG9uZW50RmlsdGVyRm4oKTtcbiAgICB9XG4gIH1cblxuICBnZXREYXRhRm9yQ29sdW1uRmlsdGVyKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICB0YWJsZTogT1RhYmxlQmFzZSxcbiAgICBjb2x1bW46IE9Db2x1bW4sXG4gICAgZmlsdGVyQ29sdW1uRGVmaW5pdGlvbjogT0ZpbHRlckNvbHVtblxuICApOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgaWYgKGZpbHRlckNvbHVtbkRlZmluaXRpb24uZmlsdGVyVmFsdWVzSW5EYXRhID09PSAnY3VycmVudC1wYWdlJykge1xuICAgICAgLy8gR2V0IGRhdGEgb25seSBmcm9tIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgIHJldHVybiBvZih0YWJsZS5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGFibGUucGFnZWFibGUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzRmlsdGVyID0gdGFibGUuZGF0YVNvdXJjZS5nZXRDb2x1bW5WYWx1ZUZpbHRlckJ5QXR0cihjb2x1bW4uYXR0cik7XG4gICAgICAvLyBHZXQgYWxsIHBhZ2luYXRlZCBkYXRhIHVzaW5nIHRoZSByZW1vdGUgc2VydmljZVxuICAgICAgY29uc3Qga3YgPSBwcmV2aW91c0ZpbHRlcj8uZmlsdGVyRXhwcmVzaW9uIHx8IHRhYmxlLmdldENvbXBvbmVudEZpbHRlcigpO1xuICAgICAgY29uc3QgYXYgPSBbY29sdW1uLmF0dHJdO1xuICAgICAgY29uc3Qgc3FsVHlwZXMgPSBVdGlsLmlzRGVmaW5lZChrdikgJiYgIVV0aWwuaXNPYmplY3RFbXB0eShrdilcbiAgICAgICAgPyB0YWJsZS5nZXRTcWxUeXBlcygpXG4gICAgICAgIDoge307XG4gICAgICBjb25zdCBlbnRpdHkgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLmVudGl0eSA/PyB0YWJsZS5lbnRpdHk7XG5cbiAgICAgIGNvbnN0IGNvbHVtblF1ZXJ5QXJncyA9IFtrdiwgYXYsIGVudGl0eSwgc3FsVHlwZXNdO1xuICAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY29uZmlndXJlU2VydmljZShpbmplY3RvciwgZmlsdGVyQ29sdW1uRGVmaW5pdGlvbiwgdGFibGUpO1xuICAgICAgY29uc3QgcXVlcnlNZXRob2ROYW1lID0gZmlsdGVyQ29sdW1uRGVmaW5pdGlvbi5xdWVyeU1ldGhvZCA/PyAgdGFibGUucXVlcnlNZXRob2Q7XG5cblxuICAgICAgaWYgKHNlcnZpY2UgJiYgcXVlcnlNZXRob2ROYW1lICYmIHR5cGVvZiBzZXJ2aWNlW3F1ZXJ5TWV0aG9kTmFtZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0JCA9IHNlcnZpY2VbcXVlcnlNZXRob2ROYW1lXSguLi5jb2x1bW5RdWVyeUFyZ3MpIGFzIE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPjtcblxuICAgICAgICAvLyBDb252ZXJ0IFNlcnZpY2VSZXNwb25zZSBpbnRvIGEgZGF0YSBhcnJheVxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55W10+KG9ic2VydmVyID0+IHtcbiAgICAgICAgICByZXN1bHQkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByZXMgPT4gb2JzZXJ2ZXIubmV4dChyZXM/LmlzU3VjY2Vzc2Z1bCgpID8gcmVzLmRhdGEgOiBbXSksXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW0ZpbHRlclNlcnZpY2VdIEVycm9yIGFsIGNvbnN1bHRhciBkYXRvcyBkZWwgZmlsdHJvOicsIGVycik7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoW10pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2YoW10pOyAvLyBmYWxsYmFja1xuICAgIH1cblxuICAgIC8vIFNpIGxhIHRhYmxhIG5vIGVzIHBhZ2VhYmxlLCBkZXZ1ZWx2ZSB0b2RvcyBsb3MgdmFsb3JlcyBlbiBtZW1vcmlhXG4gICAgcmV0dXJuIG9mKHRhYmxlLmdldEFsbFZhbHVlcygpKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZVNlcnZpY2UoaW5qZWN0b3I6IEluamVjdG9yLCBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uOiBPRmlsdGVyQ29sdW1uLCB0YWJsZUVudGl0eTogT1RhYmxlQmFzZSkge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLnNlcnZpY2U7XG4gICAgY29uc3Qgc2VydmljZVR5cGUgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLnNlcnZpY2VUeXBlO1xuICAgIGNvbnN0IGVudGl0eSA9IGZpbHRlckNvbHVtbkRlZmluaXRpb24uZW50aXR5ID8/IHRhYmxlRW50aXR5LmVudGl0eTtcbiAgICBpZiAoKHNlcnZpY2UgfHwgc2VydmljZVR5cGUpKSB7XG4gICAgICBsZXQgY29uZmlndXJlU2VydmljZUFyZ3M6IE9Db25maWd1cmVTZXJ2aWNlQXJncyA9IHsgaW5qZWN0b3I6IGluamVjdG9yLCBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLCBlbnRpdHk6IGVudGl0eSwgc2VydmljZTogc2VydmljZSwgc2VydmljZVR5cGU6IHNlcnZpY2VUeXBlIH07XG4gICAgICByZXR1cm4gRmFjdG9yeVV0aWwuY29uZmlndXJlU2VydmljZShjb25maWd1cmVTZXJ2aWNlQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0YWJsZUVudGl0eS5nZXREYXRhU2VydmljZSgpO1xuICAgIH1cblxuICB9XG5cblxuICBpbml0aWFsaXplQ29sdW1uRmlsdGVyRGF0YShcbiAgICBmaWx0ZXI6IE9Db2x1bW5WYWx1ZUZpbHRlcixcbiAgICBjb2x1bW46IE9Db2x1bW4sXG4gICAgdGFibGVEYXRhOiBhbnlbXSxcbiAgICBpc1BhZ2VhYmxlOiBib29sZWFuLFxuICAgIGZpbHRlckNvbHVtbkRlZmluaXRpb246IE9GaWx0ZXJDb2x1bW5cbiAgICAvL2NvbnRleHRTb3VyY2U6ICdtb2RhbCcgfCAnY29udGV4dC1tZW51JyA9ICdtb2RhbCdcbiAgKTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSB7XG5cbiAgICBjb25zdCBjb2x1bW5EYXRhID0gdGhpcy5wYXJzZUxpc3REYXRhKGZpbHRlciwgY29sdW1uLCB0YWJsZURhdGEsIGlzUGFnZWFibGUsIGZpbHRlckNvbHVtbkRlZmluaXRpb24pO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSBmaWx0ZXI/LnZhbHVlcyA/PyBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sdW1uRGF0YSkge1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IHNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKGl0ZW0udmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5EYXRhO1xuICB9XG59XG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1maWx0ZXItYnktY29sdW1uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2RpYWxvZy9maWx0ZXItYnktY29sdW1uL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLHlCQUF5QixFQUFzQixNQUFNLHVEQUF1RCxDQUFDO0FBRXRILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQUtwRixNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLGdCQUFnQixDQUFDO0lBTWpCLDBCQUEwQixDQUFDLE1BQWUsRUFBRSxTQUFnQixFQUFFLGNBQXdCLEVBQUUsU0FBaUI7UUFDdkcsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVuRixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDcEU7aUJB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QUMsTUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRTtZQUM1QixJQUFJLG9CQUFvQixHQUEwQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ25LLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3JDO0lBRUgsQ0FBQztJQUdELDBCQUEwQixDQUN4QixNQUEwQixFQUMxQixNQUFlLEVBQ2YsU0FBZ0IsRUFDaEIsVUFBbUIsRUFDbkIsc0JBQXFDO1FBSXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFFckcsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDNUMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O3lIQTNMVSwyQkFBMkI7NkhBQTNCLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvciwgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4tZGF0YS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0NvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGYWN0b3J5VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvZmFjdG9yeS51dGlsJztcbmltcG9ydCB7IE9Db25maWd1cmVTZXJ2aWNlQXJncyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2NvbmZpZ3VyZS1zZXJ2aWNlLWFyZ3MudHlwZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9vLXRhYmxlLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0ZpbHRlckNvbHVtbiB9IGZyb20gJy4uLy4uL2hlYWRlci90YWJsZS1jb2x1bW5zLWZpbHRlci9jb2x1bW5zL28tdGFibGUtY29sdW1ucy1maWx0ZXItY29sdW1uLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICogUmV0dXJucyB0aGUgZGlzcGxheWVkIChyZW5kZXJlZCkgdmFsdWVzIGZvciBhIGNvbHVtbiBmcm9tIHRoZSBnaXZlbiB0YWJsZSBkYXRhLlxuICogRmFsbHMgYmFjayB0byByYXcgdmFsdWUgaWYgbm8gcmVuZGVyZXIgaXMgZGVmaW5lZC5cbiAqL1xuICBnZXRDb2x1bW5EYXRhVXNpbmdSZW5kZXJlcihjb2x1bW46IE9Db2x1bW4sIHRhYmxlRGF0YTogYW55W10sIHZpc2libGVDb2x1bW5zOiBzdHJpbmdbXSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgdXNlQ3VzdG9tUmVuZGVyID0gQXJyYXkuaXNBcnJheSh2aXNpYmxlQ29sdW1ucykgJiYgdmlzaWJsZUNvbHVtbnMubGVuZ3RoID4gMDtcblxuICAgIHJldHVybiB0YWJsZURhdGEubWFwKHJvdyA9PiB7XG4gICAgICBpZiAodXNlQ3VzdG9tUmVuZGVyKSB7XG4gICAgICAgIHJldHVybiB2aXNpYmxlQ29sdW1ucy5tYXAoYXR0ciA9PiByb3dbYXR0cl0gPz8gJycpLmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gcm93W2NvbHVtbi5hdHRyXTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5yZW5kZXJlcj8uZ2V0Q2VsbERhdGE/LihyYXdWYWx1ZSwgcm93KSA/PyByYXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgbGlzdCBvZiBmaWx0ZXJhYmxlIGNvbHVtbiB2YWx1ZXMsIG9wdGlvbmFsbHkgbWFya2luZyBzZWxlY3RlZCBpdGVtcy5cbiAgICpcbiAgICogQHBhcmFtIGZpbHRlciAtIEN1cnJlbnQgZmlsdGVyIGNvbmZpZ3VyYXRpb24gKGNhbiBiZSBudWxsKVxuICAgKiBAcGFyYW0gY29sdW1uIC0gQ29sdW1uIGJlaW5nIGZpbHRlcmVkXG4gICAqIEBwYXJhbSB0YWJsZURhdGEgLSBEYXRhIHRvIGV4dHJhY3QgdmFsdWVzIGZyb20gKHBhZ2VkIG9yIGZ1bGwpXG4gICAqIEBwYXJhbSBpc1BhZ2VhYmxlIC0gV2hldGhlciB0aGUgdGFibGUgaXMgcGFnZWFibGVcbiAgICogQHBhcmFtIHNvdXJjZURhdGEgLSBJbmRpY2F0ZXMgd2hldGhlciBkYXRhIGNvbWVzIGZyb20gY3VycmVudCBwYWdlIG9yIGFsbCBkYXRhXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgY29sdW1uIHZhbHVlcyB3aXRoIHRoZWlyIHJlbmRlcmVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gc3RhdGVcbiAgICovXG5cbiAgcGFyc2VMaXN0RGF0YShcbiAgICBmaWx0ZXI6IE9Db2x1bW5WYWx1ZUZpbHRlcixcbiAgICBjb2x1bW46IE9Db2x1bW4sXG4gICAgdGFibGVEYXRhOiBhbnlbXSxcbiAgICBpc1BhZ2VhYmxlOiBib29sZWFuLFxuICAgIGZpbHRlckNvbHVtbkRlZmluaXRpb246IE9GaWx0ZXJDb2x1bW5cbiAgKTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSB7XG4gICAgY29uc3QgY29sdW1uRGF0YTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSA9IFtdO1xuICAgIGNvbnN0IHZpc2libGVDb2x1bW5zID0gZmlsdGVyQ29sdW1uRGVmaW5pdGlvbi52aXNpYmxlQ29sdW1ucztcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLnNlcGFyYXRvcjtcbiAgICBjb25zdCBzb3VyY2VEYXRhID0gZmlsdGVyQ29sdW1uRGVmaW5pdGlvbi5maWx0ZXJWYWx1ZXNJbkRhdGE7XG4gICAgY29uc3QgY29sUmVuZGVyZWRWYWx1ZXMgPSB0aGlzLmdldENvbHVtbkRhdGFVc2luZ1JlbmRlcmVyKGNvbHVtbiwgdGFibGVEYXRhLCB2aXNpYmxlQ29sdW1ucywgc2VwYXJhdG9yKTtcblxuICAgIC8vIERpZmZlcmVudGlhdGVkIGxvZ2ljOiB1c2UgY29sdW1uLmF0dHIgaWYgY2FsbGVkIGZyb20gdGhlIGNvbnRleHQgbWVudSwgb3RoZXJ3aXNlIHVzZSB2YWx1ZUNvbHVtblxuICAgIGNvbnN0IHZhbHVlQ29sdW1uID1jb2x1bW4udmFsdWVDb2x1bW4gPz8gY29sdW1uLmF0dHI7XG4gICAgY29uc3QgY29sVmFsdWVzID0gdGFibGVEYXRhLm1hcCgoZWxlbSkgPT4gVXRpbC5nZXRWYWx1ZUZyb21QYXRoKGVsZW0sIHZhbHVlQ29sdW1uKSk7XG5cbiAgICAvLyBVc2UgcHJlZGVmaW5lZCB2YWx1ZXMgaWYgYXZhaWxhYmxlIGluIHRoZSBmaWx0ZXIgY29uZmlndXJhdGlvblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChmaWx0ZXI/LmF2YWlsYWJsZVZhbHVlcykpIHtcbiAgICAgIHJldHVybiBmaWx0ZXIuYXZhaWxhYmxlVmFsdWVzO1xuICAgIH1cblxuICAgIGNvbFJlbmRlcmVkVmFsdWVzLmZvckVhY2goKHJlbmRlcmVkVmFsdWUsIGkpID0+IHtcblxuICAgICAgcmVuZGVyZWRWYWx1ZSA9IHJlbmRlcmVkVmFsdWUgPz8gJyc7XG5cbiAgICAgIGNvbnN0IGFscmVhZHlFeGlzdHMgPSBjb2x1bW5EYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlbmRlcmVkVmFsdWUgPT09IHJlbmRlcmVkVmFsdWUpO1xuXG4gICAgICAvLyBBdm9pZCBkdXBsaWNhdGVzIHVubGVzcyB3ZSdyZSBpbiBwYWdlYWJsZSBtb2RlIGFuZCBwcm9jZXNzaW5nIGFsbC1kYXRhXG4gICAgICBpZiAoIWFscmVhZHlFeGlzdHMgfHwgKGlzUGFnZWFibGUgJiYgc291cmNlRGF0YSA9PT0gJ2FsbC1kYXRhJykpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBmaWx0ZXI/Lm9wZXJhdG9yID09PSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLklOICYmXG4gICAgICAgICAgKGZpbHRlcj8udmFsdWVzID8/IFtdKS5pbmNsdWRlcyhjb2xWYWx1ZXNbaV0pO1xuXG4gICAgICAgIGNvbHVtbkRhdGEucHVzaCh7XG4gICAgICAgICAgcmVuZGVyZWRWYWx1ZSxcbiAgICAgICAgICB2YWx1ZTogY29sVmFsdWVzW2ldLFxuICAgICAgICAgIHJvd1ZhbHVlOiB0YWJsZURhdGFbaV0sXG4gICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgdGFibGVJbmRleDogaVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sdW1uRGF0YTtcbiAgfVxuXG4gIC8qKlxuICogQXBwbGllcyBzZWxlY3RlZCBmaWx0ZXIgdmFsdWVzIHRvIGEgZ2l2ZW4gY29sdW1uIGZpbHRlci5cbiAqIFVwZGF0ZXMgb3BlcmF0b3IsIHZhbHVlcywgYXZhaWxhYmxlVmFsdWVzIG9yIGZpbHRlckV4cHJlc3Npb24gYmFzZWQgb24gc291cmNlIGRhdGEuXG4gKlxuICogQHBhcmFtIGZpbHRlciAtIFRoZSBmaWx0ZXIgb2JqZWN0IHRvIHVwZGF0ZVxuICogQHBhcmFtIHNlbGVjdGVkVmFsdWVzIC0gTGlzdCBvZiBzZWxlY3RlZCBjb2x1bW4gZGF0YSBlbnRyaWVzXG4gKiBAcGFyYW0gc291cmNlRGF0YSAtIEluZGljYXRlcyB3aGV0aGVyIGZpbHRlcmluZyBpcyBiYXNlZCBvbiBjdXJyZW50IHBhZ2Ugb3IgYWxsIGRhdGFcbiAqIEBwYXJhbSBjb2x1bW5EYXRhIC0gRnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBjb2x1bW4gZmlsdGVyIGRhdGFcbiAqIEBwYXJhbSBnZXRDb21wb25lbnRGaWx0ZXJGbiAtIEZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBjb21wb25lbnQgZmlsdGVyIGV4cHJlc3Npb25cbiAqL1xuICBhcHBseVNlbGVjdGVkVmFsdWVzVG9GaWx0ZXIoXG4gICAgY29sdW1uOiBPQ29sdW1uLFxuICAgIHRhYmxlRGF0YTogYW55W10sXG4gICAgZmlsdGVyOiBPQ29sdW1uVmFsdWVGaWx0ZXIsXG4gICAgc2VsZWN0ZWRWYWx1ZXM6IFRhYmxlRmlsdGVyQnlDb2x1bW5EYXRhW10sXG4gICAgZmlsdGVyQnlDb2x1bW5EZWZpbml0aW9uOiBPRmlsdGVyQ29sdW1uLFxuICAgIGlzUGFnZWFibGU6IGJvb2xlYW4sXG4gICAgZ2V0Q29tcG9uZW50RmlsdGVyRm46ICgpID0+IGFueVxuICApOiB2b2lkIHtcbiAgICBmaWx0ZXIub3BlcmF0b3IgPSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLklOO1xuICAgIGZpbHRlci52YWx1ZXMgPSBzZWxlY3RlZFZhbHVlcy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcblxuICAgIGNvbnN0IHNvdXJjZURhdGEgPSBmaWx0ZXJCeUNvbHVtbkRlZmluaXRpb24uZmlsdGVyVmFsdWVzSW5EYXRhO1xuICAgIGNvbnN0IGVmZmVjdGl2ZVNvdXJjZURhdGEgPSBzb3VyY2VEYXRhID8/ICdjdXJyZW50LXBhZ2UnO1xuICAgIGlmIChlZmZlY3RpdmVTb3VyY2VEYXRhKSB7XG4gICAgICBmaWx0ZXIuYXZhaWxhYmxlVmFsdWVzID0gdGhpcy5wYXJzZUxpc3REYXRhKGZpbHRlciwgY29sdW1uLCBmaWx0ZXIuYXZhaWxhYmxlVmFsdWVzID8/IHRhYmxlRGF0YSwgaXNQYWdlYWJsZSwgZmlsdGVyQnlDb2x1bW5EZWZpbml0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVyLmZpbHRlckV4cHJlc2lvbiA9IGZpbHRlci5maWx0ZXJFeHByZXNpb24gfHwgZ2V0Q29tcG9uZW50RmlsdGVyRm4oKTtcbiAgICB9XG4gIH1cblxuICBnZXREYXRhRm9yQ29sdW1uRmlsdGVyKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICB0YWJsZTogT1RhYmxlQmFzZSxcbiAgICBjb2x1bW46IE9Db2x1bW4sXG4gICAgZmlsdGVyQ29sdW1uRGVmaW5pdGlvbjogT0ZpbHRlckNvbHVtblxuICApOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgaWYgKGZpbHRlckNvbHVtbkRlZmluaXRpb24uZmlsdGVyVmFsdWVzSW5EYXRhID09PSAnY3VycmVudC1wYWdlJykge1xuICAgICAgLy8gR2V0IGRhdGEgb25seSBmcm9tIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgIHJldHVybiBvZih0YWJsZS5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGFibGUucGFnZWFibGUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzRmlsdGVyID0gdGFibGUuZGF0YVNvdXJjZS5nZXRDb2x1bW5WYWx1ZUZpbHRlckJ5QXR0cihjb2x1bW4uYXR0cik7XG4gICAgICAvLyBHZXQgYWxsIHBhZ2luYXRlZCBkYXRhIHVzaW5nIHRoZSByZW1vdGUgc2VydmljZVxuICAgICAgY29uc3Qga3YgPSBwcmV2aW91c0ZpbHRlcj8uZmlsdGVyRXhwcmVzaW9uIHx8IHRhYmxlLmdldENvbXBvbmVudEZpbHRlcigpO1xuICAgICAgY29uc3QgYXYgPSBbY29sdW1uLmF0dHJdO1xuICAgICAgY29uc3Qgc3FsVHlwZXMgPSBVdGlsLmlzRGVmaW5lZChrdikgJiYgIVV0aWwuaXNPYmplY3RFbXB0eShrdilcbiAgICAgICAgPyB0YWJsZS5nZXRTcWxUeXBlcygpXG4gICAgICAgIDoge307XG4gICAgICBjb25zdCBlbnRpdHkgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLmVudGl0eSA/PyB0YWJsZS5lbnRpdHk7XG5cbiAgICAgIGNvbnN0IGNvbHVtblF1ZXJ5QXJncyA9IFtrdiwgYXYsIGVudGl0eSwgc3FsVHlwZXNdO1xuICAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY29uZmlndXJlU2VydmljZShpbmplY3RvciwgZmlsdGVyQ29sdW1uRGVmaW5pdGlvbiwgdGFibGUpO1xuICAgICAgY29uc3QgcXVlcnlNZXRob2ROYW1lID0gZmlsdGVyQ29sdW1uRGVmaW5pdGlvbi5xdWVyeU1ldGhvZCA/PyAgdGFibGUucXVlcnlNZXRob2Q7XG5cblxuICAgICAgaWYgKHNlcnZpY2UgJiYgcXVlcnlNZXRob2ROYW1lICYmIHR5cGVvZiBzZXJ2aWNlW3F1ZXJ5TWV0aG9kTmFtZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0JCA9IHNlcnZpY2VbcXVlcnlNZXRob2ROYW1lXSguLi5jb2x1bW5RdWVyeUFyZ3MpIGFzIE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPjtcblxuICAgICAgICAvLyBDb252ZXJ0IFNlcnZpY2VSZXNwb25zZSBpbnRvIGEgZGF0YSBhcnJheVxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55W10+KG9ic2VydmVyID0+IHtcbiAgICAgICAgICByZXN1bHQkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByZXMgPT4gb2JzZXJ2ZXIubmV4dChyZXM/LmlzU3VjY2Vzc2Z1bCgpID8gcmVzLmRhdGEgOiBbXSksXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW0ZpbHRlclNlcnZpY2VdIEVycm9yIGFsIGNvbnN1bHRhciBkYXRvcyBkZWwgZmlsdHJvOicsIGVycik7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoW10pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2YoW10pOyAvLyBmYWxsYmFja1xuICAgIH1cblxuICAgIC8vIFNpIGxhIHRhYmxhIG5vIGVzIHBhZ2VhYmxlLCBkZXZ1ZWx2ZSB0b2RvcyBsb3MgdmFsb3JlcyBlbiBtZW1vcmlhXG4gICAgcmV0dXJuIG9mKHRhYmxlLmdldEFsbFZhbHVlcygpKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZVNlcnZpY2UoaW5qZWN0b3I6IEluamVjdG9yLCBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uOiBPRmlsdGVyQ29sdW1uLCB0YWJsZUVudGl0eTogT1RhYmxlQmFzZSkge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLnNlcnZpY2U7XG4gICAgY29uc3Qgc2VydmljZVR5cGUgPSBmaWx0ZXJDb2x1bW5EZWZpbml0aW9uLnNlcnZpY2VUeXBlO1xuICAgIGNvbnN0IGVudGl0eSA9IGZpbHRlckNvbHVtbkRlZmluaXRpb24uZW50aXR5ID8/IHRhYmxlRW50aXR5LmVudGl0eTtcbiAgICBpZiAoKHNlcnZpY2UgfHwgc2VydmljZVR5cGUpKSB7XG4gICAgICBsZXQgY29uZmlndXJlU2VydmljZUFyZ3M6IE9Db25maWd1cmVTZXJ2aWNlQXJncyA9IHsgaW5qZWN0b3I6IGluamVjdG9yLCBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLCBlbnRpdHk6IGVudGl0eSwgc2VydmljZTogc2VydmljZSwgc2VydmljZVR5cGU6IHNlcnZpY2VUeXBlIH07XG4gICAgICByZXR1cm4gRmFjdG9yeVV0aWwuY29uZmlndXJlU2VydmljZShjb25maWd1cmVTZXJ2aWNlQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0YWJsZUVudGl0eS5nZXREYXRhU2VydmljZSgpO1xuICAgIH1cblxuICB9XG5cblxuICBpbml0aWFsaXplQ29sdW1uRmlsdGVyRGF0YShcbiAgICBmaWx0ZXI6IE9Db2x1bW5WYWx1ZUZpbHRlcixcbiAgICBjb2x1bW46IE9Db2x1bW4sXG4gICAgdGFibGVEYXRhOiBhbnlbXSxcbiAgICBpc1BhZ2VhYmxlOiBib29sZWFuLFxuICAgIGZpbHRlckNvbHVtbkRlZmluaXRpb246IE9GaWx0ZXJDb2x1bW5cbiAgICAvL2NvbnRleHRTb3VyY2U6ICdtb2RhbCcgfCAnY29udGV4dC1tZW51JyA9ICdtb2RhbCdcbiAgKTogVGFibGVGaWx0ZXJCeUNvbHVtbkRhdGFbXSB7XG5cbiAgICBjb25zdCBjb2x1bW5EYXRhID0gdGhpcy5wYXJzZUxpc3REYXRhKGZpbHRlciwgY29sdW1uLCB0YWJsZURhdGEsIGlzUGFnZWFibGUsIGZpbHRlckNvbHVtbkRlZmluaXRpb24pO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSBmaWx0ZXI/LnZhbHVlcyA/PyBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sdW1uRGF0YSkge1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IHNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKGl0ZW0udmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5EYXRhO1xuICB9XG59XG4iXX0=
|
|
@@ -36,9 +36,9 @@ export class OTableGroupByColumnsDialogComponent {
|
|
|
36
36
|
return this.dualListSelector.getGroupedColumnTypes();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
OTableGroupByColumnsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
40
|
-
OTableGroupByColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
39
|
+
OTableGroupByColumnsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableGroupByColumnsDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
OTableGroupByColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableGroupByColumnsDialogComponent, selector: "o-table-group-by-columns-dialog", host: { properties: { "class.o-table-group-by-column-dialog": "true" } }, viewQueries: [{ propertyName: "dualListSelector", first: true, predicate: ["dualListSelector"], descendants: true }], ngImport: i0, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.GROUPBY' | oTranslate }}</span>\n\n<mat-dialog-content>\n <o-dual-list-selector #dualListSelector [data-source]=\"columns\" [data-destination]=\"groupedColumns\" [grouped-column-types]=\"groupedColumnTypes\"\n key=\"attr\" display=\"title\" title-list-data-source=\"TABLE_GROUP_BY_COLUMNS_DIALOG.ALL_COLUMNS\"\n title-list-data-destination=\"TABLE_GROUP_BY_COLUMNS_DIALOG.GROUPED_COLUMNS\" description=\"TABLE_GROUP_BY_COLUMNS_DIALOG.DESCRIPTION\" fxFlexFill>\n </o-dual-list-selector>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayoutAlign=\"end center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"false\" class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"true\" class=\"o-button-primary\">{{ 'ACCEPT' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-table-group-by-column-dialog{display:flex;flex-direction:column;height:100%}.o-table-group-by-column-dialog .mat-mdc-dialog-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4.ODualListSelectorComponent, selector: "o-dual-list-selector", inputs: ["key", "display", "data-source", "data-destination", "title-list-data-source", "title-list-data-destination", "grouped-column-types", "description"] }, { kind: "pipe", type: i5.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableGroupByColumnsDialogComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{ selector: 'o-table-group-by-columns-dialog', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
44
44
|
'[class.o-table-group-by-column-dialog]': 'true'
|
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
50
50
|
type: ViewChild,
|
|
51
51
|
args: ['dualListSelector']
|
|
52
52
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1ncm91cC1ieS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2RpYWxvZy9ncm91cC1ieS1jb2x1bW5zL28tdGFibGUtZ3JvdXAtYnktY29sdW1ucy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9kaWFsb2cvZ3JvdXAtYnktY29sdW1ucy9vLXRhYmxlLWdyb3VwLWJ5LWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQWNoRCxNQUFNLE9BQU8sbUNBQW1DO0lBUTlDLFlBQ1MsU0FBNEQsRUFDMUMsSUFBUztRQUQzQixjQUFTLEdBQVQsU0FBUyxDQUFtRDtRQVA5RCxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQTBCLEVBQUUsQ0FBQztRQVNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDakYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUU5SjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7O2lJQXRDVSxtQ0FBbUMsOENBVXBDLGVBQWU7cUhBVmQsbUNBQW1DLHVRQ2pCaEQseTVCQWFBOzRGRElhLG1DQUFtQztrQkFWL0MsU0FBUzsrQkFDRSxpQ0FBaUMsaUJBRzVCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osd0NBQXdDLEVBQUUsTUFBTTtxQkFDakQ7OzBCQVlFLE1BQU07MkJBQUMsZUFBZTs0Q0FKTSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPR3JvdXBlZENvbHVtblR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvby1ncm91cGVkLWNvbHVtbi10eXBlcy50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB0eXBlIHsgT0R1YWxMaXN0U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9kdWFsLWxpc3Qtc2VsZWN0b3Ivby1kdWFsLWxpc3Qtc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1ncm91cC1ieS1jb2x1bW5zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnby10YWJsZS1ncm91cC1ieS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydvLXRhYmxlLWdyb3VwLWJ5LWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXRhYmxlLWdyb3VwLWJ5LWNvbHVtbi1kaWFsb2ddJzogJ3RydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlR3JvdXBCeUNvbHVtbnNEaWFsb2dDb21wb25lbnQge1xuXG4gIHB1YmxpYyBjb2x1bW5zOiBBcnJheTxPQ29sdW1uPiA9IFtdO1xuICBwdWJsaWMgZ3JvdXBlZENvbHVtbnM6IEFycmF5PE9Db2x1bW4+ID0gW107XG4gIHB1YmxpYyBncm91cGVkQ29sdW1uVHlwZXM6IE9Hcm91cGVkQ29sdW1uVHlwZXNbXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ2R1YWxMaXN0U2VsZWN0b3InKSBkdWFsTGlzdFNlbGVjdG9yOiBPRHVhbExpc3RTZWxlY3RvckNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8T1RhYmxlR3JvdXBCeUNvbHVtbnNEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkYXRhOiBhbnlcbiAgKSB7XG5cbiAgICBpZiAoVXRpbC5pc0FycmF5KGRhdGEuZ3JvdXBlZENvbHVtbnMpICYmICFVdGlsLmlzQXJyYXlFbXB0eShkYXRhLmdyb3VwZWRDb2x1bW5zKSkge1xuICAgICAgdGhpcy5ncm91cGVkQ29sdW1ucyA9IGRhdGEuZ3JvdXBlZENvbHVtbnMubWFwKChhdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXhDb2wgPSBkYXRhLmNvbHVtbnNEYXRhLmZpbmRJbmRleCgoY29sOiBPQ29sdW1uKSA9PiBjb2wuYXR0ciA9PT0gYXR0cik7XG4gICAgICAgIGlmIChpbmRleENvbCA+IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEuY29sdW1uc0RhdGFbaW5kZXhDb2xdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBpZiAoVXRpbC5pc0FycmF5KGRhdGEuY29sdW1uc0RhdGEpKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBkYXRhLmNvbHVtbnNEYXRhLmZpbHRlcigob0NvbDogT0NvbHVtbikgPT4gb0NvbC52aXNpYmxlICYmIG9Db2wuZ3JvdXBhYmxlICYmIHNlbGYuZ3JvdXBlZENvbHVtbnMuZmluZEluZGV4KHggPT4geC5hdHRyID09PSBvQ29sLmF0dHIpID09PSAtMSk7XG5cbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGRhdGEuZ3JvdXBlZENvbHVtblR5cGVzKSkge1xuICAgICAgdGhpcy5ncm91cGVkQ29sdW1uVHlwZXMgPSBkYXRhLmdyb3VwZWRDb2x1bW5UeXBlcztcbiAgICB9XG4gIH1cblxuICBnZXRHcm91cGVkQ29sdW1ucygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kdWFsTGlzdFNlbGVjdG9yLmdldFNlbGVjdGVkSXRlbXMoKS5tYXAoKG9Db2w6IE9Db2x1bW4pID0+IG9Db2wuYXR0cik7XG4gIH1cblxuICBnZXRHcm91cGVkQ29sdW1uVHlwZXMoKTogT0dyb3VwZWRDb2x1bW5UeXBlc1tdIHtcbiAgICByZXR1cm4gdGhpcy5kdWFsTGlzdFNlbGVjdG9yLmdldEdyb3VwZWRDb2x1bW5UeXBlcygpO1xuICB9XG59XG4iLCI8c3BhbiBtYXQtZGlhbG9nLXRpdGxlPnt7ICdUQUJMRS5CVVRUT05TLkdST1VQQlknIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgPG8tZHVhbC1saXN0LXNlbGVjdG9yICNkdWFsTGlzdFNlbGVjdG9yIFtkYXRhLXNvdXJjZV09XCJjb2x1bW5zXCIgW2RhdGEtZGVzdGluYXRpb25dPVwiZ3JvdXBlZENvbHVtbnNcIiBbZ3JvdXBlZC1jb2x1bW4tdHlwZXNdPVwiZ3JvdXBlZENvbHVtblR5cGVzXCJcbiAgICBrZXk9XCJhdHRyXCIgZGlzcGxheT1cInRpdGxlXCIgdGl0bGUtbGlzdC1kYXRhLXNvdXJjZT1cIlRBQkxFX0dST1VQX0JZX0NPTFVNTlNfRElBTE9HLkFMTF9DT0xVTU5TXCJcbiAgICB0aXRsZS1saXN0LWRhdGEtZGVzdGluYXRpb249XCJUQUJMRV9HUk9VUF9CWV9DT0xVTU5TX0RJQUxPRy5HUk9VUEVEX0NPTFVNTlNcIiBkZXNjcmlwdGlvbj1cIlRBQkxFX0dST1VQX0JZX0NPTFVNTlNfRElBTE9HLkRFU0NSSVBUSU9OXCIgZnhGbGV4RmlsbD5cbiAgPC9vLWR1YWwtbGlzdC1zZWxlY3Rvcj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiIGNsYXNzPVwiby1idXR0b24tZGVmYXVsdCBjYW5jZWxcIj57eyAnQ0FOQ0VMJyB8IG9UcmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjbGFzcz1cIm8tYnV0dG9uLXByaW1hcnlcIj57eyAnQUNDRVBUJyB8IG9UcmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|