@tetacom/ng-components 1.4.22 → 1.5.1
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/directive/only-number/only-number.directive.d.ts +1 -0
- package/fesm2022/tetacom-ng-components.mjs +533 -497
- 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,154 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';
|
|
2
|
-
import { map, takeWhile } from 'rxjs/operators';
|
|
3
|
-
import { ArrayUtil } from '../../../../common/util/array-util';
|
|
4
|
-
import { TetaConfigService } from '../../../../locale/teta-config.service';
|
|
5
|
-
import { FilterState } from '../../../filter/contarct/filter-state';
|
|
6
|
-
import { TableColumn } from '../../contract/table-column';
|
|
7
|
-
import { TableService } from '../../service/table.service';
|
|
8
|
-
import { AsyncPipe } from '@angular/common';
|
|
9
|
-
import { ButtonComponent } from '../../../button/button/button.component';
|
|
10
|
-
import { ToolbarComponent } from '../../../toolbar/toolbar/toolbar.component';
|
|
11
|
-
import { TreeItemToggleComponent } from '../../../tree/tree-item-toggle/tree-item-toggle.component';
|
|
12
|
-
import { TetaTemplateDirective } from '../../../../directive/teta-template/teta-template.directive';
|
|
13
|
-
import { TreeComponent } from '../../../tree/tree/tree.component';
|
|
14
|
-
import { ScrollableComponent } from '../../../../directive/scrollable/scrollable/scrollable.component';
|
|
15
|
-
import { FormsModule } from '@angular/forms';
|
|
16
|
-
import { CheckboxComponent } from '../../../checkbox/checkbox/checkbox.component';
|
|
17
|
-
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "../../service/table.service";
|
|
19
|
-
import * as i2 from "../../../../locale/teta-config.service";
|
|
20
|
-
import * as i3 from "@angular/forms";
|
|
21
|
-
export class VisibilityDropdownTabComponent {
|
|
22
|
-
get openItems() {
|
|
23
|
-
if (this._openItems == null) {
|
|
24
|
-
this._openItems = this.columns.map((_) => _);
|
|
25
|
-
}
|
|
26
|
-
return this._openItems;
|
|
27
|
-
}
|
|
28
|
-
set openItems(openItems) {
|
|
29
|
-
this._openItems = openItems;
|
|
30
|
-
}
|
|
31
|
-
get childMode() {
|
|
32
|
-
return this.columns.find((_) => _.columns?.length > 0);
|
|
33
|
-
}
|
|
34
|
-
constructor(_svc, _config, _elementRef, _cdr) {
|
|
35
|
-
this._svc = _svc;
|
|
36
|
-
this._config = _config;
|
|
37
|
-
this._elementRef = _elementRef;
|
|
38
|
-
this._cdr = _cdr;
|
|
39
|
-
this._alive = true;
|
|
40
|
-
this.compareItems = (item) => item.name;
|
|
41
|
-
this.setChildrenVisibility = (column, visible, hiddenColumns) => {
|
|
42
|
-
if (visible) {
|
|
43
|
-
this.showColumn(column, hiddenColumns);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
this.hideColumn(column, hiddenColumns);
|
|
47
|
-
}
|
|
48
|
-
if (column.columns) {
|
|
49
|
-
column.columns.forEach((x) => {
|
|
50
|
-
this.setChildrenVisibility(x, visible, hiddenColumns);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
this.setParentsVisibility = (column, visible, hiddenColumns) => {
|
|
55
|
-
if (!visible) {
|
|
56
|
-
this.hideParents(column, hiddenColumns);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.showParents(column, hiddenColumns);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
this.locale = this._config.locale;
|
|
63
|
-
this._svc.hiddenColumns
|
|
64
|
-
.pipe(takeWhile((_) => this._alive), map((_) => [..._]))
|
|
65
|
-
.subscribe((_) => {
|
|
66
|
-
this.hiddenColumns = _;
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
columnIsHidden(column) {
|
|
70
|
-
return this.hiddenColumns.indexOf(column.name) >= 0;
|
|
71
|
-
}
|
|
72
|
-
allColumnsVisible() {
|
|
73
|
-
if (this.hiddenColumns?.length <= 0) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
const columns = ArrayUtil.flatten(this.columns, 'columns');
|
|
77
|
-
const notHidden = columns.find((_) => this.hiddenColumns.indexOf(_.name) < 0);
|
|
78
|
-
if (!notHidden) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
setAllColumns(value) {
|
|
84
|
-
if (value) {
|
|
85
|
-
this.hiddenColumns = [];
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map((_) => _.name);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
setColumnsVisibility() {
|
|
92
|
-
this._svc.setHiddenColumns(this.hiddenColumns);
|
|
93
|
-
}
|
|
94
|
-
setColumnVisibility(item, visible) {
|
|
95
|
-
this.setChildrenVisibility(item, visible, this.hiddenColumns);
|
|
96
|
-
this.setParentsVisibility(item, visible, this.hiddenColumns);
|
|
97
|
-
}
|
|
98
|
-
showParents(column, hiddenColumns) {
|
|
99
|
-
const parent = this.findParentColumn(column, this.columns);
|
|
100
|
-
if (parent && this.columnIsHidden(parent)) {
|
|
101
|
-
this.showColumn(parent, hiddenColumns);
|
|
102
|
-
this.showParents(parent, hiddenColumns);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
hideParents(column, hiddenColumns) {
|
|
106
|
-
const parent = this.findParentColumn(column, this.columns);
|
|
107
|
-
if (parent &&
|
|
108
|
-
!this.columnIsHidden(parent) &&
|
|
109
|
-
parent.columns &&
|
|
110
|
-
parent.columns.every((_) => this.columnIsHidden(_))) {
|
|
111
|
-
this.hideColumn(parent, hiddenColumns);
|
|
112
|
-
this.hideParents(parent, hiddenColumns);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
hideColumn(column, hiddenColumns) {
|
|
116
|
-
hiddenColumns.push(column.name);
|
|
117
|
-
}
|
|
118
|
-
showColumn(column, hiddenColumns) {
|
|
119
|
-
hiddenColumns.splice(hiddenColumns.indexOf(column.name), 1);
|
|
120
|
-
}
|
|
121
|
-
findParentColumn(column, columns) {
|
|
122
|
-
return ArrayUtil.findRecursive(columns, (iterableNode) => iterableNode.columns?.indexOf(column) >= 0, 'columns');
|
|
123
|
-
}
|
|
124
|
-
ngOnDestroy() {
|
|
125
|
-
this._alive = false;
|
|
126
|
-
}
|
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, deps: [{ token: i1.TableService }, { token: i2.TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
128
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: VisibilityDropdownTabComponent, isStandalone: true, selector: "teta-visibility-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{ item.caption }}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: TreeComponent, selector: "teta-tree", inputs: ["data", "padding", "childNodeName", "virtual", "height", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { kind: "directive", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }, { kind: "component", type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
129
|
-
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, decorators: [{
|
|
131
|
-
type: Component,
|
|
132
|
-
args: [{ selector: 'teta-visibility-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
133
|
-
CheckboxComponent,
|
|
134
|
-
FormsModule,
|
|
135
|
-
ScrollableComponent,
|
|
136
|
-
TreeComponent,
|
|
137
|
-
TetaTemplateDirective,
|
|
138
|
-
TreeItemToggleComponent,
|
|
139
|
-
ToolbarComponent,
|
|
140
|
-
ButtonComponent,
|
|
141
|
-
AsyncPipe,
|
|
142
|
-
], template: "@if (locale | async; as loc) {\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{ item.caption }}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"] }]
|
|
143
|
-
}], ctorParameters: () => [{ type: i1.TableService }, { type: i2.TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], column: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], state: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], data: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], close: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}] } });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS1kcm9wZG93bi10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS90YWJsZS1oZWFkL3Zpc2liaWxpdHktZHJvcGRvd24tdGFiL3Zpc2liaWxpdHktZHJvcGRvd24tdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvdGFibGUtaGVhZC92aXNpYmlsaXR5LWRyb3Bkb3duLXRhYi92aXNpYmlsaXR5LWRyb3Bkb3duLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2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SztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSVRyZWVEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktdHJlZS1kYXRhJztcbmltcG9ydCB7IEFycmF5VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHsgVGV0YUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9sb2NhbGUvdGV0YS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBUZXRhTG9jYWxpc2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uJztcbmltcG9ydCB7IEZpbHRlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL2NvbnRhcmN0L2ZpbHRlci1zdGF0ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhci90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVJdGVtVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdHJlZS90cmVlLWl0ZW0tdG9nZ2xlL3RyZWUtaXRlbS10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRldGFUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZS90ZXRhLXRlbXBsYXRlL3RldGEtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90cmVlL3RyZWUvdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZS9zY3JvbGxhYmxlL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtdmlzaWJpbGl0eS1kcm9wZG93bi10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlzaWJpbGl0eS1kcm9wZG93bi10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aXNpYmlsaXR5LWRyb3Bkb3duLXRhYi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNjcm9sbGFibGVDb21wb25lbnQsXG4gICAgVHJlZUNvbXBvbmVudCxcbiAgICBUZXRhVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgVHJlZUl0ZW1Ub2dnbGVDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNpYmlsaXR5RHJvcGRvd25UYWJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW5zOiBJVHJlZURhdGFbXTtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgc3RhdGU6IEZpbHRlclN0YXRlO1xuICBASW5wdXQoKSBkYXRhOiBUW107XG4gIEBJbnB1dCgpIGNsb3NlOiAoKSA9PiB2b2lkO1xuXG4gIGxvY2FsZTogT2JzZXJ2YWJsZTxUZXRhTG9jYWxpc2F0aW9uPjtcbiAgaGlkZGVuQ29sdW1uczogc3RyaW5nW107XG5cbiAgZ2V0IG9wZW5JdGVtcygpIHtcbiAgICBpZiAodGhpcy5fb3Blbkl0ZW1zID09IG51bGwpIHtcbiAgICAgIHRoaXMuX29wZW5JdGVtcyA9IHRoaXMuY29sdW1ucy5tYXAoKF8pID0+IF8pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fb3Blbkl0ZW1zO1xuICB9XG5cbiAgc2V0IG9wZW5JdGVtcyhvcGVuSXRlbXM6IElUcmVlRGF0YVtdKSB7XG4gICAgdGhpcy5fb3Blbkl0ZW1zID0gb3Blbkl0ZW1zO1xuICB9XG5cbiAgZ2V0IGNoaWxkTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbmQoKF86IGFueSkgPT4gXy5jb2x1bW5zPy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW5JdGVtczogSVRyZWVEYXRhW107XG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICBwcml2YXRlIF9jb25maWc6IFRldGFDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLl9jb25maWcubG9jYWxlO1xuICAgIHRoaXMuX3N2Yy5oaWRkZW5Db2x1bW5zXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIG1hcCgoXykgPT4gWy4uLl9dKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5oaWRkZW5Db2x1bW5zID0gXztcbiAgICAgIH0pO1xuICB9XG5cbiAgY29sdW1uSXNIaWRkZW4oY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIHJldHVybiB0aGlzLmhpZGRlbkNvbHVtbnMuaW5kZXhPZihjb2x1bW4ubmFtZSkgPj0gMDtcbiAgfVxuXG4gIGFsbENvbHVtbnNWaXNpYmxlKCkge1xuICAgIGlmICh0aGlzLmhpZGRlbkNvbHVtbnM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgY29sdW1ucyA9IEFycmF5VXRpbC5mbGF0dGVuKHRoaXMuY29sdW1ucywgJ2NvbHVtbnMnKTtcbiAgICBjb25zdCBub3RIaWRkZW4gPSBjb2x1bW5zLmZpbmQoKF8pID0+IHRoaXMuaGlkZGVuQ29sdW1ucy5pbmRleE9mKF8ubmFtZSkgPCAwKTtcbiAgICBpZiAoIW5vdEhpZGRlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHNldEFsbENvbHVtbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaGlkZGVuQ29sdW1ucyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGRlbkNvbHVtbnMgPSBBcnJheVV0aWwuZmxhdHRlbih0aGlzLmNvbHVtbnMsICdjb2x1bW5zJykubWFwKChfKSA9PiBfLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldENvbHVtbnNWaXNpYmlsaXR5KCkge1xuICAgIHRoaXMuX3N2Yy5zZXRIaWRkZW5Db2x1bW5zKHRoaXMuaGlkZGVuQ29sdW1ucyk7XG4gIH1cblxuICBjb21wYXJlSXRlbXMgPSAoaXRlbTogYW55KSA9PiBpdGVtLm5hbWU7XG5cbiAgc2V0Q29sdW1uVmlzaWJpbGl0eShpdGVtOiBUYWJsZUNvbHVtbiwgdmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0Q2hpbGRyZW5WaXNpYmlsaXR5KGl0ZW0sIHZpc2libGUsIHRoaXMuaGlkZGVuQ29sdW1ucyk7XG4gICAgdGhpcy5zZXRQYXJlbnRzVmlzaWJpbGl0eShpdGVtLCB2aXNpYmxlLCB0aGlzLmhpZGRlbkNvbHVtbnMpO1xuICB9XG5cbiAgc2V0Q2hpbGRyZW5WaXNpYmlsaXR5ID0gKGNvbHVtbjogVGFibGVDb2x1bW4sIHZpc2libGU6IGJvb2xlYW4sIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIHRoaXMuc2hvd0NvbHVtbihjb2x1bW4sIGhpZGRlbkNvbHVtbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGVDb2x1bW4oY29sdW1uLCBoaWRkZW5Db2x1bW5zKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5jb2x1bW5zKSB7XG4gICAgICBjb2x1bW4uY29sdW1ucy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW5WaXNpYmlsaXR5KHgsIHZpc2libGUsIGhpZGRlbkNvbHVtbnMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHNldFBhcmVudHNWaXNpYmlsaXR5ID0gKGNvbHVtbjogVGFibGVDb2x1bW4sIHZpc2libGU6IGJvb2xlYW4sIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLmhpZGVQYXJlbnRzKGNvbHVtbiwgaGlkZGVuQ29sdW1ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd1BhcmVudHMoY29sdW1uLCBoaWRkZW5Db2x1bW5zKTtcbiAgICB9XG4gIH07XG5cbiAgc2hvd1BhcmVudHMoY29sdW1uOiBUYWJsZUNvbHVtbiwgaGlkZGVuQ29sdW1uczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnRDb2x1bW4oY29sdW1uLCB0aGlzLmNvbHVtbnMgYXMgVGFibGVDb2x1bW5bXSk7XG4gICAgaWYgKHBhcmVudCAmJiB0aGlzLmNvbHVtbklzSGlkZGVuKHBhcmVudCkpIHtcbiAgICAgIHRoaXMuc2hvd0NvbHVtbihwYXJlbnQsIGhpZGRlbkNvbHVtbnMpO1xuICAgICAgdGhpcy5zaG93UGFyZW50cyhwYXJlbnQsIGhpZGRlbkNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVQYXJlbnRzKGNvbHVtbjogVGFibGVDb2x1bW4sIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50Q29sdW1uKGNvbHVtbiwgdGhpcy5jb2x1bW5zIGFzIFRhYmxlQ29sdW1uW10pO1xuICAgIGlmIChcbiAgICAgIHBhcmVudCAmJlxuICAgICAgIXRoaXMuY29sdW1uSXNIaWRkZW4ocGFyZW50KSAmJlxuICAgICAgcGFyZW50LmNvbHVtbnMgJiZcbiAgICAgIHBhcmVudC5jb2x1bW5zLmV2ZXJ5KChfKSA9PiB0aGlzLmNvbHVtbklzSGlkZGVuKF8pKVxuICAgICkge1xuICAgICAgdGhpcy5oaWRlQ29sdW1uKHBhcmVudCwgaGlkZGVuQ29sdW1ucyk7XG4gICAgICB0aGlzLmhpZGVQYXJlbnRzKHBhcmVudCwgaGlkZGVuQ29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgaGlkZUNvbHVtbihjb2x1bW46IFRhYmxlQ29sdW1uLCBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIGhpZGRlbkNvbHVtbnMucHVzaChjb2x1bW4ubmFtZSk7XG4gIH1cblxuICBzaG93Q29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgaGlkZGVuQ29sdW1ucy5zcGxpY2UoaGlkZGVuQ29sdW1ucy5pbmRleE9mKGNvbHVtbi5uYW1lKSwgMSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRQYXJlbnRDb2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgY29sdW1uczogVGFibGVDb2x1bW5bXSk6IFRhYmxlQ29sdW1uIHwgbnVsbCB7XG4gICAgcmV0dXJuIEFycmF5VXRpbC5maW5kUmVjdXJzaXZlKGNvbHVtbnMsIChpdGVyYWJsZU5vZGUpID0+IGl0ZXJhYmxlTm9kZS5jb2x1bW5zPy5pbmRleE9mKGNvbHVtbikgPj0gMCwgJ2NvbHVtbnMnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIkBpZiAobG9jYWxlIHwgYXN5bmM7IGFzIGxvYykge1xuICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIHBhZGRpbmctbGVmdC02IHBhZGRpbmctdG9wLTJcIiBbY2xhc3MucGFkZGluZy1sZWZ0LTldPVwiY2hpbGRNb2RlXCI+XG4gICAgPHRldGEtY2hlY2tib3hcbiAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICBbYWxsb3dOdWxsXT1cInRydWVcIlxuICAgICAgW25nTW9kZWxdPVwiYWxsQ29sdW1uc1Zpc2libGUoKVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRBbGxDb2x1bW5zKCRldmVudClcIlxuICAgID5cbiAgICAgIHt7IGxvYy5hbGwgfX1cbiAgICA8L3RldGEtY2hlY2tib3g+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGlzdC1kaXZpZGVyXCI+PC9kaXY+XG4gIDx0ZXRhLXNjcm9sbGFibGUgY2xhc3M9XCJwYWRkaW5nLXYtMiBjb2x1bW4gY29sdW1uX2F1dG9cIj5cbiAgICA8dGV0YS10cmVlXG4gICAgICBbZGF0YV09XCJjb2x1bW5zXCJcbiAgICAgIFtvcGVuSXRlbXNdPVwib3Blbkl0ZW1zXCJcbiAgICAgIChvcGVuSXRlbXNDaGFuZ2UpPVwib3Blbkl0ZW1zID0gJGV2ZW50XCJcbiAgICAgIFtjaGlsZE5vZGVOYW1lXT1cIidjb2x1bW5zJ1wiXG4gICAgICBbY29tcGFyZUl0ZW1zXT1cImNvbXBhcmVJdGVtc1wiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHRldGFUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyZWVfX2l0ZW1cIiBzdHlsZT1cImFsaWduLWl0ZW1zOiB1bnNldFwiPlxuICAgICAgICAgIEBpZiAoaXRlbS5jb2x1bW5zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8dGV0YS10cmVlLWl0ZW0tdG9nZ2xlIFtpdGVtXT1cIml0ZW1cIj48L3RldGEtdHJlZS1pdGVtLXRvZ2dsZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHRldGEtY2hlY2tib3hcbiAgICAgICAgICAgIHN0eWxlPVwiZmxleC1ncm93OiAxXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIiFjb2x1bW5Jc0hpZGRlbihpdGVtKVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRDb2x1bW5WaXNpYmlsaXR5KGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICBbYmluYXJ5XT1cInRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uY2FwdGlvbiB9fVxuICAgICAgICAgIDwvdGV0YS1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdGV0YS10cmVlPlxuICA8L3RldGEtc2Nyb2xsYWJsZT5cbiAgPHRldGEtdG9vbGJhciBjbGFzcz1cImp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHRldGEtYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPVwiYWxsQ29sdW1uc1Zpc2libGUoKSA9PT0gZmFsc2VcIlxuICAgICAgW3BhbGV0dGVdPVwiJ3ByaW1hcnknXCJcbiAgICAgIChjbGljayk9XCJzZXRDb2x1bW5zVmlzaWJpbGl0eSgpXCJcbiAgICA+XG4gICAgICB7eyBsb2MuYXBwbHkgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC90ZXRhLXRvb2xiYXI+XG59XG4iXX0=
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, } from '@angular/core';
|
|
2
|
-
import { TableColumn } from '../contract/table-column';
|
|
3
|
-
import { TableUtil } from '../util/table-util';
|
|
4
|
-
import { TableService } from '../service/table.service';
|
|
5
|
-
import { takeWhile } from 'rxjs/operators';
|
|
6
|
-
import { ArrayUtil } from '../../../common/util/array-util';
|
|
7
|
-
import { HeadCellComponent } from '../head-cell/head-cell.component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../service/table.service";
|
|
10
|
-
export class TableHeadGroupComponent {
|
|
11
|
-
set column(column) {
|
|
12
|
-
this._column = column;
|
|
13
|
-
}
|
|
14
|
-
get column() {
|
|
15
|
-
return this._column;
|
|
16
|
-
}
|
|
17
|
-
get flexGrow() {
|
|
18
|
-
if (this.column?.columns?.length > 0) {
|
|
19
|
-
const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
20
|
-
return flat?.reduce((prev, curr) => prev + curr.flex, 0);
|
|
21
|
-
}
|
|
22
|
-
return this.column.flex;
|
|
23
|
-
}
|
|
24
|
-
get flexBasis() {
|
|
25
|
-
if (this.column?.columns?.length > 0) {
|
|
26
|
-
const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
27
|
-
return flat?.reduce((prev, curr) => prev + curr.width, 0);
|
|
28
|
-
}
|
|
29
|
-
return this.column.width;
|
|
30
|
-
}
|
|
31
|
-
get _leaves() {
|
|
32
|
-
return TableUtil.getColumnLeaves(this._column)?.filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
33
|
-
}
|
|
34
|
-
constructor(_svc, _cdr) {
|
|
35
|
-
this._svc = _svc;
|
|
36
|
-
this._cdr = _cdr;
|
|
37
|
-
this._alive = true;
|
|
38
|
-
this._svc.hiddenColumns.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
39
|
-
this._hiddenColumns = _;
|
|
40
|
-
this._cdr.markForCheck();
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
columnIsHidden(column) {
|
|
44
|
-
return this._svc.columnIsHidden(column);
|
|
45
|
-
}
|
|
46
|
-
ngOnInit() { }
|
|
47
|
-
ngOnDestroy() {
|
|
48
|
-
this._alive = false;
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadGroupComponent, isStandalone: true, selector: "teta-table-head-group", inputs: { showHeadCellMenu: "showHeadCellMenu", data: "data", column: "column" }, host: { properties: { "style.flex-grow": "this.flexGrow", "style.min-width.px": "this.flexBasis", "style.flex-basis.px": "this.flexBasis" } }, ngImport: i0, template: "@if (column.columns && column.columns.length > 0) {\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) {\n @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n }\n }\n </div>\n </div>\n}\n@if (!column.columns || column.columns.length === 0) {\n @if (!columnIsHidden(column)) {\n <teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n ></teta-head-cell>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }, { kind: "component", type: HeadCellComponent, selector: "teta-head-cell", inputs: ["column", "showHeadCellMenu", "data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, decorators: [{
|
|
54
|
-
type: Component,
|
|
55
|
-
args: [{ selector: 'teta-table-head-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HeadCellComponent], template: "@if (column.columns && column.columns.length > 0) {\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) {\n @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n }\n }\n </div>\n </div>\n}\n@if (!column.columns || column.columns.length === 0) {\n @if (!columnIsHidden(column)) {\n <teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n ></teta-head-cell>\n }\n}\n" }]
|
|
56
|
-
}], ctorParameters: () => [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { showHeadCellMenu: [{
|
|
57
|
-
type: Input
|
|
58
|
-
}], data: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], column: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], flexGrow: [{
|
|
63
|
-
type: HostBinding,
|
|
64
|
-
args: ['style.flex-grow']
|
|
65
|
-
}], flexBasis: [{
|
|
66
|
-
type: HostBinding,
|
|
67
|
-
args: ['style.min-width.px']
|
|
68
|
-
}, {
|
|
69
|
-
type: HostBinding,
|
|
70
|
-
args: ['style.flex-basis.px']
|
|
71
|
-
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLWhlYWQtZ3JvdXAvdGFibGUtaGVhZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLWhlYWQtZ3JvdXAvdGFibGUtaGVhZC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFVckUsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxJQUNJLE1BQU0sQ0FBQyxNQUFtQjtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFvQyxRQUFRO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFB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QkFBb0I7O3NCQUNoQyxXQUFXO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFRhYmxlVXRpbCB9IGZyb20gJy4uL3V0aWwvdGFibGUtdXRpbCc7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXJyYXlVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWwvYXJyYXktdXRpbCc7XG5pbXBvcnQgeyBIZWFkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10YWJsZS1oZWFkLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1oZWFkLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSGVhZENlbGxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRHcm91cENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgc2hvd0hlYWRDZWxsTWVudTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0YTogVFtdO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIHRoaXMuX2NvbHVtbiA9IGNvbHVtbjtcbiAgfVxuXG4gIGdldCBjb2x1bW4oKTogVGFibGVDb2x1bW4ge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW47XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZ3JvdycpIGdldCBmbGV4R3JvdygpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4/LmNvbHVtbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZsYXQgPSBBcnJheVV0aWwuZmxhdHRlbih0aGlzLmNvbHVtbj8uY29sdW1ucywgJ2NvbHVtbnMnLCB0cnVlKS5maWx0ZXIoXG4gICAgICAgIChfKSA9PiB0aGlzLl9oaWRkZW5Db2x1bW5zLmluZGV4T2YoXy5uYW1lKSA8IDAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZsYXQ/LnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIuZmxleCwgMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbHVtbi5mbGV4O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgucHgnKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtYmFzaXMucHgnKVxuICBnZXQgZmxleEJhc2lzKCkge1xuICAgIGlmICh0aGlzLmNvbHVtbj8uY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmxhdCA9IEFycmF5VXRpbC5mbGF0dGVuKHRoaXMuY29sdW1uPy5jb2x1bW5zLCAnY29sdW1ucycsIHRydWUpLmZpbHRlcihcbiAgICAgICAgKF8pID0+IHRoaXMuX2hpZGRlbkNvbHVtbnMuaW5kZXhPZihfLm5hbWUpIDwgMCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmxhdD8ucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3Vyci53aWR0aCwgMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbHVtbi53aWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgcHJpdmF0ZSBfaGlkZGVuQ29sdW1uczogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBnZXQgX2xlYXZlcygpIHtcbiAgICByZXR1cm4gVGFibGVVdGlsLmdldENvbHVtbkxlYXZlcyh0aGlzLl9jb2x1bW4pPy5maWx0ZXIoKF8pID0+IHRoaXMuX2hpZGRlbkNvbHVtbnMuaW5kZXhPZihfLm5hbWUpIDwgMCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLl9zdmMuaGlkZGVuQ29sdW1ucy5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuX2hpZGRlbkNvbHVtbnMgPSBfO1xuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgY29sdW1uSXNIaWRkZW4oY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIHJldHVybiB0aGlzLl9zdmMuY29sdW1uSXNIaWRkZW4oY29sdW1uKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG59XG4iLCJAaWYgKGNvbHVtbi5jb2x1bW5zICYmIGNvbHVtbi5jb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2dyb3VwX19jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZF9fZ3JvdXBfX2NhcHRpb25cIj5cbiAgICAgIHt7IGNvbHVtbi5jYXB0aW9uIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2dyb3VwX19jaGlsZHJlblwiPlxuICAgICAgQGZvciAoY29sIG9mIGNvbHVtbi5jb2x1bW5zOyB0cmFjayBjb2wpIHtcbiAgICAgICAgQGlmICghY29sdW1uSXNIaWRkZW4oY29sKSkge1xuICAgICAgICAgIDx0ZXRhLXRhYmxlLWhlYWQtZ3JvdXBcbiAgICAgICAgICAgIGNsYXNzPVwidGFibGUtaGVhZF9fZ3JvdXBcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICAgICAgICBbc2hvd0hlYWRDZWxsTWVudV09XCJzaG93SGVhZENlbGxNZW51XCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sXCJcbiAgICAgICAgICA+PC90ZXRhLXRhYmxlLWhlYWQtZ3JvdXA+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5AaWYgKCFjb2x1bW4uY29sdW1ucyB8fCBjb2x1bW4uY29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgQGlmICghY29sdW1uSXNIaWRkZW4oY29sdW1uKSkge1xuICAgIDx0ZXRhLWhlYWQtY2VsbFxuICAgICAgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsXCJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgW3Nob3dIZWFkQ2VsbE1lbnVdPVwic2hvd0hlYWRDZWxsTWVudVwiXG4gICAgICBbYXR0ci5kYXRhLWNvbHVtbl09XCJjb2x1bW4ubmFtZVwiXG4gICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgPjwvdGV0YS1oZWFkLWNlbGw+XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
|
|
2
|
-
import { ControlContainer, FormGroup, NgForm, UntypedFormControl } from '@angular/forms';
|
|
3
|
-
import { TableRow } from '../contract/table-row';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class TableRowComponent {
|
|
6
|
-
get control() {
|
|
7
|
-
return this.formGroup?.get('id');
|
|
8
|
-
}
|
|
9
|
-
get formGroup() {
|
|
10
|
-
if (this._formGroup instanceof FormGroup) {
|
|
11
|
-
return this._formGroup;
|
|
12
|
-
}
|
|
13
|
-
if (this._formGroup instanceof NgForm) {
|
|
14
|
-
return this._formGroup.form;
|
|
15
|
-
}
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
constructor() {
|
|
19
|
-
this._formGroup = inject(ControlContainer, {
|
|
20
|
-
optional: true,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
ngOnChanges(changes) {
|
|
24
|
-
if (!this.control) {
|
|
25
|
-
this.formGroup.registerControl('id', new UntypedFormControl(this.row?.data['id']));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.control.patchValue(this.row?.data['id'], {
|
|
29
|
-
emitEvent: false,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TableRowComponent, isStandalone: true, selector: "teta-table-row", inputs: { row: "row" }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableRowComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'teta-table-row', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
39
|
-
}], ctorParameters: () => [], propDecorators: { row: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWUsU0FBUyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFVakQsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBZ0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEO1FBbEJRLGVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQUU7WUFDNUMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFnQlksQ0FBQztJQUVoQixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUMsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBL0JVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHVIQ1o5Qiw2QkFDQTs7MkZEV2EsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxFQUFFLG1CQUdNLHVCQUF1QixDQUFDLE1BQU07d0RBR3RDLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdGb3JtLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUYWJsZVJvdyB9IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLXJvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtdGFibGUtcm93JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtcm93LmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSByb3c6IFRhYmxlUm93PFQ+O1xuXG4gIHByaXZhdGUgX2Zvcm1Hcm91cCA9IGluamVjdChDb250cm9sQ29udGFpbmVyLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXA/LmdldCgnaWQnKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgTmdGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwLmZvcm07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVnaXN0ZXJDb250cm9sKCdpZCcsIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5yb3c/LmRhdGFbJ2lkJ10pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUodGhpcy5yb3c/LmRhdGFbJ2lkJ10sIHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './state-util';
|
|
2
|
-
export * from './table-util';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvdXRpbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS11dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtdXRpbCc7XG4iXX0=
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { FilterState } from '../../filter/contarct/filter-state';
|
|
2
|
-
import { SortParam } from '../../filter/contarct/sort-param';
|
|
3
|
-
import { FilterType } from '../../filter/enum/filter-type.enum';
|
|
4
|
-
export class StateUtil {
|
|
5
|
-
static hasSortedColumns(state) {
|
|
6
|
-
return state.sortParams && state.sortParams.length > 0;
|
|
7
|
-
}
|
|
8
|
-
static hasFilteredColumns(state) {
|
|
9
|
-
let hasFilters = false;
|
|
10
|
-
if (state.stringFilters && state.stringFilters.some((filter) => filter.value && filter.value.length)) {
|
|
11
|
-
hasFilters = true;
|
|
12
|
-
}
|
|
13
|
-
if (state.listFilters && state.listFilters.some((filter) => filter.value && filter.value.length)) {
|
|
14
|
-
hasFilters = true;
|
|
15
|
-
}
|
|
16
|
-
if (state.numericFilters &&
|
|
17
|
-
state.numericFilters.some((filter) => filter &&
|
|
18
|
-
filter.value &&
|
|
19
|
-
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
20
|
-
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined) ||
|
|
21
|
-
(filter.value.equalsTo !== null && filter.value.equalsTo !== undefined)))) {
|
|
22
|
-
hasFilters = true;
|
|
23
|
-
}
|
|
24
|
-
if (state.dateFilters &&
|
|
25
|
-
state.dateFilters.some((filter) => filter &&
|
|
26
|
-
filter.value &&
|
|
27
|
-
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
28
|
-
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined)))) {
|
|
29
|
-
hasFilters = true;
|
|
30
|
-
}
|
|
31
|
-
return hasFilters;
|
|
32
|
-
}
|
|
33
|
-
static getSortState(state, column) {
|
|
34
|
-
if (state?.sortParams && state.sortParams.length) {
|
|
35
|
-
const param = state.sortParams.find((x) => x.field === column.sortField);
|
|
36
|
-
if (param) {
|
|
37
|
-
return param;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
static isColumnFiltered(state, column) {
|
|
43
|
-
if (!column.filterable) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
let filtered = false;
|
|
47
|
-
switch (column.filterType) {
|
|
48
|
-
case FilterType.string:
|
|
49
|
-
if (state?.stringFilters) {
|
|
50
|
-
const filter = state.stringFilters.find((x) => x.field === column.filterField);
|
|
51
|
-
if (filter && filter.value && filter.value.length) {
|
|
52
|
-
filtered = true;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
break;
|
|
56
|
-
case FilterType.list:
|
|
57
|
-
if (state?.listFilters) {
|
|
58
|
-
const filter = state.listFilters.find((x) => x.field === column.filterField);
|
|
59
|
-
if (filter && filter.value && filter.value.length) {
|
|
60
|
-
filtered = true;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
break;
|
|
64
|
-
case FilterType.number:
|
|
65
|
-
if (state?.numericFilters) {
|
|
66
|
-
const filter = state.numericFilters.find((x) => x.field === column.filterField);
|
|
67
|
-
if (filter &&
|
|
68
|
-
filter.value &&
|
|
69
|
-
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
70
|
-
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined) ||
|
|
71
|
-
(filter.value.equalsTo !== null && filter.value.equalsTo !== undefined))) {
|
|
72
|
-
filtered = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
break;
|
|
76
|
-
case FilterType.date:
|
|
77
|
-
if (state?.dateFilters) {
|
|
78
|
-
const filter = state.dateFilters.find((x) => x.field === column.filterField);
|
|
79
|
-
if (filter &&
|
|
80
|
-
filter.value &&
|
|
81
|
-
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
82
|
-
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined))) {
|
|
83
|
-
filtered = true;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
return filtered;
|
|
89
|
-
}
|
|
90
|
-
static sortColumn(sortEvent, state) {
|
|
91
|
-
const column = sortEvent.column;
|
|
92
|
-
const shiftKey = sortEvent.shiftKey;
|
|
93
|
-
const sort = state.sortParams.find((sortParam) => sortParam.field === column.sortField);
|
|
94
|
-
if (sort === null || sort === undefined) {
|
|
95
|
-
if (!shiftKey) {
|
|
96
|
-
state.sortParams.length = 0;
|
|
97
|
-
}
|
|
98
|
-
state.sortParams.push(new SortParam({ field: column.sortField, asc: true, order: 0 }));
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
if (!sort.asc) {
|
|
102
|
-
state.sortParams = StateUtil.clearSortParam(sort, state.sortParams);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
sort.asc = !sort.asc;
|
|
106
|
-
if (!shiftKey) {
|
|
107
|
-
state.sortParams = [sort];
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return new FilterState(state);
|
|
112
|
-
}
|
|
113
|
-
static sortAsc(sortEvent, state) {
|
|
114
|
-
return StateUtil.sort(sortEvent, state, true);
|
|
115
|
-
}
|
|
116
|
-
static sortDesc(sortEvent, state) {
|
|
117
|
-
return StateUtil.sort(sortEvent, state, false);
|
|
118
|
-
}
|
|
119
|
-
static sort(sortEvent, state, asc) {
|
|
120
|
-
const column = sortEvent.column;
|
|
121
|
-
const shiftKey = sortEvent.shiftKey;
|
|
122
|
-
const sort = state.sortParams.find((sortParam) => sortParam.field === column.sortField);
|
|
123
|
-
if (sort) {
|
|
124
|
-
state.sortParams = StateUtil.clearSortParam(sort, state.sortParams);
|
|
125
|
-
}
|
|
126
|
-
if (!shiftKey) {
|
|
127
|
-
state.sortParams.length = 0;
|
|
128
|
-
}
|
|
129
|
-
state.sortParams.push(new SortParam({ field: column.sortField, asc: asc, order: 0 }));
|
|
130
|
-
return new FilterState(state);
|
|
131
|
-
}
|
|
132
|
-
static clearSortParam(sort, sortParams) {
|
|
133
|
-
const index = sortParams.indexOf(sort);
|
|
134
|
-
sortParams.splice(index, 1);
|
|
135
|
-
return sortParams;
|
|
136
|
-
}
|
|
137
|
-
static clearSort(column, state) {
|
|
138
|
-
state.sortParams = state.sortParams.filter((_) => _.field !== column.sortField);
|
|
139
|
-
return new FilterState(state);
|
|
140
|
-
}
|
|
141
|
-
static clearAllSort(state) {
|
|
142
|
-
state.sortParams = [];
|
|
143
|
-
return new FilterState(state);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvdXRpbC9zdGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR2hFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUN4QyxPQUFPLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBa0I7UUFDMUMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDckcsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqRyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUNFLEtBQUssQ0FBQyxjQUFjO1lBQ3BCLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN2QixD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ICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFNvcnRQYXJhbSB9IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFNvcnRFdmVudCB9IGZyb20gJy4uL2NvbnRyYWN0L3NvcnQtZXZlbnQnO1xuXG5leHBvcnQgY2xhc3MgU3RhdGVVdGlsIHtcbiAgc3RhdGljIGhhc1NvcnRlZENvbHVtbnMoc3RhdGU6IEZpbHRlclN0YXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLnNvcnRQYXJhbXMgJiYgc3RhdGUuc29ydFBhcmFtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgc3RhdGljIGhhc0ZpbHRlcmVkQ29sdW1ucyhzdGF0ZTogRmlsdGVyU3RhdGUpOiBib29sZWFuIHtcbiAgICBsZXQgaGFzRmlsdGVycyA9IGZhbHNlO1xuICAgIGlmIChzdGF0ZS5zdHJpbmdGaWx0ZXJzICYmIHN0YXRlLnN0cmluZ0ZpbHRlcnMuc29tZSgoZmlsdGVyKSA9PiBmaWx0ZXIudmFsdWUgJiYgZmlsdGVyLnZhbHVlLmxlbmd0aCkpIHtcbiAgICAgIGhhc0ZpbHRlcnMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoc3RhdGUubGlzdEZpbHRlcnMgJiYgc3RhdGUubGlzdEZpbHRlcnMuc29tZSgoZmlsdGVyKSA9PiBmaWx0ZXIudmFsdWUgJiYgZmlsdGVyLnZhbHVlLmxlbmd0aCkpIHtcbiAgICAgIGhhc0ZpbHRlcnMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBzdGF0ZS5udW1lcmljRmlsdGVycyAmJlxuICAgICAgc3RhdGUubnVtZXJpY0ZpbHRlcnMuc29tZShcbiAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICBmaWx0ZXIgJiZcbiAgICAgICAgICBmaWx0ZXIudmFsdWUgJiZcbiAgICAgICAgICAoKGZpbHRlci52YWx1ZS5sZXNzVGhhbiAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUubGVzc1RoYW4gIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgICAgICAgIChmaWx0ZXIudmFsdWUuZ3JlYXRlclRoYW4gIT09IG51bGwgJiYgZmlsdGVyLnZhbHVlLmdyZWF0ZXJUaGFuICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAgICAgICAoZmlsdGVyLnZhbHVlLmVxdWFsc1RvICE9PSBudWxsICYmIGZpbHRlci52YWx1ZS5lcXVhbHNUbyAhPT0gdW5kZWZpbmVkKSksXG4gICAgICApXG4gICAgKSB7XG4gICAgICBoYXNGaWx0ZXJzID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc3RhdGUuZGF0ZUZpbHRlcnMgJiZcbiAgICAgIHN0YXRlLmRhdGVGaWx0ZXJzLnNvbWUoXG4gICAgICAgIChmaWx0ZXIpID0+XG4gICAgICAgICAgZmlsdGVyICYmXG4gICAgICAgICAgZmlsdGVyLnZhbHVlICYmXG4gICAgICAgICAgKChmaWx0ZXIudmFsdWUubGVzc1RoYW4gIT09IG51bGwgJiYgZmlsdGVyLnZhbHVlLmxlc3NUaGFuICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAgICAgICAoZmlsdGVyLnZhbHVlLmdyZWF0ZXJUaGFuICE9PSBudWxsICYmIGZpbHRlci52YWx1ZS5ncmVhdGVyVGhhbiAhPT0gdW5kZWZpbmVkKSksXG4gICAgICApXG4gICAgKSB7XG4gICAgICBoYXNGaWx0ZXJzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFzRmlsdGVycztcbiAgfVxuXG4gIHN0YXRpYyBnZXRTb3J0U3RhdGUoc3RhdGU6IEZpbHRlclN0YXRlLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogU29ydFBhcmFtIHwgbnVsbCB7XG4gICAgaWYgKHN0YXRlPy5zb3J0UGFyYW1zICYmIHN0YXRlLnNvcnRQYXJhbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwYXJhbSA9IHN0YXRlLnNvcnRQYXJhbXMuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gY29sdW1uLnNvcnRGaWVsZCk7XG4gICAgICBpZiAocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBpc0NvbHVtbkZpbHRlcmVkKHN0YXRlOiBGaWx0ZXJTdGF0ZSwgY29sdW1uOiBUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgIGlmICghY29sdW1uLmZpbHRlcmFibGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IGZpbHRlcmVkID0gZmFsc2U7XG4gICAgc3dpdGNoIChjb2x1bW4uZmlsdGVyVHlwZSkge1xuICAgICAgY2FzZSBGaWx0ZXJUeXBlLnN0cmluZzpcbiAgICAgICAgaWYgKHN0YXRlPy5zdHJpbmdGaWx0ZXJzKSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyID0gc3RhdGUuc3RyaW5nRmlsdGVycy5maW5kKCh4KSA9PiB4LmZpZWxkID09PSBjb2x1bW4uZmlsdGVyRmllbGQpO1xuICAgICAgICAgIGlmIChmaWx0ZXIgJiYgZmlsdGVyLnZhbHVlICYmIGZpbHRlci52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZpbHRlclR5cGUubGlzdDpcbiAgICAgICAgaWYgKHN0YXRlPy5saXN0RmlsdGVycykge1xuICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHN0YXRlLmxpc3RGaWx0ZXJzLmZpbmQoKHgpID0+IHguZmllbGQgPT09IGNvbHVtbi5maWx0ZXJGaWVsZCk7XG4gICAgICAgICAgaWYgKGZpbHRlciAmJiBmaWx0ZXIudmFsdWUgJiYgZmlsdGVyLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgZmlsdGVyZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmlsdGVyVHlwZS5udW1iZXI6XG4gICAgICAgIGlmIChzdGF0ZT8ubnVtZXJpY0ZpbHRlcnMpIHtcbiAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBzdGF0ZS5udW1lcmljRmlsdGVycy5maW5kKCh4KSA9PiB4LmZpZWxkID09PSBjb2x1bW4uZmlsdGVyRmllbGQpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZpbHRlciAmJlxuICAgICAgICAgICAgZmlsdGVyLnZhbHVlICYmXG4gICAgICAgICAgICAoKGZpbHRlci52YWx1ZS5sZXNzVGhhbiAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUubGVzc1RoYW4gIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgICAgICAgICAgKGZpbHRlci52YWx1ZS5ncmVhdGVyVGhhbiAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUuZ3JlYXRlclRoYW4gIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgICAgICAgICAgKGZpbHRlci52YWx1ZS5lcXVhbHNUbyAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUuZXF1YWxzVG8gIT09IHVuZGVmaW5lZCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWx0ZXJUeXBlLmRhdGU6XG4gICAgICAgIGlmIChzdGF0ZT8uZGF0ZUZpbHRlcnMpIHtcbiAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBzdGF0ZS5kYXRlRmlsdGVycy5maW5kKCh4KSA9PiB4LmZpZWxkID09PSBjb2x1bW4uZmlsdGVyRmllbGQpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZpbHRlciAmJlxuICAgICAgICAgICAgZmlsdGVyLnZhbHVlICYmXG4gICAgICAgICAgICAoKGZpbHRlci52YWx1ZS5sZXNzVGhhbiAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUubGVzc1RoYW4gIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgICAgICAgICAgKGZpbHRlci52YWx1ZS5ncmVhdGVyVGhhbiAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUuZ3JlYXRlclRoYW4gIT09IHVuZGVmaW5lZCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWQ7XG4gIH1cblxuICBzdGF0aWMgc29ydENvbHVtbihzb3J0RXZlbnQ6IFNvcnRFdmVudCwgc3RhdGU6IEZpbHRlclN0YXRlKTogRmlsdGVyU3RhdGUge1xuICAgIGNvbnN0IGNvbHVtbiA9IHNvcnRFdmVudC5jb2x1bW47XG4gICAgY29uc3Qgc2hpZnRLZXkgPSBzb3J0RXZlbnQuc2hpZnRLZXk7XG4gICAgY29uc3Qgc29ydCA9IHN0YXRlLnNvcnRQYXJhbXMuZmluZCgoc29ydFBhcmFtOiBTb3J0UGFyYW0pID0+IHNvcnRQYXJhbS5maWVsZCA9PT0gY29sdW1uLnNvcnRGaWVsZCk7XG4gICAgaWYgKHNvcnQgPT09IG51bGwgfHwgc29ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXNoaWZ0S2V5KSB7XG4gICAgICAgIHN0YXRlLnNvcnRQYXJhbXMubGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICAgIHN0YXRlLnNvcnRQYXJhbXMucHVzaChuZXcgU29ydFBhcmFtKHsgZmllbGQ6IGNvbHVtbi5zb3J0RmllbGQsIGFzYzogdHJ1ZSwgb3JkZXI6IDAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXNvcnQuYXNjKSB7XG4gICAgICAgIHN0YXRlLnNvcnRQYXJhbXMgPSBTdGF0ZVV0aWwuY2xlYXJTb3J0UGFyYW0oc29ydCwgc3RhdGUuc29ydFBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzb3J0LmFzYyA9ICFzb3J0LmFzYztcbiAgICAgICAgaWYgKCFzaGlmdEtleSkge1xuICAgICAgICAgIHN0YXRlLnNvcnRQYXJhbXMgPSBbc29ydF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJTdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydEFzYyhzb3J0RXZlbnQ6IFNvcnRFdmVudCwgc3RhdGU6IEZpbHRlclN0YXRlKTogRmlsdGVyU3RhdGUge1xuICAgIHJldHVybiBTdGF0ZVV0aWwuc29ydChzb3J0RXZlbnQsIHN0YXRlLCB0cnVlKTtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0RGVzYyhzb3J0RXZlbnQ6IFNvcnRFdmVudCwgc3RhdGU6IEZpbHRlclN0YXRlKTogRmlsdGVyU3RhdGUge1xuICAgIHJldHVybiBTdGF0ZVV0aWwuc29ydChzb3J0RXZlbnQsIHN0YXRlLCBmYWxzZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydChzb3J0RXZlbnQ6IFNvcnRFdmVudCwgc3RhdGU6IEZpbHRlclN0YXRlLCBhc2M6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjb2x1bW4gPSBzb3J0RXZlbnQuY29sdW1uO1xuICAgIGNvbnN0IHNoaWZ0S2V5ID0gc29ydEV2ZW50LnNoaWZ0S2V5O1xuICAgIGNvbnN0IHNvcnQgPSBzdGF0ZS5zb3J0UGFyYW1zLmZpbmQoKHNvcnRQYXJhbTogU29ydFBhcmFtKSA9PiBzb3J0UGFyYW0uZmllbGQgPT09IGNvbHVtbi5zb3J0RmllbGQpO1xuICAgIGlmIChzb3J0KSB7XG4gICAgICBzdGF0ZS5zb3J0UGFyYW1zID0gU3RhdGVVdGlsLmNsZWFyU29ydFBhcmFtKHNvcnQsIHN0YXRlLnNvcnRQYXJhbXMpO1xuICAgIH1cbiAgICBpZiAoIXNoaWZ0S2V5KSB7XG4gICAgICBzdGF0ZS5zb3J0UGFyYW1zLmxlbmd0aCA9IDA7XG4gICAgfVxuICAgIHN0YXRlLnNvcnRQYXJhbXMucHVzaChuZXcgU29ydFBhcmFtKHsgZmllbGQ6IGNvbHVtbi5zb3J0RmllbGQsIGFzYzogYXNjLCBvcmRlcjogMCB9KSk7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJTdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBzdGF0aWMgY2xlYXJTb3J0UGFyYW0oc29ydDogU29ydFBhcmFtLCBzb3J0UGFyYW1zOiBTb3J0UGFyYW1bXSkge1xuICAgIGNvbnN0IGluZGV4ID0gc29ydFBhcmFtcy5pbmRleE9mKHNvcnQpO1xuICAgIHNvcnRQYXJhbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gc29ydFBhcmFtcztcbiAgfVxuXG4gIHN0YXRpYyBjbGVhclNvcnQoY29sdW1uOiBUYWJsZUNvbHVtbiwgc3RhdGU6IEZpbHRlclN0YXRlKTogRmlsdGVyU3RhdGUge1xuICAgIHN0YXRlLnNvcnRQYXJhbXMgPSBzdGF0ZS5zb3J0UGFyYW1zLmZpbHRlcigoXykgPT4gXy5maWVsZCAhPT0gY29sdW1uLnNvcnRGaWVsZCk7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJTdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBzdGF0aWMgY2xlYXJBbGxTb3J0KHN0YXRlOiBGaWx0ZXJTdGF0ZSk6IEZpbHRlclN0YXRlIHtcbiAgICBzdGF0ZS5zb3J0UGFyYW1zID0gW107XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJTdGF0ZShzdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
|