@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
|
@@ -425,12 +425,12 @@ export class FormGeneratorService {
|
|
|
425
425
|
}
|
|
426
426
|
});
|
|
427
427
|
}
|
|
428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
429
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
428
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FormGeneratorService, deps: [{ token: i1.FormBuilder }, { token: i2.FormGeneratorComponentsAccessorService }, { token: FORM_GENERATOR_ITEM_CONFIG, optional: true, skipSelf: true }, { token: FORM_GENERATOR_CONFIG, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
429
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FormGeneratorService }); }
|
|
430
430
|
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FormGeneratorService, decorators: [{
|
|
432
432
|
type: Injectable
|
|
433
|
-
}], ctorParameters:
|
|
433
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.FormGeneratorComponentsAccessorService }, { type: undefined, decorators: [{
|
|
434
434
|
type: Optional
|
|
435
435
|
}, {
|
|
436
436
|
type: SkipSelf
|
|
@@ -444,5 +444,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
444
444
|
}, {
|
|
445
445
|
type: Inject,
|
|
446
446
|
args: [FORM_GENERATOR_CONFIG]
|
|
447
|
-
}] }]
|
|
447
|
+
}] }] });
|
|
448
448
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQW9CLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sd0JBQXdCLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFVdEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQUU1Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFvQjdCLGNBQWM7SUFDZCxZQUNZLEdBQWdCLEVBQ2hCLG1CQUEyRCxFQUkzRCxrQkFBaUQsRUFJakQsZUFBNkM7UUFUN0MsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNo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bkRlc3Ryb3ksIE9wdGlvbmFsLCBTa2lwU2VsZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBzZWxlY3RTdHJhdGVneSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbCwgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsIER5bmFtaWNGb3JtR3JvdXBDb250cm9sIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50c0FjY2Vzc29yU2VydmljZSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3ItY29tcG9uZW50cy1hY2Nlc3Nvci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgRHluYW1pY0Zvcm1JdGVtLFxuICAgIER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzLFxuICAgIER5bmFtaWNGb3JtSXRlbU1hcCxcbiAgICBEeW5hbWljRm9ybVZhbHVlLFxuICAgIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbn0gZnJvbSAnLi9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1pdGVtJztcbmltcG9ydCB7IEZvcm1Db21wb25lbnREZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Zvcm0tY29tcG9uZW50LWRlZmluaXRpb24nO1xuaW1wb3J0IHsgREVGQVVMVF9WQUxJREFUSU9OX0VSUk9SUyB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtdmFsaWRhdGlvbi1lcnJvcnMnO1xuaW1wb3J0IHsgQmFzZUR5bmFtaWNGb3JtR2VuZXJhdG9yQ29udHJvbCB9IGZyb20gJy4vYmFzZS1keW5hbWljLWZvcm0tZ2VuZXJhdG9yLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZ3JvdXAnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvckNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9mb3JtLWdlbmVyYXRvci1tb2R1bGUtY29uZmlnJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtR2VuZXJhdG9yQ29uZmlnLCBGT1JNX0dFTkVSQVRPUl9DT05GSUcsIEZPUk1fR0VORVJBVE9SX0lURU1fQ09ORklHIH0gZnJvbSAnLi9wcm92aWRlcnMvcHJvdmlkZXJzJztcbmltcG9ydCB7IGlzRm9ybUZpZWxkSXRlbSB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gZ2VuZXJhdG9yIHNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0b3JTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBNYXAgb2YgZ2VuZXJhdGVkIGZvcm1zIHRvIGFjY2VzcyBsYXRlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBmb3JtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1Hcm91cD4gPSBuZXcgTWFwPHN0cmluZywgRHluYW1pY0Zvcm1Hcm91cD4oKTtcblxuICAgIC8qKlxuICAgICAqIFByZWRlZmluZWQgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcy5cbiAgICAgKi9cbiAgICB2YWxpZGF0aW9uRXJyb3JIaW50cyA9IERFRkFVTFRfVkFMSURBVElPTl9FUlJPUlM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZzogRm9ybUdlbmVyYXRvckNvbmZpZyA9IGRlZmF1bHRGb3JtR2VuZXJhdG9yQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBfY29tcG9uZW50c0FjY2Vzc29yOiBGb3JtR2VuZXJhdG9yQ29tcG9uZW50c0FjY2Vzc29yU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNraXBTZWxmKClcbiAgICAgICAgQEluamVjdChGT1JNX0dFTkVSQVRPUl9JVEVNX0NPTkZJRylcbiAgICAgICAgcHJpdmF0ZSBfZGVmYXVsdEl0ZW1Db25maWc6IFBhcnRpYWw8RHluYW1pY0Zvcm1GaWVsZEl0ZW0+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2tpcFNlbGYoKVxuICAgICAgICBASW5qZWN0KEZPUk1fR0VORVJBVE9SX0NPTkZJRylcbiAgICAgICAgcHJpdmF0ZSBfcHJvdmlkZWRDb25maWc6IFBhcnRpYWw8Rm9ybUdlbmVyYXRvckNvbmZpZz5cbiAgICApIHtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gbWVyZ2UoY2xvbmVEZWVwKHRoaXMuX2NvbmZpZyksIGNsb25lRGVlcCh0aGlzLl9wcm92aWRlZENvbmZpZykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIGBGb3JtR3JvdXBgIGNsYXNzIHdpdGggdGhlIGxpc3Qgb2YgYER5bmFtaWNGb3JtQ29udHJvbGAgY29udHJvbCBjbGFzc2VzXG4gICAgICogZGVmaW5lZCBpbiBgZm9ybUl0ZW1zYCBhcmd1bWVudC5cbiAgICAgKiBAcGFyYW0gZm9ybU5hbWUgRm9ybSBuYW1lLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbXMgdGhlIGxpc3Qgb2YgZm9ybSBpdGVtcyB3aGljaCB1c2VkIGZvciBmb3JtIGNvbnRyb2wgZ2VuZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyBgRm9ybUdyb3VwYCBjbGFzcyB3aXRoIHRoZSBsaXN0IG9mIGBEeW5hbWljRm9ybUNvbnRyb2xgIGNvbnRyb2wgY2xhc3Nlcy5cbiAgICAgKi9cbiAgICBhc3luYyBnZW5lcmF0ZUZvcm0oZm9ybU5hbWU6IHN0cmluZywgZm9ybUl0ZW1zOiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUl0ZW1NYXA+KTogUHJvbWlzZTxEeW5hbWljRm9ybUdyb3VwPiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nRm9ybSA9IHRoaXMuZm9ybXMuZ2V0KGZvcm1OYW1lKTtcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHt9KSBhcyBEeW5hbWljRm9ybUdyb3VwO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRGb3JtR3JvdXAgPSBuZXcgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5fY29uZmlnLnVuZ3JvdXBlZENvbnRyb2xzTmFtZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICk7XG5cbiAgICAgICAgZGVmYXVsdEZvcm1Hcm91cC5mb3JtSXRlbS5pdGVtcyA9IG5ldyBNYXAoKTtcblxuICAgICAgICBmb3JtSXRlbXMgPSB0aGlzLl90cmFuc2Zvcm1Gb3JtSXRlbXMoZm9ybUl0ZW1zKTtcblxuICAgICAgICBmb3JtSXRlbXMuZm9yRWFjaCgoZm9ybUl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGZvcm1JdGVtKSkge1xuICAgICAgICAgICAgICAgIGlmICghZm9ybUl0ZW0uaXRlbXMgfHwgZm9ybUl0ZW0uaXRlbXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBuZXcgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAoZm9ybUl0ZW0sIHt9KTtcblxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLml0ZW1zLmZvckVhY2goKGdyb3VwRm9ybUl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBGb3JtQ29udHJvbCA9IHRoaXMuX2dlbmVyYXRlRHluYW1pY0Zvcm1JdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGb3JtSXRlbSBhcyBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JvdXBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuYWRkQ29udHJvbChncm91cEZvcm1JdGVtLm5hbWUsIGdyb3VwRm9ybUNvbnRyb2wpO1xuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBmb3JtLmFkZENvbnRyb2woZm9ybUl0ZW0ubmFtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLl9nZW5lcmF0ZUR5bmFtaWNGb3JtSXRlbShmb3JtSXRlbSBhcyBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLCBmb3JtKTtcblxuICAgICAgICAgICAgaWYgKCFmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdEZvcm1Hcm91cC5hZGRDb250cm9sKGZvcm1JdGVtLm5hbWUsIGZvcm1Db250cm9sKTtcblxuICAgICAgICAgICAgZGVmYXVsdEZvcm1Hcm91cC5mb3JtSXRlbS5pdGVtcz8uc2V0KGZvcm1JdGVtLm5hbWUsIGZvcm1JdGVtKTtcblxuICAgICAgICAgICAgZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sTmFtZXMgPSBPYmplY3Qua2V5cyhkZWZhdWx0Rm9ybUdyb3VwLmNvbnRyb2xzKTtcblxuICAgICAgICBmb3JtLmFkZENvbnRyb2wodGhpcy5fY29uZmlnLnVuZ3JvdXBlZENvbnRyb2xzTmFtZSwgZGVmYXVsdEZvcm1Hcm91cCk7XG5cbiAgICAgICAgLy8gQWZ0ZXIgd2UgY3JlYXRlZCBpbml0aWFsIGZvcm0sIHdlIG5lZWQgdG8gZ2V0IGR5bmFtaWMgbGFiZWxzLCBjaG9pY2VzIGFuZCB2YWx1ZVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBmb3JtQ29udHJvbE5hbWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtSXRlbSA9IGZvcm1JdGVtcy5nZXQoa2V5KTtcblxuICAgICAgICAgICAgaWYgKCFpc0Zvcm1GaWVsZEl0ZW0oZm9ybUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IFtbbWVzc2FnZSwgcGxhY2Vob2xkZXIsIGRlZmF1bHRWYWx1ZV0sIGNob2ljZXNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIHRoaXMuX2dldEZvcm1JdGVtUHJvcGVydGllczxbc3RyaW5nLCBzdHJpbmcsIGFueV0+KGZvcm1JdGVtLCBkZWZhdWx0Rm9ybUdyb3VwLCBbXG4gICAgICAgICAgICAgICAgICAgICdtZXNzYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2V0Rm9ybUl0ZW1DaG9pY2VzKGZvcm1JdGVtLCBkZWZhdWx0Rm9ybUdyb3VwKVxuICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgIGZvcm1JdGVtLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICAgICAgZm9ybUl0ZW0ucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIGZvcm1JdGVtLmRlZmF1bHQgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICBmb3JtSXRlbS5jaG9pY2VzID0gY2hvaWNlcztcblxuICAgICAgICAgICAgLy8gVXBkYXRlIGZvcm0gdmFsdWUgc2luY2UgaXQgbWlnaHQgYmUgY2hhbmdlZFxuICAgICAgICAgICAgZGVmYXVsdEZvcm1Hcm91cC5jb250cm9sc1tmb3JtSXRlbS5uYW1lXS5zZXRWYWx1ZShmb3JtSXRlbS5kZWZhdWx0KTtcblxuICAgICAgICAgICAgZGVmYXVsdEZvcm1Hcm91cC5jb250cm9sc1trZXldLmZvcm1JdGVtID0gZm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb250cm9sID0gZm9ybS5nZXQoY29udHJvbE5hbWUpIGFzIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwO1xuICAgICAgICAgICAgY29uc3Qgb2xkQ29udHJvbCA9IGV4aXN0aW5nRm9ybT8uZ2V0KGNvbnRyb2xOYW1lKSBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cDtcbiAgICAgICAgICAgIHRoaXMuX2Nsb25lT2xkRm9ybUdyb3VwKG5ld0NvbnRyb2wsIG9sZENvbnRyb2wpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1zLnNldChmb3JtTmFtZSwgZm9ybSk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBuZXcgY29udHJvbCB0byBhIGZvcm0uXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCB0byBhZGRcbiAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIG9mIHRoZSBjb250cm9sIHRvIGJlIGFkZGVkLlxuICAgICAqIEBwYXJhbSBwYXRoIEdyb3VwIHBhdGguXG4gICAgICovXG4gICAgYXN5bmMgYWRkQ29udHJvbChjb250cm9sOiBEeW5hbWljRm9ybUl0ZW0sIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsIHBhdGg6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtQ29udHJvbChmb3JtLCAuLi5wYXRoKTtcblxuICAgICAgICBpZiAoZm9ybUdyb3VwIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5fZ2VuZXJhdGVEeW5hbWljRm9ybUl0ZW0oY29udHJvbCBhcyBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLCBmb3JtKTtcbiAgICAgICAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKGNvbnRyb2wubmFtZSwgZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgY29udHJvbCB3aXRoIGdpdmVuIG5hbWUgZnJvbSB0aGUgZm9ybS5cbiAgICAgKiBAcGFyYW0gY29udHJvbE5hbWVcbiAgICAgKiBAcGFyYW0gcGF0aFxuICAgICAqL1xuICAgIHJlbW92ZUNvbnRyb2woY29udHJvbE5hbWU6IHN0cmluZywgZm9ybTogRHluYW1pY0Zvcm1Hcm91cCwgcGF0aDogc3RyaW5nW10gPSBbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmdldEZvcm1Db250cm9sKGZvcm0sIC4uLnBhdGgpO1xuXG4gICAgICAgIGlmIChmb3JtR3JvdXAgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCkge1xuICAgICAgICAgICAgZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woY29udHJvbE5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgZm9ybSB2YWx1ZSB3aXRoIGFwcGxpZWQgZmlsdGVycyBhbmQgdHJhbnNmb3JtZXJzLlxuICAgICAqIEBwYXJhbSBmb3JtIEZvcm0gZ2VuZXJhdG9yIGZvcm1cbiAgICAgKiBAcGFyYW0gcmVuZGVyVmFsdWUgV2hldGhlciBvciBub3QgZm9ybSB2YWx1ZSB3aWxsIGJlIHVzZWQgZm9yIHJlbmRlcmluZyBwdXJwb3Nlcy5cbiAgICAgKiBAcmV0dXJucyBmb3JtIHZhbHVlIG9iamVjdC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRGb3JtVmFsdWUoXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAgfCBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICAgICAgcmVuZGVyVmFsdWUgPSBmYWxzZVxuICAgICk6IFByb21pc2U8RHluYW1pY0Zvcm1WYWx1ZT4ge1xuICAgICAgICBhd2FpdCB0aGlzLl90cmlnZ2VyRmllbGRzT25jaGFuZ2UoZm9ybSk7XG5cbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gY2xvbmVEZWVwKGZvcm0udmFsdWUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgW2ksIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKGZvcm0uY29udHJvbHMpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtSXRlbSA9IGNvbnRyb2wuZm9ybUl0ZW07XG5cbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGZvcm1JdGVtKSkge1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZVtpXSA9IGF3YWl0IHRoaXMuZ2V0Rm9ybVZhbHVlKGNvbnRyb2wgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsIHJlbmRlclZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZvcm1JdGVtLnNob3VsZFNob3cgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGZvcm1WYWx1ZVtpXTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZvcm1JdGVtLnRyYW5zZm9ybWVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHJhbnNmb3JtZXIoZm9ybVZhbHVlW2ldLCBmb3JtVmFsdWUsIGZvcm1JdGVtKTtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbaV0gPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW5kZXJWYWx1ZSAmJiBmb3JtSXRlbS52YWx1ZVJlbmRlcmVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udmFsdWVSZW5kZXJlcihmb3JtVmFsdWVbaV0sIGZvcm1WYWx1ZSwgZm9ybUl0ZW0pO1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZVtpXSA9IGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUob2JqKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlbmRlclZhbHVlICYmIGZvcm1JdGVtWydjb250cm9sVHlwZSddID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW2ldID0gdGhpcy5fZm9ybWF0UGFzc3dvcmRWYWx1ZShmb3JtVmFsdWVbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQoZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkcyBjdXN0b20gY29tcG9uZW50IHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBjb21wb25lbnRzIGZvciB0aGUgZm9ybSBnZW5lcmF0b3IgaXRlbXMuXG4gICAgICogQHBhcmFtIGNvbXBvbmVudCBBbmd1bGFyIGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0gdHlwZXMgdHlwZXMgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKi9cbiAgICBhZGRDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2w+LCB0eXBlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudHNBY2Nlc3Nvci5hZGRDb21wb25lbnQoY29tcG9uZW50LCB0eXBlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgYmVzdC1tYXRjaGVkIGNvbXBvbmVudCBiYXNlZCBvbiBwcm92aWRlZCBgdHlwZWAgYXJndW1lbnRcbiAgICAgKiBAcGFyYW0gdHlwZSBmb3JtIGl0ZW0gdHlwZVxuICAgICAqIEByZXR1cm5zIEBzZWUgRm9ybUNvbXBvbmVudERlZmluaXRpb24gQ29tcG9uZW50IGRlZmluaXRpb24gZm9yIHRoZSBmb3JtIGl0ZW1cbiAgICAgKi9cbiAgICBnZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKHR5cGU6IHN0cmluZyk6IEZvcm1Db21wb25lbnREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudHNBY2Nlc3Nvci5nZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKHR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIE9iamVjdCBvZiBhdmFpbGFibGUgZXJyb3JzLCB3aGVyZSBrZXkgaXMgYW4gZXJyb3IgdHlwZSxcbiAgICAgKiBhbmQgaXQncyB2YWx1ZSBpcyBhIGRpc3BsYXkgdGV4dC5cbiAgICAgKi9cbiAgICBnZXRWYWxpZGF0aW9uRXJyb3JIaW50cyhrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25FcnJvckhpbnRzW2tleV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZHMgY3VzdG9tIGVycm9yIGhpbnQgZGVmaW5lZCBieSB1c2VyLlxuICAgICAqIEBwYXJhbSB0eXBlIGVycm9yIHR5cGUgZnJvbSB2YWxpZGF0b3IuXG4gICAgICogQHBhcmFtIHZhbHVlIGRpc3BsYXkgdGV4dC5cbiAgICAgKi9cbiAgICBhZGRWYWxpZGF0aW9uRXJyb3JIaW50KHR5cGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvckhpbnRzW3R5cGVdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiBzb21lIGl0ZW1zIG9mIHRoZSBmb3JtIHNob3VsZCBiZSBoaWRkZW4sXG4gICAgICogb3IgdmlzaWJsZSBiYXNlZCBvbiBgd2hlbmAgbWV0aG9kIHJlc3VsdC5cbiAgICAgKiBAcGFyYW0gZm9ybVxuICAgICAqIEByZXR1cm5zIGBTZXRgIHdoZXJlIGtleSBpcyBpdGVtIG5hbWUsIGFuZCBib29sZWFuIHZhbHVlIGlmIGZpZWxkIG5lZWRzIHRvIGJlIHNob3duLlxuICAgICAqL1xuICAgIGFzeW5jIGNoZWNrVmlzaWJsZUZvcm1JdGVtcyhmb3JtOiBEeW5hbWljRm9ybUdyb3VwKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfT4ge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLl9nZXRGb3JtVmFsdWVXaXRob3V0VW5ncm91cGVkKGNsb25lRGVlcChmb3JtLnZhbHVlKSk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jaGVja0Zvcm1Db250cm9sc1Zpc2liaWxpdHkoZm9ybSwgZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgZm9yIHNlYXJjaGluZyBhIGZvcm0gY29udHJvbCBpbnNpZGUgZm9ybSBncm91cC4gQ2FuIGFsc28gc2VhcmNoIGluc2lkZSB1bmdyb3VwZWQgZm9ybSBncm91cC5cbiAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIGdyb3VwLlxuICAgICAqIEBwYXJhbSBjb250cm9sTmFtZXMgTmFtZSBvZiB0aGUgZm9ybSBjb250cm9sLlxuICAgICAqIEByZXR1cm5zIEZvdW5kIGZvcm0gY29udHJvbC5cbiAgICAgKi9cbiAgICBnZXRGb3JtQ29udHJvbChmb3JtOiBEeW5hbWljRm9ybUdyb3VwLCAuLi5jb250cm9sTmFtZXM6IHN0cmluZ1tdKTogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2wge1xuICAgICAgICBjb250cm9sTmFtZXMgPSBjb250cm9sTmFtZXMucmVkdWNlKChuYW1lczogc3RyaW5nW10sIG5hbWUpID0+IHtcbiAgICAgICAgICAgIG5hbWVzID0gWy4uLm5hbWVzLCAuLi5uYW1lLnNwbGl0KHRoaXMuX2NvbmZpZy5jb250cm9sTmFtZVNlcGFyYXRvcildO1xuXG4gICAgICAgICAgICByZXR1cm4gbmFtZXM7XG4gICAgICAgIH0sIFtdKTtcblxuICAgICAgICBsZXQgY29udHJvbCA9IGZvcm0/LmdldChjb250cm9sTmFtZXMpO1xuXG4gICAgICAgIC8vIElmIG5vIGNvbnRyb2wgZm91bmQsIHRyeSB0byBmaW5kIGl0IGluIHVuZ3JvdXBlZCBncm91cFxuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSBmb3JtPy5nZXQoW3RoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWUsIC4uLmNvbnRyb2xOYW1lc10pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2wgYXMgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2w7XG4gICAgfVxuXG4gICAgLyoqIFJlc2V0cyB0aGUgZm9ybSB0byBpdCdzIGluaXRpYWwgc3RhdGUuICovXG4gICAgcmVzZXRGb3JtKGZvcm06IER5bmFtaWNGb3JtR3JvdXApOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC52YWx1ZXMoZm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShjb250cm9sKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBHZXQgZGVmYXVsdCB2YWx1ZVxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShjb250cm9sLmZvcm1JdGVtLmRlZmF1bHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ2V0Rm9ybVZhbHVlV2l0aG91dFVuZ3JvdXBlZCh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHZhbHVlW3RoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWVdKSB7XG4gICAgICAgICAgICBjb25zdCB1bmdyb3VwZWRHcm91cFZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdmFsdWVbdGhpcy5fY29uZmlnLnVuZ3JvdXBlZENvbnRyb2xzTmFtZV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtmaWVsZE5hbWUsIGZpZWxkVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHVuZ3JvdXBlZEdyb3VwVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVbZmllbGROYW1lXSA9IGZpZWxkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHZhbHVlW3RoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWVdO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Fzc2lnbkZvcm1JdGVtVmFsaWRhdG9ycyhcbiAgICAgICAgZm9ybUl0ZW06IFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXBcbiAgICApOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgbGV0IHZhbGlkYXRvcjogQXN5bmNWYWxpZGF0b3JGbiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGZvcm1JdGVtLnZhbGlkYXRlKSkge1xuICAgICAgICAgICAgdmFsaWRhdG9yID0gYXN5bmMgKGNvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS52YWxpZGF0ZSEoY29udHJvbC52YWx1ZSwgdGhpcy5fZ2V0Rm9ybVZhbHVlV2l0aG91dFVuZ3JvdXBlZChmb3JtKSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXR1cm5PYmogPSB7fTtcblxuICAgICAgICAgICAgICAgIHJldHVybk9ialtgJHsoPER5bmFtaWNGb3JtQ29udHJvbD5jb250cm9sKS5mb3JtSXRlbS5uYW1lfVZhbGlkYXRvcmBdID1cbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHJlc3VsdCA9PT0gJ2Jvb2xlYW4nID8gdHJ1ZSA6IHJlc3VsdDtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgPT09IG51bGwgPyByZXN1bHQgOiByZXR1cm5PYmo7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnMgPSBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnMgfHwgW107XG4gICAgICAgICAgICBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnMgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnMgPT09ICdmdW5jdGlvbicgPyBbZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzXSA6IGZvcm1JdGVtLmFzeW5jVmFsaWRhdG9ycztcblxuICAgICAgICAgICAgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzLnB1c2godmFsaWRhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1JdGVtLnZhbGlkYXRvcnMgPSBmb3JtSXRlbS52YWxpZGF0b3JzIHx8IFtWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3JdO1xuXG4gICAgICAgIGZvcm1JdGVtLnJlcXVpcmVkID0gZm9ybUl0ZW0ucmVxdWlyZWQgfHwgZm9ybUl0ZW0udmFsaWRhdG9ycy5pbmNsdWRlcyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICAgICAgICByZXR1cm4gZm9ybUl0ZW07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUR5bmFtaWNGb3JtSXRlbShcbiAgICAgICAgZm9ybUl0ZW06IFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXBcbiAgICApOiBEeW5hbWljRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBmb3JtSXRlbUNvbXBvbmVudFR5cGUgPSB0aGlzLmdldENvbXBvbmVudERlZmluaXRpb25CeVR5cGUoZm9ybUl0ZW0udHlwZSk7XG5cbiAgICAgICAgaWYgKCFmb3JtSXRlbUNvbXBvbmVudFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgRm9ybSBpdGVtICcke2Zvcm1JdGVtLm5hbWV9JyB3aXRoIHR5cGUgJyR7Zm9ybUl0ZW0udHlwZX0nIGhhcyBubyBkZWZpbmVkIGNvbXBvbmVudC5cbiAgICAgICAgICAgIFBsZWFzZSB1c2UgJ2FkZENvbXBvbmVudCcgbWV0aG9kIGluICR7Rm9ybUdlbmVyYXRvclNlcnZpY2UubmFtZX0gdG8gZGVmaW5lIGFwcHJvcHJpYXRlIHJlbGF0aW9ucy5gKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybUl0ZW0gPSB0aGlzLl9hc3NpZ25Gb3JtSXRlbVZhbGlkYXRvcnMoZm9ybUl0ZW0sIGZvcm0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gbmV3IER5bmFtaWNGb3JtQ29udHJvbChmb3JtSXRlbS5kZWZhdWx0LCB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBmb3JtSXRlbS52YWxpZGF0b3JzLFxuICAgICAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnMsXG4gICAgICAgICAgICBkeW5hbWljRm9ybUl0ZW06IGZvcm1JdGVtLFxuICAgICAgICAgICAgdXBkYXRlT246ICdjaGFuZ2UnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGZvcm1JdGVtLm9uY2hhbmdlKSkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0ub25jaGFuZ2UhKHZhbHVlLCB0aGlzLmZvcm1zLCBmb3JtQ29udHJvbCk7XG5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2NoZWNrRm9ybUNvbnRyb2xzVmlzaWJpbGl0eShcbiAgICAgICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cCB8IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLFxuICAgICAgICBmb3JtVmFsdWU6IGFueVxuICAgICk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0+IHtcbiAgICAgICAgbGV0IHNob3VsZFNob3dGaWVsZHM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgICAgIGZvcm0gPSBmb3JtIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAgPyBmb3JtIDogZm9ybTtcblxuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKGZvcm0uY29udHJvbHMpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtSXRlbSA9IGNvbnRyb2wuZm9ybUl0ZW07XG5cbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGZvcm1JdGVtKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwVmlzaWJsZUl0ZW1zID0gYXdhaXQgdGhpcy5fY2hlY2tGb3JtQ29udHJvbHNWaXNpYmlsaXR5KFxuICAgICAgICAgICAgICAgICAgICBjb250cm9sIGFzIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLFxuICAgICAgICAgICAgICAgICAgICBmb3JtVmFsdWVcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0ZpZWxkcyA9IE9iamVjdC5hc3NpZ24oc2hvdWxkU2hvd0ZpZWxkcywgZ3JvdXBWaXNpYmxlSXRlbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWZvcm1JdGVtLndoZW4pIHtcbiAgICAgICAgICAgICAgICBzaG91bGRTaG93RmllbGRzW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS53aGVuKGZvcm1WYWx1ZSwgdGhpcy5mb3JtcywgY29udHJvbCk7XG4gICAgICAgICAgICBzaG91bGRTaG93RmllbGRzW2tleV0gPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2hvdWxkU2hvd0ZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGZvcm1JdGVtXG4gICAgICogQHBhcmFtIGZvcm1cbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRGb3JtSXRlbVByb3BlcnR5VmFsdWU8VCA9IHN0cmluZz4oXG4gICAgICAgIGZvcm1JdGVtOiBEeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICAgICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cCxcbiAgICAgICAga2V5OiBrZXlvZiBEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICk6IFByb21pc2U8VD4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBmb3JtSXRlbVtrZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IHZhbHVlKHRoaXMuX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQoZm9ybSkpO1xuXG4gICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUob2JqKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZSh2YWx1ZSkpIGFzIFQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRGb3JtSXRlbVByb3BlcnRpZXM8VFR5cGVzIGV4dGVuZHMgYW55W10gPSBhbnlbXT4oXG4gICAgICAgIGZvcm1JdGVtOiBEeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICAgICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cCxcbiAgICAgICAga2V5czogc3RyaW5nW11cbiAgICApOiBQcm9taXNlPFRUeXBlcz4ge1xuICAgICAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5fZ2V0Rm9ybUl0ZW1Qcm9wZXJ0eVZhbHVlKGZvcm1JdGVtLCBmb3JtLCBrZXkpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpKSBhcyBUVHlwZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxuICAgICAqIEBwYXJhbSBmb3JtXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRGb3JtSXRlbUNob2ljZXMoZm9ybUl0ZW06IER5bmFtaWNGb3JtRmllbGRJdGVtLCBmb3JtOiBEeW5hbWljRm9ybUdyb3VwKTogUHJvbWlzZTxTZWxlY3RJdGVtW10+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdENob2ljZXMgPSBhd2FpdCB0aGlzLl9nZXRGb3JtSXRlbVByb3BlcnR5VmFsdWU8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXNbXT4oXG4gICAgICAgICAgICBmb3JtSXRlbSxcbiAgICAgICAgICAgIGZvcm0sXG4gICAgICAgICAgICAnY2hvaWNlcydcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWRlZmF1bHRDaG9pY2VzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmYXVsdENob2ljZXMubWFwKChjOiBzdHJpbmcgfCBudW1iZXIgfCBTZWxlY3RJdGVtKSA9PlxuICAgICAgICAgICAgdHlwZW9mIGMgPT09ICdvYmplY3QnID8gYyA6ICh7IGxhYmVsOiBjLCB2YWx1ZTogYyB9IGFzIFNlbGVjdEl0ZW0pXG4gICAgICAgICkgYXMgU2VsZWN0SXRlbVtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyB2YWx1ZSBmcm9tIFByb21pc2UtbGlrZSwgT2JzZXJ2YWJsZS1saWtlLCBzaW1wbGUgZnVuY3Rpb24gb3IganVzdCBzb21lIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb2JqXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRGdW5jdGlvblZhbHVlKG9iajogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSBzZWxlY3RTdHJhdGVneShvYmopO1xuXG4gICAgICAgIGxldCByZXN1bHQ6IGFueTtcblxuICAgICAgICBhd2FpdCBzdHJhdGVneS5jcmVhdGVTdWJzY3JpcHRpb24ob2JqLCAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHJlc3VsdCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUocmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtYXRQYXNzd29yZFZhbHVlKHBhc3N3b3JkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyonLnJlcGVhdChwYXNzd29yZD8ubGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE1lcmdlZEZvcm1GaWVsZEl0ZW1Db25maWcoZm9ybUl0ZW06IER5bmFtaWNGb3JtSXRlbU1hcCk6IER5bmFtaWNGb3JtSXRlbU1hcCB7XG4gICAgICAgIHJldHVybiBtZXJnZShjbG9uZURlZXAodGhpcy5fZGVmYXVsdEl0ZW1Db25maWcpLCBmb3JtSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmFuc2Zvcm1Gb3JtSXRlbXMoZm9ybUl0ZW1zOiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUl0ZW1NYXA+KTogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1JdGVtTWFwPiB7XG4gICAgICAgIGZvcm1JdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0Zvcm1GaWVsZEl0ZW0oaXRlbSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1JdGVtcy5zZXQoaW5kZXgsIHRoaXMuX2dldE1lcmdlZEZvcm1GaWVsZEl0ZW1Db25maWcoaXRlbSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybUl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfdHJpZ2dlckZpZWxkc09uY2hhbmdlKGZvcm06IER5bmFtaWNGb3JtR3JvdXAgfCBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgT2JqZWN0LnZhbHVlcyhmb3JtLmNvbnRyb2xzKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtO1xuXG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl90cmlnZ2VyRmllbGRzT25jaGFuZ2UoY29udHJvbCBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtSXRlbS5vbmNoYW5nZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGZvcm1JdGVtLm9uY2hhbmdlKGNvbnRyb2wudmFsdWUgYXMgYW55LCB0aGlzLmZvcm1zLCBjb250cm9sIGFzIER5bmFtaWNGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jbG9uZU9sZEZvcm1Hcm91cChuZXdHcm91cDogRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsIG9sZEdyb3VwPzogRHluYW1pY0Zvcm1Db250cm9sR3JvdXApOiB2b2lkIHtcbiAgICAgICAgT2JqZWN0LmtleXMobmV3R3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xOYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gbmV3R3JvdXAuZ2V0KGNvbnRyb2xOYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IG9sZENvbnRyb2wgPSBvbGRHcm91cD8uZ2V0KGNvbnRyb2xOYW1lKSBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cDtcbiAgICAgICAgICAgIGlmICghb2xkQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbG9uZU9sZEZvcm1Hcm91cChjb250cm9sLCBvbGRDb250cm9sKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRyb2w/LnNldFZhbHVlKG9sZENvbnRyb2wudmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgaWYgKG9sZENvbnRyb2wudG91Y2hlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -30,17 +30,17 @@ export class GetHintOptionsPipe {
|
|
|
30
30
|
...formItemHintOptions
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
34
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GetHintOptionsPipe, deps: [{ token: FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
34
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: GetHintOptionsPipe, isStandalone: true, name: "getHintOptions" }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GetHintOptionsPipe, decorators: [{
|
|
37
37
|
type: Pipe,
|
|
38
38
|
args: [{
|
|
39
39
|
name: 'getHintOptions',
|
|
40
40
|
standalone: true
|
|
41
41
|
}]
|
|
42
|
-
}], ctorParameters:
|
|
42
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
43
43
|
type: Inject,
|
|
44
44
|
args: [FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS]
|
|
45
|
-
}] }]
|
|
45
|
+
}] }] });
|
|
46
46
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWhpbnQtb3B0aW9ucy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvcGlwZXMvZ2V0LWhpbnQtb3B0aW9ucy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekUsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBTWhHLE1BQU0sT0FBTyxrQkFBa0I7SUFJM0IsY0FBYztJQUNkLFlBQTZELG9CQUFzQztRQUMvRixJQUFJLENBQUMsbUJBQW1CLEdBQUc7WUFDdkIsR0FBRywrQkFBK0I7WUFDbEMsR0FBRyxvQkFBb0I7U0FDMUIsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQ0wsV0FBa0Y7UUFFbEYsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUU7WUFDcEIsT0FBTztTQUNWO1FBQ0QsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQUksT0FBTyxtQkFBbUIsS0FBSyxRQUFRLElBQUksbUJBQW1CLFlBQVksV0FBVyxFQUFFO1lBQ3ZGLE9BQU87Z0JBQ0gsR0FBRyxJQUFJLENBQUMsbUJBQW1CO2dCQUMzQixPQUFPLEVBQUUsbUJBQW1CO2FBQy9CLENBQUM7U0FDTDtRQUNELE9BQU87WUFDSCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0IsR0FBRyxtQkFBbUI7U0FDekIsQ0FBQztJQUNOLENBQUM7OEdBakNRLGtCQUFrQixrQkFLUCx1Q0FBdUM7NEdBTGxELGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQU1nQixNQUFNOzJCQUFDLHVDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkSGludE9wdGlvbnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBCYXNlRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucywgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWl0ZW0nO1xuaW1wb3J0IHsgRkRQX0ZPUk1fR0VORVJBVE9SX0RFRkFVTFRfSElOVF9PUFRJT05TIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IudG9rZW5zJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtR2VuZXJhdG9ySGludE9wdGlvbnMgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdC1mb3JtLWdlbmVyYXRvci1oaW50LW9wdGlvbnMnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2dldEhpbnRPcHRpb25zJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEdldEhpbnRPcHRpb25zUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEZEUF9GT1JNX0dFTkVSQVRPUl9ERUZBVUxUX0hJTlRfT1BUSU9OUykgX3Byb3ZpZGVkSGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdEZvcm1HZW5lcmF0b3JIaW50T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLl9wcm92aWRlZEhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBmb3IgZXh0cmFjdGluZyBoaW50T3B0aW9ucyBmcm9tIEd1aU9wdGlvbnMuIFRoaXMgd2lsbCBjb2VyY2Ugc3RyaW5nIHwgSGludE9wdGlvbnMgdG8gRmllbGRIaW50T3B0aW9ucyxcbiAgICAgKiB3aWxsIGNvbWJpbmUgZGVmYXVsdCB2YWx1ZSBvZiBoaW50cyBmb3IgZm9ybSBnZW5lcmF0b3Igd2l0aCBwcm92aWRlZCBvcHRpb25zLlxuICAgICAqL1xuICAgIHRyYW5zZm9ybShcbiAgICAgICAgaGludE9wdGlvbnM6IEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHwgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyB8IHVuZGVmaW5lZFxuICAgICk6IEZpZWxkSGludE9wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWhpbnRPcHRpb25zPy5oaW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybUl0ZW1IaW50T3B0aW9ucyA9IGhpbnRPcHRpb25zLmhpbnQ7XG4gICAgICAgIGlmICh0eXBlb2YgZm9ybUl0ZW1IaW50T3B0aW9ucyA9PT0gJ3N0cmluZycgfHwgZm9ybUl0ZW1IaW50T3B0aW9ucyBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAuLi5mb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -6,10 +6,10 @@ export class GetOrderedFieldControlsPipe {
|
|
|
6
6
|
// casting type explicity to the DynamicFormControl[] as this pipe will be used specifically with this data type
|
|
7
7
|
return Object.values(field.controls).sort((a, b) => (a.formItem.rank ?? -Infinity) > (b.formItem.rank ?? -Infinity) ? 1 : -1);
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GetOrderedFieldControlsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: GetOrderedFieldControlsPipe, isStandalone: true, name: "getOrderedFieldControls", pure: false }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GetOrderedFieldControlsPipe, decorators: [{
|
|
13
13
|
type: Pipe,
|
|
14
14
|
args: [{
|
|
15
15
|
name: 'getOrderedFieldControls',
|
|
@@ -23,8 +23,8 @@ const EXPORTABLE_DECLARATIONS = [
|
|
|
23
23
|
FormFieldErrorDescriptionDirective
|
|
24
24
|
];
|
|
25
25
|
export class FdpFormGroupModule {
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FdpFormGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
27
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: FdpFormGroupModule, imports: [FormGroupComponent,
|
|
28
28
|
FormFieldComponent,
|
|
29
29
|
InputMessageGroupWithTemplate,
|
|
30
30
|
FormFieldGroupComponent,
|
|
@@ -43,12 +43,12 @@ export class FdpFormGroupModule {
|
|
|
43
43
|
FormFieldErrorDirective,
|
|
44
44
|
FormFieldErrorHeadingDirective,
|
|
45
45
|
FormFieldErrorDescriptionDirective] }); }
|
|
46
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
46
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FdpFormGroupModule, imports: [FormGroupComponent,
|
|
47
47
|
FormFieldComponent,
|
|
48
48
|
InputMessageGroupWithTemplate,
|
|
49
49
|
FormGroupHeaderComponent] }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FdpFormGroupModule, decorators: [{
|
|
52
52
|
type: NgModule,
|
|
53
53
|
args: [{
|
|
54
54
|
imports: [...EXPORTABLE_DECLARATIONS],
|