@tetacom/ng-components 1.4.22 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +3 -5
- package/component/dropdown/dropdown-base.d.ts +1 -1
- package/directive/dynamic-content-base.directive.d.ts +1 -1
- package/fesm2022/tetacom-ng-components.mjs +515 -489
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/package.json +3 -5
- package/pipe/prepend-zero/prepend-zero.pipe.d.ts +7 -0
- package/pipe/prepend-zero/public-api.d.ts +1 -0
- package/pipe/public-api.d.ts +1 -0
- package/style/badge.scss +6 -4
- package/style/checkbox.scss +3 -1
- package/style/chips.scss +3 -1
- package/style/icon.scss +3 -1
- package/style/message.scss +3 -1
- package/style/navigation.scss +3 -1
- package/style/presets/view-types.scss +3 -1
- package/style/toggle.scss +3 -1
- package/style/toolbar.scss +3 -1
- package/esm2022/common/contract/auto-close-ignore-case.mjs +0 -2
- package/esm2022/common/contract/constructor-type.mjs +0 -2
- package/esm2022/common/contract/dynamic-data.mjs +0 -10
- package/esm2022/common/contract/i-dictionary.mjs +0 -2
- package/esm2022/common/contract/i-id-name.mjs +0 -2
- package/esm2022/common/contract/i-id.mjs +0 -2
- package/esm2022/common/contract/i-rect.mjs +0 -2
- package/esm2022/common/contract/i-tree-data.mjs +0 -2
- package/esm2022/common/contract/public-api.mjs +0 -10
- package/esm2022/common/contract/teta-content-ref.mjs +0 -8
- package/esm2022/common/enum/align.enum.mjs +0 -13
- package/esm2022/common/enum/public-api.mjs +0 -4
- package/esm2022/common/enum/teta-size.enum.mjs +0 -9
- package/esm2022/common/enum/vertical-align.enum.mjs +0 -11
- package/esm2022/common/model/public-api.mjs +0 -2
- package/esm2022/common/model/view-type.model.mjs +0 -2
- package/esm2022/common/public-api.mjs +0 -6
- package/esm2022/common/service/click.service.mjs +0 -23
- package/esm2022/common/service/dynamic-component.service.mjs +0 -93
- package/esm2022/common/service/overlay-container.service.mjs +0 -41
- package/esm2022/common/service/public-api.mjs +0 -4
- package/esm2022/common/util/array-util.mjs +0 -121
- package/esm2022/common/util/dom-util.mjs +0 -19
- package/esm2022/common/util/position-util.mjs +0 -136
- package/esm2022/common/util/public-api.mjs +0 -4
- package/esm2022/component/accordion/accordion/accordion.component.mjs +0 -17
- package/esm2022/component/accordion/accordion-content.directive.mjs +0 -17
- package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +0 -51
- package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +0 -62
- package/esm2022/component/accordion/public-api.mjs +0 -5
- package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +0 -13
- package/esm2022/component/autocomplete/public-api.mjs +0 -2
- package/esm2022/component/avatar/avatar/avatar.component.mjs +0 -55
- package/esm2022/component/avatar/model/avatar-color.enum.mjs +0 -22
- package/esm2022/component/avatar/public-api.mjs +0 -2
- package/esm2022/component/button/button/button.component.mjs +0 -67
- package/esm2022/component/button/public-api.mjs +0 -2
- package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +0 -241
- package/esm2022/component/chart-3d/model/base-3d-point.mjs +0 -2
- package/esm2022/component/chart-3d/model/chart-3d-options.mjs +0 -7
- package/esm2022/component/chart-3d/model/public-api.mjs +0 -3
- package/esm2022/component/chart-3d/model/series-3d.mjs +0 -7
- package/esm2022/component/chart-3d/public-api.mjs +0 -3
- package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +0 -137
- package/esm2022/component/checkbox/public-api.mjs +0 -2
- package/esm2022/component/date-picker/base-calendar.mjs +0 -121
- package/esm2022/component/date-picker/base-picker.mjs +0 -109
- package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +0 -50
- package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +0 -228
- package/esm2022/component/date-picker/date-range/date-range.component.mjs +0 -233
- package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +0 -118
- package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +0 -15
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +0 -118
- package/esm2022/component/date-picker/model/date-period.mjs +0 -7
- package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +0 -7
- package/esm2022/component/date-picker/model/day-model.mjs +0 -13
- package/esm2022/component/date-picker/model/from-to.model.mjs +0 -2
- package/esm2022/component/date-picker/model/min-max-date.model.mjs +0 -2
- package/esm2022/component/date-picker/model/public-api.mjs +0 -6
- package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +0 -47
- package/esm2022/component/date-picker/public-api.mjs +0 -6
- package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +0 -27
- package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +0 -48
- package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +0 -63
- package/esm2022/component/delimiter/public-api.mjs +0 -2
- package/esm2022/component/divider/divider/divider.component.mjs +0 -18
- package/esm2022/component/divider/public-api.mjs +0 -2
- package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +0 -30
- package/esm2022/component/dropdown/dropdown-base.mjs +0 -224
- package/esm2022/component/dropdown/dropdown-content.directive.mjs +0 -18
- package/esm2022/component/dropdown/dropdown-head.directive.mjs +0 -19
- package/esm2022/component/dropdown/dropdown.directive.mjs +0 -38
- package/esm2022/component/dropdown/public-api.mjs +0 -5
- package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +0 -53
- package/esm2022/component/dynamic-component/public-api.mjs +0 -2
- package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +0 -34
- package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +0 -25
- package/esm2022/component/expand-card/public-api.mjs +0 -3
- package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +0 -65
- package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +0 -17
- package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +0 -17
- package/esm2022/component/expand-panel/public-api.mjs +0 -4
- package/esm2022/component/file-upload/file-item/file-item.component.mjs +0 -13
- package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +0 -87
- package/esm2022/component/file-upload/public-api.mjs +0 -3
- package/esm2022/component/filter/base/filter-base.mjs +0 -10
- package/esm2022/component/filter/base/filter-component-base.mjs +0 -3
- package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +0 -63
- package/esm2022/component/filter/contarct/boolean-filter.mjs +0 -8
- package/esm2022/component/filter/contarct/date-filter-value.mjs +0 -9
- package/esm2022/component/filter/contarct/date-filter.mjs +0 -11
- package/esm2022/component/filter/contarct/filter-component-map.mjs +0 -15
- package/esm2022/component/filter/contarct/filter-item.mjs +0 -34
- package/esm2022/component/filter/contarct/filter-state.mjs +0 -145
- package/esm2022/component/filter/contarct/i-filter.mjs +0 -2
- package/esm2022/component/filter/contarct/list-filter.mjs +0 -12
- package/esm2022/component/filter/contarct/numeric-filter-value.mjs +0 -10
- package/esm2022/component/filter/contarct/numeric-filter.mjs +0 -9
- package/esm2022/component/filter/contarct/sort-param.mjs +0 -14
- package/esm2022/component/filter/contarct/string-filter.mjs +0 -12
- package/esm2022/component/filter/date-filter/date-filter.component.mjs +0 -64
- package/esm2022/component/filter/enum/filter-type.enum.mjs +0 -10
- package/esm2022/component/filter/enum/list-filter-type.enum.mjs +0 -6
- package/esm2022/component/filter/enum/string-filter-type.enum.mjs +0 -20
- package/esm2022/component/filter/filter-host/filter-host.component.mjs +0 -79
- package/esm2022/component/filter/list-filter/list-filter.component.mjs +0 -96
- package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +0 -64
- package/esm2022/component/filter/public-api.mjs +0 -23
- package/esm2022/component/filter/string-filter/string-filter.component.mjs +0 -64
- package/esm2022/component/icon/icon/icon.component.mjs +0 -54
- package/esm2022/component/icon/icon-file/icon-file.component.mjs +0 -27
- package/esm2022/component/icon/icon-sprite.directive.mjs +0 -34
- package/esm2022/component/icon/icon.service.mjs +0 -58
- package/esm2022/component/icon/public-api.mjs +0 -5
- package/esm2022/component/input/color-input/color-input.component.mjs +0 -71
- package/esm2022/component/input/form-group-title/form-group-title.component.mjs +0 -18
- package/esm2022/component/input/input/input.component.mjs +0 -38
- package/esm2022/component/input/public-api.mjs +0 -6
- package/esm2022/component/input/text-field/text-field.component.mjs +0 -94
- package/esm2022/component/message/message/message.component.mjs +0 -76
- package/esm2022/component/message/message-host/message-host.component.mjs +0 -84
- package/esm2022/component/message/message.service.mjs +0 -35
- package/esm2022/component/message/model/message.mjs +0 -23
- package/esm2022/component/message/public-api.mjs +0 -5
- package/esm2022/component/modal/dialog/dialog.component.mjs +0 -46
- package/esm2022/component/modal/dialog.service.mjs +0 -40
- package/esm2022/component/modal/modal-container/modal-container.component.mjs +0 -77
- package/esm2022/component/modal/modal.module.mjs +0 -32
- package/esm2022/component/modal/modal.service.mjs +0 -122
- package/esm2022/component/modal/model/current-modal.mjs +0 -3
- package/esm2022/component/modal/model/i-modal-config.mjs +0 -2
- package/esm2022/component/modal/model/i-modal-result.mjs +0 -2
- package/esm2022/component/modal/model/modal-close-reason.enum.mjs +0 -8
- package/esm2022/component/modal/model/modal-instance.mjs +0 -34
- package/esm2022/component/modal/public-api.mjs +0 -11
- package/esm2022/component/pager/model/pager-state.mjs +0 -51
- package/esm2022/component/pager/pager/pager.component.mjs +0 -13
- package/esm2022/component/pager/public-api.mjs +0 -4
- package/esm2022/component/pager/util/pager-util.mjs +0 -6
- package/esm2022/component/panel/panel/panel.component.mjs +0 -45
- package/esm2022/component/panel/public-api.mjs +0 -2
- package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +0 -130
- package/esm2022/component/progress-bar/public-api.mjs +0 -2
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +0 -24
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +0 -133
- package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +0 -20
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +0 -97
- package/esm2022/component/property-grid/public-api.mjs +0 -4
- package/esm2022/component/public-api.mjs +0 -72
- package/esm2022/component/radio/public-api.mjs +0 -3
- package/esm2022/component/radio/radio/radio.component.mjs +0 -240
- package/esm2022/component/radio/radio-button/radio-button.component.mjs +0 -63
- package/esm2022/component/resize-panel/public-api.mjs +0 -2
- package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +0 -166
- package/esm2022/component/select/public-api.mjs +0 -4
- package/esm2022/component/select/select/select.component.mjs +0 -272
- package/esm2022/component/select/select-option.directive.mjs +0 -17
- package/esm2022/component/select/select-value.directive.mjs +0 -17
- package/esm2022/component/sidebar/public-api.mjs +0 -3
- package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +0 -48
- package/esm2022/component/sidebar/sidebar-position.enum.mjs +0 -8
- package/esm2022/component/stepper/public-api.mjs +0 -2
- package/esm2022/component/stepper/stepper/stepper.component.mjs +0 -16
- package/esm2022/component/switch/public-api.mjs +0 -3
- package/esm2022/component/switch/switch/switch.component.mjs +0 -61
- package/esm2022/component/switch/switch-button/switch-button.component.mjs +0 -47
- package/esm2022/component/switch/switch.service.mjs +0 -21
- package/esm2022/component/table/base/cell-component-base.mjs +0 -158
- package/esm2022/component/table/base/detail-component-base.mjs +0 -3
- package/esm2022/component/table/base/head-cell-component-base.mjs +0 -18
- package/esm2022/component/table/cell/cell.component.mjs +0 -28
- package/esm2022/component/table/cell-host/cell-host.component.mjs +0 -56
- package/esm2022/component/table/contract/cell-components-map.mjs +0 -15
- package/esm2022/component/table/contract/column-reorder-event.mjs +0 -7
- package/esm2022/component/table/contract/column-resize-event.mjs +0 -7
- package/esm2022/component/table/contract/head-dropdown-tab.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-coordinates.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-event.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-instance.mjs +0 -2
- package/esm2022/component/table/contract/i-cell-value.mjs +0 -2
- package/esm2022/component/table/contract/public-api.mjs +0 -13
- package/esm2022/component/table/contract/sort-event.mjs +0 -7
- package/esm2022/component/table/contract/table-column-store.mjs +0 -12
- package/esm2022/component/table/contract/table-column.mjs +0 -44
- package/esm2022/component/table/contract/table-row.mjs +0 -7
- package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +0 -39
- package/esm2022/component/table/default/date-cell/date-cell.component.mjs +0 -40
- package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +0 -40
- package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +0 -49
- package/esm2022/component/table/default/list-cell/list-cell.component.mjs +0 -60
- package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +0 -39
- package/esm2022/component/table/default/string-cell/string-cell.component.mjs +0 -40
- package/esm2022/component/table/enum/aggregation-type.enum.mjs +0 -9
- package/esm2022/component/table/enum/edit-event.enum.mjs +0 -7
- package/esm2022/component/table/enum/edit-type.enum.mjs +0 -7
- package/esm2022/component/table/enum/public-api.mjs +0 -5
- package/esm2022/component/table/enum/select-type.enum.mjs +0 -7
- package/esm2022/component/table/head-cell/head-cell.component.mjs +0 -204
- package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +0 -50
- package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +0 -60
- package/esm2022/component/table/public-api.mjs +0 -42
- package/esm2022/component/table/selection-cell/selection-cell.component.mjs +0 -46
- package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +0 -45
- package/esm2022/component/table/service/table.service.mjs +0 -650
- package/esm2022/component/table/table/table.component.mjs +0 -470
- package/esm2022/component/table/table-body/table-body.component.mjs +0 -210
- package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +0 -57
- package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +0 -89
- package/esm2022/component/table/table-head/table-head.component.mjs +0 -76
- package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +0 -154
- package/esm2022/component/table/table-head-group/table-head-group.component.mjs +0 -72
- package/esm2022/component/table/table-row/table-row.component.mjs +0 -42
- package/esm2022/component/table/util/public-api.mjs +0 -3
- package/esm2022/component/table/util/state-util.mjs +0 -146
- package/esm2022/component/table/util/table-util.mjs +0 -133
- package/esm2022/component/tabs/public-api.mjs +0 -11
- package/esm2022/component/tabs/tab/tab.component.mjs +0 -42
- package/esm2022/component/tabs/tab-content.directive.mjs +0 -17
- package/esm2022/component/tabs/tab-title.directive.mjs +0 -17
- package/esm2022/component/tabs/tabs/tabs.component.mjs +0 -82
- package/esm2022/component/theme-switch/public-api.mjs +0 -3
- package/esm2022/component/theme-switch/theme-switch/theme-switch.component.mjs +0 -30
- package/esm2022/component/theme-switch/theme-switch.service.mjs +0 -34
- package/esm2022/component/toggle/public-api.mjs +0 -2
- package/esm2022/component/toggle/toggle/toggle.component.mjs +0 -79
- package/esm2022/component/toolbar/public-api.mjs +0 -5
- package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +0 -26
- package/esm2022/component/tree/public-api.mjs +0 -4
- package/esm2022/component/tree/tree/tree.component.mjs +0 -143
- package/esm2022/component/tree/tree-item/tree-item.component.mjs +0 -75
- package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +0 -28
- package/esm2022/component/tree/tree.service.mjs +0 -40
- package/esm2022/directive/auto-position/auto-position.directive.mjs +0 -71
- package/esm2022/directive/auto-position/public-api.mjs +0 -2
- package/esm2022/directive/click-outside/click-outside.directive.mjs +0 -66
- package/esm2022/directive/click-outside/public-api.mjs +0 -2
- package/esm2022/directive/context-menu/context-menu.directive.mjs +0 -119
- package/esm2022/directive/context-menu/public-api.mjs +0 -2
- package/esm2022/directive/disable-control/disable-control.directive.mjs +0 -35
- package/esm2022/directive/disable-control/public-api.mjs +0 -2
- package/esm2022/directive/drag-drop/drag-container.directive.mjs +0 -92
- package/esm2022/directive/drag-drop/drag-drop.service.mjs +0 -145
- package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +0 -15
- package/esm2022/directive/drag-drop/drag-preview.directive.mjs +0 -17
- package/esm2022/directive/drag-drop/drag.directive.mjs +0 -138
- package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +0 -8
- package/esm2022/directive/drag-drop/model/drag-instance.mjs +0 -7
- package/esm2022/directive/drag-drop/model/drag-process.mjs +0 -2
- package/esm2022/directive/drag-drop/model/drag-selection.mjs +0 -2
- package/esm2022/directive/drag-drop/model/drop-event.mjs +0 -2
- package/esm2022/directive/drag-drop/model/drop-target.mjs +0 -2
- package/esm2022/directive/drag-drop/model/point.mjs +0 -2
- package/esm2022/directive/drag-drop/model/public-api.mjs +0 -8
- package/esm2022/directive/drag-drop/public-api.mjs +0 -7
- package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +0 -65
- package/esm2022/directive/drag-sort/drag-sort-event.mjs +0 -2
- package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +0 -111
- package/esm2022/directive/drag-sort/public-api.mjs +0 -4
- package/esm2022/directive/dynamic-content-base.directive.mjs +0 -80
- package/esm2022/directive/highlight/highlight.directive.mjs +0 -72
- package/esm2022/directive/highlight/public-api.mjs +0 -2
- package/esm2022/directive/hint/hint.directive.mjs +0 -102
- package/esm2022/directive/hint/public-api.mjs +0 -2
- package/esm2022/directive/let/let.directive.mjs +0 -39
- package/esm2022/directive/let/public-api.mjs +0 -2
- package/esm2022/directive/loader/loader.directive.mjs +0 -85
- package/esm2022/directive/loader/public-api.mjs +0 -2
- package/esm2022/directive/no-autofill/no-autofill.directive.mjs +0 -31
- package/esm2022/directive/no-autofill/public-api.mjs +0 -2
- package/esm2022/directive/only-number/only-number.directive.mjs +0 -184
- package/esm2022/directive/only-number/public-api.mjs +0 -2
- package/esm2022/directive/public-api.mjs +0 -19
- package/esm2022/directive/resize-drag/public-api.mjs +0 -2
- package/esm2022/directive/resize-drag/resize-drag.directive.mjs +0 -72
- package/esm2022/directive/scroll-into-view/public-api.mjs +0 -2
- package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +0 -41
- package/esm2022/directive/scrollable/public-api.mjs +0 -3
- package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +0 -98
- package/esm2022/directive/scrollable/scrollable.directive.mjs +0 -20
- package/esm2022/directive/teta-template/public-api.mjs +0 -2
- package/esm2022/directive/teta-template/teta-template.directive.mjs +0 -23
- package/esm2022/directive/tooltip/public-api.mjs +0 -2
- package/esm2022/directive/tooltip/tooltip.directive.mjs +0 -81
- package/esm2022/index.mjs +0 -22
- package/esm2022/locale/en.mjs +0 -50
- package/esm2022/locale/public-api.mjs +0 -5
- package/esm2022/locale/ru.mjs +0 -50
- package/esm2022/locale/teta-config.service.mjs +0 -28
- package/esm2022/locale/teta-localisation.mjs +0 -2
- package/esm2022/observable/animation-frame.mjs +0 -30
- package/esm2022/observable/public-api.mjs +0 -3
- package/esm2022/observable/zone-observable.mjs +0 -15
- package/esm2022/pipe/date-pipe/public-api.mjs +0 -2
- package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +0 -43
- package/esm2022/pipe/number-pipe/number.pipe.mjs +0 -28
- package/esm2022/pipe/number-pipe/public-api.mjs +0 -2
- package/esm2022/pipe/public-api.mjs +0 -4
- package/esm2022/pipe/util/number-helper.mjs +0 -25
- package/esm2022/tetacom-ng-components.mjs +0 -5
- package/esm2022/util/bool-or-func.mjs +0 -13
- package/esm2022/util/date-util.mjs +0 -231
- package/esm2022/util/export-dom-image.mjs +0 -22
- package/esm2022/util/forms-util.mjs +0 -85
- package/esm2022/util/is-function.mjs +0 -4
- package/esm2022/util/public-api.mjs +0 -7
- package/esm2022/util/string-util.mjs +0 -9
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, input, output, } from '@angular/core';
|
|
2
|
-
import { ControlContainer, FormGroup, FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { TranslocoService } from '@jsverse/transloco';
|
|
4
|
-
import { takeWhile } from 'rxjs/operators';
|
|
5
|
-
import { Align } from '../../../../common/enum/align.enum';
|
|
6
|
-
import { boolOrFuncCallback } from '../../../../util/bool-or-func';
|
|
7
|
-
import { FormsUtil } from '../../../../util/forms-util';
|
|
8
|
-
import { FilterType } from '../../../filter/enum/filter-type.enum';
|
|
9
|
-
import { TextFieldComponent } from '../../../input/text-field/text-field.component';
|
|
10
|
-
import { ToggleComponent } from '../../../toggle/toggle/toggle.component';
|
|
11
|
-
import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
|
|
12
|
-
import { SelectComponent } from '../../../select/select/select.component';
|
|
13
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
14
|
-
import { InputComponent } from '../../../input/input/input.component';
|
|
15
|
-
import { DisableControlDirective } from '../../../../directive/disable-control/disable-control.directive';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "@angular/forms";
|
|
18
|
-
export class PropertyGridItemComponent {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.transloco = inject(TranslocoService);
|
|
21
|
-
this._formGroup = inject(ControlContainer);
|
|
22
|
-
this.column = input();
|
|
23
|
-
this.hideNonEditable = input();
|
|
24
|
-
this.dict = input();
|
|
25
|
-
this.decimalPart = input();
|
|
26
|
-
this.item = input();
|
|
27
|
-
this.itemTemplates = input();
|
|
28
|
-
this.template = computed(() => {
|
|
29
|
-
return this.itemTemplates().find((item) => item.name === this.column().name);
|
|
30
|
-
});
|
|
31
|
-
this.editable = computed(() => {
|
|
32
|
-
return boolOrFuncCallback(this.column().editable)({
|
|
33
|
-
column: this.column(),
|
|
34
|
-
row: this.formGroup?.getRawValue(),
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
this.horizontal = input();
|
|
38
|
-
this.controlValueChange = output();
|
|
39
|
-
this.align = Align;
|
|
40
|
-
this.filterTypeEnum = FilterType;
|
|
41
|
-
this.caption = computed(() => {
|
|
42
|
-
if (this.column().filterType === FilterType.boolean) {
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
return `${this.column().caption}${this.column().unit ? `, ${this.column().unit}` : ''}`;
|
|
46
|
-
});
|
|
47
|
-
this.hint = computed(() => {
|
|
48
|
-
if (this.column().filterType === FilterType.boolean) {
|
|
49
|
-
return '';
|
|
50
|
-
}
|
|
51
|
-
return `${this.column().hint || this.column().caption}${this.column().unit ? `, ${this.column().unit}` : ''}`;
|
|
52
|
-
});
|
|
53
|
-
this._alive = true;
|
|
54
|
-
}
|
|
55
|
-
get formGroup() {
|
|
56
|
-
if (this._formGroup instanceof FormGroup) {
|
|
57
|
-
return this._formGroup;
|
|
58
|
-
}
|
|
59
|
-
if (this._formGroup instanceof NgForm) {
|
|
60
|
-
return this._formGroup.form;
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
getDict() {
|
|
65
|
-
const dict = this.dict() ? this.dict()[this.column().name] : [];
|
|
66
|
-
if (this.column().parentName?.length > 0) {
|
|
67
|
-
return dict?.filter((dictItem) => dictItem.parentId === this.formGroup?.getRawValue()[this.column().parentName]);
|
|
68
|
-
}
|
|
69
|
-
return dict;
|
|
70
|
-
}
|
|
71
|
-
controlIsInvalid(controlName) {
|
|
72
|
-
return FormsUtil.controlIsInvalid(this.formGroup, controlName);
|
|
73
|
-
}
|
|
74
|
-
getError(column) {
|
|
75
|
-
const control = this.formGroup?.get(column.name);
|
|
76
|
-
if (control?.hasError('required')) {
|
|
77
|
-
return this.transloco.translate('errors.field_is_required');
|
|
78
|
-
}
|
|
79
|
-
if (control?.hasError('min')) {
|
|
80
|
-
return this.transloco.translate('errors.min_value', {
|
|
81
|
-
value: column.minValue,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
if (control?.hasError('max')) {
|
|
85
|
-
return this.transloco.translate('errors.max_value', {
|
|
86
|
-
value: column.maxValue,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (control?.hasError('maxlength')) {
|
|
90
|
-
return this.transloco.translate('errors.max_length', {
|
|
91
|
-
value: column.maxLength,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
ngOnDestroy() {
|
|
97
|
-
this._alive = false;
|
|
98
|
-
this._formSub?.unsubscribe();
|
|
99
|
-
}
|
|
100
|
-
ngOnChanges() {
|
|
101
|
-
if (this.column() && this.item()) {
|
|
102
|
-
if (!this.formGroup.get(this.column().name)) {
|
|
103
|
-
this.formGroup.setControl(this.column().name, FormsUtil.initControlFromColumn(this.column(), this.item()));
|
|
104
|
-
}
|
|
105
|
-
this._formSub?.unsubscribe();
|
|
106
|
-
this._formSub = this.formGroup?.controls[this.column().name]?.valueChanges
|
|
107
|
-
.pipe(takeWhile(() => this._alive))
|
|
108
|
-
.subscribe((_) => {
|
|
109
|
-
this.controlValueChange.emit({
|
|
110
|
-
id: _,
|
|
111
|
-
name: this.column().name,
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"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 {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @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 }\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 }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable()\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\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 }\n }\n }\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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.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], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
|
-
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
|
|
120
|
-
type: Component,
|
|
121
|
-
args: [{ selector: 'teta-property-grid-item', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
|
|
122
|
-
InputComponent,
|
|
123
|
-
FormsModule,
|
|
124
|
-
ReactiveFormsModule,
|
|
125
|
-
NgTemplateOutlet,
|
|
126
|
-
SelectComponent,
|
|
127
|
-
DatePickerComponent,
|
|
128
|
-
ToggleComponent,
|
|
129
|
-
TextFieldComponent,
|
|
130
|
-
DisableControlDirective,
|
|
131
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"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 {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @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 }\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 }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable()\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\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 }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n" }]
|
|
132
|
-
}] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFB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IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgTmdGb3JtLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSURpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IElJZE5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7IEFsaWduIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBib29sT3JGdW5jQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9lbnVtL2ZpbHRlci10eXBlLmVudW0nO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnB1dC90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RvZ2dsZS90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlL2Rpc2FibGUtY29udHJvbC9kaXNhYmxlLWNvbnRyb2wuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtGb3Jtc1V0aWwuZm9ybVByb3ZpZGVyXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElucHV0Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBUb2dnbGVDb21wb25lbnQsXG4gICAgVGV4dEZpZWxkQ29tcG9uZW50LFxuICAgIERpc2FibGVDb250cm9sRGlyZWN0aXZlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSB0cmFuc2xvY28gPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cCA9IGluamVjdChDb250cm9sQ29udGFpbmVyKTtcblxuICBjb2x1bW4gPSBpbnB1dDxUYWJsZUNvbHVtbj4oKTtcbiAgaGlkZU5vbkVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgZGljdCA9IGlucHV0PElEaWN0aW9uYXJ5PElJZE5hbWU8YW55PltdPj4oKTtcbiAgZGVjaW1hbFBhcnQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIGl0ZW0gPSBpbnB1dDxUPigpO1xuICBpdGVtVGVtcGxhdGVzID0gaW5wdXQ8cmVhZG9ubHkgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlW10+KCk7XG4gIHRlbXBsYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1UZW1wbGF0ZXMoKS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuY29sdW1uKCkubmFtZSk7XG4gIH0pO1xuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgTmdGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwLmZvcm07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZWRpdGFibGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayh0aGlzLmNvbHVtbigpLmVkaXRhYmxlKSh7XG4gICAgICBjb2x1bW46IHRoaXMuY29sdW1uKCksXG4gICAgICByb3c6IHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpLFxuICAgIH0pO1xuICB9KTtcblxuICBob3Jpem9udGFsID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgY29udHJvbFZhbHVlQ2hhbmdlID0gb3V0cHV0PElJZE5hbWU8YW55Pj4oKTtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgZmlsdGVyVHlwZUVudW0gPSBGaWx0ZXJUeXBlO1xuXG4gIHByaXZhdGUgX2Zvcm1TdWI6IFN1YnNjcmlwdGlvbjtcblxuICBjYXB0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuYm9vbGVhbikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy5jb2x1bW4oKS5jYXB0aW9ufSR7dGhpcy5jb2x1bW4oKS51bml0ID8gYCwgJHt0aGlzLmNvbHVtbigpLnVuaXR9YCA6ICcnfWA7XG4gIH0pO1xuXG4gIGhpbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbigpLmhpbnQgfHwgdGhpcy5jb2x1bW4oKS5jYXB0aW9ufSR7dGhpcy5jb2x1bW4oKS51bml0ID8gYCwgJHt0aGlzLmNvbHVtbigpLnVuaXR9YCA6ICcnfWA7XG4gIH0pXG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGdldERpY3QoKSB7XG4gICAgY29uc3QgZGljdCA9IHRoaXMuZGljdCgpID8gdGhpcy5kaWN0KClbdGhpcy5jb2x1bW4oKS5uYW1lXSA6IFtdO1xuICAgIGlmICh0aGlzLmNvbHVtbigpLnBhcmVudE5hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBkaWN0Py5maWx0ZXIoXG4gICAgICAgIChkaWN0SXRlbTogSUlkTmFtZTxhbnk+KSA9PiBkaWN0SXRlbS5wYXJlbnRJZCA9PT0gdGhpcy5mb3JtR3JvdXA/LmdldFJhd1ZhbHVlKClbdGhpcy5jb2x1bW4oKS5wYXJlbnROYW1lXSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgY29udHJvbElzSW52YWxpZChjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKHRoaXMuZm9ybUdyb3VwLCBjb250cm9sTmFtZSk7XG4gIH1cblxuICBnZXRFcnJvcihjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpO1xuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLmZpZWxkX2lzX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWluJykpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5taW5fdmFsdWUnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWluVmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWF4X2xlbmd0aCcsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhMZW5ndGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4oKSAmJiB0aGlzLml0ZW0oKSkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5jb2x1bW4oKS5uYW1lKSkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5zZXRDb250cm9sKHRoaXMuY29sdW1uKCkubmFtZSwgRm9ybXNVdGlsLmluaXRDb250cm9sRnJvbUNvbHVtbih0aGlzLmNvbHVtbigpLCB0aGlzLml0ZW0oKSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5fZm9ybVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2Zvcm1TdWIgPSB0aGlzLmZvcm1Hcm91cD8uY29udHJvbHNbdGhpcy5jb2x1bW4oKS5uYW1lXT8udmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgIGlkOiBfLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5jb2x1bW4oKS5uYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoZWRpdGFibGUoKSB8fCAhaGlkZU5vbkVkaXRhYmxlKCkpIHtcbiAgPHRldGEtaW5wdXRcbiAgICBbbGFiZWxdPVwiY2FwdGlvbigpXCJcbiAgICBbaGludF09XCJoaW50KClcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsKClcIlxuICAgIFtyZXF1aXJlZF09XCJjb2x1bW4oKS5yZXF1aXJlZFwiXG4gID5cbiAgICBAaWYgKHRlbXBsYXRlKCkpIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZSgpLnRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZm9ybUdyb3VwPy5nZXQoY29sdW1uKCkubmFtZSkgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKGZvcm1Hcm91cD8uZ2V0KGNvbHVtbigpLm5hbWUpKSB7XG4gICAgICAgIEBzd2l0Y2ggKGNvbHVtbigpLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0ubGlzdCkge1xuICAgICAgICAgICAgPHRldGEtc2VsZWN0XG4gICAgICAgICAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFJlZl09XCJnZXREaWN0KCk/Lmxlbmd0aCA+IDEwID8gJ25hbWUnIDogJydcIlxuICAgICAgICAgICAgICBbYWxsb3dOdWxsXT1cIiFjb2x1bW4oKS5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uKCkubmFtZSlcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgICAgICAgICAgICBbdmFsdWVSZWZdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgIFt0ZXh0UmVmXT1cIiduYW1lJ1wiXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICA+PC90ZXRhLXNlbGVjdD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKGZpbHRlclR5cGVFbnVtLmRhdGUpIHtcbiAgICAgICAgICAgIDx0ZXRhLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uKCkubmFtZVwiXG4gICAgICAgICAgICA+PC90ZXRhLWRhdGUtcGlja2VyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0uYm9vbGVhbikge1xuICAgICAgICAgICAgPHRldGEtdG9nZ2xlIFt0ZXRhRGlzYWJsZUNvbnRyb2xdPVwiIWVkaXRhYmxlKClcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgY29sdW1uKCkuY2FwdGlvbiB9fVxuICAgICAgICAgICAgPC90ZXRhLXRvZ2dsZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPHRldGEtdGV4dC1maWVsZFxuICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4oKS5maWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlRW51bS5udW1iZXIgPyBkZWNpbWFsUGFydCgpIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtvbmx5TnVtYmVyXT1cImNvbHVtbigpLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb2x1bW4oKS5jYXB0aW9uXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uKCkubmFtZVwiXG4gICAgICAgICAgICA+PC90ZXRhLXRleHQtZmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAoY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKSkge1xuICAgICAgPGRpdiBuZ1Byb2plY3RBcz1cIm1lc3NhZ2VcIiBjbGFzcz1cImNvbG9yLXJlZC01MFwiPlxuICAgICAgICB7eyBnZXRFcnJvcihjb2x1bW4oKSkgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC90ZXRhLWlucHV0PlxufVxuIl19
|
package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class PropertyGridItemDescriptionDirective {
|
|
4
|
-
constructor(template) {
|
|
5
|
-
this.template = template;
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemDescriptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: PropertyGridItemDescriptionDirective, isStandalone: true, selector: "[tetaPropertyGridItemDescription]", inputs: { name: ["tetaPropertyGridItemDescription", "name"] }, ngImport: i0 }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemDescriptionDirective, decorators: [{
|
|
11
|
-
type: Directive,
|
|
12
|
-
args: [{
|
|
13
|
-
selector: '[tetaPropertyGridItemDescription]',
|
|
14
|
-
standalone: true,
|
|
15
|
-
}]
|
|
16
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
|
|
17
|
-
type: Input,
|
|
18
|
-
args: ['tetaPropertyGridItemDescription']
|
|
19
|
-
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU05RCxNQUFNLE9BQU8sb0NBQW9DO0lBRy9DLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUcsQ0FBQzs4R0FIdEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2dGQUUyQyxJQUFJO3NCQUE3QyxLQUFLO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgndGV0YVByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbicpIG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG4iXX0=
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, contentChildren, effect, HostBinding, input, Optional, output, } from '@angular/core';
|
|
2
|
-
import { ControlContainer, FormGroup, FormsModule, NgForm, ReactiveFormsModule, UntypedFormControl, } from '@angular/forms';
|
|
3
|
-
import { boolOrFuncCallback } from '../../../util/bool-or-func';
|
|
4
|
-
import { FormsUtil } from '../../../util/forms-util';
|
|
5
|
-
import { PropertyGridItemDescriptionDirective } from './property-grid-item-description.directive';
|
|
6
|
-
import { PropertyGridGroupComponent } from './property-grid-group/property-grid-group.component';
|
|
7
|
-
import { PropertyGridItemComponent } from './property-grid-item/property-grid-item.component';
|
|
8
|
-
import { ArrayUtil } from '../../../common/util/array-util';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/forms";
|
|
11
|
-
export class PropertyGridComponent {
|
|
12
|
-
get formGroup() {
|
|
13
|
-
if (this._formGroup instanceof FormGroup) {
|
|
14
|
-
return this._formGroup;
|
|
15
|
-
}
|
|
16
|
-
if (this._formGroup instanceof NgForm) {
|
|
17
|
-
return this._formGroup.form;
|
|
18
|
-
}
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
constructor(_formGroup) {
|
|
22
|
-
this._formGroup = _formGroup;
|
|
23
|
-
this.formClass = true;
|
|
24
|
-
this.itemTemplates = contentChildren(PropertyGridItemDescriptionDirective);
|
|
25
|
-
this.hideNonEditable = input();
|
|
26
|
-
this.columns = input();
|
|
27
|
-
this.dict = input();
|
|
28
|
-
this.item = input();
|
|
29
|
-
this.horizontal = input();
|
|
30
|
-
this.decimalPart = input();
|
|
31
|
-
this.controlValueChange = output();
|
|
32
|
-
effect(() => {
|
|
33
|
-
if (this.item() && this.columns()?.length && this.formGroup) {
|
|
34
|
-
for (const key in this.item()) {
|
|
35
|
-
if (Object.prototype.hasOwnProperty.call(this.item(), key)) {
|
|
36
|
-
if (!this.formGroup.get(key)) {
|
|
37
|
-
const currentColumn = ArrayUtil.findRecursive(this.columns(), (item) => item.name === key, 'columns');
|
|
38
|
-
if (currentColumn) {
|
|
39
|
-
this.formGroup.setControl(key, FormsUtil.initControlFromColumn(currentColumn, this.item()), {
|
|
40
|
-
emitEvent: false,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this.formGroup.setControl(key, new UntypedFormControl(this.item()[key]), {
|
|
45
|
-
emitEvent: false,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.formGroup.patchValue(this.item(), {
|
|
51
|
-
emitEvent: false,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
getEditable(column) {
|
|
60
|
-
return boolOrFuncCallback(column.editable)({
|
|
61
|
-
column: column,
|
|
62
|
-
row: this.formGroup?.getRawValue(),
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
onControlValueChange(event) {
|
|
66
|
-
const affected = this.columns().filter((_) => _.parentName === event.name);
|
|
67
|
-
if (affected?.length) {
|
|
68
|
-
affected.forEach((item) => {
|
|
69
|
-
const value = this.formGroup.getRawValue()[item.name];
|
|
70
|
-
if (value) {
|
|
71
|
-
const dictValue = this.getDictValue(value, item.name);
|
|
72
|
-
if (dictValue && dictValue.parentId !== event.id) {
|
|
73
|
-
const newObj = {};
|
|
74
|
-
newObj[item.name] = null;
|
|
75
|
-
this.formGroup.patchValue(newObj);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
this.controlValueChange.emit(event);
|
|
81
|
-
}
|
|
82
|
-
getDictValue(value, name) {
|
|
83
|
-
return this.dict()[name]?.find((_) => _.id === value);
|
|
84
|
-
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective, isSignal: true }], ngImport: i0, template: "@if (columns()?.length) {\n @for (column of columns(); track column.name) {\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()\"\n ></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()\"\n ></teta-property-grid-group>\n }\n }\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: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
87
|
-
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
|
|
89
|
-
type: Component,
|
|
90
|
-
args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (columns()?.length) {\n @for (column of columns(); track column.name) {\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()\"\n ></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()\"\n ></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"] }]
|
|
91
|
-
}], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
|
|
92
|
-
type: Optional
|
|
93
|
-
}] }], propDecorators: { formClass: [{
|
|
94
|
-
type: HostBinding,
|
|
95
|
-
args: ['class.form-container']
|
|
96
|
-
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sRUFDTixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsa0JBQWtCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBVzVELE1BQU0sT0FBTyxxQkFBcUI7SUFhaEMsSUFBSSxTQUFTO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENB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QVM7K0JBQ0Usb0JBQW9CLGlCQUdmLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUMzQixJQUFJLFdBQ1AsQ0FBQyx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLENBQUMsbUJBQ2pGLHVCQUF1QixDQUFDLE1BQU07OzBCQXlCbEMsUUFBUTt5Q0F0QmdCLFNBQVM7c0JBQTdDLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29udGVudENoaWxkcmVuLFxuICBlZmZlY3QsXG4gIEhvc3RCaW5kaW5nLFxuICBpbnB1dCxcbiAgT3B0aW9uYWwsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBGb3JtR3JvdXAsXG4gIEZvcm1zTW9kdWxlLFxuICBOZ0Zvcm0sXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgSUlkTmFtZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHsgYm9vbE9yRnVuY0NhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9ib29sLW9yLWZ1bmMnO1xuaW1wb3J0IHsgRm9ybXNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbC9hcnJheS11dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1wcm9wZXJ0eS1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtGb3Jtc1V0aWwuZm9ybVByb3ZpZGVyXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1Byb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBQcm9wZXJ0eUdyaWRHcm91cENvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRDb21wb25lbnQ8VD4ge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY29udGFpbmVyJykgZm9ybUNsYXNzID0gdHJ1ZTtcbiAgaXRlbVRlbXBsYXRlcyA9IGNvbnRlbnRDaGlsZHJlbihQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmUpO1xuICBoaWRlTm9uRWRpdGFibGUgPSBpbnB1dDxib29sZWFuPigpO1xuICBjb2x1bW5zID0gaW5wdXQ8VGFibGVDb2x1bW5bXT4oKTtcbiAgZGljdCA9IGlucHV0PElEaWN0aW9uYXJ5PElJZE5hbWU8YW55PltdPj4oKTtcbiAgaXRlbSA9IGlucHV0PFQ+KCk7XG5cbiAgaG9yaXpvbnRhbCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGRlY2ltYWxQYXJ0ID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gIGNvbnRyb2xWYWx1ZUNoYW5nZSA9IG91dHB1dDxJSWROYW1lPGFueT4+KCk7XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXAuZm9ybTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXA6IENvbnRyb2xDb250YWluZXIpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXRlbSgpICYmIHRoaXMuY29sdW1ucygpPy5sZW5ndGggJiYgdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5pdGVtKCkpIHtcbiAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuaXRlbSgpLCBrZXkpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldChrZXkpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb2x1bW4gPSBBcnJheVV0aWwuZmluZFJlY3Vyc2l2ZSh0aGlzLmNvbHVtbnMoKSwgKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0ga2V5LCAnY29sdW1ucycpO1xuXG4gICAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuc2V0Q29udHJvbChrZXksIEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4oY3VycmVudENvbHVtbiwgdGhpcy5pdGVtKCkpLCB7XG4gICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldENvbnRyb2woa2V5LCBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuaXRlbSgpW2tleV0pLCB7XG4gICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuaXRlbSgpLCB7XG4gICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRFZGl0YWJsZShjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayhjb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbFZhbHVlQ2hhbmdlKGV2ZW50OiBJSWROYW1lPGFueT4pIHtcbiAgICBjb25zdCBhZmZlY3RlZCA9IHRoaXMuY29sdW1ucygpLmZpbHRlcigoXykgPT4gXy5wYXJlbnROYW1lID09PSBldmVudC5uYW1lKTtcbiAgICBpZiAoYWZmZWN0ZWQ/Lmxlbmd0aCkge1xuICAgICAgYWZmZWN0ZWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGljdFZhbHVlKHZhbHVlOiBhbnksIG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmRpY3QoKVtuYW1lXT8uZmluZCgoXykgPT4gXy5pZCA9PT0gdmFsdWUpO1xuICB9XG59XG4iLCJAaWYgKGNvbHVtbnMoKT8ubGVuZ3RoKSB7XG4gIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCk7IHRyYWNrIGNvbHVtbi5uYW1lKSB7XG4gICAgQGlmIChjb2x1bW4uY29sdW1ucz8ubGVuZ3RoIDwgMSAmJiAoZ2V0RWRpdGFibGUoY29sdW1uKSB8fCAhaGlkZU5vbkVkaXRhYmxlKCkpKSB7XG4gICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW1cbiAgICAgICAgW2RpY3RdPVwiZGljdCgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgICBbaWRdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzKClcIlxuICAgICAgICBbZGVjaW1hbFBhcnRdPVwiZGVjaW1hbFBhcnQoKVwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgW2hvcml6b250YWxdPVwiaG9yaXpvbnRhbCgpXCJcbiAgICAgICAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9XCJvbkNvbnRyb2xWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2hpZGVOb25FZGl0YWJsZV09XCJoaWRlTm9uRWRpdGFibGUoKVwiXG4gICAgICA+PC90ZXRhLXByb3BlcnR5LWdyaWQtaXRlbT5cbiAgICB9XG4gICAgQGlmIChjb2x1bW4uY29sdW1ucz8ubGVuZ3RoID4gMCAmJiAoZ2V0RWRpdGFibGUoY29sdW1uKSB8fCAhaGlkZU5vbkVkaXRhYmxlKCkpKSB7XG4gICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWdyb3VwXG4gICAgICAgIFtpZF09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgIFtkaWN0XT1cImRpY3QoKVwiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2l0ZW1dPVwiaXRlbSgpXCJcbiAgICAgICAgW2l0ZW1UZW1wbGF0ZXNdPVwiaXRlbVRlbXBsYXRlcygpXCJcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0KClcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImhvcml6b250YWwoKVwiXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwib25Db250cm9sVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlKClcIlxuICAgICAgPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWdyb3VwPlxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './property-grid/property-grid.component';
|
|
2
|
-
export * from './property-grid/property-grid-item/property-grid-item.component';
|
|
3
|
-
export * from './property-grid/property-grid-item-description.directive';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDBEQUEwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWl0ZW0vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/* accordion */
|
|
2
|
-
export * from './accordion/public-api';
|
|
3
|
-
/* avatar */
|
|
4
|
-
export * from './avatar/public-api';
|
|
5
|
-
/* autocomplete */
|
|
6
|
-
export * from './autocomplete/public-api';
|
|
7
|
-
/* button */
|
|
8
|
-
export * from './button/public-api';
|
|
9
|
-
/* checkbox */
|
|
10
|
-
export * from './chart-3d/public-api';
|
|
11
|
-
/* checkbox */
|
|
12
|
-
export * from './checkbox/public-api';
|
|
13
|
-
/* datepicker */
|
|
14
|
-
export * from './date-picker/public-api';
|
|
15
|
-
/* delimiter */
|
|
16
|
-
export * from './delimiter/public-api';
|
|
17
|
-
/* dropdown */
|
|
18
|
-
export * from './dropdown/public-api';
|
|
19
|
-
/* dynamic-component */
|
|
20
|
-
export * from './dynamic-component/public-api';
|
|
21
|
-
/* expand-card */
|
|
22
|
-
export * from './expand-card/public-api';
|
|
23
|
-
/* expand-panel */
|
|
24
|
-
export * from './expand-panel/public-api';
|
|
25
|
-
/* file */
|
|
26
|
-
export * from './file-upload/public-api';
|
|
27
|
-
/* filter */
|
|
28
|
-
export * from './filter/public-api';
|
|
29
|
-
/* icon */
|
|
30
|
-
export * from './icon/public-api';
|
|
31
|
-
/* input */
|
|
32
|
-
export * from './input/public-api';
|
|
33
|
-
/* message */
|
|
34
|
-
export * from './message/public-api';
|
|
35
|
-
/* modal */
|
|
36
|
-
export * from './modal/public-api';
|
|
37
|
-
/* pager */
|
|
38
|
-
export * from './pager/public-api';
|
|
39
|
-
/* panel */
|
|
40
|
-
export * from './panel/public-api';
|
|
41
|
-
/* progress-bar */
|
|
42
|
-
export * from './progress-bar/public-api';
|
|
43
|
-
/* property-grid */
|
|
44
|
-
export * from './property-grid/public-api';
|
|
45
|
-
/* radio */
|
|
46
|
-
export * from './radio/public-api';
|
|
47
|
-
/* select */
|
|
48
|
-
export * from './select/public-api';
|
|
49
|
-
/* sidebar */
|
|
50
|
-
export * from './sidebar/public-api';
|
|
51
|
-
/* switch */
|
|
52
|
-
export * from './switch/public-api';
|
|
53
|
-
/* table */
|
|
54
|
-
export * from './table/public-api';
|
|
55
|
-
/* tabs */
|
|
56
|
-
export * from './tabs/public-api';
|
|
57
|
-
/* theme-switch */
|
|
58
|
-
export * from './theme-switch/public-api';
|
|
59
|
-
/* toggle */
|
|
60
|
-
export * from './toggle/public-api';
|
|
61
|
-
/* toolbar */
|
|
62
|
-
export * from './toolbar/public-api';
|
|
63
|
-
/* tree */
|
|
64
|
-
export * from './tree/public-api';
|
|
65
|
-
/* stepper */
|
|
66
|
-
export * from './stepper/public-api';
|
|
67
|
-
/* 3d-chart */
|
|
68
|
-
export * from './chart-3d/public-api';
|
|
69
|
-
/* Resize panel */
|
|
70
|
-
export * from './divider/public-api';
|
|
71
|
-
export * from './resize-panel/public-api';
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2YsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxZQUFZO0FBQ1osY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxrQkFBa0I7QUFDbEIsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxZQUFZO0FBQ1osY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjO0FBQ2QsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjO0FBQ2QsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxnQkFBZ0I7QUFDaEIsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxlQUFlO0FBQ2YsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjO0FBQ2QsY0FBYyx1QkFBdUIsQ0FBQztBQUV0Qyx1QkFBdUI7QUFDdkIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxpQkFBaUI7QUFDakIsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxrQkFBa0I7QUFDbEIsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxVQUFVO0FBQ1YsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxZQUFZO0FBQ1osY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxVQUFVO0FBQ1YsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxhQUFhO0FBQ2IsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxrQkFBa0I7QUFDbEIsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxtQkFBbUI7QUFDbkIsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxZQUFZO0FBQ1osY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxhQUFhO0FBQ2IsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxZQUFZO0FBQ1osY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxXQUFXO0FBQ1gsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxVQUFVO0FBQ1YsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxrQkFBa0I7QUFDbEIsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxZQUFZO0FBQ1osY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxhQUFhO0FBQ2IsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxVQUFVO0FBQ1YsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxhQUFhO0FBQ2IsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjO0FBQ2QsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxrQkFBa0I7QUFDbEIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogYWNjb3JkaW9uICovXG5leHBvcnQgKiBmcm9tICcuL2FjY29yZGlvbi9wdWJsaWMtYXBpJztcblxuLyogYXZhdGFyICovXG5leHBvcnQgKiBmcm9tICcuL2F2YXRhci9wdWJsaWMtYXBpJztcblxuLyogYXV0b2NvbXBsZXRlICovXG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS9wdWJsaWMtYXBpJztcblxuLyogYnV0dG9uICovXG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi9wdWJsaWMtYXBpJztcblxuLyogY2hlY2tib3ggKi9cbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtM2QvcHVibGljLWFwaSc7XG5cbi8qIGNoZWNrYm94ICovXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94L3B1YmxpYy1hcGknO1xuXG4vKiBkYXRlcGlja2VyICovXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtcGlja2VyL3B1YmxpYy1hcGknO1xuXG4vKiBkZWxpbWl0ZXIgKi9cbmV4cG9ydCAqIGZyb20gJy4vZGVsaW1pdGVyL3B1YmxpYy1hcGknO1xuXG4vKiBkcm9wZG93biAqL1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9wdWJsaWMtYXBpJztcblxuLyogZHluYW1pYy1jb21wb25lbnQgKi9cbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvcHVibGljLWFwaSc7XG5cbi8qIGV4cGFuZC1jYXJkICovXG5leHBvcnQgKiBmcm9tICcuL2V4cGFuZC1jYXJkL3B1YmxpYy1hcGknO1xuXG4vKiBleHBhbmQtcGFuZWwgKi9cbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLXBhbmVsL3B1YmxpYy1hcGknO1xuXG4vKiBmaWxlICovXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkL3B1YmxpYy1hcGknO1xuXG4vKiBmaWx0ZXIgKi9cbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyL3B1YmxpYy1hcGknO1xuXG4vKiBpY29uICovXG5leHBvcnQgKiBmcm9tICcuL2ljb24vcHVibGljLWFwaSc7XG5cbi8qIGlucHV0ICovXG5leHBvcnQgKiBmcm9tICcuL2lucHV0L3B1YmxpYy1hcGknO1xuXG4vKiBtZXNzYWdlICovXG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2UvcHVibGljLWFwaSc7XG5cbi8qIG1vZGFsICovXG5leHBvcnQgKiBmcm9tICcuL21vZGFsL3B1YmxpYy1hcGknO1xuXG4vKiBwYWdlciAqL1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlci9wdWJsaWMtYXBpJztcblxuLyogcGFuZWwgKi9cbmV4cG9ydCAqIGZyb20gJy4vcGFuZWwvcHVibGljLWFwaSc7XG5cbi8qIHByb2dyZXNzLWJhciAqL1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1iYXIvcHVibGljLWFwaSc7XG5cbi8qIHByb3BlcnR5LWdyaWQgKi9cbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHktZ3JpZC9wdWJsaWMtYXBpJztcblxuLyogcmFkaW8gKi9cbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8vcHVibGljLWFwaSc7XG5cbi8qIHNlbGVjdCAqL1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvcHVibGljLWFwaSc7XG5cbi8qIHNpZGViYXIgKi9cbmV4cG9ydCAqIGZyb20gJy4vc2lkZWJhci9wdWJsaWMtYXBpJztcblxuLyogc3dpdGNoICovXG5leHBvcnQgKiBmcm9tICcuL3N3aXRjaC9wdWJsaWMtYXBpJztcblxuLyogdGFibGUgKi9cbmV4cG9ydCAqIGZyb20gJy4vdGFibGUvcHVibGljLWFwaSc7XG5cbi8qIHRhYnMgKi9cbmV4cG9ydCAqIGZyb20gJy4vdGFicy9wdWJsaWMtYXBpJztcblxuLyogdGhlbWUtc3dpdGNoICovXG5leHBvcnQgKiBmcm9tICcuL3RoZW1lLXN3aXRjaC9wdWJsaWMtYXBpJztcblxuLyogdG9nZ2xlICovXG5leHBvcnQgKiBmcm9tICcuL3RvZ2dsZS9wdWJsaWMtYXBpJztcblxuLyogdG9vbGJhciAqL1xuZXhwb3J0ICogZnJvbSAnLi90b29sYmFyL3B1YmxpYy1hcGknO1xuXG4vKiB0cmVlICovXG5leHBvcnQgKiBmcm9tICcuL3RyZWUvcHVibGljLWFwaSc7XG5cbi8qIHN0ZXBwZXIgKi9cbmV4cG9ydCAqIGZyb20gJy4vc3RlcHBlci9wdWJsaWMtYXBpJztcblxuLyogM2QtY2hhcnQgKi9cbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtM2QvcHVibGljLWFwaSc7XG5cbi8qIFJlc2l6ZSBwYW5lbCAqL1xuZXhwb3J0ICogZnJvbSAnLi9kaXZpZGVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUtcGFuZWwvcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './radio/radio.component';
|
|
2
|
-
export * from './radio-button/radio-button.component';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcmFkaW8vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbiJdfQ==
|