@fundamental-ngx/platform 0.47.4 → 0.48.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -28
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +6 -11
- package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +6 -8
- package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +5 -6
- package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +5 -5
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +8 -11
- package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +6 -8
- package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +5 -7
- package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +5 -6
- package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +6 -6
- package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +6 -7
- package/esm2022/approval-flow/approval-flow.component.mjs +8 -10
- package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
- package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
- package/esm2022/button/button.component.mjs +5 -5
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
- package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +5 -5
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +5 -5
- package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +4 -4
- package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page.component.mjs +8 -10
- package/esm2022/dynamic-page/dynamic-page.config.mjs +4 -4
- package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
- package/esm2022/dynamic-page/dynamic-page.service.mjs +3 -3
- package/esm2022/feed-input/feed-input.component.mjs +6 -7
- package/esm2022/feed-input/feed-input.module.mjs +4 -4
- package/esm2022/form/auto-complete/auto-complete.directive.mjs +5 -5
- package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2022/form/checkbox/checkbox.component.mjs +6 -6
- package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +8 -8
- package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
- package/esm2022/form/combobox/combobox/combobox.component.mjs +9 -11
- package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +13 -15
- package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
- package/esm2022/form/combobox/combobox.config.mjs +4 -4
- package/esm2022/form/combobox/combobox.module.mjs +4 -4
- package/esm2022/form/combobox/commons/base-combobox.mjs +8 -6
- package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
- package/esm2022/form/date-picker/date-picker.component.mjs +6 -6
- package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -6
- package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +4 -4
- package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +5 -5
- package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +6 -6
- package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +9 -11
- package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
- package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +7 -8
- package/esm2022/form/form-generator/form-generator.service.mjs +5 -5
- package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +5 -5
- package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
- package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
- package/esm2022/form/form-group/form-field/form-field.component.mjs +10 -10
- package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +6 -6
- package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +6 -6
- package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +5 -5
- package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
- package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +6 -6
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -6
- package/esm2022/form/form-group/form-group.component.mjs +8 -10
- package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
- package/esm2022/form/form-group/services/form-field-layout.service.mjs +5 -5
- package/esm2022/form/index.mjs +1 -3
- package/esm2022/form/input/fdp-input.module.mjs +4 -4
- package/esm2022/form/input/input.component.mjs +6 -6
- package/esm2022/form/input-group/addon-body.component.mjs +5 -5
- package/esm2022/form/input-group/addon.component.mjs +5 -5
- package/esm2022/form/input-group/input-group.component.mjs +12 -12
- package/esm2022/form/input-group/input-group.config.mjs +4 -4
- package/esm2022/form/input-group/input-group.module.mjs +4 -4
- package/esm2022/form/input-group/input.component.mjs +3 -3
- package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +7 -7
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +6 -6
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +10 -12
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +8 -9
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
- package/esm2022/form/multi-combobox/multi-combobox.config.mjs +4 -4
- package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
- package/esm2022/form/multi-input/base-multi-input.mjs +6 -6
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +12 -12
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
- package/esm2022/form/multi-input/multi-input.component.mjs +9 -11
- package/esm2022/form/multi-input/multi-input.config.mjs +4 -4
- package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
- package/esm2022/form/radio-group/radio/radio.component.mjs +8 -8
- package/esm2022/form/radio-group/radio-group.component.mjs +8 -8
- package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
- package/esm2022/form/select/commons/base-select.mjs +6 -6
- package/esm2022/form/select/select/select.component.mjs +8 -8
- package/esm2022/form/select/select.config.mjs +4 -4
- package/esm2022/form/select/select.module.mjs +4 -4
- package/esm2022/form/step-input/base.step-input.mjs +5 -5
- package/esm2022/form/step-input/number/number-step-input.component.mjs +9 -10
- package/esm2022/form/step-input/step-input-action-button.mjs +3 -3
- package/esm2022/form/step-input/step-input-control.directive.mjs +6 -6
- package/esm2022/form/step-input/step-input-decrement.directive.mjs +5 -5
- package/esm2022/form/step-input/step-input-increment.directive.mjs +5 -5
- package/esm2022/form/step-input/step-input.config.mjs +3 -3
- package/esm2022/form/step-input/step-input.module.mjs +4 -4
- package/esm2022/form/switch/switch/switch.component.mjs +6 -6
- package/esm2022/form/switch/switch/switch.config.mjs +3 -3
- package/esm2022/form/switch/switch.module.mjs +4 -4
- package/esm2022/form/text-area/text-area.component.mjs +8 -9
- package/esm2022/form/text-area/text-area.config.mjs +3 -3
- package/esm2022/form/text-area/text-area.module.mjs +4 -4
- package/esm2022/form/time-picker/time-picker.component.mjs +6 -6
- package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/fundamental-ngx.module.mjs +14 -33
- package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +3 -3
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +5 -9
- package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +6 -8
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +6 -8
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +5 -8
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +7 -9
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +6 -15
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +5 -9
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +6 -8
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +5 -5
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +5 -5
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +5 -5
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +8 -9
- package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +4 -4
- package/esm2022/index.mjs +8 -12
- package/esm2022/info-label/info-label.component.mjs +5 -5
- package/esm2022/info-label/info-label.module.mjs +4 -4
- package/esm2022/link/link.component.mjs +5 -5
- package/esm2022/link/link.module.mjs +4 -4
- package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
- package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
- package/esm2022/list/base-list-item.mjs +11 -11
- package/esm2022/list/display-list-item/display-list-item.component.mjs +6 -7
- package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +4 -4
- package/esm2022/list/list-group-footer.component.mjs +3 -3
- package/esm2022/list/list-group-header.component.mjs +3 -3
- package/esm2022/list/list.component.mjs +9 -11
- package/esm2022/list/list.config.mjs +3 -3
- package/esm2022/list/list.module.mjs +4 -4
- package/esm2022/list/load-more-content.directive.mjs +4 -4
- package/esm2022/list/object-list-item/object-list-item-row.component.mjs +4 -4
- package/esm2022/list/object-list-item/object-list-item.component.mjs +6 -7
- package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +6 -7
- package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
- package/esm2022/menu/menu-item.component.mjs +7 -7
- package/esm2022/menu/menu-trigger.directive.mjs +6 -6
- package/esm2022/menu/menu.component.mjs +6 -6
- package/esm2022/menu/menu.module.mjs +4 -4
- package/esm2022/menu-button/menu-button.component.mjs +5 -5
- package/esm2022/menu-button/menu-button.module.mjs +4 -4
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +6 -6
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +8 -10
- package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +6 -6
- package/esm2022/message-popover/message-popover.component.mjs +7 -9
- package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
- package/esm2022/object-marker/object-marker.component.mjs +6 -7
- package/esm2022/object-marker/object-marker.module.mjs +4 -4
- package/esm2022/object-status/object-status.component.mjs +8 -8
- package/esm2022/object-status/object-status.module.mjs +4 -4
- package/esm2022/page-footer/page-footer.component.mjs +6 -6
- package/esm2022/page-footer/page-footer.module.mjs +4 -4
- package/esm2022/panel/panel-actions.component.mjs +3 -3
- package/esm2022/panel/panel-content/panel-content.component.mjs +4 -4
- package/esm2022/panel/panel.component.mjs +5 -5
- package/esm2022/panel/panel.config.mjs +4 -4
- package/esm2022/panel/panel.module.mjs +4 -4
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +8 -9
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +4 -4
- package/esm2022/search-field/search-field.component.mjs +16 -18
- package/esm2022/search-field/search-field.module.mjs +4 -4
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +9 -16
- package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -6
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +6 -9
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +6 -8
- package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +7 -7
- package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
- package/esm2022/settings-generator/settings-generator.component.mjs +9 -9
- package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
- package/esm2022/settings-generator/settings-generator.service.mjs +4 -4
- package/esm2022/shared/base.mjs +5 -5
- package/esm2022/shared/form/base.input.mjs +6 -6
- package/esm2022/shared/form/collection-base.input.mjs +6 -6
- package/esm2022/shared/form/inline-layout-collection-base.input.mjs +13 -13
- package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
- package/esm2022/shared/pipes/pipe.module.mjs +4 -4
- package/esm2022/shared/platform.config.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +6 -6
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +4 -4
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +4 -4
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -9
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +7 -9
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +3 -3
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +5 -5
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +4 -4
- package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +8 -10
- package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
- package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +4 -4
- package/esm2022/split-menu-button/split-menu-button.component.mjs +6 -6
- package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
- package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
- package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -5
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -8
- package/esm2022/table/components/table-column/table-column.component.mjs +6 -6
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -6
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +5 -15
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +7 -7
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +6 -6
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +11 -13
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +7 -9
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +9 -11
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +6 -9
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +6 -8
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +9 -11
- package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +5 -5
- package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -9
- package/esm2022/table/components/table-row/table-row.component.mjs +8 -12
- package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +7 -8
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +6 -6
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +5 -6
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +5 -14
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +5 -8
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +5 -7
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +7 -10
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -8
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +5 -5
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +9 -14
- package/esm2022/table/table.module.mjs +4 -4
- package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +6 -6
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +5 -5
- package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell.directive.mjs +16 -16
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-header.directive.mjs +7 -7
- package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
- package/esm2022/table-helpers/enums/collection-filter.enum.mjs +16 -1
- package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +5 -5
- package/esm2022/table-helpers/services/table-responsive.service.mjs +5 -5
- package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
- package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
- package/esm2022/table-helpers/services/table.service.mjs +3 -3
- package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
- package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +5 -5
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +6 -10
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +13 -15
- package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +3 -3
- package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +5 -5
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +12 -17
- package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
- package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +5 -5
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -8
- package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
- package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +4 -4
- package/esm2022/variant-management/variant-management.component.mjs +8 -10
- package/esm2022/variant-management/variant-management.module.mjs +4 -4
- package/esm2022/wizard-generator/base-wizard-generator.mjs +5 -5
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +7 -8
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -9
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +6 -7
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +6 -7
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +5 -6
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +7 -7
- package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
- package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +4 -4
- package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
- package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +62 -74
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +8 -8
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +54 -56
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -10
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +444 -602
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +59 -87
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-info-label.mjs +8 -8
- package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +8 -8
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +73 -78
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -8
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +20 -20
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +29 -33
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +9 -10
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +12 -12
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -19
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +29 -32
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +45 -56
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +36 -36
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-slider.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +48 -53
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +115 -100
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +168 -218
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +41 -52
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +28 -31
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +58 -61
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform.mjs +19 -42
- package/fesm2022/fundamental-ngx-platform.mjs.map +1 -1
- package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -2
- package/form/form-group/form-group.component.d.ts +1 -1
- package/form/index.d.ts +0 -2
- package/form/input-group/input-group.component.d.ts +2 -2
- package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
- package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
- package/fundamental-ngx-platform-v0.48.0-rc.1.tgz +0 -0
- package/fundamental-ngx.module.d.ts +27 -31
- package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +0 -2
- package/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.d.ts +0 -2
- package/index.d.ts +7 -11
- package/list/list.component.d.ts +1 -1
- package/package.json +4 -28
- package/page-footer/page-footer.component.d.ts +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
- package/settings-generator/settings-generator.component.d.ts +2 -2
- package/table/components/table-p13-dialog/filtering/filter-rule.component.d.ts +2 -0
- package/table/table.component.d.ts +1 -1
- package/table-helpers/enums/collection-filter.enum.d.ts +2 -0
- package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -1
- package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -1
- package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +2 -2
- package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +2 -2
- package/action-bar/README.md +0 -25
- package/action-bar/action-bar.component.d.ts +0 -36
- package/action-bar/action-bar.module.d.ts +0 -8
- package/action-bar/index.d.ts +0 -2
- package/action-button-group/README.md +0 -25
- package/action-button-group/action-button-group.component.d.ts +0 -11
- package/action-button-group/action-button-group.module.d.ts +0 -7
- package/action-button-group/index.d.ts +0 -2
- package/esm2022/action-bar/action-bar.component.mjs +0 -64
- package/esm2022/action-bar/action-bar.module.mjs +0 -17
- package/esm2022/action-bar/fundamental-ngx-platform-action-bar.mjs +0 -5
- package/esm2022/action-bar/index.mjs +0 -3
- package/esm2022/action-button-group/action-button-group.component.mjs +0 -21
- package/esm2022/action-button-group/action-button-group.module.mjs +0 -16
- package/esm2022/action-button-group/fundamental-ngx-platform-action-button-group.mjs +0 -5
- package/esm2022/action-button-group/index.mjs +0 -3
- package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +0 -143
- package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +0 -16
- package/esm2022/thumbnail/fundamental-ngx-platform-thumbnail.mjs +0 -5
- package/esm2022/thumbnail/index.mjs +0 -6
- package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +0 -166
- package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +0 -100
- package/esm2022/thumbnail/thumbnail.component.mjs +0 -148
- package/esm2022/thumbnail/thumbnail.interfaces.mjs +0 -2
- package/esm2022/thumbnail/thumbnail.module.mjs +0 -19
- package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +0 -148
- package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +0 -69
- package/esm2022/upload-collection/directives/upload-collection-dragndrop.directive.mjs +0 -138
- package/esm2022/upload-collection/domain/upload-collection-data-provider.mjs +0 -106
- package/esm2022/upload-collection/domain/upload-collection-data-source.mjs +0 -95
- package/esm2022/upload-collection/fundamental-ngx-platform-upload-collection.mjs +0 -5
- package/esm2022/upload-collection/helpers/generate-message-stripe-data.mjs +0 -20
- package/esm2022/upload-collection/index.mjs +0 -12
- package/esm2022/upload-collection/models/upload-collection.models.mjs +0 -58
- package/esm2022/upload-collection/services/files-validator.service.mjs +0 -68
- package/esm2022/upload-collection/upload-collection/upload-collection-data-provider-test.mjs +0 -280
- package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +0 -926
- package/esm2022/upload-collection/upload-collection.module.mjs +0 -33
- package/fesm2022/fundamental-ngx-platform-action-bar.mjs +0 -85
- package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +0 -1
- package/fesm2022/fundamental-ngx-platform-action-button-group.mjs +0 -41
- package/fesm2022/fundamental-ngx-platform-action-button-group.mjs.map +0 -1
- package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +0 -418
- package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +0 -1
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +0 -1893
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +0 -1
- package/form/platform-file-uploader/platform-file-uploader.component.d.ts +0 -69
- package/form/platform-file-uploader/platform-file-uploader.module.d.ts +0 -7
- package/fundamental-ngx-platform-v0.47.4.tgz +0 -0
- package/thumbnail/README.md +0 -25
- package/thumbnail/index.d.ts +0 -5
- package/thumbnail/thumbnail-details/thumbnail-details.component.d.ts +0 -57
- package/thumbnail/thumbnail-image/thumbnail-image.component.d.ts +0 -48
- package/thumbnail/thumbnail.component.d.ts +0 -73
- package/thumbnail/thumbnail.interfaces.d.ts +0 -12
- package/thumbnail/thumbnail.module.d.ts +0 -9
- package/upload-collection/README.md +0 -25
- package/upload-collection/dialogs/move-to/move-to.component.d.ts +0 -57
- package/upload-collection/dialogs/new-folder/new-folder.component.d.ts +0 -26
- package/upload-collection/directives/upload-collection-dragndrop.directive.d.ts +0 -64
- package/upload-collection/domain/upload-collection-data-provider.d.ts +0 -46
- package/upload-collection/domain/upload-collection-data-source.d.ts +0 -49
- package/upload-collection/helpers/generate-message-stripe-data.d.ts +0 -3
- package/upload-collection/index.d.ts +0 -11
- package/upload-collection/models/upload-collection.models.d.ts +0 -225
- package/upload-collection/services/files-validator.service.d.ts +0 -18
- package/upload-collection/upload-collection/upload-collection-data-provider-test.d.ts +0 -36
- package/upload-collection/upload-collection/upload-collection.component.d.ts +0 -259
- package/upload-collection/upload-collection.module.d.ts +0 -11
package/esm2022/upload-collection/upload-collection/upload-collection-data-provider-test.mjs
DELETED
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { delay, map } from 'rxjs/operators';
|
|
3
|
-
import { uuidv4 } from '@fundamental-ngx/cdk/utils';
|
|
4
|
-
import { UploadCollectionDataProvider } from '../domain/upload-collection-data-provider';
|
|
5
|
-
import { UploadCollectionItemStatus } from '../models/upload-collection.models';
|
|
6
|
-
const dataSource = [
|
|
7
|
-
{
|
|
8
|
-
documentId: uuidv4(),
|
|
9
|
-
type: 'folder',
|
|
10
|
-
name: 'Folder-1',
|
|
11
|
-
uploadedBy: {
|
|
12
|
-
id: uuidv4(),
|
|
13
|
-
name: 'Lucas A.'
|
|
14
|
-
},
|
|
15
|
-
uploadedOn: new Date(2018, 4, 1),
|
|
16
|
-
files: [
|
|
17
|
-
{
|
|
18
|
-
documentId: uuidv4(),
|
|
19
|
-
type: 'file',
|
|
20
|
-
name: 'File-2',
|
|
21
|
-
uploadedBy: {
|
|
22
|
-
id: uuidv4(),
|
|
23
|
-
name: 'Oliver T.'
|
|
24
|
-
},
|
|
25
|
-
url: '',
|
|
26
|
-
uploadedOn: new Date(2018, 0, 1),
|
|
27
|
-
fileSize: 1024,
|
|
28
|
-
version: 2
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
documentId: uuidv4(),
|
|
34
|
-
type: 'file',
|
|
35
|
-
name: `File-1`,
|
|
36
|
-
uploadedBy: {
|
|
37
|
-
id: uuidv4(),
|
|
38
|
-
name: 'William G.'
|
|
39
|
-
},
|
|
40
|
-
url: '',
|
|
41
|
-
uploadedOn: new Date(2010, 9, 4),
|
|
42
|
-
fileSize: 2048,
|
|
43
|
-
version: 1
|
|
44
|
-
}
|
|
45
|
-
];
|
|
46
|
-
export class UploadCollectionDataProviderTest extends UploadCollectionDataProvider {
|
|
47
|
-
constructor() {
|
|
48
|
-
super(...arguments);
|
|
49
|
-
/** @hidden */
|
|
50
|
-
this.items = dataSource.map((item) => ({ ...item }));
|
|
51
|
-
/** @hidden */
|
|
52
|
-
this._cancelUploadNewFileIds = [];
|
|
53
|
-
}
|
|
54
|
-
/** The method is triggered when valid files are selected in the file uploader dialog. */
|
|
55
|
-
upload({ parentFolderId, items }) {
|
|
56
|
-
console.log('upload', parentFolderId, items);
|
|
57
|
-
const newFiles = items.map((item) => {
|
|
58
|
-
delete item.file;
|
|
59
|
-
item.status = UploadCollectionItemStatus.SUCCESSFUL;
|
|
60
|
-
return {
|
|
61
|
-
temporaryDocumentId: item.documentId,
|
|
62
|
-
item
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
this._findParentFolderAndAddNewFiles(parentFolderId, newFiles);
|
|
66
|
-
return of(this.items).pipe(delay(5000), map((updatedItems) => {
|
|
67
|
-
const ids = newFiles
|
|
68
|
-
.filter((file) => {
|
|
69
|
-
const includes = file.item.documentId && this._cancelUploadNewFileIds.includes(file.item.documentId);
|
|
70
|
-
if (includes) {
|
|
71
|
-
this._cancelUploadNewFileIds = this._cancelUploadNewFileIds.filter((id) => id !== file.item.documentId);
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
return false;
|
|
75
|
-
})
|
|
76
|
-
.map((file) => file.item.documentId);
|
|
77
|
-
this._findParentFolderAndRemoveItemsByIds(parentFolderId, ids, updatedItems);
|
|
78
|
-
return updatedItems;
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
/** The method is triggered when an uploaded attachment is selected and the Download button is pressed. */
|
|
82
|
-
download(data) {
|
|
83
|
-
console.log('download', data);
|
|
84
|
-
return of(undefined);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* The method is triggered when Move to button is pressed and folder to move is selected in the dialog modal.
|
|
88
|
-
* Should return full dataSource
|
|
89
|
-
* */
|
|
90
|
-
moveTo(data) {
|
|
91
|
-
console.log('moveTo', data);
|
|
92
|
-
return of([]);
|
|
93
|
-
}
|
|
94
|
-
/** The method is triggered when an uploaded attachment is selected and the Delete button is pressed. */
|
|
95
|
-
delete({ parentFolderId, items }) {
|
|
96
|
-
console.log('delete', parentFolderId, items);
|
|
97
|
-
const ids = items.map((item) => item.documentId);
|
|
98
|
-
this._findParentFolderAndRemoveItemsByIds(parentFolderId, ids);
|
|
99
|
-
return of(this.items);
|
|
100
|
-
}
|
|
101
|
-
/** The method is triggered when the file name is changed. */
|
|
102
|
-
fileRenamed({ parentFolderId, item, fileName }) {
|
|
103
|
-
console.log('fileRenamed', parentFolderId, item, fileName);
|
|
104
|
-
let updatedItem = {
|
|
105
|
-
...item,
|
|
106
|
-
name: fileName,
|
|
107
|
-
status: UploadCollectionItemStatus.SUCCESSFUL
|
|
108
|
-
};
|
|
109
|
-
this._findParentFolderAndUpdateItem(parentFolderId, updatedItem);
|
|
110
|
-
return of(this.items).pipe(delay(5000), map((updatedItems) => {
|
|
111
|
-
const itemId = item.documentId;
|
|
112
|
-
const includes = itemId && this._cancelUploadNewFileIds.includes(itemId);
|
|
113
|
-
if (includes) {
|
|
114
|
-
updatedItem = { ...updatedItem };
|
|
115
|
-
updatedItem.name = item.name;
|
|
116
|
-
updatedItem.status = UploadCollectionItemStatus.SUCCESSFUL;
|
|
117
|
-
this._findParentFolderAndUpdateItem(parentFolderId, updatedItem, updatedItems);
|
|
118
|
-
this._cancelUploadNewFileIds = this._cancelUploadNewFileIds.filter((id) => id !== itemId);
|
|
119
|
-
}
|
|
120
|
-
return updatedItems;
|
|
121
|
-
}));
|
|
122
|
-
}
|
|
123
|
-
/** The method is triggered when the new folder added. */
|
|
124
|
-
newFolder({ parentFolderId, folder }) {
|
|
125
|
-
console.log('newFolder', folder, parentFolderId);
|
|
126
|
-
folder.status = UploadCollectionItemStatus.SUCCESSFUL;
|
|
127
|
-
this._findParentFolderAndAddNewFiles(parentFolderId, [
|
|
128
|
-
{
|
|
129
|
-
temporaryDocumentId: folder.documentId,
|
|
130
|
-
item: folder
|
|
131
|
-
}
|
|
132
|
-
]);
|
|
133
|
-
return of(this.items).pipe(delay(5000), map((updatedItems) => {
|
|
134
|
-
const folderId = folder.documentId;
|
|
135
|
-
const includes = !!folderId && this._cancelUploadNewFileIds.includes(folderId);
|
|
136
|
-
if (includes) {
|
|
137
|
-
this._cancelUploadNewFileIds = this._cancelUploadNewFileIds.filter((id) => id !== folderId);
|
|
138
|
-
this._findParentFolderAndRemoveItemsByIds(parentFolderId, [folderId], updatedItems);
|
|
139
|
-
}
|
|
140
|
-
return updatedItems;
|
|
141
|
-
}));
|
|
142
|
-
}
|
|
143
|
-
/** The method is triggered when Update Version button is pressed and valid file are selected in the file uploader dialog. */
|
|
144
|
-
updateVersion({ parentFolderId, item, newItem }) {
|
|
145
|
-
console.log('updateVersion', parentFolderId, item);
|
|
146
|
-
let updatedItem = {
|
|
147
|
-
...item,
|
|
148
|
-
status: UploadCollectionItemStatus.SUCCESSFUL,
|
|
149
|
-
uploadedOn: new Date(),
|
|
150
|
-
uploadedBy: {
|
|
151
|
-
id: Date.now(),
|
|
152
|
-
name: 'You'
|
|
153
|
-
},
|
|
154
|
-
version: +item.version,
|
|
155
|
-
name: newItem.name,
|
|
156
|
-
fileSize: newItem.size
|
|
157
|
-
};
|
|
158
|
-
this._findParentFolderAndUpdateItem(parentFolderId, updatedItem);
|
|
159
|
-
return of(this.items).pipe(delay(5000), map((updatedItems) => {
|
|
160
|
-
const itemId = updatedItem.documentId;
|
|
161
|
-
const includes = this._cancelUploadNewFileIds.includes(itemId);
|
|
162
|
-
if (includes) {
|
|
163
|
-
updatedItem = { ...item };
|
|
164
|
-
this._findParentFolderAndUpdateItem(parentFolderId, updatedItem, updatedItems);
|
|
165
|
-
this._cancelUploadNewFileIds = this._cancelUploadNewFileIds.filter((id) => id !== itemId);
|
|
166
|
-
}
|
|
167
|
-
return updatedItems;
|
|
168
|
-
}));
|
|
169
|
-
}
|
|
170
|
-
/** @hidden */
|
|
171
|
-
runAfterFail({ parentFolderId, items }) {
|
|
172
|
-
console.log('runAfterFail', parentFolderId, items);
|
|
173
|
-
const item = items[0];
|
|
174
|
-
this._findParentFolderAndAddNewFiles(parentFolderId, [
|
|
175
|
-
{
|
|
176
|
-
temporaryDocumentId: item.documentId,
|
|
177
|
-
item: {
|
|
178
|
-
...item,
|
|
179
|
-
status: UploadCollectionItemStatus.SUCCESSFUL
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
]);
|
|
183
|
-
return of(this.items);
|
|
184
|
-
}
|
|
185
|
-
/** The method is triggered when Cancel button is pressed */
|
|
186
|
-
cancelUploadNewFile({ parentFolderId, item }) {
|
|
187
|
-
console.log('cancelUploadNewFile', parentFolderId, item);
|
|
188
|
-
const id = item.documentId;
|
|
189
|
-
this._cancelUploadNewFileIds.push(id);
|
|
190
|
-
this._findParentFolderAndRemoveItemsByIds(parentFolderId, [id]);
|
|
191
|
-
return of([]);
|
|
192
|
-
}
|
|
193
|
-
/** @hidden */
|
|
194
|
-
_findParentFolderAndUpdateItem(parentFolderId, updatedItem, items = this.items) {
|
|
195
|
-
if (!parentFolderId) {
|
|
196
|
-
const index = items.findIndex((item) => item.documentId === updatedItem.documentId);
|
|
197
|
-
if (index !== -1) {
|
|
198
|
-
items[index] = updatedItem;
|
|
199
|
-
}
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
for (let i = 0; i < items.length; i++) {
|
|
203
|
-
const currentItem = items[i];
|
|
204
|
-
if (currentItem.type !== 'folder') {
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
if (currentItem.documentId === parentFolderId) {
|
|
208
|
-
const index = currentItem.files.findIndex((item) => item.documentId === updatedItem.documentId);
|
|
209
|
-
if (index !== -1) {
|
|
210
|
-
currentItem.files[i] = updatedItem;
|
|
211
|
-
break;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
this._findParentFolderAndUpdateItem(parentFolderId, updatedItem, currentItem.files);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
/** @hidden */
|
|
220
|
-
_findParentFolderAndAddNewFiles(parentFolderId, uploadedFiles, items = this.items) {
|
|
221
|
-
if (uploadedFiles.length === 0) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
if (!parentFolderId) {
|
|
225
|
-
const uploadedFile = uploadedFiles.pop();
|
|
226
|
-
const index = items.findIndex((item) => item.documentId === uploadedFile?.temporaryDocumentId);
|
|
227
|
-
if (index !== -1) {
|
|
228
|
-
items[index] = uploadedFile.item;
|
|
229
|
-
this._findParentFolderAndAddNewFiles(parentFolderId, uploadedFiles);
|
|
230
|
-
}
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
for (let i = 0; i < items.length; i++) {
|
|
234
|
-
const currentItem = items[i];
|
|
235
|
-
if (currentItem.type !== 'folder') {
|
|
236
|
-
continue;
|
|
237
|
-
}
|
|
238
|
-
if (currentItem.documentId === parentFolderId) {
|
|
239
|
-
const hash = uploadedFiles.reduce((res, file) => {
|
|
240
|
-
res[file.temporaryDocumentId] = file.item;
|
|
241
|
-
return res;
|
|
242
|
-
}, {});
|
|
243
|
-
currentItem.files = currentItem.files.map((item) => hash[item.documentId] || item);
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
this._findParentFolderAndAddNewFiles(parentFolderId, uploadedFiles, currentItem.files);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/** @hidden */
|
|
252
|
-
_findParentFolderAndRemoveItemsByIds(parentFolderId, documentsIds, items = this.items) {
|
|
253
|
-
if (documentsIds.length === 0) {
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
if (!parentFolderId) {
|
|
257
|
-
const documentId = documentsIds.pop();
|
|
258
|
-
const index = items.findIndex((item) => item.documentId === documentId);
|
|
259
|
-
if (index !== -1) {
|
|
260
|
-
items.splice(index, 1);
|
|
261
|
-
this._findParentFolderAndRemoveItemsByIds(parentFolderId, documentsIds);
|
|
262
|
-
}
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
for (let i = 0; i < items.length; i++) {
|
|
266
|
-
const currentItem = items[i];
|
|
267
|
-
if (currentItem.type !== 'folder') {
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
if (currentItem.documentId === parentFolderId) {
|
|
271
|
-
currentItem.files = currentItem.files.filter((item) => !documentsIds.some((documentId) => documentId === item.documentId));
|
|
272
|
-
break;
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
this._findParentFolderAndRemoveItemsByIds(parentFolderId, documentsIds, currentItem.files);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWNvbGxlY3Rpb24tZGF0YS1wcm92aWRlci10ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3VwbG9hZC1jb2xsZWN0aW9uL3VwbG9hZC1jb2xsZWN0aW9uL3VwbG9hZC1jb2xsZWN0aW9uLWRhdGEtcHJvdmlkZXItdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sRUFHSCwwQkFBMEIsRUFVN0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1QyxNQUFNLFVBQVUsR0FBMkI7SUFDdkM7UUFDSSxVQUFVLEVBQUUsTUFBTSxFQUFFO1FBQ3BCLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFO1lBQ1IsRUFBRSxFQUFFLE1BQU0sRUFBRTtZQUNaLElBQUksRUFBRSxVQUFVO1NBQ25CO1FBQ0QsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLEtBQUssRUFBRTtZQUNIO2dCQUNJLFVBQVUsRUFBRSxNQUFNLEVBQUU7Z0JBQ3BCLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDUixFQUFFLEVBQUUsTUFBTSxFQUFFO29CQUNaLElBQUksRUFBRSxXQUFXO2lCQUNwQjtnQkFDRCxHQUFHLEVBQUUsRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFF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U0FDVjtRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUMvQixTQUFTO2FBQ1o7WUFFRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssY0FBYyxFQUFFO2dCQUMzQyxXQUFXLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN4QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMvRSxDQUFDO2dCQUVGLE1BQU07YUFDVDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsb0NBQW9DLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUY7U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyB1dWlkdjQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBVcGxvYWRDb2xsZWN0aW9uRGF0YVByb3ZpZGVyIH0gZnJvbSAnLi4vZG9tYWluL3VwbG9hZC1jb2xsZWN0aW9uLWRhdGEtcHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICAgIFVwbG9hZENvbGxlY3Rpb25GaWxlLFxuICAgIFVwbG9hZENvbGxlY3Rpb25JdGVtLFxuICAgIFVwbG9hZENvbGxlY3Rpb25JdGVtU3RhdHVzLFxuICAgIENhbmNlbFVwbG9hZE5ld0ZpbGVFdmVudCxcbiAgICBEZWxldGVFdmVudCxcbiAgICBEb3dubG9hZEV2ZW50LFxuICAgIEZpbGVSZW5hbWVkRXZlbnQsXG4gICAgTW92ZVRvRXZlbnQsXG4gICAgTmV3Rm9sZGVyRXZlbnQsXG4gICAgVXBkYXRlVmVyc2lvbkV2ZW50LFxuICAgIFVwbG9hZENvbGxlY3Rpb25OZXdJdGVtLFxuICAgIFVwbG9hZEV2ZW50XG59IGZyb20gJy4uL21vZGVscy91cGxvYWQtY29sbGVjdGlvbi5tb2RlbHMnO1xuXG5jb25zdCBkYXRhU291cmNlOiBVcGxvYWRDb2xsZWN0aW9uSXRlbVtdID0gW1xuICAgIHtcbiAgICAgICAgZG9jdW1lbnRJZDogdXVpZHY0KCksXG4gICAgICAgIHR5cGU6ICdmb2xkZXInLFxuICAgICAgICBuYW1lOiAnRm9sZGVyLTEnLFxuICAgICAgICB1cGxvYWRlZEJ5OiB7XG4gICAgICAgICAgICBpZDogdXVpZHY0KCksXG4gICAgICAgICAgICBuYW1lOiAnTHVjYXMgQS4nXG4gICAgICAgIH0sXG4gICAgICAgIHVwbG9hZGVkT246IG5ldyBEYXRlKDIwMTgsIDQsIDEpLFxuICAgICAgICBmaWxlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50SWQ6IHV1aWR2NCgpLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdmaWxlJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnRmlsZS0yJyxcbiAgICAgICAgICAgICAgICB1cGxvYWRlZEJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ09saXZlciBULidcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHVybDogJycsXG4gICAgICAgICAgICAgICAgdXBsb2FkZWRPbjogbmV3IERhdGUoMjAxOCwgMCwgMSksXG4gICAgICAgICAgICAgICAgZmlsZVNpemU6IDEwMjQsXG4gICAgICAgICAgICAgICAgdmVyc2lvbjogMlxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRvY3VtZW50SWQ6IHV1aWR2NCgpLFxuICAgICAgICB0eXBlOiAnZmlsZScsXG4gICAgICAgIG5hbWU6IGBGaWxlLTFgLFxuICAgICAgICB1cGxvYWRlZEJ5OiB7XG4gICAgICAgICAgICBpZDogdXVpZHY0KCksXG4gICAgICAgICAgICBuYW1lOiAnV2lsbGlhbSBHLidcbiAgICAgICAgfSxcbiAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgdXBsb2FkZWRPbjogbmV3IERhdGUoMjAxMCwgOSwgNCksXG4gICAgICAgIGZpbGVTaXplOiAyMDQ4LFxuICAgICAgICB2ZXJzaW9uOiAxXG4gICAgfVxuXTtcblxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbGxlY3Rpb25EYXRhUHJvdmlkZXJUZXN0IGV4dGVuZHMgVXBsb2FkQ29sbGVjdGlvbkRhdGFQcm92aWRlciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpdGVtczogVXBsb2FkQ29sbGVjdGlvbkl0ZW1bXSA9IGRhdGFTb3VyY2UubWFwKChpdGVtKSA9PiAoeyAuLi5pdGVtIH0pKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2FuY2VsVXBsb2FkTmV3RmlsZUlkczogKHN0cmluZyB8IG51bWJlcilbXSA9IFtdO1xuXG4gICAgLyoqIFRoZSBtZXRob2QgaXMgdHJpZ2dlcmVkIHdoZW4gdmFsaWQgZmlsZXMgYXJlIHNlbGVjdGVkIGluIHRoZSBmaWxlIHVwbG9hZGVyIGRpYWxvZy4gKi9cbiAgICB1cGxvYWQoeyBwYXJlbnRGb2xkZXJJZCwgaXRlbXMgfTogVXBsb2FkRXZlbnQpOiBPYnNlcnZhYmxlPFVwbG9hZENvbGxlY3Rpb25JdGVtW10+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3VwbG9hZCcsIHBhcmVudEZvbGRlcklkLCBpdGVtcyk7XG5cbiAgICAgICAgY29uc3QgbmV3RmlsZXM6IFVwbG9hZENvbGxlY3Rpb25OZXdJdGVtW10gPSBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmZpbGU7XG4gICAgICAgICAgICBpdGVtLnN0YXR1cyA9IFVwbG9hZENvbGxlY3Rpb25JdGVtU3RhdHVzLlNVQ0NFU1NGVUw7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGVtcG9yYXJ5RG9jdW1lbnRJZDogaXRlbS5kb2N1bWVudElkLFxuICAgICAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2ZpbmRQYXJlbnRGb2xkZXJBbmRBZGROZXdGaWxlcyhwYXJlbnRGb2xkZXJJZCwgbmV3RmlsZXMpO1xuXG4gICAgICAgIHJldHVybiBvZih0aGlzLml0ZW1zKS5waXBlKFxuICAgICAgICAgICAgZGVsYXkoNTAwMCksXG4gICAgICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkcyA9IG5ld0ZpbGVzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLml0ZW0uZG9jdW1lbnRJZCAmJiB0aGlzLl9jYW5jZWxVcGxvYWROZXdGaWxlSWRzLmluY2x1ZGVzKGZpbGUuaXRlbS5kb2N1bWVudElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbmNlbFVwbG9hZE5ld0ZpbGVJZHMgPSB0aGlzLl9jYW5jZWxVcGxvYWROZXdGaWxlSWRzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlkKSA9PiBpZCAhPT0gZmlsZS5pdGVtLmRvY3VtZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGZpbGUpID0+IGZpbGUuaXRlbS5kb2N1bWVudElkKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmRQYXJlbnRGb2xkZXJBbmRSZW1vdmVJdGVtc0J5SWRzKHBhcmVudEZvbGRlcklkLCBpZHMsIHVwZGF0ZWRJdGVtcyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZEl0ZW1zO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIG1ldGhvZCBpcyB0cmlnZ2VyZWQgd2hlbiBhbiB1cGxvYWRlZCBhdHRhY2htZW50IGlzIHNlbGVjdGVkIGFuZCB0aGUgRG93bmxvYWQgYnV0dG9uIGlzIHByZXNzZWQuICovXG4gICAgZG93bmxvYWQoZGF0YTogRG93bmxvYWRFdmVudCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zb2xlLmxvZygnZG93bmxvYWQnLCBkYXRhKTtcblxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWV0aG9kIGlzIHRyaWdnZXJlZCB3aGVuIE1vdmUgdG8gYnV0dG9uIGlzIHByZXNzZWQgYW5kIGZvbGRlciB0byBtb3ZlIGlzIHNlbGVjdGVkIGluIHRoZSBkaWFsb2cgbW9kYWwuXG4gICAgICogU2hvdWxkIHJldHVybiBmdWxsIGRhdGFTb3VyY2VcbiAgICAgKiAqL1xuICAgIG1vdmVUbyhkYXRhOiBNb3ZlVG9FdmVudCk6IE9ic2VydmFibGU8VXBsb2FkQ29sbGVjdGlvbkl0ZW1bXT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnbW92ZVRvJywgZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIG1ldGhvZCBpcyB0cmlnZ2VyZWQgd2hlbiBhbiB1cGxvYWRlZCBhdHRhY2htZW50IGlzIHNlbGVjdGVkIGFuZCB0aGUgRGVsZXRlIGJ1dHRvbiBpcyBwcmVzc2VkLiAqL1xuICAgIGRlbGV0ZSh7IHBhcmVudEZvbGRlcklkLCBpdGVtcyB9OiBEZWxldGVFdmVudCk6IE9ic2VydmFibGU8VXBsb2FkQ29sbGVjdGlvbkl0ZW1bXT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnZGVsZXRlJywgcGFyZW50Rm9sZGVySWQsIGl0ZW1zKTtcblxuICAgICAgICBjb25zdCBpZHMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uZG9jdW1lbnRJZCk7XG4gICAgICAgIHRoaXMuX2ZpbmRQYXJlbnRGb2xkZXJBbmRSZW1vdmVJdGVtc0J5SWRzKHBhcmVudEZvbGRlcklkLCBpZHMpO1xuXG4gICAgICAgIHJldHVybiBvZih0aGlzLml0ZW1zKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIG1ldGhvZCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgZmlsZSBuYW1lIGlzIGNoYW5nZWQuICovXG4gICAgZmlsZVJlbmFtZWQoeyBwYXJlbnRGb2xkZXJJZCwgaXRlbSwgZmlsZU5hbWUgfTogRmlsZVJlbmFtZWRFdmVudCk6IE9ic2VydmFibGU8VXBsb2FkQ29sbGVjdGlvbkl0ZW1bXT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnZmlsZVJlbmFtZWQnLCBwYXJlbnRGb2xkZXJJZCwgaXRlbSwgZmlsZU5hbWUpO1xuICAgICAgICBsZXQgdXBkYXRlZEl0ZW0gPSB7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXG4gICAgICAgICAgICBzdGF0dXM6IFVwbG9hZENvbGxlY3Rpb25JdGVtU3RhdHVzLlNVQ0NFU1NGVUxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9maW5kUGFyZW50Rm9sZGVyQW5kVXBkYXRlSXRlbShwYXJlbnRGb2xkZXJJZCwgdXBkYXRlZEl0ZW0pO1xuXG4gICAgICAgIHJldHVybiBvZih0aGlzLml0ZW1zKS5waXBlKFxuICAgICAgICAgICAgZGVsYXkoNTAwMCksXG4gICAgICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW0uZG9jdW1lbnRJZDtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmNsdWRlcyA9IGl0ZW1JZCAmJiB0aGlzLl9jYW5jZWxVcGxvYWROZXdGaWxlSWRzLmluY2x1ZGVzKGl0ZW1JZCk7XG4gICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRJdGVtID0geyAuLi51cGRhdGVkSXRlbSB9O1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkSXRlbS5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkSXRlbS5zdGF0dXMgPSBVcGxvYWRDb2xsZWN0aW9uSXRlbVN0YXR1cy5TVUNDRVNTRlVMO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmRQYXJlbnRGb2xkZXJBbmRVcGRhdGVJdGVtKHBhcmVudEZvbGRlcklkLCB1cGRhdGVkSXRlbSwgdXBkYXRlZEl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuY2VsVXBsb2FkTmV3RmlsZUlkcyA9IHRoaXMuX2NhbmNlbFVwbG9hZE5ld0ZpbGVJZHMuZmlsdGVyKChpZCkgPT4gaWQgIT09IGl0ZW1JZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJdGVtcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBtZXRob2QgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIG5ldyBmb2xkZXIgYWRkZWQuICovXG4gICAgbmV3Rm9sZGVyKHsgcGFyZW50Rm9sZGVySWQsIGZvbGRlciB9OiBOZXdGb2xkZXJFdmVudCk6IE9ic2VydmFibGU8VXBsb2FkQ29sbGVjdGlvbkl0ZW1bXT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnbmV3Rm9sZGVyJywgZm9sZGVyLCBwYXJlbnRGb2xkZXJJZCk7XG5cbiAgICAgICAgZm9sZGVyLnN0YXR1cyA9IFVwbG9hZENvbGxlY3Rpb25JdGVtU3RhdHVzLlNVQ0NFU1NGVUw7XG5cbiAgICAgICAgdGhpcy5fZmluZFBhcmVudEZvbGRlckFuZEFkZE5ld0ZpbGVzKHBhcmVudEZvbGRlcklkLCBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGVtcG9yYXJ5RG9jdW1lbnRJZDogZm9sZGVyLmRvY3VtZW50SWQhLFxuICAgICAgICAgICAgICAgIGl0ZW06IGZvbGRlclxuICAgICAgICAgICAgfVxuICAgICAgICBdKTtcblxuICAgICAgICByZXR1cm4gb2YodGhpcy5pdGVtcykucGlwZShcbiAgICAgICAgICAgIGRlbGF5KDUwMDApLFxuICAgICAgICAgICAgbWFwKCh1cGRhdGVkSXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJJZCA9IGZvbGRlci5kb2N1bWVudElkO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVzID0gISFmb2xkZXJJZCAmJiB0aGlzLl9jYW5jZWxVcGxvYWROZXdGaWxlSWRzLmluY2x1ZGVzKGZvbGRlcklkKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5jbHVkZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuY2VsVXBsb2FkTmV3RmlsZUlkcyA9IHRoaXMuX2NhbmNlbFVwbG9hZE5ld0ZpbGVJZHMuZmlsdGVyKChpZCkgPT4gaWQgIT09IGZvbGRlcklkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmluZFBhcmVudEZvbGRlckFuZFJlbW92ZUl0ZW1zQnlJZHMocGFyZW50Rm9sZGVySWQsIFtmb2xkZXJJZF0sIHVwZGF0ZWRJdGVtcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJdGVtcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBtZXRob2QgaXMgdHJpZ2dlcmVkIHdoZW4gVXBkYXRlIFZlcnNpb24gYnV0dG9uIGlzIHByZXNzZWQgYW5kIHZhbGlkIGZpbGUgYXJlIHNlbGVjdGVkIGluIHRoZSBmaWxlIHVwbG9hZGVyIGRpYWxvZy4gKi9cbiAgICB1cGRhdGVWZXJzaW9uKHsgcGFyZW50Rm9sZGVySWQsIGl0ZW0sIG5ld0l0ZW0gfTogVXBkYXRlVmVyc2lvbkV2ZW50KTogT2JzZXJ2YWJsZTxVcGxvYWRDb2xsZWN0aW9uSXRlbVtdPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCd1cGRhdGVWZXJzaW9uJywgcGFyZW50Rm9sZGVySWQsIGl0ZW0pO1xuXG4gICAgICAgIGxldCB1cGRhdGVkSXRlbTogVXBsb2FkQ29sbGVjdGlvbkZpbGUgPSB7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgc3RhdHVzOiBVcGxvYWRDb2xsZWN0aW9uSXRlbVN0YXR1cy5TVUNDRVNTRlVMLFxuICAgICAgICAgICAgdXBsb2FkZWRPbjogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVwbG9hZGVkQnk6IHtcbiAgICAgICAgICAgICAgICBpZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnWW91J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcnNpb246ICtpdGVtLnZlcnNpb24sXG4gICAgICAgICAgICBuYW1lOiBuZXdJdGVtLm5hbWUsXG4gICAgICAgICAgICBmaWxlU2l6ZTogbmV3SXRlbS5zaXplXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fZmluZFBhcmVudEZvbGRlckFuZFVwZGF0ZUl0ZW0ocGFyZW50Rm9sZGVySWQsIHVwZGF0ZWRJdGVtKTtcblxuICAgICAgICByZXR1cm4gb2YodGhpcy5pdGVtcykucGlwZShcbiAgICAgICAgICAgIGRlbGF5KDUwMDApLFxuICAgICAgICAgICAgbWFwKCh1cGRhdGVkSXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSB1cGRhdGVkSXRlbS5kb2N1bWVudElkO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVzID0gdGhpcy5fY2FuY2VsVXBsb2FkTmV3RmlsZUlkcy5pbmNsdWRlcyhpdGVtSWQpO1xuICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlcykge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkSXRlbSA9IHsgLi4uaXRlbSB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmRQYXJlbnRGb2xkZXJBbmRVcGRhdGVJdGVtKHBhcmVudEZvbGRlcklkLCB1cGRhdGVkSXRlbSwgdXBkYXRlZEl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuY2VsVXBsb2FkTmV3RmlsZUlkcyA9IHRoaXMuX2NhbmNlbFVwbG9hZE5ld0ZpbGVJZHMuZmlsdGVyKChpZCkgPT4gaWQgIT09IGl0ZW1JZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJdGVtcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBydW5BZnRlckZhaWwoeyBwYXJlbnRGb2xkZXJJZCwgaXRlbXMgfTogVXBsb2FkRXZlbnQpOiBPYnNlcnZhYmxlPFVwbG9hZENvbGxlY3Rpb25JdGVtW10+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3J1bkFmdGVyRmFpbCcsIHBhcmVudEZvbGRlcklkLCBpdGVtcyk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1swXTtcblxuICAgICAgICB0aGlzLl9maW5kUGFyZW50Rm9sZGVyQW5kQWRkTmV3RmlsZXMocGFyZW50Rm9sZGVySWQsIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZW1wb3JhcnlEb2N1bWVudElkOiBpdGVtLmRvY3VtZW50SWQsXG4gICAgICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IFVwbG9hZENvbGxlY3Rpb25JdGVtU3RhdHVzLlNVQ0NFU1NGVUxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF0pO1xuXG4gICAgICAgIHJldHVybiBvZih0aGlzLml0ZW1zKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIG1ldGhvZCBpcyB0cmlnZ2VyZWQgd2hlbiBDYW5jZWwgYnV0dG9uIGlzIHByZXNzZWQgKi9cbiAgICBjYW5jZWxVcGxvYWROZXdGaWxlKHsgcGFyZW50Rm9sZGVySWQsIGl0ZW0gfTogQ2FuY2VsVXBsb2FkTmV3RmlsZUV2ZW50KTogT2JzZXJ2YWJsZTxVcGxvYWRDb2xsZWN0aW9uSXRlbVtdPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxVcGxvYWROZXdGaWxlJywgcGFyZW50Rm9sZGVySWQsIGl0ZW0pO1xuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uZG9jdW1lbnRJZDtcbiAgICAgICAgdGhpcy5fY2FuY2VsVXBsb2FkTmV3RmlsZUlkcy5wdXNoKGlkKTtcblxuICAgICAgICB0aGlzLl9maW5kUGFyZW50Rm9sZGVyQW5kUmVtb3ZlSXRlbXNCeUlkcyhwYXJlbnRGb2xkZXJJZCwgW2lkXSk7XG5cbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZpbmRQYXJlbnRGb2xkZXJBbmRVcGRhdGVJdGVtKFxuICAgICAgICBwYXJlbnRGb2xkZXJJZDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgICAgICB1cGRhdGVkSXRlbTogVXBsb2FkQ29sbGVjdGlvbkl0ZW0sXG4gICAgICAgIGl0ZW1zID0gdGhpcy5pdGVtc1xuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIXBhcmVudEZvbGRlcklkKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5kb2N1bWVudElkID09PSB1cGRhdGVkSXRlbS5kb2N1bWVudElkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1tpbmRleF0gPSB1cGRhdGVkSXRlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBpdGVtc1tpXTtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtLnR5cGUgIT09ICdmb2xkZXInKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbS5kb2N1bWVudElkID09PSBwYXJlbnRGb2xkZXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gY3VycmVudEl0ZW0uZmlsZXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmRvY3VtZW50SWQgPT09IHVwZGF0ZWRJdGVtLmRvY3VtZW50SWQpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEl0ZW0uZmlsZXNbaV0gPSB1cGRhdGVkSXRlbTtcblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmRQYXJlbnRGb2xkZXJBbmRVcGRhdGVJdGVtKHBhcmVudEZvbGRlcklkLCB1cGRhdGVkSXRlbSwgY3VycmVudEl0ZW0uZmlsZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maW5kUGFyZW50Rm9sZGVyQW5kQWRkTmV3RmlsZXMoXG4gICAgICAgIHBhcmVudEZvbGRlcklkOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgICAgIHVwbG9hZGVkRmlsZXM6IFVwbG9hZENvbGxlY3Rpb25OZXdJdGVtW10sXG4gICAgICAgIGl0ZW1zID0gdGhpcy5pdGVtc1xuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAodXBsb2FkZWRGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcGFyZW50Rm9sZGVySWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZSA9IHVwbG9hZGVkRmlsZXMucG9wKCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5kb2N1bWVudElkID09PSB1cGxvYWRlZEZpbGU/LnRlbXBvcmFyeURvY3VtZW50SWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGl0ZW1zW2luZGV4XSA9IHVwbG9hZGVkRmlsZSEuaXRlbTtcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kUGFyZW50Rm9sZGVyQW5kQWRkTmV3RmlsZXMocGFyZW50Rm9sZGVySWQsIHVwbG9hZGVkRmlsZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtLnR5cGUgIT09ICdmb2xkZXInKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbS5kb2N1bWVudElkID09PSBwYXJlbnRGb2xkZXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhc2ggPSB1cGxvYWRlZEZpbGVzLnJlZHVjZSgocmVzLCBmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1tmaWxlLnRlbXBvcmFyeURvY3VtZW50SWRdID0gZmlsZS5pdGVtO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIFVwbG9hZENvbGxlY3Rpb25JdGVtPik7XG5cbiAgICAgICAgICAgICAgICBjdXJyZW50SXRlbS5maWxlcyA9IGN1cnJlbnRJdGVtLmZpbGVzLm1hcCgoaXRlbSkgPT4gaGFzaFtpdGVtLmRvY3VtZW50SWQgYXMgYW55XSB8fCBpdGVtKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kUGFyZW50Rm9sZGVyQW5kQWRkTmV3RmlsZXMocGFyZW50Rm9sZGVySWQsIHVwbG9hZGVkRmlsZXMsIGN1cnJlbnRJdGVtLmZpbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmluZFBhcmVudEZvbGRlckFuZFJlbW92ZUl0ZW1zQnlJZHMoXG4gICAgICAgIHBhcmVudEZvbGRlcklkOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgICAgIGRvY3VtZW50c0lkczogKG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZClbXSxcbiAgICAgICAgaXRlbXMgPSB0aGlzLml0ZW1zXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmIChkb2N1bWVudHNJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBhcmVudEZvbGRlcklkKSB7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudElkID0gZG9jdW1lbnRzSWRzLnBvcCgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uZG9jdW1lbnRJZCA9PT0gZG9jdW1lbnRJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kUGFyZW50Rm9sZGVyQW5kUmVtb3ZlSXRlbXNCeUlkcyhwYXJlbnRGb2xkZXJJZCwgZG9jdW1lbnRzSWRzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbS50eXBlICE9PSAnZm9sZGVyJykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3VycmVudEl0ZW0uZG9jdW1lbnRJZCA9PT0gcGFyZW50Rm9sZGVySWQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SXRlbS5maWxlcyA9IGN1cnJlbnRJdGVtLmZpbGVzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+ICFkb2N1bWVudHNJZHMuc29tZSgoZG9jdW1lbnRJZCkgPT4gZG9jdW1lbnRJZCA9PT0gaXRlbS5kb2N1bWVudElkKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmluZFBhcmVudEZvbGRlckFuZFJlbW92ZUl0ZW1zQnlJZHMocGFyZW50Rm9sZGVySWQsIGRvY3VtZW50c0lkcywgY3VycmVudEl0ZW0uZmlsZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|