@fundamental-ngx/platform 0.43.0-rc.2 → 0.43.0-rc.21
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/esm2020/action-bar/action-bar.component.mjs +3 -3
- package/esm2020/action-bar/action-bar.module.mjs +4 -4
- package/esm2020/action-button-group/action-button-group.component.mjs +3 -3
- package/esm2020/action-button-group/action-button-group.module.mjs +4 -4
- package/esm2020/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +5 -5
- package/esm2020/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +5 -5
- package/esm2020/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +3 -3
- package/esm2020/approval-flow/approval-flow-node/approval-flow-node.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +5 -5
- package/esm2020/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow.component.mjs +3 -3
- package/esm2020/approval-flow/approval-flow.module.mjs +4 -4
- package/esm2020/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
- package/esm2020/button/button.component.mjs +3 -3
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
- package/esm2020/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.config.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.module.mjs +4 -4
- package/esm2020/dynamic-page/dynamic-page.service.mjs +3 -3
- package/esm2020/feed-input/feed-input.component.mjs +3 -3
- package/esm2020/feed-input/feed-input.module.mjs +4 -4
- package/esm2020/form/auto-complete/auto-complete.directive.mjs +3 -3
- package/esm2020/form/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2020/form/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/form/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/form/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2020/form/checkbox-group/checkbox-group.module.mjs +4 -4
- package/esm2020/form/combobox/combobox/combobox.component.mjs +4 -4
- package/esm2020/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +3 -3
- package/esm2020/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
- package/esm2020/form/combobox/combobox.config.mjs +3 -3
- package/esm2020/form/combobox/combobox.module.mjs +4 -4
- package/esm2020/form/combobox/commons/base-combobox.mjs +3 -3
- package/esm2020/form/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/form/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/form/datetime-picker/datetime-picker.component.mjs +3 -3
- package/esm2020/form/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2020/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +3 -3
- package/esm2020/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +3 -3
- package/esm2020/form/form-generator/dynamic-form-control-field.directive.mjs +3 -3
- package/esm2020/form/form-generator/dynamic-form-control.directive.mjs +3 -3
- package/esm2020/form/form-generator/fdp-form-generator.module.mjs +4 -4
- package/esm2020/form/form-generator/form-generator/form-generator.component.mjs +5 -5
- package/esm2020/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
- package/esm2020/form/form-generator/form-generator-field/form-generator-field.component.mjs +3 -3
- package/esm2020/form/form-generator/form-generator.service.mjs +3 -3
- package/esm2020/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
- package/esm2020/form/form-group/deprecated-form-group-compact.directive.mjs +3 -3
- package/esm2020/form/form-group/fdp-form.module.mjs +4 -4
- package/esm2020/form/form-group/form-field/form-field.component.mjs +3 -3
- package/esm2020/form/form-group/form-field-error/form-field-error-description.directive.mjs +3 -3
- package/esm2020/form/form-group/form-field-error/form-field-error-heading.directive.mjs +3 -3
- package/esm2020/form/form-group/form-field-error/form-field-error.directive.mjs +3 -3
- package/esm2020/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
- package/esm2020/form/form-group/form-field-group/form-field-group.component.mjs +3 -3
- package/esm2020/form/form-group/form-group-header/form-group-header.component.mjs +3 -3
- package/esm2020/form/form-group/form-group.component.mjs +3 -3
- package/esm2020/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
- package/esm2020/form/form-group/services/form-field-layout.service.mjs +3 -3
- package/esm2020/form/input/fdp-input.module.mjs +4 -4
- package/esm2020/form/input/input.component.mjs +3 -3
- package/esm2020/form/input-group/addon-body.component.mjs +3 -3
- package/esm2020/form/input-group/addon.component.mjs +3 -3
- package/esm2020/form/input-group/input-group.component.mjs +3 -3
- package/esm2020/form/input-group/input-group.config.mjs +3 -3
- package/esm2020/form/input-group/input-group.module.mjs +4 -4
- package/esm2020/form/input-group/input.component.mjs +3 -3
- package/esm2020/form/input-message-group-with-template/input-message-group-with-template.component.mjs +3 -3
- package/esm2020/form/multi-combobox/commons/base-multi-combobox.mjs +3 -3
- package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +4 -4
- package/esm2020/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +3 -3
- package/esm2020/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
- package/esm2020/form/multi-combobox/multi-combobox.config.mjs +3 -3
- package/esm2020/form/multi-combobox/multi-combobox.module.mjs +4 -4
- package/esm2020/form/multi-input/base-multi-input.mjs +3 -3
- package/esm2020/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
- package/esm2020/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
- package/esm2020/form/multi-input/multi-input.component.mjs +4 -4
- package/esm2020/form/multi-input/multi-input.config.mjs +3 -3
- package/esm2020/form/multi-input/multi-input.module.mjs +4 -4
- package/esm2020/form/platform-file-uploader/platform-file-uploader.component.mjs +3 -3
- package/esm2020/form/platform-file-uploader/platform-file-uploader.module.mjs +4 -4
- package/esm2020/form/radio-group/radio/radio.component.mjs +3 -3
- package/esm2020/form/radio-group/radio-group.component.mjs +3 -3
- package/esm2020/form/radio-group/radio-group.module.mjs +4 -4
- package/esm2020/form/select/commons/base-select.mjs +3 -3
- package/esm2020/form/select/option/option.component.mjs +3 -3
- package/esm2020/form/select/select/select.component.mjs +3 -3
- package/esm2020/form/select/select.config.mjs +3 -3
- package/esm2020/form/select/select.module.mjs +4 -4
- package/esm2020/form/step-input/base.step-input.mjs +3 -3
- package/esm2020/form/step-input/number/number-step-input.component.mjs +3 -3
- package/esm2020/form/step-input/step-input-action-button.mjs +3 -3
- package/esm2020/form/step-input/step-input-control.directive.mjs +3 -3
- package/esm2020/form/step-input/step-input-decrement.directive.mjs +3 -3
- package/esm2020/form/step-input/step-input-increment.directive.mjs +3 -3
- package/esm2020/form/step-input/step-input.config.mjs +3 -3
- package/esm2020/form/step-input/step-input.module.mjs +4 -4
- package/esm2020/form/switch/switch/switch.component.mjs +3 -3
- package/esm2020/form/switch/switch/switch.config.mjs +3 -3
- package/esm2020/form/switch/switch.module.mjs +4 -4
- package/esm2020/form/text-area/text-area.component.mjs +3 -3
- package/esm2020/form/text-area/text-area.config.mjs +3 -3
- package/esm2020/form/text-area/text-area.module.mjs +4 -4
- package/esm2020/form/time-picker/time-picker.component.mjs +3 -3
- package/esm2020/form/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/fundamental-ngx.module.mjs +4 -4
- package/esm2020/icon-tab-bar/components/icon-tab-bar-base.class.mjs +3 -3
- package/esm2020/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +3 -3
- package/esm2020/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +3 -3
- package/esm2020/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +3 -3
- package/esm2020/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +3 -3
- package/esm2020/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
- package/esm2020/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +3 -3
- package/esm2020/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
- package/esm2020/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +3 -3
- package/esm2020/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +3 -3
- package/esm2020/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +3 -3
- package/esm2020/icon-tab-bar/icon-tab-bar.component.mjs +3 -3
- package/esm2020/icon-tab-bar/icon-tab-bar.module.mjs +4 -4
- package/esm2020/info-label/info-label.component.mjs +3 -3
- package/esm2020/info-label/info-label.module.mjs +4 -4
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/list/action-list-item/action-list-item.component.mjs +3 -3
- package/esm2020/list/action-list-item/action-list-item.module.mjs +4 -4
- package/esm2020/list/base-list-item.mjs +6 -6
- package/esm2020/list/display-list-item/display-list-item.component.mjs +3 -3
- package/esm2020/list/display-list-item/display-list-item.module.mjs +4 -4
- package/esm2020/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
- package/esm2020/list/list-group-footer.component.mjs +3 -3
- package/esm2020/list/list-group-header.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +4 -4
- package/esm2020/list/list.config.mjs +3 -3
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/list/load-more-content.directive.mjs +3 -3
- package/esm2020/list/object-list-item/object-list-item-row.component.mjs +3 -3
- package/esm2020/list/object-list-item/object-list-item.component.mjs +3 -3
- package/esm2020/list/object-list-item/object-list-item.module.mjs +4 -4
- package/esm2020/list/standard-list-item/standard-list-item.component.mjs +3 -3
- package/esm2020/list/standard-list-item/standard-list-item.module.mjs +4 -4
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu-trigger.directive.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu-button/menu-button.component.mjs +3 -3
- package/esm2020/menu-button/menu-button.module.mjs +4 -4
- package/esm2020/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +3 -3
- package/esm2020/message-popover/components/message-view/message-view.component.mjs +5 -5
- package/esm2020/message-popover/directives/message-popover-form-item.directive.mjs +3 -3
- package/esm2020/message-popover/message-popover.component.mjs +3 -3
- package/esm2020/message-popover/platform-message-popover.module.mjs +4 -4
- package/esm2020/object-attribute/object-attribute.component.mjs +3 -3
- package/esm2020/object-attribute/object-attribute.module.mjs +4 -4
- package/esm2020/object-marker/object-marker.component.mjs +3 -3
- package/esm2020/object-marker/object-marker.module.mjs +4 -4
- package/esm2020/object-status/object-status.component.mjs +3 -3
- package/esm2020/object-status/object-status.module.mjs +4 -4
- package/esm2020/page-footer/page-footer.component.mjs +3 -3
- package/esm2020/page-footer/page-footer.module.mjs +4 -4
- package/esm2020/panel/panel-actions.component.mjs +3 -3
- package/esm2020/panel/panel-content/panel-content.component.mjs +3 -3
- package/esm2020/panel/panel.component.mjs +3 -3
- package/esm2020/panel/panel.config.mjs +3 -3
- package/esm2020/panel/panel.module.mjs +4 -4
- package/esm2020/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +5 -5
- package/esm2020/search-field/search-field-mobile/search-field-mobile.module.mjs +4 -4
- package/esm2020/search-field/search-field.component.mjs +9 -9
- package/esm2020/search-field/search-field.module.mjs +4 -4
- package/esm2020/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +7 -7
- package/esm2020/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
- package/esm2020/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +3 -3
- package/esm2020/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +3 -3
- package/esm2020/settings-generator/settings-generator-content/settings-generator-content.component.mjs +3 -3
- package/esm2020/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +3 -3
- package/esm2020/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
- package/esm2020/settings-generator/settings-generator.component.mjs +3 -3
- package/esm2020/settings-generator/settings-generator.module.mjs +4 -4
- package/esm2020/settings-generator/settings-generator.service.mjs +3 -3
- package/esm2020/shared/base.mjs +3 -3
- package/esm2020/shared/form/base.input.mjs +3 -3
- package/esm2020/shared/form/collection-base.input.mjs +3 -3
- package/esm2020/shared/form/inline-layout-collection-base.input.mjs +9 -9
- package/esm2020/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
- package/esm2020/shared/pipes/pipe.module.mjs +4 -4
- package/esm2020/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.mjs +3 -3
- package/esm2020/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.mjs +3 -3
- package/esm2020/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.mjs +4 -4
- package/esm2020/shared/platform.config.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +3 -3
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +3 -3
- package/esm2020/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +3 -3
- package/esm2020/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +3 -3
- package/esm2020/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +3 -3
- package/esm2020/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +3 -3
- package/esm2020/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +3 -3
- package/esm2020/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +3 -3
- package/esm2020/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
- package/esm2020/smart-filter-bar/smart-filter-bar.component.mjs +3 -3
- package/esm2020/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
- package/esm2020/smart-filter-bar/smart-filter-bar.service.mjs +3 -3
- package/esm2020/split-menu-button/split-menu-button.component.mjs +3 -3
- package/esm2020/split-menu-button/split-menu-button.module.mjs +4 -4
- package/esm2020/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
- package/esm2020/table/components/reset-button/reset-button.component.mjs +3 -3
- package/esm2020/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +5 -5
- package/esm2020/table/components/table-column/table-column.component.mjs +3 -3
- package/esm2020/table/components/table-column-resizer/table-column-resizer.component.mjs +3 -3
- package/esm2020/table/components/table-editable-cell/table-editable-cell.component.mjs +3 -3
- package/esm2020/table/components/table-group-row/table-group-row.component.mjs +3 -3
- package/esm2020/table/components/table-header-cell-content/table-header-cell-content.component.mjs +3 -3
- package/esm2020/table/components/table-header-row/table-header-row.component.mjs +10 -6
- package/esm2020/table/components/table-p13-dialog/columns/columns.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/filtering/filtering.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/grouping/grouping.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/sorting/sorting.component.mjs +8 -8
- package/esm2020/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/table-p13-dialog.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
- package/esm2020/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
- package/esm2020/table/components/table-popping-row/table-popping-row.component.mjs +3 -3
- package/esm2020/table/components/table-row/table-row.component.mjs +3 -3
- package/esm2020/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
- package/esm2020/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
- package/esm2020/table/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/filtering/filters.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +3 -3
- package/esm2020/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +31 -13
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table-helpers/constants/index.mjs +3 -2
- package/esm2020/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-cell-header-popover.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-cell.directive.mjs +12 -12
- package/esm2020/table-helpers/directives/table-data-source.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-draggable.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-header.directive.mjs +6 -6
- package/esm2020/table-helpers/directives/table-initial-state.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-scrollable.directive.mjs +12 -4
- package/esm2020/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +3 -3
- package/esm2020/table-helpers/directives/table-virtual-scroll.directive.mjs +9 -5
- package/esm2020/table-helpers/interfaces/table-state.interface.mjs +1 -1
- package/esm2020/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
- package/esm2020/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
- package/esm2020/table-helpers/pipes/row-classes.pipe.mjs +3 -3
- package/esm2020/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
- package/esm2020/table-helpers/services/table-column-resize.service.mjs +3 -3
- package/esm2020/table-helpers/services/table-responsive.service.mjs +3 -3
- package/esm2020/table-helpers/services/table-row.service.mjs +3 -3
- package/esm2020/table-helpers/services/table-scroll-dispatcher.service.mjs +4 -4
- package/esm2020/table-helpers/services/table.service.mjs +7 -5
- package/esm2020/table-helpers/table-helpers.module.mjs +4 -4
- package/esm2020/thumbnail/thumbnail-details/thumbnail-details.component.mjs +3 -3
- package/esm2020/thumbnail/thumbnail-image/thumbnail-image.component.mjs +3 -3
- package/esm2020/thumbnail/thumbnail.component.mjs +3 -3
- package/esm2020/thumbnail/thumbnail.module.mjs +4 -4
- package/esm2020/upload-collection/dialogs/move-to/move-to.component.mjs +3 -3
- package/esm2020/upload-collection/dialogs/new-folder/new-folder.component.mjs +5 -5
- package/esm2020/upload-collection/directives/upload-collection-dragndrop.directive.mjs +3 -3
- package/esm2020/upload-collection/services/files-validator.service.mjs +3 -3
- package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +3 -3
- package/esm2020/upload-collection/upload-collection.module.mjs +4 -4
- package/esm2020/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +3 -3
- package/esm2020/value-help-dialog/components/define-tab/define-tab.component.mjs +3 -3
- package/esm2020/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -3
- package/esm2020/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +3 -3
- package/esm2020/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.mjs +3 -3
- package/esm2020/value-help-dialog/directives/condition-count-message.directive.mjs +3 -3
- package/esm2020/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +3 -3
- package/esm2020/value-help-dialog/value-help-dialog.module.mjs +4 -4
- package/esm2020/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +3 -3
- package/esm2020/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +3 -3
- package/esm2020/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
- package/esm2020/variant-management/directives/variant-management-dirty-label.directive.mjs +3 -3
- package/esm2020/variant-management/variant-management.component.mjs +4 -4
- package/esm2020/variant-management/variant-management.module.mjs +4 -4
- package/esm2020/wizard-generator/base-wizard-generator.mjs +3 -3
- package/esm2020/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +5 -5
- package/esm2020/wizard-generator/components/wizard-body/wizard-body.component.mjs +3 -3
- package/esm2020/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +3 -3
- package/esm2020/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +3 -3
- package/esm2020/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +3 -3
- package/esm2020/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +3 -3
- package/esm2020/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
- package/esm2020/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
- package/esm2020/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
- package/esm2020/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
- package/esm2020/wizard-generator/wizard-dialog-generator.service.mjs +3 -3
- package/esm2020/wizard-generator/wizard-generator.module.mjs +4 -4
- package/esm2020/wizard-generator/wizard-generator.service.mjs +3 -3
- package/fesm2015/fundamental-ngx-platform-action-bar.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-action-button-group.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-approval-flow.mjs +43 -43
- package/fesm2015/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-button.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-dynamic-page.mjs +46 -46
- package/fesm2015/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-feed-input.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-form.mjs +305 -305
- package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-icon-tab-bar.mjs +40 -40
- package/fesm2015/fundamental-ngx-platform-info-label.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-link.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-list.mjs +60 -60
- package/fesm2015/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-menu-button.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-menu.mjs +13 -13
- package/fesm2015/fundamental-ngx-platform-message-popover.mjs +17 -17
- package/fesm2015/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-object-attribute.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-object-marker.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-object-status.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-page-footer.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-panel.mjs +16 -16
- package/fesm2015/fundamental-ngx-platform-search-field.mjs +21 -21
- package/fesm2015/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-settings-generator.mjs +34 -34
- package/fesm2015/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-shared.mjs +38 -38
- package/fesm2015/fundamental-ngx-platform-slider.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +34 -34
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-split-menu-button.mjs +7 -7
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +97 -85
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table.mjs +147 -125
- package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-thumbnail.mjs +13 -13
- package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +20 -20
- package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +25 -25
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs +20 -20
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-wizard-generator.mjs +44 -44
- package/fesm2015/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform.mjs +4 -4
- package/fesm2020/fundamental-ngx-platform-action-bar.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-action-button-group.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-approval-flow.mjs +43 -43
- package/fesm2020/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-button.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-dynamic-page.mjs +46 -46
- package/fesm2020/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-feed-input.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-form.mjs +305 -305
- package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-icon-tab-bar.mjs +40 -40
- package/fesm2020/fundamental-ngx-platform-info-label.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-link.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-list.mjs +60 -60
- package/fesm2020/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-menu-button.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-menu.mjs +13 -13
- package/fesm2020/fundamental-ngx-platform-message-popover.mjs +17 -17
- package/fesm2020/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-object-attribute.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-object-marker.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-object-status.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-page-footer.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-panel.mjs +16 -16
- package/fesm2020/fundamental-ngx-platform-search-field.mjs +21 -21
- package/fesm2020/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-settings-generator.mjs +34 -34
- package/fesm2020/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-shared.mjs +38 -38
- package/fesm2020/fundamental-ngx-platform-slider.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +34 -34
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-split-menu-button.mjs +7 -7
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +100 -85
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table.mjs +147 -125
- package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-thumbnail.mjs +13 -13
- package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +20 -20
- package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +25 -25
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs +20 -20
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-wizard-generator.mjs +44 -44
- package/fesm2020/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform.mjs +4 -4
- package/fundamental-ngx-platform-v0.43.0-rc.21.tgz +0 -0
- package/package.json +5 -5
- package/schematics/ng-add/index.js +1 -1
- package/table/components/table-header-row/table-header-row.component.d.ts +3 -1
- package/table/table.component.d.ts +7 -1
- package/table-helpers/directives/table-scrollable.directive.d.ts +2 -0
- package/table-helpers/interfaces/table-state.interface.d.ts +1 -0
- package/table-helpers/services/table-scroll-dispatcher.service.d.ts +2 -0
- package/fundamental-ngx-platform-v0.43.0-rc.2.tgz +0 -0
|
@@ -10,9 +10,9 @@ export class DynamicFormGeneratorRadioComponent extends BaseDynamicFormGenerator
|
|
|
10
10
|
super();
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
DynamicFormGeneratorRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
-
DynamicFormGeneratorRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
13
|
+
DynamicFormGeneratorRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormGeneratorRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
DynamicFormGeneratorRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicFormGeneratorRadioComponent, selector: "fdp-dynamic-form-generator-radio", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-radio-group\n [id]=\"id\"\n [isInline]=\"formItem.guiOptions?.inline || false\"\n [inlineLayout]=\"formItem.guiOptions?.inlineLayout\"\n [name]=\"name\"\n [list]=\"choices\"\n [formControlName]=\"name\"\n ></fdp-radio-group>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i2.RadioGroupComponent, selector: "fdp-radio-group", inputs: ["selected", "isInline", "hasNoValue", "noValueLabel"], outputs: ["change"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormGeneratorRadioComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: 'fdp-dynamic-form-generator-radio', encapsulation: ViewEncapsulation.None, viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-radio-group\n [id]=\"id\"\n [isInline]=\"formItem.guiOptions?.inline || false\"\n [inlineLayout]=\"formItem.guiOptions?.inlineLayout\"\n [name]=\"name\"\n [list]=\"choices\"\n [formControlName]=\"name\"\n ></fdp-radio-group>\n </ng-container>\n</ng-container>\n" }]
|
|
18
18
|
}], ctorParameters: function () { return []; } });
|
|
@@ -10,9 +10,9 @@ export class DynamicFormGeneratorSelectComponent extends BaseDynamicFormGenerato
|
|
|
10
10
|
super();
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
DynamicFormGeneratorSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
-
DynamicFormGeneratorSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
13
|
+
DynamicFormGeneratorSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormGeneratorSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
DynamicFormGeneratorSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicFormGeneratorSelectComponent, selector: "fdp-dynamic-form-generator-select", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-select\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [inline]=\"formItem.guiOptions?.inline !== false\"\n [name]=\"name\"\n [list]=\"formItem.choices\"\n [formControlName]=\"name\"\n [secondaryKey]=\"formItem.secondaryKey\"\n [showSecondaryText]=\"formItem.showSecondaryText ? formItem.showSecondaryText : false\"\n [secondaryTextAlignment]=\"formItem.secondaryTextAlignment ? formItem.secondaryTextAlignment : 'right'\"\n [controlTemplate]=\"formItem.controlTemplate\"\n ></fdp-select>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i2.SelectComponent, selector: "fdp-select", inputs: ["selectState", "value", "inline"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormGeneratorSelectComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: 'fdp-dynamic-form-generator-select', encapsulation: ViewEncapsulation.None, viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-select\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [inline]=\"formItem.guiOptions?.inline !== false\"\n [name]=\"name\"\n [list]=\"formItem.choices\"\n [formControlName]=\"name\"\n [secondaryKey]=\"formItem.secondaryKey\"\n [showSecondaryText]=\"formItem.showSecondaryText ? formItem.showSecondaryText : false\"\n [secondaryTextAlignment]=\"formItem.secondaryTextAlignment ? formItem.secondaryTextAlignment : 'right'\"\n [controlTemplate]=\"formItem.controlTemplate\"\n ></fdp-select>\n </ng-container>\n</ng-container>\n" }]
|
|
18
18
|
}], ctorParameters: function () { return []; } });
|
|
@@ -10,9 +10,9 @@ export class DynamicFormGeneratorSwitchComponent extends BaseDynamicFormGenerato
|
|
|
10
10
|
super();
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
DynamicFormGeneratorSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
-
DynamicFormGeneratorSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
13
|
+
DynamicFormGeneratorSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormGeneratorSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
DynamicFormGeneratorSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicFormGeneratorSwitchComponent, selector: "fdp-dynamic-form-generator-switch", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-switch\n [id]=\"id\"\n [name]=\"name\"\n [semantic]=\"formItem.guiOptions?.additionalData?.semantic\"\n [formControlName]=\"name\"\n ></fdp-switch>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i2.SwitchComponent, selector: "fdp-switch", inputs: ["ariaLabel", "ariaLabelledby", "semantic"], outputs: ["switchChange"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormGeneratorSwitchComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: 'fdp-dynamic-form-generator-switch', encapsulation: ViewEncapsulation.None, viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-switch\n [id]=\"id\"\n [name]=\"name\"\n [semantic]=\"formItem.guiOptions?.additionalData?.semantic\"\n [formControlName]=\"name\"\n ></fdp-switch>\n </ng-container>\n</ng-container>\n" }]
|
|
18
18
|
}], ctorParameters: function () { return []; } });
|
|
@@ -65,9 +65,9 @@ export class DynamicFormControlFieldDirective {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
DynamicFormControlFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
69
|
-
DynamicFormControlFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
68
|
+
DynamicFormControlFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormControlFieldDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
69
|
+
DynamicFormControlFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DynamicFormControlFieldDirective, selector: "[fdpDynamicFormControlField]", inputs: { fdpDynamicFormControlField: "fdpDynamicFormControlField", fdpDynamicFormControlFieldShow: "fdpDynamicFormControlFieldShow" }, ngImport: i0 });
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormControlFieldDirective, decorators: [{
|
|
71
71
|
type: Directive,
|
|
72
72
|
args: [{
|
|
73
73
|
selector: '[fdpDynamicFormControlField]'
|
|
@@ -54,9 +54,9 @@ export class DynamicFormControlDirective {
|
|
|
54
54
|
this.formFieldControl = componentRef.instance;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
DynamicFormControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
58
|
-
DynamicFormControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
57
|
+
DynamicFormControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormControlDirective, deps: [{ token: i1.FormGeneratorService }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: CONTENT_DENSITY_DIRECTIVE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
+
DynamicFormControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DynamicFormControlDirective, selector: "[fdpDynamicFormControl]", inputs: { formItem: "formItem", id: "id", name: "name", form: "form", formGroupNamePath: "formGroupNamePath", formField: "formField" }, ngImport: i0 });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicFormControlDirective, decorators: [{
|
|
60
60
|
type: Directive,
|
|
61
61
|
args: [{
|
|
62
62
|
selector: '[fdpDynamicFormControl]'
|
|
@@ -64,8 +64,8 @@ export class PlatformFormGeneratorModule {
|
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
PlatformFormGeneratorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
68
|
-
PlatformFormGeneratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
67
|
+
PlatformFormGeneratorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PlatformFormGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
68
|
+
PlatformFormGeneratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: PlatformFormGeneratorModule, declarations: [FormGeneratorComponent,
|
|
69
69
|
DynamicFormControlFieldDirective,
|
|
70
70
|
DynamicFormControlDirective,
|
|
71
71
|
DynamicFormGeneratorCheckboxComponent,
|
|
@@ -111,7 +111,7 @@ PlatformFormGeneratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0
|
|
|
111
111
|
FormGeneratorFieldComponent,
|
|
112
112
|
ContentDensityModule,
|
|
113
113
|
DynamicFormGeneratorObjectStatusComponent] });
|
|
114
|
-
PlatformFormGeneratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
114
|
+
PlatformFormGeneratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PlatformFormGeneratorModule, providers: [
|
|
115
115
|
FormGeneratorService,
|
|
116
116
|
FormGeneratorComponentsAccessorService,
|
|
117
117
|
defaultFormGeneratorItemConfigProvider,
|
|
@@ -137,7 +137,7 @@ PlatformFormGeneratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0
|
|
|
137
137
|
SkeletonModule,
|
|
138
138
|
ListModule,
|
|
139
139
|
PlatformObjectStatusModule, ContentDensityModule] });
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PlatformFormGeneratorModule, decorators: [{
|
|
141
141
|
type: NgModule,
|
|
142
142
|
args: [{
|
|
143
143
|
declarations: [
|
|
@@ -301,11 +301,11 @@ export class FormGeneratorComponent {
|
|
|
301
301
|
});
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
|
-
FormGeneratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
305
|
-
FormGeneratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: FormGeneratorComponent, selector: "fdp-form-generator", inputs: { formName: "formName", formItems: "formItems", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", hint: "hint", columnLayout: "columnLayout", labelLayout: "labelLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", unifiedLayout: "unifiedLayout", inlineColumnLayout: "inlineColumnLayout", noAdditionalContent: "noAdditionalContent" }, outputs: { formCreated: "formCreated", formSubmitted: "formSubmitted", formSubmittedStatus: "formSubmittedStatus" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "fields", predicate: FormGeneratorFieldComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-busy-indicator *ngIf=\"_firstLoadingDone; else loadingTemplate\" [loading]=\"formLoading\" [block]=\"true\">\n <fdp-form-group\n *ngIf=\"form\"\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngFor=\"let field of formControlItems; trackBy: _trackFn\">\n <ng-container\n *ngTemplateOutlet=\"\n field.type === 'field' ? fieldRenderer : groupRenderer;\n context: { field: field, formFieldName: field.formItem.name, rank: field.formItem?.rank || 0 }\n \"\n ></ng-container>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n <ng-container *ngFor=\"let groupField of field | getOrderedFieldControls\">\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(groupField.formItem.guiOptions)\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-container>\n </fdp-form-field-group>\n </ng-template>\n </ng-container>\n <fdp-form-field *ngIf=\"!noAdditionalContent\" [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n </fdp-form-group>\n</fd-busy-indicator>\n\n<ng-template #loadingTemplate>\n <fd-skeleton width=\"100%\" height=\"100px\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FormGroupComponent, selector: "fdp-form-group", inputs: ["id", "name", "editable", "noLabelLayout", "class", "hint", "labelLayout", "inlineColumnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "formGroup", "topTitle", "mainTitle", "hideMainTItle", "object", "i18Strings", "useForm", "columnLayout", "unifiedLayout"], outputs: ["onSubmit"] }, { kind: "component", type: i4.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hintPlacement", "hint", "labelLayout", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "component", type: i5.FormFieldGroupComponent, selector: "fdp-form-field-group", inputs: ["label", "formName", "formGroupContainer", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "hintOptions"] }, { kind: "directive", type: i6.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i7.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i8.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i11.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "directive", type: i12.DynamicFormControlFieldDirective, selector: "[fdpDynamicFormControlField]", inputs: ["fdpDynamicFormControlField", "fdpDynamicFormControlFieldShow"] }, { kind: "component", type: i13.FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: ["field", "form", "i18n", "formFieldName", "formGroupNamePath", "rank", "shouldShow", "hintOptions"] }, { kind: "pipe", type: i14.GetOrderedFieldControlsPipe, name: "getOrderedFieldControls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
306
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
304
|
+
FormGeneratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorComponent, deps: [{ token: i1.FormGeneratorService }, { token: i0.ChangeDetectorRef }, { token: FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
305
|
+
FormGeneratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormGeneratorComponent, selector: "fdp-form-generator", inputs: { formName: "formName", formItems: "formItems", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", hint: "hint", columnLayout: "columnLayout", labelLayout: "labelLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", unifiedLayout: "unifiedLayout", inlineColumnLayout: "inlineColumnLayout", noAdditionalContent: "noAdditionalContent" }, outputs: { formCreated: "formCreated", formSubmitted: "formSubmitted", formSubmittedStatus: "formSubmittedStatus" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "fields", predicate: FormGeneratorFieldComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-busy-indicator *ngIf=\"_firstLoadingDone; else loadingTemplate\" [loading]=\"formLoading\" [block]=\"true\">\n <fdp-form-group\n *ngIf=\"form\"\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngFor=\"let field of formControlItems; trackBy: _trackFn\">\n <ng-container\n *ngTemplateOutlet=\"\n field.type === 'field' ? fieldRenderer : groupRenderer;\n context: { field: field, formFieldName: field.formItem.name, rank: field.formItem?.rank || 0 }\n \"\n ></ng-container>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n <ng-container *ngFor=\"let groupField of field | getOrderedFieldControls\">\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(groupField.formItem.guiOptions)\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-container>\n </fdp-form-field-group>\n </ng-template>\n </ng-container>\n <fdp-form-field *ngIf=\"!noAdditionalContent\" [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n </fdp-form-group>\n</fd-busy-indicator>\n\n<ng-template #loadingTemplate>\n <fd-skeleton width=\"100%\" height=\"100px\" style=\"padding: 1rem\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FormGroupComponent, selector: "fdp-form-group", inputs: ["id", "name", "editable", "noLabelLayout", "class", "hint", "labelLayout", "inlineColumnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "formGroup", "topTitle", "mainTitle", "hideMainTItle", "object", "i18Strings", "useForm", "columnLayout", "unifiedLayout"], outputs: ["onSubmit"] }, { kind: "component", type: i4.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hintPlacement", "hint", "labelLayout", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "component", type: i5.FormFieldGroupComponent, selector: "fdp-form-field-group", inputs: ["label", "formName", "formGroupContainer", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "hintOptions"] }, { kind: "directive", type: i6.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i7.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i8.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i11.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "directive", type: i12.DynamicFormControlFieldDirective, selector: "[fdpDynamicFormControlField]", inputs: ["fdpDynamicFormControlField", "fdpDynamicFormControlFieldShow"] }, { kind: "component", type: i13.FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: ["field", "form", "i18n", "formFieldName", "formGroupNamePath", "rank", "shouldShow", "hintOptions"] }, { kind: "pipe", type: i14.GetOrderedFieldControlsPipe, name: "getOrderedFieldControls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorComponent, decorators: [{
|
|
307
307
|
type: Component,
|
|
308
|
-
args: [{ selector: 'fdp-form-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-busy-indicator *ngIf=\"_firstLoadingDone; else loadingTemplate\" [loading]=\"formLoading\" [block]=\"true\">\n <fdp-form-group\n *ngIf=\"form\"\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngFor=\"let field of formControlItems; trackBy: _trackFn\">\n <ng-container\n *ngTemplateOutlet=\"\n field.type === 'field' ? fieldRenderer : groupRenderer;\n context: { field: field, formFieldName: field.formItem.name, rank: field.formItem?.rank || 0 }\n \"\n ></ng-container>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n <ng-container *ngFor=\"let groupField of field | getOrderedFieldControls\">\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(groupField.formItem.guiOptions)\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-container>\n </fdp-form-field-group>\n </ng-template>\n </ng-container>\n <fdp-form-field *ngIf=\"!noAdditionalContent\" [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n </fdp-form-group>\n</fd-busy-indicator>\n\n<ng-template #loadingTemplate>\n <fd-skeleton width=\"100%\" height=\"100px\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n</ng-template>\n" }]
|
|
308
|
+
args: [{ selector: 'fdp-form-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-busy-indicator *ngIf=\"_firstLoadingDone; else loadingTemplate\" [loading]=\"formLoading\" [block]=\"true\">\n <fdp-form-group\n *ngIf=\"form\"\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngFor=\"let field of formControlItems; trackBy: _trackFn\">\n <ng-container\n *ngTemplateOutlet=\"\n field.type === 'field' ? fieldRenderer : groupRenderer;\n context: { field: field, formFieldName: field.formItem.name, rank: field.formItem?.rank || 0 }\n \"\n ></ng-container>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"getHintOptions(field.formItem.guiOptions)\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n <ng-container *ngFor=\"let groupField of field | getOrderedFieldControls\">\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"getHintOptions(groupField.formItem.guiOptions)\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-container>\n </fdp-form-field-group>\n </ng-template>\n </ng-container>\n <fdp-form-field *ngIf=\"!noAdditionalContent\" [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n </fdp-form-group>\n</fd-busy-indicator>\n\n<ng-template #loadingTemplate>\n <fd-skeleton width=\"100%\" height=\"100px\" style=\"padding: 1rem\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n</ng-template>\n" }]
|
|
309
309
|
}], ctorParameters: function () { return [{ type: i1.FormGeneratorService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
310
310
|
type: Inject,
|
|
311
311
|
args: [FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS]
|
|
@@ -351,4 +351,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
351
351
|
type: ViewChildren,
|
|
352
352
|
args: [FormGeneratorFieldComponent]
|
|
353
353
|
}] } });
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQVU5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWVqRSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUM3QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSx1Q0FBdUMs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QkFEbEIsS0FBSztnQkFRTixXQUFXO3NCQURWLE1BQU07Z0JBUVAsYUFBYTtzQkFEWixNQUFNO2dCQU9QLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsTUFBTTtnQkFLakIsU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFLN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIENvbHVtbkxheW91dCxcbiAgICBGaWVsZEhpbnRPcHRpb25zLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICBIaW50T3B0aW9ucyxcbiAgICBMYWJlbExheW91dCxcbiAgICBIaW50SW5wdXRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWdlbmVyYXRvci1maWVsZC9mb3JtLWdlbmVyYXRvci1maWVsZC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBCYXNlRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyxcbiAgICBEeW5hbWljRm9ybUl0ZW0sXG4gICAgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyxcbiAgICBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0LFxuICAgIER5bmFtaWNGb3JtVmFsdWVcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICBEeW5hbWljRm9ybUdyb3VwQ29udHJvbCxcbiAgICBEeW5hbWljRm9ybUdyb3VwQ29udHJvbHNcbn0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWdyb3VwJztcbmltcG9ydCB7XG4gICAgRGVmYXVsdEdhcExheW91dCxcbiAgICBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0LFxuICAgIERlZmF1bHRIb3Jpem9udGFsTGFiZWxMYXlvdXQsXG4gICAgRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQsXG4gICAgRGVmYXVsdFZlcnRpY2FsTGFiZWxMYXlvdXRcbn0gZnJvbSAnLi4vLi4vZm9ybS1ncm91cC9jb25zdGFudHMnO1xuaW1wb3J0IHsgRkRQX0ZPUk1fR0VORVJBVE9SX0RFRkFVTFRfSElOVF9PUFRJT05TIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IudG9rZW5zJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtR2VuZXJhdG9ySGludE9wdGlvbnMgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdC1mb3JtLWdlbmVyYXRvci1oaW50LW9wdGlvbnMnO1xuXG5sZXQgZm9ybVVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGNvbnN0IEZEUF9GT1JNX0lHTk9SRURfU1RBVFVTRVM6IEZvcm1Db250cm9sU3RhdHVzW10gPSBbJ0lOVkFMSUQnLCAnUEVORElORycsICdESVNBQkxFRCddO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1Ym1pdEZvcm1FdmVudFJlc3VsdCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEluZGljYXRvciBpZiB2YWxpZGF0aW9uIGhhcyBiZWVuIHBhc3NlZC5cbiAgICAgKi9cbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGb3JtYXR0ZWQgZm9ybSB2YWx1ZS5cbiAgICAgKi9cbiAgICB2YWx1ZTogRHluYW1pY0Zvcm1WYWx1ZSB8IG51bGw7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gR2VuZXJhdG9yIGNvbXBvbmVudCByZXByZXNlbnRzIGEgaGlnaC1sZXZlbCBjb21wb25lbnRcbiAqIHdoaWNoIGluY2x1ZGVzIEBzZWUgRm9ybUdyb3VwIGluc2lkZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZm9ybS1nZW5lcmF0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVW5pcXVlIGZvcm0gbmFtZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybU5hbWUgPSBgZmRwLWZvcm0tZ2VuZXJhdG9yLSR7Zm9ybVVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIEBzZWUgRHluYW1pY0Zvcm1JdGVtIHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpdGVtc1xuICAgICAqIHRvIGJlIHJlbmRlcmVkIGluIHRoZSBmb3JtLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcm1JdGVtcyhmb3JtSXRlbXM6IER5bmFtaWNGb3JtSXRlbVtdKSB7XG4gICAgICAgIGlmICghZm9ybUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9mb3JtSXRlbXMgPSBmb3JtSXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKHsgLi4uaXRlbSwgcmFuazogaXRlbS5yYW5rIHx8IGluZGV4IH0pKTtcbiAgICAgICAgdGhpcy5fZ2VuZXJhdGVGb3JtKCk7XG4gICAgfVxuICAgIGdldCBmb3JtSXRlbXMoKTogRHluYW1pY0Zvcm1JdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGb3JtIG1haW4gdGl0bGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYWluVGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGhpZGUgbWFpbiB0aXRsZS4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVNYWluVEl0bGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEhpbnQgZm9yIHRoZSBtYWluIHRpdGxlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaW50OiBIaW50SW5wdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3BlY2lmeSB0aGUgY29sdW1uIGxheW91dCBpbiB0aGUgZm9ybWF0IGBYTG4tTG4tTW4tU25gXG4gICAgICogd2hlcmUgbiBpcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIGNhbiBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggc2l6ZS5cbiAgICAgKiBlZzogWEwyLUwyLU0yLVMxIHdvdWxkIGNyZWF0ZSAyLWNvbHVtbiBsYXlvdXRzIGZvciBYTCwgTCxcbiAgICAgKiBhbmQgTSBzaXplcyBhbmQgc2luZ2xlLWNvbHVtbiBsYXlvdXQgZm9yIFMgc2l6ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkxheW91dDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogVXNlIGxhYmVsQ29sdW1uTGF5b3V0LCBmaWVsZENvbHVtbkxheW91dCBhbmQgZ2FwQ29sdW1uTGF5b3V0IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBEZWZpbmVzIGZvcm0gZmllbGQgbGFiZWwgcGxhY2VtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxhYmVsTGF5b3V0KHZhbHVlOiBMYWJlbExheW91dCkge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnTGFiZWxMYXlvdXQgaW5wdXQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzIGluc3RlYWQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5sYWJlbENvbHVtbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLl9sYWJlbExheW91dCA9PT0gJ2hvcml6b250YWwnID8gRGVmYXVsdEhvcml6b250YWxMYWJlbExheW91dCA6IERlZmF1bHRWZXJ0aWNhbExhYmVsTGF5b3V0O1xuICAgICAgICB0aGlzLmZpZWxkQ29sdW1uTGF5b3V0ID1cbiAgICAgICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID09PSAnaG9yaXpvbnRhbCcgPyBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0IDogRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG4gICAgfVxuICAgIGdldCBsYWJlbExheW91dCgpOiBMYWJlbExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbExheW91dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxMYWJlbExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdEdhcExheW91dDtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKiBJbmxpbmUgY29sdW1uIGxheW91dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZW1vdmVzIGV4dHJhIGVtcHR5IHJvdy5cbiAgICAgKiBUT0RPOiByZW1vdmUgYWZ0ZXIgIzc1MzMgaGFzIGJlZW4gZml4ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBub0FkZGl0aW9uYWxDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkXG4gICAgICogYW5kIGFsbCBjb250cm9scyBhcmUgaW4gcGxhY2UuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtR3JvdXA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWRcbiAgICAgKiBhbmQgc3VibWl0dGVkLiBDb250YWlucyBmb3JtXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1WYWx1ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmVudCB3aGljaCBub3RpZmllcyBwYXJlbnQgY29tcG9uZW50IHRoYXQgdGhlIGZvcm0gd2FzIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU3VibWl0dGVkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgZm9ybSBpbnN0YW5jZS4gQHNlZSBOZ0Zvcm1cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE5nRm9ybSlcbiAgICBuZ0Zvcm06IE5nRm9ybTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGdyb3VwIGRpcmVjdGl2ZS4gKi9cbiAgICBAVmlld0NoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSlcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGZpZWxkcyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50KVxuICAgIGZpZWxkczogUXVlcnlMaXN0PEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudD47XG5cbiAgICAvKiogQXJyYXkgb2YgZm9ybSBmaWVsZCBjb250cm9scy4gKi9cbiAgICBnZXQgZm9ybUZpZWxkcygpOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkc1xuICAgICAgICAgICAgPy50b0FycmF5KClcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhIWZpZWxkLmZpZWxkUmVuZGVyZXI/LmNvbnRyb2wpXG4gICAgICAgICAgICAubWFwKChmaWVsZCkgPT4gZmllbGQuZmllbGRSZW5kZXJlci5jb250cm9sISk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmb3JtLiBAc2VlIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXG4gICAgICovXG4gICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cDtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiB0aGUgZm9ybSBjb250cm9scy5cbiAgICAgKi9cbiAgICBmb3JtQ29udHJvbEl0ZW1zOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGZsYWdzIHJlcHJlc2VudGluZyBpZiBwYXJ0aWN1bGFyIGZvcm0gaXRlbSBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93RmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogRmxhZyByZXByZXNlbnRpbmcgdGhhdCBmb3JtIGlzIGxvYWRpbmdcbiAgICAgKi9cbiAgICBmb3JtTG9hZGluZyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgZm9ybSBsb2FkaW5nIHN0YXRlLlxuICAgICAqL1xuICAgIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSBvZiBsYXN0IGZvcm0gc3VibWlzc2lvbiBzdGF0dXMuXG4gICAgICovXG4gICAgZm9ybVN1Ym1pdHRlZFN0YXR1cyQgPSBuZXcgU3ViamVjdDxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgbGFzdCBmb3JtIHN1Ym1pc3Npb24gdmFsdWUuXG4gICAgICovXG4gICAgZm9ybVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0Zvcm1WYWx1ZT4oe30pO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUbyBkaWZmZXJlbnRpYXRlIGJldHdlZW4gZmlyc3QgbG9hZGluZyB3aGVuIHNrZWxldG9ucyBiZSBzaG93biBhbmQgc3Vic2VxdWVudCBsb2FkaW5ncyB3aGVuIGJ1c3kgaW5kaWNhdG9yIGJlIHNob3duXG4gICAgICovXG4gICAgX2ZpcnN0TG9hZGluZ0RvbmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBoaW50T3B0aW9uczogSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9lcnJvck1vZGVsczogeyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtVmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xhYmVsTGF5b3V0OiBMYWJlbExheW91dDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ1N1Ym1pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZmdTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9GT1JNX0dFTkVSQVRPUl9ERUZBVUxUX0hJTlRfT1BUSU9OUykgX3Byb3ZpZGVkSGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdEZvcm1HZW5lcmF0b3JIaW50T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLl9wcm92aWRlZEhpbnRPcHRpb25zXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fZXJyb3JNb2RlbHMgPSB0aGlzLl9nZXRFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaGludCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhpbnQgPT09ICdzdHJpbmcnIHx8IHRoaXMuaGludCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLmhpbnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2hlcyBmb3JtIGl0ZW1zIHZpc2liaWxpdHkgd2l0aCAnd2hlbicgY29uZGl0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hTdGVwc1Zpc2liaWxpdHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGFzeW5jIF9vblN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtVmFsdWUodGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWRTdGF0dXMuZW1pdCh7IHN1Y2Nlc3M6ICF0aGlzLmZvcm0uaW52YWxpZCwgdmFsdWU6IGZvcm1WYWx1ZSB9KTtcbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkU3RhdHVzJC5uZXh0KHsgc3VjY2VzczogIXRoaXMuZm9ybS5pbnZhbGlkLCB2YWx1ZTogZm9ybVZhbHVlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZC5lbWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dlbmVyYXRlRm9ybSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgICAgICBjb25zdCBmb3JtID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmdlbmVyYXRlRm9ybSh0aGlzLmZvcm1OYW1lLCB0aGlzLmZvcm1JdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fZm9ybVZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbEl0ZW1zID0gdGhpcy5fZ2V0T3JkZXJlZENvbnRyb2xzKGZvcm0uY29udHJvbHMpO1xuXG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLl9mb3JtVmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2ZpcnN0TG9hZGluZ0RvbmUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLmVtaXQodGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvU3VibWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2luZGV4fV8ke3ZhbHVlLmZvcm1JdGVtLm5hbWV9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9ncmFtbWF0aWNhbGx5IHN1Ym1pdCBmb3JtLlxuICAgICAqIFRoaXMgbWV0aG9kIGFsc28gY2FsbHMgdmFsaWRhdGlvbiBmb3IgdGhlIGZvcm0gaXRlbXMuXG4gICAgICovXG4gICAgc3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5vblN1Ym1pdChuZXcgRXZlbnQoJ3N1Ym1pdCcpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9yZGVyZWRDb250cm9scyhjb250cm9sczogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzKTogKER5bmFtaWNGb3JtQ29udHJvbCB8IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKVtdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLnNvcnQoXG4gICAgICAgICAgICAoYSwgYikgPT4gKGEuZm9ybUl0ZW0/LnJhbmsgPz8gLUluZmluaXR5KSAtIChiLmZvcm1JdGVtPy5yYW5rID8/IC1JbmZpbml0eSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBVc2VkIGZvciBleHRyYWN0aW5nIGhpbnRPcHRpb25zIGZyb20gR3VpT3B0aW9ucy4gVGhpcyB3aWxsIGNvZXJjZSBzdHJpbmcgfCBIaW50T3B0aW9ucyB0byBGaWVsZEhpbnRPcHRpb25zLFxuICAgICAqIHdpbGwgY29tYmluZSBkZWZhdWx0IHZhbHVlIG9mIGhpbnRzIGZvciBmb3JtIGdlbmVyYXRvciB3aXRoIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIGd1aU9wdGlvbnNcbiAgICAgKi9cbiAgICBnZXRIaW50T3B0aW9ucyhcbiAgICAgICAgZ3VpT3B0aW9ucz86IEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHwgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9uc1xuICAgICk6IEZpZWxkSGludE9wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWd1aU9wdGlvbnM/LmhpbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtSXRlbUhpbnRPcHRpb25zID0gZ3VpT3B0aW9ucy5oaW50O1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSBndWlPcHRpb25zLmhpbnRQbGFjZW1lbnQgfHwgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLnBsYWNlbWVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtSXRlbUhpbnRPcHRpb25zID09PSAnc3RyaW5nJyB8fCBmb3JtSXRlbUhpbnRPcHRpb25zIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAuLi5mb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNBZHZhbmNlZEVycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIGVycm9yLmhlYWRpbmcgJiYgZXJyb3IuZGVzY3JpcHRpb24gJiYgZXJyb3IudHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVycm9ycygpOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10ge1xuICAgICAgICBjb25zdCByZXR1cm5FcnJvcnM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCByZWdpc3RlcmVkRXJyb3JzID0gdGhpcy5fZmdTZXJ2aWNlLnZhbGlkYXRpb25FcnJvckhpbnRzO1xuICAgICAgICBPYmplY3QuZW50cmllcyhyZWdpc3RlcmVkRXJyb3JzKS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbZXJyb3JUeXBlLCBlcnJvclZhbHVlXSA9IHR5cGU7XG5cbiAgICAgICAgICAgIHJldHVybkVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVycm9yVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3JzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLm5nU3VibWl0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC5zdGF0dXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0dXM6IEZvcm1Db250cm9sU3RhdHVzKSA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyKChzdGF0dXMpID0+IHN0YXR1cyAhPT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fb25TdWJtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1N1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGZkLWJ1c3ktaW5kaWNhdG9yICpuZ0lmPVwiX2ZpcnN0TG9hZGluZ0RvbmU7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCIgW2xvYWRpbmddPVwiZm9ybUxvYWRpbmdcIiBbYmxvY2tdPVwidHJ1ZVwiPlxuICAgIDxmZHAtZm9ybS1ncm91cFxuICAgICAgICAqbmdJZj1cImZvcm1cIlxuICAgICAgICBbaGludF09XCJoaW50XCJcbiAgICAgICAgW21haW5UaXRsZV09XCJtYWluVGl0bGVcIlxuICAgICAgICBbaGlkZU1haW5USXRsZV09XCJoaWRlTWFpblRJdGxlXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgW2NvbHVtbkxheW91dF09XCJjb2x1bW5MYXlvdXRcIlxuICAgICAgICBbbGFiZWxDb2x1bW5MYXlvdXRdPVwibGFiZWxDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZmllbGRDb2x1bW5MYXlvdXRdPVwiZmllbGRDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZ2FwQ29sdW1uTGF5b3V0XT1cImdhcENvbHVtbkxheW91dFwiXG4gICAgICAgIFt1bmlmaWVkTGF5b3V0XT1cInVuaWZpZWRMYXlvdXRcIlxuICAgICAgICBbaW5saW5lQ29sdW1uTGF5b3V0XT1cImlubGluZUNvbHVtbkxheW91dFwiXG4gICAgICAgIFt1c2VGb3JtXT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgX2Vycm9yTW9kZWxzXCI+XG4gICAgICAgICAgICA8c3BhbiAqZmRwRm9ybUZpZWxkRXJyb3I9XCJlcnJvci50eXBlOyBsZXQgZGlyZWN0aXZlRXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGl2ZUVycm9yLmhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yOyB0eXBlOiBkaXJlY3RpdmVFcnJvci50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmhlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3RpdmVFcnJvci5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb249XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9ySGVhZGluZz1cImxldCB2YWxpZGF0aW9uRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yLnZhbHVlID8gZXJyb3IudmFsdWUgOiB2YWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZm9ybUNvbnRyb2xJdGVtczsgdHJhY2tCeTogX3RyYWNrRm5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09PSAnZmllbGQnID8gZmllbGRSZW5kZXJlciA6IGdyb3VwUmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgZmllbGQ6IGZpZWxkLCBmb3JtRmllbGROYW1lOiBmaWVsZC5mb3JtSXRlbS5uYW1lLCByYW5rOiBmaWVsZC5mb3JtSXRlbT8ucmFuayB8fCAwIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgI2ZpZWxkUmVuZGVyZXJcbiAgICAgICAgICAgICAgICBsZXQtZmllbGQ9XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgbGV0LWZvcm1GaWVsZE5hbWU9XCJmb3JtRmllbGROYW1lXCJcbiAgICAgICAgICAgICAgICBsZXQtZm9ybUdyb3VwTmFtZT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIGxldC1yYW5rPVwicmFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJmaWVsZDsgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3VsZFNob3ddPVwic2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImZvcm1GaWVsZE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVQYXRoXT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwicmFua1wiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dyb3VwUmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgPGZkcC1mb3JtLWZpZWxkLWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJnZXRIaW50T3B0aW9ucyhmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5mb3JtSXRlbS5tZXNzYWdlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmxhYmVsQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmZpZWxkQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2dhcENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5nYXBDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybU5hbWVdPVwiZmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cEZpZWxkIG9mIGZpZWxkIHwgZ2V0T3JkZXJlZEZpZWxkQ29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tncm91cEZpZWxkLmZvcm1JdGVtLm5hbWUhXSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1nZW5lcmF0b3ItZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGdyb3VwRmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImdyb3VwRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdWxkU2hvd109XCJzaG91bGRTaG93RmllbGRzW2dyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZSFdICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImdyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwiZ3JvdXBGaWVsZC5mb3JtSXRlbS5yYW5rIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkcC1mb3JtLWZpZWxkLWdyb3VwPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxmZHAtZm9ybS1maWVsZCAqbmdJZj1cIiFub0FkZGl0aW9uYWxDb250ZW50XCIgW2NvbHVtbl09XCIxXCIgW3JhbmtdPVwiZm9ybUNvbnRyb2xJdGVtcy5sZW5ndGggKyAxXCI+XG4gICAgICAgICAgICA8IS0tIEZvciB1c2VyLWRlZmluZWQgZWxlbWVudHMsIGxpa2Ugc3VibWl0IGJ1dHRvbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9mZHAtZm9ybS1maWVsZD5cbiAgICA8L2ZkcC1mb3JtLWdyb3VwPlxuPC9mZC1idXN5LWluZGljYXRvcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGZkLXNrZWxldG9uIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMHB4XCI+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMFwiIHk9XCIwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIzNSVcIiB5PVwiMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMTUlXCIgaGVpZ2h0PVwiOFwiIC8+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMzUlXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjgwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG4gICAgPC9mZC1za2VsZXRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQVU5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWVqRSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUM3QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSx1Q0FBdUMs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QkFEbEIsS0FBSztnQkFRTixXQUFXO3NCQURWLE1BQU07Z0JBUVAsYUFBYTtzQkFEWixNQUFNO2dCQU9QLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsTUFBTTtnQkFLakIsU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFLN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIENvbHVtbkxheW91dCxcbiAgICBGaWVsZEhpbnRPcHRpb25zLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICBIaW50T3B0aW9ucyxcbiAgICBMYWJlbExheW91dCxcbiAgICBIaW50SW5wdXRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWdlbmVyYXRvci1maWVsZC9mb3JtLWdlbmVyYXRvci1maWVsZC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBCYXNlRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyxcbiAgICBEeW5hbWljRm9ybUl0ZW0sXG4gICAgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyxcbiAgICBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0LFxuICAgIER5bmFtaWNGb3JtVmFsdWVcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICBEeW5hbWljRm9ybUdyb3VwQ29udHJvbCxcbiAgICBEeW5hbWljRm9ybUdyb3VwQ29udHJvbHNcbn0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWdyb3VwJztcbmltcG9ydCB7XG4gICAgRGVmYXVsdEdhcExheW91dCxcbiAgICBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0LFxuICAgIERlZmF1bHRIb3Jpem9udGFsTGFiZWxMYXlvdXQsXG4gICAgRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQsXG4gICAgRGVmYXVsdFZlcnRpY2FsTGFiZWxMYXlvdXRcbn0gZnJvbSAnLi4vLi4vZm9ybS1ncm91cC9jb25zdGFudHMnO1xuaW1wb3J0IHsgRkRQX0ZPUk1fR0VORVJBVE9SX0RFRkFVTFRfSElOVF9PUFRJT05TIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IudG9rZW5zJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtR2VuZXJhdG9ySGludE9wdGlvbnMgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdC1mb3JtLWdlbmVyYXRvci1oaW50LW9wdGlvbnMnO1xuXG5sZXQgZm9ybVVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGNvbnN0IEZEUF9GT1JNX0lHTk9SRURfU1RBVFVTRVM6IEZvcm1Db250cm9sU3RhdHVzW10gPSBbJ0lOVkFMSUQnLCAnUEVORElORycsICdESVNBQkxFRCddO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1Ym1pdEZvcm1FdmVudFJlc3VsdCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEluZGljYXRvciBpZiB2YWxpZGF0aW9uIGhhcyBiZWVuIHBhc3NlZC5cbiAgICAgKi9cbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGb3JtYXR0ZWQgZm9ybSB2YWx1ZS5cbiAgICAgKi9cbiAgICB2YWx1ZTogRHluYW1pY0Zvcm1WYWx1ZSB8IG51bGw7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gR2VuZXJhdG9yIGNvbXBvbmVudCByZXByZXNlbnRzIGEgaGlnaC1sZXZlbCBjb21wb25lbnRcbiAqIHdoaWNoIGluY2x1ZGVzIEBzZWUgRm9ybUdyb3VwIGluc2lkZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZm9ybS1nZW5lcmF0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVW5pcXVlIGZvcm0gbmFtZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybU5hbWUgPSBgZmRwLWZvcm0tZ2VuZXJhdG9yLSR7Zm9ybVVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIEBzZWUgRHluYW1pY0Zvcm1JdGVtIHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpdGVtc1xuICAgICAqIHRvIGJlIHJlbmRlcmVkIGluIHRoZSBmb3JtLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcm1JdGVtcyhmb3JtSXRlbXM6IER5bmFtaWNGb3JtSXRlbVtdKSB7XG4gICAgICAgIGlmICghZm9ybUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9mb3JtSXRlbXMgPSBmb3JtSXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKHsgLi4uaXRlbSwgcmFuazogaXRlbS5yYW5rIHx8IGluZGV4IH0pKTtcbiAgICAgICAgdGhpcy5fZ2VuZXJhdGVGb3JtKCk7XG4gICAgfVxuICAgIGdldCBmb3JtSXRlbXMoKTogRHluYW1pY0Zvcm1JdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGb3JtIG1haW4gdGl0bGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYWluVGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGhpZGUgbWFpbiB0aXRsZS4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVNYWluVEl0bGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEhpbnQgZm9yIHRoZSBtYWluIHRpdGxlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaW50OiBIaW50SW5wdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3BlY2lmeSB0aGUgY29sdW1uIGxheW91dCBpbiB0aGUgZm9ybWF0IGBYTG4tTG4tTW4tU25gXG4gICAgICogd2hlcmUgbiBpcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIGNhbiBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggc2l6ZS5cbiAgICAgKiBlZzogWEwyLUwyLU0yLVMxIHdvdWxkIGNyZWF0ZSAyLWNvbHVtbiBsYXlvdXRzIGZvciBYTCwgTCxcbiAgICAgKiBhbmQgTSBzaXplcyBhbmQgc2luZ2xlLWNvbHVtbiBsYXlvdXQgZm9yIFMgc2l6ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkxheW91dDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogVXNlIGxhYmVsQ29sdW1uTGF5b3V0LCBmaWVsZENvbHVtbkxheW91dCBhbmQgZ2FwQ29sdW1uTGF5b3V0IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBEZWZpbmVzIGZvcm0gZmllbGQgbGFiZWwgcGxhY2VtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxhYmVsTGF5b3V0KHZhbHVlOiBMYWJlbExheW91dCkge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnTGFiZWxMYXlvdXQgaW5wdXQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzIGluc3RlYWQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5sYWJlbENvbHVtbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLl9sYWJlbExheW91dCA9PT0gJ2hvcml6b250YWwnID8gRGVmYXVsdEhvcml6b250YWxMYWJlbExheW91dCA6IERlZmF1bHRWZXJ0aWNhbExhYmVsTGF5b3V0O1xuICAgICAgICB0aGlzLmZpZWxkQ29sdW1uTGF5b3V0ID1cbiAgICAgICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID09PSAnaG9yaXpvbnRhbCcgPyBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0IDogRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG4gICAgfVxuICAgIGdldCBsYWJlbExheW91dCgpOiBMYWJlbExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbExheW91dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxMYWJlbExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdEdhcExheW91dDtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKiBJbmxpbmUgY29sdW1uIGxheW91dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZW1vdmVzIGV4dHJhIGVtcHR5IHJvdy5cbiAgICAgKiBUT0RPOiByZW1vdmUgYWZ0ZXIgIzc1MzMgaGFzIGJlZW4gZml4ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBub0FkZGl0aW9uYWxDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkXG4gICAgICogYW5kIGFsbCBjb250cm9scyBhcmUgaW4gcGxhY2UuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtR3JvdXA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWRcbiAgICAgKiBhbmQgc3VibWl0dGVkLiBDb250YWlucyBmb3JtXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1WYWx1ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmVudCB3aGljaCBub3RpZmllcyBwYXJlbnQgY29tcG9uZW50IHRoYXQgdGhlIGZvcm0gd2FzIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU3VibWl0dGVkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgZm9ybSBpbnN0YW5jZS4gQHNlZSBOZ0Zvcm1cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE5nRm9ybSlcbiAgICBuZ0Zvcm06IE5nRm9ybTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGdyb3VwIGRpcmVjdGl2ZS4gKi9cbiAgICBAVmlld0NoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSlcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGZpZWxkcyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50KVxuICAgIGZpZWxkczogUXVlcnlMaXN0PEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudD47XG5cbiAgICAvKiogQXJyYXkgb2YgZm9ybSBmaWVsZCBjb250cm9scy4gKi9cbiAgICBnZXQgZm9ybUZpZWxkcygpOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkc1xuICAgICAgICAgICAgPy50b0FycmF5KClcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhIWZpZWxkLmZpZWxkUmVuZGVyZXI/LmNvbnRyb2wpXG4gICAgICAgICAgICAubWFwKChmaWVsZCkgPT4gZmllbGQuZmllbGRSZW5kZXJlci5jb250cm9sISk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmb3JtLiBAc2VlIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXG4gICAgICovXG4gICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cDtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiB0aGUgZm9ybSBjb250cm9scy5cbiAgICAgKi9cbiAgICBmb3JtQ29udHJvbEl0ZW1zOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGZsYWdzIHJlcHJlc2VudGluZyBpZiBwYXJ0aWN1bGFyIGZvcm0gaXRlbSBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93RmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogRmxhZyByZXByZXNlbnRpbmcgdGhhdCBmb3JtIGlzIGxvYWRpbmdcbiAgICAgKi9cbiAgICBmb3JtTG9hZGluZyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgZm9ybSBsb2FkaW5nIHN0YXRlLlxuICAgICAqL1xuICAgIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSBvZiBsYXN0IGZvcm0gc3VibWlzc2lvbiBzdGF0dXMuXG4gICAgICovXG4gICAgZm9ybVN1Ym1pdHRlZFN0YXR1cyQgPSBuZXcgU3ViamVjdDxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgbGFzdCBmb3JtIHN1Ym1pc3Npb24gdmFsdWUuXG4gICAgICovXG4gICAgZm9ybVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0Zvcm1WYWx1ZT4oe30pO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUbyBkaWZmZXJlbnRpYXRlIGJldHdlZW4gZmlyc3QgbG9hZGluZyB3aGVuIHNrZWxldG9ucyBiZSBzaG93biBhbmQgc3Vic2VxdWVudCBsb2FkaW5ncyB3aGVuIGJ1c3kgaW5kaWNhdG9yIGJlIHNob3duXG4gICAgICovXG4gICAgX2ZpcnN0TG9hZGluZ0RvbmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBoaW50T3B0aW9uczogSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9lcnJvck1vZGVsczogeyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtVmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xhYmVsTGF5b3V0OiBMYWJlbExheW91dDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ1N1Ym1pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZmdTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9GT1JNX0dFTkVSQVRPUl9ERUZBVUxUX0hJTlRfT1BUSU9OUykgX3Byb3ZpZGVkSGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdEZvcm1HZW5lcmF0b3JIaW50T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLl9wcm92aWRlZEhpbnRPcHRpb25zXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fZXJyb3JNb2RlbHMgPSB0aGlzLl9nZXRFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaGludCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhpbnQgPT09ICdzdHJpbmcnIHx8IHRoaXMuaGludCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLmhpbnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2hlcyBmb3JtIGl0ZW1zIHZpc2liaWxpdHkgd2l0aCAnd2hlbicgY29uZGl0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hTdGVwc1Zpc2liaWxpdHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGFzeW5jIF9vblN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtVmFsdWUodGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWRTdGF0dXMuZW1pdCh7IHN1Y2Nlc3M6ICF0aGlzLmZvcm0uaW52YWxpZCwgdmFsdWU6IGZvcm1WYWx1ZSB9KTtcbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkU3RhdHVzJC5uZXh0KHsgc3VjY2VzczogIXRoaXMuZm9ybS5pbnZhbGlkLCB2YWx1ZTogZm9ybVZhbHVlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZC5lbWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dlbmVyYXRlRm9ybSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgICAgICBjb25zdCBmb3JtID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmdlbmVyYXRlRm9ybSh0aGlzLmZvcm1OYW1lLCB0aGlzLmZvcm1JdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fZm9ybVZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbEl0ZW1zID0gdGhpcy5fZ2V0T3JkZXJlZENvbnRyb2xzKGZvcm0uY29udHJvbHMpO1xuXG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLl9mb3JtVmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2ZpcnN0TG9hZGluZ0RvbmUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLmVtaXQodGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvU3VibWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2luZGV4fV8ke3ZhbHVlLmZvcm1JdGVtLm5hbWV9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9ncmFtbWF0aWNhbGx5IHN1Ym1pdCBmb3JtLlxuICAgICAqIFRoaXMgbWV0aG9kIGFsc28gY2FsbHMgdmFsaWRhdGlvbiBmb3IgdGhlIGZvcm0gaXRlbXMuXG4gICAgICovXG4gICAgc3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5vblN1Ym1pdChuZXcgRXZlbnQoJ3N1Ym1pdCcpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9yZGVyZWRDb250cm9scyhjb250cm9sczogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzKTogKER5bmFtaWNGb3JtQ29udHJvbCB8IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKVtdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLnNvcnQoXG4gICAgICAgICAgICAoYSwgYikgPT4gKGEuZm9ybUl0ZW0/LnJhbmsgPz8gLUluZmluaXR5KSAtIChiLmZvcm1JdGVtPy5yYW5rID8/IC1JbmZpbml0eSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBVc2VkIGZvciBleHRyYWN0aW5nIGhpbnRPcHRpb25zIGZyb20gR3VpT3B0aW9ucy4gVGhpcyB3aWxsIGNvZXJjZSBzdHJpbmcgfCBIaW50T3B0aW9ucyB0byBGaWVsZEhpbnRPcHRpb25zLFxuICAgICAqIHdpbGwgY29tYmluZSBkZWZhdWx0IHZhbHVlIG9mIGhpbnRzIGZvciBmb3JtIGdlbmVyYXRvciB3aXRoIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAgICogQHBhcmFtIGd1aU9wdGlvbnNcbiAgICAgKi9cbiAgICBnZXRIaW50T3B0aW9ucyhcbiAgICAgICAgZ3VpT3B0aW9ucz86IEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHwgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9uc1xuICAgICk6IEZpZWxkSGludE9wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWd1aU9wdGlvbnM/LmhpbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtSXRlbUhpbnRPcHRpb25zID0gZ3VpT3B0aW9ucy5oaW50O1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSBndWlPcHRpb25zLmhpbnRQbGFjZW1lbnQgfHwgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLnBsYWNlbWVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtSXRlbUhpbnRPcHRpb25zID09PSAnc3RyaW5nJyB8fCBmb3JtSXRlbUhpbnRPcHRpb25zIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICAuLi5mb3JtSXRlbUhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNBZHZhbmNlZEVycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIGVycm9yLmhlYWRpbmcgJiYgZXJyb3IuZGVzY3JpcHRpb24gJiYgZXJyb3IudHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVycm9ycygpOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10ge1xuICAgICAgICBjb25zdCByZXR1cm5FcnJvcnM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCByZWdpc3RlcmVkRXJyb3JzID0gdGhpcy5fZmdTZXJ2aWNlLnZhbGlkYXRpb25FcnJvckhpbnRzO1xuICAgICAgICBPYmplY3QuZW50cmllcyhyZWdpc3RlcmVkRXJyb3JzKS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbZXJyb3JUeXBlLCBlcnJvclZhbHVlXSA9IHR5cGU7XG5cbiAgICAgICAgICAgIHJldHVybkVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVycm9yVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3JzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLm5nU3VibWl0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC5zdGF0dXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0dXM6IEZvcm1Db250cm9sU3RhdHVzKSA9PiBzdGF0dXMgIT09ICdQRU5ESU5HJyksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyKChzdGF0dXMpID0+IHN0YXR1cyAhPT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fb25TdWJtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1N1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGZkLWJ1c3ktaW5kaWNhdG9yICpuZ0lmPVwiX2ZpcnN0TG9hZGluZ0RvbmU7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCIgW2xvYWRpbmddPVwiZm9ybUxvYWRpbmdcIiBbYmxvY2tdPVwidHJ1ZVwiPlxuICAgIDxmZHAtZm9ybS1ncm91cFxuICAgICAgICAqbmdJZj1cImZvcm1cIlxuICAgICAgICBbaGludF09XCJoaW50XCJcbiAgICAgICAgW21haW5UaXRsZV09XCJtYWluVGl0bGVcIlxuICAgICAgICBbaGlkZU1haW5USXRsZV09XCJoaWRlTWFpblRJdGxlXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgW2NvbHVtbkxheW91dF09XCJjb2x1bW5MYXlvdXRcIlxuICAgICAgICBbbGFiZWxDb2x1bW5MYXlvdXRdPVwibGFiZWxDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZmllbGRDb2x1bW5MYXlvdXRdPVwiZmllbGRDb2x1bW5MYXlvdXRcIlxuICAgICAgICBbZ2FwQ29sdW1uTGF5b3V0XT1cImdhcENvbHVtbkxheW91dFwiXG4gICAgICAgIFt1bmlmaWVkTGF5b3V0XT1cInVuaWZpZWRMYXlvdXRcIlxuICAgICAgICBbaW5saW5lQ29sdW1uTGF5b3V0XT1cImlubGluZUNvbHVtbkxheW91dFwiXG4gICAgICAgIFt1c2VGb3JtXT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgX2Vycm9yTW9kZWxzXCI+XG4gICAgICAgICAgICA8c3BhbiAqZmRwRm9ybUZpZWxkRXJyb3I9XCJlcnJvci50eXBlOyBsZXQgZGlyZWN0aXZlRXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGl2ZUVycm9yLmhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yOyB0eXBlOiBkaXJlY3RpdmVFcnJvci50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmhlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3RpdmVFcnJvci5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb249XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2lzQWR2YW5jZWRFcnJvcihkaXJlY3RpdmVFcnJvcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9ySGVhZGluZz1cImxldCB2YWxpZGF0aW9uRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yLnZhbHVlID8gZXJyb3IudmFsdWUgOiB2YWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZm9ybUNvbnRyb2xJdGVtczsgdHJhY2tCeTogX3RyYWNrRm5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09PSAnZmllbGQnID8gZmllbGRSZW5kZXJlciA6IGdyb3VwUmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgZmllbGQ6IGZpZWxkLCBmb3JtRmllbGROYW1lOiBmaWVsZC5mb3JtSXRlbS5uYW1lLCByYW5rOiBmaWVsZC5mb3JtSXRlbT8ucmFuayB8fCAwIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgI2ZpZWxkUmVuZGVyZXJcbiAgICAgICAgICAgICAgICBsZXQtZmllbGQ9XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgbGV0LWZvcm1GaWVsZE5hbWU9XCJmb3JtRmllbGROYW1lXCJcbiAgICAgICAgICAgICAgICBsZXQtZm9ybUdyb3VwTmFtZT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIGxldC1yYW5rPVwicmFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJmaWVsZDsgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3VsZFNob3ddPVwic2hvdWxkU2hvd0ZpZWxkc1tmaWVsZC5mb3JtSXRlbS5uYW1lXSAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImZvcm1GaWVsZE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVQYXRoXT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwicmFua1wiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dyb3VwUmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgPGZkcC1mb3JtLWZpZWxkLWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJnZXRIaW50T3B0aW9ucyhmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5mb3JtSXRlbS5tZXNzYWdlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmxhYmVsQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkQ29sdW1uTGF5b3V0XT1cImZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnM/LmZpZWxkQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2dhcENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5nYXBDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybU5hbWVdPVwiZmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cEZpZWxkIG9mIGZpZWxkIHwgZ2V0T3JkZXJlZEZpZWxkQ29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZmRwRHluYW1pY0Zvcm1Db250cm9sRmllbGQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzogc2hvdWxkU2hvd0ZpZWxkc1tncm91cEZpZWxkLmZvcm1JdGVtLm5hbWUhXSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1nZW5lcmF0b3ItZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRPcHRpb25zXT1cImdldEhpbnRPcHRpb25zKGdyb3VwRmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImdyb3VwRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdWxkU2hvd109XCJzaG91bGRTaG93RmllbGRzW2dyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZSFdICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRmllbGROYW1lXT1cImdyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwiZ3JvdXBGaWVsZC5mb3JtSXRlbS5yYW5rIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvci1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkcC1mb3JtLWZpZWxkLWdyb3VwPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxmZHAtZm9ybS1maWVsZCAqbmdJZj1cIiFub0FkZGl0aW9uYWxDb250ZW50XCIgW2NvbHVtbl09XCIxXCIgW3JhbmtdPVwiZm9ybUNvbnRyb2xJdGVtcy5sZW5ndGggKyAxXCI+XG4gICAgICAgICAgICA8IS0tIEZvciB1c2VyLWRlZmluZWQgZWxlbWVudHMsIGxpa2Ugc3VibWl0IGJ1dHRvbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9mZHAtZm9ybS1maWVsZD5cbiAgICA8L2ZkcC1mb3JtLWdyb3VwPlxuPC9mZC1idXN5LWluZGljYXRvcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGZkLXNrZWxldG9uIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMHB4XCIgc3R5bGU9XCJwYWRkaW5nOiAxcmVtXCI+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMFwiIHk9XCIwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIzNSVcIiB5PVwiMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMTUlXCIgaGVpZ2h0PVwiOFwiIC8+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMzUlXCIgeT1cIjIwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjgwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG4gICAgPC9mZC1za2VsZXRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -45,9 +45,9 @@ export class FormGeneratorComponentsAccessorService {
|
|
|
45
45
|
return this._formComponentDefinitions.find((c) => c.types?.includes(type));
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
FormGeneratorComponentsAccessorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
49
|
-
FormGeneratorComponentsAccessorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
48
|
+
FormGeneratorComponentsAccessorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorComponentsAccessorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
FormGeneratorComponentsAccessorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorComponentsAccessorService });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorComponentsAccessorService, decorators: [{
|
|
51
51
|
type: Injectable
|
|
52
52
|
}] });
|
|
53
53
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3ItY29tcG9uZW50cy1hY2Nlc3Nvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3ItY29tcG9uZW50cy1hY2Nlc3Nvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRzNFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sc0NBQXNDO0lBRG5EO1FBRUk7O1dBRUc7UUFDSyw4QkFBeUIsR0FBOEIsdUJBQXVCLENBQUM7S0EyQzFGO0lBekNHOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsU0FBZ0QsRUFBRSxLQUFlO1FBQzFFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzNFLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNDLENBQUM7UUFFRixJQUFJLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDOUUsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELGtIQUFrSDtRQUNsSCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuRSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM1QyxDQUFDO1FBRUYsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEQsaUJBQWlCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7WUFDaEMsS0FBSztZQUNMLFNBQVM7U0FDWixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDRCQUE0QixDQUFDLElBQVk7UUFDckMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O21JQTlDUSxzQ0FBc0M7dUlBQXRDLHNDQUFzQzsyRkFBdEMsc0NBQXNDO2tCQURsRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvZm9ybS1jb21wb25lbnQtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBERUZBVUxUX0NPTVBPTkVOVFNfTElTVCB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtY29tcG9uZW50cy1saXN0JztcbmltcG9ydCB7IEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2wgfSBmcm9tICcuL2Jhc2UtZHluYW1pYy1mb3JtLWdlbmVyYXRvci1jb250cm9sJztcblxuLyoqXG4gKiBTaW5jZSBmb3JtIGdlbmVyYXRvciBzZXJ2aWNlIG1vc3QgcHJvYmFibHkgd2lsbCBiZSBwcm92aWRlZCBieSBwYXJlbnQgY29tcG9uZW50LFxuICogc28gdGhhdCBmb3JtcyBtYXAgZG9lcyBub3QgaW50ZXJmZXJlIHdpdGggb3RoZXIgZm9ybSBnZW5lcmF0b3JzLFxuICogQ29tcG9uZW50cyBBY2Nlc3NvciBpcyBhIHNlcGFyYXRlIHNlcnZpY2Ugd2l0aCBhIGdsb2JhbCBzY29wZSwgd2hpY2ggY2FuIGJlIGFsc28gcHJvdmlkZWQgcGVyIGNvbXBvbmVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0b3JDb21wb25lbnRzQWNjZXNzb3JTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybUNvbXBvbmVudERlZmluaXRpb25zOiBGb3JtQ29tcG9uZW50RGVmaW5pdGlvbltdID0gREVGQVVMVF9DT01QT05FTlRTX0xJU1Q7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkcyBjdXN0b20gY29tcG9uZW50IHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBjb21wb25lbnRzIGZvciB0aGUgZm9ybSBnZW5lcmF0b3IgaXRlbXMuXG4gICAgICogQHBhcmFtIGNvbXBvbmVudCBBbmd1bGFyIGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0gdHlwZXMgdHlwZXMgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKi9cbiAgICBhZGRDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2w+LCB0eXBlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYmVzdE1hdGNoQ29tcG9uZW50SW5kZXggPSB0aGlzLl9mb3JtQ29tcG9uZW50RGVmaW5pdGlvbnMuZmluZEluZGV4KChjKSA9PlxuICAgICAgICAgICAgYy50eXBlcz8uZXZlcnkoKHQpID0+IHR5cGVzLmluY2x1ZGVzKHQpKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChiZXN0TWF0Y2hDb21wb25lbnRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtQ29tcG9uZW50RGVmaW5pdGlvbnNbYmVzdE1hdGNoQ29tcG9uZW50SW5kZXhdLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgY29tcG9uZW50IGluIHR5cGVzIGtleS4gVGhlcmUgbWlnaHQgYmUgc29tZSB1bmlxdWUgY2FzZXMgd2hlbiBuZXcgY29tcG9uZW50IG1pZ2h0IHJlcGxhY2UgbXVsdGlwbGUuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nQ29tcG9uZW50cyA9IHRoaXMuX2Zvcm1Db21wb25lbnREZWZpbml0aW9ucy5maWx0ZXIoKGMpID0+XG4gICAgICAgICAgICBjLnR5cGVzPy5maWx0ZXIoKHQpID0+IHR5cGVzLmluY2x1ZGVzKHQpKVxuICAgICAgICApO1xuXG4gICAgICAgIGV4aXN0aW5nQ29tcG9uZW50cy5mb3JFYWNoKChleGlzdGluZ0NvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGV4aXN0aW5nQ29tcG9uZW50LnR5cGVzID0gZXhpc3RpbmdDb21wb25lbnQudHlwZXM/LmZpbHRlcigodCkgPT4gIXR5cGVzLmluY2x1ZGVzKHQpKTtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db21wb25lbnREZWZpbml0aW9uc1tpbmRleF0gPSBleGlzdGluZ0NvbXBvbmVudDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybUNvbXBvbmVudERlZmluaXRpb25zLnB1c2goe1xuICAgICAgICAgICAgdHlwZXMsXG4gICAgICAgICAgICBjb21wb25lbnRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgYmVzdC1tYXRjaGVkIGNvbXBvbmVudCBiYXNlZCBvbiBwcm92aWRlZCBgdHlwZWAgYXJndW1lbnRcbiAgICAgKiBAcGFyYW0gdHlwZSBmb3JtIGl0ZW0gdHlwZVxuICAgICAqIEByZXR1cm5zIEBzZWUgRm9ybUNvbXBvbmVudERlZmluaXRpb24gQ29tcG9uZW50IGRlZmluaXRpb24gZm9yIHRoZSBmb3JtIGl0ZW1cbiAgICAgKi9cbiAgICBnZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKHR5cGU6IHN0cmluZyk6IEZvcm1Db21wb25lbnREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Db21wb25lbnREZWZpbml0aW9ucy5maW5kKChjKSA9PiBjLnR5cGVzPy5pbmNsdWRlcyh0eXBlKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -71,9 +71,9 @@ export class FormGeneratorFieldComponent {
|
|
|
71
71
|
return error.heading && error.description && error.type;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
FormGeneratorFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
75
|
-
FormGeneratorFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
74
|
+
FormGeneratorFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorFieldComponent, deps: [{ token: i1.FormGeneratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
FormGeneratorFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: { field: "field", form: "form", i18n: "i18n", formFieldName: "formFieldName", formGroupNamePath: "formGroupNamePath", rank: "rank", shouldShow: "shouldShow", hintOptions: "hintOptions" }, providers: [formFieldProvider, formGroupChildProvider], viewQueries: [{ propertyName: "fieldRenderer", first: true, predicate: i0.forwardRef(function () { return FormFieldComponent; }), descendants: true }], ngImport: i0, template: "<fdp-form-field\n [hint]=\"hintOptions\"\n [placeholder]=\"_placeholder\"\n [id]=\"field.formItem.id || formFieldName\"\n [column]=\"field.formItem.guiOptions?.column || 1\"\n [columnLayout]=\"field.formItem.guiOptions?.columnLayout\"\n [colon]=\"field.formItem.guiOptions?.appendColon === true\"\n [label]=\"field.formItem.message\"\n [validators]=\"field.formItem.validators || []\"\n [required]=\"field.formItem.required\"\n [rank]=\"rank\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [noLabelLayout]=\"field.formItem.guiOptions?.noLabelLayout || false\"\n [formGroup]=\"form\"\n #formField\n>\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container\n [formField]=\"formField\"\n [form]=\"form\"\n [formGroupNamePath]=\"formGroupNamePath\"\n fdpDynamicFormControl\n [id]=\"field.formItem.id || formFieldName\"\n [name]=\"formFieldName\"\n [formItem]=\"field.formItem\"\n >\n </ng-container>\n</fdp-form-field>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hintPlacement", "hint", "labelLayout", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "directive", type: i4.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i5.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i6.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.DynamicFormControlDirective, selector: "[fdpDynamicFormControl]", inputs: ["formItem", "id", "name", "form", "formGroupNamePath", "formField"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorFieldComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{ selector: 'fdp-form-generator-field', providers: [formFieldProvider, formGroupChildProvider], encapsulation: ViewEncapsulation.None, template: "<fdp-form-field\n [hint]=\"hintOptions\"\n [placeholder]=\"_placeholder\"\n [id]=\"field.formItem.id || formFieldName\"\n [column]=\"field.formItem.guiOptions?.column || 1\"\n [columnLayout]=\"field.formItem.guiOptions?.columnLayout\"\n [colon]=\"field.formItem.guiOptions?.appendColon === true\"\n [label]=\"field.formItem.message\"\n [validators]=\"field.formItem.validators || []\"\n [required]=\"field.formItem.required\"\n [rank]=\"rank\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [noLabelLayout]=\"field.formItem.guiOptions?.noLabelLayout || false\"\n [formGroup]=\"form\"\n #formField\n>\n <ng-container *ngFor=\"let error of _errorModels\">\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n <ng-container *ngIf=\"_isAdvancedError(directiveError)\">\n <ng-container *ngIf=\"directiveError.heading\">\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"directiveError.description\">\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!_isAdvancedError(directiveError)\">\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n </ng-container>\n </span>\n </ng-container>\n <ng-container\n [formField]=\"formField\"\n [form]=\"form\"\n [formGroupNamePath]=\"formGroupNamePath\"\n fdpDynamicFormControl\n [id]=\"field.formItem.id || formFieldName\"\n [name]=\"formFieldName\"\n [formItem]=\"field.formItem\"\n >\n </ng-container>\n</fdp-form-field>\n" }]
|
|
79
79
|
}], ctorParameters: function () { return [{ type: i1.FormGeneratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { field: [{
|
|
@@ -383,9 +383,9 @@ export class FormGeneratorService {
|
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
|
-
FormGeneratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
387
|
-
FormGeneratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
386
|
+
FormGeneratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", 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 });
|
|
387
|
+
FormGeneratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorService });
|
|
388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGeneratorService, decorators: [{
|
|
389
389
|
type: Injectable
|
|
390
390
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.FormGeneratorComponentsAccessorService }, { type: undefined, decorators: [{
|
|
391
391
|
type: Optional
|
|
@@ -7,9 +7,9 @@ export class GetOrderedFieldControlsPipe {
|
|
|
7
7
|
return Object.values(field.controls).sort((a, b) => (a.formItem.rank ?? -Infinity) > (b.formItem.rank ?? -Infinity) ? 1 : -1);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
GetOrderedFieldControlsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
GetOrderedFieldControlsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
10
|
+
GetOrderedFieldControlsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GetOrderedFieldControlsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
11
|
+
GetOrderedFieldControlsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: GetOrderedFieldControlsPipe, name: "getOrderedFieldControls" });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GetOrderedFieldControlsPipe, decorators: [{
|
|
13
13
|
type: Pipe,
|
|
14
14
|
args: [{ name: 'getOrderedFieldControls' }]
|
|
15
15
|
}] });
|
|
@@ -7,14 +7,14 @@ export class DeprecatedFormGroupCompactDirective extends DeprecatedCompactDirect
|
|
|
7
7
|
super('fdp-form-group');
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
DeprecatedFormGroupCompactDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
DeprecatedFormGroupCompactDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
+
DeprecatedFormGroupCompactDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedFormGroupCompactDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
11
|
+
DeprecatedFormGroupCompactDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedFormGroupCompactDirective, selector: "fdp-form-group[compact]", providers: [
|
|
12
12
|
{
|
|
13
13
|
provide: CONTENT_DENSITY_DIRECTIVE,
|
|
14
14
|
useExisting: forwardRef(() => DeprecatedFormGroupCompactDirective)
|
|
15
15
|
}
|
|
16
16
|
], usesInheritance: true, ngImport: i0 });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedFormGroupCompactDirective, decorators: [{
|
|
18
18
|
type: Directive,
|
|
19
19
|
args: [{
|
|
20
20
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -34,8 +34,8 @@ const EXPORTABLE_DECLARATIONS = [
|
|
|
34
34
|
];
|
|
35
35
|
export class FdpFormGroupModule {
|
|
36
36
|
}
|
|
37
|
-
FdpFormGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
38
|
-
FdpFormGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
37
|
+
FdpFormGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FdpFormGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
38
|
+
FdpFormGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FdpFormGroupModule, declarations: [FormGroupComponent,
|
|
39
39
|
FormFieldComponent,
|
|
40
40
|
InputMessageGroupWithTemplate,
|
|
41
41
|
FormFieldGroupComponent,
|
|
@@ -64,7 +64,7 @@ FdpFormGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
64
64
|
FormFieldErrorDirective,
|
|
65
65
|
FormFieldErrorHeadingDirective,
|
|
66
66
|
FormFieldErrorDescriptionDirective, ContentDensityModule] });
|
|
67
|
-
FdpFormGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
67
|
+
FdpFormGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FdpFormGroupModule, imports: [CommonModule,
|
|
68
68
|
FormsModule,
|
|
69
69
|
ReactiveFormsModule,
|
|
70
70
|
FdFormModule,
|
|
@@ -73,7 +73,7 @@ FdpFormGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
|
|
|
73
73
|
IconModule,
|
|
74
74
|
LinkModule,
|
|
75
75
|
ContentDensityModule, ContentDensityModule] });
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FdpFormGroupModule, decorators: [{
|
|
77
77
|
type: NgModule,
|
|
78
78
|
args: [{
|
|
79
79
|
declarations: [...EXPORTABLE_DECLARATIONS],
|