@tetacom/ng-components 1.4.4 → 1.4.5
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/assets/icons.svg +54 -0
- package/component/avatar/avatar/avatar.component.d.ts +1 -1
- package/component/button/button/button.component.d.ts +1 -1
- package/component/date-picker/base-calendar.d.ts +1 -1
- package/component/date-picker/base-picker.d.ts +1 -1
- package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +1 -1
- package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
- package/component/date-picker/date-range/date-range.component.d.ts +1 -1
- package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +1 -1
- package/component/date-picker/day-picker/day-item/day-item.component.d.ts +1 -1
- package/component/date-picker/day-picker/day-picker.component.d.ts +4 -4
- package/component/date-picker/month-picker/month-picker.component.d.ts +2 -2
- package/component/date-picker/public-api.d.ts +2 -2
- package/component/date-picker/year-picker/year-picker.component.d.ts +3 -3
- package/component/filter/boolean-filter/boolean-filter.component.d.ts +3 -3
- package/component/message/model/message.d.ts +1 -1
- package/component/switch/switch/switch.component.d.ts +1 -1
- package/component/table/table-row/table-row.component.d.ts +2 -2
- package/component/tree/tree/tree.component.d.ts +1 -1
- package/docs/avatarDocs.mdx +78 -72
- package/docs/datePickerDocs.mdx +3 -3
- package/docs/dateRangeDocs.mdx +3 -3
- package/docs/delimiterDocs.mdx +78 -78
- package/docs/dropdownDocs.mdx +143 -123
- package/docs/expandCardlDocs.mdx +49 -45
- package/docs/expandPanelDocs.mdx +104 -92
- package/docs/fileAreaDocs.mdx +64 -59
- package/docs/inputDocs.mdx +70 -67
- package/docs/listDocs.mdx +14 -8
- package/docs/messageDocs.mdx +47 -34
- package/docs/progressBarDocs.mdx +65 -51
- package/docs/propertyGridDocs.mdx +173 -115
- package/docs/radioDocs.mdx +92 -80
- package/docs/resizePanelDocs.mdx +79 -67
- package/docs/selectDocs.mdx +262 -220
- package/docs/switchDocs.mdx +86 -73
- package/docs/tagDocs.mdx +17 -11
- package/docs/toggleDocs.mdx +42 -36
- package/docs/toolbarDocs.mdx +14 -8
- package/docs/treeDocs.mdx +108 -89
- package/esm2022/common/contract/teta-content-ref.mjs +1 -1
- package/esm2022/common/enum/align.enum.mjs +1 -1
- package/esm2022/common/enum/vertical-align.enum.mjs +1 -1
- package/esm2022/common/service/dynamic-component.service.mjs +1 -1
- package/esm2022/common/util/array-util.mjs +5 -7
- package/esm2022/common/util/dom-util.mjs +2 -3
- package/esm2022/common/util/position-util.mjs +6 -14
- package/esm2022/component/accordion/accordion-content.directive.mjs +2 -2
- package/esm2022/component/accordion/public-api.mjs +1 -1
- package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +2 -3
- package/esm2022/component/autocomplete/public-api.mjs +1 -1
- package/esm2022/component/avatar/avatar/avatar.component.mjs +4 -5
- package/esm2022/component/avatar/model/avatar-color.enum.mjs +1 -1
- package/esm2022/component/avatar/public-api.mjs +1 -1
- package/esm2022/component/button/button/button.component.mjs +2 -2
- package/esm2022/component/button/public-api.mjs +1 -1
- package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +11 -24
- package/esm2022/component/chart-3d/model/chart-3d-options.mjs +1 -1
- package/esm2022/component/chart-3d/public-api.mjs +1 -1
- package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/component/checkbox/public-api.mjs +1 -1
- package/esm2022/component/date-picker/base-calendar.mjs +7 -14
- package/esm2022/component/date-picker/base-picker.mjs +3 -2
- package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +4 -11
- package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +5 -6
- package/esm2022/component/date-picker/date-range/date-range.component.mjs +6 -14
- package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +4 -4
- package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +5 -6
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +9 -9
- package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
- package/esm2022/component/date-picker/model/from-to.model.mjs +1 -1
- package/esm2022/component/date-picker/model/min-max-date.model.mjs +1 -1
- package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +4 -4
- package/esm2022/component/date-picker/public-api.mjs +3 -3
- package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +3 -3
- package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +9 -7
- package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +2 -2
- package/esm2022/component/delimiter/public-api.mjs +1 -1
- package/esm2022/component/divider/divider/divider.component.mjs +4 -4
- package/esm2022/component/divider/public-api.mjs +1 -1
- package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +2 -3
- package/esm2022/component/dropdown/dropdown-base.mjs +11 -22
- package/esm2022/component/dropdown/dropdown-content.directive.mjs +2 -2
- package/esm2022/component/dropdown/dropdown-head.directive.mjs +2 -2
- package/esm2022/component/dropdown/dropdown.directive.mjs +4 -5
- package/esm2022/component/dropdown/public-api.mjs +1 -1
- package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +4 -10
- package/esm2022/component/dynamic-component/public-api.mjs +1 -1
- package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +4 -5
- package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +4 -4
- package/esm2022/component/expand-card/public-api.mjs +1 -1
- package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +4 -9
- package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +1 -1
- package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +1 -1
- package/esm2022/component/expand-panel/public-api.mjs +1 -1
- package/esm2022/component/file-upload/file-item/file-item.component.mjs +1 -1
- package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +3 -8
- package/esm2022/component/file-upload/public-api.mjs +1 -1
- package/esm2022/component/filter/base/filter-base.mjs +1 -1
- package/esm2022/component/filter/base/filter-component-base.mjs +1 -1
- package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +5 -11
- package/esm2022/component/filter/contarct/boolean-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/date-filter-value.mjs +3 -3
- package/esm2022/component/filter/contarct/date-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/filter-component-map.mjs +2 -4
- package/esm2022/component/filter/contarct/filter-item.mjs +2 -2
- package/esm2022/component/filter/contarct/filter-state.mjs +1 -1
- package/esm2022/component/filter/contarct/list-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/numeric-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/sort-param.mjs +1 -1
- package/esm2022/component/filter/contarct/string-filter.mjs +1 -1
- package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -8
- package/esm2022/component/filter/enum/list-filter-type.enum.mjs +1 -1
- package/esm2022/component/filter/filter-host/filter-host.component.mjs +2 -3
- package/esm2022/component/filter/list-filter/list-filter.component.mjs +5 -14
- package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -8
- package/esm2022/component/filter/public-api.mjs +1 -1
- package/esm2022/component/filter/string-filter/string-filter.component.mjs +4 -9
- package/esm2022/component/icon/icon/icon.component.mjs +3 -3
- package/esm2022/component/icon/icon-file/icon-file.component.mjs +2 -3
- package/esm2022/component/icon/icon-sprite.directive.mjs +2 -2
- package/esm2022/component/icon/icon.service.mjs +5 -6
- package/esm2022/component/icon/public-api.mjs +1 -1
- package/esm2022/component/input/color-input/color-input.component.mjs +3 -3
- package/esm2022/component/input/form-group-title/form-group-title.component.mjs +2 -2
- package/esm2022/component/input/input/input.component.mjs +4 -4
- package/esm2022/component/input/public-api.mjs +1 -1
- package/esm2022/component/input/text-field/text-field.component.mjs +3 -9
- package/esm2022/component/message/message/message.component.mjs +3 -7
- package/esm2022/component/message/message-host/message-host.component.mjs +5 -9
- package/esm2022/component/message/message.service.mjs +2 -2
- package/esm2022/component/message/model/message.mjs +2 -2
- package/esm2022/component/message/public-api.mjs +1 -1
- package/esm2022/component/modal/dialog/dialog.component.mjs +3 -8
- package/esm2022/component/modal/dialog.service.mjs +1 -1
- package/esm2022/component/modal/modal-container/modal-container.component.mjs +4 -11
- package/esm2022/component/modal/modal.module.mjs +4 -12
- package/esm2022/component/modal/modal.service.mjs +1 -1
- package/esm2022/component/modal/model/current-modal.mjs +1 -1
- package/esm2022/component/modal/model/i-modal-result.mjs +1 -1
- package/esm2022/component/modal/model/modal-instance.mjs +1 -1
- package/esm2022/component/pager/model/pager-state.mjs +3 -2
- package/esm2022/component/pager/pager/pager.component.mjs +1 -1
- package/esm2022/component/pager/public-api.mjs +1 -1
- package/esm2022/component/pager/util/pager-util.mjs +1 -1
- package/esm2022/component/panel/panel/panel.component.mjs +4 -10
- package/esm2022/component/panel/public-api.mjs +1 -1
- package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +5 -6
- package/esm2022/component/progress-bar/public-api.mjs +1 -1
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +4 -4
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +7 -8
- package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +2 -2
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +6 -11
- package/esm2022/component/property-grid/property-grid.module.mjs +1 -1
- package/esm2022/component/radio/public-api.mjs +1 -1
- package/esm2022/component/radio/radio/radio.component.mjs +7 -11
- package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/component/resize-panel/public-api.mjs +1 -1
- package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +5 -10
- package/esm2022/component/select/public-api.mjs +1 -1
- package/esm2022/component/select/select/select.component.mjs +10 -18
- package/esm2022/component/select/select-option.directive.mjs +2 -2
- package/esm2022/component/select/select-value.directive.mjs +2 -2
- package/esm2022/component/sidebar/public-api.mjs +1 -1
- package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +6 -12
- package/esm2022/component/sidebar/sidebar-position.enum.mjs +1 -1
- package/esm2022/component/switch/public-api.mjs +1 -1
- package/esm2022/component/switch/switch/switch.component.mjs +4 -7
- package/esm2022/component/switch/switch-button/switch-button.component.mjs +2 -3
- package/esm2022/component/switch/switch.service.mjs +2 -2
- package/esm2022/component/table/base/cell-component-base.mjs +10 -22
- package/esm2022/component/table/base/detail-component-base.mjs +1 -1
- package/esm2022/component/table/base/head-cell-component-base.mjs +2 -2
- package/esm2022/component/table/cell/cell.component.mjs +4 -4
- package/esm2022/component/table/cell-host/cell-host.component.mjs +1 -1
- package/esm2022/component/table/contract/cell-components-map.mjs +2 -4
- package/esm2022/component/table/contract/column-reorder-event.mjs +1 -1
- package/esm2022/component/table/contract/sort-event.mjs +1 -1
- package/esm2022/component/table/contract/table-column.mjs +3 -3
- package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +4 -8
- package/esm2022/component/table/default/date-cell/date-cell.component.mjs +4 -9
- package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +4 -9
- package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +5 -6
- package/esm2022/component/table/default/list-cell/list-cell.component.mjs +7 -13
- package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +4 -9
- package/esm2022/component/table/default/string-cell/string-cell.component.mjs +4 -8
- package/esm2022/component/table/enum/edit-event.enum.mjs +1 -1
- package/esm2022/component/table/enum/edit-type.enum.mjs +1 -1
- package/esm2022/component/table/enum/select-type.enum.mjs +1 -1
- package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +4 -11
- package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +3 -4
- package/esm2022/component/table/public-api.mjs +1 -1
- package/esm2022/component/table/selection-cell/selection-cell.component.mjs +4 -6
- package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +5 -7
- package/esm2022/component/table/service/table.service.mjs +35 -52
- package/esm2022/component/table/table/table.component.mjs +12 -24
- package/esm2022/component/table/table-body/table-body.component.mjs +15 -21
- package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +5 -6
- package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +4 -5
- package/esm2022/component/table/table-head/table-head.component.mjs +10 -10
- package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +12 -12
- package/esm2022/component/table/table-head-group/table-head-group.component.mjs +7 -12
- package/esm2022/component/table/table-row/table-row.component.mjs +3 -3
- package/esm2022/component/table/util/state-util.mjs +13 -25
- package/esm2022/component/table/util/table-util.mjs +15 -9
- package/esm2022/component/tabs/public-api.mjs +1 -1
- package/esm2022/component/tabs/tab-content.directive.mjs +2 -2
- package/esm2022/component/tabs/tab-title.directive.mjs +2 -2
- package/esm2022/component/theme-switch/public-api.mjs +1 -1
- package/esm2022/component/toggle/public-api.mjs +1 -1
- package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
- package/esm2022/component/toolbar/public-api.mjs +1 -1
- package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +2 -2
- package/esm2022/component/tree/public-api.mjs +1 -1
- package/esm2022/component/tree/tree/tree.component.mjs +6 -6
- package/esm2022/component/tree/tree-item/tree-item.component.mjs +9 -20
- package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +5 -6
- package/esm2022/component/tree/tree.service.mjs +1 -1
- package/esm2022/directive/auto-position/auto-position.directive.mjs +3 -3
- package/esm2022/directive/auto-position/public-api.mjs +1 -1
- package/esm2022/directive/click-outside/click-outside.directive.mjs +2 -2
- package/esm2022/directive/click-outside/public-api.mjs +1 -1
- package/esm2022/directive/context-menu/context-menu.directive.mjs +4 -8
- package/esm2022/directive/context-menu/public-api.mjs +1 -1
- package/esm2022/directive/disable-control/disable-control.directive.mjs +1 -1
- package/esm2022/directive/disable-control/public-api.mjs +1 -1
- package/esm2022/directive/drag-drop/drag-container.directive.mjs +8 -10
- package/esm2022/directive/drag-drop/drag-drop.service.mjs +14 -11
- package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +2 -2
- package/esm2022/directive/drag-drop/drag-preview.directive.mjs +2 -2
- package/esm2022/directive/drag-drop/drag.directive.mjs +4 -7
- package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drag-instance.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drag-process.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drag-selection.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drop-event.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drop-target.mjs +1 -1
- package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +2 -3
- package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +4 -10
- package/esm2022/directive/drag-sort/public-api.mjs +1 -1
- package/esm2022/directive/dynamic-content-base.directive.mjs +3 -3
- package/esm2022/directive/highlight/highlight.directive.mjs +4 -5
- package/esm2022/directive/highlight/public-api.mjs +1 -1
- package/esm2022/directive/hint/hint.directive.mjs +5 -14
- package/esm2022/directive/hint/public-api.mjs +1 -1
- package/esm2022/directive/let/let.directive.mjs +2 -2
- package/esm2022/directive/let/public-api.mjs +1 -1
- package/esm2022/directive/loader/loader.directive.mjs +3 -3
- package/esm2022/directive/loader/public-api.mjs +1 -1
- package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
- package/esm2022/directive/no-autofill/public-api.mjs +1 -1
- package/esm2022/directive/only-number/public-api.mjs +1 -1
- package/esm2022/directive/resize-drag/public-api.mjs +1 -1
- package/esm2022/directive/resize-drag/resize-drag.directive.mjs +2 -2
- package/esm2022/directive/scroll-into-view/public-api.mjs +1 -1
- package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
- package/esm2022/directive/scrollable/public-api.mjs +1 -1
- package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +6 -13
- package/esm2022/directive/scrollable/scrollable.directive.mjs +2 -2
- package/esm2022/directive/teta-template/public-api.mjs +1 -1
- package/esm2022/directive/teta-template/teta-template.directive.mjs +2 -2
- package/esm2022/directive/tooltip/public-api.mjs +1 -1
- package/esm2022/directive/tooltip/tooltip.directive.mjs +3 -4
- package/esm2022/index.mjs +1 -1
- package/esm2022/locale/en.mjs +2 -10
- package/esm2022/locale/ru.mjs +2 -10
- package/esm2022/locale/teta-config.service.mjs +2 -2
- package/esm2022/locale/teta-localisation.mjs +1 -1
- package/esm2022/observable/public-api.mjs +1 -1
- package/esm2022/observable/zone-observable.mjs +4 -4
- package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +2 -2
- package/esm2022/pipe/number-pipe/number.pipe.mjs +2 -2
- package/esm2022/pipe/number-pipe/public-api.mjs +1 -1
- package/esm2022/pipe/util/number-helper.mjs +1 -1
- package/esm2022/util/bool-or-func.mjs +1 -1
- package/esm2022/util/date-util.mjs +2 -4
- package/esm2022/util/export-dom-image.mjs +1 -1
- package/esm2022/util/forms-util.mjs +6 -17
- package/esm2022/util/string-util.mjs +1 -3
- package/fesm2022/tetacom-ng-components.mjs +438 -801
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/locale/teta-localisation.d.ts +1 -14
- package/package.json +1 -1
- package/style/assembly-library.scss +41 -41
- package/style/assembly-presets.scss +4 -4
- package/style/assembly.scss +3 -3
- package/style/border.scss +2 -2
- package/style/color.scss +2 -3
- package/style/datepicker.scss +9 -10
- package/style/divider.scss +2 -1
- package/style/drag.scss +1 -1
- package/style/dropdown.scss +4 -5
- package/style/font.scss +2 -2
- package/style/hint.scss +3 -3
- package/style/input.scss +14 -9
- package/style/layout.scss +8 -8
- package/style/list.scss +2 -2
- package/style/loader.scss +1 -1
- package/style/message.scss +3 -3
- package/style/navigation.scss +6 -6
- package/style/presets/color-presets.scss +2 -2
- package/style/presets/view-types.scss +1 -1
- package/style/progress.scss +3 -2
- package/style/radio.scss +2 -4
- package/style/reset.scss +3 -1
- package/style/resize-panel.scss +12 -6
- package/style/scroll.scss +1 -1
- package/style/select.scss +5 -4
- package/style/shadow.scss +3 -3
- package/style/sidebar.scss +2 -2
- package/style/sizing.scss +1 -1
- package/style/skeleton.scss +3 -4
- package/style/spacing.scss +1 -1
- package/style/switch.scss +2 -3
- package/style/tag.scss +8 -8
- package/style/toggle.scss +3 -6
- package/style/toolbar.scss +3 -3
- package/style/tooltip.scss +5 -4
- package/style/tree.scss +2 -2
- package/style/util/font-util.scss +1 -1
|
@@ -52,7 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
52
52
|
type: Directive,
|
|
53
53
|
args: [{
|
|
54
54
|
selector: '[tetaAccordionContent]',
|
|
55
|
-
standalone: true
|
|
55
|
+
standalone: true,
|
|
56
56
|
}]
|
|
57
57
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
58
58
|
|
|
@@ -134,8 +134,8 @@ class IconService {
|
|
|
134
134
|
addSprite(url, bypassInterceptors = true) {
|
|
135
135
|
if (IconService._loaded.indexOf(url) < 0 && IconService._pending.indexOf(url) < 0) {
|
|
136
136
|
IconService._pending.push(url);
|
|
137
|
-
this.getSVG(url, bypassInterceptors).subscribe(svg => {
|
|
138
|
-
IconService._pending = IconService._pending.filter(_ => _ !== url);
|
|
137
|
+
this.getSVG(url, bypassInterceptors).subscribe((svg) => {
|
|
138
|
+
IconService._pending = IconService._pending.filter((_) => _ !== url);
|
|
139
139
|
IconService._loaded.push(url);
|
|
140
140
|
this._renderer.insertBefore(this._document.body, svg, this._document.body.firstChild);
|
|
141
141
|
});
|
|
@@ -143,8 +143,7 @@ class IconService {
|
|
|
143
143
|
}
|
|
144
144
|
getSVG(url, bypassInterceptors = true) {
|
|
145
145
|
const http = bypassInterceptors ? new HttpClient(this._httpBackend) : this._http;
|
|
146
|
-
return http.get(url, { responseType: 'text' })
|
|
147
|
-
.pipe(map((svgText) => {
|
|
146
|
+
return http.get(url, { responseType: 'text' }).pipe(map((svgText) => {
|
|
148
147
|
const svgEl = this.svgElementFromString(svgText);
|
|
149
148
|
return this.cloneSVG(svgEl);
|
|
150
149
|
}));
|
|
@@ -167,7 +166,7 @@ class IconService {
|
|
|
167
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconService, decorators: [{
|
|
168
167
|
type: Injectable,
|
|
169
168
|
args: [{
|
|
170
|
-
providedIn: 'root'
|
|
169
|
+
providedIn: 'root',
|
|
171
170
|
}]
|
|
172
171
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
173
172
|
type: Inject,
|
|
@@ -196,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
196
195
|
type: Directive,
|
|
197
196
|
args: [{
|
|
198
197
|
selector: '[tetaIconSprite]',
|
|
199
|
-
standalone: true
|
|
198
|
+
standalone: true,
|
|
200
199
|
}]
|
|
201
200
|
}], ctorParameters: () => [{ type: IconService }], propDecorators: { tetaIconSprite: [{
|
|
202
201
|
type: Input
|
|
@@ -236,11 +235,11 @@ class IconComponent {
|
|
|
236
235
|
return `#${this.name}`;
|
|
237
236
|
}
|
|
238
237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
239
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: IconComponent, isStandalone: true, selector: "teta-icon", inputs: { name: "name", size: "size", palette: "palette", class: "class" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "<svg class=\"icon__image\" style=\"width: 100%;height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: IconComponent, isStandalone: true, selector: "teta-icon", inputs: { name: "name", size: "size", palette: "palette", class: "class" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "<svg class=\"icon__image\" style=\"width: 100%; height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
240
239
|
}
|
|
241
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconComponent, decorators: [{
|
|
242
241
|
type: Component,
|
|
243
|
-
args: [{ selector: 'teta-icon', imports: [IconSpriteDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<svg class=\"icon__image\" style=\"width: 100%;height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n" }]
|
|
242
|
+
args: [{ selector: 'teta-icon', imports: [IconSpriteDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<svg class=\"icon__image\" style=\"width: 100%; height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n" }]
|
|
244
243
|
}], propDecorators: { name: [{
|
|
245
244
|
type: Input
|
|
246
245
|
}], size: [{
|
|
@@ -351,14 +350,13 @@ class AvatarComponent {
|
|
|
351
350
|
.set(AvatarColorEnum.lime, '#80C026')
|
|
352
351
|
.set(AvatarColorEnum.greyish, '#7F8697');
|
|
353
352
|
}
|
|
354
|
-
ngOnInit() {
|
|
355
|
-
}
|
|
353
|
+
ngOnInit() { }
|
|
356
354
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
357
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AvatarComponent, isStandalone: true, selector: "teta-avatar", inputs: { photo: "photo", name: "name", id: "id", viewType: "viewType", size: "size" }, host: { properties: { "class": "this.avatar" } }, ngImport: i0, template: "<div [class]=\"avatar\">\n @if (photo) {\n
|
|
355
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AvatarComponent, isStandalone: true, selector: "teta-avatar", inputs: { photo: "photo", name: "name", id: "id", viewType: "viewType", size: "size" }, host: { properties: { "class": "this.avatar" } }, ngImport: i0, template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
358
356
|
}
|
|
359
357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
360
358
|
type: Component,
|
|
361
|
-
args: [{ selector: 'teta-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div [class]=\"avatar\">\n @if (photo) {\n
|
|
359
|
+
args: [{ selector: 'teta-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"] }]
|
|
362
360
|
}], ctorParameters: () => [], propDecorators: { photo: [{
|
|
363
361
|
type: Input
|
|
364
362
|
}], name: [{
|
|
@@ -376,8 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
376
374
|
|
|
377
375
|
class AutocompleteComponent {
|
|
378
376
|
constructor() { }
|
|
379
|
-
ngOnInit() {
|
|
380
|
-
}
|
|
377
|
+
ngOnInit() { }
|
|
381
378
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
382
379
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: AutocompleteComponent, isStandalone: true, selector: "teta-autocomplete", ngImport: i0, template: "<p>autocomplete works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
383
380
|
}
|
|
@@ -509,7 +506,7 @@ class Chart3dComponent {
|
|
|
509
506
|
}
|
|
510
507
|
ngOnInit() {
|
|
511
508
|
this._themeService.theme
|
|
512
|
-
.pipe(takeWhile(_ => this._alive), tap(_ => {
|
|
509
|
+
.pipe(takeWhile((_) => this._alive), tap((_) => {
|
|
513
510
|
this.gridColor = _ ? '#5d6a73' : '#bdbdc6';
|
|
514
511
|
this.axesColor = _ ? '#8e8f9d' : '#7d8f9a';
|
|
515
512
|
this.init();
|
|
@@ -538,7 +535,7 @@ class Chart3dComponent {
|
|
|
538
535
|
if (!data.points?.length) {
|
|
539
536
|
return;
|
|
540
537
|
}
|
|
541
|
-
const points = data.points.map(_ => new THREE.Vector3(x(_.x), y(_.y), z(_.z)));
|
|
538
|
+
const points = data.points.map((_) => new THREE.Vector3(x(_.x), y(_.y), z(_.z)));
|
|
542
539
|
const color = d3.scaleOrdinal(d3.schemeTableau10);
|
|
543
540
|
const material = new THREE.LineBasicMaterial({
|
|
544
541
|
color: data?.color ?? color(idx.toString()),
|
|
@@ -557,15 +554,13 @@ class Chart3dComponent {
|
|
|
557
554
|
const geometryLines = new THREE.BufferGeometry().setFromPoints(pointsLines);
|
|
558
555
|
const line = new THREE.Line(geometryLines, material);
|
|
559
556
|
this._scene.add(line);
|
|
560
|
-
circles.forEach(r => {
|
|
557
|
+
circles.forEach((r) => {
|
|
561
558
|
const material = new THREE.LineDashedMaterial({
|
|
562
559
|
color: this.gridColor,
|
|
563
560
|
dashSize: 1,
|
|
564
561
|
gapSize: 3,
|
|
565
562
|
});
|
|
566
|
-
const circleGeometry = new THREE.BufferGeometry().setFromPoints(new THREE.Path()
|
|
567
|
-
.absarc(0, 0, x(r), 0, Math.PI * 2, false)
|
|
568
|
-
.getSpacedPoints(100));
|
|
563
|
+
const circleGeometry = new THREE.BufferGeometry().setFromPoints(new THREE.Path().absarc(0, 0, x(r), 0, Math.PI * 2, false).getSpacedPoints(100));
|
|
569
564
|
const circle = new THREE.LineSegments(circleGeometry, material);
|
|
570
565
|
circle.geometry.rotateX(-Math.PI / 2);
|
|
571
566
|
this._scene.add(circle);
|
|
@@ -585,8 +580,7 @@ class Chart3dComponent {
|
|
|
585
580
|
}
|
|
586
581
|
createScene() {
|
|
587
582
|
this._scene = new THREE.Scene();
|
|
588
|
-
const aspectRatio = this._elementRef.nativeElement.clientWidth /
|
|
589
|
-
this._elementRef.nativeElement.clientHeight;
|
|
583
|
+
const aspectRatio = this._elementRef.nativeElement.clientWidth / this._elementRef.nativeElement.clientHeight;
|
|
590
584
|
const fieldOfView = 10;
|
|
591
585
|
const nearClippingPane = 1;
|
|
592
586
|
const farClippingPane = 10000;
|
|
@@ -617,7 +611,7 @@ class Chart3dComponent {
|
|
|
617
611
|
animate();
|
|
618
612
|
}
|
|
619
613
|
addResizeObserver() {
|
|
620
|
-
this._obs = new ResizeObserver(_ => {
|
|
614
|
+
this._obs = new ResizeObserver((_) => {
|
|
621
615
|
this.setSize(_[0]?.contentRect.width, _[0]?.contentRect.height);
|
|
622
616
|
});
|
|
623
617
|
this._obs.observe(this._elementRef.nativeElement);
|
|
@@ -683,7 +677,7 @@ class Chart3dComponent {
|
|
|
683
677
|
this._scene.add(ticks);
|
|
684
678
|
}
|
|
685
679
|
getScales(series) {
|
|
686
|
-
const extrems = series.map(_ => ({
|
|
680
|
+
const extrems = series.map((_) => ({
|
|
687
681
|
x: d3.extent(_.points, (p) => p.x),
|
|
688
682
|
y: d3.extent(_.points, (p) => p.y),
|
|
689
683
|
z: d3.extent(_.points, (p) => p.z),
|
|
@@ -696,12 +690,7 @@ class Chart3dComponent {
|
|
|
696
690
|
}, { x: [], y: [], z: [] });
|
|
697
691
|
const x = d3
|
|
698
692
|
.scaleLinear()
|
|
699
|
-
.domain([
|
|
700
|
-
0,
|
|
701
|
-
this._config?.axes?.max == null
|
|
702
|
-
? parseInt(d3.max(flattenExtrems.x))
|
|
703
|
-
: this._config.axes.max,
|
|
704
|
-
])
|
|
693
|
+
.domain([0, this._config?.axes?.max == null ? parseInt(d3.max(flattenExtrems.x)) : this._config.axes.max])
|
|
705
694
|
.range([0, this.SIDE_SIZE])
|
|
706
695
|
.nice();
|
|
707
696
|
const y = d3
|
|
@@ -710,12 +699,7 @@ class Chart3dComponent {
|
|
|
710
699
|
.range([this.SIDE_SIZE, 0]);
|
|
711
700
|
const z = d3
|
|
712
701
|
.scaleLinear()
|
|
713
|
-
.domain([
|
|
714
|
-
0,
|
|
715
|
-
this._config?.axes?.max == null
|
|
716
|
-
? parseInt(d3.max(flattenExtrems.z))
|
|
717
|
-
: this._config.axes.max,
|
|
718
|
-
])
|
|
702
|
+
.domain([0, this._config?.axes?.max == null ? parseInt(d3.max(flattenExtrems.z)) : this._config.axes.max])
|
|
719
703
|
.range([0, this.SIDE_SIZE])
|
|
720
704
|
.nice();
|
|
721
705
|
return { x, y, z };
|
|
@@ -830,11 +814,11 @@ class CheckboxComponent {
|
|
|
830
814
|
this.cdr.detectChanges();
|
|
831
815
|
}
|
|
832
816
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
833
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CheckboxComponent, isStandalone: true, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (labelPosition==='right') {\n
|
|
817
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CheckboxComponent, isStandalone: true, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (labelPosition==='right') {\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n@if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n} } @if (labelPosition==='left') { @if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
834
818
|
}
|
|
835
819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
836
820
|
type: Component,
|
|
837
|
-
args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, NgTemplateOutlet], template: "@if (labelPosition==='right') {\n
|
|
821
|
+
args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, NgTemplateOutlet], template: "@if (labelPosition==='right') {\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n@if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n} } @if (labelPosition==='left') { @if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n" }]
|
|
838
822
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
|
|
839
823
|
type: HostBinding,
|
|
840
824
|
args: ['attr.tabindex']
|
|
@@ -978,7 +962,8 @@ class BasePicker {
|
|
|
978
962
|
return new Date(date).toLocaleString(['ru'], {
|
|
979
963
|
year: 'numeric',
|
|
980
964
|
month: '2-digit',
|
|
981
|
-
day: '2-digit',
|
|
965
|
+
day: '2-digit',
|
|
966
|
+
hour12: false,
|
|
982
967
|
hour: this.showTime ? '2-digit' : undefined,
|
|
983
968
|
minute: this.showTime ? '2-digit' : undefined,
|
|
984
969
|
});
|
|
@@ -1042,15 +1027,7 @@ const enLocale = {
|
|
|
1042
1027
|
'November',
|
|
1043
1028
|
'December',
|
|
1044
1029
|
],
|
|
1045
|
-
days: [
|
|
1046
|
-
'Sunday',
|
|
1047
|
-
'Monday',
|
|
1048
|
-
'Tuesday',
|
|
1049
|
-
'Wednesday',
|
|
1050
|
-
'Thursday',
|
|
1051
|
-
'Friday',
|
|
1052
|
-
'Saturday',
|
|
1053
|
-
],
|
|
1030
|
+
days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
1054
1031
|
daysShort: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
|
|
1055
1032
|
};
|
|
1056
1033
|
|
|
@@ -1074,7 +1051,7 @@ class TetaConfigService {
|
|
|
1074
1051
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TetaConfigService, decorators: [{
|
|
1075
1052
|
type: Injectable,
|
|
1076
1053
|
args: [{
|
|
1077
|
-
providedIn: 'root'
|
|
1054
|
+
providedIn: 'root',
|
|
1078
1055
|
}]
|
|
1079
1056
|
}], ctorParameters: () => [] });
|
|
1080
1057
|
|
|
@@ -1113,37 +1090,30 @@ class BaseCalendar {
|
|
|
1113
1090
|
};
|
|
1114
1091
|
}
|
|
1115
1092
|
generateCalendar(selectedDate, year, month, minMax) {
|
|
1116
|
-
const calendarStartDay = selectedDate
|
|
1117
|
-
.set('year', year)
|
|
1118
|
-
.set('month', month)
|
|
1119
|
-
.set('date', 1)
|
|
1120
|
-
.startOf('week');
|
|
1093
|
+
const calendarStartDay = selectedDate.set('year', year).set('month', month).set('date', 1).startOf('week');
|
|
1121
1094
|
const calendar = new Array(42).fill(1).map((v, i) => {
|
|
1122
1095
|
return calendarStartDay.add(i, 'day');
|
|
1123
1096
|
});
|
|
1124
|
-
return calendar.map(d => {
|
|
1097
|
+
return calendar.map((d) => {
|
|
1125
1098
|
return new DayModel({
|
|
1126
1099
|
date: new Date(d.toDate()),
|
|
1127
1100
|
isCurrentMonth: month === d.month(),
|
|
1128
|
-
disabled: !this.isSuitableMinDate(d.toDate(), minMax.min) ||
|
|
1129
|
-
!this.isSuitableMaxDate(d.toDate(), minMax.max),
|
|
1101
|
+
disabled: !this.isSuitableMinDate(d.toDate(), minMax.min) || !this.isSuitableMaxDate(d.toDate(), minMax.max),
|
|
1130
1102
|
selected: this.isSelected(d.toDate(), selectedDate.toDate()),
|
|
1131
1103
|
});
|
|
1132
1104
|
});
|
|
1133
1105
|
}
|
|
1134
1106
|
isSuitableMinDate(d, minDate) {
|
|
1135
|
-
return
|
|
1136
|
-
!minDate);
|
|
1107
|
+
return dayjs(new Date(minDate)).startOf('date').toDate() <= new Date(d) || !minDate;
|
|
1137
1108
|
}
|
|
1138
1109
|
isSuitableMaxDate(d, maxDate) {
|
|
1139
|
-
return
|
|
1140
|
-
!maxDate);
|
|
1110
|
+
return new Date(d) < dayjs(new Date(maxDate)).endOf('date').toDate() || !maxDate;
|
|
1141
1111
|
}
|
|
1142
1112
|
isSelected(date, selectedDate) {
|
|
1143
1113
|
const isSelectedDate = date.getDate() === selectedDate?.getDate();
|
|
1144
1114
|
const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear();
|
|
1145
1115
|
const isSelectedMonth = date.getMonth() === selectedDate?.getMonth();
|
|
1146
|
-
return
|
|
1116
|
+
return isSelectedDate && isSelectedMonth && isSelectedYear && !this.isDateNull;
|
|
1147
1117
|
}
|
|
1148
1118
|
ngOnDestroy() {
|
|
1149
1119
|
this.alive = false;
|
|
@@ -1223,7 +1193,7 @@ class ScrollToSelectedYearDirective {
|
|
|
1223
1193
|
this.alive = false;
|
|
1224
1194
|
}
|
|
1225
1195
|
ngAfterViewInit() {
|
|
1226
|
-
this.el.nativeElement.scrollIntoView({ inline:
|
|
1196
|
+
this.el.nativeElement.scrollIntoView({ inline: 'center', block: 'center' });
|
|
1227
1197
|
}
|
|
1228
1198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollToSelectedYearDirective, deps: [{ token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1229
1199
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: ScrollToSelectedYearDirective, isStandalone: true, selector: "[tetaScrollToSelectedYear]", ngImport: i0 }); }
|
|
@@ -1232,7 +1202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
1232
1202
|
type: Directive,
|
|
1233
1203
|
args: [{
|
|
1234
1204
|
selector: '[tetaScrollToSelectedYear]',
|
|
1235
|
-
standalone: true
|
|
1205
|
+
standalone: true,
|
|
1236
1206
|
}]
|
|
1237
1207
|
}], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
|
|
1238
1208
|
type: Inject,
|
|
@@ -1256,18 +1226,20 @@ class YearPickerComponent {
|
|
|
1256
1226
|
}
|
|
1257
1227
|
isDisabled(year) {
|
|
1258
1228
|
if (this.minMax) {
|
|
1259
|
-
const isSuitableMax = dayjs(new Date().setFullYear(year)).startOf('year').isAfter(new Date(this.minMax.max)) &&
|
|
1260
|
-
|
|
1229
|
+
const isSuitableMax = dayjs(new Date().setFullYear(year)).startOf('year').isAfter(new Date(this.minMax.max)) &&
|
|
1230
|
+
this.minMax.max !== null;
|
|
1231
|
+
const isSuitableMin = dayjs(new Date().setFullYear(year)).endOf('year').isBefore(new Date(this.minMax.min)) &&
|
|
1232
|
+
this.minMax.min !== null;
|
|
1261
1233
|
return isSuitableMax || isSuitableMin;
|
|
1262
1234
|
}
|
|
1263
1235
|
return false;
|
|
1264
1236
|
}
|
|
1265
1237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1266
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{locale.selectYear}}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n
|
|
1238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n } @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollToSelectedYearDirective, selector: "[tetaScrollToSelectedYear]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1267
1239
|
}
|
|
1268
1240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, decorators: [{
|
|
1269
1241
|
type: Component,
|
|
1270
|
-
args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{locale.selectYear}}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n
|
|
1242
|
+
args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n } @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n" }]
|
|
1271
1243
|
}], ctorParameters: () => [], propDecorators: { selectedYear: [{
|
|
1272
1244
|
type: Input
|
|
1273
1245
|
}], viewType: [{
|
|
@@ -1298,16 +1270,16 @@ class MonthPickerComponent {
|
|
|
1298
1270
|
return {
|
|
1299
1271
|
id: i,
|
|
1300
1272
|
name: m,
|
|
1301
|
-
isSelected: this.selectedMonth === i
|
|
1273
|
+
isSelected: this.selectedMonth === i,
|
|
1302
1274
|
};
|
|
1303
1275
|
});
|
|
1304
1276
|
}
|
|
1305
1277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button
|
|
1278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1307
1279
|
}
|
|
1308
1280
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
|
|
1309
1281
|
type: Component,
|
|
1310
|
-
args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button
|
|
1282
|
+
args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
|
|
1311
1283
|
}], ctorParameters: () => [], propDecorators: { selectedMonth: [{
|
|
1312
1284
|
type: Input
|
|
1313
1285
|
}], viewType: [{
|
|
@@ -1323,14 +1295,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
1323
1295
|
}] } });
|
|
1324
1296
|
|
|
1325
1297
|
class DayItemComponent {
|
|
1326
|
-
ngOnInit() {
|
|
1327
|
-
}
|
|
1298
|
+
ngOnInit() { }
|
|
1328
1299
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1329
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: DayItemComponent, isStandalone: true, selector: "teta-day-item", inputs: { day: "day" }, ngImport: i0, template: "<p>{{day.date.getDate()}}</p>\n
|
|
1300
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: DayItemComponent, isStandalone: true, selector: "teta-day-item", inputs: { day: "day" }, ngImport: i0, template: "<p>{{ day.date.getDate() }}</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1330
1301
|
}
|
|
1331
1302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayItemComponent, decorators: [{
|
|
1332
1303
|
type: Component,
|
|
1333
|
-
args: [{ selector: 'teta-day-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>{{day.date.getDate()}}</p>\n
|
|
1304
|
+
args: [{ selector: 'teta-day-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>{{ day.date.getDate() }}</p>\n" }]
|
|
1334
1305
|
}], propDecorators: { day: [{
|
|
1335
1306
|
type: Input
|
|
1336
1307
|
}] } });
|
|
@@ -1348,7 +1319,7 @@ class DayPickerComponent {
|
|
|
1348
1319
|
}
|
|
1349
1320
|
isHoveredRange(day) {
|
|
1350
1321
|
if (!this.range?.to && this.range?.from) {
|
|
1351
|
-
return this.isInRange(day, this.range.from, this.hoveredDate) || this.isInRange(day, this.hoveredDate, this.range.from);
|
|
1322
|
+
return (this.isInRange(day, this.range.from, this.hoveredDate) || this.isInRange(day, this.hoveredDate, this.range.from));
|
|
1352
1323
|
}
|
|
1353
1324
|
return false;
|
|
1354
1325
|
}
|
|
@@ -1386,9 +1357,9 @@ class DayPickerComponent {
|
|
|
1386
1357
|
}
|
|
1387
1358
|
}
|
|
1388
1359
|
getClassStaticItem(d) {
|
|
1389
|
-
const from = dayjs(new Date(this.range.from)).startOf(
|
|
1390
|
-
const to = dayjs(new Date(this.range.to)).startOf(
|
|
1391
|
-
const itemDate = dayjs(new Date(d.date)).startOf(
|
|
1360
|
+
const from = dayjs(new Date(this.range.from)).startOf('day').toDate();
|
|
1361
|
+
const to = dayjs(new Date(this.range.to)).startOf('day').toDate();
|
|
1362
|
+
const itemDate = dayjs(new Date(d.date)).startOf('day').toDate();
|
|
1392
1363
|
if (from.getTime() === itemDate.getTime()) {
|
|
1393
1364
|
return 'datepicker-date_active-first';
|
|
1394
1365
|
}
|
|
@@ -1421,11 +1392,11 @@ class DayPickerComponent {
|
|
|
1421
1392
|
this.dayOrder = arr;
|
|
1422
1393
|
}
|
|
1423
1394
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1424
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n
|
|
1395
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1425
1396
|
}
|
|
1426
1397
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, decorators: [{
|
|
1427
1398
|
type: Component,
|
|
1428
|
-
args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n
|
|
1399
|
+
args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
|
|
1429
1400
|
}], ctorParameters: () => [], propDecorators: { date: [{
|
|
1430
1401
|
type: Input
|
|
1431
1402
|
}], calendar: [{
|
|
@@ -1459,23 +1430,16 @@ class DateCalendarComponent extends BaseCalendar {
|
|
|
1459
1430
|
.pipe(takeWhile$1(() => this.alive), filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null), map$1(([year, month, minMax]) => {
|
|
1460
1431
|
return this.generateCalendar(dayjs(new Date(this.selectedDate)).locale('ru', { weekStart: 1 }), year, month, minMax);
|
|
1461
1432
|
}))
|
|
1462
|
-
.subscribe(_ => {
|
|
1433
|
+
.subscribe((_) => {
|
|
1463
1434
|
this.calendar = _;
|
|
1464
1435
|
});
|
|
1465
1436
|
}
|
|
1466
1437
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1467
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCalendarComponent, isStandalone: true, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", open: "open", locale: "locale", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n
|
|
1438
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCalendarComponent, isStandalone: true, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", open: "open", locale: "locale", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1468
1439
|
}
|
|
1469
1440
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCalendarComponent, decorators: [{
|
|
1470
1441
|
type: Component,
|
|
1471
|
-
args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1472
|
-
ButtonComponent,
|
|
1473
|
-
IconComponent,
|
|
1474
|
-
DayPickerComponent,
|
|
1475
|
-
MonthPickerComponent,
|
|
1476
|
-
YearPickerComponent,
|
|
1477
|
-
AsyncPipe,
|
|
1478
|
-
], template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n <div\n class=\"datepicker-content overflow-y-auto\"\n >\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event,data.currentMonth,data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 \">\n <button [class]=\"'datepicker_'+viewType \" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('month')\"> {{getMothName(data.currentMonth)}}</button>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [viewType]=\"viewType\" (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar\"></teta-day-picker>\n </div>\n </div>\n }\n @if (data.selectedPicker==='month') {\n <teta-month-picker [localeMoths]=\"locale.months\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n }\n @if (data.selectedPicker==='year') {\n <teta-year-picker [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n }\n </div>\n}\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
|
|
1442
|
+
args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent, AsyncPipe], template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
|
|
1479
1443
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { selectedDate: [{
|
|
1480
1444
|
type: Input
|
|
1481
1445
|
}], open: [{
|
|
@@ -1506,7 +1470,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
1506
1470
|
type: Directive,
|
|
1507
1471
|
args: [{
|
|
1508
1472
|
selector: '[tetaDropdownContent]',
|
|
1509
|
-
standalone: true
|
|
1473
|
+
standalone: true,
|
|
1510
1474
|
}]
|
|
1511
1475
|
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
1512
1476
|
|
|
@@ -1629,7 +1593,7 @@ class ArrayUtil {
|
|
|
1629
1593
|
}
|
|
1630
1594
|
static flatten(data, children, onlyLeafs) {
|
|
1631
1595
|
const result = [];
|
|
1632
|
-
data.forEach(child => {
|
|
1596
|
+
data.forEach((child) => {
|
|
1633
1597
|
let childItems = [];
|
|
1634
1598
|
if (children) {
|
|
1635
1599
|
if (typeof children === 'string') {
|
|
@@ -1642,9 +1606,7 @@ class ArrayUtil {
|
|
|
1642
1606
|
else {
|
|
1643
1607
|
childItems = child.children;
|
|
1644
1608
|
}
|
|
1645
|
-
if (childItems !== null &&
|
|
1646
|
-
childItems !== undefined &&
|
|
1647
|
-
childItems.length > 0) {
|
|
1609
|
+
if (childItems !== null && childItems !== undefined && childItems.length > 0) {
|
|
1648
1610
|
if (!onlyLeafs) {
|
|
1649
1611
|
result.push(child);
|
|
1650
1612
|
}
|
|
@@ -1657,7 +1619,7 @@ class ArrayUtil {
|
|
|
1657
1619
|
return result;
|
|
1658
1620
|
}
|
|
1659
1621
|
static findRecursive(tree, comparer, children = 'children') {
|
|
1660
|
-
const found = tree.find(x => comparer(x));
|
|
1622
|
+
const found = tree.find((x) => comparer(x));
|
|
1661
1623
|
if (found !== null && found !== undefined) {
|
|
1662
1624
|
return found;
|
|
1663
1625
|
}
|
|
@@ -1703,7 +1665,7 @@ class ArrayUtil {
|
|
|
1703
1665
|
const result = [];
|
|
1704
1666
|
if (array && array.length) {
|
|
1705
1667
|
for (const item of array) {
|
|
1706
|
-
const found = result.find(_ => comparator(_) === comparator(item));
|
|
1668
|
+
const found = result.find((_) => comparator(_) === comparator(item));
|
|
1707
1669
|
if (!found) {
|
|
1708
1670
|
result.push(item);
|
|
1709
1671
|
}
|
|
@@ -1755,8 +1717,7 @@ class DomUtil {
|
|
|
1755
1717
|
return null;
|
|
1756
1718
|
}
|
|
1757
1719
|
static isOverflown(element) {
|
|
1758
|
-
return
|
|
1759
|
-
element.scrollWidth > element.clientWidth);
|
|
1720
|
+
return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
|
|
1760
1721
|
}
|
|
1761
1722
|
}
|
|
1762
1723
|
|
|
@@ -1785,9 +1746,7 @@ class PositionUtil {
|
|
|
1785
1746
|
rect.left = containerPosition.right - elementWidth - margin;
|
|
1786
1747
|
}
|
|
1787
1748
|
if (align === Align.center) {
|
|
1788
|
-
rect.left =
|
|
1789
|
-
(containerPosition.left + containerPosition.right) / 2 -
|
|
1790
|
-
elementWidth / 2;
|
|
1749
|
+
rect.left = (containerPosition.left + containerPosition.right) / 2 - elementWidth / 2;
|
|
1791
1750
|
}
|
|
1792
1751
|
if (align === Align.outerAuto) {
|
|
1793
1752
|
align = Align.outerRight;
|
|
@@ -1840,9 +1799,7 @@ class PositionUtil {
|
|
|
1840
1799
|
rect.top = containerPosition.top + verticalMargin;
|
|
1841
1800
|
}
|
|
1842
1801
|
if (verticalAlign === VerticalAlign.center) {
|
|
1843
|
-
rect.top =
|
|
1844
|
-
(containerPosition.top + containerPosition.bottom) / 2 -
|
|
1845
|
-
elementHeight / 2;
|
|
1802
|
+
rect.top = (containerPosition.top + containerPosition.bottom) / 2 - elementHeight / 2;
|
|
1846
1803
|
}
|
|
1847
1804
|
if (rect.left + elementWidth > window.innerWidth) {
|
|
1848
1805
|
rect.left = window.innerWidth - elementWidth;
|
|
@@ -1861,8 +1818,7 @@ class PositionUtil {
|
|
|
1861
1818
|
verticalAlign === VerticalAlign.innerBottom) {
|
|
1862
1819
|
rect.maxHeight = window.innerHeight - rect.top;
|
|
1863
1820
|
}
|
|
1864
|
-
if (verticalAlign === VerticalAlign.top ||
|
|
1865
|
-
verticalAlign === VerticalAlign.innerTop) {
|
|
1821
|
+
if (verticalAlign === VerticalAlign.top || verticalAlign === VerticalAlign.innerTop) {
|
|
1866
1822
|
rect.maxHeight = containerPosition.top;
|
|
1867
1823
|
}
|
|
1868
1824
|
if (!isNaN(rect.left)) {
|
|
@@ -1875,9 +1831,7 @@ class PositionUtil {
|
|
|
1875
1831
|
rect.top = rect.top - transformedParentRect.top;
|
|
1876
1832
|
}
|
|
1877
1833
|
if (!isNaN(rect.bottom)) {
|
|
1878
|
-
rect.bottom = rect.bottom
|
|
1879
|
-
? rect.bottom - transformedParentRect.bottom
|
|
1880
|
-
: rect.bottom;
|
|
1834
|
+
rect.bottom = rect.bottom ? rect.bottom - transformedParentRect.bottom : rect.bottom;
|
|
1881
1835
|
}
|
|
1882
1836
|
return rect;
|
|
1883
1837
|
}
|
|
@@ -1886,8 +1840,7 @@ class PositionUtil {
|
|
|
1886
1840
|
element.style.right = rect.right != null ? `${rect.right}px` : '';
|
|
1887
1841
|
element.style.top = rect.top != null ? `${rect.top}px` : '';
|
|
1888
1842
|
element.style.bottom = rect.bottom != null ? `${rect.bottom}px` : '';
|
|
1889
|
-
element.style.maxHeight =
|
|
1890
|
-
rect.maxHeight != null ? `${rect.maxHeight}px` : '';
|
|
1843
|
+
element.style.maxHeight = rect.maxHeight != null ? `${rect.maxHeight}px` : '';
|
|
1891
1844
|
element.style.minWidth = rect.minWidth != null ? `${rect.minWidth}px` : '';
|
|
1892
1845
|
}
|
|
1893
1846
|
static getMaxHeight(position) {
|
|
@@ -1928,10 +1881,7 @@ class PopupContentComponent {
|
|
|
1928
1881
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PopupContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1929
1882
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: PopupContentComponent, isStandalone: true, selector: "teta-popup-content", inputs: { className: "className" }, host: { properties: { "@dialog": "this.dialog", "class": "this.getClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], animations: [
|
|
1930
1883
|
trigger('dialog', [
|
|
1931
|
-
transition('void => *', [
|
|
1932
|
-
style({ opacity: '0' }),
|
|
1933
|
-
animate(200, style({ opacity: '1' })),
|
|
1934
|
-
]),
|
|
1884
|
+
transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
|
|
1935
1885
|
transition('* => void', [animate(200, style({ opacity: '0' }))]),
|
|
1936
1886
|
]),
|
|
1937
1887
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -1940,10 +1890,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
1940
1890
|
type: Component,
|
|
1941
1891
|
args: [{ selector: 'teta-popup-content', animations: [
|
|
1942
1892
|
trigger('dialog', [
|
|
1943
|
-
transition('void => *', [
|
|
1944
|
-
style({ opacity: '0' }),
|
|
1945
|
-
animate(200, style({ opacity: '1' })),
|
|
1946
|
-
]),
|
|
1893
|
+
transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
|
|
1947
1894
|
transition('* => void', [animate(200, style({ opacity: '0' }))]),
|
|
1948
1895
|
]),
|
|
1949
1896
|
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content>\n" }]
|
|
@@ -1981,8 +1928,8 @@ class DynamicContentBaseDirective {
|
|
|
1981
1928
|
this._alive = true;
|
|
1982
1929
|
this._open = false;
|
|
1983
1930
|
this._zone.onStable
|
|
1984
|
-
.pipe(takeWhile(_ => this._alive), filter$1(_ => this._open))
|
|
1985
|
-
.subscribe(_ => {
|
|
1931
|
+
.pipe(takeWhile((_) => this._alive), filter$1((_) => this._open))
|
|
1932
|
+
.subscribe((_) => {
|
|
1986
1933
|
this.setPosition();
|
|
1987
1934
|
});
|
|
1988
1935
|
}
|
|
@@ -2062,34 +2009,25 @@ class HintDirective extends DynamicContentBaseDirective {
|
|
|
2062
2009
|
}
|
|
2063
2010
|
}
|
|
2064
2011
|
click(event) {
|
|
2065
|
-
if (this._open &&
|
|
2066
|
-
this._componentRef &&
|
|
2067
|
-
DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
|
|
2012
|
+
if (this._open && this._componentRef && DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
|
|
2068
2013
|
event.stopPropagation();
|
|
2069
2014
|
}
|
|
2070
2015
|
}
|
|
2071
2016
|
setPosition() {
|
|
2072
2017
|
if (this._componentRef && this._open) {
|
|
2073
2018
|
if (!this._componentRect) {
|
|
2074
|
-
this._componentRect =
|
|
2075
|
-
this._componentRef.location.nativeElement.getBoundingClientRect();
|
|
2019
|
+
this._componentRect = this._componentRef.location.nativeElement.getBoundingClientRect();
|
|
2076
2020
|
}
|
|
2077
2021
|
const position = PositionUtil.getPosition(this._elementRef.nativeElement.getBoundingClientRect(), this._componentRect, this.align, this.verticalAlign, 0, 4);
|
|
2078
2022
|
PositionUtil.setElementPosition(this._componentRef.location.nativeElement, position);
|
|
2079
2023
|
}
|
|
2080
2024
|
}
|
|
2081
2025
|
createHint() {
|
|
2082
|
-
if (!this._dynamicContent ||
|
|
2083
|
-
(this.overflownOnly &&
|
|
2084
|
-
!DomUtil.isOverflown(this._elementRef.nativeElement))) {
|
|
2026
|
+
if (!this._dynamicContent || (this.overflownOnly && !DomUtil.isOverflown(this._elementRef.nativeElement))) {
|
|
2085
2027
|
return;
|
|
2086
2028
|
}
|
|
2087
2029
|
this._componentRef = this.createContentRef();
|
|
2088
|
-
this._componentRef.instance.className = [
|
|
2089
|
-
...ArrayUtil.asArray(this.className),
|
|
2090
|
-
'hint ',
|
|
2091
|
-
'hint_' + this.viewType,
|
|
2092
|
-
];
|
|
2030
|
+
this._componentRef.instance.className = [...ArrayUtil.asArray(this.className), 'hint ', 'hint_' + this.viewType];
|
|
2093
2031
|
}
|
|
2094
2032
|
ngOnDestroy() {
|
|
2095
2033
|
super.ngOnDestroy();
|
|
@@ -2140,11 +2078,11 @@ class InputComponent {
|
|
|
2140
2078
|
return !this.horizontal;
|
|
2141
2079
|
}
|
|
2142
2080
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: InputComponent, isStandalone: true, selector: "teta-input", inputs: { label: "label", hint: "hint", viewType: "viewType", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "@if (label?.length > 0) {\n
|
|
2081
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: InputComponent, isStandalone: true, selector: "teta-input", inputs: { label: "label", hint: "hint", viewType: "viewType", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "@if (label?.length > 0) {\n<div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n>\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n</div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2144
2082
|
}
|
|
2145
2083
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: InputComponent, decorators: [{
|
|
2146
2084
|
type: Component,
|
|
2147
|
-
args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "@if (label?.length > 0) {\n
|
|
2085
|
+
args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "@if (label?.length > 0) {\n<div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n>\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n</div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
|
|
2148
2086
|
}], propDecorators: { label: [{
|
|
2149
2087
|
type: Input
|
|
2150
2088
|
}], hint: [{
|
|
@@ -2174,7 +2112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
2174
2112
|
type: Directive,
|
|
2175
2113
|
args: [{
|
|
2176
2114
|
selector: '[tetaDropdownHead]',
|
|
2177
|
-
standalone: true
|
|
2115
|
+
standalone: true,
|
|
2178
2116
|
}]
|
|
2179
2117
|
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
2180
2118
|
type: Optional
|
|
@@ -2195,9 +2133,7 @@ class DropdownBase {
|
|
|
2195
2133
|
return this._open;
|
|
2196
2134
|
}
|
|
2197
2135
|
get container() {
|
|
2198
|
-
return this.appendToBody
|
|
2199
|
-
? this._document.body
|
|
2200
|
-
: this._elementRef.nativeElement;
|
|
2136
|
+
return this.appendToBody ? this._document.body : this._elementRef.nativeElement;
|
|
2201
2137
|
}
|
|
2202
2138
|
constructor(_cdr, _document, _elementRef, _zone, _renderer) {
|
|
2203
2139
|
this._cdr = _cdr;
|
|
@@ -2216,16 +2152,14 @@ class DropdownBase {
|
|
|
2216
2152
|
this._backdrop = null;
|
|
2217
2153
|
this._open = false;
|
|
2218
2154
|
this._alive = true;
|
|
2219
|
-
this.scrollListener = event => {
|
|
2220
|
-
if (this.open &&
|
|
2221
|
-
!this._body.contains(event.target) &&
|
|
2222
|
-
this._body !== event.target) {
|
|
2155
|
+
this.scrollListener = (event) => {
|
|
2156
|
+
if (this.open && !this._body.contains(event.target) && this._body !== event.target) {
|
|
2223
2157
|
this.closeDropdown();
|
|
2224
2158
|
}
|
|
2225
2159
|
};
|
|
2226
2160
|
this._zone.onStable
|
|
2227
|
-
.pipe(takeWhile(_ => this._alive), throttleTime(10, undefined, { trailing: true }))
|
|
2228
|
-
.subscribe(_ => {
|
|
2161
|
+
.pipe(takeWhile((_) => this._alive), throttleTime(10, undefined, { trailing: true }))
|
|
2162
|
+
.subscribe((_) => {
|
|
2229
2163
|
if (this._head?.nativeElement && this._body) {
|
|
2230
2164
|
setTimeout(() => {
|
|
2231
2165
|
if (this._head?.nativeElement && this._body) {
|
|
@@ -2238,8 +2172,7 @@ class DropdownBase {
|
|
|
2238
2172
|
}
|
|
2239
2173
|
click(event) {
|
|
2240
2174
|
if (this.open) {
|
|
2241
|
-
if (!DomUtil.clickedInside(this._body, event) ||
|
|
2242
|
-
this.autoCloseIgnore.indexOf('inside') < 0) {
|
|
2175
|
+
if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {
|
|
2243
2176
|
this.closeDropdown();
|
|
2244
2177
|
}
|
|
2245
2178
|
}
|
|
@@ -2250,10 +2183,7 @@ class DropdownBase {
|
|
|
2250
2183
|
}
|
|
2251
2184
|
}
|
|
2252
2185
|
documentClick(event) {
|
|
2253
|
-
if (!this.open ||
|
|
2254
|
-
!this.autoClose ||
|
|
2255
|
-
event.detail === 0 ||
|
|
2256
|
-
DomUtil.clickedInside(this._head.nativeElement, event)) {
|
|
2186
|
+
if (!this.open || !this.autoClose || event.detail === 0 || DomUtil.clickedInside(this._head.nativeElement, event)) {
|
|
2257
2187
|
return;
|
|
2258
2188
|
}
|
|
2259
2189
|
if (DomUtil.clickedInside(this._body, event)) {
|
|
@@ -2269,9 +2199,7 @@ class DropdownBase {
|
|
|
2269
2199
|
}
|
|
2270
2200
|
keyUp(event) {
|
|
2271
2201
|
const key = ['esc', 'enter'];
|
|
2272
|
-
if (!this.open ||
|
|
2273
|
-
!this.autoClose ||
|
|
2274
|
-
key.every((_) => this.autoCloseIgnore.indexOf(_) >= 0)) {
|
|
2202
|
+
if (!this.open || !this.autoClose || key.every((_) => this.autoCloseIgnore.indexOf(_) >= 0)) {
|
|
2275
2203
|
return;
|
|
2276
2204
|
}
|
|
2277
2205
|
if ((event.code === 'Escape' && this.autoCloseIgnore.indexOf('esc') < 0) ||
|
|
@@ -2305,8 +2233,7 @@ class DropdownBase {
|
|
|
2305
2233
|
this.openChange.emit(this.open);
|
|
2306
2234
|
const renderer = this._renderer;
|
|
2307
2235
|
const content = this._content.nativeElement;
|
|
2308
|
-
const container = (this._body =
|
|
2309
|
-
this._body || renderer.createElement('div'));
|
|
2236
|
+
const container = (this._body = this._body || renderer.createElement('div'));
|
|
2310
2237
|
renderer.addClass(container, 'dropdown');
|
|
2311
2238
|
renderer.addClass(container, 'dropdown_' + this.viewType);
|
|
2312
2239
|
if (this.backdrop) {
|
|
@@ -2316,7 +2243,7 @@ class DropdownBase {
|
|
|
2316
2243
|
}
|
|
2317
2244
|
if (this.className != null) {
|
|
2318
2245
|
if (this.className instanceof Array && this.className.length > 0) {
|
|
2319
|
-
this.className.forEach(_ => {
|
|
2246
|
+
this.className.forEach((_) => {
|
|
2320
2247
|
renderer.addClass(container, _);
|
|
2321
2248
|
});
|
|
2322
2249
|
}
|
|
@@ -2415,8 +2342,7 @@ class DropdownComponent extends DropdownBase {
|
|
|
2415
2342
|
this._zone = _zone;
|
|
2416
2343
|
this._renderer = _renderer;
|
|
2417
2344
|
}
|
|
2418
|
-
ngOnInit() {
|
|
2419
|
-
}
|
|
2345
|
+
ngOnInit() { }
|
|
2420
2346
|
ngOnDestroy() {
|
|
2421
2347
|
this.closeDropdown();
|
|
2422
2348
|
this.removeScrollListener();
|
|
@@ -2543,8 +2469,7 @@ class DatePickerComponent extends BasePicker {
|
|
|
2543
2469
|
this.selectedDate.next(date);
|
|
2544
2470
|
}
|
|
2545
2471
|
}
|
|
2546
|
-
onChange(date) {
|
|
2547
|
-
}
|
|
2472
|
+
onChange(date) { }
|
|
2548
2473
|
registerOnChange(fn) {
|
|
2549
2474
|
this.onChange = fn;
|
|
2550
2475
|
}
|
|
@@ -2569,7 +2494,7 @@ class DatePickerComponent extends BasePicker {
|
|
|
2569
2494
|
this.prepareInput(false);
|
|
2570
2495
|
}
|
|
2571
2496
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.DatePipe }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2572
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DatePickerComponent, isStandalone: true, selector: "teta-date-picker", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minYearDate: "minYearDate", maxYearDate: "maxYearDate" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.datepicker": "this.classDatepicker", "class.datepicker-time": "this.dateTimeClass", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({
|
|
2497
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DatePickerComponent, isStandalone: true, selector: "teta-date-picker", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minYearDate: "minYearDate", maxYearDate: "maxYearDate" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.datepicker": "this.classDatepicker", "class.datepicker-time": "this.dateTimeClass", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({ selectedDate:selectedDate | async }; as data) {\n<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n</teta-dropdown>\n}\n", styles: [""], 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: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: DateCalendarComponent, selector: "teta-date-calendar", inputs: ["selectedDate", "open", "locale", "viewType", "min", "isDateNull", "max"], outputs: ["setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2573
2498
|
}
|
|
2574
2499
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
2575
2500
|
type: Component,
|
|
@@ -2584,7 +2509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
2584
2509
|
DropdownContentDirective,
|
|
2585
2510
|
DateCalendarComponent,
|
|
2586
2511
|
AsyncPipe,
|
|
2587
|
-
], template: "@if ({
|
|
2512
|
+
], template: "@if ({ selectedDate:selectedDate | async }; as data) {\n<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n</teta-dropdown>\n}\n" }]
|
|
2588
2513
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.DatePipe }, { type: TetaConfigService }], propDecorators: { date: [{
|
|
2589
2514
|
type: Input
|
|
2590
2515
|
}], showTime: [{
|
|
@@ -2660,7 +2585,7 @@ class RangeCalendarComponent extends BaseCalendar {
|
|
|
2660
2585
|
nextMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale('ru', { weekStart: 1 }), availableYear, availableMonth, minMax),
|
|
2661
2586
|
};
|
|
2662
2587
|
}))
|
|
2663
|
-
.subscribe(_ => {
|
|
2588
|
+
.subscribe((_) => {
|
|
2664
2589
|
this.calendar = _;
|
|
2665
2590
|
});
|
|
2666
2591
|
}
|
|
@@ -2707,7 +2632,7 @@ class RangeCalendarComponent extends BaseCalendar {
|
|
|
2707
2632
|
}
|
|
2708
2633
|
}
|
|
2709
2634
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2710
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if
|
|
2635
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2711
2636
|
}
|
|
2712
2637
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, decorators: [{
|
|
2713
2638
|
type: Component,
|
|
@@ -2719,7 +2644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
2719
2644
|
MonthPickerComponent,
|
|
2720
2645
|
YearPickerComponent,
|
|
2721
2646
|
AsyncPipe,
|
|
2722
|
-
], template: "@if
|
|
2647
|
+
], template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
|
|
2723
2648
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { locale: [{
|
|
2724
2649
|
type: Input
|
|
2725
2650
|
}], open: [{
|
|
@@ -2790,21 +2715,13 @@ class DateRangeComponent extends BasePicker {
|
|
|
2790
2715
|
if (this.allowNull) {
|
|
2791
2716
|
return null;
|
|
2792
2717
|
}
|
|
2793
|
-
return (this.datePipe.transform(new Date(), 'dd.MM.yyyy') +
|
|
2794
|
-
' - ' +
|
|
2795
|
-
this.datePipe.transform(new Date(), 'dd.MM.yyyy'));
|
|
2718
|
+
return (this.datePipe.transform(new Date(), 'dd.MM.yyyy') + ' - ' + this.datePipe.transform(new Date(), 'dd.MM.yyyy'));
|
|
2796
2719
|
}
|
|
2797
2720
|
async prepareInput() {
|
|
2798
2721
|
const config = await lastValueFrom(this.localeService.locale.pipe(take(1)));
|
|
2799
|
-
let str = this.getLocaleString(this.date.from) +
|
|
2800
|
-
' - ' +
|
|
2801
|
-
this.getLocaleString(this.date.to);
|
|
2722
|
+
let str = this.getLocaleString(this.date.from) + ' - ' + this.getLocaleString(this.date.to);
|
|
2802
2723
|
if (!this.date?.from) {
|
|
2803
|
-
str = this.allowNull
|
|
2804
|
-
? ''
|
|
2805
|
-
: this.getLocaleString(new Date()) +
|
|
2806
|
-
' - ' +
|
|
2807
|
-
this.getLocaleString(new Date());
|
|
2724
|
+
str = this.allowNull ? '' : this.getLocaleString(new Date()) + ' - ' + this.getLocaleString(new Date());
|
|
2808
2725
|
}
|
|
2809
2726
|
const option = {
|
|
2810
2727
|
mode: 'dd/mm/yyyy',
|
|
@@ -2913,7 +2830,7 @@ class DateRangeComponent extends BasePicker {
|
|
|
2913
2830
|
}
|
|
2914
2831
|
onChange(date) { }
|
|
2915
2832
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$1.DatePipe }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2916
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({selectedDate:selectedDate|async};as data) {\n
|
|
2833
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n", styles: [""], 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: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2917
2834
|
}
|
|
2918
2835
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
2919
2836
|
type: Component,
|
|
@@ -2928,7 +2845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
2928
2845
|
DropdownContentDirective,
|
|
2929
2846
|
RangeCalendarComponent,
|
|
2930
2847
|
AsyncPipe,
|
|
2931
|
-
], template: "@if ({selectedDate:selectedDate|async};as data) {\n
|
|
2848
|
+
], template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n" }]
|
|
2932
2849
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$1.DatePipe }, { type: TetaConfigService }], propDecorators: { date: [{
|
|
2933
2850
|
type: Input
|
|
2934
2851
|
}], showTime: [{
|
|
@@ -3047,8 +2964,7 @@ class DropdownDirective extends DropdownBase {
|
|
|
3047
2964
|
this._zone = _zone;
|
|
3048
2965
|
this._renderer = _renderer;
|
|
3049
2966
|
}
|
|
3050
|
-
ngOnInit() {
|
|
3051
|
-
}
|
|
2967
|
+
ngOnInit() { }
|
|
3052
2968
|
ngOnDestroy() {
|
|
3053
2969
|
this.closeDropdown();
|
|
3054
2970
|
this.removeScrollListener();
|
|
@@ -3066,7 +2982,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
3066
2982
|
type: Directive,
|
|
3067
2983
|
args: [{
|
|
3068
2984
|
selector: '[tetaDropdown]',
|
|
3069
|
-
standalone: true
|
|
2985
|
+
standalone: true,
|
|
3070
2986
|
}]
|
|
3071
2987
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
3072
2988
|
type: Inject,
|
|
@@ -3104,18 +3020,17 @@ class ExpandCardComponent {
|
|
|
3104
3020
|
this.showCross = true;
|
|
3105
3021
|
this.crossClick = new EventEmitter();
|
|
3106
3022
|
}
|
|
3107
|
-
ngOnInit() {
|
|
3108
|
-
}
|
|
3023
|
+
ngOnInit() { }
|
|
3109
3024
|
setOpen() {
|
|
3110
3025
|
this.open = !this.open;
|
|
3111
3026
|
this.openChange.emit(this.open);
|
|
3112
3027
|
}
|
|
3113
3028
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandCardComponent, isStandalone: true, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n
|
|
3029
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandCardComponent, isStandalone: true, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ 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: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DelimiterComponent, selector: "teta-delimiter", inputs: ["direction", "palette", "height", "verticalMargin", "horizontalMargin", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3115
3030
|
}
|
|
3116
3031
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandCardComponent, decorators: [{
|
|
3117
3032
|
type: Component,
|
|
3118
|
-
args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, DelimiterComponent], template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n
|
|
3033
|
+
args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, DelimiterComponent], template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
3119
3034
|
}], ctorParameters: () => [], propDecorators: { open: [{
|
|
3120
3035
|
type: Input
|
|
3121
3036
|
}], openChange: [{
|
|
@@ -3136,11 +3051,11 @@ class ExpandItemComponent {
|
|
|
3136
3051
|
this.openChange.emit(this.open);
|
|
3137
3052
|
}
|
|
3138
3053
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandItemComponent, isStandalone: true, selector: "teta-expand-item", inputs: { open: "open" }, outputs: { openChange: "openChange" }, exportAs: ["expand-item"], ngImport: i0, template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n
|
|
3054
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandItemComponent, isStandalone: true, selector: "teta-expand-item", inputs: { open: "open" }, outputs: { openChange: "openChange" }, exportAs: ["expand-item"], ngImport: i0, template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3140
3055
|
}
|
|
3141
3056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandItemComponent, decorators: [{
|
|
3142
3057
|
type: Component,
|
|
3143
|
-
args: [{ selector: 'teta-expand-item', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-item', standalone: true, imports: [ButtonComponent, IconComponent], template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n
|
|
3058
|
+
args: [{ selector: 'teta-expand-item', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-item', standalone: true, imports: [ButtonComponent, IconComponent], template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
3144
3059
|
}], propDecorators: { open: [{
|
|
3145
3060
|
type: Input
|
|
3146
3061
|
}], openChange: [{
|
|
@@ -3211,16 +3126,11 @@ class ExpandPanelComponent {
|
|
|
3211
3126
|
this.openChange.emit(this.open);
|
|
3212
3127
|
}
|
|
3213
3128
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandPanelComponent, isStandalone: true, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "@if (open) {\n
|
|
3129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandPanelComponent, isStandalone: true, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "@if (open) {\n<teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n>\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n</teta-toolbar>\n<ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n} @if (!open) {\n<div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], dependencies: [{ 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: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3215
3130
|
}
|
|
3216
3131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandPanelComponent, decorators: [{
|
|
3217
3132
|
type: Component,
|
|
3218
|
-
args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
3219
|
-
ToolbarComponent,
|
|
3220
|
-
ButtonComponent,
|
|
3221
|
-
IconComponent,
|
|
3222
|
-
NgTemplateOutlet,
|
|
3223
|
-
], template: "@if (open) {\n <teta-toolbar\n style='display: flex'\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]='true'\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)='closePanel()'\n >\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class='font-title-2' style='display: contents'>\n <ng-container *ngTemplateOutlet='head?.template'></ng-container>\n </span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet='content?.template'></ng-container>\n}\n@if (!open) {\n <div class='width-10 overflow-hidden' style='height: 100%;'>\n <button\n teta-button\n style='\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 6px;\n '\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)='openPanel()'\n >\n <div class='font-button-2 nowrap'>{{ placeholder }}</div>\n <teta-icon style='transform-origin: 0 0;transform: rotate(-90deg) translateX(-100%);'\n [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
|
|
3133
|
+
args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, NgTemplateOutlet], template: "@if (open) {\n<teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n>\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n</teta-toolbar>\n<ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n} @if (!open) {\n<div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
|
|
3224
3134
|
}], ctorParameters: () => [], propDecorators: { content: [{
|
|
3225
3135
|
type: ContentChild,
|
|
3226
3136
|
args: [ExpandPanelContentDirective, { static: false }]
|
|
@@ -3280,16 +3190,11 @@ class FileUploadAreaComponent {
|
|
|
3280
3190
|
event.stopPropagation();
|
|
3281
3191
|
}
|
|
3282
3192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FileUploadAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3283
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: FileUploadAreaComponent, isStandalone: true, selector: "teta-file-upload-area", inputs: { multiple: "multiple", disabled: "disabled", accept: "accept" }, outputs: { upload: "upload" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class.file-upload": "this.fileUpload", "class.file-upload_active": "this.fileUploadActive" } }, queries: [{ propertyName: "buttonTemplate", first: true, predicate: ["buttonTemplate"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input
|
|
3193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: FileUploadAreaComponent, isStandalone: true, selector: "teta-file-upload-area", inputs: { multiple: "multiple", disabled: "disabled", accept: "accept" }, outputs: { upload: "upload" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class.file-upload": "this.fileUpload", "class.file-upload_active": "this.fileUploadActive" } }, queries: [{ propertyName: "buttonTemplate", first: true, predicate: ["buttonTemplate"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input\n #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"\n />\n <ng-container [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{ 'common.browse' | transloco }}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3284
3194
|
}
|
|
3285
3195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FileUploadAreaComponent, decorators: [{
|
|
3286
3196
|
type: Component,
|
|
3287
|
-
args: [{ selector: 'teta-file-upload-area', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
3288
|
-
NgTemplateOutlet,
|
|
3289
|
-
ButtonComponent,
|
|
3290
|
-
IconComponent,
|
|
3291
|
-
TranslocoModule,
|
|
3292
|
-
], template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"\n ></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{'common.browse' | transloco}}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"] }]
|
|
3197
|
+
args: [{ selector: 'teta-file-upload-area', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, ButtonComponent, IconComponent, TranslocoModule], template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input\n #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"\n />\n <ng-container [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{ 'common.browse' | transloco }}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"] }]
|
|
3293
3198
|
}], propDecorators: { fileUpload: [{
|
|
3294
3199
|
type: HostBinding,
|
|
3295
3200
|
args: ['class.file-upload']
|
|
@@ -3338,8 +3243,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
3338
3243
|
class DateFilterValue {
|
|
3339
3244
|
constructor(options) {
|
|
3340
3245
|
if (options) {
|
|
3341
|
-
this.lessThan =
|
|
3342
|
-
this.greaterThan =
|
|
3246
|
+
this.lessThan = typeof options.lessThan === 'string' ? new Date(options.lessThan) : options.lessThan;
|
|
3247
|
+
this.greaterThan = typeof options.greaterThan === 'string' ? new Date(options.greaterThan) : options.greaterThan;
|
|
3343
3248
|
}
|
|
3344
3249
|
}
|
|
3345
3250
|
}
|
|
@@ -3348,11 +3253,9 @@ class StringUtil {
|
|
|
3348
3253
|
static firstLetterToLower(input) {
|
|
3349
3254
|
return input.charAt(0).toLocaleLowerCase() + input.slice(1);
|
|
3350
3255
|
}
|
|
3351
|
-
;
|
|
3352
3256
|
static firstLetterToUpper(input) {
|
|
3353
3257
|
return input.charAt(0).toLocaleUpperCase() + input.slice(1);
|
|
3354
3258
|
}
|
|
3355
|
-
;
|
|
3356
3259
|
}
|
|
3357
3260
|
|
|
3358
3261
|
class FilterBase {
|
|
@@ -3623,7 +3526,7 @@ class FilterItem {
|
|
|
3623
3526
|
this.listFilterType = options?.listFilterType ?? ListFilterType.None;
|
|
3624
3527
|
this.strict = options?.strict ?? false;
|
|
3625
3528
|
this.filterComponent = options?.filterComponent;
|
|
3626
|
-
this.columns = options?.columns?.map(_ => new FilterItem(_)) ?? [];
|
|
3529
|
+
this.columns = options?.columns?.map((_) => new FilterItem(_)) ?? [];
|
|
3627
3530
|
}
|
|
3628
3531
|
}
|
|
3629
3532
|
|
|
@@ -3660,16 +3563,11 @@ class DateFilterComponent extends FilterComponentBase {
|
|
|
3660
3563
|
return filter;
|
|
3661
3564
|
}
|
|
3662
3565
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3663
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateFilterComponent, isStandalone: true, selector: "teta-date-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n
|
|
3566
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateFilterComponent, isStandalone: true, selector: "teta-date-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { 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"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3664
3567
|
}
|
|
3665
3568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateFilterComponent, decorators: [{
|
|
3666
3569
|
type: Component,
|
|
3667
|
-
args: [{ selector: 'teta-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
3668
|
-
InputComponent,
|
|
3669
|
-
DatePickerComponent,
|
|
3670
|
-
FormsModule,
|
|
3671
|
-
AsyncPipe,
|
|
3672
|
-
], template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan=$event\"></teta-date-picker>\n </teta-input>\n </div>\n}\n" }]
|
|
3570
|
+
args: [{ selector: 'teta-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, DatePickerComponent, FormsModule, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n</div>\n}\n" }]
|
|
3673
3571
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
|
|
3674
3572
|
type: Input
|
|
3675
3573
|
}], data: [{
|
|
@@ -3714,7 +3612,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
3714
3612
|
type: Directive,
|
|
3715
3613
|
args: [{
|
|
3716
3614
|
selector: '[tetaLet]',
|
|
3717
|
-
standalone: true
|
|
3615
|
+
standalone: true,
|
|
3718
3616
|
}]
|
|
3719
3617
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef, decorators: [{
|
|
3720
3618
|
type: Inject,
|
|
@@ -3773,10 +3671,8 @@ class ScrollableComponent {
|
|
|
3773
3671
|
}
|
|
3774
3672
|
fromEvent(this._container.nativeElement, 'scroll')
|
|
3775
3673
|
.pipe(takeWhile(() => this._alive), tap$1((event) => {
|
|
3776
|
-
this._scrollbarHorizontal.nativeElement.scrollLeft =
|
|
3777
|
-
|
|
3778
|
-
this._scrollbarVertical.nativeElement.scrollTop =
|
|
3779
|
-
event.target.scrollTop;
|
|
3674
|
+
this._scrollbarHorizontal.nativeElement.scrollLeft = event.target.scrollLeft;
|
|
3675
|
+
this._scrollbarVertical.nativeElement.scrollTop = event.target.scrollTop;
|
|
3780
3676
|
this.scroll.emit(event);
|
|
3781
3677
|
}))
|
|
3782
3678
|
.subscribe();
|
|
@@ -3791,16 +3687,11 @@ class ScrollableComponent {
|
|
|
3791
3687
|
this._observe();
|
|
3792
3688
|
}
|
|
3793
3689
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3794
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ScrollableComponent, isStandalone: true, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet
|
|
3690
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ScrollableComponent, isStandalone: true, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as scrollSize\">\n <div\n #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\"\n >\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px\"></div>\n </div>\n <div\n #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\"\n >\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\" [ngClass]=\"contentClass\" [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3795
3691
|
}
|
|
3796
3692
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollableComponent, decorators: [{
|
|
3797
3693
|
type: Component,
|
|
3798
|
-
args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
3799
|
-
LetDirective,
|
|
3800
|
-
NgClass,
|
|
3801
|
-
AsyncPipe,
|
|
3802
|
-
ScrollableDirective
|
|
3803
|
-
], template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
|
|
3694
|
+
args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [LetDirective, NgClass, AsyncPipe, ScrollableDirective], template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as scrollSize\">\n <div\n #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\"\n >\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px\"></div>\n </div>\n <div\n #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\"\n >\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\" [ngClass]=\"contentClass\" [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
|
|
3804
3695
|
}], ctorParameters: () => [], propDecorators: { _scrollDirective: [{
|
|
3805
3696
|
type: ContentChild,
|
|
3806
3697
|
args: [ScrollableDirective, {
|
|
@@ -3881,7 +3772,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
3881
3772
|
type: Pipe,
|
|
3882
3773
|
args: [{
|
|
3883
3774
|
name: 'tetaNumber',
|
|
3884
|
-
standalone: true
|
|
3775
|
+
standalone: true,
|
|
3885
3776
|
}]
|
|
3886
3777
|
}] });
|
|
3887
3778
|
|
|
@@ -4111,7 +4002,7 @@ class TextFieldComponent {
|
|
|
4111
4002
|
useExisting: forwardRef(() => TextFieldComponent),
|
|
4112
4003
|
multi: true,
|
|
4113
4004
|
},
|
|
4114
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (leftIconName) {\n
|
|
4005
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (leftIconName) {\n<teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber : (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n<teta-icon class=\"close-icon\" [name]=\"'closeCircle'\" [palette]=\"'text'\" (click)=\"value = ''; onChange('')\"></teta-icon>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4115
4006
|
}
|
|
4116
4007
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TextFieldComponent, decorators: [{
|
|
4117
4008
|
type: Component,
|
|
@@ -4121,13 +4012,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
4121
4012
|
useExisting: forwardRef(() => TextFieldComponent),
|
|
4122
4013
|
multi: true,
|
|
4123
4014
|
},
|
|
4124
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
4125
|
-
IconComponent,
|
|
4126
|
-
FormsModule,
|
|
4127
|
-
OnlyNumberDirective,
|
|
4128
|
-
NgClass,
|
|
4129
|
-
NumberPipe,
|
|
4130
|
-
], template: "@if (leftIconName) {\n <teta-icon [name]='leftIconName' [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]='value | tetaNumber : !onlyNumber ? null : inputFocused ? 1000 : decimalPart'\n [tetaOnlyNumber]='onlyNumber'\n (ngModelChange)='value = $event; onChange($event);'\n [placeholder]='placeholder'\n [disabled]='disabled'\n [ngClass]=\"{'color-text-40':disabled}\"\n (focus)='inputFocused = true'\n (blur)='inputFocused = false;emitBlur()'\n (keydown)='keyPress($event)'\n type='text'\n />\n @if (value && !disabled) {\n <teta-icon\n class='close-icon'\n [name]=\"'closeCircle'\"\n [palette]=\"'text'\"\n (click)=\"value = ''; onChange('');\"\n ></teta-icon>\n }\n" }]
|
|
4015
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, FormsModule, OnlyNumberDirective, NgClass, NumberPipe], template: "@if (leftIconName) {\n<teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber : (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n<teta-icon class=\"close-icon\" [name]=\"'closeCircle'\" [palette]=\"'text'\" (click)=\"value = ''; onChange('')\"></teta-icon>\n}\n" }]
|
|
4131
4016
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
|
|
4132
4017
|
type: Input
|
|
4133
4018
|
}], leftIconName: [{
|
|
@@ -4180,8 +4065,7 @@ class ListFilterComponent extends FilterComponentBase {
|
|
|
4180
4065
|
this.search = '';
|
|
4181
4066
|
this.locale = this._config.locale;
|
|
4182
4067
|
}
|
|
4183
|
-
ngOnInit() {
|
|
4184
|
-
}
|
|
4068
|
+
ngOnInit() { }
|
|
4185
4069
|
all() {
|
|
4186
4070
|
if (!this.filter?.value || this.filter?.value?.length === 0) {
|
|
4187
4071
|
return false;
|
|
@@ -4202,9 +4086,7 @@ class ListFilterComponent extends FilterComponentBase {
|
|
|
4202
4086
|
}
|
|
4203
4087
|
setType() {
|
|
4204
4088
|
this.excluded = !this.excluded;
|
|
4205
|
-
this.filter.type = this.excluded
|
|
4206
|
-
? ListFilterType.Excluded
|
|
4207
|
-
: ListFilterType.None;
|
|
4089
|
+
this.filter.type = this.excluded ? ListFilterType.Excluded : ListFilterType.None;
|
|
4208
4090
|
}
|
|
4209
4091
|
setFilter(value) {
|
|
4210
4092
|
this.filter.value = value;
|
|
@@ -4224,17 +4106,11 @@ class ListFilterComponent extends FilterComponentBase {
|
|
|
4224
4106
|
return filter;
|
|
4225
4107
|
}
|
|
4226
4108
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListFilterComponent, isStandalone: true, selector: "teta-list-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\"
|
|
4109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListFilterComponent, isStandalone: true, selector: "teta-list-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { 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"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4228
4110
|
}
|
|
4229
4111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListFilterComponent, decorators: [{
|
|
4230
4112
|
type: Component,
|
|
4231
|
-
args: [{ selector: 'teta-list-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
4232
|
-
TextFieldComponent,
|
|
4233
|
-
FormsModule,
|
|
4234
|
-
ScrollableComponent,
|
|
4235
|
-
CheckboxComponent,
|
|
4236
|
-
AsyncPipe,
|
|
4237
|
-
], template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"all()\"\n (ngModelChange)=\"setAll($event)\">\n {{(locale | async)?.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [value]=\"option.id\"\n [binary]=\"false\">\n {{option.name}}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"] }]
|
|
4113
|
+
args: [{ selector: 'teta-list-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TextFieldComponent, FormsModule, ScrollableComponent, CheckboxComponent, AsyncPipe], template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"] }]
|
|
4238
4114
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
|
|
4239
4115
|
type: Input
|
|
4240
4116
|
}], data: [{
|
|
@@ -4280,16 +4156,11 @@ class NumericFilterComponent extends FilterComponentBase {
|
|
|
4280
4156
|
return filter;
|
|
4281
4157
|
}
|
|
4282
4158
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4283
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericFilterComponent, isStandalone: true, selector: "teta-numeric-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n
|
|
4159
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericFilterComponent, isStandalone: true, selector: "teta-numeric-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4284
4160
|
}
|
|
4285
4161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericFilterComponent, decorators: [{
|
|
4286
4162
|
type: Component,
|
|
4287
|
-
args: [{ selector: 'teta-numeric-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
4288
|
-
InputComponent,
|
|
4289
|
-
FormsModule,
|
|
4290
|
-
OnlyNumberDirective,
|
|
4291
|
-
AsyncPipe,
|
|
4292
|
-
], template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"/>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan=$event\"/>\n </teta-input>\n </div>\n }\n" }]
|
|
4163
|
+
args: [{ selector: 'teta-numeric-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, FormsModule, OnlyNumberDirective, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n</div>\n}\n" }]
|
|
4293
4164
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
|
|
4294
4165
|
type: Input
|
|
4295
4166
|
}], data: [{
|
|
@@ -4319,8 +4190,7 @@ class StringFilterComponent extends FilterComponentBase {
|
|
|
4319
4190
|
this.filterChanged = new EventEmitter();
|
|
4320
4191
|
this.locale = this._config.locale;
|
|
4321
4192
|
}
|
|
4322
|
-
ngOnInit() {
|
|
4323
|
-
}
|
|
4193
|
+
ngOnInit() { }
|
|
4324
4194
|
setFilter() {
|
|
4325
4195
|
this.filterChanged.emit(this.filter);
|
|
4326
4196
|
}
|
|
@@ -4338,15 +4208,11 @@ class StringFilterComponent extends FilterComponentBase {
|
|
|
4338
4208
|
return filter;
|
|
4339
4209
|
}
|
|
4340
4210
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4341
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: StringFilterComponent, isStandalone: true, selector: "teta-string-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n
|
|
4211
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: StringFilterComponent, isStandalone: true, selector: "teta-string-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4342
4212
|
}
|
|
4343
4213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringFilterComponent, decorators: [{
|
|
4344
4214
|
type: Component,
|
|
4345
|
-
args: [{ selector: 'teta-string-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
4346
|
-
InputComponent,
|
|
4347
|
-
FormsModule,
|
|
4348
|
-
AsyncPipe,
|
|
4349
|
-
], template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n\n" }]
|
|
4215
|
+
args: [{ selector: 'teta-string-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, FormsModule, AsyncPipe], template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n" }]
|
|
4350
4216
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
|
|
4351
4217
|
type: Input
|
|
4352
4218
|
}], data: [{
|
|
@@ -4362,7 +4228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
4362
4228
|
class RadioComponent {
|
|
4363
4229
|
set disabled(val) {
|
|
4364
4230
|
this.disabled$ = val;
|
|
4365
|
-
this.buttons$.forEach(b => (b.disabled = this.disabled));
|
|
4231
|
+
this.buttons$.forEach((b) => (b.disabled = this.disabled));
|
|
4366
4232
|
}
|
|
4367
4233
|
get disabled() {
|
|
4368
4234
|
return this.disabled$;
|
|
@@ -4473,7 +4339,7 @@ class RadioComponent {
|
|
|
4473
4339
|
if (this.checkedButton$) {
|
|
4474
4340
|
this.checkedButton$.checked = false;
|
|
4475
4341
|
}
|
|
4476
|
-
this.checkedButton$ = this.buttons$.find(b => b.value === obj);
|
|
4342
|
+
this.checkedButton$ = this.buttons$.find((b) => b.value === obj);
|
|
4477
4343
|
if (this.checkedButton$) {
|
|
4478
4344
|
this.checkedButton$.checked = true;
|
|
4479
4345
|
}
|
|
@@ -4508,9 +4374,7 @@ class RadioComponent {
|
|
|
4508
4374
|
return;
|
|
4509
4375
|
}
|
|
4510
4376
|
const length = this.buttons$.length;
|
|
4511
|
-
let newIndex = this.selectedButton$
|
|
4512
|
-
? this.buttons$.indexOf(this.selectedButton$)
|
|
4513
|
-
: 0;
|
|
4377
|
+
let newIndex = this.selectedButton$ ? this.buttons$.indexOf(this.selectedButton$) : 0;
|
|
4514
4378
|
let firstCycle = true;
|
|
4515
4379
|
do {
|
|
4516
4380
|
newIndex++;
|
|
@@ -4529,9 +4393,7 @@ class RadioComponent {
|
|
|
4529
4393
|
if (this.selectFirst()) {
|
|
4530
4394
|
return;
|
|
4531
4395
|
}
|
|
4532
|
-
let newIndex = this.selectedButton$
|
|
4533
|
-
? this.buttons$.indexOf(this.selectedButton$)
|
|
4534
|
-
: 0;
|
|
4396
|
+
let newIndex = this.selectedButton$ ? this.buttons$.indexOf(this.selectedButton$) : 0;
|
|
4535
4397
|
let firstCycle = true;
|
|
4536
4398
|
do {
|
|
4537
4399
|
newIndex--;
|
|
@@ -4561,7 +4423,7 @@ class RadioComponent {
|
|
|
4561
4423
|
useExisting: forwardRef(() => RadioComponent),
|
|
4562
4424
|
multi: true,
|
|
4563
4425
|
},
|
|
4564
|
-
], ngImport: i0, template: "<ng-content></ng-content
|
|
4426
|
+
], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4565
4427
|
}
|
|
4566
4428
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioComponent, decorators: [{
|
|
4567
4429
|
type: Component,
|
|
@@ -4571,7 +4433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
4571
4433
|
useExisting: forwardRef(() => RadioComponent),
|
|
4572
4434
|
multi: true,
|
|
4573
4435
|
},
|
|
4574
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content
|
|
4436
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content>\n" }]
|
|
4575
4437
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
|
|
4576
4438
|
type: HostBinding,
|
|
4577
4439
|
args: ['tabindex']
|
|
@@ -4629,11 +4491,11 @@ class RadioButtonComponent {
|
|
|
4629
4491
|
this.radio._removeButton(this);
|
|
4630
4492
|
}
|
|
4631
4493
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.ViewContainerRef }, { token: RadioComponent, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4632
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RadioButtonComponent, isStandalone: true, selector: "teta-radio-button", inputs: { checked: "checked", disabled: "disabled", value: "value" }, host: { listeners: { "click": "hostClick()" }, properties: { "class.radio-button": "this.radioButton", "class.radio-button-selected": "this.selected", "class.radio-button-checked": "this.checked", "class.radio-button_disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n
|
|
4494
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RadioButtonComponent, isStandalone: true, selector: "teta-radio-button", inputs: { checked: "checked", disabled: "disabled", value: "value" }, host: { listeners: { "click": "hostClick()" }, properties: { "class.radio-button": "this.radioButton", "class.radio-button-selected": "this.selected", "class.radio-button-checked": "this.checked", "class.radio-button_disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4633
4495
|
}
|
|
4634
4496
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioButtonComponent, decorators: [{
|
|
4635
4497
|
type: Component,
|
|
4636
|
-
args: [{ selector: 'teta-radio-button', encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n
|
|
4498
|
+
args: [{ selector: 'teta-radio-button', encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n" }]
|
|
4637
4499
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: RadioComponent, decorators: [{
|
|
4638
4500
|
type: Host
|
|
4639
4501
|
}] }], propDecorators: { radioButton: [{
|
|
@@ -4676,8 +4538,7 @@ class BooleanFilterComponent extends FilterComponentBase {
|
|
|
4676
4538
|
this.filterChanged = new EventEmitter();
|
|
4677
4539
|
this.locale = this._config.locale;
|
|
4678
4540
|
}
|
|
4679
|
-
ngOnInit() {
|
|
4680
|
-
}
|
|
4541
|
+
ngOnInit() { }
|
|
4681
4542
|
setFilter() {
|
|
4682
4543
|
this.filterChanged.emit(this.filter);
|
|
4683
4544
|
}
|
|
@@ -4693,16 +4554,11 @@ class BooleanFilterComponent extends FilterComponentBase {
|
|
|
4693
4554
|
return filter;
|
|
4694
4555
|
}
|
|
4695
4556
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4696
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanFilterComponent, isStandalone: true, selector: "teta-boolean-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n
|
|
4557
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanFilterComponent, isStandalone: true, selector: "teta-boolean-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: RadioComponent, selector: "teta-radio", inputs: ["inline", "checkChangeSelected", "disabled", "value"] }, { 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"] }, { kind: "component", type: RadioButtonComponent, selector: "teta-radio-button", inputs: ["checked", "disabled", "value"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4697
4558
|
}
|
|
4698
4559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanFilterComponent, decorators: [{
|
|
4699
4560
|
type: Component,
|
|
4700
|
-
args: [{ selector: 'teta-boolean-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
4701
|
-
RadioComponent,
|
|
4702
|
-
FormsModule,
|
|
4703
|
-
RadioButtonComponent,
|
|
4704
|
-
AsyncPipe,
|
|
4705
|
-
], template: "@if (locale | async; as loc) {\n <div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{loc?.notSelected}}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{loc?.yes}}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{loc?.no}}</teta-radio-button>\n </teta-radio>\n </div>\n}\n" }]
|
|
4561
|
+
args: [{ selector: 'teta-boolean-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RadioComponent, FormsModule, RadioButtonComponent, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n</div>\n}\n" }]
|
|
4706
4562
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
|
|
4707
4563
|
type: Input
|
|
4708
4564
|
}], data: [{
|
|
@@ -4732,9 +4588,7 @@ const filterComponentsMap = new Map()
|
|
|
4732
4588
|
.set(FilterType.string, StringFilterComponent)
|
|
4733
4589
|
.set(FilterType.boolean, BooleanFilterComponent)
|
|
4734
4590
|
.set(FilterType.custom, StringFilterComponent);
|
|
4735
|
-
const getFilterComponent = (item) => filterComponentsMap.has(item.filterType)
|
|
4736
|
-
? filterComponentsMap.get(item.filterType)
|
|
4737
|
-
: StringFilterComponent;
|
|
4591
|
+
const getFilterComponent = (item) => filterComponentsMap.has(item.filterType) ? filterComponentsMap.get(item.filterType) : StringFilterComponent;
|
|
4738
4592
|
|
|
4739
4593
|
class FilterHostComponent {
|
|
4740
4594
|
set column(val) {
|
|
@@ -4774,8 +4628,7 @@ class FilterHostComponent {
|
|
|
4774
4628
|
if (!FilterComponentBase.isPrototypeOf(this._column.filterComponent)) {
|
|
4775
4629
|
this._column.filterComponent = getFilterComponent(this._column);
|
|
4776
4630
|
}
|
|
4777
|
-
this._componentRef =
|
|
4778
|
-
this.viewContainerRef.createComponent(this._column.filterComponent);
|
|
4631
|
+
this._componentRef = this.viewContainerRef.createComponent(this._column.filterComponent);
|
|
4779
4632
|
this._componentRef.instance.column = this._column;
|
|
4780
4633
|
this._componentRef.instance.state = this._state;
|
|
4781
4634
|
this._componentRef.instance.data = this._data;
|
|
@@ -4815,8 +4668,7 @@ class IconFileComponent {
|
|
|
4815
4668
|
return result.join(' ');
|
|
4816
4669
|
}
|
|
4817
4670
|
constructor() { }
|
|
4818
|
-
ngOnInit() {
|
|
4819
|
-
}
|
|
4671
|
+
ngOnInit() { }
|
|
4820
4672
|
getName() {
|
|
4821
4673
|
return `#${this.name}`;
|
|
4822
4674
|
}
|
|
@@ -4881,7 +4733,7 @@ class ColorInputComponent {
|
|
|
4881
4733
|
useExisting: forwardRef(() => ColorInputComponent),
|
|
4882
4734
|
multi: true,
|
|
4883
4735
|
},
|
|
4884
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input
|
|
4736
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input\n type=\"color\"\n #input\n [disabled]=\"disabled\"\n (blur)=\"emitBlur()\"\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [ngModelOptions]=\"{ updateOn: 'blur' }\"\n/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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 }); }
|
|
4885
4737
|
}
|
|
4886
4738
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ColorInputComponent, decorators: [{
|
|
4887
4739
|
type: Component,
|
|
@@ -4891,7 +4743,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
4891
4743
|
useExisting: forwardRef(() => ColorInputComponent),
|
|
4892
4744
|
multi: true,
|
|
4893
4745
|
},
|
|
4894
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<input
|
|
4746
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<input\n type=\"color\"\n #input\n [disabled]=\"disabled\"\n (blur)=\"emitBlur()\"\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [ngModelOptions]=\"{ updateOn: 'blur' }\"\n/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"] }]
|
|
4895
4747
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
|
|
4896
4748
|
type: Input
|
|
4897
4749
|
}], input: [{
|
|
@@ -4946,13 +4798,13 @@ class MessageService {
|
|
|
4946
4798
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageService, decorators: [{
|
|
4947
4799
|
type: Injectable,
|
|
4948
4800
|
args: [{
|
|
4949
|
-
providedIn: 'root'
|
|
4801
|
+
providedIn: 'root',
|
|
4950
4802
|
}]
|
|
4951
4803
|
}], ctorParameters: () => [] });
|
|
4952
4804
|
|
|
4953
4805
|
class Message {
|
|
4954
4806
|
constructor(options) {
|
|
4955
|
-
this.viewType =
|
|
4807
|
+
this.viewType = 'rounded';
|
|
4956
4808
|
this.duration = 10000;
|
|
4957
4809
|
this.palette = 'primary';
|
|
4958
4810
|
if (options) {
|
|
@@ -5019,15 +4871,11 @@ class MessageComponent {
|
|
|
5019
4871
|
this.reset();
|
|
5020
4872
|
}
|
|
5021
4873
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5022
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageComponent, isStandalone: true, selector: "teta-message", inputs: { message: "message", index: "index", class: "class" }, outputs: { closed: "closed" }, host: { listeners: { "mouseleave": "init()", "mouseenter": "reset()" }, properties: { "class": "this.getClass" } }, ngImport: i0, template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{message.title}}\n </div>\n <button teta-button
|
|
4874
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageComponent, isStandalone: true, selector: "teta-message", inputs: { message: "message", index: "index", class: "class" }, outputs: { closed: "closed" }, host: { listeners: { "mouseleave": "init()", "mouseenter": "reset()" }, properties: { "class": "this.getClass" } }, ngImport: i0, template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n<div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n</div>\n} @if (message.template) {\n<ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5023
4875
|
}
|
|
5024
4876
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageComponent, decorators: [{
|
|
5025
4877
|
type: Component,
|
|
5026
|
-
args: [{ selector: 'teta-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
5027
|
-
ButtonComponent,
|
|
5028
|
-
IconComponent,
|
|
5029
|
-
NgTemplateOutlet,
|
|
5030
|
-
], template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{message.title}}\n </div>\n <button teta-button\n type=\"button\"\n [square]=\"true\"\n [view]=\"'ghost'\"\n (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n <div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{message.text}}\n </div>\n}\n@if (message.template) {\n <ng-container *ngTemplateOutlet=\"message.template; context: {$implicit: message}\"></ng-container>\n}\n" }]
|
|
4878
|
+
args: [{ selector: 'teta-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgTemplateOutlet], template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n<div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n</div>\n} @if (message.template) {\n<ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n" }]
|
|
5031
4879
|
}], ctorParameters: () => [], propDecorators: { message: [{
|
|
5032
4880
|
type: Input
|
|
5033
4881
|
}], index: [{
|
|
@@ -5076,9 +4924,7 @@ class MessageHostComponent {
|
|
|
5076
4924
|
this._alive = true;
|
|
5077
4925
|
}
|
|
5078
4926
|
ngOnInit() {
|
|
5079
|
-
this._svc.message
|
|
5080
|
-
.pipe(takeWhile((_) => this._alive))
|
|
5081
|
-
.subscribe((messages) => {
|
|
4927
|
+
this._svc.message.pipe(takeWhile((_) => this._alive)).subscribe((messages) => {
|
|
5082
4928
|
if (messages) {
|
|
5083
4929
|
if (!this.messages) {
|
|
5084
4930
|
this.messages = [];
|
|
@@ -5087,9 +4933,7 @@ class MessageHostComponent {
|
|
|
5087
4933
|
}
|
|
5088
4934
|
this._cdr.markForCheck();
|
|
5089
4935
|
});
|
|
5090
|
-
this._svc.clear
|
|
5091
|
-
.pipe(takeWhile((_) => this._alive))
|
|
5092
|
-
.subscribe((x) => {
|
|
4936
|
+
this._svc.clear.pipe(takeWhile((_) => this._alive)).subscribe((x) => {
|
|
5093
4937
|
if (!x) {
|
|
5094
4938
|
this.messages = [];
|
|
5095
4939
|
}
|
|
@@ -5109,11 +4953,11 @@ class MessageHostComponent {
|
|
|
5109
4953
|
this._alive = false;
|
|
5110
4954
|
}
|
|
5111
4955
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageHostComponent, deps: [{ token: MessageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageHostComponent, isStandalone: true, selector: "teta-message-host", inputs: { class: "class", align: "align", verticalAlign: "verticalAlign" }, outputs: { itemClose: "itemClose" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "@for (message of messages; track message; let i = $index) {\n
|
|
4956
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageHostComponent, isStandalone: true, selector: "teta-message-host", inputs: { class: "class", align: "align", verticalAlign: "verticalAlign" }, outputs: { itemClose: "itemClose" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "@for (message of messages; track message; let i = $index) {\n<teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n", styles: [""], dependencies: [{ kind: "component", type: MessageComponent, selector: "teta-message", inputs: ["message", "index", "class"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5113
4957
|
}
|
|
5114
4958
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageHostComponent, decorators: [{
|
|
5115
4959
|
type: Component,
|
|
5116
|
-
args: [{ selector: 'teta-message-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MessageComponent], template: "@for (message of messages; track message; let i = $index) {\n
|
|
4960
|
+
args: [{ selector: 'teta-message-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MessageComponent], template: "@for (message of messages; track message; let i = $index) {\n<teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n" }]
|
|
5117
4961
|
}], ctorParameters: () => [{ type: MessageService }, { type: i0.ChangeDetectorRef }], propDecorators: { class: [{
|
|
5118
4962
|
type: Input
|
|
5119
4963
|
}], align: [{
|
|
@@ -5165,8 +5009,7 @@ class ModalContainerComponent {
|
|
|
5165
5009
|
}
|
|
5166
5010
|
}
|
|
5167
5011
|
click(event) {
|
|
5168
|
-
if (this.config.closeOnBackdropClick === true &&
|
|
5169
|
-
this.elRef$.nativeElement === event.target) {
|
|
5012
|
+
if (this.config.closeOnBackdropClick === true && this.elRef$.nativeElement === event.target) {
|
|
5170
5013
|
this.closeEvent.emit({
|
|
5171
5014
|
reason: ModalCloseReason.backdrop,
|
|
5172
5015
|
});
|
|
@@ -5175,10 +5018,7 @@ class ModalContainerComponent {
|
|
|
5175
5018
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5176
5019
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ModalContainerComponent, isStandalone: true, selector: "teta-modal-container", inputs: { config: "config" }, outputs: { closeEvent: "closeEvent" }, host: { listeners: { "keyup": "keyup($event)", "click": "click($event)" }, properties: { "attr.tabindex": "this.tabindex", "@dialog": "this.dialog", "class": "this.classList" } }, ngImport: i0, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n", styles: [""], animations: [
|
|
5177
5020
|
trigger('dialog', [
|
|
5178
|
-
transition('void => *', [
|
|
5179
|
-
style({ top: '-100%' }),
|
|
5180
|
-
animate('150ms ease-in', style({ top: '0' })),
|
|
5181
|
-
]),
|
|
5021
|
+
transition('void => *', [style({ top: '-100%' }), animate('150ms ease-in', style({ top: '0' }))]),
|
|
5182
5022
|
transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
|
|
5183
5023
|
]),
|
|
5184
5024
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -5187,10 +5027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
5187
5027
|
type: Component,
|
|
5188
5028
|
args: [{ selector: 'teta-modal-container', animations: [
|
|
5189
5029
|
trigger('dialog', [
|
|
5190
|
-
transition('void => *', [
|
|
5191
|
-
style({ top: '-100%' }),
|
|
5192
|
-
animate('150ms ease-in', style({ top: '0' })),
|
|
5193
|
-
]),
|
|
5030
|
+
transition('void => *', [style({ top: '-100%' }), animate('150ms ease-in', style({ top: '0' }))]),
|
|
5194
5031
|
transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
|
|
5195
5032
|
]),
|
|
5196
5033
|
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
@@ -5235,16 +5072,11 @@ class DialogComponent {
|
|
|
5235
5072
|
}
|
|
5236
5073
|
ngOnInit() { }
|
|
5237
5074
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DialogComponent, deps: [{ token: CurrentModal }, { token: DynamicData }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DialogComponent, isStandalone: true, selector: "teta-dialog", inputs: { message: "message", buttonText: "buttonText", buttonIcon: "buttonIcon", buttonPalette: "buttonPalette", showCancelButton: "showCancelButton" }, ngImport: i0, template: "<div class=\"padding-2 font-body-2\">\n {{message | transloco}}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n
|
|
5075
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DialogComponent, isStandalone: true, selector: "teta-dialog", inputs: { message: "message", buttonText: "buttonText", buttonIcon: "buttonIcon", buttonPalette: "buttonPalette", showCancelButton: "showCancelButton" }, ngImport: i0, template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n } @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"], dependencies: [{ 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: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }] }); }
|
|
5239
5076
|
}
|
|
5240
5077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DialogComponent, decorators: [{
|
|
5241
5078
|
type: Component,
|
|
5242
|
-
args: [{ selector: 'teta-dialog', standalone: true, imports: [
|
|
5243
|
-
ToolbarComponent,
|
|
5244
|
-
ButtonComponent,
|
|
5245
|
-
IconComponent,
|
|
5246
|
-
TranslocoModule,
|
|
5247
|
-
], template: "<div class=\"padding-2 font-body-2\">\n {{message | transloco}}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button\n (click)=\"cancel()\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\">\n {{'common.cancel' | transloco}}\n </button>\n }\n\n <button teta-button\n (click)=\"ok()\"\n [square]=\"!buttonText?.length\"\n [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n }\n @if (buttonText?.length > 0) {\n {{buttonText | transloco}}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"] }]
|
|
5079
|
+
args: [{ selector: 'teta-dialog', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, TranslocoModule], template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n } @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"] }]
|
|
5248
5080
|
}], ctorParameters: () => [{ type: CurrentModal }, { type: DynamicData }], propDecorators: { message: [{
|
|
5249
5081
|
type: Input
|
|
5250
5082
|
}], buttonText: [{
|
|
@@ -5259,28 +5091,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
5259
5091
|
|
|
5260
5092
|
class ModalModule {
|
|
5261
5093
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5262
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, imports: [CommonModule,
|
|
5263
|
-
TranslocoModule,
|
|
5264
|
-
ModalContainerComponent, DialogComponent], exports: [ModalContainerComponent, DialogComponent] }); }
|
|
5094
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, imports: [CommonModule, TranslocoModule, ModalContainerComponent, DialogComponent], exports: [ModalContainerComponent, DialogComponent] }); }
|
|
5265
5095
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, providers: [
|
|
5266
5096
|
{
|
|
5267
5097
|
provide: TRANSLOCO_SCOPE,
|
|
5268
5098
|
useValue: { scope: 'common', alias: 'common' },
|
|
5269
5099
|
multi: true,
|
|
5270
5100
|
},
|
|
5271
|
-
], imports: [CommonModule,
|
|
5272
|
-
TranslocoModule,
|
|
5273
|
-
DialogComponent] }); }
|
|
5101
|
+
], imports: [CommonModule, TranslocoModule, DialogComponent] }); }
|
|
5274
5102
|
}
|
|
5275
5103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, decorators: [{
|
|
5276
5104
|
type: NgModule,
|
|
5277
5105
|
args: [{
|
|
5278
5106
|
exports: [ModalContainerComponent, DialogComponent],
|
|
5279
|
-
imports: [
|
|
5280
|
-
CommonModule,
|
|
5281
|
-
TranslocoModule,
|
|
5282
|
-
ModalContainerComponent, DialogComponent,
|
|
5283
|
-
],
|
|
5107
|
+
imports: [CommonModule, TranslocoModule, ModalContainerComponent, DialogComponent],
|
|
5284
5108
|
providers: [
|
|
5285
5109
|
{
|
|
5286
5110
|
provide: TRANSLOCO_SCOPE,
|
|
@@ -5495,7 +5319,8 @@ class PagerState {
|
|
|
5495
5319
|
if (options) {
|
|
5496
5320
|
this.pageSize = options.pageSize || 30;
|
|
5497
5321
|
this.count = options.count !== null && options.count !== undefined ? options.count : this.count;
|
|
5498
|
-
this.totalCount =
|
|
5322
|
+
this.totalCount =
|
|
5323
|
+
options.totalCount !== null && options.totalCount !== undefined ? options.totalCount : this.totalCount;
|
|
5499
5324
|
this.page = options.page !== null && options.page !== undefined ? options.page : 0;
|
|
5500
5325
|
this.createPages();
|
|
5501
5326
|
}
|
|
@@ -5551,10 +5376,7 @@ class PanelComponent {
|
|
|
5551
5376
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5552
5377
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: PanelComponent, isStandalone: true, selector: "teta-panel", inputs: { width: "width" }, host: { properties: { "@panel": "this.panel", "class.column": "this.column", "class.column_fixed": "this.auto" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], animations: [
|
|
5553
5378
|
trigger('panel', [
|
|
5554
|
-
transition('void => *', [
|
|
5555
|
-
style({ opacity: '0' }),
|
|
5556
|
-
animate(300, style({ opacity: '1' })),
|
|
5557
|
-
]),
|
|
5379
|
+
transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
|
|
5558
5380
|
transition('* => void', [animate(150, style({ opacity: '0' }))]),
|
|
5559
5381
|
]),
|
|
5560
5382
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -5563,10 +5385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
5563
5385
|
type: Component,
|
|
5564
5386
|
args: [{ selector: 'teta-panel', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
5565
5387
|
trigger('panel', [
|
|
5566
|
-
transition('void => *', [
|
|
5567
|
-
style({ opacity: '0' }),
|
|
5568
|
-
animate(300, style({ opacity: '1' })),
|
|
5569
|
-
]),
|
|
5388
|
+
transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
|
|
5570
5389
|
transition('* => void', [animate(150, style({ opacity: '0' }))]),
|
|
5571
5390
|
]),
|
|
5572
5391
|
], standalone: true, template: "<ng-content></ng-content>\n" }]
|
|
@@ -5624,8 +5443,7 @@ class ProgressBarComponent {
|
|
|
5624
5443
|
};
|
|
5625
5444
|
this.getMousePositionInPercents = (event) => {
|
|
5626
5445
|
const position = event.clientX - this.containerPosition.min;
|
|
5627
|
-
let percent = (100 / (this.containerPosition.max - this.containerPosition.min)) *
|
|
5628
|
-
position;
|
|
5446
|
+
let percent = (100 / (this.containerPosition.max - this.containerPosition.min)) * position;
|
|
5629
5447
|
percent = percent <= 0 ? 0 : percent > 100 ? 100 : percent;
|
|
5630
5448
|
this.setValue(this.getValueFromPercent(percent));
|
|
5631
5449
|
};
|
|
@@ -5669,7 +5487,7 @@ class ProgressBarComponent {
|
|
|
5669
5487
|
if (!this.step || this.step <= 0 || isNaN(this.step)) {
|
|
5670
5488
|
return exactValue;
|
|
5671
5489
|
}
|
|
5672
|
-
return
|
|
5490
|
+
return Math.round((exactValue - this.min) / this.step) * this.step + this.min;
|
|
5673
5491
|
}
|
|
5674
5492
|
addListener() {
|
|
5675
5493
|
this._document.addEventListener('mousemove', this.mousemove);
|
|
@@ -5682,11 +5500,11 @@ class ProgressBarComponent {
|
|
|
5682
5500
|
return (100 / range) * (this.value - this.min);
|
|
5683
5501
|
}
|
|
5684
5502
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProgressBarComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5685
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProgressBarComponent, isStandalone: true, selector: "teta-progress-bar", inputs: { min: "min", max: "max", step: "step" }, host: { listeners: { "document:mouseup": "mouseup($event)", "click": "click($event)" }, properties: { "class.progress": "this.progressBar" } }, providers: [SLIDER_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "slider", first: true, predicate: ["progressSlider"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div
|
|
5503
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProgressBarComponent, isStandalone: true, selector: "teta-progress-bar", inputs: { min: "min", max: "max", step: "step" }, host: { listeners: { "document:mouseup": "mouseup($event)", "click": "click($event)" }, properties: { "class.progress": "this.progressBar" } }, providers: [SLIDER_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "slider", first: true, predicate: ["progressSlider"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div\n class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"\n></div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5686
5504
|
}
|
|
5687
5505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
5688
5506
|
type: Component,
|
|
5689
|
-
args: [{ selector: 'teta-progress-bar', providers: [SLIDER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div
|
|
5507
|
+
args: [{ selector: 'teta-progress-bar', providers: [SLIDER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div\n class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"\n></div>\n" }]
|
|
5690
5508
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
5691
5509
|
type: Inject,
|
|
5692
5510
|
args: [DOCUMENT]
|
|
@@ -5729,7 +5547,7 @@ function boolOrFuncCallback(variable) {
|
|
|
5729
5547
|
class FormsUtil {
|
|
5730
5548
|
static validateAllFormFields(formGroup) {
|
|
5731
5549
|
formGroup.updateValueAndValidity();
|
|
5732
|
-
Object.keys(formGroup.controls).forEach(field => {
|
|
5550
|
+
Object.keys(formGroup.controls).forEach((field) => {
|
|
5733
5551
|
const control = formGroup.get(field);
|
|
5734
5552
|
if (control instanceof UntypedFormControl) {
|
|
5735
5553
|
control.markAsTouched({ onlySelf: true });
|
|
@@ -5741,8 +5559,7 @@ class FormsUtil {
|
|
|
5741
5559
|
});
|
|
5742
5560
|
}
|
|
5743
5561
|
static controlIsInvalid(formGroup, controlName) {
|
|
5744
|
-
return
|
|
5745
|
-
formGroup.controls[controlName]?.dirty);
|
|
5562
|
+
return formGroup.controls[controlName]?.invalid && formGroup.controls[controlName]?.dirty;
|
|
5746
5563
|
}
|
|
5747
5564
|
static getControlErrors(formGroup, controlName) {
|
|
5748
5565
|
if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
|
|
@@ -5751,19 +5568,12 @@ class FormsUtil {
|
|
|
5751
5568
|
return [];
|
|
5752
5569
|
}
|
|
5753
5570
|
static matchValuesValidator(matchTo) {
|
|
5754
|
-
return (control) => !!control.parent &&
|
|
5755
|
-
!!control.parent.value &&
|
|
5756
|
-
control.value === control.parent.controls[matchTo].value
|
|
5571
|
+
return (control) => !!control.parent && !!control.parent.value && control.value === control.parent.controls[matchTo].value
|
|
5757
5572
|
? null
|
|
5758
5573
|
: { isMatching: false };
|
|
5759
5574
|
}
|
|
5760
5575
|
static requiredIf(value) {
|
|
5761
|
-
return (control) => !!control.parent &&
|
|
5762
|
-
!!control.parent.value &&
|
|
5763
|
-
control.value != null &&
|
|
5764
|
-
value
|
|
5765
|
-
? null
|
|
5766
|
-
: { isMatching: false };
|
|
5576
|
+
return (control) => !!control.parent && !!control.parent.value && control.value != null && value ? null : { isMatching: false };
|
|
5767
5577
|
}
|
|
5768
5578
|
static initFormFromColumns(columns, dataItem) {
|
|
5769
5579
|
const form = new UntypedFormGroup({});
|
|
@@ -5780,10 +5590,7 @@ class FormsUtil {
|
|
|
5780
5590
|
disabled: !column.editable,
|
|
5781
5591
|
}, {
|
|
5782
5592
|
validators: FormsUtil.getValidators(column),
|
|
5783
|
-
updateOn: column.filterType === FilterType.number ||
|
|
5784
|
-
column.filterType === FilterType.string
|
|
5785
|
-
? 'blur'
|
|
5786
|
-
: 'change',
|
|
5593
|
+
updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change',
|
|
5787
5594
|
});
|
|
5788
5595
|
}
|
|
5789
5596
|
static getValidators(column) {
|
|
@@ -5836,7 +5643,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
5836
5643
|
type: Directive,
|
|
5837
5644
|
args: [{
|
|
5838
5645
|
selector: '[tetaPropertyGridItemDescription]',
|
|
5839
|
-
standalone: true
|
|
5646
|
+
standalone: true,
|
|
5840
5647
|
}]
|
|
5841
5648
|
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
|
|
5842
5649
|
type: Input,
|
|
@@ -5881,7 +5688,7 @@ class TableColumn extends FilterItem {
|
|
|
5881
5688
|
this.minValue = options?.minValue;
|
|
5882
5689
|
this.maxLength = options?.maxLength;
|
|
5883
5690
|
this.required = options?.required;
|
|
5884
|
-
this.columns = options?.columns?.map(x => new TableColumn(x)) ?? [];
|
|
5691
|
+
this.columns = options?.columns?.map((x) => new TableColumn(x)) ?? [];
|
|
5885
5692
|
this.validators = options?.validators;
|
|
5886
5693
|
}
|
|
5887
5694
|
}
|
|
@@ -5936,11 +5743,11 @@ class ToggleComponent {
|
|
|
5936
5743
|
this.cdr.markForCheck();
|
|
5937
5744
|
}
|
|
5938
5745
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5939
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ToggleComponent, isStandalone: true, selector: "teta-toggle", inputs: { palette: "palette", noLabel: "noLabel", disabled: "disabled" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class.toggle": "this.toggleClass", "class.toggle_disabled": "this.disabled" } }, providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (!noLabel) {\n
|
|
5746
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ToggleComponent, isStandalone: true, selector: "teta-toggle", inputs: { palette: "palette", noLabel: "noLabel", disabled: "disabled" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class.toggle": "this.toggleClass", "class.toggle_disabled": "this.disabled" } }, providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (!noLabel) {\n<span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n</span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5940
5747
|
}
|
|
5941
5748
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToggleComponent, decorators: [{
|
|
5942
5749
|
type: Component,
|
|
5943
|
-
args: [{ selector: 'teta-toggle', providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (!noLabel) {\n
|
|
5750
|
+
args: [{ selector: 'teta-toggle', providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (!noLabel) {\n<span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n</span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n" }]
|
|
5944
5751
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
|
|
5945
5752
|
type: HostBinding,
|
|
5946
5753
|
args: ['attr.tabindex']
|
|
@@ -5972,7 +5779,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
5972
5779
|
type: Directive,
|
|
5973
5780
|
args: [{
|
|
5974
5781
|
selector: '[tetaSelectOption]',
|
|
5975
|
-
standalone: true
|
|
5782
|
+
standalone: true,
|
|
5976
5783
|
}]
|
|
5977
5784
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
5978
5785
|
|
|
@@ -5987,7 +5794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
5987
5794
|
type: Directive,
|
|
5988
5795
|
args: [{
|
|
5989
5796
|
selector: '[tetaSelectValue]',
|
|
5990
|
-
standalone: true
|
|
5797
|
+
standalone: true,
|
|
5991
5798
|
}]
|
|
5992
5799
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
5993
5800
|
|
|
@@ -6005,7 +5812,7 @@ class HighlightDirective {
|
|
|
6005
5812
|
.toLowerCase()
|
|
6006
5813
|
.replace(pattern, '\\$&')
|
|
6007
5814
|
.split(' ')
|
|
6008
|
-
.filter(t => t.length > 0)
|
|
5815
|
+
.filter((t) => t.length > 0)
|
|
6009
5816
|
.join('|');
|
|
6010
5817
|
this._initialElement = this.elementRef.nativeElement.innerHTML;
|
|
6011
5818
|
this.recursiveReplaceNode(this.elementRef.nativeElement.childNodes, searchWithOutRegExp);
|
|
@@ -6021,7 +5828,7 @@ class HighlightDirective {
|
|
|
6021
5828
|
nodes.forEach((node) => {
|
|
6022
5829
|
cacheNodes.push(node);
|
|
6023
5830
|
});
|
|
6024
|
-
cacheNodes.forEach(node => {
|
|
5831
|
+
cacheNodes.forEach((node) => {
|
|
6025
5832
|
if (node.nodeType === 3) {
|
|
6026
5833
|
if (node.nodeValue && node.nodeValue.search(new RegExp(searchWithOutRegExp, 'i')) > -1) {
|
|
6027
5834
|
match = true;
|
|
@@ -6039,8 +5846,7 @@ class HighlightDirective {
|
|
|
6039
5846
|
return;
|
|
6040
5847
|
}
|
|
6041
5848
|
const tempDiv = document.createElement('div');
|
|
6042
|
-
tempDiv.innerHTML = textNode.nodeValue
|
|
6043
|
-
.replace(new RegExp(searchWithOutRegExp, 'gi'), match => `<mark>${match}</mark>`);
|
|
5849
|
+
tempDiv.innerHTML = textNode.nodeValue.replace(new RegExp(searchWithOutRegExp, 'gi'), (match) => `<mark>${match}</mark>`);
|
|
6044
5850
|
const parentNode = textNode.parentNode;
|
|
6045
5851
|
if (parentNode) {
|
|
6046
5852
|
while (tempDiv.firstChild) {
|
|
@@ -6065,9 +5871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
6065
5871
|
class SelectComponent {
|
|
6066
5872
|
set options(options) {
|
|
6067
5873
|
this._options = options;
|
|
6068
|
-
if (this._internalValue !== null &&
|
|
6069
|
-
this._internalValue !== undefined &&
|
|
6070
|
-
this.options) {
|
|
5874
|
+
if (this._internalValue !== null && this._internalValue !== undefined && this.options) {
|
|
6071
5875
|
this.getSelectedValue(this._internalValue);
|
|
6072
5876
|
}
|
|
6073
5877
|
}
|
|
@@ -6084,9 +5888,7 @@ class SelectComponent {
|
|
|
6084
5888
|
if (!this.searchText) {
|
|
6085
5889
|
return this.options;
|
|
6086
5890
|
}
|
|
6087
|
-
return this.options?.filter(option => this.getSearchString(option)
|
|
6088
|
-
.toLowerCase()
|
|
6089
|
-
.indexOf(this.searchText.toLowerCase()) >= 0);
|
|
5891
|
+
return this.options?.filter((option) => this.getSearchString(option).toLowerCase().indexOf(this.searchText.toLowerCase()) >= 0);
|
|
6090
5892
|
}
|
|
6091
5893
|
constructor(_cdr, _elementRef, _config) {
|
|
6092
5894
|
this._cdr = _cdr;
|
|
@@ -6130,7 +5932,7 @@ class SelectComponent {
|
|
|
6130
5932
|
else {
|
|
6131
5933
|
this.value = [...this.value, option];
|
|
6132
5934
|
}
|
|
6133
|
-
this._internalValue = this.value.map(_ => this.getValue(_));
|
|
5935
|
+
this._internalValue = this.value.map((_) => this.getValue(_));
|
|
6134
5936
|
this.onChange(this._internalValue);
|
|
6135
5937
|
}
|
|
6136
5938
|
else {
|
|
@@ -6153,11 +5955,11 @@ class SelectComponent {
|
|
|
6153
5955
|
removeItemClick(option, event) {
|
|
6154
5956
|
event.stopPropagation();
|
|
6155
5957
|
this.removeItem(option);
|
|
6156
|
-
this._internalValue = this.value.map(_ => this.getValue(_));
|
|
5958
|
+
this._internalValue = this.value.map((_) => this.getValue(_));
|
|
6157
5959
|
this.onChange(this._internalValue);
|
|
6158
5960
|
}
|
|
6159
5961
|
removeItem(option) {
|
|
6160
|
-
this.value = this.value.filter(_ => _ !== option);
|
|
5962
|
+
this.value = this.value.filter((_) => _ !== option);
|
|
6161
5963
|
}
|
|
6162
5964
|
search(text) {
|
|
6163
5965
|
this.searchText = text;
|
|
@@ -6216,14 +6018,10 @@ class SelectComponent {
|
|
|
6216
6018
|
getSelectedValue(value) {
|
|
6217
6019
|
if (this.multiple) {
|
|
6218
6020
|
this.value =
|
|
6219
|
-
value && this.options
|
|
6220
|
-
? this.options.filter(option => value.indexOf(this.getValue(option)) > -1)
|
|
6221
|
-
: [];
|
|
6021
|
+
value && this.options ? this.options.filter((option) => value.indexOf(this.getValue(option)) > -1) : [];
|
|
6222
6022
|
}
|
|
6223
6023
|
else {
|
|
6224
|
-
this.value =
|
|
6225
|
-
this.options &&
|
|
6226
|
-
this.options?.find(option => this.getValue(option) === value);
|
|
6024
|
+
this.value = this.options && this.options?.find((option) => this.getValue(option) === value);
|
|
6227
6025
|
}
|
|
6228
6026
|
}
|
|
6229
6027
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -6233,7 +6031,7 @@ class SelectComponent {
|
|
|
6233
6031
|
useExisting: forwardRef(() => SelectComponent),
|
|
6234
6032
|
multi: true,
|
|
6235
6033
|
},
|
|
6236
|
-
], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "@if (locale|async; as loc){\n
|
|
6034
|
+
], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "@if (locale|async; as loc){\n<teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n>\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n } @if ((value=== null ||value=== undefined || value?.length === 0)&&!multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n } @if (visibleOptions?.length) { @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n } @if (virtual) {\n <teta-scrollable class=\"column column_auto padding-h-2\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto padding-h-2\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n } } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n } @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n</teta-dropdown>\n<ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n</ng-template>\n<ng-template #optionDefault let-option>\n {{ getText(option) }}\n</ng-template>\n<ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n } @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n</ng-template>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { 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"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6237
6035
|
}
|
|
6238
6036
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectComponent, decorators: [{
|
|
6239
6037
|
type: Component,
|
|
@@ -6259,7 +6057,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
6259
6057
|
CdkVirtualForOf,
|
|
6260
6058
|
HighlightDirective,
|
|
6261
6059
|
AsyncPipe,
|
|
6262
|
-
], template: "@if (locale|async; as loc){\n
|
|
6060
|
+
], template: "@if (locale|async; as loc){\n<teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n>\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n } @if ((value=== null ||value=== undefined || value?.length === 0)&&!multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n } @if (visibleOptions?.length) { @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n } @if (virtual) {\n <teta-scrollable class=\"column column_auto padding-h-2\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto padding-h-2\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n } } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n } @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n</teta-dropdown>\n<ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n</ng-template>\n<ng-template #optionDefault let-option>\n {{ getText(option) }}\n</ng-template>\n<ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n } @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n</ng-template>\n}\n" }]
|
|
6263
6061
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: TetaConfigService }], propDecorators: { multiple: [{
|
|
6264
6062
|
type: HostBinding,
|
|
6265
6063
|
args: ['class.select_multiple']
|
|
@@ -6350,7 +6148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
6350
6148
|
|
|
6351
6149
|
class PropertyGridItemComponent {
|
|
6352
6150
|
get template() {
|
|
6353
|
-
return this.itemTemplates.find(item => item.name === this.column.name);
|
|
6151
|
+
return this.itemTemplates.find((item) => item.name === this.column.name);
|
|
6354
6152
|
}
|
|
6355
6153
|
get formGroup() {
|
|
6356
6154
|
if (this._formGroup instanceof FormGroup) {
|
|
@@ -6384,8 +6182,7 @@ class PropertyGridItemComponent {
|
|
|
6384
6182
|
getDict() {
|
|
6385
6183
|
const dict = this.dict ? this.dict[this.column.name] : [];
|
|
6386
6184
|
if (this.column.parentName?.length > 0) {
|
|
6387
|
-
return dict?.filter((dictItem) => dictItem.parentId ===
|
|
6388
|
-
this.formGroup?.getRawValue()[this.column.parentName]);
|
|
6185
|
+
return dict?.filter((dictItem) => dictItem.parentId === this.formGroup?.getRawValue()[this.column.parentName]);
|
|
6389
6186
|
}
|
|
6390
6187
|
return dict;
|
|
6391
6188
|
}
|
|
@@ -6424,7 +6221,7 @@ class PropertyGridItemComponent {
|
|
|
6424
6221
|
this._formSub?.unsubscribe();
|
|
6425
6222
|
this._formSub = this.formGroup?.controls[this.column.name]?.valueChanges
|
|
6426
6223
|
.pipe(takeWhile(() => this._alive))
|
|
6427
|
-
.subscribe(_ => {
|
|
6224
|
+
.subscribe((_) => {
|
|
6428
6225
|
this.controlValueChange.emit({
|
|
6429
6226
|
id: _,
|
|
6430
6227
|
name: this.column.name,
|
|
@@ -6433,7 +6230,7 @@ class PropertyGridItemComponent {
|
|
|
6433
6230
|
}
|
|
6434
6231
|
}
|
|
6435
6232
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$2.TranslocoService }, { token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6436
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable || !hideNonEditable) {\n
|
|
6233
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable || !hideNonEditable) {\n<teta-input\n [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n>\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template; context: { $implicit: formGroup?.get(column.name) }\"\n ></ng-container>\n } @else { @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } } }\n <ng-template #default>\n @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n</teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
6437
6234
|
}
|
|
6438
6235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
|
|
6439
6236
|
type: Component,
|
|
@@ -6447,7 +6244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
6447
6244
|
ToggleComponent,
|
|
6448
6245
|
TextFieldComponent,
|
|
6449
6246
|
DisableControlDirective,
|
|
6450
|
-
], template: "@if (editable || !hideNonEditable) {\n
|
|
6247
|
+
], template: "@if (editable || !hideNonEditable) {\n<teta-input\n [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n>\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template; context: { $implicit: formGroup?.get(column.name) }\"\n ></ng-container>\n } @else { @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } } }\n <ng-template #default>\n @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n</teta-input>\n}\n" }]
|
|
6451
6248
|
}], ctorParameters: () => [{ type: i1$2.TranslocoService }, { type: i2.ControlContainer, decorators: [{
|
|
6452
6249
|
type: Optional
|
|
6453
6250
|
}] }], propDecorators: { column: [{
|
|
@@ -6492,11 +6289,11 @@ class PropertyGridGroupComponent {
|
|
|
6492
6289
|
return column.name;
|
|
6493
6290
|
}
|
|
6494
6291
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [{ token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6495
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart", itemTemplates: "itemTemplates" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs
|
|
6292
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart", itemTemplates: "itemTemplates" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column.caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) { @if (col.columns?.length < 1) { @if (column.editable\n || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n ></teta-property-grid-item>\n } } @if (col.columns?.length > 0) {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
6496
6293
|
}
|
|
6497
6294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
|
|
6498
6295
|
type: Component,
|
|
6499
|
-
args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], template: "<teta-expand-item>\n <span ngProjectAs
|
|
6296
|
+
args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column.caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) { @if (col.columns?.length < 1) { @if (column.editable\n || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n ></teta-property-grid-item>\n } } @if (col.columns?.length > 0) {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
6500
6297
|
}], ctorParameters: () => [{ type: i2.ControlContainer, decorators: [{
|
|
6501
6298
|
type: Optional
|
|
6502
6299
|
}] }], propDecorators: { column: [{
|
|
@@ -6551,9 +6348,9 @@ class PropertyGridComponent {
|
|
|
6551
6348
|
});
|
|
6552
6349
|
}
|
|
6553
6350
|
onControlValueChange(event) {
|
|
6554
|
-
const affected = this.columns.filter(_ => _.parentName === event.name);
|
|
6351
|
+
const affected = this.columns.filter((_) => _.parentName === event.name);
|
|
6555
6352
|
if (affected?.length) {
|
|
6556
|
-
affected.forEach(item => {
|
|
6353
|
+
affected.forEach((item) => {
|
|
6557
6354
|
const value = this.formGroup.getRawValue()[item.name];
|
|
6558
6355
|
if (value) {
|
|
6559
6356
|
const dictValue = this.getDictValue(value, item.name);
|
|
@@ -6574,19 +6371,14 @@ class PropertyGridComponent {
|
|
|
6574
6371
|
return column.name;
|
|
6575
6372
|
}
|
|
6576
6373
|
getDictValue(value, name) {
|
|
6577
|
-
return this.dict[name]?.find(_ => _.id === value);
|
|
6374
|
+
return this.dict[name]?.find((_) => _.id === value);
|
|
6578
6375
|
}
|
|
6579
6376
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6580
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns?.length) {
|
|
6377
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns?.length) { @for (column of columns; track trackColumns($index, column)) { @if (column.columns?.length < 1\n&& (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-item\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-item>\n} @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-group>\n} } }\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
6581
6378
|
}
|
|
6582
6379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
|
|
6583
6380
|
type: Component,
|
|
6584
|
-
args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
|
|
6585
|
-
PropertyGridItemComponent,
|
|
6586
|
-
FormsModule,
|
|
6587
|
-
ReactiveFormsModule,
|
|
6588
|
-
PropertyGridGroupComponent,
|
|
6589
|
-
], template: "@if (columns?.length) {\n @for (column of columns; track trackColumns($index, column)) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-item\n [dict]='dict'\n [column]='column'\n [item]='item'\n [id]='column.name'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-group\n [id]='column.name'\n [dict]='dict'\n [column]='column'\n [item]='item'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"] }]
|
|
6381
|
+
args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], template: "@if (columns?.length) { @for (column of columns; track trackColumns($index, column)) { @if (column.columns?.length < 1\n&& (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-item\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-item>\n} @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-group>\n} } }\n", styles: [":host{padding:12px 8px}\n"] }]
|
|
6590
6382
|
}], ctorParameters: () => [{ type: i2.ControlContainer, decorators: [{
|
|
6591
6383
|
type: Optional
|
|
6592
6384
|
}] }], propDecorators: { formClass: [{
|
|
@@ -6680,12 +6472,9 @@ class SidebarComponent {
|
|
|
6680
6472
|
}
|
|
6681
6473
|
ngOnInit() { }
|
|
6682
6474
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6683
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SidebarComponent, isStandalone: true, selector: "teta-sidebar", inputs: { position: "position", backdrop: "backdrop", open: "open", className: "className" }, outputs: { openChange: "openChange" }, host: { properties: { "style.z-index": "this.zIndex" } }, ngImport: i0, template: "@if (backdrop && open) {\n
|
|
6475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SidebarComponent, isStandalone: true, selector: "teta-sidebar", inputs: { position: "position", backdrop: "backdrop", open: "open", className: "className" }, outputs: { openChange: "openChange" }, host: { properties: { "style.z-index": "this.zIndex" } }, ngImport: i0, template: "@if (backdrop && open) {\n<div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n} @if (open) {\n<div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n>\n <ng-content></ng-content>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
|
|
6684
6476
|
trigger('sidebar', [
|
|
6685
|
-
transition('void => *', [
|
|
6686
|
-
style({ opacity: '0' }),
|
|
6687
|
-
animate(300, style({ opacity: '1' })),
|
|
6688
|
-
]),
|
|
6477
|
+
transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
|
|
6689
6478
|
transition('* => void', [animate(300, style({ opacity: '0' }))]),
|
|
6690
6479
|
]),
|
|
6691
6480
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -6694,13 +6483,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
6694
6483
|
type: Component,
|
|
6695
6484
|
args: [{ selector: 'teta-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
6696
6485
|
trigger('sidebar', [
|
|
6697
|
-
transition('void => *', [
|
|
6698
|
-
style({ opacity: '0' }),
|
|
6699
|
-
animate(300, style({ opacity: '1' })),
|
|
6700
|
-
]),
|
|
6486
|
+
transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
|
|
6701
6487
|
transition('* => void', [animate(300, style({ opacity: '0' }))]),
|
|
6702
6488
|
]),
|
|
6703
|
-
], standalone: true, imports: [NgClass], template: "@if (backdrop && open) {\n
|
|
6489
|
+
], standalone: true, imports: [NgClass], template: "@if (backdrop && open) {\n<div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n} @if (open) {\n<div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n>\n <ng-content></ng-content>\n</div>\n}\n" }]
|
|
6704
6490
|
}], ctorParameters: () => [], propDecorators: { position: [{
|
|
6705
6491
|
type: Input
|
|
6706
6492
|
}], backdrop: [{
|
|
@@ -6730,7 +6516,7 @@ class SwitchService {
|
|
|
6730
6516
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SwitchService, decorators: [{
|
|
6731
6517
|
type: Injectable,
|
|
6732
6518
|
args: [{
|
|
6733
|
-
providedIn: 'root'
|
|
6519
|
+
providedIn: 'root',
|
|
6734
6520
|
}]
|
|
6735
6521
|
}], ctorParameters: () => [] });
|
|
6736
6522
|
|
|
@@ -6761,18 +6547,15 @@ class SwitchComponent {
|
|
|
6761
6547
|
this.svc.setValue(model);
|
|
6762
6548
|
this.cdr.markForCheck();
|
|
6763
6549
|
}
|
|
6764
|
-
onChange(_) {
|
|
6765
|
-
}
|
|
6766
|
-
onTouched() {
|
|
6767
|
-
}
|
|
6550
|
+
onChange(_) { }
|
|
6551
|
+
onTouched() { }
|
|
6768
6552
|
registerOnChange(fn) {
|
|
6769
6553
|
this.onChange = fn;
|
|
6770
6554
|
}
|
|
6771
6555
|
registerOnTouched(fn) {
|
|
6772
6556
|
this.onTouched = fn;
|
|
6773
6557
|
}
|
|
6774
|
-
ngOnInit() {
|
|
6775
|
-
}
|
|
6558
|
+
ngOnInit() { }
|
|
6776
6559
|
ngOnDestroy() {
|
|
6777
6560
|
this._alive = false;
|
|
6778
6561
|
}
|
|
@@ -6795,8 +6578,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
6795
6578
|
class SwitchButtonComponent {
|
|
6796
6579
|
get getClass() {
|
|
6797
6580
|
const result = [this.class, 'switch-button'];
|
|
6798
|
-
if (this.svcValue === this.value ||
|
|
6799
|
-
(this.svcValue instanceof Array && this.svcValue.indexOf(this.value) >= 0)) {
|
|
6581
|
+
if (this.svcValue === this.value || (this.svcValue instanceof Array && this.svcValue.indexOf(this.value) >= 0)) {
|
|
6800
6582
|
result.push('switch-button_active');
|
|
6801
6583
|
}
|
|
6802
6584
|
return result.join(' ');
|
|
@@ -6989,9 +6771,7 @@ class DateUtil {
|
|
|
6989
6771
|
return res;
|
|
6990
6772
|
}
|
|
6991
6773
|
static toISOString(date) {
|
|
6992
|
-
return
|
|
6993
|
-
.toISOString()
|
|
6994
|
-
.slice(0, -5) + 'Z');
|
|
6774
|
+
return new Date(date - new Date().getTimezoneOffset() * 60000).toISOString().slice(0, -5) + 'Z';
|
|
6995
6775
|
}
|
|
6996
6776
|
static isValidDate(date) {
|
|
6997
6777
|
return date instanceof Date && !isNaN(date.getTime());
|
|
@@ -7120,32 +6900,25 @@ class StateUtil {
|
|
|
7120
6900
|
}
|
|
7121
6901
|
static hasFilteredColumns(state) {
|
|
7122
6902
|
let hasFilters = false;
|
|
7123
|
-
if (state.stringFilters &&
|
|
7124
|
-
state.stringFilters.some((filter) => filter.value && filter.value.length)) {
|
|
6903
|
+
if (state.stringFilters && state.stringFilters.some((filter) => filter.value && filter.value.length)) {
|
|
7125
6904
|
hasFilters = true;
|
|
7126
6905
|
}
|
|
7127
|
-
if (state.listFilters &&
|
|
7128
|
-
state.listFilters.some((filter) => filter.value && filter.value.length)) {
|
|
6906
|
+
if (state.listFilters && state.listFilters.some((filter) => filter.value && filter.value.length)) {
|
|
7129
6907
|
hasFilters = true;
|
|
7130
6908
|
}
|
|
7131
6909
|
if (state.numericFilters &&
|
|
7132
6910
|
state.numericFilters.some((filter) => filter &&
|
|
7133
6911
|
filter.value &&
|
|
7134
|
-
((filter.value.lessThan !== null &&
|
|
7135
|
-
filter.value.
|
|
7136
|
-
(filter.value.
|
|
7137
|
-
filter.value.greaterThan !== undefined) ||
|
|
7138
|
-
(filter.value.equalsTo !== null &&
|
|
7139
|
-
filter.value.equalsTo !== undefined)))) {
|
|
6912
|
+
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
6913
|
+
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined) ||
|
|
6914
|
+
(filter.value.equalsTo !== null && filter.value.equalsTo !== undefined)))) {
|
|
7140
6915
|
hasFilters = true;
|
|
7141
6916
|
}
|
|
7142
6917
|
if (state.dateFilters &&
|
|
7143
6918
|
state.dateFilters.some((filter) => filter &&
|
|
7144
6919
|
filter.value &&
|
|
7145
|
-
((filter.value.lessThan !== null &&
|
|
7146
|
-
filter.value.
|
|
7147
|
-
(filter.value.greaterThan !== null &&
|
|
7148
|
-
filter.value.greaterThan !== undefined)))) {
|
|
6920
|
+
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
6921
|
+
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined)))) {
|
|
7149
6922
|
hasFilters = true;
|
|
7150
6923
|
}
|
|
7151
6924
|
return hasFilters;
|
|
@@ -7186,12 +6959,9 @@ class StateUtil {
|
|
|
7186
6959
|
const filter = state.numericFilters.find((x) => x.field === column.filterField);
|
|
7187
6960
|
if (filter &&
|
|
7188
6961
|
filter.value &&
|
|
7189
|
-
((filter.value.lessThan !== null &&
|
|
7190
|
-
filter.value.
|
|
7191
|
-
(filter.value.
|
|
7192
|
-
filter.value.greaterThan !== undefined) ||
|
|
7193
|
-
(filter.value.equalsTo !== null &&
|
|
7194
|
-
filter.value.equalsTo !== undefined))) {
|
|
6962
|
+
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
6963
|
+
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined) ||
|
|
6964
|
+
(filter.value.equalsTo !== null && filter.value.equalsTo !== undefined))) {
|
|
7195
6965
|
filtered = true;
|
|
7196
6966
|
}
|
|
7197
6967
|
}
|
|
@@ -7201,10 +6971,8 @@ class StateUtil {
|
|
|
7201
6971
|
const filter = state.dateFilters.find((x) => x.field === column.filterField);
|
|
7202
6972
|
if (filter &&
|
|
7203
6973
|
filter.value &&
|
|
7204
|
-
((filter.value.lessThan !== null &&
|
|
7205
|
-
filter.value.
|
|
7206
|
-
(filter.value.greaterThan !== null &&
|
|
7207
|
-
filter.value.greaterThan !== undefined))) {
|
|
6974
|
+
((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
|
|
6975
|
+
(filter.value.greaterThan !== null && filter.value.greaterThan !== undefined))) {
|
|
7208
6976
|
filtered = true;
|
|
7209
6977
|
}
|
|
7210
6978
|
}
|
|
@@ -7326,7 +7094,7 @@ class TableService {
|
|
|
7326
7094
|
this.scrollIndex = this._scrollIndex.asObservable();
|
|
7327
7095
|
}
|
|
7328
7096
|
setData(data) {
|
|
7329
|
-
this._displayData.next(data?.map(item => new TableRow({
|
|
7097
|
+
this._displayData.next(data?.map((item) => new TableRow({
|
|
7330
7098
|
data: item,
|
|
7331
7099
|
})) ?? []);
|
|
7332
7100
|
}
|
|
@@ -7337,13 +7105,8 @@ class TableService {
|
|
|
7337
7105
|
this._filterOptions.next(filterOptions);
|
|
7338
7106
|
}
|
|
7339
7107
|
setColumns(columns) {
|
|
7340
|
-
this.initialColumns = columns ? columns.map(_ => new TableColumn(_)) : [];
|
|
7341
|
-
const excludeKeys = [
|
|
7342
|
-
'editable',
|
|
7343
|
-
'cellComponent',
|
|
7344
|
-
'headCellComponent',
|
|
7345
|
-
'headDropdownConfig',
|
|
7346
|
-
];
|
|
7108
|
+
this.initialColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
|
|
7109
|
+
const excludeKeys = ['editable', 'cellComponent', 'headCellComponent', 'headDropdownConfig'];
|
|
7347
7110
|
this.initialColumnsHash = objectHash(this.initialColumns, {
|
|
7348
7111
|
algorithm: 'sha1',
|
|
7349
7112
|
ignoreUnknown: true,
|
|
@@ -7371,7 +7134,7 @@ class TableService {
|
|
|
7371
7134
|
if (this._columnsCookieName) {
|
|
7372
7135
|
localStorage.setItem(this._columnsCookieName, JSON.stringify({
|
|
7373
7136
|
hash: this.initialColumnsHash,
|
|
7374
|
-
columns: this.displayColumns.map(_ => new TableColumnStore(_)),
|
|
7137
|
+
columns: this.displayColumns.map((_) => new TableColumnStore(_)),
|
|
7375
7138
|
}));
|
|
7376
7139
|
}
|
|
7377
7140
|
}
|
|
@@ -7381,7 +7144,7 @@ class TableService {
|
|
|
7381
7144
|
}
|
|
7382
7145
|
}
|
|
7383
7146
|
setDisplayColumns(columns) {
|
|
7384
|
-
this.displayColumns = columns ? columns.map(_ => new TableColumn(_)) : [];
|
|
7147
|
+
this.displayColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
|
|
7385
7148
|
this._columns.next(this.displayColumns);
|
|
7386
7149
|
}
|
|
7387
7150
|
restoreColumns() {
|
|
@@ -7395,7 +7158,7 @@ class TableService {
|
|
|
7395
7158
|
}
|
|
7396
7159
|
restoreColumnsState(columns) {
|
|
7397
7160
|
return columns.map((column) => {
|
|
7398
|
-
const found = ArrayUtil.findRecursive(this.initialColumns, item => item.name === column.name, 'columns');
|
|
7161
|
+
const found = ArrayUtil.findRecursive(this.initialColumns, (item) => item.name === column.name, 'columns');
|
|
7399
7162
|
const resultColumn = new TableColumn(found);
|
|
7400
7163
|
resultColumn.width = column.width;
|
|
7401
7164
|
resultColumn.flex = column.flex;
|
|
@@ -7419,9 +7182,7 @@ class TableService {
|
|
|
7419
7182
|
}
|
|
7420
7183
|
restoreState() {
|
|
7421
7184
|
let state;
|
|
7422
|
-
if (this._cookieName &&
|
|
7423
|
-
this._cookieName?.length > 0 &&
|
|
7424
|
-
FilterState.restore(this._cookieName)) {
|
|
7185
|
+
if (this._cookieName && this._cookieName?.length > 0 && FilterState.restore(this._cookieName)) {
|
|
7425
7186
|
let newState = Object.assign(this._state.value, FilterState.restore(this._cookieName));
|
|
7426
7187
|
newState = DateUtil.convertDateStringsToDates(newState);
|
|
7427
7188
|
state = new FilterState(newState);
|
|
@@ -7515,7 +7276,7 @@ class TableService {
|
|
|
7515
7276
|
lockPreviousColumns(column, element) {
|
|
7516
7277
|
const flat = ArrayUtil.flatten(this.displayColumns, 'columns', true).sort((a, b) => Number(b.locked) - Number(a.locked));
|
|
7517
7278
|
const index = flat.indexOf(column);
|
|
7518
|
-
const previous = flat.slice(0, index).filter(_ => _.flex > 0);
|
|
7279
|
+
const previous = flat.slice(0, index).filter((_) => _.flex > 0);
|
|
7519
7280
|
if (previous?.length > 0) {
|
|
7520
7281
|
const tableElement = this.getTableElement(element);
|
|
7521
7282
|
previous.forEach((item) => {
|
|
@@ -7544,7 +7305,7 @@ class TableService {
|
|
|
7544
7305
|
autosizeAllColumns(target) {
|
|
7545
7306
|
const tableElement = this.getTableElement(target);
|
|
7546
7307
|
const flat = ArrayUtil.flatten(this.displayColumns, 'columns', true);
|
|
7547
|
-
flat.forEach(col => this.setColumnAutoWidth(col, tableElement));
|
|
7308
|
+
flat.forEach((col) => this.setColumnAutoWidth(col, tableElement));
|
|
7548
7309
|
this._columns.next(this.displayColumns);
|
|
7549
7310
|
this.saveColumnsState();
|
|
7550
7311
|
}
|
|
@@ -7590,23 +7351,20 @@ class TableService {
|
|
|
7590
7351
|
}
|
|
7591
7352
|
}
|
|
7592
7353
|
startEditCell(cellEvent) {
|
|
7593
|
-
if (this._currentEditCell?.column !== cellEvent?.column ||
|
|
7594
|
-
this._currentEditCell?.row !== cellEvent?.row) {
|
|
7354
|
+
if (this._currentEditCell?.column !== cellEvent?.column || this._currentEditCell?.row !== cellEvent?.row) {
|
|
7595
7355
|
if (this._currentEditCell != null) {
|
|
7596
7356
|
this._editCellStop.next(this._currentEditCell);
|
|
7597
7357
|
}
|
|
7598
7358
|
const column = this.getColumnByName(cellEvent?.column);
|
|
7599
|
-
if (boolOrFuncCallback(this.rowEditable)(this.getRowByIndex(cellEvent?.row)?.data)
|
|
7600
|
-
|
|
7601
|
-
|
|
7602
|
-
|
|
7603
|
-
|
|
7604
|
-
})) {
|
|
7359
|
+
if (boolOrFuncCallback(this.rowEditable)(this.getRowByIndex(cellEvent?.row)?.data) &&
|
|
7360
|
+
boolOrFuncCallback(column?.editable)({
|
|
7361
|
+
row: this.getRowByIndex(cellEvent?.row)?.data,
|
|
7362
|
+
column: column,
|
|
7363
|
+
})) {
|
|
7605
7364
|
this._editCellStart.next(cellEvent);
|
|
7606
7365
|
this._currentEditCell = cellEvent;
|
|
7607
7366
|
const key = cellEvent?.event?.key;
|
|
7608
|
-
if (key &&
|
|
7609
|
-
(key.length === 1 || (key === 'Delete' && !column.required))) {
|
|
7367
|
+
if (key && (key.length === 1 || (key === 'Delete' && !column.required))) {
|
|
7610
7368
|
this.clearValue(cellEvent);
|
|
7611
7369
|
}
|
|
7612
7370
|
}
|
|
@@ -7620,23 +7378,23 @@ class TableService {
|
|
|
7620
7378
|
}
|
|
7621
7379
|
selectOrDeselectRow(row) {
|
|
7622
7380
|
if (this._selectedRows.value.indexOf(row) >= 0) {
|
|
7623
|
-
this._selectedRows.next(this._selectedRows.value.filter(_ => _ !== row));
|
|
7381
|
+
this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
|
|
7624
7382
|
}
|
|
7625
7383
|
else {
|
|
7626
7384
|
this._selectedRows.next([...this._selectedRows.value, row]);
|
|
7627
7385
|
}
|
|
7628
7386
|
}
|
|
7629
7387
|
selectRange(row) {
|
|
7630
|
-
const index = this._displayData.value.findIndex(_ => _.data === row);
|
|
7388
|
+
const index = this._displayData.value.findIndex((_) => _.data === row);
|
|
7631
7389
|
let minIndex = this._selectedRows.value.reduce((prev, curr) => {
|
|
7632
|
-
const newIndex = this._displayData.value.findIndex(_ => _.data === curr);
|
|
7390
|
+
const newIndex = this._displayData.value.findIndex((_) => _.data === curr);
|
|
7633
7391
|
if (newIndex < prev) {
|
|
7634
7392
|
return newIndex;
|
|
7635
7393
|
}
|
|
7636
7394
|
return prev;
|
|
7637
7395
|
}, this._displayData.value.length);
|
|
7638
7396
|
let maxIndex = this._selectedRows.value.reduce((prev, curr) => {
|
|
7639
|
-
const newIndex = this._displayData.value.findIndex(_ => _.data === curr);
|
|
7397
|
+
const newIndex = this._displayData.value.findIndex((_) => _.data === curr);
|
|
7640
7398
|
if (newIndex > prev) {
|
|
7641
7399
|
return newIndex;
|
|
7642
7400
|
}
|
|
@@ -7651,9 +7409,7 @@ class TableService {
|
|
|
7651
7409
|
if (minIndex < index && index < maxIndex) {
|
|
7652
7410
|
maxIndex = index;
|
|
7653
7411
|
}
|
|
7654
|
-
this._selectedRows.next([
|
|
7655
|
-
...this._displayData.value.slice(minIndex, maxIndex + 1).map(_ => _.data),
|
|
7656
|
-
]);
|
|
7412
|
+
this._selectedRows.next([...this._displayData.value.slice(minIndex, maxIndex + 1).map((_) => _.data)]);
|
|
7657
7413
|
}
|
|
7658
7414
|
selectRow(row) {
|
|
7659
7415
|
if (this.selectType === SelectType.none) {
|
|
@@ -7665,10 +7421,10 @@ class TableService {
|
|
|
7665
7421
|
if (this.selectType === SelectType.none) {
|
|
7666
7422
|
return;
|
|
7667
7423
|
}
|
|
7668
|
-
this._selectedRows.next(this._selectedRows.value.filter(_ => _ !== row));
|
|
7424
|
+
this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
|
|
7669
7425
|
}
|
|
7670
7426
|
selectAll() {
|
|
7671
|
-
this._selectedRows.next(this._displayData.value.map(_ => _.data));
|
|
7427
|
+
this._selectedRows.next(this._displayData.value.map((_) => _.data));
|
|
7672
7428
|
}
|
|
7673
7429
|
deselectAll() {
|
|
7674
7430
|
this._selectedRows.next([]);
|
|
@@ -7676,12 +7432,10 @@ class TableService {
|
|
|
7676
7432
|
allRowsSelected() {
|
|
7677
7433
|
if (this._displayData.value?.length &&
|
|
7678
7434
|
this._selectedRows.value?.length &&
|
|
7679
|
-
this._displayData.value.every(_ => this._selectedRows.value.findIndex(selected => selected === _.data) >=
|
|
7680
|
-
0)) {
|
|
7435
|
+
this._displayData.value.every((_) => this._selectedRows.value.findIndex((selected) => selected === _.data) >= 0)) {
|
|
7681
7436
|
return true;
|
|
7682
7437
|
}
|
|
7683
|
-
else if (this._selectedRows.value == null ||
|
|
7684
|
-
this._selectedRows.value.length === 0) {
|
|
7438
|
+
else if (this._selectedRows.value == null || this._selectedRows.value.length === 0) {
|
|
7685
7439
|
return false;
|
|
7686
7440
|
}
|
|
7687
7441
|
return null;
|
|
@@ -7698,8 +7452,7 @@ class TableService {
|
|
|
7698
7452
|
}
|
|
7699
7453
|
setValue(cellValue) {
|
|
7700
7454
|
let value;
|
|
7701
|
-
if (typeof cellValue.row === 'object' &&
|
|
7702
|
-
typeof cellValue.column === 'object') {
|
|
7455
|
+
if (typeof cellValue.row === 'object' && typeof cellValue.column === 'object') {
|
|
7703
7456
|
value = {
|
|
7704
7457
|
row: this.getRowIndex(cellValue.row.data),
|
|
7705
7458
|
column: cellValue.column.name,
|
|
@@ -7718,7 +7471,7 @@ class TableService {
|
|
|
7718
7471
|
return undefined;
|
|
7719
7472
|
}
|
|
7720
7473
|
getRowIndex(row) {
|
|
7721
|
-
return this._displayData.value.findIndex(_ => _.data === row);
|
|
7474
|
+
return this._displayData.value.findIndex((_) => _.data === row);
|
|
7722
7475
|
}
|
|
7723
7476
|
getEventCell(event) {
|
|
7724
7477
|
return event.composedPath().find((target) => {
|
|
@@ -7800,9 +7553,7 @@ class TableService {
|
|
|
7800
7553
|
const columns = this.getFlatColumns();
|
|
7801
7554
|
const colIndex = columns.findIndex((col) => col.name === coords?.column);
|
|
7802
7555
|
const rowIndex = coords?.row;
|
|
7803
|
-
if (colIndex >= 0 &&
|
|
7804
|
-
rowIndex >= 0 &&
|
|
7805
|
-
rowIndex < this._displayData.value.length - 1) {
|
|
7556
|
+
if (colIndex >= 0 && rowIndex >= 0 && rowIndex < this._displayData.value.length - 1) {
|
|
7806
7557
|
return {
|
|
7807
7558
|
column: columns[colIndex]?.name,
|
|
7808
7559
|
row: rowIndex + 1,
|
|
@@ -7823,14 +7574,14 @@ class TableService {
|
|
|
7823
7574
|
return null;
|
|
7824
7575
|
}
|
|
7825
7576
|
getColumnByName(columnName) {
|
|
7826
|
-
return ArrayUtil.findRecursive(this.displayColumns, iterableNode => columnName === iterableNode.name, 'columns');
|
|
7577
|
+
return ArrayUtil.findRecursive(this.displayColumns, (iterableNode) => columnName === iterableNode.name, 'columns');
|
|
7827
7578
|
}
|
|
7828
7579
|
scrollToIndex(index) {
|
|
7829
7580
|
this._scrollIndex.next(null);
|
|
7830
7581
|
this._scrollIndex.next(index);
|
|
7831
7582
|
}
|
|
7832
7583
|
getVisibleColumns() {
|
|
7833
|
-
const visible = ArrayUtil.flatten(this._columns.value, 'columns', true).filter(_ => this._hiddenColumns.value.indexOf(_.name) < 0);
|
|
7584
|
+
const visible = ArrayUtil.flatten(this._columns.value, 'columns', true).filter((_) => this._hiddenColumns.value.indexOf(_.name) < 0);
|
|
7834
7585
|
return visible.sort((a, b) => Number(b.locked) - Number(a.locked));
|
|
7835
7586
|
}
|
|
7836
7587
|
getCellInstance(coords) {
|
|
@@ -7845,7 +7596,7 @@ class TableService {
|
|
|
7845
7596
|
return ArrayUtil.flatten(this.displayColumns, 'columns', true).sort((a, b) => Number(b.locked) - Number(a.locked));
|
|
7846
7597
|
}
|
|
7847
7598
|
findParent(column, columns) {
|
|
7848
|
-
const found = columns.find(x => x.name === column.name);
|
|
7599
|
+
const found = columns.find((x) => x.name === column.name);
|
|
7849
7600
|
if (found !== null && found !== undefined) {
|
|
7850
7601
|
return columns;
|
|
7851
7602
|
}
|
|
@@ -7861,7 +7612,7 @@ class TableService {
|
|
|
7861
7612
|
return null;
|
|
7862
7613
|
}
|
|
7863
7614
|
findParentColumn(column, columns) {
|
|
7864
|
-
const found = columns.find(x => x.columns.indexOf(column) >= 0);
|
|
7615
|
+
const found = columns.find((x) => x.columns.indexOf(column) >= 0);
|
|
7865
7616
|
if (found !== null && found !== undefined) {
|
|
7866
7617
|
return found;
|
|
7867
7618
|
}
|
|
@@ -7882,13 +7633,13 @@ class TableService {
|
|
|
7882
7633
|
setColumnAutoWidth(column, table) {
|
|
7883
7634
|
const cells = table.querySelectorAll(`teta-cell[data-column="${column.name}"] .cell-text`);
|
|
7884
7635
|
let maxWidth = 0;
|
|
7885
|
-
cells.forEach(cell => {
|
|
7636
|
+
cells.forEach((cell) => {
|
|
7886
7637
|
if (cell.scrollWidth > maxWidth) {
|
|
7887
7638
|
maxWidth = cell.scrollWidth;
|
|
7888
7639
|
}
|
|
7889
7640
|
});
|
|
7890
7641
|
const aggCells = table.querySelectorAll(`.aggregate-cell[data-column="${column.name}"] .cell-text`);
|
|
7891
|
-
aggCells?.forEach(cell => {
|
|
7642
|
+
aggCells?.forEach((cell) => {
|
|
7892
7643
|
if (cell.scrollWidth > maxWidth) {
|
|
7893
7644
|
maxWidth = cell.scrollWidth;
|
|
7894
7645
|
}
|
|
@@ -7984,9 +7735,7 @@ class CellComponentBase {
|
|
|
7984
7735
|
}
|
|
7985
7736
|
ngOnInit() {
|
|
7986
7737
|
this.init();
|
|
7987
|
-
this.formGroup?.controls[this.column.name]?.valueChanges
|
|
7988
|
-
.pipe(takeWhile(() => this._alive))
|
|
7989
|
-
.subscribe(value => {
|
|
7738
|
+
this.formGroup?.controls[this.column.name]?.valueChanges.pipe(takeWhile(() => this._alive)).subscribe((value) => {
|
|
7990
7739
|
this.formGroup.updateValueAndValidity();
|
|
7991
7740
|
this.row.valid = this.formGroup?.valid;
|
|
7992
7741
|
this.row.data[this.column.name] = this.control.value;
|
|
@@ -7997,9 +7746,7 @@ class CellComponentBase {
|
|
|
7997
7746
|
});
|
|
7998
7747
|
}
|
|
7999
7748
|
init() {
|
|
8000
|
-
this.svc.editRowStart
|
|
8001
|
-
.pipe(takeWhile(_ => this._alive))
|
|
8002
|
-
.subscribe((cell) => {
|
|
7749
|
+
this.svc.editRowStart.pipe(takeWhile((_) => this._alive)).subscribe((cell) => {
|
|
8003
7750
|
if (this.index === cell?.row && !this._edit) {
|
|
8004
7751
|
this.start(cell, 'row');
|
|
8005
7752
|
}
|
|
@@ -8007,24 +7754,16 @@ class CellComponentBase {
|
|
|
8007
7754
|
this.stop();
|
|
8008
7755
|
}
|
|
8009
7756
|
});
|
|
8010
|
-
this.svc.editCellStart
|
|
8011
|
-
.
|
|
8012
|
-
.subscribe((cell) => {
|
|
8013
|
-
if (this.index === cell?.row &&
|
|
8014
|
-
this.column.name === cell?.column &&
|
|
8015
|
-
!this._edit) {
|
|
7757
|
+
this.svc.editCellStart.pipe(takeWhile((_) => this._alive)).subscribe((cell) => {
|
|
7758
|
+
if (this.index === cell?.row && this.column.name === cell?.column && !this._edit) {
|
|
8016
7759
|
this.start(cell, 'cell');
|
|
8017
7760
|
}
|
|
8018
|
-
if ((this.index !== cell?.row || this.column.name !== cell?.column) &&
|
|
8019
|
-
this._edit) {
|
|
7761
|
+
if ((this.index !== cell?.row || this.column.name !== cell?.column) && this._edit) {
|
|
8020
7762
|
this.stop();
|
|
8021
7763
|
}
|
|
8022
7764
|
});
|
|
8023
|
-
this.svc.valueSet
|
|
8024
|
-
.
|
|
8025
|
-
.subscribe((cellValue) => {
|
|
8026
|
-
if (this.index === cellValue.row &&
|
|
8027
|
-
this.column.name === cellValue.column) {
|
|
7765
|
+
this.svc.valueSet.pipe(takeWhile((_) => this._alive)).subscribe((cellValue) => {
|
|
7766
|
+
if (this.index === cellValue.row && this.column.name === cellValue.column) {
|
|
8028
7767
|
this.row.data[this.column.name] = cellValue.value;
|
|
8029
7768
|
this.setupControl();
|
|
8030
7769
|
this.formGroup.updateValueAndValidity();
|
|
@@ -8102,16 +7841,11 @@ class NumericCellComponent extends CellComponentBase {
|
|
|
8102
7841
|
this.cdr.markForCheck();
|
|
8103
7842
|
}
|
|
8104
7843
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericCellComponent, isStandalone: true, selector: "teta-numeric-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"
|
|
7844
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericCellComponent, isStandalone: true, selector: "teta-numeric-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber : 2 }}\n</span>\n@if (edit) {\n<input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8106
7845
|
}
|
|
8107
7846
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericCellComponent, decorators: [{
|
|
8108
7847
|
type: Component,
|
|
8109
|
-
args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
|
|
8110
|
-
FormsModule,
|
|
8111
|
-
OnlyNumberDirective,
|
|
8112
|
-
ReactiveFormsModule,
|
|
8113
|
-
NumberPipe,
|
|
8114
|
-
], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{control?.value | tetaNumber : 2}}\n</span>\n@if (edit) {\n <input #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)='input.blur()'\n [formControl]=\"control\"/>\n}\n" }]
|
|
7848
|
+
args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [FormsUtil.formProvider], standalone: true, imports: [FormsModule, OnlyNumberDirective, ReactiveFormsModule, NumberPipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber : 2 }}\n</span>\n@if (edit) {\n<input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n" }]
|
|
8115
7849
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
|
|
8116
7850
|
type: ViewChild,
|
|
8117
7851
|
args: ['input', { static: false }]
|
|
@@ -8138,16 +7872,11 @@ class DateCellComponent extends CellComponentBase {
|
|
|
8138
7872
|
this.cdr.markForCheck();
|
|
8139
7873
|
}
|
|
8140
7874
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCellComponent, isStandalone: true, selector: "teta-date-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"
|
|
7875
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCellComponent, isStandalone: true, selector: "teta-date-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8142
7876
|
}
|
|
8143
7877
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCellComponent, decorators: [{
|
|
8144
7878
|
type: Component,
|
|
8145
|
-
args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
8146
|
-
DatePickerComponent,
|
|
8147
|
-
FormsModule,
|
|
8148
|
-
ReactiveFormsModule,
|
|
8149
|
-
DatePipe,
|
|
8150
|
-
], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{control?.value | date : 'dd.MM.yyyy'}}\n</span>\n@if (edit) {\n <teta-date-picker class='datepicker-table'\n #input\n [allowNull]='!column.required'\n [appendToBody]='true'\n [showTime]='false'\n [formControl]='control'></teta-date-picker>\n}\n" }]
|
|
7879
|
+
args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n" }]
|
|
8151
7880
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
|
|
8152
7881
|
type: ViewChild,
|
|
8153
7882
|
args: ['input', { static: false }]
|
|
@@ -8158,7 +7887,7 @@ class ListCellComponent extends CellComponentBase {
|
|
|
8158
7887
|
if (this.column?.parentName?.length > 0) {
|
|
8159
7888
|
const parentValue = this.row.data[this.column.parentName];
|
|
8160
7889
|
if (parentValue) {
|
|
8161
|
-
return this.filterOptions.filter(_ => _.parentId === parentValue);
|
|
7890
|
+
return this.filterOptions.filter((_) => _.parentId === parentValue);
|
|
8162
7891
|
}
|
|
8163
7892
|
}
|
|
8164
7893
|
return this.filterOptions;
|
|
@@ -8184,27 +7913,21 @@ class ListCellComponent extends CellComponentBase {
|
|
|
8184
7913
|
super.ngOnInit();
|
|
8185
7914
|
}
|
|
8186
7915
|
getValue(value) {
|
|
8187
|
-
if (this.filterOptions === null ||
|
|
8188
|
-
this.filterOptions === undefined ||
|
|
8189
|
-
!(this.filterOptions instanceof Array)) {
|
|
7916
|
+
if (this.filterOptions === null || this.filterOptions === undefined || !(this.filterOptions instanceof Array)) {
|
|
8190
7917
|
return '';
|
|
8191
7918
|
}
|
|
8192
|
-
const item = this.filterOptions.find(option => option.id === value);
|
|
7919
|
+
const item = this.filterOptions.find((option) => option.id === value);
|
|
8193
7920
|
if (item === null || item === undefined) {
|
|
8194
7921
|
return '';
|
|
8195
7922
|
}
|
|
8196
7923
|
return item.name;
|
|
8197
7924
|
}
|
|
8198
7925
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListCellComponent, isStandalone: true, selector: "teta-list-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"
|
|
7926
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListCellComponent, isStandalone: true, selector: "teta-list-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n<teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n>\n</teta-select>\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8200
7927
|
}
|
|
8201
7928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListCellComponent, decorators: [{
|
|
8202
7929
|
type: Component,
|
|
8203
|
-
args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
8204
|
-
SelectComponent,
|
|
8205
|
-
FormsModule,
|
|
8206
|
-
ReactiveFormsModule,
|
|
8207
|
-
], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{getValue(control.value)}}\n</span>\n@if (edit) {\n <teta-select #input\n class='row_auto select-table'\n [allowNull]='!column.required'\n [verticalAlign]='verticalAlign.auto'\n [appendToBody]='true'\n [options]='displayFilterOptions'\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]='control'>\n </teta-select>\n}\n" }]
|
|
7930
|
+
args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n<teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n>\n</teta-select>\n}\n" }]
|
|
8208
7931
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
|
|
8209
7932
|
type: ViewChild,
|
|
8210
7933
|
args: ['input', { static: false }]
|
|
@@ -8231,15 +7954,11 @@ class StringCellComponent extends CellComponentBase {
|
|
|
8231
7954
|
this.cdr.detectChanges();
|
|
8232
7955
|
}
|
|
8233
7956
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8234
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StringCellComponent, isStandalone: true, selector: "teta-string-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span
|
|
7957
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StringCellComponent, isStandalone: true, selector: "teta-string-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n<input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8235
7958
|
}
|
|
8236
7959
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringCellComponent, decorators: [{
|
|
8237
7960
|
type: Component,
|
|
8238
|
-
args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
8239
|
-
HintDirective,
|
|
8240
|
-
FormsModule,
|
|
8241
|
-
ReactiveFormsModule,
|
|
8242
|
-
], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\">\n {{control.value}}\n</span>\n@if (edit) {\n <input #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)='input.blur()'\n [formControl]='control'/>\n}\n\n" }]
|
|
7961
|
+
args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective, FormsModule, ReactiveFormsModule], template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n<input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n" }]
|
|
8243
7962
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
|
|
8244
7963
|
type: ViewChild,
|
|
8245
7964
|
args: ['input', { static: false }]
|
|
@@ -8266,15 +7985,11 @@ class BooleanCellComponent extends CellComponentBase {
|
|
|
8266
7985
|
this.cdr.markForCheck();
|
|
8267
7986
|
}
|
|
8268
7987
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8269
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanCellComponent, isStandalone: true, selector: "teta-boolean-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"
|
|
7988
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanCellComponent, isStandalone: true, selector: "teta-boolean-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n<teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n", styles: [""], 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8270
7989
|
}
|
|
8271
7990
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanCellComponent, decorators: [{
|
|
8272
7991
|
type: Component,
|
|
8273
|
-
args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
8274
|
-
CheckboxComponent,
|
|
8275
|
-
FormsModule,
|
|
8276
|
-
ReactiveFormsModule,
|
|
8277
|
-
], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n <teta-checkbox\n #input\n [binary]=\"true\"\n [formControl]='control'\n ></teta-checkbox>\n}\n" }]
|
|
7992
|
+
args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n<teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n" }]
|
|
8278
7993
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
|
|
8279
7994
|
type: ViewChild,
|
|
8280
7995
|
args: ['input', { static: false }]
|
|
@@ -8287,9 +8002,7 @@ const cellComponentsMap = new Map()
|
|
|
8287
8002
|
.set(FilterType.string, StringCellComponent)
|
|
8288
8003
|
.set(FilterType.boolean, BooleanCellComponent)
|
|
8289
8004
|
.set(FilterType.custom, StringCellComponent);
|
|
8290
|
-
const getCellComponent = (column) => cellComponentsMap.has(column.filterType)
|
|
8291
|
-
? cellComponentsMap.get(column.filterType)
|
|
8292
|
-
: StringCellComponent;
|
|
8005
|
+
const getCellComponent = (column) => cellComponentsMap.has(column.filterType) ? cellComponentsMap.get(column.filterType) : StringCellComponent;
|
|
8293
8006
|
|
|
8294
8007
|
class CellHostComponent {
|
|
8295
8008
|
constructor(viewContainerRef) {
|
|
@@ -8345,11 +8058,11 @@ class CellComponent {
|
|
|
8345
8058
|
this.tableCellClass = true;
|
|
8346
8059
|
}
|
|
8347
8060
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8348
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: CellComponent, isStandalone: true, selector: "teta-cell", inputs: { column: "column", filterOptions: "filterOptions", dict: "dict", row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-cell-host [row]=\"row\"
|
|
8061
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: CellComponent, isStandalone: true, selector: "teta-cell", inputs: { column: "column", filterOptions: "filterOptions", dict: "dict", row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-cell-host [row]=\"row\" [column]=\"column\" [filterOptions]=\"filterOptions\" [dict]=\"dict\"></teta-cell-host>\n", styles: [""], dependencies: [{ kind: "component", type: CellHostComponent, selector: "teta-cell-host", inputs: ["column", "row", "filterOptions", "dict"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8349
8062
|
}
|
|
8350
8063
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CellComponent, decorators: [{
|
|
8351
8064
|
type: Component,
|
|
8352
|
-
args: [{ selector: 'teta-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CellHostComponent], template: "<teta-cell-host [row]=\"row\"
|
|
8065
|
+
args: [{ selector: 'teta-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CellHostComponent], template: "<teta-cell-host [row]=\"row\" [column]=\"column\" [filterOptions]=\"filterOptions\" [dict]=\"dict\"></teta-cell-host>\n" }]
|
|
8353
8066
|
}], propDecorators: { column: [{
|
|
8354
8067
|
type: Input
|
|
8355
8068
|
}], filterOptions: [{
|
|
@@ -8380,9 +8093,7 @@ class SelectionCellComponent {
|
|
|
8380
8093
|
}
|
|
8381
8094
|
}
|
|
8382
8095
|
ngOnInit() {
|
|
8383
|
-
this._svc.selectedRows
|
|
8384
|
-
.pipe(takeWhile((_) => this._alive))
|
|
8385
|
-
.subscribe((_) => {
|
|
8096
|
+
this._svc.selectedRows.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
8386
8097
|
this.selectedRows = _;
|
|
8387
8098
|
this._cdr.markForCheck();
|
|
8388
8099
|
});
|
|
@@ -8391,11 +8102,11 @@ class SelectionCellComponent {
|
|
|
8391
8102
|
this._alive = false;
|
|
8392
8103
|
}
|
|
8393
8104
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8394
|
-
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
|
|
8105
|
+
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 }); }
|
|
8395
8106
|
}
|
|
8396
8107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
8397
8108
|
type: Component,
|
|
8398
|
-
args: [{ selector: 'teta-selection-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox
|
|
8109
|
+
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"] }]
|
|
8399
8110
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { row: [{
|
|
8400
8111
|
type: Input
|
|
8401
8112
|
}], tableCellClass: [{
|
|
@@ -8450,8 +8161,8 @@ class TableBodyComponent {
|
|
|
8450
8161
|
}
|
|
8451
8162
|
set columns(columns) {
|
|
8452
8163
|
this._columns = columns;
|
|
8453
|
-
this.locked = this._columns?.filter(_ => _.locked === true);
|
|
8454
|
-
this.unlocked = this._columns?.filter(_ => _.locked === false);
|
|
8164
|
+
this.locked = this._columns?.filter((_) => _.locked === true);
|
|
8165
|
+
this.unlocked = this._columns?.filter((_) => _.locked === false);
|
|
8455
8166
|
const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
|
|
8456
8167
|
this.lockedFlex = this.locked.reduce((prev, curr) => prev + curr.flex, 0);
|
|
8457
8168
|
this.lockedWidth = this.locked.reduce((prev, curr) => prev + curr.width, startWidth);
|
|
@@ -8488,25 +8199,23 @@ class TableBodyComponent {
|
|
|
8488
8199
|
ngOnInit() {
|
|
8489
8200
|
this.locale = this._config.locale;
|
|
8490
8201
|
combineLatest([this._svc.columns, this._svc.hiddenColumns])
|
|
8491
|
-
.pipe(takeWhile(_ => this._alive))
|
|
8202
|
+
.pipe(takeWhile((_) => this._alive))
|
|
8492
8203
|
.subscribe((values) => {
|
|
8493
8204
|
const [columns, hiddenColumns] = values;
|
|
8494
8205
|
this._hiddenColumns = hiddenColumns;
|
|
8495
|
-
this.columns = ArrayUtil.flatten(columns, 'columns', true).filter(_ => this._hiddenColumns.indexOf(_.name) < 0);
|
|
8206
|
+
this.columns = ArrayUtil.flatten(columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
8496
8207
|
this._cdr.markForCheck();
|
|
8497
8208
|
});
|
|
8498
|
-
this._svc.displayData.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
|
|
8209
|
+
this._svc.displayData.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
8499
8210
|
this.data = _;
|
|
8500
8211
|
this._cdr.markForCheck();
|
|
8501
8212
|
this.viewport?.checkViewportSize();
|
|
8502
8213
|
});
|
|
8503
|
-
this._svc.dict.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
|
|
8214
|
+
this._svc.dict.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
8504
8215
|
this.dict = _;
|
|
8505
8216
|
this._cdr.markForCheck();
|
|
8506
8217
|
});
|
|
8507
|
-
this._svc.scrollIndex
|
|
8508
|
-
.pipe(takeWhile(() => this._alive))
|
|
8509
|
-
.subscribe(async (index) => {
|
|
8218
|
+
this._svc.scrollIndex.pipe(takeWhile(() => this._alive)).subscribe(async (index) => {
|
|
8510
8219
|
if (this.viewport) {
|
|
8511
8220
|
this.viewport.scrollToIndex(index, 'auto');
|
|
8512
8221
|
}
|
|
@@ -8516,7 +8225,7 @@ class TableBodyComponent {
|
|
|
8516
8225
|
}
|
|
8517
8226
|
this._cdr.markForCheck();
|
|
8518
8227
|
});
|
|
8519
|
-
this._svc.activeRow.pipe(takeWhile(_ => this._alive)).subscribe(async (_) => {
|
|
8228
|
+
this._svc.activeRow.pipe(takeWhile((_) => this._alive)).subscribe(async (_) => {
|
|
8520
8229
|
this.activeRow = _;
|
|
8521
8230
|
this._cdr.markForCheck();
|
|
8522
8231
|
});
|
|
@@ -8560,7 +8269,7 @@ class TableBodyComponent {
|
|
|
8560
8269
|
this.scrollChange.emit(event);
|
|
8561
8270
|
}
|
|
8562
8271
|
addResizeObserver() {
|
|
8563
|
-
this._obs = new ResizeObserver(_ => {
|
|
8272
|
+
this._obs = new ResizeObserver((_) => {
|
|
8564
8273
|
this.viewport?.checkViewportSize();
|
|
8565
8274
|
});
|
|
8566
8275
|
this._obs.observe(this._elementRef.nativeElement);
|
|
@@ -8576,17 +8285,13 @@ class TableBodyComponent {
|
|
|
8576
8285
|
}, 0);
|
|
8577
8286
|
}
|
|
8578
8287
|
getMin(columnName) {
|
|
8579
|
-
return this.data?.reduce((accum, current) => accum != null && accum <= current.data[columnName]
|
|
8580
|
-
? accum
|
|
8581
|
-
: current.data[columnName], null);
|
|
8288
|
+
return this.data?.reduce((accum, current) => accum != null && accum <= current.data[columnName] ? accum : current.data[columnName], null);
|
|
8582
8289
|
}
|
|
8583
8290
|
getMax(columnName) {
|
|
8584
|
-
return this.data?.reduce((accum, current) => accum != null && accum >= current.data[columnName]
|
|
8585
|
-
? accum
|
|
8586
|
-
: current.data[columnName], null);
|
|
8291
|
+
return this.data?.reduce((accum, current) => (accum != null && accum >= current.data[columnName] ? accum : current.data[columnName]), null);
|
|
8587
8292
|
}
|
|
8588
8293
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableBodyComponent, deps: [{ token: TableService }, { token: i0.ElementRef }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8589
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableBodyComponent, isStandalone: true, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass", trackRow: "trackRow", trackColumns: "trackColumns" }, outputs: { scrollChange: "scrollChange" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "@if (virtual && data.length > 0) {\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n [showScrollbars]=\"true\"\n >\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\">\n <ng-container\n *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\">\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\"\n style=\"position: absolute; top:0; bottom:16px;left:0;right:0;\"\n >\n <ng-content></ng-content>\n </div>\n }\n @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n }\n @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow;\"></ng-container>\n </div>\n </teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n @if (locked.length > 0) {\n <div class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\">\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell\n [row]=\"row.data\"\n style=\"width: 28px;\"></teta-selection-cell>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell\n [row]=\"row.data\"\n style=\"width: 28px;\"></teta-selection-cell>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) {\n @if (aggregate) {\n <div class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n @if (locked.length > 0) {\n <div class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n >\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\"\n >\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n >\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\"\n >\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n }\n</ng-template>\n<ng-template #emptyRow>\n <div class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }, { kind: "component", type: TableRowComponent, selector: "teta-table-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8294
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableBodyComponent, isStandalone: true, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass", trackRow: "trackRow", trackColumns: "trackColumns" }, outputs: { scrollChange: "scrollChange" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "@if (virtual && data.length > 0) {\n<teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\"\n >\n <ng-container *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n>\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n } @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n } @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n</teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row\n class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) { @if (aggregate) {\n <div\n class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }, { kind: "component", type: TableRowComponent, selector: "teta-table-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8590
8295
|
}
|
|
8591
8296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
8592
8297
|
type: Component,
|
|
@@ -8605,7 +8310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
8605
8310
|
AsyncPipe,
|
|
8606
8311
|
NumberPipe,
|
|
8607
8312
|
TableRowComponent,
|
|
8608
|
-
], template: "@if (virtual && data.length > 0) {\n
|
|
8313
|
+
], template: "@if (virtual && data.length > 0) {\n<teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\"\n >\n <ng-container *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n>\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n } @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n } @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n</teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row\n class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) { @if (aggregate) {\n <div\n class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n" }]
|
|
8609
8314
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ElementRef }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { virtual: [{
|
|
8610
8315
|
type: Input
|
|
8611
8316
|
}], activeRow: [{
|
|
@@ -8667,7 +8372,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
|
|
|
8667
8372
|
this._cdr = _cdr;
|
|
8668
8373
|
this._click = _click;
|
|
8669
8374
|
this.autoCloseIgnore = [];
|
|
8670
|
-
this.scrollListener = event => {
|
|
8375
|
+
this.scrollListener = (event) => {
|
|
8671
8376
|
if (this._open &&
|
|
8672
8377
|
this._componentRef &&
|
|
8673
8378
|
!this._componentRef.location.nativeElement.contains(event.target) &&
|
|
@@ -8687,8 +8392,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
|
|
|
8687
8392
|
}
|
|
8688
8393
|
}
|
|
8689
8394
|
click(event) {
|
|
8690
|
-
if (this._componentRef &&
|
|
8691
|
-
DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
|
|
8395
|
+
if (this._componentRef && DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
|
|
8692
8396
|
event.preventDefault();
|
|
8693
8397
|
event.stopPropagation();
|
|
8694
8398
|
}
|
|
@@ -8729,10 +8433,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
|
|
|
8729
8433
|
}
|
|
8730
8434
|
this._eventPoint = event;
|
|
8731
8435
|
this._componentRef = this.createContentRef();
|
|
8732
|
-
this._componentRef.instance.className = [
|
|
8733
|
-
...ArrayUtil.asArray(this.className),
|
|
8734
|
-
'context-menu',
|
|
8735
|
-
];
|
|
8436
|
+
this._componentRef.instance.className = [...ArrayUtil.asArray(this.className), 'context-menu'];
|
|
8736
8437
|
this.openChange.emit(true);
|
|
8737
8438
|
}
|
|
8738
8439
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ContextMenuDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: ClickService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -8838,27 +8539,33 @@ class TableUtil {
|
|
|
8838
8539
|
static filterDate(data, filter) {
|
|
8839
8540
|
const filterDate = (row) => {
|
|
8840
8541
|
const item = row;
|
|
8841
|
-
return (filter.value.lessThan === null || filter.value.lessThan === undefined
|
|
8542
|
+
return ((filter.value.lessThan === null || filter.value.lessThan === undefined
|
|
8842
8543
|
? true
|
|
8843
8544
|
: filter.value.lessThan?.getTime() >= item[filter.field]?.getTime()) &&
|
|
8844
8545
|
(filter.value.greaterThan === null || filter.value.greaterThan === undefined
|
|
8845
8546
|
? true
|
|
8846
|
-
: filter.value.greaterThan?.getTime() <= item[filter.field]?.getTime());
|
|
8547
|
+
: filter.value.greaterThan?.getTime() <= item[filter.field]?.getTime()));
|
|
8847
8548
|
};
|
|
8848
8549
|
return data.filter(filterDate);
|
|
8849
8550
|
}
|
|
8850
8551
|
static filterNumber(data, filter) {
|
|
8851
8552
|
const filterNumber = (row) => {
|
|
8852
8553
|
const item = row;
|
|
8853
|
-
return (filter.value.lessThan === null ||
|
|
8554
|
+
return ((filter.value.lessThan === null ||
|
|
8555
|
+
filter.value.lessThan === undefined ||
|
|
8556
|
+
filter.value.lessThan?.toString() === ''
|
|
8854
8557
|
? true
|
|
8855
8558
|
: filter.value.lessThan >= item[filter.field]) &&
|
|
8856
|
-
(filter.value.greaterThan === null ||
|
|
8559
|
+
(filter.value.greaterThan === null ||
|
|
8560
|
+
filter.value.greaterThan === undefined ||
|
|
8561
|
+
filter.value.greaterThan?.toString() === ''
|
|
8857
8562
|
? true
|
|
8858
8563
|
: filter.value.greaterThan <= item[filter.field]) &&
|
|
8859
|
-
(filter.value.equalsTo === null ||
|
|
8564
|
+
(filter.value.equalsTo === null ||
|
|
8565
|
+
filter.value.equalsTo === undefined ||
|
|
8566
|
+
filter.value.equalsTo?.toString() === ''
|
|
8860
8567
|
? true
|
|
8861
|
-
: filter.value.equalsTo === item[filter.field]);
|
|
8568
|
+
: filter.value.equalsTo === item[filter.field]));
|
|
8862
8569
|
};
|
|
8863
8570
|
return data.filter(filterNumber);
|
|
8864
8571
|
}
|
|
@@ -8880,11 +8587,11 @@ class TableUtil {
|
|
|
8880
8587
|
return [...res];
|
|
8881
8588
|
}
|
|
8882
8589
|
static desc(field) {
|
|
8883
|
-
const res = (a, b) => a[field] > b[field] ? -1 : 1;
|
|
8590
|
+
const res = (a, b) => (a[field] > b[field] ? -1 : 1);
|
|
8884
8591
|
return res;
|
|
8885
8592
|
}
|
|
8886
8593
|
static asc(field) {
|
|
8887
|
-
const res = (a, b) => a[field] < b[field] ? -1 : 1;
|
|
8594
|
+
const res = (a, b) => (a[field] < b[field] ? -1 : 1);
|
|
8888
8595
|
return res;
|
|
8889
8596
|
}
|
|
8890
8597
|
}
|
|
@@ -8940,17 +8647,16 @@ class TreeItemToggleComponent {
|
|
|
8940
8647
|
}
|
|
8941
8648
|
ngOnInit() {
|
|
8942
8649
|
this.open = this.service.openItems.pipe(map((_) => {
|
|
8943
|
-
const found = _?.find((x) => this.service.compareItems(x) ===
|
|
8944
|
-
this.service.compareItems(this.item));
|
|
8650
|
+
const found = _?.find((x) => this.service.compareItems(x) === this.service.compareItems(this.item));
|
|
8945
8651
|
return found != null;
|
|
8946
8652
|
}));
|
|
8947
8653
|
}
|
|
8948
8654
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeItemToggleComponent, deps: [{ token: TreeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8949
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemToggleComponent, isStandalone: true, selector: "teta-tree-item-toggle", inputs: { item: "item" }, ngImport: i0, template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\"
|
|
8655
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemToggleComponent, isStandalone: true, selector: "teta-tree-item-toggle", inputs: { item: "item" }, ngImport: i0, template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\" class=\"tree__icon\"></teta-icon>\n", styles: [":host{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8950
8656
|
}
|
|
8951
8657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeItemToggleComponent, decorators: [{
|
|
8952
8658
|
type: Component,
|
|
8953
|
-
args: [{ selector: 'teta-tree-item-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, AsyncPipe], template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\"
|
|
8659
|
+
args: [{ selector: 'teta-tree-item-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, AsyncPipe], template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\" class=\"tree__icon\"></teta-icon>\n", styles: [":host{display:inline-flex;align-items:center}\n"] }]
|
|
8954
8660
|
}], ctorParameters: () => [{ type: TreeService }, { type: i0.ChangeDetectorRef }], propDecorators: { item: [{
|
|
8955
8661
|
type: Input
|
|
8956
8662
|
}] } });
|
|
@@ -8969,7 +8675,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
8969
8675
|
type: Directive,
|
|
8970
8676
|
args: [{
|
|
8971
8677
|
selector: '[tetaTemplate]',
|
|
8972
|
-
standalone: true
|
|
8678
|
+
standalone: true,
|
|
8973
8679
|
}]
|
|
8974
8680
|
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { id: [{
|
|
8975
8681
|
type: Input,
|
|
@@ -8981,8 +8687,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
8981
8687
|
*/
|
|
8982
8688
|
class TreeItemComponent {
|
|
8983
8689
|
get computedDepth() {
|
|
8984
|
-
return
|
|
8985
|
-
(this.item[this.childNodeName]?.length > 0 ? 0 : this.childPadding ? 2 : 1));
|
|
8690
|
+
return this.depth + (this.item[this.childNodeName]?.length > 0 ? 0 : this.childPadding ? 2 : 1);
|
|
8986
8691
|
}
|
|
8987
8692
|
constructor(service, _cdr) {
|
|
8988
8693
|
this.service = service;
|
|
@@ -8999,27 +8704,20 @@ class TreeItemComponent {
|
|
|
8999
8704
|
this.service.openItem(this.item);
|
|
9000
8705
|
}
|
|
9001
8706
|
ngOnInit() {
|
|
9002
|
-
this.service.openItems
|
|
9003
|
-
|
|
9004
|
-
.subscribe((_) => {
|
|
9005
|
-
const found = _?.find((x) => this.service.compareItems(x) ===
|
|
9006
|
-
this.service.compareItems(this.item));
|
|
8707
|
+
this.service.openItems.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
8708
|
+
const found = _?.find((x) => this.service.compareItems(x) === this.service.compareItems(this.item));
|
|
9007
8709
|
this.itemIsOpen = found != null;
|
|
9008
8710
|
this._cdr.markForCheck();
|
|
9009
8711
|
});
|
|
9010
8712
|
}
|
|
9011
|
-
ngOnChanges(changes) {
|
|
9012
|
-
}
|
|
8713
|
+
ngOnChanges(changes) { }
|
|
9013
8714
|
ngOnDestroy() {
|
|
9014
8715
|
this._alive = false;
|
|
9015
8716
|
}
|
|
9016
8717
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeItemComponent, deps: [{ token: TreeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9017
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemComponent, isStandalone: true, selector: "teta-tree-item", inputs: { item: "item", depth: "depth", padding: "padding", childNodeName: "childNodeName", template: "template", childPadding: "childPadding" }, host: { properties: { "class.tree__item-container": "this.treeItemClass", "@treeItemInstance": "this.treeItemInstance" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"template
|
|
8718
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemComponent, isStandalone: true, selector: "teta-tree-item", inputs: { item: "item", depth: "depth", padding: "padding", childNodeName: "childNodeName", template: "template", childPadding: "childPadding" }, host: { properties: { "class.tree__item-container": "this.treeItemClass", "@treeItemInstance": "this.treeItemInstance" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { $implicit: item, item: item, open: itemIsOpen, service: service, depth: depth }\n \"\n ></ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
9018
8719
|
trigger('treeItemInstance', [
|
|
9019
|
-
transition('void => *', [
|
|
9020
|
-
style({ opacity: '0' }),
|
|
9021
|
-
animate(200, style({ opacity: '1' })),
|
|
9022
|
-
]),
|
|
8720
|
+
transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
|
|
9023
8721
|
// transition('* => void', [animate(200, style({opacity: '0'}))]),
|
|
9024
8722
|
]),
|
|
9025
8723
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -9028,13 +8726,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
9028
8726
|
type: Component,
|
|
9029
8727
|
args: [{ selector: 'teta-tree-item', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
9030
8728
|
trigger('treeItemInstance', [
|
|
9031
|
-
transition('void => *', [
|
|
9032
|
-
style({ opacity: '0' }),
|
|
9033
|
-
animate(200, style({ opacity: '1' })),
|
|
9034
|
-
]),
|
|
8729
|
+
transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
|
|
9035
8730
|
// transition('* => void', [animate(200, style({opacity: '0'}))]),
|
|
9036
8731
|
]),
|
|
9037
|
-
], standalone: true, imports: [NgClass, NgTemplateOutlet], template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"template
|
|
8732
|
+
], standalone: true, imports: [NgClass, NgTemplateOutlet], template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { $implicit: item, item: item, open: itemIsOpen, service: service, depth: depth }\n \"\n ></ng-container>\n</div>\n" }]
|
|
9038
8733
|
}], ctorParameters: () => [{ type: TreeService }, { type: i0.ChangeDetectorRef }], propDecorators: { item: [{
|
|
9039
8734
|
type: Input
|
|
9040
8735
|
}], depth: [{
|
|
@@ -9129,8 +8824,8 @@ class TreeComponent {
|
|
|
9129
8824
|
data?.forEach((item) => {
|
|
9130
8825
|
item['level'] = level;
|
|
9131
8826
|
result.push(item);
|
|
9132
|
-
if (item[this.childNodeName]?.length > 0
|
|
9133
|
-
|
|
8827
|
+
if (item[this.childNodeName]?.length > 0 &&
|
|
8828
|
+
this._openItems?.find((openItem) => this.compareItems(openItem) === this.compareItems(item))) {
|
|
9134
8829
|
result.push(...this.getDisplayData(item[this.childNodeName], level + 1));
|
|
9135
8830
|
}
|
|
9136
8831
|
});
|
|
@@ -9147,7 +8842,7 @@ class TreeComponent {
|
|
|
9147
8842
|
this._obs.disconnect();
|
|
9148
8843
|
}
|
|
9149
8844
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeComponent, deps: [{ token: TreeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TreeComponent, isStandalone: true, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (virtual) {\n
|
|
8845
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TreeComponent, isStandalone: true, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (virtual) {\n<teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n</teta-scrollable>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9151
8846
|
}
|
|
9152
8847
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeComponent, decorators: [{
|
|
9153
8848
|
type: Component,
|
|
@@ -9158,7 +8853,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
9158
8853
|
ScrollableDirective,
|
|
9159
8854
|
CdkVirtualForOf,
|
|
9160
8855
|
TreeItemComponent,
|
|
9161
|
-
], template: "@if (virtual) {\n
|
|
8856
|
+
], template: "@if (virtual) {\n<teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n</teta-scrollable>\n}\n" }]
|
|
9162
8857
|
}], ctorParameters: () => [{ type: TreeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { data: [{
|
|
9163
8858
|
type: Input
|
|
9164
8859
|
}], padding: [{
|
|
@@ -9191,7 +8886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
9191
8886
|
class VisibilityDropdownTabComponent {
|
|
9192
8887
|
get openItems() {
|
|
9193
8888
|
if (this._openItems == null) {
|
|
9194
|
-
this._openItems = this.columns.map(_ => _);
|
|
8889
|
+
this._openItems = this.columns.map((_) => _);
|
|
9195
8890
|
}
|
|
9196
8891
|
return this._openItems;
|
|
9197
8892
|
}
|
|
@@ -9216,7 +8911,7 @@ class VisibilityDropdownTabComponent {
|
|
|
9216
8911
|
this.hideColumn(column, hiddenColumns);
|
|
9217
8912
|
}
|
|
9218
8913
|
if (column.columns) {
|
|
9219
|
-
column.columns.forEach(x => {
|
|
8914
|
+
column.columns.forEach((x) => {
|
|
9220
8915
|
this.setChildrenVisibility(x, visible, hiddenColumns);
|
|
9221
8916
|
});
|
|
9222
8917
|
}
|
|
@@ -9231,8 +8926,8 @@ class VisibilityDropdownTabComponent {
|
|
|
9231
8926
|
};
|
|
9232
8927
|
this.locale = this._config.locale;
|
|
9233
8928
|
this._svc.hiddenColumns
|
|
9234
|
-
.pipe(takeWhile(_ => this._alive), map(_ => [..._]))
|
|
9235
|
-
.subscribe(_ => {
|
|
8929
|
+
.pipe(takeWhile((_) => this._alive), map((_) => [..._]))
|
|
8930
|
+
.subscribe((_) => {
|
|
9236
8931
|
this.hiddenColumns = _;
|
|
9237
8932
|
});
|
|
9238
8933
|
}
|
|
@@ -9244,7 +8939,7 @@ class VisibilityDropdownTabComponent {
|
|
|
9244
8939
|
return true;
|
|
9245
8940
|
}
|
|
9246
8941
|
const columns = ArrayUtil.flatten(this.columns, 'columns');
|
|
9247
|
-
const notHidden = columns.find(_ => this.hiddenColumns.indexOf(_.name) < 0);
|
|
8942
|
+
const notHidden = columns.find((_) => this.hiddenColumns.indexOf(_.name) < 0);
|
|
9248
8943
|
if (!notHidden) {
|
|
9249
8944
|
return false;
|
|
9250
8945
|
}
|
|
@@ -9255,7 +8950,7 @@ class VisibilityDropdownTabComponent {
|
|
|
9255
8950
|
this.hiddenColumns = [];
|
|
9256
8951
|
}
|
|
9257
8952
|
else {
|
|
9258
|
-
this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map(_ => _.name);
|
|
8953
|
+
this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map((_) => _.name);
|
|
9259
8954
|
}
|
|
9260
8955
|
}
|
|
9261
8956
|
setColumnsVisibility() {
|
|
@@ -9277,7 +8972,7 @@ class VisibilityDropdownTabComponent {
|
|
|
9277
8972
|
if (parent &&
|
|
9278
8973
|
!this.columnIsHidden(parent) &&
|
|
9279
8974
|
parent.columns &&
|
|
9280
|
-
parent.columns.every(_ => this.columnIsHidden(_))) {
|
|
8975
|
+
parent.columns.every((_) => this.columnIsHidden(_))) {
|
|
9281
8976
|
this.hideColumn(parent, hiddenColumns);
|
|
9282
8977
|
this.hideParents(parent, hiddenColumns);
|
|
9283
8978
|
}
|
|
@@ -9289,13 +8984,13 @@ class VisibilityDropdownTabComponent {
|
|
|
9289
8984
|
hiddenColumns.splice(hiddenColumns.indexOf(column.name), 1);
|
|
9290
8985
|
}
|
|
9291
8986
|
findParentColumn(column, columns) {
|
|
9292
|
-
return ArrayUtil.findRecursive(columns, iterableNode => iterableNode.columns?.indexOf(column) >= 0, 'columns');
|
|
8987
|
+
return ArrayUtil.findRecursive(columns, (iterableNode) => iterableNode.columns?.indexOf(column) >= 0, 'columns');
|
|
9293
8988
|
}
|
|
9294
8989
|
ngOnDestroy() {
|
|
9295
8990
|
this._alive = false;
|
|
9296
8991
|
}
|
|
9297
8992
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9298
|
-
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
|
|
8993
|
+
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: 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"] }, { 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 }); }
|
|
9299
8994
|
}
|
|
9300
8995
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, decorators: [{
|
|
9301
8996
|
type: Component,
|
|
@@ -9309,7 +9004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
9309
9004
|
ToolbarComponent,
|
|
9310
9005
|
ButtonComponent,
|
|
9311
9006
|
AsyncPipe,
|
|
9312
|
-
], template: "@if (locale | async; as loc) {\n
|
|
9007
|
+
], 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"] }]
|
|
9313
9008
|
}], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
|
|
9314
9009
|
type: Input
|
|
9315
9010
|
}], column: [{
|
|
@@ -9344,14 +9039,13 @@ class FilterDropdownTabComponent {
|
|
|
9344
9039
|
this.close();
|
|
9345
9040
|
this._cdr.markForCheck();
|
|
9346
9041
|
}
|
|
9347
|
-
ngOnInit() {
|
|
9348
|
-
}
|
|
9042
|
+
ngOnInit() { }
|
|
9349
9043
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FilterDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9350
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: FilterDropdownTabComponent, isStandalone: true, selector: "teta-filter-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "@if (locale | async; as loc) {
|
|
9044
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: FilterDropdownTabComponent, isStandalone: true, selector: "teta-filter-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "@if (locale | async; as loc) { @if (filterOptions | async; as options) {\n<teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n></teta-filter-host>\n}\n<teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "data", "filterOptions"], outputs: ["filterChanged"] }, { 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: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9351
9045
|
}
|
|
9352
9046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FilterDropdownTabComponent, decorators: [{
|
|
9353
9047
|
type: Component,
|
|
9354
|
-
args: [{ selector: 'teta-filter-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FilterHostComponent, ToolbarComponent, ButtonComponent, IconComponent, AsyncPipe], template: "@if (locale | async; as loc) {
|
|
9048
|
+
args: [{ selector: 'teta-filter-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FilterHostComponent, ToolbarComponent, ButtonComponent, IconComponent, AsyncPipe], template: "@if (locale | async; as loc) { @if (filterOptions | async; as options) {\n<teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n></teta-filter-host>\n}\n<teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"] }]
|
|
9355
9049
|
}], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
|
|
9356
9050
|
type: Input
|
|
9357
9051
|
}], column: [{
|
|
@@ -9431,14 +9125,13 @@ class MainDropdownTabComponent {
|
|
|
9431
9125
|
autosizeAllColumns() {
|
|
9432
9126
|
this._svc.autosizeAllColumns(this.headCellElementRef.nativeElement);
|
|
9433
9127
|
}
|
|
9434
|
-
ngOnInit() {
|
|
9435
|
-
}
|
|
9128
|
+
ngOnInit() { }
|
|
9436
9129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MainDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9437
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MainDropdownTabComponent, isStandalone: true, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "@if (locale | async; as loc) {\n
|
|
9130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MainDropdownTabComponent, isStandalone: true, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n } @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) { @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n } } @if (hasFilteredColumns()) { @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9438
9131
|
}
|
|
9439
9132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MainDropdownTabComponent, decorators: [{
|
|
9440
9133
|
type: Component,
|
|
9441
|
-
args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe], template: "@if (locale | async; as loc) {\n
|
|
9134
|
+
args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n } @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) { @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n } } @if (hasFilteredColumns()) { @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
9442
9135
|
}], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
|
|
9443
9136
|
type: Input
|
|
9444
9137
|
}], column: [{
|
|
@@ -9533,7 +9226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
9533
9226
|
type: Directive,
|
|
9534
9227
|
args: [{
|
|
9535
9228
|
selector: '[tetaTabContent]',
|
|
9536
|
-
standalone: true
|
|
9229
|
+
standalone: true,
|
|
9537
9230
|
}]
|
|
9538
9231
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
9539
9232
|
|
|
@@ -9548,7 +9241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
9548
9241
|
type: Directive,
|
|
9549
9242
|
args: [{
|
|
9550
9243
|
selector: '[tetaTabTitle]',
|
|
9551
|
-
standalone: true
|
|
9244
|
+
standalone: true,
|
|
9552
9245
|
}]
|
|
9553
9246
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
9554
9247
|
|
|
@@ -9683,18 +9376,11 @@ class HeadCellDropdownComponent {
|
|
|
9683
9376
|
return index;
|
|
9684
9377
|
}
|
|
9685
9378
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9686
|
-
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
|
|
9379
|
+
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)) { @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</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 }); }
|
|
9687
9380
|
}
|
|
9688
9381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
|
|
9689
9382
|
type: Component,
|
|
9690
|
-
args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
9691
|
-
TabsComponent,
|
|
9692
|
-
TabComponent,
|
|
9693
|
-
TabTitleDirective,
|
|
9694
|
-
IconComponent,
|
|
9695
|
-
TabContentDirective,
|
|
9696
|
-
NgTemplateOutlet,
|
|
9697
|
-
], 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=\"tab.template; context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\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"] }]
|
|
9383
|
+
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)) { @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</teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"] }]
|
|
9698
9384
|
}], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
|
|
9699
9385
|
type: Input
|
|
9700
9386
|
}], column: [{
|
|
@@ -9719,7 +9405,7 @@ class HeadCellComponentBase {
|
|
|
9719
9405
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellComponentBase, decorators: [{
|
|
9720
9406
|
type: Component,
|
|
9721
9407
|
args: [{
|
|
9722
|
-
template: ''
|
|
9408
|
+
template: '',
|
|
9723
9409
|
}]
|
|
9724
9410
|
}], propDecorators: { column: [{
|
|
9725
9411
|
type: HostBinding,
|
|
@@ -9752,14 +9438,13 @@ class DefaultHeadCellComponent extends HeadCellComponentBase {
|
|
|
9752
9438
|
super();
|
|
9753
9439
|
this._cdr = _cdr;
|
|
9754
9440
|
}
|
|
9755
|
-
ngOnInit() {
|
|
9756
|
-
}
|
|
9441
|
+
ngOnInit() { }
|
|
9757
9442
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9758
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DefaultHeadCellComponent, isStandalone: true, selector: "teta-default-head-cell", inputs: { column: "column", columns: "columns", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n @if (column.unit) {\n
|
|
9443
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DefaultHeadCellComponent, isStandalone: true, selector: "teta-default-head-cell", inputs: { column: "column", columns: "columns", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9759
9444
|
}
|
|
9760
9445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
|
|
9761
9446
|
type: Component,
|
|
9762
|
-
args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n @if (column.unit) {\n
|
|
9447
|
+
args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"] }]
|
|
9763
9448
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { column: [{
|
|
9764
9449
|
type: Input
|
|
9765
9450
|
}], columns: [{
|
|
@@ -9803,8 +9488,7 @@ class HeadCellHostComponent {
|
|
|
9803
9488
|
if (!HeadCellComponentBase.isPrototypeOf(this.column.headCellComponent)) {
|
|
9804
9489
|
this.column.headCellComponent = DefaultHeadCellComponent;
|
|
9805
9490
|
}
|
|
9806
|
-
this.componentRef =
|
|
9807
|
-
this.viewContainerRef.createComponent(this.column.headCellComponent);
|
|
9491
|
+
this.componentRef = this.viewContainerRef.createComponent(this.column.headCellComponent);
|
|
9808
9492
|
this.componentRef.instance.column = this.column;
|
|
9809
9493
|
this.componentRef.instance.columns = this.columns;
|
|
9810
9494
|
this.componentRef.instance.data = this.data;
|
|
@@ -10015,16 +9699,14 @@ class TableHeadGroupComponent {
|
|
|
10015
9699
|
}
|
|
10016
9700
|
get flexGrow() {
|
|
10017
9701
|
if (this.column?.columns?.length > 0) {
|
|
10018
|
-
const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true)
|
|
10019
|
-
.filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
9702
|
+
const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
10020
9703
|
return flat?.reduce((prev, curr) => prev + curr.flex, 0);
|
|
10021
9704
|
}
|
|
10022
9705
|
return this.column.flex;
|
|
10023
9706
|
}
|
|
10024
9707
|
get flexBasis() {
|
|
10025
9708
|
if (this.column?.columns?.length > 0) {
|
|
10026
|
-
const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true)
|
|
10027
|
-
.filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
9709
|
+
const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
|
|
10028
9710
|
return flat?.reduce((prev, curr) => prev + curr.width, 0);
|
|
10029
9711
|
}
|
|
10030
9712
|
return this.column.width;
|
|
@@ -10036,9 +9718,7 @@ class TableHeadGroupComponent {
|
|
|
10036
9718
|
this._svc = _svc;
|
|
10037
9719
|
this._cdr = _cdr;
|
|
10038
9720
|
this._alive = true;
|
|
10039
|
-
this._svc.hiddenColumns
|
|
10040
|
-
.pipe(takeWhile((_) => this._alive))
|
|
10041
|
-
.subscribe((_) => {
|
|
9721
|
+
this._svc.hiddenColumns.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
10042
9722
|
this._hiddenColumns = _;
|
|
10043
9723
|
this._cdr.markForCheck();
|
|
10044
9724
|
});
|
|
@@ -10046,17 +9726,16 @@ class TableHeadGroupComponent {
|
|
|
10046
9726
|
columnIsHidden(column) {
|
|
10047
9727
|
return this._svc.columnIsHidden(column);
|
|
10048
9728
|
}
|
|
10049
|
-
ngOnInit() {
|
|
10050
|
-
}
|
|
9729
|
+
ngOnInit() { }
|
|
10051
9730
|
ngOnDestroy() {
|
|
10052
9731
|
this._alive = false;
|
|
10053
9732
|
}
|
|
10054
9733
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10055
|
-
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
|
|
9734
|
+
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) { @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 </div>\n</div>\n} @if (!column.columns || column.columns.length === 0) { @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", 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 }); }
|
|
10056
9735
|
}
|
|
10057
9736
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, decorators: [{
|
|
10058
9737
|
type: Component,
|
|
10059
|
-
args: [{ selector: 'teta-table-head-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HeadCellComponent], template: "@if (column.columns && column.columns.length > 0) {\n
|
|
9738
|
+
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) { @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 </div>\n</div>\n} @if (!column.columns || column.columns.length === 0) { @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" }]
|
|
10060
9739
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { showHeadCellMenu: [{
|
|
10061
9740
|
type: Input
|
|
10062
9741
|
}], data: [{
|
|
@@ -10093,9 +9772,7 @@ class SelectionHeadCellComponent {
|
|
|
10093
9772
|
return this._svc.allRowsSelected();
|
|
10094
9773
|
}
|
|
10095
9774
|
ngOnInit() {
|
|
10096
|
-
this._svc.selectedRows
|
|
10097
|
-
.pipe(takeWhile((_) => this._alive))
|
|
10098
|
-
.subscribe((_) => {
|
|
9775
|
+
this._svc.selectedRows.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
10099
9776
|
this._cdr.markForCheck();
|
|
10100
9777
|
});
|
|
10101
9778
|
}
|
|
@@ -10103,11 +9780,11 @@ class SelectionHeadCellComponent {
|
|
|
10103
9780
|
this._alive = false;
|
|
10104
9781
|
}
|
|
10105
9782
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionHeadCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10106
|
-
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
|
|
9783
|
+
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 }); }
|
|
10107
9784
|
}
|
|
10108
9785
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionHeadCellComponent, decorators: [{
|
|
10109
9786
|
type: Component,
|
|
10110
|
-
args: [{ selector: 'teta-selection-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox
|
|
9787
|
+
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"] }]
|
|
10111
9788
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { tableCellClass: [{
|
|
10112
9789
|
type: HostBinding,
|
|
10113
9790
|
args: ['class.table-head__group']
|
|
@@ -10122,10 +9799,10 @@ class TableHeadComponent {
|
|
|
10122
9799
|
return this._columns;
|
|
10123
9800
|
}
|
|
10124
9801
|
get locked() {
|
|
10125
|
-
return this._columns.filter(_ => _.locked === true && this._hiddenColumns.indexOf(_.name) < 0);
|
|
9802
|
+
return this._columns.filter((_) => _.locked === true && this._hiddenColumns.indexOf(_.name) < 0);
|
|
10126
9803
|
}
|
|
10127
9804
|
get unlocked() {
|
|
10128
|
-
return this._columns.filter(_ => _.locked === false && this._hiddenColumns.indexOf(_.name) < 0);
|
|
9805
|
+
return this._columns.filter((_) => _.locked === false && this._hiddenColumns.indexOf(_.name) < 0);
|
|
10129
9806
|
}
|
|
10130
9807
|
constructor(_svc, _cdr) {
|
|
10131
9808
|
this._svc = _svc;
|
|
@@ -10141,23 +9818,23 @@ class TableHeadComponent {
|
|
|
10141
9818
|
}
|
|
10142
9819
|
ngOnInit() {
|
|
10143
9820
|
combineLatest([this._svc.columns, this._svc.hiddenColumns])
|
|
10144
|
-
.pipe(takeWhile(_ => this._alive))
|
|
9821
|
+
.pipe(takeWhile((_) => this._alive))
|
|
10145
9822
|
.subscribe((values) => {
|
|
10146
9823
|
const [columns, hiddenColumns] = values;
|
|
10147
9824
|
this._hiddenColumns = hiddenColumns;
|
|
10148
9825
|
this.columns = columns;
|
|
10149
|
-
const locked = ArrayUtil.flatten(columns, 'columns', true).filter(_ => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
|
|
9826
|
+
const locked = ArrayUtil.flatten(columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
|
|
10150
9827
|
const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
|
|
10151
9828
|
this.lockedFlex = locked.reduce((prev, curr) => prev + curr.flex, 0);
|
|
10152
9829
|
this.lockedWidth = locked.reduce((prev, curr) => prev + curr.width, startWidth);
|
|
10153
9830
|
this._cdr.markForCheck();
|
|
10154
9831
|
});
|
|
10155
|
-
this._svc.state.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
|
|
9832
|
+
this._svc.state.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
10156
9833
|
this.state = _;
|
|
10157
9834
|
this._cdr.markForCheck();
|
|
10158
9835
|
});
|
|
10159
|
-
this._svc.displayData.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
|
|
10160
|
-
this.data = _.map(_ => _.data);
|
|
9836
|
+
this._svc.displayData.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
9837
|
+
this.data = _.map((_) => _.data);
|
|
10161
9838
|
this._cdr.markForCheck();
|
|
10162
9839
|
});
|
|
10163
9840
|
}
|
|
@@ -10165,11 +9842,11 @@ class TableHeadComponent {
|
|
|
10165
9842
|
this._alive = false;
|
|
10166
9843
|
}
|
|
10167
9844
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadComponent, isStandalone: true, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "@if (locked?.length) {\n
|
|
9845
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadComponent, isStandalone: true, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "@if (locked?.length) {\n<div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n>\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n } @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n</div>\n} @if (unlocked?.length) { @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n<teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n} @for (column of unlocked; track track($index, column)) {\n<teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n></teta-table-head-group>\n} }\n", styles: [""], dependencies: [{ kind: "component", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10169
9846
|
}
|
|
10170
9847
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadComponent, decorators: [{
|
|
10171
9848
|
type: Component,
|
|
10172
|
-
args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectionHeadCellComponent, TableHeadGroupComponent], template: "@if (locked?.length) {\n
|
|
9849
|
+
args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectionHeadCellComponent, TableHeadGroupComponent], template: "@if (locked?.length) {\n<div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n>\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n } @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n</div>\n} @if (unlocked?.length) { @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n<teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n} @for (column of unlocked; track track($index, column)) {\n<teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n></teta-table-head-group>\n} }\n" }]
|
|
10173
9850
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { selectType: [{
|
|
10174
9851
|
type: Input
|
|
10175
9852
|
}], showHeadCellMenu: [{
|
|
@@ -10224,11 +9901,11 @@ class TableComponent {
|
|
|
10224
9901
|
this.verticalAlign = VerticalAlign;
|
|
10225
9902
|
this.align = Align;
|
|
10226
9903
|
this._alive = true;
|
|
10227
|
-
this.onScroll = event => {
|
|
9904
|
+
this.onScroll = (event) => {
|
|
10228
9905
|
this._headElement.scrollLeft = event.target.scrollLeft;
|
|
10229
9906
|
};
|
|
10230
9907
|
this._svc.state
|
|
10231
|
-
.pipe(takeWhile(() => this._alive), filter$1(state => state !== this._state))
|
|
9908
|
+
.pipe(takeWhile(() => this._alive), filter$1((state) => state !== this._state))
|
|
10232
9909
|
.subscribe((state) => this.stateChange.next(state));
|
|
10233
9910
|
this._svc.editCellStart
|
|
10234
9911
|
.pipe(takeWhile(() => this._alive))
|
|
@@ -10242,21 +9919,15 @@ class TableComponent {
|
|
|
10242
9919
|
this._svc.editRowStop
|
|
10243
9920
|
.pipe(takeWhile(() => this._alive))
|
|
10244
9921
|
.subscribe((item) => this.rowEditEnd.emit(this._svc.getRowByIndex(item?.row)));
|
|
10245
|
-
this._svc.selectedRows
|
|
10246
|
-
.pipe(takeWhile(() => this._alive))
|
|
10247
|
-
.subscribe((items) => {
|
|
9922
|
+
this._svc.selectedRows.pipe(takeWhile(() => this._alive)).subscribe((items) => {
|
|
10248
9923
|
this.selectedRowsList = items;
|
|
10249
9924
|
this.selectedRowsChange.emit(items);
|
|
10250
9925
|
});
|
|
10251
|
-
this._svc.activeRow
|
|
10252
|
-
.pipe(takeWhile(() => this._alive))
|
|
10253
|
-
.subscribe((item) => {
|
|
9926
|
+
this._svc.activeRow.pipe(takeWhile(() => this._alive)).subscribe((item) => {
|
|
10254
9927
|
this.activeRow = item;
|
|
10255
9928
|
this.activeRowChange.emit(item);
|
|
10256
9929
|
});
|
|
10257
|
-
this._svc.valueChanged
|
|
10258
|
-
.pipe(takeWhile(() => this._alive))
|
|
10259
|
-
.subscribe((coordinates) => {
|
|
9930
|
+
this._svc.valueChanged.pipe(takeWhile(() => this._alive)).subscribe((coordinates) => {
|
|
10260
9931
|
this.valueChange.emit(this._svc.getCellInstance(coordinates));
|
|
10261
9932
|
});
|
|
10262
9933
|
}
|
|
@@ -10373,8 +10044,7 @@ class TableComponent {
|
|
|
10373
10044
|
});
|
|
10374
10045
|
if (event.key && (event.key.length === 1 || event.key === 'Delete')) {
|
|
10375
10046
|
const column = this._svc.getColumnByName(coordinates.column);
|
|
10376
|
-
if (column.filterType !== FilterType.number ||
|
|
10377
|
-
isFinite(event.key)) {
|
|
10047
|
+
if (column.filterType !== FilterType.number || isFinite(event.key)) {
|
|
10378
10048
|
this.startEditRowOrCell({
|
|
10379
10049
|
row: coordinates.row,
|
|
10380
10050
|
column: coordinates.column,
|
|
@@ -10429,8 +10099,7 @@ class TableComponent {
|
|
|
10429
10099
|
this.tableService.emit(this._svc);
|
|
10430
10100
|
}
|
|
10431
10101
|
ngAfterViewInit() {
|
|
10432
|
-
this._headElement =
|
|
10433
|
-
this._elementRef.nativeElement.querySelector('.table-head');
|
|
10102
|
+
this._headElement = this._elementRef.nativeElement.querySelector('.table-head');
|
|
10434
10103
|
}
|
|
10435
10104
|
ngOnDestroy() {
|
|
10436
10105
|
this._alive = false;
|
|
@@ -10458,8 +10127,8 @@ class TableComponent {
|
|
|
10458
10127
|
}
|
|
10459
10128
|
if (Object.prototype.hasOwnProperty.call(changes, 'data')) {
|
|
10460
10129
|
this._svc.setData(this.data);
|
|
10461
|
-
this._svc.selectRows(this.data?.filter(row => {
|
|
10462
|
-
return this.selectedRows?.some(selectedRow => this.trackRow(this._svc.getRowIndex(selectedRow), selectedRow) ===
|
|
10130
|
+
this._svc.selectRows(this.data?.filter((row) => {
|
|
10131
|
+
return this.selectedRows?.some((selectedRow) => this.trackRow(this._svc.getRowIndex(selectedRow), selectedRow) ===
|
|
10463
10132
|
this.trackRow(this._svc.getRowIndex(row), row));
|
|
10464
10133
|
}));
|
|
10465
10134
|
}
|
|
@@ -10537,15 +10206,11 @@ class TableComponent {
|
|
|
10537
10206
|
return null;
|
|
10538
10207
|
}
|
|
10539
10208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableComponent, deps: [{ token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10540
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TableComponent, isStandalone: true, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", filterOptions: "filterOptions", state: "state", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", trackRow: "trackRow", trackColumns: "trackColumns", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", showHeadCellMenu: "showHeadCellMenu", contextMenu: "contextMenu", contextMenuOpen: "contextMenuOpen" }, outputs: { contextMenuOpenChange: "contextMenuOpenChange", stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellKeyDown: "cellKeyDown", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "keydown": "keydown($event)", "mousedown": "mousedown($event)" }, properties: { "class.table": "this.tableClass" } }, providers: [TableService], viewQueries: [{ propertyName: "menu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class
|
|
10209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TableComponent, isStandalone: true, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", filterOptions: "filterOptions", state: "state", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", trackRow: "trackRow", trackColumns: "trackColumns", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", showHeadCellMenu: "showHeadCellMenu", contextMenu: "contextMenu", contextMenuOpen: "contextMenuOpen" }, outputs: { contextMenuOpenChange: "contextMenuOpenChange", stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellKeyDown: "cellKeyDown", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "keydown": "keydown($event)", "mousedown": "mousedown($event)" }, properties: { "class.table": "this.tableClass" } }, providers: [TableService], viewQueries: [{ propertyName: "menu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"column column_auto\">\n <teta-table-head style=\"z-index: 1\" [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <div\n class=\"column column_auto position-relative\"\n style=\"z-index: 0\"\n [tetaContextMenu]=\"contextMenu\"\n [verticalAlign]=\"verticalAlign.auto\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [data]=\"contextMenuRow\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n >\n <teta-table-body\n (contextmenu)=\"setContextMenuRow($event)\"\n (scrollChange)=\"onScroll($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [trackRow]=\"trackRow\"\n [trackColumns]=\"trackColumns\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n >\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { kind: "directive", type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: ["tetaContextMenu", "autoCloseIgnore"] }, { kind: "component", type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "selectedRows", "additionalComponent", "aggregate", "selectType", "rowClass", "trackRow", "trackColumns"], outputs: ["scrollChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10541
10210
|
}
|
|
10542
10211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableComponent, decorators: [{
|
|
10543
10212
|
type: Component,
|
|
10544
|
-
args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], standalone: true, imports: [
|
|
10545
|
-
TableHeadComponent,
|
|
10546
|
-
ContextMenuDirective,
|
|
10547
|
-
TableBodyComponent,
|
|
10548
|
-
], template: "<div class='column column_auto'>\n <teta-table-head\n style='z-index: 1'\n [selectType]='selectType'\n [showHeadCellMenu]='showHeadCellMenu'></teta-table-head>\n <div class='column column_auto position-relative'\n style='z-index: 0'\n [tetaContextMenu]='contextMenu'\n [verticalAlign]='verticalAlign.auto'\n [align]='align.auto'\n [appendToBody]='true'\n [data]='contextMenuRow'\n [open]='contextMenuOpen'\n (openChange)='setContextMenuOpen($event)'>\n <teta-table-body\n (contextmenu)='setContextMenuRow($event)'\n (scrollChange)='onScroll($event)'\n [aggregate]='aggregate'\n [virtual]='virtual'\n [activeRow]='activeRow'\n [trackRow]='trackRow'\n [trackColumns]='trackColumns'\n [selectedRows]='selectedRowsList'\n [additionalComponent]='detailComponent'\n [selectType]='selectType'\n [rowClass]='rowClass'>\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n" }]
|
|
10213
|
+
args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], standalone: true, imports: [TableHeadComponent, ContextMenuDirective, TableBodyComponent], template: "<div class=\"column column_auto\">\n <teta-table-head style=\"z-index: 1\" [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <div\n class=\"column column_auto position-relative\"\n style=\"z-index: 0\"\n [tetaContextMenu]=\"contextMenu\"\n [verticalAlign]=\"verticalAlign.auto\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [data]=\"contextMenuRow\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n >\n <teta-table-body\n (contextmenu)=\"setContextMenuRow($event)\"\n (scrollChange)=\"onScroll($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [trackRow]=\"trackRow\"\n [trackColumns]=\"trackColumns\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n >\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n" }]
|
|
10549
10214
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ElementRef }], propDecorators: { data: [{
|
|
10550
10215
|
type: Input
|
|
10551
10216
|
}], columns: [{
|
|
@@ -10666,16 +10331,11 @@ class DateTimeCellComponent extends CellComponentBase {
|
|
|
10666
10331
|
this.cdr.markForCheck();
|
|
10667
10332
|
}
|
|
10668
10333
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateTimeCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10669
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateTimeCellComponent, isStandalone: true, selector: "teta-date-time-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"
|
|
10334
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateTimeCellComponent, isStandalone: true, selector: "teta-date-time-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10670
10335
|
}
|
|
10671
10336
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateTimeCellComponent, decorators: [{
|
|
10672
10337
|
type: Component,
|
|
10673
|
-
args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
10674
|
-
DatePickerComponent,
|
|
10675
|
-
FormsModule,
|
|
10676
|
-
ReactiveFormsModule,
|
|
10677
|
-
DatePipe,
|
|
10678
|
-
], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{control?.value | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n@if (edit) {\n <teta-date-picker class='datepicker-table'\n #input\n [appendToBody]='true'\n [showTime]='true'\n [formControl]='control'\n ></teta-date-picker>\n}\n" }]
|
|
10338
|
+
args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n" }]
|
|
10679
10339
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
|
|
10680
10340
|
type: ViewChild,
|
|
10681
10341
|
args: ['input', { static: false }]
|
|
@@ -10737,11 +10397,11 @@ class DividerComponent {
|
|
|
10737
10397
|
constructor() { }
|
|
10738
10398
|
ngOnInit() { }
|
|
10739
10399
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10740
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DividerComponent, isStandalone: true, selector: "teta-divider", inputs: { label: "label", template: "template" }, ngImport: i0, template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n
|
|
10400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DividerComponent, isStandalone: true, selector: "teta-divider", inputs: { label: "label", template: "template" }, ngImport: i0, template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10741
10401
|
}
|
|
10742
10402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DividerComponent, decorators: [{
|
|
10743
10403
|
type: Component,
|
|
10744
|
-
args: [{ selector: 'teta-divider', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n
|
|
10404
|
+
args: [{ selector: 'teta-divider', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n" }]
|
|
10745
10405
|
}], ctorParameters: () => [], propDecorators: { label: [{
|
|
10746
10406
|
type: Input
|
|
10747
10407
|
}], template: [{
|
|
@@ -10756,7 +10416,7 @@ class ResizePanelComponent {
|
|
|
10756
10416
|
return this._direction;
|
|
10757
10417
|
}
|
|
10758
10418
|
get icon() {
|
|
10759
|
-
return this.direction ===
|
|
10419
|
+
return this.direction === 'horizontal' ? 'moreHorizontal' : 'moreVertical';
|
|
10760
10420
|
}
|
|
10761
10421
|
set grabPosition(val) {
|
|
10762
10422
|
this._grabPosition = val;
|
|
@@ -10813,8 +10473,7 @@ class ResizePanelComponent {
|
|
|
10813
10473
|
ngOnInit() {
|
|
10814
10474
|
this.restorePosition();
|
|
10815
10475
|
}
|
|
10816
|
-
ngOnDestroy() {
|
|
10817
|
-
}
|
|
10476
|
+
ngOnDestroy() { }
|
|
10818
10477
|
getClassName() {
|
|
10819
10478
|
return this._positionMap.get(this.grabPosition) || '';
|
|
10820
10479
|
}
|
|
@@ -10885,15 +10544,11 @@ class ResizePanelComponent {
|
|
|
10885
10544
|
}
|
|
10886
10545
|
}
|
|
10887
10546
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ResizePanelComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10888
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ResizePanelComponent, isStandalone: true, selector: "teta-resize-panel", inputs: { size: "size", direction: "direction", grabPosition: "grabPosition", name: "name", minSize: "minSize", maxSize: "maxSize" }, host: { properties: { "class.resize-panel": "this.resizePanelClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div
|
|
10547
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ResizePanelComponent, isStandalone: true, selector: "teta-resize-panel", inputs: { size: "size", direction: "direction", grabPosition: "grabPosition", name: "name", minSize: "minSize", maxSize: "maxSize" }, host: { properties: { "class.resize-panel": "this.resizePanelClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div\n #grab\n class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\"\n>\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10889
10548
|
}
|
|
10890
10549
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
|
|
10891
10550
|
type: Component,
|
|
10892
|
-
args: [{ selector: 'teta-resize-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
10893
|
-
ResizeDragDirective,
|
|
10894
|
-
NgClass,
|
|
10895
|
-
IconComponent,
|
|
10896
|
-
], template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n" }]
|
|
10551
|
+
args: [{ selector: 'teta-resize-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ResizeDragDirective, NgClass, IconComponent], template: "<ng-content></ng-content>\n<div\n #grab\n class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\"\n>\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n" }]
|
|
10897
10552
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
10898
10553
|
type: Inject,
|
|
10899
10554
|
args: [DOCUMENT]
|
|
@@ -10954,7 +10609,7 @@ class AutoPositionDirective {
|
|
|
10954
10609
|
left: 0,
|
|
10955
10610
|
right: 0,
|
|
10956
10611
|
top: 0,
|
|
10957
|
-
bottom: 0
|
|
10612
|
+
bottom: 0,
|
|
10958
10613
|
};
|
|
10959
10614
|
if (targetTransformedParent) {
|
|
10960
10615
|
parentPosition = targetTransformedParent.getBoundingClientRect();
|
|
@@ -10969,7 +10624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
10969
10624
|
type: Directive,
|
|
10970
10625
|
args: [{
|
|
10971
10626
|
selector: '[tetaAutoPosition]',
|
|
10972
|
-
standalone: true
|
|
10627
|
+
standalone: true,
|
|
10973
10628
|
}]
|
|
10974
10629
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { align: [{
|
|
10975
10630
|
type: Input
|
|
@@ -11054,7 +10709,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
11054
10709
|
type: Directive,
|
|
11055
10710
|
args: [{
|
|
11056
10711
|
selector: '[tetaDragPreview]',
|
|
11057
|
-
standalone: true
|
|
10712
|
+
standalone: true,
|
|
11058
10713
|
}]
|
|
11059
10714
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
11060
10715
|
|
|
@@ -11076,9 +10731,11 @@ class DragDropService {
|
|
|
11076
10731
|
this._renderer = this._rendererFactory.createRenderer(null, null);
|
|
11077
10732
|
this.dropTarget = this.dropTarget$.asObservable();
|
|
11078
10733
|
this.dropped = this.dropped$.asObservable();
|
|
11079
|
-
merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove'))
|
|
10734
|
+
merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove'))
|
|
10735
|
+
.pipe(filter$1(() => {
|
|
11080
10736
|
return this.startPosition != null;
|
|
11081
|
-
}))
|
|
10737
|
+
}))
|
|
10738
|
+
.subscribe((event) => {
|
|
11082
10739
|
if (!this.dragProcess && this.getDelta(event) > this._delta) {
|
|
11083
10740
|
this.startProcess();
|
|
11084
10741
|
}
|
|
@@ -11086,20 +10743,21 @@ class DragDropService {
|
|
|
11086
10743
|
this.movePreview(event);
|
|
11087
10744
|
}
|
|
11088
10745
|
});
|
|
11089
|
-
merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend'))
|
|
10746
|
+
merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend'))
|
|
10747
|
+
.pipe(withLatestFrom(this.dropTarget))
|
|
10748
|
+
.subscribe((data) => {
|
|
11090
10749
|
const [event, target] = data;
|
|
11091
10750
|
if (target) {
|
|
11092
10751
|
this.dropped$.next({
|
|
11093
10752
|
target,
|
|
11094
10753
|
container: this.dragProcess.selection.container,
|
|
11095
|
-
data: [...this.dragProcess.selection.items]
|
|
10754
|
+
data: [...this.dragProcess.selection.items],
|
|
11096
10755
|
});
|
|
11097
10756
|
this.cancelDrag();
|
|
11098
10757
|
}
|
|
11099
10758
|
this.stopProcess();
|
|
11100
10759
|
});
|
|
11101
|
-
merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur'))
|
|
11102
|
-
.subscribe(() => {
|
|
10760
|
+
merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur')).subscribe(() => {
|
|
11103
10761
|
this.cancelDrag();
|
|
11104
10762
|
});
|
|
11105
10763
|
}
|
|
@@ -11117,7 +10775,7 @@ class DragDropService {
|
|
|
11117
10775
|
}
|
|
11118
10776
|
this.selection = {
|
|
11119
10777
|
container,
|
|
11120
|
-
items: [instance]
|
|
10778
|
+
items: [instance],
|
|
11121
10779
|
};
|
|
11122
10780
|
}
|
|
11123
10781
|
addSelection(instance, container) {
|
|
@@ -11146,7 +10804,7 @@ class DragDropService {
|
|
|
11146
10804
|
}
|
|
11147
10805
|
startProcess() {
|
|
11148
10806
|
this.dragProcess = {
|
|
11149
|
-
selection: this.selection
|
|
10807
|
+
selection: this.selection,
|
|
11150
10808
|
};
|
|
11151
10809
|
this._document.body.style.cursor = 'copy';
|
|
11152
10810
|
this._preview = this.createPreview();
|
|
@@ -11164,7 +10822,7 @@ class DragDropService {
|
|
|
11164
10822
|
if (this.dragProcess.selection.container.previewTemplate) {
|
|
11165
10823
|
this._previewRef = this.dragProcess.selection.container.viewContainer.createEmbeddedView(this.dragProcess.selection.container.previewTemplate, {
|
|
11166
10824
|
$implicit: this.dragProcess.selection.items,
|
|
11167
|
-
data: this.dragProcess.selection.items
|
|
10825
|
+
data: this.dragProcess.selection.items,
|
|
11168
10826
|
});
|
|
11169
10827
|
const preview = this._renderer.createElement('div');
|
|
11170
10828
|
this._renderer.setStyle(preview, 'position', 'fixed');
|
|
@@ -11196,7 +10854,7 @@ class DragDropService {
|
|
|
11196
10854
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DragDropService, decorators: [{
|
|
11197
10855
|
type: Injectable,
|
|
11198
10856
|
args: [{
|
|
11199
|
-
providedIn: 'root'
|
|
10857
|
+
providedIn: 'root',
|
|
11200
10858
|
}]
|
|
11201
10859
|
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
11202
10860
|
type: Inject,
|
|
@@ -11234,15 +10892,13 @@ class DragContainerDirective {
|
|
|
11234
10892
|
this.instance = new DragContainerInstance({
|
|
11235
10893
|
data: this.data,
|
|
11236
10894
|
previewTemplate: this._previewTemplate?.templateRef,
|
|
11237
|
-
viewContainer: this._viewContainerRef
|
|
10895
|
+
viewContainer: this._viewContainerRef,
|
|
11238
10896
|
});
|
|
11239
|
-
this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
|
|
11240
|
-
.subscribe((target) => {
|
|
10897
|
+
this._dragService.dropTarget.pipe(takeWhile(() => this._alive)).subscribe((target) => {
|
|
11241
10898
|
this.dropTarget = target;
|
|
11242
10899
|
this._cdr.detectChanges();
|
|
11243
10900
|
});
|
|
11244
|
-
this._dragService.dropped.pipe(takeWhile(() => this._alive))
|
|
11245
|
-
.subscribe((event) => {
|
|
10901
|
+
this._dragService.dropped.pipe(takeWhile(() => this._alive)).subscribe((event) => {
|
|
11246
10902
|
this.tetaDrop.emit(event);
|
|
11247
10903
|
});
|
|
11248
10904
|
}
|
|
@@ -11259,9 +10915,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
11259
10915
|
exportAs: 'dragContainer',
|
|
11260
10916
|
host: {
|
|
11261
10917
|
'[class.teta-drag-container]': '"true"',
|
|
11262
|
-
'[class.teta-drop-target]': 'isDropTarget'
|
|
10918
|
+
'[class.teta-drop-target]': 'isDropTarget',
|
|
11263
10919
|
},
|
|
11264
|
-
standalone: true
|
|
10920
|
+
standalone: true,
|
|
11265
10921
|
}]
|
|
11266
10922
|
}], ctorParameters: () => [{ type: DragDropService }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { data: [{
|
|
11267
10923
|
type: Input,
|
|
@@ -11277,7 +10933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
11277
10933
|
}], _previewTemplate: [{
|
|
11278
10934
|
type: ContentChild,
|
|
11279
10935
|
args: [DragPreviewDirective, {
|
|
11280
|
-
static: true
|
|
10936
|
+
static: true,
|
|
11281
10937
|
}]
|
|
11282
10938
|
}], mouseleave: [{
|
|
11283
10939
|
type: HostListener,
|
|
@@ -11322,8 +10978,7 @@ class DragDirective {
|
|
|
11322
10978
|
mouseenter(event) {
|
|
11323
10979
|
if (this.allowDrop) {
|
|
11324
10980
|
event.stopPropagation();
|
|
11325
|
-
if (this.allowDropPredicate === undefined ||
|
|
11326
|
-
this.allowDropPredicate(this._dragService.selection, this.data)) {
|
|
10981
|
+
if (this.allowDropPredicate === undefined || this.allowDropPredicate(this._dragService.selection, this.data)) {
|
|
11327
10982
|
this._dragService.setDropTarget(this.instance);
|
|
11328
10983
|
}
|
|
11329
10984
|
}
|
|
@@ -11347,9 +11002,7 @@ class DragDirective {
|
|
|
11347
11002
|
container: this._container?.instance,
|
|
11348
11003
|
data: this.data,
|
|
11349
11004
|
});
|
|
11350
|
-
this._dragService.dropTarget
|
|
11351
|
-
.pipe(takeWhile(() => this._alive))
|
|
11352
|
-
.subscribe(target => {
|
|
11005
|
+
this._dragService.dropTarget.pipe(takeWhile(() => this._alive)).subscribe((target) => {
|
|
11353
11006
|
this.dropTarget = target;
|
|
11354
11007
|
if (target === this.instance) {
|
|
11355
11008
|
this.tetaDragEnter.emit(this.instance);
|
|
@@ -11362,7 +11015,7 @@ class DragDirective {
|
|
|
11362
11015
|
.pipe(filter$1((event) => {
|
|
11363
11016
|
return event.target === this.instance;
|
|
11364
11017
|
}))
|
|
11365
|
-
.subscribe(event => {
|
|
11018
|
+
.subscribe((event) => {
|
|
11366
11019
|
this.tetaDrop.emit(event);
|
|
11367
11020
|
});
|
|
11368
11021
|
}
|
|
@@ -11439,7 +11092,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
11439
11092
|
type: Directive,
|
|
11440
11093
|
args: [{
|
|
11441
11094
|
selector: '[tetaDragPlaceholder]',
|
|
11442
|
-
standalone: true
|
|
11095
|
+
standalone: true,
|
|
11443
11096
|
}]
|
|
11444
11097
|
}], ctorParameters: () => [] });
|
|
11445
11098
|
|
|
@@ -11472,8 +11125,7 @@ class DragSortContainerDirective {
|
|
|
11472
11125
|
const list = this.getList();
|
|
11473
11126
|
const sourceIndex = list.indexOf(source);
|
|
11474
11127
|
const targetIndex = list.indexOf(target);
|
|
11475
|
-
if ((insertBefore && sourceIndex + 1 === targetIndex) ||
|
|
11476
|
-
(!insertBefore && sourceIndex === targetIndex + 1)) {
|
|
11128
|
+
if ((insertBefore && sourceIndex + 1 === targetIndex) || (!insertBefore && sourceIndex === targetIndex + 1)) {
|
|
11477
11129
|
return;
|
|
11478
11130
|
}
|
|
11479
11131
|
const newIndex = list.indexOf(target) + (insertBefore ? 0 : 1);
|
|
@@ -11556,23 +11208,17 @@ class DragSortItemDirective {
|
|
|
11556
11208
|
this._dragElement = this._renderer.createElement('div');
|
|
11557
11209
|
this._renderer.appendChild(this._elementRef.nativeElement, this._dragElement);
|
|
11558
11210
|
this._renderer.addClass(this._dragElement, 'drop-direction');
|
|
11559
|
-
this._renderer.addClass(this._dragElement, this.dragSortDirection === 'horizontal'
|
|
11560
|
-
? 'drop-direction-horizontal'
|
|
11561
|
-
: 'drop-direction-vertical');
|
|
11211
|
+
this._renderer.addClass(this._dragElement, this.dragSortDirection === 'horizontal' ? 'drop-direction-horizontal' : 'drop-direction-vertical');
|
|
11562
11212
|
}
|
|
11563
11213
|
destroyDrag() {
|
|
11564
11214
|
this._renderer.removeChild(this._renderer, this._dragElement);
|
|
11565
11215
|
}
|
|
11566
11216
|
getDropPosition(event) {
|
|
11567
11217
|
if (this.dragSortDirection === 'horizontal') {
|
|
11568
|
-
return event.clientX >= this.rect.x + this.rect.width / 2
|
|
11569
|
-
? 'end'
|
|
11570
|
-
: 'start';
|
|
11218
|
+
return event.clientX >= this.rect.x + this.rect.width / 2 ? 'end' : 'start';
|
|
11571
11219
|
}
|
|
11572
11220
|
else {
|
|
11573
|
-
return event.clientY >= this.rect.y + this.rect.height / 2
|
|
11574
|
-
? 'end'
|
|
11575
|
-
: 'start';
|
|
11221
|
+
return event.clientY >= this.rect.y + this.rect.height / 2 ? 'end' : 'start';
|
|
11576
11222
|
}
|
|
11577
11223
|
}
|
|
11578
11224
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DragSortItemDirective, deps: [{ token: DragSortContainerDirective, host: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -11639,7 +11285,7 @@ class LoaderDirective {
|
|
|
11639
11285
|
this._alive = true;
|
|
11640
11286
|
this._loading = false;
|
|
11641
11287
|
this._element = this._elementRef.nativeElement;
|
|
11642
|
-
this._zone.onStable.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
|
|
11288
|
+
this._zone.onStable.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
|
|
11643
11289
|
if (this._loading && this._loader) {
|
|
11644
11290
|
this.setPosition();
|
|
11645
11291
|
}
|
|
@@ -11723,14 +11369,13 @@ class TooltipDirective extends DynamicContentBaseDirective {
|
|
|
11723
11369
|
}
|
|
11724
11370
|
ngOnInit() {
|
|
11725
11371
|
merge(this._click.click, this._click.contextMenu)
|
|
11726
|
-
.pipe(takeWhile(() => this._alive), filter$1(() => this._open), filter$1(() => this._componentRef != null), filter$1((event) => !DomUtil.clickedInside(this._elementRef.nativeElement, event)), filter$1((event) => !DomUtil.clickedInside(this._componentRef?.location.nativeElement, event)), tap(_ => this.destroyContentRef()))
|
|
11372
|
+
.pipe(takeWhile(() => this._alive), filter$1(() => this._open), filter$1(() => this._componentRef != null), filter$1((event) => !DomUtil.clickedInside(this._elementRef.nativeElement, event)), filter$1((event) => !DomUtil.clickedInside(this._componentRef?.location.nativeElement, event)), tap((_) => this.destroyContentRef()))
|
|
11727
11373
|
.subscribe();
|
|
11728
11374
|
}
|
|
11729
11375
|
setPosition() {
|
|
11730
11376
|
if (this._componentRef && this._open) {
|
|
11731
11377
|
if (!this._componentRect) {
|
|
11732
|
-
this._componentRect =
|
|
11733
|
-
this._componentRef.location.nativeElement.getBoundingClientRect();
|
|
11378
|
+
this._componentRect = this._componentRef.location.nativeElement.getBoundingClientRect();
|
|
11734
11379
|
}
|
|
11735
11380
|
const containerPosition = this._elementRef.nativeElement.getBoundingClientRect();
|
|
11736
11381
|
const position = PositionUtil.getPosition(containerPosition, this._componentRect, this.align, this.verticalAlign, 0, 12);
|
|
@@ -11806,7 +11451,7 @@ class ScrollIntoViewDirective {
|
|
|
11806
11451
|
if (coerceBooleanProperty(this.tetaScrollIntoView)) {
|
|
11807
11452
|
this.elementRef.nativeElement.scrollIntoView({
|
|
11808
11453
|
behavior: 'smooth',
|
|
11809
|
-
block: 'start'
|
|
11454
|
+
block: 'start',
|
|
11810
11455
|
});
|
|
11811
11456
|
}
|
|
11812
11457
|
}
|
|
@@ -11818,7 +11463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
11818
11463
|
type: Directive,
|
|
11819
11464
|
args: [{
|
|
11820
11465
|
selector: '[tetaScrollIntoView]',
|
|
11821
|
-
standalone: true
|
|
11466
|
+
standalone: true,
|
|
11822
11467
|
}]
|
|
11823
11468
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
11824
11469
|
type: Inject,
|
|
@@ -11862,7 +11507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
11862
11507
|
type: Pipe,
|
|
11863
11508
|
args: [{
|
|
11864
11509
|
name: 'tetaDate',
|
|
11865
|
-
standalone: true
|
|
11510
|
+
standalone: true,
|
|
11866
11511
|
}]
|
|
11867
11512
|
}], ctorParameters: () => [{ type: i1$2.TranslocoService }] });
|
|
11868
11513
|
|
|
@@ -11971,15 +11616,7 @@ const ruLocale = {
|
|
|
11971
11616
|
'Ноябрь',
|
|
11972
11617
|
'Декабрь',
|
|
11973
11618
|
],
|
|
11974
|
-
days: [
|
|
11975
|
-
'Воскресенье',
|
|
11976
|
-
'Понедельник',
|
|
11977
|
-
'Вторник',
|
|
11978
|
-
'Среда',
|
|
11979
|
-
'Четверг',
|
|
11980
|
-
'Пятниуа',
|
|
11981
|
-
'Суббота',
|
|
11982
|
-
],
|
|
11619
|
+
days: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятниуа', 'Суббота'],
|
|
11983
11620
|
daysShort: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
|
|
11984
11621
|
};
|
|
11985
11622
|
|
|
@@ -12011,14 +11648,14 @@ const WINDOW = new InjectionToken('An abstraction over global window object', {
|
|
|
12011
11648
|
});
|
|
12012
11649
|
|
|
12013
11650
|
function tetaZoneFull(ngZone) {
|
|
12014
|
-
return source => new Observable(subscriber => source.subscribe({
|
|
12015
|
-
next: value => ngZone.run(() => subscriber.next(value)),
|
|
11651
|
+
return (source) => new Observable((subscriber) => source.subscribe({
|
|
11652
|
+
next: (value) => ngZone.run(() => subscriber.next(value)),
|
|
12016
11653
|
error: (error) => ngZone.run(() => subscriber.error(error)),
|
|
12017
11654
|
complete: () => ngZone.run(() => subscriber.complete()),
|
|
12018
11655
|
}));
|
|
12019
11656
|
}
|
|
12020
11657
|
function tetaZoneFree(ngZone) {
|
|
12021
|
-
return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
11658
|
+
return (source) => new Observable((subscriber) => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
12022
11659
|
}
|
|
12023
11660
|
function tetaZoneOptimized(ngZone) {
|
|
12024
11661
|
return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
|