@tetacom/ng-components 1.4.22 → 1.5.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/.eslintrc.json +3 -5
- package/component/dropdown/dropdown-base.d.ts +1 -1
- package/directive/dynamic-content-base.directive.d.ts +1 -1
- package/fesm2022/tetacom-ng-components.mjs +515 -489
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/package.json +3 -5
- package/pipe/prepend-zero/prepend-zero.pipe.d.ts +7 -0
- package/pipe/prepend-zero/public-api.d.ts +1 -0
- package/pipe/public-api.d.ts +1 -0
- package/style/badge.scss +6 -4
- package/style/checkbox.scss +3 -1
- package/style/chips.scss +3 -1
- package/style/icon.scss +3 -1
- package/style/message.scss +3 -1
- package/style/navigation.scss +3 -1
- package/style/presets/view-types.scss +3 -1
- package/style/toggle.scss +3 -1
- package/style/toolbar.scss +3 -1
- package/esm2022/common/contract/auto-close-ignore-case.mjs +0 -2
- package/esm2022/common/contract/constructor-type.mjs +0 -2
- package/esm2022/common/contract/dynamic-data.mjs +0 -10
- package/esm2022/common/contract/i-dictionary.mjs +0 -2
- package/esm2022/common/contract/i-id-name.mjs +0 -2
- package/esm2022/common/contract/i-id.mjs +0 -2
- package/esm2022/common/contract/i-rect.mjs +0 -2
- package/esm2022/common/contract/i-tree-data.mjs +0 -2
- package/esm2022/common/contract/public-api.mjs +0 -10
- package/esm2022/common/contract/teta-content-ref.mjs +0 -8
- package/esm2022/common/enum/align.enum.mjs +0 -13
- package/esm2022/common/enum/public-api.mjs +0 -4
- package/esm2022/common/enum/teta-size.enum.mjs +0 -9
- package/esm2022/common/enum/vertical-align.enum.mjs +0 -11
- package/esm2022/common/model/public-api.mjs +0 -2
- package/esm2022/common/model/view-type.model.mjs +0 -2
- package/esm2022/common/public-api.mjs +0 -6
- package/esm2022/common/service/click.service.mjs +0 -23
- package/esm2022/common/service/dynamic-component.service.mjs +0 -93
- package/esm2022/common/service/overlay-container.service.mjs +0 -41
- package/esm2022/common/service/public-api.mjs +0 -4
- package/esm2022/common/util/array-util.mjs +0 -121
- package/esm2022/common/util/dom-util.mjs +0 -19
- package/esm2022/common/util/position-util.mjs +0 -136
- package/esm2022/common/util/public-api.mjs +0 -4
- package/esm2022/component/accordion/accordion/accordion.component.mjs +0 -17
- package/esm2022/component/accordion/accordion-content.directive.mjs +0 -17
- package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +0 -51
- package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +0 -62
- package/esm2022/component/accordion/public-api.mjs +0 -5
- package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +0 -13
- package/esm2022/component/autocomplete/public-api.mjs +0 -2
- package/esm2022/component/avatar/avatar/avatar.component.mjs +0 -55
- package/esm2022/component/avatar/model/avatar-color.enum.mjs +0 -22
- package/esm2022/component/avatar/public-api.mjs +0 -2
- package/esm2022/component/button/button/button.component.mjs +0 -67
- package/esm2022/component/button/public-api.mjs +0 -2
- package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +0 -241
- package/esm2022/component/chart-3d/model/base-3d-point.mjs +0 -2
- package/esm2022/component/chart-3d/model/chart-3d-options.mjs +0 -7
- package/esm2022/component/chart-3d/model/public-api.mjs +0 -3
- package/esm2022/component/chart-3d/model/series-3d.mjs +0 -7
- package/esm2022/component/chart-3d/public-api.mjs +0 -3
- package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +0 -137
- package/esm2022/component/checkbox/public-api.mjs +0 -2
- package/esm2022/component/date-picker/base-calendar.mjs +0 -121
- package/esm2022/component/date-picker/base-picker.mjs +0 -109
- package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +0 -50
- package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +0 -228
- package/esm2022/component/date-picker/date-range/date-range.component.mjs +0 -233
- package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +0 -118
- package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +0 -15
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +0 -118
- package/esm2022/component/date-picker/model/date-period.mjs +0 -7
- package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +0 -7
- package/esm2022/component/date-picker/model/day-model.mjs +0 -13
- package/esm2022/component/date-picker/model/from-to.model.mjs +0 -2
- package/esm2022/component/date-picker/model/min-max-date.model.mjs +0 -2
- package/esm2022/component/date-picker/model/public-api.mjs +0 -6
- package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +0 -47
- package/esm2022/component/date-picker/public-api.mjs +0 -6
- package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +0 -27
- package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +0 -48
- package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +0 -63
- package/esm2022/component/delimiter/public-api.mjs +0 -2
- package/esm2022/component/divider/divider/divider.component.mjs +0 -18
- package/esm2022/component/divider/public-api.mjs +0 -2
- package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +0 -30
- package/esm2022/component/dropdown/dropdown-base.mjs +0 -224
- package/esm2022/component/dropdown/dropdown-content.directive.mjs +0 -18
- package/esm2022/component/dropdown/dropdown-head.directive.mjs +0 -19
- package/esm2022/component/dropdown/dropdown.directive.mjs +0 -38
- package/esm2022/component/dropdown/public-api.mjs +0 -5
- package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +0 -53
- package/esm2022/component/dynamic-component/public-api.mjs +0 -2
- package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +0 -34
- package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +0 -25
- package/esm2022/component/expand-card/public-api.mjs +0 -3
- package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +0 -65
- package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +0 -17
- package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +0 -17
- package/esm2022/component/expand-panel/public-api.mjs +0 -4
- package/esm2022/component/file-upload/file-item/file-item.component.mjs +0 -13
- package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +0 -87
- package/esm2022/component/file-upload/public-api.mjs +0 -3
- package/esm2022/component/filter/base/filter-base.mjs +0 -10
- package/esm2022/component/filter/base/filter-component-base.mjs +0 -3
- package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +0 -63
- package/esm2022/component/filter/contarct/boolean-filter.mjs +0 -8
- package/esm2022/component/filter/contarct/date-filter-value.mjs +0 -9
- package/esm2022/component/filter/contarct/date-filter.mjs +0 -11
- package/esm2022/component/filter/contarct/filter-component-map.mjs +0 -15
- package/esm2022/component/filter/contarct/filter-item.mjs +0 -34
- package/esm2022/component/filter/contarct/filter-state.mjs +0 -145
- package/esm2022/component/filter/contarct/i-filter.mjs +0 -2
- package/esm2022/component/filter/contarct/list-filter.mjs +0 -12
- package/esm2022/component/filter/contarct/numeric-filter-value.mjs +0 -10
- package/esm2022/component/filter/contarct/numeric-filter.mjs +0 -9
- package/esm2022/component/filter/contarct/sort-param.mjs +0 -14
- package/esm2022/component/filter/contarct/string-filter.mjs +0 -12
- package/esm2022/component/filter/date-filter/date-filter.component.mjs +0 -64
- package/esm2022/component/filter/enum/filter-type.enum.mjs +0 -10
- package/esm2022/component/filter/enum/list-filter-type.enum.mjs +0 -6
- package/esm2022/component/filter/enum/string-filter-type.enum.mjs +0 -20
- package/esm2022/component/filter/filter-host/filter-host.component.mjs +0 -79
- package/esm2022/component/filter/list-filter/list-filter.component.mjs +0 -96
- package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +0 -64
- package/esm2022/component/filter/public-api.mjs +0 -23
- package/esm2022/component/filter/string-filter/string-filter.component.mjs +0 -64
- package/esm2022/component/icon/icon/icon.component.mjs +0 -54
- package/esm2022/component/icon/icon-file/icon-file.component.mjs +0 -27
- package/esm2022/component/icon/icon-sprite.directive.mjs +0 -34
- package/esm2022/component/icon/icon.service.mjs +0 -58
- package/esm2022/component/icon/public-api.mjs +0 -5
- package/esm2022/component/input/color-input/color-input.component.mjs +0 -71
- package/esm2022/component/input/form-group-title/form-group-title.component.mjs +0 -18
- package/esm2022/component/input/input/input.component.mjs +0 -38
- package/esm2022/component/input/public-api.mjs +0 -6
- package/esm2022/component/input/text-field/text-field.component.mjs +0 -94
- package/esm2022/component/message/message/message.component.mjs +0 -76
- package/esm2022/component/message/message-host/message-host.component.mjs +0 -84
- package/esm2022/component/message/message.service.mjs +0 -35
- package/esm2022/component/message/model/message.mjs +0 -23
- package/esm2022/component/message/public-api.mjs +0 -5
- package/esm2022/component/modal/dialog/dialog.component.mjs +0 -46
- package/esm2022/component/modal/dialog.service.mjs +0 -40
- package/esm2022/component/modal/modal-container/modal-container.component.mjs +0 -77
- package/esm2022/component/modal/modal.module.mjs +0 -32
- package/esm2022/component/modal/modal.service.mjs +0 -122
- package/esm2022/component/modal/model/current-modal.mjs +0 -3
- package/esm2022/component/modal/model/i-modal-config.mjs +0 -2
- package/esm2022/component/modal/model/i-modal-result.mjs +0 -2
- package/esm2022/component/modal/model/modal-close-reason.enum.mjs +0 -8
- package/esm2022/component/modal/model/modal-instance.mjs +0 -34
- package/esm2022/component/modal/public-api.mjs +0 -11
- package/esm2022/component/pager/model/pager-state.mjs +0 -51
- package/esm2022/component/pager/pager/pager.component.mjs +0 -13
- package/esm2022/component/pager/public-api.mjs +0 -4
- package/esm2022/component/pager/util/pager-util.mjs +0 -6
- package/esm2022/component/panel/panel/panel.component.mjs +0 -45
- package/esm2022/component/panel/public-api.mjs +0 -2
- package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +0 -130
- package/esm2022/component/progress-bar/public-api.mjs +0 -2
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +0 -24
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +0 -133
- package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +0 -20
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +0 -97
- package/esm2022/component/property-grid/public-api.mjs +0 -4
- package/esm2022/component/public-api.mjs +0 -72
- package/esm2022/component/radio/public-api.mjs +0 -3
- package/esm2022/component/radio/radio/radio.component.mjs +0 -240
- package/esm2022/component/radio/radio-button/radio-button.component.mjs +0 -63
- package/esm2022/component/resize-panel/public-api.mjs +0 -2
- package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +0 -166
- package/esm2022/component/select/public-api.mjs +0 -4
- package/esm2022/component/select/select/select.component.mjs +0 -272
- package/esm2022/component/select/select-option.directive.mjs +0 -17
- package/esm2022/component/select/select-value.directive.mjs +0 -17
- package/esm2022/component/sidebar/public-api.mjs +0 -3
- package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +0 -48
- package/esm2022/component/sidebar/sidebar-position.enum.mjs +0 -8
- package/esm2022/component/stepper/public-api.mjs +0 -2
- package/esm2022/component/stepper/stepper/stepper.component.mjs +0 -16
- package/esm2022/component/switch/public-api.mjs +0 -3
- package/esm2022/component/switch/switch/switch.component.mjs +0 -61
- package/esm2022/component/switch/switch-button/switch-button.component.mjs +0 -47
- package/esm2022/component/switch/switch.service.mjs +0 -21
- package/esm2022/component/table/base/cell-component-base.mjs +0 -158
- package/esm2022/component/table/base/detail-component-base.mjs +0 -3
- package/esm2022/component/table/base/head-cell-component-base.mjs +0 -18
- package/esm2022/component/table/cell/cell.component.mjs +0 -28
- package/esm2022/component/table/cell-host/cell-host.component.mjs +0 -56
- package/esm2022/component/table/contract/cell-components-map.mjs +0 -15
- package/esm2022/component/table/contract/column-reorder-event.mjs +0 -7
- package/esm2022/component/table/contract/column-resize-event.mjs +0 -7
- package/esm2022/component/table/contract/head-dropdown-tab.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-coordinates.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-event.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-instance.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-value.mjs +0 -2
- package/esm2022/component/table/contract/public-api.mjs +0 -13
- package/esm2022/component/table/contract/sort-event.mjs +0 -7
- package/esm2022/component/table/contract/table-column-store.mjs +0 -12
- package/esm2022/component/table/contract/table-column.mjs +0 -44
- package/esm2022/component/table/contract/table-row.mjs +0 -7
- package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +0 -39
- package/esm2022/component/table/default/date-cell/date-cell.component.mjs +0 -40
- package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +0 -40
- package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +0 -49
- package/esm2022/component/table/default/list-cell/list-cell.component.mjs +0 -60
- package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +0 -39
- package/esm2022/component/table/default/string-cell/string-cell.component.mjs +0 -40
- package/esm2022/component/table/enum/aggregation-type.enum.mjs +0 -9
- package/esm2022/component/table/enum/edit-event.enum.mjs +0 -7
- package/esm2022/component/table/enum/edit-type.enum.mjs +0 -7
- package/esm2022/component/table/enum/public-api.mjs +0 -5
- package/esm2022/component/table/enum/select-type.enum.mjs +0 -7
- package/esm2022/component/table/head-cell/head-cell.component.mjs +0 -204
- package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +0 -50
- package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +0 -60
- package/esm2022/component/table/public-api.mjs +0 -42
- package/esm2022/component/table/selection-cell/selection-cell.component.mjs +0 -46
- package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +0 -45
- package/esm2022/component/table/service/table.service.mjs +0 -650
- package/esm2022/component/table/table/table.component.mjs +0 -470
- package/esm2022/component/table/table-body/table-body.component.mjs +0 -210
- package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +0 -57
- package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +0 -89
- package/esm2022/component/table/table-head/table-head.component.mjs +0 -76
- package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +0 -154
- package/esm2022/component/table/table-head-group/table-head-group.component.mjs +0 -72
- package/esm2022/component/table/table-row/table-row.component.mjs +0 -42
- package/esm2022/component/table/util/public-api.mjs +0 -3
- package/esm2022/component/table/util/state-util.mjs +0 -146
- package/esm2022/component/table/util/table-util.mjs +0 -133
- package/esm2022/component/tabs/public-api.mjs +0 -11
- package/esm2022/component/tabs/tab/tab.component.mjs +0 -42
- package/esm2022/component/tabs/tab-content.directive.mjs +0 -17
- package/esm2022/component/tabs/tab-title.directive.mjs +0 -17
- package/esm2022/component/tabs/tabs/tabs.component.mjs +0 -82
- package/esm2022/component/theme-switch/public-api.mjs +0 -3
- package/esm2022/component/theme-switch/theme-switch/theme-switch.component.mjs +0 -30
- package/esm2022/component/theme-switch/theme-switch.service.mjs +0 -34
- package/esm2022/component/toggle/public-api.mjs +0 -2
- package/esm2022/component/toggle/toggle/toggle.component.mjs +0 -79
- package/esm2022/component/toolbar/public-api.mjs +0 -5
- package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +0 -26
- package/esm2022/component/tree/public-api.mjs +0 -4
- package/esm2022/component/tree/tree/tree.component.mjs +0 -143
- package/esm2022/component/tree/tree-item/tree-item.component.mjs +0 -75
- package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +0 -28
- package/esm2022/component/tree/tree.service.mjs +0 -40
- package/esm2022/directive/auto-position/auto-position.directive.mjs +0 -71
- package/esm2022/directive/auto-position/public-api.mjs +0 -2
- package/esm2022/directive/click-outside/click-outside.directive.mjs +0 -66
- package/esm2022/directive/click-outside/public-api.mjs +0 -2
- package/esm2022/directive/context-menu/context-menu.directive.mjs +0 -119
- package/esm2022/directive/context-menu/public-api.mjs +0 -2
- package/esm2022/directive/disable-control/disable-control.directive.mjs +0 -35
- package/esm2022/directive/disable-control/public-api.mjs +0 -2
- package/esm2022/directive/drag-drop/drag-container.directive.mjs +0 -92
- package/esm2022/directive/drag-drop/drag-drop.service.mjs +0 -145
- package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +0 -15
- package/esm2022/directive/drag-drop/drag-preview.directive.mjs +0 -17
- package/esm2022/directive/drag-drop/drag.directive.mjs +0 -138
- package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +0 -8
- package/esm2022/directive/drag-drop/model/drag-instance.mjs +0 -7
- package/esm2022/directive/drag-drop/model/drag-process.mjs +0 -2
- package/esm2022/directive/drag-drop/model/drag-selection.mjs +0 -2
- package/esm2022/directive/drag-drop/model/drop-event.mjs +0 -2
- package/esm2022/directive/drag-drop/model/drop-target.mjs +0 -2
- package/esm2022/directive/drag-drop/model/point.mjs +0 -2
- package/esm2022/directive/drag-drop/model/public-api.mjs +0 -8
- package/esm2022/directive/drag-drop/public-api.mjs +0 -7
- package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +0 -65
- package/esm2022/directive/drag-sort/drag-sort-event.mjs +0 -2
- package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +0 -111
- package/esm2022/directive/drag-sort/public-api.mjs +0 -4
- package/esm2022/directive/dynamic-content-base.directive.mjs +0 -80
- package/esm2022/directive/highlight/highlight.directive.mjs +0 -72
- package/esm2022/directive/highlight/public-api.mjs +0 -2
- package/esm2022/directive/hint/hint.directive.mjs +0 -102
- package/esm2022/directive/hint/public-api.mjs +0 -2
- package/esm2022/directive/let/let.directive.mjs +0 -39
- package/esm2022/directive/let/public-api.mjs +0 -2
- package/esm2022/directive/loader/loader.directive.mjs +0 -85
- package/esm2022/directive/loader/public-api.mjs +0 -2
- package/esm2022/directive/no-autofill/no-autofill.directive.mjs +0 -31
- package/esm2022/directive/no-autofill/public-api.mjs +0 -2
- package/esm2022/directive/only-number/only-number.directive.mjs +0 -184
- package/esm2022/directive/only-number/public-api.mjs +0 -2
- package/esm2022/directive/public-api.mjs +0 -19
- package/esm2022/directive/resize-drag/public-api.mjs +0 -2
- package/esm2022/directive/resize-drag/resize-drag.directive.mjs +0 -72
- package/esm2022/directive/scroll-into-view/public-api.mjs +0 -2
- package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +0 -41
- package/esm2022/directive/scrollable/public-api.mjs +0 -3
- package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +0 -98
- package/esm2022/directive/scrollable/scrollable.directive.mjs +0 -20
- package/esm2022/directive/teta-template/public-api.mjs +0 -2
- package/esm2022/directive/teta-template/teta-template.directive.mjs +0 -23
- package/esm2022/directive/tooltip/public-api.mjs +0 -2
- package/esm2022/directive/tooltip/tooltip.directive.mjs +0 -81
- package/esm2022/index.mjs +0 -22
- package/esm2022/locale/en.mjs +0 -50
- package/esm2022/locale/public-api.mjs +0 -5
- package/esm2022/locale/ru.mjs +0 -50
- package/esm2022/locale/teta-config.service.mjs +0 -28
- package/esm2022/locale/teta-localisation.mjs +0 -2
- package/esm2022/observable/animation-frame.mjs +0 -30
- package/esm2022/observable/public-api.mjs +0 -3
- package/esm2022/observable/zone-observable.mjs +0 -15
- package/esm2022/pipe/date-pipe/public-api.mjs +0 -2
- package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +0 -43
- package/esm2022/pipe/number-pipe/number.pipe.mjs +0 -28
- package/esm2022/pipe/number-pipe/public-api.mjs +0 -2
- package/esm2022/pipe/public-api.mjs +0 -4
- package/esm2022/pipe/util/number-helper.mjs +0 -25
- package/esm2022/tetacom-ng-components.mjs +0 -5
- package/esm2022/util/bool-or-func.mjs +0 -13
- package/esm2022/util/date-util.mjs +0 -231
- package/esm2022/util/export-dom-image.mjs +0 -22
- package/esm2022/util/forms-util.mjs +0 -85
- package/esm2022/util/is-function.mjs +0 -4
- package/esm2022/util/public-api.mjs +0 -7
- package/esm2022/util/string-util.mjs +0 -9
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
-
import { TableColumn } from '../contract/table-column';
|
|
3
|
-
import { ColumnResizeEvent } from '../contract/column-resize-event';
|
|
4
|
-
import { TableService } from '../service/table.service';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import { StateUtil } from '../util/state-util';
|
|
7
|
-
import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
|
|
8
|
-
import { Align } from '../../../common/enum/align.enum';
|
|
9
|
-
import { combineLatest } from 'rxjs';
|
|
10
|
-
import { VisibilityDropdownTabComponent } from '../table-head/visibility-dropdown-tab/visibility-dropdown-tab.component';
|
|
11
|
-
import { FilterDropdownTabComponent } from '../table-head/filter-dropdown-tab/filter-dropdown-tab.component';
|
|
12
|
-
import { MainDropdownTabComponent } from '../table-head/main-dropdown-tab/main-dropdown-tab.component';
|
|
13
|
-
import { ResizeDragDirective } from '../../../directive/resize-drag/resize-drag.directive';
|
|
14
|
-
import { DropdownContentDirective } from '../../dropdown/dropdown-content.directive';
|
|
15
|
-
import { HeadCellDropdownComponent } from '../head-cell-dropdown/head-cell-dropdown.component';
|
|
16
|
-
import { IconComponent } from '../../icon/icon/icon.component';
|
|
17
|
-
import { HeadCellHostComponent } from '../head-cell-host/head-cell-host.component';
|
|
18
|
-
import { NgClass, AsyncPipe } from '@angular/common';
|
|
19
|
-
import { DropdownHeadDirective } from '../../dropdown/dropdown-head.directive';
|
|
20
|
-
import { DropdownComponent } from '../../dropdown/dropdown/dropdown.component';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "../service/table.service";
|
|
23
|
-
export class HeadCellComponent {
|
|
24
|
-
get defaultTemplates() {
|
|
25
|
-
return [
|
|
26
|
-
{
|
|
27
|
-
icon: 'menu',
|
|
28
|
-
template: this.mainTemplate,
|
|
29
|
-
order: 10,
|
|
30
|
-
showTab: () => true,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
icon: 'filter',
|
|
34
|
-
template: this.filterTemplate,
|
|
35
|
-
order: 20,
|
|
36
|
-
showTab: (column) => column.filterable,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
icon: 'eye',
|
|
40
|
-
template: this.columnsTemplate,
|
|
41
|
-
order: 30,
|
|
42
|
-
showTab: () => true,
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
|
-
get elementRef() {
|
|
47
|
-
return this._elementRef;
|
|
48
|
-
}
|
|
49
|
-
get tabTemplates() {
|
|
50
|
-
if (this.column?.headDropdownConfig && this.column.headDropdownConfig.tabs?.length > 0) {
|
|
51
|
-
if (this.column.headDropdownConfig.strategy === 'replace') {
|
|
52
|
-
return this.column.headDropdownConfig.tabs;
|
|
53
|
-
}
|
|
54
|
-
return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs].sort((a, b) => a.order - b.order);
|
|
55
|
-
}
|
|
56
|
-
return this.defaultTemplates;
|
|
57
|
-
}
|
|
58
|
-
constructor(_svc, _app, _elementRef, _cdr) {
|
|
59
|
-
this._svc = _svc;
|
|
60
|
-
this._app = _app;
|
|
61
|
-
this._elementRef = _elementRef;
|
|
62
|
-
this._cdr = _cdr;
|
|
63
|
-
this.verticalAlign = VerticalAlign;
|
|
64
|
-
this.align = Align;
|
|
65
|
-
this.dropDownOpen = false;
|
|
66
|
-
this.showDrag = null;
|
|
67
|
-
this._alive = true;
|
|
68
|
-
}
|
|
69
|
-
dragstart(event) {
|
|
70
|
-
if (event && event.dataTransfer) {
|
|
71
|
-
event.dataTransfer.setData('text', 'move');
|
|
72
|
-
}
|
|
73
|
-
this._svc.dragStart(this.column);
|
|
74
|
-
}
|
|
75
|
-
dragenter() {
|
|
76
|
-
this.rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
77
|
-
}
|
|
78
|
-
allowDrop(event) {
|
|
79
|
-
event.preventDefault();
|
|
80
|
-
if (this.rect && this._svc.dragSource) {
|
|
81
|
-
this.showDrag = event.clientX >= this.rect.x + this.rect.width / 2 ? 'right' : 'left';
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
dragleave(event) {
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
this.showDrag = null;
|
|
87
|
-
}
|
|
88
|
-
dragend() {
|
|
89
|
-
this.showDrag = null;
|
|
90
|
-
}
|
|
91
|
-
drop(event) {
|
|
92
|
-
const move = event.dataTransfer && event.dataTransfer.getData('text');
|
|
93
|
-
if (move === 'move') {
|
|
94
|
-
this._svc.reorderColumn(this.column, this.showDrag === 'left');
|
|
95
|
-
}
|
|
96
|
-
this.showDrag = null;
|
|
97
|
-
}
|
|
98
|
-
ngOnInit() {
|
|
99
|
-
this.columns = this._svc.columns;
|
|
100
|
-
this.state = this._svc.state;
|
|
101
|
-
this.sortParam = this.state.pipe(map((_) => StateUtil.getSortState(_, this.column)));
|
|
102
|
-
this.filtered = this.state.pipe(map((_) => StateUtil.isColumnFiltered(_, this.column)));
|
|
103
|
-
this.iconName = combineLatest([this.sortParam, this.filtered]).pipe(map((data) => {
|
|
104
|
-
const [sortParam, filtered] = data;
|
|
105
|
-
if (sortParam && filtered) {
|
|
106
|
-
return sortParam.asc ? 'filterSortUp' : 'filterSortDown';
|
|
107
|
-
}
|
|
108
|
-
if (sortParam) {
|
|
109
|
-
return sortParam.asc ? 'arrowUp' : 'arrowDown';
|
|
110
|
-
}
|
|
111
|
-
if (filtered) {
|
|
112
|
-
return 'filter';
|
|
113
|
-
}
|
|
114
|
-
return '';
|
|
115
|
-
}));
|
|
116
|
-
this.observer = new IntersectionObserver((entries) => {
|
|
117
|
-
entries.forEach((entry) => {
|
|
118
|
-
if (!entry.isIntersecting && this.dropDownOpen) {
|
|
119
|
-
this.dropDownOpen = false;
|
|
120
|
-
this._cdr.detectChanges();
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}, {
|
|
124
|
-
root: this._svc.getTableElement(this._elementRef.nativeElement),
|
|
125
|
-
threshold: [1],
|
|
126
|
-
});
|
|
127
|
-
this.observer.observe(this._elementRef.nativeElement);
|
|
128
|
-
}
|
|
129
|
-
ngOnDestroy() {
|
|
130
|
-
this._alive = false;
|
|
131
|
-
this.observer.unobserve(this._elementRef.nativeElement);
|
|
132
|
-
this.observer.disconnect();
|
|
133
|
-
}
|
|
134
|
-
resizeStart() {
|
|
135
|
-
const rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
136
|
-
this._startPosition = rect.x;
|
|
137
|
-
this._svc.lockPreviousColumns(this.column, this._elementRef.nativeElement);
|
|
138
|
-
}
|
|
139
|
-
resizeProcess(event) {
|
|
140
|
-
if (this._startPosition && event.pageX > 0) {
|
|
141
|
-
const position = this._startPosition;
|
|
142
|
-
requestAnimationFrame(() => {
|
|
143
|
-
this._svc.resizeColumn(new ColumnResizeEvent(this.column, event.pageX - position));
|
|
144
|
-
this._app.tick();
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
resizeEnd() {
|
|
149
|
-
this._startPosition = null;
|
|
150
|
-
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
153
|
-
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellComponent, decorators: [{
|
|
155
|
-
type: Component,
|
|
156
|
-
args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
157
|
-
DropdownComponent,
|
|
158
|
-
DropdownHeadDirective,
|
|
159
|
-
NgClass,
|
|
160
|
-
HeadCellHostComponent,
|
|
161
|
-
IconComponent,
|
|
162
|
-
HeadCellDropdownComponent,
|
|
163
|
-
DropdownContentDirective,
|
|
164
|
-
ResizeDragDirective,
|
|
165
|
-
MainDropdownTabComponent,
|
|
166
|
-
FilterDropdownTabComponent,
|
|
167
|
-
VisibilityDropdownTabComponent,
|
|
168
|
-
AsyncPipe,
|
|
169
|
-
], template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
|
|
170
|
-
}], ctorParameters: () => [{ type: i1.TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { column: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], showHeadCellMenu: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], data: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}], dropDownOpen: [{
|
|
177
|
-
type: HostBinding,
|
|
178
|
-
args: ['class.table-head__cell_active']
|
|
179
|
-
}], mainTemplate: [{
|
|
180
|
-
type: ViewChild,
|
|
181
|
-
args: ['mainTemplate', { static: true }]
|
|
182
|
-
}], filterTemplate: [{
|
|
183
|
-
type: ViewChild,
|
|
184
|
-
args: ['filterTemplate', { static: true }]
|
|
185
|
-
}], columnsTemplate: [{
|
|
186
|
-
type: ViewChild,
|
|
187
|
-
args: ['columnsTemplate', { static: true }]
|
|
188
|
-
}], dragenter: [{
|
|
189
|
-
type: HostListener,
|
|
190
|
-
args: ['dragenter', ['$event']]
|
|
191
|
-
}], allowDrop: [{
|
|
192
|
-
type: HostListener,
|
|
193
|
-
args: ['dragover', ['$event']]
|
|
194
|
-
}], dragleave: [{
|
|
195
|
-
type: HostListener,
|
|
196
|
-
args: ['dragleave', ['$event']]
|
|
197
|
-
}], dragend: [{
|
|
198
|
-
type: HostListener,
|
|
199
|
-
args: ['dragend', ['$event']]
|
|
200
|
-
}], drop: [{
|
|
201
|
-
type: HostListener,
|
|
202
|
-
args: ['drop', ['$event']]
|
|
203
|
-
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FB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QUFkLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVTixZQUFZO3NCQURYLFdBQVc7dUJBQUMsK0JBQStCO2dCQVFDLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkF3RFAsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUMsU0FBUztzQkFBOUMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT0csU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS0EsT0FBTztzQkFBM0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUQsSUFBSTtzQkFBckMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBDb2x1bW5SZXNpemVFdmVudCB9IGZyb20gJy4uL2NvbnRyYWN0L2NvbHVtbi1yZXNpemUtZXZlbnQnO1xuaW1wb3J0IHsgRmlsdGVyU3RhdGUgfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7IFRhYmxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTb3J0UGFyYW0gfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3Qvc29ydC1wYXJhbSc7XG5pbXBvcnQgeyBTdGF0ZVV0aWwgfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHsgVmVydGljYWxBbGlnbiB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL3ZlcnRpY2FsLWFsaWduLmVudW0nO1xuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhlYWREcm9wZG93blRhYiB9IGZyb20gJy4uL2NvbnRyYWN0L2hlYWQtZHJvcGRvd24tdGFiJztcbmltcG9ydCB7IFZpc2liaWxpdHlEcm9wZG93blRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWhlYWQvdmlzaWJpbGl0eS1kcm9wZG93bi10YWIvdmlzaWJpbGl0eS1kcm9wZG93bi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckRyb3Bkb3duVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZC9maWx0ZXItZHJvcGRvd24tdGFiL2ZpbHRlci1kcm9wZG93bi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IE1haW5Ecm9wZG93blRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWhlYWQvbWFpbi1kcm9wZG93bi10YWIvbWFpbi1kcm9wZG93bi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2l6ZURyYWdEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvcmVzaXplLWRyYWcvcmVzaXplLWRyYWcuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhlYWRDZWxsRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9oZWFkLWNlbGwtZHJvcGRvd24vaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRDZWxsSG9zdENvbXBvbmVudCB9IGZyb20gJy4uL2hlYWQtY2VsbC1ob3N0L2hlYWQtY2VsbC1ob3N0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJvcGRvd25IZWFkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24taGVhZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWhlYWQtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93bkhlYWREaXJlY3RpdmUsXG4gICAgTmdDbGFzcyxcbiAgICBIZWFkQ2VsbEhvc3RDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBIZWFkQ2VsbERyb3Bkb3duQ29tcG9uZW50LFxuICAgIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSxcbiAgICBSZXNpemVEcmFnRGlyZWN0aXZlLFxuICAgIE1haW5Ecm9wZG93blRhYkNvbXBvbmVudCxcbiAgICBGaWx0ZXJEcm9wZG93blRhYkNvbXBvbmVudCxcbiAgICBWaXNpYmlsaXR5RHJvcGRvd25UYWJDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkQ2VsbENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgc2hvd0hlYWRDZWxsTWVudTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0YTogVFtdO1xuXG4gIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduO1xuICBhbGlnbiA9IEFsaWduO1xuICBzdGF0ZTogT2JzZXJ2YWJsZTxGaWx0ZXJTdGF0ZT47XG4gIGNvbHVtbnM6IE9ic2VydmFibGU8VGFibGVDb2x1bW5bXT47XG4gIGZpbHRlcmVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzb3J0UGFyYW06IE9ic2VydmFibGU8U29ydFBhcmFtPjtcbiAgaWNvbk5hbWU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWJsZS1oZWFkX19jZWxsX2FjdGl2ZScpXG4gIGRyb3BEb3duT3BlbiA9IGZhbHNlO1xuICBzaG93RHJhZzogJ2xlZnQnIHwgJ3JpZ2h0JyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlY3Q6IGFueTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgX3N0YXJ0UG9zaXRpb246IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCdtYWluVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIGNvbHVtbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgZGVmYXVsdFRlbXBsYXRlcygpOiBIZWFkRHJvcGRvd25UYWJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ21lbnUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5tYWluVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAxMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdleWUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5jb2x1bW5zVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAzMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIGdldCBlbGVtZW50UmVmKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICB9XG5cbiAgZ2V0IHRhYlRlbXBsYXRlcygpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4/LmhlYWREcm9wZG93bkNvbmZpZyAmJiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy5zdHJhdGVneSA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicztcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4udGhpcy5kZWZhdWx0VGVtcGxhdGVzLCAuLi50aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFic10uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlZmF1bHRUZW1wbGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICBwcml2YXRlIF9hcHA6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIGRyYWdzdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnbW92ZScpO1xuICAgIH1cbiAgICB0aGlzLl9zdmMuZHJhZ1N0YXJ0KHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pIGRyYWdlbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID0gZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pIGRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG1vdmUgPSBldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKTtcbiAgICBpZiAobW92ZSA9PT0gJ21vdmUnKSB7XG4gICAgICB0aGlzLl9zdmMucmVvcmRlckNvbHVtbih0aGlzLmNvbHVtbiwgdGhpcy5zaG93RHJhZyA9PT0gJ2xlZnQnKTtcbiAgICB9XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLl9zdmMuY29sdW1ucztcbiAgICB0aGlzLnN0YXRlID0gdGhpcy5fc3ZjLnN0YXRlO1xuICAgIHRoaXMuc29ydFBhcmFtID0gdGhpcy5zdGF0ZS5waXBlKG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKG1hcCgoXykgPT4gU3RhdGVVdGlsLmlzQ29sdW1uRmlsdGVyZWQoXywgdGhpcy5jb2x1bW4pKSk7XG4gICAgdGhpcy5pY29uTmFtZSA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc29ydFBhcmFtLCB0aGlzLmZpbHRlcmVkXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW1NvcnRQYXJhbSwgYm9vbGVhbl0pID0+IHtcbiAgICAgICAgY29uc3QgW3NvcnRQYXJhbSwgZmlsdGVyZWRdID0gZGF0YTtcbiAgICAgICAgaWYgKHNvcnRQYXJhbSAmJiBmaWx0ZXJlZCkge1xuICAgICAgICAgIHJldHVybiBzb3J0UGFyYW0uYXNjID8gJ2ZpbHRlclNvcnRVcCcgOiAnZmlsdGVyU29ydERvd24nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdhcnJvd1VwJyA6ICdhcnJvd0Rvd24nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJlZCkge1xuICAgICAgICAgIHJldHVybiAnZmlsdGVyJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChlbnRyaWVzOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5W10pID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmICghZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgdGhpcy5kcm9wRG93bk9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25PcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290OiB0aGlzLl9zdmMuZ2V0VGFibGVFbGVtZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCksXG4gICAgICAgIHRocmVzaG9sZDogWzFdLFxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgICB0aGlzLm9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcmVzaXplU3RhcnQoKTogdm9pZCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gcmVjdC54O1xuICAgIHRoaXMuX3N2Yy5sb2NrUHJldmlvdXNDb2x1bW5zKHRoaXMuY29sdW1uLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcmVzaXplUHJvY2VzcyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGFydFBvc2l0aW9uICYmIGV2ZW50LnBhZ2VYID4gMCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9zdGFydFBvc2l0aW9uO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc3ZjLnJlc2l6ZUNvbHVtbihuZXcgQ29sdW1uUmVzaXplRXZlbnQodGhpcy5jb2x1bW4sIGV2ZW50LnBhZ2VYIC0gcG9zaXRpb24pKTtcbiAgICAgICAgdGhpcy5fYXBwLnRpY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZUVuZCgpIHtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvdyByb3dfYXV0b1wiPlxuICA8dGV0YS1kcm9wZG93blxuICAgIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnbi5hdXRvXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgIFsob3BlbildPVwiZHJvcERvd25PcGVuXCJcbiAgICBbYWxpZ25dPVwiYWxpZ24uYXV0b1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICBbY2xhc3MudGFibGUtaGVhZF9fY2VsbF9fbWVudV9vcGVuXT1cImRyb3BEb3duT3BlblwiXG4gICAgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8ganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gID5cbiAgICA8ZGl2XG4gICAgICB0ZXRhRHJvcGRvd25IZWFkXG4gICAgICBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fd3JhcHBlclwiXG4gICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdzdGFydCgkZXZlbnQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5oZWFkQ2VsbENsYXNzXCJcbiAgICA+XG4gICAgICA8dGV0YS1oZWFkLWNlbGwtaG9zdCBbY29sdW1uXT1cImNvbHVtblwiIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiIFtkYXRhXT1cImRhdGFcIj48L3RldGEtaGVhZC1jZWxsLWhvc3Q+XG4gICAgICBAaWYgKGljb25OYW1lIHwgYXN5bmM7IGFzIGljb24pIHtcbiAgICAgICAgPHRldGEtaWNvbiBbcGFsZXR0ZV09XCIndGV4dCdcIiBbbmFtZV09XCJpY29uXCI+PC90ZXRhLWljb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChzaG93SGVhZENlbGxNZW51KSB7XG4gICAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd25cbiAgICAgICAgdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICBbdGFiVGVtcGxhdGVzXT1cInRhYlRlbXBsYXRlc1wiXG4gICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiXG4gICAgICA+PC90ZXRhLWhlYWQtY2VsbC1kcm9wZG93bj5cbiAgICB9XG4gIDwvdGV0YS1kcm9wZG93bj5cbiAgQGlmIChzaG93RHJhZykge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcC1hcmVhXCJcbiAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgIFtjbGFzcy5kcm9wLWFyZWFfbGVmdF09XCJzaG93RHJhZyA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5kcm9wLWFyZWFfcmlnaHRdPVwic2hvd0RyYWcgPT09ICdyaWdodCdcIlxuICAgID48L2Rpdj5cbiAgfVxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fcmVzaXplXCJcbiAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAoZHJhZ3N0YXJ0KT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAoZHJhZyk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgW3RldGFSZXNpemVEcmFnXT1cIid2ZXJ0aWNhbCdcIlxuICAocmVzaXplU3RhcnQpPVwicmVzaXplU3RhcnQoKVwiXG4gIChyZXNpemVQcm9jZXNzKT1cInJlc2l6ZVByb2Nlc3MoJGV2ZW50KVwiXG4gIChyZXNpemVFbmQpPVwicmVzaXplRW5kKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fcmVzaXplX2RyYWdcIj48L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlXG4gICNtYWluVGVtcGxhdGVcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gIGxldC1kYXRhPVwiZGF0YVwiXG4gIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgbGV0LWNsb3NlPVwiY2xvc2VcIlxuPlxuICA8dGV0YS1tYWluLWRyb3Bkb3duLXRhYlxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtjbG9zZV09XCJjbG9zZVwiXG4gICAgW2hlYWRDZWxsRWxlbWVudFJlZl09XCJlbGVtZW50UmVmXCJcbiAgPjwvdGV0YS1tYWluLWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgI2ZpbHRlclRlbXBsYXRlXG4gIGxldC1jb2x1bW49XCJjb2x1bW5cIlxuICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICBsZXQtZGF0YT1cImRhdGFcIlxuICBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gIGxldC1jbG9zZT1cImNsb3NlXCJcbj5cbiAgPHRldGEtZmlsdGVyLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiIFtzdGF0ZV09XCJzdGF0ZVwiIFtjbG9zZV09XCJjbG9zZVwiIFtkYXRhXT1cImRhdGFcIj48L3RldGEtZmlsdGVyLWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgI2NvbHVtbnNUZW1wbGF0ZVxuICBsZXQtY29sdW1uPVwiY29sdW1uXCJcbiAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgbGV0LWRhdGE9XCJkYXRhXCJcbiAgbGV0LXN0YXRlPVwic3RhdGVcIlxuICBsZXQtY2xvc2U9XCJjbG9zZVwiXG4+XG4gIDx0ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICBbZGF0YV09XCJkYXRhXCJcbiAgPjwvdGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { TetaConfigService } from '../../../locale/teta-config.service';
|
|
3
|
-
import { FilterState } from '../../filter/contarct/filter-state';
|
|
4
|
-
import { TableColumn } from '../contract/table-column';
|
|
5
|
-
import { TableService } from '../service/table.service';
|
|
6
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
7
|
-
import { TabContentDirective } from '../../tabs/tab-content.directive';
|
|
8
|
-
import { IconComponent } from '../../icon/icon/icon.component';
|
|
9
|
-
import { TabTitleDirective } from '../../tabs/tab-title.directive';
|
|
10
|
-
import { TabComponent } from '../../tabs/tab/tab.component';
|
|
11
|
-
import { TabsComponent } from '../../tabs/tabs/tabs.component';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../service/table.service";
|
|
14
|
-
import * as i2 from "../../../locale/teta-config.service";
|
|
15
|
-
export class HeadCellDropdownComponent {
|
|
16
|
-
constructor(_svc, _config, _cdr) {
|
|
17
|
-
this._svc = _svc;
|
|
18
|
-
this._config = _config;
|
|
19
|
-
this._cdr = _cdr;
|
|
20
|
-
this.dropDownOpenChange = new EventEmitter();
|
|
21
|
-
this.closeDropdown = () => {
|
|
22
|
-
this.dropDownOpen = false;
|
|
23
|
-
this.dropDownOpenChange.emit(false);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
trackIndex(index) {
|
|
27
|
-
return index;
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: i1.TableService }, { token: i2.TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellDropdownComponent, isStandalone: true, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", tabTemplates: "tabTemplates", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange" }, ngImport: i0, template: "@if (dropDownOpen) {\n <teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) {\n @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown,\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n }\n }\n </teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"], dependencies: [{ kind: "component", type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "direction", "size", "destroyOnHide"], outputs: ["tabChange"] }, { kind: "component", type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { kind: "directive", type: TabTitleDirective, selector: "[tetaTabTitle]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: TabContentDirective, selector: "[tetaTabContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TabsComponent, TabComponent, TabTitleDirective, IconComponent, TabContentDirective, NgTemplateOutlet], template: "@if (dropDownOpen) {\n <teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) {\n @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown,\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n }\n }\n </teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"] }]
|
|
35
|
-
}], ctorParameters: () => [{ type: i1.TableService }, { type: i2.TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], column: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], state: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], data: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], tabTemplates: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], dropDownOpen: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], dropDownOpenChange: [{
|
|
48
|
-
type: Output
|
|
49
|
-
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsLWRyb3Bkb3duL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC1kcm9wZG93bi9oZWFkLWNlbGwtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVUvRCxNQUFNLE9BQU8seUJBQXlCO0lBU3BDLFlBQ1UsSUFBcUIsRUFDckIsT0FBMEIsRUFDMUIsSUFBdUI7UUFGdkIsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFMdkIsdUJBQWtCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFRbEYsa0JBQWEsR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUM7SUFMQyxDQUFDO0lBT0osVUFBVSxDQUFDLEtBQUs7UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBdEJVLHlCQUF5QjtrR0FBekIseUJBQXlCLHNSQ3ZCdEMscTFCQTZCQSx3SERSWSxhQUFhLDBJQUFFLFlBQVksMEZBQUUsaUJBQWlCLDJEQUFFLGFBQWEsb0dBQUUsbUJBQW1CLDZEQUFFLGdCQUFnQjs7MkZBRW5HLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUM7aUpBR3RHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJVHJlZURhdGEgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS10cmVlLWRhdGEnO1xuaW1wb3J0IHsgVGV0YUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvdGV0YS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9maWx0ZXItc3RhdGUnO1xuaW1wb3J0IHsgSGVhZERyb3Bkb3duVGFiIH0gZnJvbSAnLi4vY29udHJhY3QvaGVhZC1kcm9wZG93bi10YWInO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFiQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3RhYnMvdGFiLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90YWJzL3RhYi10aXRsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGFicy90YWIvdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGFicy90YWJzL3RhYnMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1oZWFkLWNlbGwtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVGFic0NvbXBvbmVudCwgVGFiQ29tcG9uZW50LCBUYWJUaXRsZURpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgVGFiQ29udGVudERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRDZWxsRHJvcGRvd25Db21wb25lbnQ8VD4ge1xuICBASW5wdXQoKSBjb2x1bW5zOiBJVHJlZURhdGFbXTtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgc3RhdGU6IEZpbHRlclN0YXRlO1xuICBASW5wdXQoKSBkYXRhOiBUW107XG4gIEBJbnB1dCgpIHRhYlRlbXBsYXRlczogSGVhZERyb3Bkb3duVGFiW107XG4gIEBJbnB1dCgpIGRyb3BEb3duT3BlbjogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGRyb3BEb3duT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2NvbmZpZzogVGV0YUNvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIGNsb3NlRHJvcGRvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5kcm9wRG93bk9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmRyb3BEb3duT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfTtcblxuICB0cmFja0luZGV4KGluZGV4KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCJAaWYgKGRyb3BEb3duT3Blbikge1xuICA8dGV0YS10YWJzIGNsYXNzPVwiY29sdW1uX2F1dG9cIj5cbiAgICBAZm9yICh0YWIgb2YgdGFiVGVtcGxhdGVzOyB0cmFjayB0cmFja0luZGV4KCRpbmRleCkpIHtcbiAgICAgIEBpZiAodGFiLnNob3dUYWIoY29sdW1uKSkge1xuICAgICAgICA8dGV0YS10YWI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHRldGFUYWJUaXRsZT5cbiAgICAgICAgICAgIEBpZiAodGFiLmljb24pIHtcbiAgICAgICAgICAgICAgPHRldGEtaWNvbiBbbmFtZV09XCJ0YWIuaWNvblwiIFtwYWxldHRlXT1cIid0ZXh0J1wiPjwvdGV0YS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHRldGFUYWJDb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHRhYi50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgICAgICAgY2xvc2U6IGNsb3NlRHJvcGRvd24sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGV0YS10YWI+XG4gICAgICB9XG4gICAgfVxuICA8L3RldGEtdGFicz5cbn1cbiJdfQ==
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { HeadCellComponentBase } from '../base/head-cell-component-base';
|
|
3
|
-
import { TableColumn } from '../contract/table-column';
|
|
4
|
-
import { DefaultHeadCellComponent } from '../default/default-head-cell/default-head-cell.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class HeadCellHostComponent {
|
|
7
|
-
set column(column) {
|
|
8
|
-
this._column = column;
|
|
9
|
-
if (this.init) {
|
|
10
|
-
this.componentRef.instance.column = this._column;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
get column() {
|
|
14
|
-
return this._column;
|
|
15
|
-
}
|
|
16
|
-
set columns(columns) {
|
|
17
|
-
this._columns = columns;
|
|
18
|
-
if (this.init) {
|
|
19
|
-
this.componentRef.instance.columns = this._columns;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
get columns() {
|
|
23
|
-
return this._columns;
|
|
24
|
-
}
|
|
25
|
-
set data(data) {
|
|
26
|
-
this._data = data;
|
|
27
|
-
if (this.init) {
|
|
28
|
-
this.componentRef.instance.data = this._data;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
get data() {
|
|
32
|
-
return this._data;
|
|
33
|
-
}
|
|
34
|
-
constructor(viewContainerRef) {
|
|
35
|
-
this.viewContainerRef = viewContainerRef;
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
if (!HeadCellComponentBase.isPrototypeOf(this.column.headCellComponent)) {
|
|
39
|
-
this.column.headCellComponent = DefaultHeadCellComponent;
|
|
40
|
-
}
|
|
41
|
-
this.componentRef = this.viewContainerRef.createComponent(this.column.headCellComponent);
|
|
42
|
-
this.componentRef.instance.column = this.column;
|
|
43
|
-
this.componentRef.instance.columns = this.columns;
|
|
44
|
-
this.componentRef.instance.data = this.data;
|
|
45
|
-
this.init = true;
|
|
46
|
-
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellHostComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: HeadCellHostComponent, isStandalone: true, selector: "teta-head-cell-host", inputs: { column: "column", columns: "columns", data: "data" }, ngImport: i0, template: '', isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellHostComponent, decorators: [{
|
|
51
|
-
type: Component,
|
|
52
|
-
args: [{ selector: 'teta-head-cell-host', template: '', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [":host{display:contents}\n"] }]
|
|
53
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { column: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], columns: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], data: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS9oZWFkLWNlbGwtaG9zdC9oZWFkLWNlbGwtaG9zdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7QUFTcEcsTUFBTSxPQUFPLHFCQUFxQjtJQVFoQyxJQUNJLE1BQU0sQ0FBQyxNQUFtQjtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLE9BQU8sQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxJQUFTO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQTJCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDOzhHQXZEVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrSUFMdEIsRUFBRTs7MkZBS0QscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTtxRkFXWixNQUFNO3NCQURULEtBQUs7Z0JBYUYsT0FBTztzQkFEVixLQUFLO2dCQWFGLElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSGVhZENlbGxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vYmFzZS9oZWFkLWNlbGwtY29tcG9uZW50LWJhc2UnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgRGVmYXVsdEhlYWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LWhlYWQtY2VsbC9kZWZhdWx0LWhlYWQtY2VsbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWhlYWQtY2VsbC1ob3N0JyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwtaG9zdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxIb3N0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgcHJpdmF0ZSBfY29sdW1uczogVGFibGVDb2x1bW5bXTtcbiAgcHJpdmF0ZSBfZGF0YTogVFtdO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8SGVhZENlbGxDb21wb25lbnRCYXNlPFQ+PjtcbiAgcHJpdmF0ZSBpbml0OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIHRoaXMuX2NvbHVtbiA9IGNvbHVtbjtcbiAgICBpZiAodGhpcy5pbml0KSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb2x1bW4gPSB0aGlzLl9jb2x1bW47XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbHVtbigpOiBUYWJsZUNvbHVtbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucztcbiAgICBpZiAodGhpcy5pbml0KSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb2x1bW5zID0gdGhpcy5fY29sdW1ucztcbiAgICB9XG4gIH1cblxuICBnZXQgY29sdW1ucygpOiBUYWJsZUNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIGlmICh0aGlzLmluaXQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSB0aGlzLl9kYXRhO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkYXRhKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCFIZWFkQ2VsbENvbXBvbmVudEJhc2UuaXNQcm90b3R5cGVPZih0aGlzLmNvbHVtbi5oZWFkQ2VsbENvbXBvbmVudCkpIHtcbiAgICAgIHRoaXMuY29sdW1uLmhlYWRDZWxsQ29tcG9uZW50ID0gRGVmYXVsdEhlYWRDZWxsQ29tcG9uZW50O1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8SGVhZENlbGxDb21wb25lbnRCYXNlPFQ+Pih0aGlzLmNvbHVtbi5oZWFkQ2VsbENvbXBvbmVudCk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgIHRoaXMuaW5pdCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Components
|
|
3
|
-
*/
|
|
4
|
-
export * from './table/table.component';
|
|
5
|
-
export * from './table-head/table-head.component';
|
|
6
|
-
export * from './table-body/table-body.component';
|
|
7
|
-
export * from './table-row/table-row.component';
|
|
8
|
-
export * from './head-cell-host/head-cell-host.component';
|
|
9
|
-
export * from './cell/cell.component';
|
|
10
|
-
export * from './cell-host/cell-host.component';
|
|
11
|
-
/**
|
|
12
|
-
* default
|
|
13
|
-
*/
|
|
14
|
-
export * from './default/date-cell/date-cell.component';
|
|
15
|
-
export * from './default/boolean-cell/boolean-cell.component';
|
|
16
|
-
export * from './default/date-time-cell/date-time-cell.component';
|
|
17
|
-
export * from './default/list-cell/list-cell.component';
|
|
18
|
-
export * from './default/numeric-cell/numeric-cell.component';
|
|
19
|
-
export * from './default/string-cell/string-cell.component';
|
|
20
|
-
/**
|
|
21
|
-
* base
|
|
22
|
-
*/
|
|
23
|
-
export * from './base/detail-component-base';
|
|
24
|
-
export * from './base/cell-component-base';
|
|
25
|
-
export * from './base/head-cell-component-base';
|
|
26
|
-
/**
|
|
27
|
-
* Service
|
|
28
|
-
*/
|
|
29
|
-
export * from './service/table.service';
|
|
30
|
-
/**
|
|
31
|
-
* contract
|
|
32
|
-
*/
|
|
33
|
-
export * from './contract/public-api';
|
|
34
|
-
/**
|
|
35
|
-
* enum
|
|
36
|
-
*/
|
|
37
|
-
export * from './enum/public-api';
|
|
38
|
-
/**
|
|
39
|
-
* enum
|
|
40
|
-
*/
|
|
41
|
-
export * from './util/public-api';
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RDs7R0FFRztBQUNILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBRWhEOztHQUVHO0FBQ0gsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7R0FFRztBQUNILGNBQWMsdUJBQXVCLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDOztHQUVHO0FBQ0gsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tcG9uZW50c1xuICovXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWhlYWQvdGFibGUtaGVhZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkLWNlbGwtaG9zdC9oZWFkLWNlbGwtaG9zdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsL2NlbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC1ob3N0L2NlbGwtaG9zdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIGRlZmF1bHRcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0L2RhdGUtY2VsbC9kYXRlLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC9ib29sZWFuLWNlbGwvYm9vbGVhbi1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQvZGF0ZS10aW1lLWNlbGwvZGF0ZS10aW1lLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC9saXN0LWNlbGwvbGlzdC1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQvbnVtZXJpYy1jZWxsL251bWVyaWMtY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0L3N0cmluZy1jZWxsL3N0cmluZy1jZWxsLmNvbXBvbmVudCc7XG5cbi8qKlxuICogYmFzZVxuICovXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UvZGV0YWlsLWNvbXBvbmVudC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS9jZWxsLWNvbXBvbmVudC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS9oZWFkLWNlbGwtY29tcG9uZW50LWJhc2UnO1xuXG4vKipcbiAqIFNlcnZpY2VcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuXG4vKipcbiAqIGNvbnRyYWN0XG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vY29udHJhY3QvcHVibGljLWFwaSc7XG5cbi8qKlxuICogZW51bVxuICovXG5leHBvcnQgKiBmcm9tICcuL2VudW0vcHVibGljLWFwaSc7XG4vKipcbiAqIGVudW1cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, } from '@angular/core';
|
|
2
|
-
import { TableService } from '../service/table.service';
|
|
3
|
-
import { takeWhile } from 'rxjs/operators';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { CheckboxComponent } from '../../checkbox/checkbox/checkbox.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../service/table.service";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
export class SelectionCellComponent {
|
|
10
|
-
constructor(_svc, _cdr) {
|
|
11
|
-
this._svc = _svc;
|
|
12
|
-
this._cdr = _cdr;
|
|
13
|
-
this.tableCellClass = true;
|
|
14
|
-
this.selectedRows = [];
|
|
15
|
-
this._alive = true;
|
|
16
|
-
}
|
|
17
|
-
selectRow(value) {
|
|
18
|
-
if (value) {
|
|
19
|
-
this._svc.selectRow(this.row);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this._svc.deselectRow(this.row);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
this._svc.selectedRows.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
27
|
-
this.selectedRows = _;
|
|
28
|
-
this._cdr.markForCheck();
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
ngOnDestroy() {
|
|
32
|
-
this._alive = false;
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SelectionCellComponent, isStandalone: true, selector: "teta-selection-cell", inputs: { row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox\n [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'teta-selection-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox\n [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
|
|
40
|
-
}], ctorParameters: () => [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { row: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], tableCellClass: [{
|
|
43
|
-
type: HostBinding,
|
|
44
|
-
args: ['class.cell']
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS9zZWxlY3Rpb24tY2VsbC9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3NlbGVjdGlvbi1jZWxsL3NlbGVjdGlvbi1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBVS9FLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFDVSxJQUFxQixFQUNyQixJQUF1QjtRQUR2QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQVBXLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ2xFLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBRWYsV0FBTSxHQUFHLElBQUksQ0FBQztJQUtuQixDQUFDO0lBRUosU0FBUyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzhHQTlCVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixzS0N0Qm5DLGtOQU9BLHlIRGFZLGlCQUFpQiwrSkFBRSxXQUFXOzsyRkFFN0Isc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztpSEFHaEMsR0FBRztzQkFBWCxLQUFLO2dCQUVzQyxjQUFjO3NCQUF6RCxXQUFXO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtc2VsZWN0aW9uLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0aW9uLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZWNrYm94Q29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkNlbGxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJvdzogVDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNlbGwnKSBwcml2YXRlIHJlYWRvbmx5IHRhYmxlQ2VsbENsYXNzID0gdHJ1ZTtcbiAgc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHNlbGVjdFJvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fc3ZjLnNlbGVjdFJvdyh0aGlzLnJvdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3N2Yy5kZXNlbGVjdFJvdyh0aGlzLnJvdyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3ZjLnNlbGVjdGVkUm93cy5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gXztcbiAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIjx0ZXRhLWNoZWNrYm94XG4gIFtiaW5hcnldPVwidHJ1ZVwiXG4gIFtub0xhYmVsXT1cInRydWVcIlxuICBbbmdNb2RlbF09XCJzZWxlY3RlZFJvd3M/LmluZGV4T2Yocm93KSA+PSAwXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Um93KCRldmVudClcIlxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbj48L3RldGEtY2hlY2tib3g+XG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding } from '@angular/core';
|
|
2
|
-
import { TableService } from '../service/table.service';
|
|
3
|
-
import { takeWhile } from 'rxjs/operators';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { CheckboxComponent } from '../../checkbox/checkbox/checkbox.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../service/table.service";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
export class SelectionHeadCellComponent {
|
|
10
|
-
constructor(_svc, _cdr) {
|
|
11
|
-
this._svc = _svc;
|
|
12
|
-
this._cdr = _cdr;
|
|
13
|
-
this.tableCellClass = true;
|
|
14
|
-
this._alive = true;
|
|
15
|
-
}
|
|
16
|
-
selectAll(value) {
|
|
17
|
-
if (value) {
|
|
18
|
-
this._svc.selectAll();
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
this._svc.deselectAll();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
allSelected() {
|
|
25
|
-
return this._svc.allRowsSelected();
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this._svc.selectedRows.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
29
|
-
this._cdr.markForCheck();
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
this._alive = false;
|
|
34
|
-
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionHeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SelectionHeadCellComponent, isStandalone: true, selector: "teta-selection-head-cell", host: { properties: { "class.table-head__group": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionHeadCellComponent, decorators: [{
|
|
39
|
-
type: Component,
|
|
40
|
-
args: [{ selector: 'teta-selection-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
|
|
41
|
-
}], ctorParameters: () => [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { tableCellClass: [{
|
|
42
|
-
type: HostBinding,
|
|
43
|
-
args: ['class.table-head__group']
|
|
44
|
-
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWhlYWQtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3NlbGVjdGlvbi1oZWFkLWNlbGwvc2VsZWN0aW9uLWhlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3NlbGVjdGlvbi1oZWFkLWNlbGwvc2VsZWN0aW9uLWhlYWQtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFVL0UsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUNVLElBQXFCLEVBQ3JCLElBQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBTndCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRXZFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFLbkIsQ0FBQztJQUVKLFNBQVMsQ0FBQyxLQUFjO1FBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzhHQTlCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixnS0NkdkMsZ0xBT0EseUhES1ksaUJBQWlCLCtKQUFFLFdBQVc7OzJGQUU3QiwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztpSEFHZ0IsY0FBYztzQkFBdEUsV0FBVzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtc2VsZWN0aW9uLWhlYWQtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24taGVhZC1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0aW9uLWhlYWQtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZWNrYm94Q29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkhlYWRDZWxsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRhYmxlLWhlYWRfX2dyb3VwJykgcHJpdmF0ZSByZWFkb25seSB0YWJsZUNlbGxDbGFzcyA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBzZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3N2Yy5zZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3ZjLmRlc2VsZWN0QWxsKCk7XG4gICAgfVxuICB9XG5cbiAgYWxsU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N2Yy5hbGxSb3dzU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N2Yy5zZWxlY3RlZFJvd3MucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG59XG4iLCI8dGV0YS1jaGVja2JveFxuICBbYmluYXJ5XT1cInRydWVcIlxuICBbYWxsb3dOdWxsXT1cInRydWVcIlxuICBbbm9MYWJlbF09XCJ0cnVlXCJcbiAgW25nTW9kZWxdPVwiYWxsU2VsZWN0ZWQoKVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQpXCJcbj48L3RldGEtY2hlY2tib3g+XG4iXX0=
|