barsa-sap-ui 2.0.135 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +4 -4
- package/esm2022/lib/avatar-size.pipe.mjs +4 -4
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +4 -4
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +4 -4
- package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +4 -4
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +8 -7
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +4 -4
- package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +4 -4
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +4 -4
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +4 -4
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +4 -4
- package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +4 -4
- package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +4 -4
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +4 -4
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +4 -4
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +4 -4
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +4 -4
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +4 -4
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +4 -4
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +4 -4
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +4 -4
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +4 -4
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +4 -4
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +4 -4
- package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +4 -4
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +4 -4
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +4 -4
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +5 -5
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +4 -4
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +4 -4
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +4 -4
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +4 -4
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +4 -4
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +4 -4
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +4 -4
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +4 -4
- package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +4 -4
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +4 -4
- package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +4 -4
- package/esm2022/lib/barsa-sap-ui-routing.module.mjs +5 -5
- package/esm2022/lib/barsa-sap-ui.module.mjs +10 -6
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +4 -4
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +4 -4
- package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +4 -4
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +4 -4
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +4 -4
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +4 -4
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +4 -4
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +4 -4
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +4 -4
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +4 -4
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +4 -4
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +4 -4
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +4 -4
- package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +4 -4
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +4 -4
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/lib/captcha-field/captcha-field.component.mjs +4 -4
- package/esm2022/lib/card-item/card-item.component.mjs +4 -4
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +4 -4
- package/esm2022/lib/col-renderer.directive.mjs +4 -4
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +4 -4
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +4 -4
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +4 -4
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +4 -4
- package/esm2022/lib/device-info-field-base.mjs +4 -4
- package/esm2022/lib/dialog-handler.directive.mjs +4 -4
- package/esm2022/lib/download-files.directive.mjs +4 -4
- package/esm2022/lib/dynamic-page-size.pipe.mjs +4 -4
- package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +4 -4
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +4 -4
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +4 -4
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +4 -4
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +4 -4
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +4 -4
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +4 -4
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +4 -4
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +4 -4
- package/esm2022/lib/fullscreen-dialog.directive.mjs +4 -4
- package/esm2022/lib/fullscreen-files.directive.mjs +4 -4
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +29 -31
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +4 -4
- package/esm2022/lib/global-search/global-search.component.mjs +4 -4
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +4 -4
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +4 -4
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +4 -4
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +4 -4
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +4 -4
- package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +4 -4
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +4 -4
- package/esm2022/lib/layout-control/layout-control.component.mjs +4 -4
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +4 -4
- package/esm2022/lib/list-item/list-item.component.mjs +4 -4
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +4 -4
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +4 -4
- package/esm2022/lib/ly-label/ly-label.component.mjs +4 -4
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +4 -4
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +4 -4
- package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +4 -4
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +4 -4
- package/esm2022/lib/ly-line/ly-line.component.mjs +4 -4
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +4 -4
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +11 -18
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +4 -4
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +4 -4
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +4 -4
- package/esm2022/lib/mask/mask.component.mjs +4 -4
- package/esm2022/lib/message-strip/message-strip.component.mjs +4 -4
- package/esm2022/lib/no-data/no-data.component.mjs +4 -4
- package/esm2022/lib/notification-item/notification-item.component.mjs +4 -4
- package/esm2022/lib/notification-popup.service.mjs +4 -4
- package/esm2022/lib/object-status-icon.pipe.mjs +4 -4
- package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +4 -4
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +4 -4
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +4 -4
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +4 -4
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +4 -4
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +4 -4
- package/esm2022/lib/report-tree-base.mjs +4 -4
- package/esm2022/lib/report-view-renderer.directive.mjs +4 -4
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +4 -4
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +4 -4
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +4 -4
- package/esm2022/lib/sap-font-class.pipe.mjs +4 -4
- package/esm2022/lib/sap-font.pipe.mjs +4 -4
- package/esm2022/lib/sap-size.pipe.mjs +4 -4
- package/esm2022/lib/sap-ui-report-base.component.mjs +4 -4
- package/esm2022/lib/search-panel/search-panel.component.mjs +4 -4
- package/esm2022/lib/static-text/static-text.component.mjs +4 -4
- package/esm2022/lib/table-th.directive.mjs +4 -4
- package/esm2022/lib/title/title.component.mjs +4 -4
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +4 -4
- package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +4 -4
- package/esm2022/lib/ui-button/ui-button.component.mjs +4 -4
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +4 -4
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +7 -7
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +6 -6
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +4 -4
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +4 -4
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +4 -4
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +4 -4
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +4 -4
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +4 -4
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +4 -4
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +4 -4
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +4 -4
- package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +4 -4
- package/esm2022/lib/ui-graph/ui-graph.component.mjs +4 -4
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +4 -4
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +4 -4
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +4 -4
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +4 -4
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +4 -4
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +4 -4
- package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +4 -4
- package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +4 -4
- package/esm2022/lib/ui-label/ui-label.component.mjs +4 -4
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +4 -4
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +4 -4
- package/esm2022/lib/ui-map/ui-map.component.mjs +4 -4
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +4 -4
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +4 -4
- package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +4 -4
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +4 -4
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +4 -4
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +4 -4
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +4 -4
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +4 -4
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +4 -4
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +4 -4
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +4 -4
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +4 -4
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +4 -4
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +4 -4
- package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +4 -4
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +4 -4
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +4 -4
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +4 -4
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +4 -4
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +4 -4
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +4 -4
- package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +4 -4
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +4 -4
- package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +4 -4
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +4 -4
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +4 -4
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +4 -4
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +4 -4
- package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +4 -4
- package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +4 -4
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +4 -4
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +4 -4
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +4 -4
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +4 -4
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +4 -4
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +4 -4
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +4 -4
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +4 -4
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +4 -4
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +4 -4
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +4 -4
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +4 -4
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +4 -4
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +4 -4
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +4 -4
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +4 -4
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +4 -4
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +4 -4
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +4 -4
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +4 -4
- package/esm2022/lib/upload-file-status.pipe.mjs +4 -4
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +4 -4
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +4 -4
- package/esm2022/lib/wizard-layout.directive.mjs +4 -4
- package/fesm2022/barsa-sap-ui.mjs +710 -715
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-sap-ui.module.d.ts +5 -4
- package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +3 -3
- package/lib/ly-tab-container/ly-tab-container.component.d.ts +2 -4
- package/lib/ly-tab-page/ly-tab-page.component.d.ts +2 -2
- package/lib/report-view-renderer.directive.d.ts +1 -1
- package/package.json +3 -3
|
@@ -39,10 +39,10 @@ export class UiMoInfoSubFormUiComponent extends DeviceInfoFieldBaseComponent {
|
|
|
39
39
|
this.customFormPanelUi = formControl;
|
|
40
40
|
this._cdr.detectChanges();
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMoInfoSubFormUiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiMoInfoSubFormUiComponent, selector: "bsu-ui-mo-info-sub-form-ui", host: { properties: { "class.control-disabled": "this.disabled", "class.control-readonly": "this.readonly" } }, usesInheritance: true, ngImport: i0, template: "@if (customFormPanelUi) {\n<bnrc-form *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\n}\n", styles: [":host{display:block;height:auto}:host ::ng-deep bsu-ly-layout-container-of-root{padding-bottom:0}:host ::ng-deep bsu-barsa-simple-form>fd-layout-grid>div>div.fd-col{padding:0}:host ::ng-deep bsu-barsa-simple-form>fd-layout-grid>div>div.fd-col bsu-ly-horizontal-layout bnrc-field-ui:first-child{padding-right:0}:host ::ng-deep bsu-barsa-simple-form>fd-layout-grid>div>div.fd-col bsu-ly-horizontal-layout bnrc-field-ui:last-child{padding-left:0}\n"], dependencies: [{ kind: "component", type: i1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMoInfoSubFormUiComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ selector: 'bsu-ui-mo-info-sub-form-ui', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (customFormPanelUi) {\n<bnrc-form *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\n}\n", styles: [":host{display:block;height:auto}:host ::ng-deep bsu-ly-layout-container-of-root{padding-bottom:0}:host ::ng-deep bsu-barsa-simple-form>fd-layout-grid>div>div.fd-col{padding:0}:host ::ng-deep bsu-barsa-simple-form>fd-layout-grid>div>div.fd-col bsu-ly-horizontal-layout bnrc-field-ui:first-child{padding-right:0}:host ::ng-deep bsu-barsa-simple-form>fd-layout-grid>div>div.fd-col bsu-ly-horizontal-layout bnrc-field-ui:last-child{padding-left:0}\n"] }]
|
|
48
48
|
}], propDecorators: { disabled: [{
|
|
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
52
52
|
type: HostBinding,
|
|
53
53
|
args: ['class.control-readonly']
|
|
54
54
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tby1pbmZvLXN1Yi1mb3JtLXVpL3VpLW1vLWluZm8tc3ViLWZvcm0tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1zdWItZm9ybS11aS91aS1tby1pbmZvLXN1Yi1mb3JtLXVpLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBT3pFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSw0QkFBNEI7SUFONUU7O1FBTzJDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztLQWtDM0Q7SUEvQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDcEQsQ0FBQyxDQUFDO1FBQ0gseUNBQXlDO1FBQ3pDLDRCQUE0QjtRQUM1QixNQUFNO1FBQ04sMkNBQTJDO1FBQzNDLDZCQUE2QjtRQUM3QixPQUFPO0lBQ1gsQ0FBQztJQUNELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDUyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUN0QixZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzlDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDUyxhQUFhLEtBQVUsQ0FBQztJQUN4QixlQUFlLENBQUMsV0FBVztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0FuQ1EsMEJBQTBCO21HQUExQiwwQkFBMEIseU1DVHZDLHVIQUdBOzs0RkRNYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0ksNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdSLFFBQVE7c0JBQTlDLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUNFLFFBQVE7c0JBQTlDLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9kZXZpY2UtaW5mby1maWVsZC1iYXNlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW1vLWluZm8tc3ViLWZvcm0tdWknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tby1pbmZvLXN1Yi1mb3JtLXVpLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tby1pbmZvLXN1Yi1mb3JtLXVpLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlNb0luZm9TdWJGb3JtVWlDb21wb25lbnQgZXh0ZW5kcyBEZXZpY2VJbmZvRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1kaXNhYmxlZCcpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250cm9sLXJlYWRvbmx5JykgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIGN1c3RvbUZvcm1QYW5lbFVpOiBhbnk7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuY3VzdG9tRm9ybVBhbmVsVWkgPSB0aGlzLmNvbnRleHQuZm9ybUNvbnRyb2w7XG4gICAgICAgIHRoaXMuX2xpc3RlblRpdGxlQ2hhbmdlZCgpO1xuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xuICAgICAgICAgICAgQWRkRm9ybUNvbnRyb2xVaTogdGhpcy5fYWRkRm9ybUNvbnRyb2wuYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhpcy5kaXNhYmxlJC5zdWJzY3JpYmUoKGRpc2FibGUpID0+IHtcbiAgICAgICAgLy8gIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgLy8gdGhpcy5yZWFkb25seSQuc3Vic2NyaWJlKChyZWFkb25seSkgPT4ge1xuICAgICAgICAvLyAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgICAgICAvLyAgfSk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0FkZEZvcm1Db250cm9sJywgdGhpcy5fYWRkRm9ybUNvbnRyb2wpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2xpc3RlblRpdGxlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbUZvcm1QYW5lbFVpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXN0b21Gb3JtUGFuZWxVaS5vbih7XG4gICAgICAgICAgICBUaXRsZUNoYW5nZWQ6IHRoaXMuX3RpdGxlQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3RpdGxlQ2hhbmdlZCgpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIF9hZGRGb3JtQ29udHJvbChmb3JtQ29udHJvbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1c3RvbUZvcm1QYW5lbFVpID0gZm9ybUNvbnRyb2w7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiQGlmIChjdXN0b21Gb3JtUGFuZWxVaSkge1xuPGJucmMtZm9ybSAqdW50aWxJblZpZXc9XCJlbFwiIFtjdXN0b21Gb3JtUGFuZWxVaV09XCJjdXN0b21Gb3JtUGFuZWxVaVwiPjwvYm5yYy1mb3JtPlxufVxuIl19
|
|
@@ -378,10 +378,10 @@ export class UiMoInfoUlvComboComponent extends FieldBaseComponent {
|
|
|
378
378
|
}
|
|
379
379
|
// this._triggerClick('ItemSelect', this.value);
|
|
380
380
|
}
|
|
381
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
382
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiMoInfoUlvComboComponent, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvMainCtrlr: "UlvMainCtrlr", UlvUi: "UlvUi", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown": "onKeyDown($event)", "keydown.alt": "onAlt($event)" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n comboTemplate;\n context: {\n $implicit:\n (loading$ | async) === true\n | moInfoUlvMoList\n : isDataLoadedFirstTime\n : ulvAdapter?.Setting?.Data?.MoDataList\n : UlvUi?.Setting?.Data?.MoDataList\n : ulvAdapter?.Setting?.Data?.Paging\n : UlvUi?.Setting?.Data?.Paging,\n deviceSize: deviceSize$ | async,\n disableOrReadonly: disableOrReadonly$ | async,\n disable: disable$ | async,\n readonly: readonly$ | async,\n isSearch: context._showPopup || context._showDropDown === false\n }\n \"\n>\n</ng-container>\n\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\n <div class=\"extra-buttons fd-input-group fd-input-group--control\">\n @if (hasValue && disableOrReadonly !== true) {\n <span class=\"fd-input-group__addon--button combo-popup-btn\" fd-input-group-addon>\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n } @if (!hasValue && disableOrReadonly !== true && Setting.ShowNewButton) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n } @if (hasValue && disableOrReadonly !== true && Setting.ViewRelatedFormType !== 'Hide') {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n } @if (context._showPopup && !value && disableOrReadonly !== true) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n }\n </div>\n</ng-template>\n<ng-template\n #comboTemplate\n let-moDataList\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n let-isSearch=\"isSearch\"\n>\n <div class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.canAdd]=\"!hasValue && disableOrReadonly !== true && Setting.ShowNewButton\"\n [class.canEdit]=\"hasValue && disableOrReadonly !== true\"\n [class.disableorreadonly]=\"disableOrReadonly === true\"\n [comboboxId]=\"comboboxId\"\n [class.has-Value]=\"hasValue\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"readonly === true ? true : false\"\n [disabled]=\"disable === true ? true : false\"\n [dropdownValues]=\"moDataList\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [byline]=\"allColumns.length > 0\"\n [isSearch]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"context._showDropDown !== false && disableOrReadonly !== true\"\n (itemClicked)=\"onItemClick($event, moDataList)\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n >\n </fd-combobox>\n <ng-container\n *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: this.disableOrReadonly }\"\n ></ng-container>\n </div>\n <ng-template #itemTemplate let-item>\n @if (item.$isLoading) {\n <div fd-list-content style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\n </div>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"item.$LoadMore ? loadMoreButton : showItem; context: { ulv: ulvAdapter || UlvUi }\"\n >\n </ng-container>\n }\n <ng-template #loadMoreButton let-ulv=\"ulv\">\n @if (ulv) {\n <bsu-ulv-paging\n (click)=\"onPagingClick($event)\"\n (pageChange)=\"onPageChange($event)\"\n [pagingSetting]=\"ulv.Setting.Data.Paging\"\n >\n </bsu-ulv-paging>\n }\n <!-- <button\n style=\"width: 100%\"\n *ngIf=\"ulv && ulv.Setting.Data.Paging.Page + 1 < ulv.Setting.Data.Paging.TotalPages\"\n fd-button\n (click)=\"onPageChange2(ulv.Setting.Data.Paging, $event)\"\n [label]=\"'More' | bbbTranslate\"\n ></button> -->\n </ng-template>\n <ng-template #showItem>\n @if (allColumns?.length && !item.isEmpty) { @if (!item.$__IsLast) {\n <div class=\"moinfoulv devider\"></div>\n } @if (item.$Icon) {\n <span fd-list-thumbnail><fd-icon [glyph]=\"item.$Icon\"></fd-icon></span>\n }\n <div fd-list-content class=\"moinfoulv hasColumns\">\n <div fd-list-title class=\"title\">{{ allColumns[0].Alias | rval: item:allColumns:true }}</div>\n @if (allColumns[1]) {\n <div fd-list-byline class=\"byline\">\n {{ allColumns[1].Alias | rval: item:allColumns:true }}\n </div>\n }\n <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\n @for (column of allColumns; track column; let index = $index) { @if (index > 1) { @if (column.Alias\n | rval: item:allColumns:true; as value) {\n <span> {{ column.Alias }}:{{ value }}</span>\n } } }\n </div>\n </div>\n } @else {\n <span fd-list-title [class.list-empty-item]=\"item.isEmpty\"\n >{{ item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate) }}\n </span>\n }\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group{min-width:fit-content}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.simple-combo-wrapper ::ng-deep .combo-mo-ulv[class*=has-]:not(.disableorreadonly) .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canAdd:not(.disableorreadonly) .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canEdit:not(.disableorreadonly) .fd-input-group{border-left:none;border-bottom-left-radius:unset;border-top-left-radius:unset}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}.extra-buttons{width:auto;border-right:none;border-left:none;margin:0}.extra-buttons>span{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i6.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i8.UlvPagingComponent, selector: "bsu-ulv-paging", inputs: ["pagingSetting"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.MoInfoUlvMoListPipe, name: "moInfoUlvMoList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
381
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMoInfoUlvComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
382
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiMoInfoUlvComboComponent, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvMainCtrlr: "UlvMainCtrlr", UlvUi: "UlvUi", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown": "onKeyDown($event)", "keydown.alt": "onAlt($event)" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n comboTemplate;\n context: {\n $implicit:\n (loading$ | async) === true\n | moInfoUlvMoList\n : isDataLoadedFirstTime\n : ulvAdapter?.Setting?.Data?.MoDataList\n : UlvUi?.Setting?.Data?.MoDataList\n : ulvAdapter?.Setting?.Data?.Paging\n : UlvUi?.Setting?.Data?.Paging,\n deviceSize: deviceSize$ | async,\n disableOrReadonly: disableOrReadonly$ | async,\n disable: disable$ | async,\n readonly: readonly$ | async,\n isSearch: context._showPopup || context._showDropDown === false\n }\n \"\n>\n</ng-container>\n\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\n <div class=\"extra-buttons fd-input-group fd-input-group--control\">\n @if (hasValue && disableOrReadonly !== true) {\n <span class=\"fd-input-group__addon--button combo-popup-btn\" fd-input-group-addon>\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n } @if (!hasValue && disableOrReadonly !== true && Setting.ShowNewButton) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n } @if (hasValue && disableOrReadonly !== true && Setting.ViewRelatedFormType !== 'Hide') {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n } @if (context._showPopup && !value && disableOrReadonly !== true) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n }\n </div>\n</ng-template>\n<ng-template\n #comboTemplate\n let-moDataList\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n let-isSearch=\"isSearch\"\n>\n <div class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.canAdd]=\"!hasValue && disableOrReadonly !== true && Setting.ShowNewButton\"\n [class.canEdit]=\"hasValue && disableOrReadonly !== true\"\n [class.disableorreadonly]=\"disableOrReadonly === true\"\n [comboboxId]=\"comboboxId\"\n [class.has-Value]=\"hasValue\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"readonly === true ? true : false\"\n [disabled]=\"disable === true ? true : false\"\n [dropdownValues]=\"moDataList\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [byline]=\"allColumns.length > 0\"\n [isSearch]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"context._showDropDown !== false && disableOrReadonly !== true\"\n (itemClicked)=\"onItemClick($event, moDataList)\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n >\n </fd-combobox>\n <ng-container\n *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: this.disableOrReadonly }\"\n ></ng-container>\n </div>\n <ng-template #itemTemplate let-item>\n @if (item.$isLoading) {\n <div fd-list-content style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\n </div>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"item.$LoadMore ? loadMoreButton : showItem; context: { ulv: ulvAdapter || UlvUi }\"\n >\n </ng-container>\n }\n <ng-template #loadMoreButton let-ulv=\"ulv\">\n @if (ulv) {\n <bsu-ulv-paging\n (click)=\"onPagingClick($event)\"\n (pageChange)=\"onPageChange($event)\"\n [pagingSetting]=\"ulv.Setting.Data.Paging\"\n >\n </bsu-ulv-paging>\n }\n <!-- <button\n style=\"width: 100%\"\n *ngIf=\"ulv && ulv.Setting.Data.Paging.Page + 1 < ulv.Setting.Data.Paging.TotalPages\"\n fd-button\n (click)=\"onPageChange2(ulv.Setting.Data.Paging, $event)\"\n [label]=\"'More' | bbbTranslate\"\n ></button> -->\n </ng-template>\n <ng-template #showItem>\n @if (allColumns?.length && !item.isEmpty) { @if (!item.$__IsLast) {\n <div class=\"moinfoulv devider\"></div>\n } @if (item.$Icon) {\n <span fd-list-thumbnail><fd-icon [glyph]=\"item.$Icon\"></fd-icon></span>\n }\n <div fd-list-content class=\"moinfoulv hasColumns\">\n <div fd-list-title class=\"title\">{{ allColumns[0].Alias | rval: item:allColumns:true }}</div>\n @if (allColumns[1]) {\n <div fd-list-byline class=\"byline\">\n {{ allColumns[1].Alias | rval: item:allColumns:true }}\n </div>\n }\n <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\n @for (column of allColumns; track column; let index = $index) { @if (index > 1) { @if (column.Alias\n | rval: item:allColumns:true; as value) {\n <span> {{ column.Alias }}:{{ value }}</span>\n } } }\n </div>\n </div>\n } @else {\n <span fd-list-title [class.list-empty-item]=\"item.isEmpty\"\n >{{ item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate) }}\n </span>\n }\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group{min-width:fit-content}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.simple-combo-wrapper ::ng-deep .combo-mo-ulv[class*=has-]:not(.disableorreadonly) .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canAdd:not(.disableorreadonly) .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canEdit:not(.disableorreadonly) .fd-input-group{border-left:none;border-bottom-left-radius:unset;border-top-left-radius:unset}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}.extra-buttons{width:auto;border-right:none;border-left:none;margin:0}.extra-buttons>span{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "width", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i6.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i8.UlvPagingComponent, selector: "bsu-ulv-paging", inputs: ["pagingSetting"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.MoInfoUlvMoListPipe, name: "moInfoUlvMoList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
383
383
|
}
|
|
384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMoInfoUlvComboComponent, decorators: [{
|
|
385
385
|
type: Component,
|
|
386
386
|
args: [{ selector: 'bsu-ui-mo-info-ulv-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n comboTemplate;\n context: {\n $implicit:\n (loading$ | async) === true\n | moInfoUlvMoList\n : isDataLoadedFirstTime\n : ulvAdapter?.Setting?.Data?.MoDataList\n : UlvUi?.Setting?.Data?.MoDataList\n : ulvAdapter?.Setting?.Data?.Paging\n : UlvUi?.Setting?.Data?.Paging,\n deviceSize: deviceSize$ | async,\n disableOrReadonly: disableOrReadonly$ | async,\n disable: disable$ | async,\n readonly: readonly$ | async,\n isSearch: context._showPopup || context._showDropDown === false\n }\n \"\n>\n</ng-container>\n\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\n <div class=\"extra-buttons fd-input-group fd-input-group--control\">\n @if (hasValue && disableOrReadonly !== true) {\n <span class=\"fd-input-group__addon--button combo-popup-btn\" fd-input-group-addon>\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n } @if (!hasValue && disableOrReadonly !== true && Setting.ShowNewButton) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n } @if (hasValue && disableOrReadonly !== true && Setting.ViewRelatedFormType !== 'Hide') {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n } @if (context._showPopup && !value && disableOrReadonly !== true) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n }\n </div>\n</ng-template>\n<ng-template\n #comboTemplate\n let-moDataList\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n let-isSearch=\"isSearch\"\n>\n <div class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.canAdd]=\"!hasValue && disableOrReadonly !== true && Setting.ShowNewButton\"\n [class.canEdit]=\"hasValue && disableOrReadonly !== true\"\n [class.disableorreadonly]=\"disableOrReadonly === true\"\n [comboboxId]=\"comboboxId\"\n [class.has-Value]=\"hasValue\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"readonly === true ? true : false\"\n [disabled]=\"disable === true ? true : false\"\n [dropdownValues]=\"moDataList\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [byline]=\"allColumns.length > 0\"\n [isSearch]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"context._showDropDown !== false && disableOrReadonly !== true\"\n (itemClicked)=\"onItemClick($event, moDataList)\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n >\n </fd-combobox>\n <ng-container\n *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: this.disableOrReadonly }\"\n ></ng-container>\n </div>\n <ng-template #itemTemplate let-item>\n @if (item.$isLoading) {\n <div fd-list-content style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\n </div>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"item.$LoadMore ? loadMoreButton : showItem; context: { ulv: ulvAdapter || UlvUi }\"\n >\n </ng-container>\n }\n <ng-template #loadMoreButton let-ulv=\"ulv\">\n @if (ulv) {\n <bsu-ulv-paging\n (click)=\"onPagingClick($event)\"\n (pageChange)=\"onPageChange($event)\"\n [pagingSetting]=\"ulv.Setting.Data.Paging\"\n >\n </bsu-ulv-paging>\n }\n <!-- <button\n style=\"width: 100%\"\n *ngIf=\"ulv && ulv.Setting.Data.Paging.Page + 1 < ulv.Setting.Data.Paging.TotalPages\"\n fd-button\n (click)=\"onPageChange2(ulv.Setting.Data.Paging, $event)\"\n [label]=\"'More' | bbbTranslate\"\n ></button> -->\n </ng-template>\n <ng-template #showItem>\n @if (allColumns?.length && !item.isEmpty) { @if (!item.$__IsLast) {\n <div class=\"moinfoulv devider\"></div>\n } @if (item.$Icon) {\n <span fd-list-thumbnail><fd-icon [glyph]=\"item.$Icon\"></fd-icon></span>\n }\n <div fd-list-content class=\"moinfoulv hasColumns\">\n <div fd-list-title class=\"title\">{{ allColumns[0].Alias | rval: item:allColumns:true }}</div>\n @if (allColumns[1]) {\n <div fd-list-byline class=\"byline\">\n {{ allColumns[1].Alias | rval: item:allColumns:true }}\n </div>\n }\n <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\n @for (column of allColumns; track column; let index = $index) { @if (index > 1) { @if (column.Alias\n | rval: item:allColumns:true; as value) {\n <span> {{ column.Alias }}:{{ value }}</span>\n } } }\n </div>\n </div>\n } @else {\n <span fd-list-title [class.list-empty-item]=\"item.isEmpty\"\n >{{ item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate) }}\n </span>\n }\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group{min-width:fit-content}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.simple-combo-wrapper ::ng-deep .combo-mo-ulv[class*=has-]:not(.disableorreadonly) .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canAdd:not(.disableorreadonly) .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canEdit:not(.disableorreadonly) .fd-input-group{border-left:none;border-bottom-left-radius:unset;border-top-left-radius:unset}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}.extra-buttons{width:auto;border-right:none;border-left:none;margin:0}.extra-buttons>span{overflow:hidden}\n"] }]
|
|
387
387
|
}], propDecorators: { ulvAdapter: [{
|
|
@@ -426,4 +426,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
426
426
|
}], getRawValue: [{
|
|
427
427
|
type: Input
|
|
428
428
|
}] } });
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFHMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFFbkYsT0FBTyxFQUNILGtCQUFrQixFQUNsQixRQUFRLEVBTVIsa0JBQWtCLEVBR2xCLFdBQVcsRUFFZCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7OztBQVE5QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCO0lBTmpFOztRQXFDSSxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFhcEMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFHNUIsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQXlI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QU1OLElBQUk7c0JBREgsS0FBSztnQkFNTixJQUFJO3NCQURILEtBQUs7Z0JBUU4sSUFBSTtzQkFESCxLQUFLO2dCQVlOLE1BQU07c0JBREwsS0FBSztnQkFNTixXQUFXO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCB0YWtlVW50aWwsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50LCBDb21ib2JveEl0ZW0sIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRmllbGRCYXNlQ29tcG9uZW50LFxuICAgIEJhcnNhQXBpLFxuICAgIFJlcG9ydEV4dHJhSW5mbyxcbiAgICBNb0ZvclJlcG9ydE1vZGVsLFxuICAgIENsYXNzTmFtZXNNb2RlbCxcbiAgICBWaWV3VHlwZXMsXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBQcmV2ZW50RGVmYXVsRXZlbnQsXG4gICAgUGFnaW5nU2V0dGluZyxcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxuICAgIGdldFVuaXF1ZUlkLFxuICAgIEdyaWRWaWV3XG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW8taW5mby11bHYtY29tYm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tby1pbmZvLXVsdi1jb21iby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU1vSW5mb1VsdkNvbWJvQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSB1bHZBZGFwdGVyOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgU2V0dGluZzoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgVmlldzogVmlld1R5cGVzO1xuICAgICAgICAgICAgQ2xhc3NOYW1lczogQ2xhc3NOYW1lc01vZGVsO1xuICAgICAgICAgICAgRXh0cmE6IFJlcG9ydEV4dHJhSW5mbztcbiAgICAgICAgICAgIERhdGE6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBASW5wdXQoKSBDb250cm9sOiBhbnk7XG4gICAgQElucHV0KCkgVWx2TWFpbkN0cmxyOiBhbnk7XG4gICAgQFZpZXdDaGlsZChDb21ib2JveENvbXBvbmVudCkgZmRDb21ib1JlZjogQ29tYm9ib3hDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBzZXQgVWx2VWkodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9VbHZVaSA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlLnZpZXdlckNvbnRyb2wub24oe1xuICAgICAgICAgICAgICAgIE1vRGF0YUxpc3RDaGFuZ2VkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IFVsdlVpKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9VbHZVaTtcbiAgICB9XG5cbiAgICBfVWx2VWk6IGFueTtcbiAgICBpc0V4cGFuZDogYm9vbGVhbjtcbiAgICBzbWFydENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0aWNrUmVmOiBhbnk7XG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlzRmlyc3RMb2FkOiBib29sZWFuO1xuICAgIHBvcG92ZXJFbGVtZW50OiBhbnk7XG4gICAgcmF3VmFsdWU6IHN0cmluZztcbiAgICBmb3JtU2VsZWN0aW9uRGlhbG9nOiBEaWFsb2dSZWY7XG4gICAgaXNPcGVuU2VsZWN0aW9uRGlhbG9nOiBib29sZWFuO1xuICAgIGhhc1JlcG9ydDogYW55O1xuICAgIG9yaWdpbmFsVmFsdWU6IGFueTtcbiAgICBpc0RhdGFMb2FkZWRGaXJzdFRpbWU6IGJvb2xlYW47XG4gICAgdmFsdWVUZXh0OiBzdHJpbmc7XG4gICAgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdID0gW107XG4gICAgaGFzVmFsdWU6IGJvb2xlYW47XG4gICAgY29tYm9ib3hJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgX29wZW5Qb3B1cEZvcm1TZWxlY3Rpb25Tb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2Nsb3NlRGlhbG9nU291cmNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sb2FkaW5nU291cmNlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oZSk6IHZvaWQge1xuICAgICAgICBlID0gbmV3IEJhcnNhQXBpLkV4dC5FdmVudE9iamVjdEltcGwoZSk7XG4gICAgICAgIGNvbnN0IGsgPSBlLmdldEtleSgpO1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBlLkVOVEVSIHx8IGsgPT09IEJhcnNhQXBpLkV4dC5FdmVudE9iamVjdC5UQUIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2tleWRvd24nLCB0aGlzLmNvbnRleHQsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0JywgWyckZXZlbnQnXSlcbiAgICBvbkFsdChlKTogdm9pZCB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tYm9ib3hJZCA9IGdldFVuaXF1ZUlkKDMpO1xuICAgICAgICB0aGlzLl9jaGVja0hhc1ZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLmxvYWRpbmckID0gdGhpcy5fbG9hZGluZ1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMubG9hZGluZyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhTG9hZGVkRmlyc3RUaW1lID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy51bHZBZGFwdGVyPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0ID09PSAnb2JqZWN0JyB8fFxuICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLlVsdlVpPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0ID09PSAnb2JqZWN0JztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc21hcnRDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB0aGlzLl9maWx0ZXJTbWFydENoYW5nZSh2YWx1ZSkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFwKCh2YWx1ZSkgPT4gKHRoaXMucmF3VmFsdWUgPSB2YWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1NtYXJ0Q2hhbmdlJywgdGhpcy5jb250ZXh0LCB2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fY2xvc2VEaWFsb2dTb3VyY2UpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLmhhc1JlcG9ydCA9IHRoaXMuU2V0dGluZy5SZWxhdGlvblZpZXdUeXBlID09PSAnUmVwb3J0VmlldycgfHwgdGhpcy5TZXR0aW5nLlJlcG9ydE5hbWUgPT09ICdIaWVyYXJjaGljYWwnO1xuICAgICAgICB0aGlzLkNvbnRyb2wgPSB0aGlzO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uUGFnaW5nQ2xpY2soZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgfVxuICAgIG9uUGFnZUNoYW5nZShlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgICAgICBpZiAodGhpcy5VbHZVaSkge1xuICAgICAgICAgICAgdGhpcy5VbHZVaS5maXJlRXZlbnQoJ1BhZ2VDaGFuZ2UnLCB0aGlzLlVsdlVpLCBlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIuRGF0YUN0cmxyLk1vdmVUb1BhZ2UoZSwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uSXRlbUNsaWNrKGU6IENvbWJvYm94SXRlbSwgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUl0ZW1TZWxlY3QobW9EYXRhTGlzdCwgZS5pdGVtKTtcbiAgICB9XG4gICAgb25QYWdlQ2hhbmdlMihwYWdlU2V0dGluZzogUGFnaW5nU2V0dGluZywgZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgICAgIGlmICghdGhpcy51bHZBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aGlzLlVsdlVpLmZpcmVFdmVudCgnUGFnZUNoYW5nZScsIHRoaXMuVWx2VWksIHBhZ2VTZXR0aW5nLlBhZ2UgKyAxKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XG4gICAgICAgIGNvbnN0IHVsdkFkYXB0ZXIgPSB0aGlzLnVsdkFkYXB0ZXI7XG4gICAgICAgIGNvbnN0IHRlbXAxID0gdWx2QWRhcHRlci5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdDtcbiAgICAgICAgdGVtcDEuc3BsaWNlKHRlbXAxLmxlbmd0aCAtIDEsIDEpO1xuICAgICAgICBjb25zdCBtb0RhdGFMaXN0T2xkID0gWy4uLnRlbXAxXTtcbiAgICAgICAgbW9EYXRhTGlzdE9sZC5mb3JFYWNoKChjKSA9PiAoYy4kX19Jc0xhc3QgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIuRGF0YUN0cmxyLk1vdmVUb1BhZ2UocGFnZVNldHRpbmcuUGFnZSArIDEsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IHVsdkFkYXB0ZXIuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3Q7XG4gICAgICAgICAgICBtb0RhdGFMaXN0LnNwbGljZSgwLCAwLCAuLi5tb0RhdGFMaXN0T2xkKTtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbk9wZW5DaGFuZ2UoZmRDb21ib2JveCwgaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzKCk7XG4gICAgICAgICAgICAvLyBmZENvbWJvYm94Lm9wZW4gPSBmYWxzZTsgLy8gaXQgY2xvc2UgcG9wdXAgd2hlbiBjbGljayBvbiBkcm9wZG93biBidXR0b24gaW4gY29tcG9uZW50XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFRleHQgPSB0aGlzLmZkQ29tYm9SZWY/LmlucHV0VGV4dFZhbHVlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlICYmIGlucHV0VGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JhaXNlU21hcnRDaGFuZ2UoaW5wdXRUZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvbklucHV0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmFpc2VTbWFydENoYW5nZShlKTtcbiAgICB9XG4gICAgb25JbnB1dENoYW5nZTIoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yYWlzZVNtYXJ0Q2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gICAgb25WYWx1ZUNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JhaXNlVmFsdWVDaGFuZ2VkKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gICAgb25OZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnTmV3Jyk7XG4gICAgfVxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnRGVsZXRlJyk7XG4gICAgfVxuICAgIG9uRWRpdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdFZGl0Jyk7XG4gICAgfVxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ1BvcHVwJyk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgY3VzdG9tRmlsdGVyKGNvbnRlbnQ6IGFueVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cblxuICAgIGRpc3BsYXlGdW5jID0gKG9iajogTWV0YW9iamVjdERhdGFNb2RlbCkgPT4ge1xuICAgICAgICBpZiAob2JqKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKG9iaiwgY29sTmFtZSwgb2JqLiRDYXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfTtcbiAgICBnZXRNb1ZhbHVlQ2FwdGlvbih2YWx1ZU1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCwgY29sTmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh2YWx1ZU1vID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjYXB0aW9uVmFsdWVNbztcbiAgICAgICAgY29uc3QgbW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlcixcbiAgICAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXG4gICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb3VuZGVkTW8gPSBtb2xpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gdmFsdWVNby5JZCk7XG4gICAgICAgIGlmIChjb2xOYW1lICYmIGZvdW5kZWRNbyAmJiBmb3VuZGVkTW9bY29sTmFtZV0pIHtcbiAgICAgICAgICAgIGlmIChmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZGVkTW9bY29sTmFtZV0uJENhcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXB0aW9uVmFsdWVNbyA9IGZvdW5kZWRNb1tjb2xOYW1lXS4kQ2FwdGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKGNhcHRpb25WYWx1ZU1vIHx8IGRlZmF1bHRWYWx1ZSk7XG4gICAgfVxuICAgIGdldEZpcnN0Q29sdW1uTmFtZSgpIHtcbiAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xuICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIgJiYgdGhpcy5VbHZNYWluQ3RybHI/LkRkPy5TZXR0aW5nPy5WaWV3KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3LkNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbCA9IHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldy5Db2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChjKSA9PiAhYy5OYW1lLnN0YXJ0c1dpdGgoJyQnKSAmJiBjLk5hbWUgIT09ICdJZCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdENvbD8uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb2xOYW1lID0gZmlyc3RDb2wuTmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbE5hbWU7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBJc0V4cGFuZGVkID0gKHR5cGUpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdEZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mZENvbWJvUmVmPy5wb3BvdmVyQ29tcG9uZW50Py5pc09wZW47XG4gICAgfTtcbiAgICAvLyByZXR1cm4gdGhpcy5jb21ib1JlZi5uYXRpdmVFbGVtZW50LnJlc3BvbnNpdmVQb3BvdmVyLmlzT3BlbigpO1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgQ29sbGFwc2UgPSAodHlwZSkgPT4ge307XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBFeHBhbmQgPSAodHlwZSkgPT4ge1xuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIgPSB0aGlzLlVsdk1haW5DdHJsclt0eXBlXTtcbiAgICB9O1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgb24gPSAoKSA9PiB7fTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIEZvY3VzID0gKCkgPT4ge307XG4gICAgQElucHV0KClcbiAgICBTZXRVbHZBZGFwdGVyID0gKHR5cGUsIHVsdkFkYXB0ZXIpID0+IHtcbiAgICAgICAgdGhpcy51bHZBZGFwdGVyID0gdWx2QWRhcHRlcjtcbiAgICAgICAgdGhpcy5fc2V0Q29sdW1ucygpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBJc1VpQ3JlYXRlZCA9ICh0eXBlKSA9PiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBNYXNrID0gKHR5cGUpID0+IHtcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBoaWRlID0gKHR5cGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVNlbGVjdGlvbkRpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5mb3JtU2VsZWN0aW9uRGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuICAgIEBJbnB1dCgpXG4gICAgc2hvdyA9ICh0eXBlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLlVsdlVpICYmICF0aGlzLmlzT3BlblNlbGVjdGlvbkRpYWxvZyAmJiB0aGlzLmNvbnRleHQuX3Nob3dQb3B1cCkge1xuICAgICAgICAgICAgdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZS5uZXh0KCk7IC8vIHJhYmV0ZSB0YWtpIGdlbmVyYWwgaW5mbyAucG9wdXAgYmF6IG1pc2hvZCBrZSBiYWlhZCBkcm9wZG93biBiYXNoZS5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmRDb21ib1JlZiAmJiAodGhpcy5mZENvbWJvUmVmLm9wZW4gPSB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcbiAgICBASW5wdXQoKVxuICAgIFVubWFzayA9ICh0eXBlKSA9PiB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcbiAgICBASW5wdXQoKVxuICAgIGdldFJhd1ZhbHVlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdWYWx1ZTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVJdGVtU2VsZWN0KG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChjKSA9PiAoYy4kSXNDaGVja2VkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKG1vKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2NoZWNrSGFzVmFsdWUodmFsdWUpO1xuICAgICAgICBzdXBlci5fc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAvLyB0aGlzLl9zZXRDb21ib1RleHQodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NoZWNrSGFzVmFsdWUodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlVGV4dCh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlVGV4dCA9IHRoaXMuX2dldFZhbHVlVGV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3NldENvbWJvVGV4dCh0aGlzLnZhbHVlVGV4dCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0VmFsdWVUZXh0KHZhbHVlKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLiRDYXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnICYmIHZhbHVlICYmIHRoaXMuVWx2TWFpbkN0cmxyICYmIHRoaXMuVWx2TWFpbkN0cmxyLkRkKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3O1xuICAgICAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xuICAgICAgICAgICAgaWYgKHZpZXcuQ29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29sID0gdmlldy5Db2x1bW5zLmZpbmQoKGMpID0+ICFjLk5hbWUuc3RhcnRzV2l0aCgnJCcpICYmIGMuTmFtZSAhPT0gJ0lkJyk7XG4gICAgICAgICAgICAgICAgY29sTmFtZSA9IGZpcnN0Q29sPy5OYW1lID8gZmlyc3RDb2wuTmFtZSA6ICckQ2FwdGlvbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Q29tYm9UZXh0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gdGhpcy5fdmFsdWVNbyA9IG51bGw7XG4gICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLmlucHV0VGV4dFZhbHVlID0gJyc7XG4gICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgY29uc3QgZmRDb21ib1JlZiA9IHRoaXMuZmRDb21ib1JlZjtcbiAgICAgICAgY29uc3QgaW5wdXRUZXh0ID0gZmRDb21ib1JlZj8uaW5wdXRUZXh0VmFsdWU7XG4gICAgICAgIGlmIChmZENvbWJvUmVmICYmIHZhbHVlICE9IGlucHV0VGV4dCkge1xuICAgICAgICAgICAgLy8gY29uc3QgVWx2TWFpbkN0cmxyID0gdGhpcy5VbHZNYWluQ3RybHI7XG4gICAgICAgICAgICAvLyBpZiAoVWx2TWFpbkN0cmxyICYmIFVsdk1haW5DdHJsci5EZCkge1xuICAgICAgICAgICAgLy8gICAgIGNvbnN0IHZpZXcgPSBVbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3O1xuICAgICAgICAgICAgLy8gICAgIGxldCBjb2xOYW1lID0gJyRDYXB0aW9uJztcbiAgICAgICAgICAgIC8vICAgICBpZiAodmlldy5Db2x1bW5zKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbnN0IGZpcnN0Q29sID0gdmlldy5Db2x1bW5zLmZpbmQoKGMpID0+ICFjLk5hbWUuc3RhcnRzV2l0aCgnJCcpICYmIGMuTmFtZSAhPT0gJ0lkJyk7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbE5hbWUgPSBmaXJzdENvbD8uTmFtZSA/IGZpcnN0Q29sLk5hbWUgOiAnJENhcHRpb24nO1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vICAgICB2YWx1ZSA9IHRoaXMuZ2V0TW9WYWx1ZUNhcHRpb24odGhpcy5fdmFsdWVNbywgY29sTmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgZmRDb21ib1JlZi5pbnB1dFRleHQgPSB2YWx1ZSA/IHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKHZhbHVlKSArICcnIDogJyc7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5pc09wZW5TZWxlY3Rpb25EaWFsb2cgPSB0cnVlO1xuICAgICAgICB0aGlzLlVsdlVpLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IHRydWU7IC8vIHRoaXMgaXMgdXNlZnVsIHRvIHVsdiBtYW5hZ2UgdG9vbGJhciBidXR0b25zLmZvciBleGFtcGxlIG1vdmUgaW4gdHJlZSBkb2VzIG5vdCBzaG93blxuICAgICAgICB0aGlzLmZvcm1TZWxlY3Rpb25EaWFsb2cgPSBCYXJzYUFwaS5Cdy5VbHZGb3JtTXVsdGlTZWxlY3QuU2hvdyh0aGlzLmNvbnRleHQsIHtcbiAgICAgICAgICAgIHVsdjE6IHRoaXMuVWx2VWksXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdCcpLFxuICAgICAgICAgICAgSXNMb2FkZWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5TZWxlY3Rpb25EaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclNtYXJ0Q2hhbmdlKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBjYW5SZXF1ZXN0ID0gKHRoaXMudWx2QWRhcHRlciB8fCB0aGlzLlVsdlVpKSAmJiB2YWx1ZSAhPT0gdGhpcy52YWx1ZTtcbiAgICAgICAgLy8gaWYgKGNhblJlcXVlc3QpIHtcbiAgICAgICAgLy8gICAgIGNvbnN0IG1vbGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgIC8vICAgICAgICAgdGhpcy51bHZBZGFwdGVyLFxuICAgICAgICAvLyAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXG4gICAgICAgIC8vICAgICAgICAgW11cbiAgICAgICAgLy8gICAgICk7XG4gICAgICAgIC8vICAgICBpZiAoIW1vbGlzdCkge1xuICAgICAgICAvLyAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyAgICAgY29uc3QgY29sTmFtZSA9IHRoaXMuZ2V0Rmlyc3RDb2x1bW5OYW1lKCk7XG5cbiAgICAgICAgLy8gICAgIGNvbnN0IGZpbmRNbyA9IG1vbGlzdC5maW5kKChtbykgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGNhcHRpb24gPSB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKG1vLCBjb2xOYW1lLCBtby4kQ2FwdGlvbik7XG4gICAgICAgIC8vICAgICAgICAgcmV0dXJuIGNhcHRpb24gPT09IHZhbHVlO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vICAgICBpZiAoZmluZE1vKSB7XG4gICAgICAgIC8vICAgICAgICAgY2FuUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAvLyAgICAgICAgIC8vdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKGZpbmRNbyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgcmV0dXJuIGNhblJlcXVlc3Q7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Q29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdWx2QWRhcHRlciA9IHRoaXMudWx2QWRhcHRlcjtcbiAgICAgICAgY29uc3QgdmlldyA9IDxHcmlkVmlldz51bHZBZGFwdGVyPy5TZXR0aW5nPy5WaWV3O1xuICAgICAgICBpZiAodmlldyAmJiB2aWV3LkNvbHVtbnM/Lmxlbmd0aCAmJiB0aGlzLmFsbENvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFsbENvbHVtbnMgPSB2aWV3LkNvbHVtbnMuZmlsdGVyKChjKSA9PiBOdW1iZXIoYy5NZXRhRmllbGRUeXBlSWQpID4gMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdOb3JtYWwnKTtcbiAgICAgICAgdGhpcy5fc2V0Q29sdW1ucygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmFpc2VTbWFydENoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNtYXJ0Q2hhbmdlLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdHJpZ2dlckNsaWNrKGV2ZW50TmFtZSwgdmFsdWUgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1RyaWdnZXJDbGljaycsIHRoaXMuY29udGV4dCwgZXZlbnROYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yYWlzZVZhbHVlQ2hhbmdlZChjYXB0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjYXB0aW9uO1xuICAgICAgICBjb25zdCBtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy51bHZBZGFwdGVyLFxuICAgICAgICAgICAgJ1NldHRpbmcuRGF0YS5Nb0RhdGFMaXN0JyxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICk7XG4gICAgICAgIGlmICghbW9saXN0IHx8IG1vbGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvL2NvbnN0IGNvbE5hbWUgPSB0aGlzLmdldEZpcnN0Q29sdW1uTmFtZSgpO1xuXG4gICAgICAgIGNvbnN0IG1vID0gbW9saXN0LmZpbmQoKGMpID0+IGMuJENhcHRpb24gPT09IGlucHV0VmFsdWUpO1xuICAgICAgICBpZiAoIW1vKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbW9saXN0LmZvckVhY2goKGMpID0+IChjLiRJc0NoZWNrZWQgPSBmYWxzZSkpO1xuXG4gICAgICAgIHRoaXMuX2ZpcmVWYWx1ZUNoYW5nZShtbyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZmlyZVZhbHVlQ2hhbmdlKG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBtbztcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5fc2V0Q29tYm9UZXh0KG1vLiRDYXB0aW9uKTtcbiAgICAgICAgLy8gdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKHRoaXMuVWx2VWkpIHtcbiAgICAgICAgICAgIHRoaXMuVWx2VWkudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ3Jvd2NsaWNrJywgdGhpcy5VbHZVaSwgMCwgbW8pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudWx2QWRhcHRlcikge1xuICAgICAgICAgICAgdGhpcy51bHZBZGFwdGVyLlZpZXdlckFkYXB0ZXIuZmlyZUV2ZW50KFxuICAgICAgICAgICAgICAgIEJhcnNhQXBpLlVsLlVsdk1haW5DdHJsci5FdmVudEVudW0uSXRlbUNsaWNrLFxuICAgICAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlci5WaWV3ZXJBZGFwdGVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRoaXMuX3RyaWdnZXJDbGljaygnSXRlbVNlbGVjdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBjb21ib1RlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6XG4gICAgICAgICAgICAgICAgKGxvYWRpbmckIHwgYXN5bmMpID09PSB0cnVlXG4gICAgICAgICAgICAgICAgfCBtb0luZm9VbHZNb0xpc3RcbiAgICAgICAgICAgICAgICAgICAgOiBpc0RhdGFMb2FkZWRGaXJzdFRpbWVcbiAgICAgICAgICAgICAgICAgICAgOiB1bHZBZGFwdGVyPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgIDogVWx2VWk/LlNldHRpbmc/LkRhdGE/Lk1vRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgOiB1bHZBZGFwdGVyPy5TZXR0aW5nPy5EYXRhPy5QYWdpbmdcbiAgICAgICAgICAgICAgICAgICAgOiBVbHZVaT8uU2V0dGluZz8uRGF0YT8uUGFnaW5nLFxuICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGVPclJlYWRvbmx5OiBkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGU6IGRpc2FibGUkIHwgYXN5bmMsXG4gICAgICAgICAgICByZWFkb25seTogcmVhZG9ubHkkIHwgYXN5bmMsXG4gICAgICAgICAgICBpc1NlYXJjaDogY29udGV4dC5fc2hvd1BvcHVwIHx8IGNvbnRleHQuX3Nob3dEcm9wRG93biA9PT0gZmFsc2VcbiAgICAgICAgfVxuICAgIFwiXG4+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNidG5zVHBsIGxldC1kaXNhYmxlT3JSZWFkb25seT1cImRpc2FibGVPclJlYWRvbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImV4dHJhLWJ1dHRvbnMgZmQtaW5wdXQtZ3JvdXAgZmQtaW5wdXQtZ3JvdXAtLWNvbnRyb2xcIj5cbiAgICAgICAgQGlmIChoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiIGZkLWlucHV0LWdyb3VwLWFkZG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DbGVhcigpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfSBAaWYgKCFoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSAmJiBTZXR0aW5nLlNob3dOZXdCdXR0b24pIHtcbiAgICAgICAgPHNwYW4gZmQtaW5wdXQtZ3JvdXAtYWRkb24gY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiBjb21iby1wb3B1cC1idG5cIj5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJhZGRcIiAoY2xpY2spPVwib25OZXcoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gQGlmIChoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSAmJiBTZXR0aW5nLlZpZXdSZWxhdGVkRm9ybVR5cGUgIT09ICdIaWRlJykge1xuICAgICAgICA8c3BhbiBmZC1pbnB1dC1ncm91cC1hZGRvbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImVkaXRcIiAoY2xpY2spPVwib25FZGl0KClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9IEBpZiAoY29udGV4dC5fc2hvd1BvcHVwICYmICF2YWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgICA8c3BhbiBmZC1pbnB1dC1ncm91cC1hZGRvbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cInNlYXJjaFwiIChjbGljayk9XCJvblNlYXJjaCgpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb21ib1RlbXBsYXRlXG4gICAgbGV0LW1vRGF0YUxpc3RcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxuICAgIGxldC1kaXNhYmxlT3JSZWFkb25seT1cImRpc2FibGVPclJlYWRvbmx5XCJcbiAgICBsZXQtZGlzYWJsZT1cImRpc2FibGVcIlxuICAgIGxldC1yZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICBsZXQtaXNTZWFyY2g9XCJpc1NlYXJjaFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInNpbXBsZS1jb21iby13cmFwcGVyXCI+XG4gICAgICAgIDxmZC1jb21ib2JveFxuICAgICAgICAgICAgI2ZkQ29tYm9ib3hcbiAgICAgICAgICAgIGNsYXNzPVwiY29tYm8tbW8tdWx2XCJcbiAgICAgICAgICAgIFtjbGFzcy5jYW5BZGRdPVwiIWhhc1ZhbHVlICYmIGRpc2FibGVPclJlYWRvbmx5ICE9PSB0cnVlICYmIFNldHRpbmcuU2hvd05ld0J1dHRvblwiXG4gICAgICAgICAgICBbY2xhc3MuY2FuRWRpdF09XCJoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZW9ycmVhZG9ubHldPVwiZGlzYWJsZU9yUmVhZG9ubHkgPT09IHRydWVcIlxuICAgICAgICAgICAgW2NvbWJvYm94SWRdPVwiY29tYm9ib3hJZFwiXG4gICAgICAgICAgICBbY2xhc3MuaGFzLVZhbHVlXT1cImhhc1ZhbHVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiXG4gICAgICAgICAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgICAgICAgICBbZmlsbE9uU2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5ID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgIFtkcm9wZG93blZhbHVlc109XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgICAgIFtmaWx0ZXJGbl09XCJjdXN0b21GaWx0ZXJcIlxuICAgICAgICAgICAgW29wZW5PbktleWJvYXJkRXZlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYnlsaW5lXT1cImFsbENvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICBbaXNTZWFyY2hdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5RnVuY1wiXG4gICAgICAgICAgICBbc2hvd0Ryb3Bkb3duQnV0dG9uXT1cImNvbnRleHQuX3Nob3dEcm9wRG93biAhPT0gZmFsc2UgJiYgZGlzYWJsZU9yUmVhZG9ubHkgIT09IHRydWVcIlxuICAgICAgICAgICAgKGl0ZW1DbGlja2VkKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgbW9EYXRhTGlzdClcIlxuICAgICAgICAgICAgKGlucHV0VGV4dENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKGZkQ29tYm9ib3gsICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY29tYm9ib3g+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnRuc1RwbDsgY29udGV4dDogeyBkaXNhYmxlT3JSZWFkb25seTogdGhpcy5kaXNhYmxlT3JSZWFkb25seSB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICBAaWYgKGl0ZW0uJGlzTG9hZGluZykge1xuICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudCBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDIwcHhcIj5cbiAgICAgICAgICAgIDxic3UtbWFzayBbc2l6ZV09XCIncydcIiBbdG9wXT1cIicxMHB4J1wiPjwvYnN1LW1hc2s+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLiRMb2FkTW9yZSA/IGxvYWRNb3JlQnV0dG9uIDogc2hvd0l0ZW07IGNvbnRleHQ6IHsgdWx2OiB1bHZBZGFwdGVyIHx8IFVsdlVpIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZE1vcmVCdXR0b24gbGV0LXVsdj1cInVsdlwiPlxuICAgICAgICAgICAgQGlmICh1bHYpIHtcbiAgICAgICAgICAgIDxic3UtdWx2LXBhZ2luZ1xuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhZ2luZ0NsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcGFnaW5nU2V0dGluZ109XCJ1bHYuU2V0dGluZy5EYXRhLlBhZ2luZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2JzdS11bHYtcGFnaW5nPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxuICAgICAgICAqbmdJZj1cInVsdiAmJiB1bHYuU2V0dGluZy5EYXRhLlBhZ2luZy5QYWdlICsgMSA8IHVsdi5TZXR0aW5nLkRhdGEuUGFnaW5nLlRvdGFsUGFnZXNcIlxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9uUGFnZUNoYW5nZTIodWx2LlNldHRpbmcuRGF0YS5QYWdpbmcsICRldmVudClcIlxuICAgICAgICBbbGFiZWxdPVwiJ01vcmUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgID48L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0l0ZW0+XG4gICAgICAgICAgICBAaWYgKGFsbENvbHVtbnM/Lmxlbmd0aCAmJiAhaXRlbS5pc0VtcHR5KSB7IEBpZiAoIWl0ZW0uJF9fSXNMYXN0KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9pbmZvdWx2IGRldmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIH0gQGlmIChpdGVtLiRJY29uKSB7XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRodW1ibmFpbD48ZmQtaWNvbiBbZ2x5cGhdPVwiaXRlbS4kSWNvblwiPjwvZmQtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudCBjbGFzcz1cIm1vaW5mb3VsdiBoYXNDb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlIGNsYXNzPVwidGl0bGVcIj57eyBhbGxDb2x1bW5zWzBdLkFsaWFzIHwgcnZhbDogaXRlbTphbGxDb2x1bW5zOnRydWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGFsbENvbHVtbnNbMV0pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lIGNsYXNzPVwiYnlsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFsbENvbHVtbnNbMV0uQWxpYXMgfCBydmFsOiBpdGVtOmFsbENvbHVtbnM6dHJ1ZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgY29sdW1uLWdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIGFsbENvbHVtbnM7IHRyYWNrIGNvbHVtbjsgbGV0IGluZGV4ID0gJGluZGV4KSB7IEBpZiAoaW5kZXggPiAxKSB7IEBpZiAoY29sdW1uLkFsaWFzXG4gICAgICAgICAgICAgICAgICAgIHwgcnZhbDogaXRlbTphbGxDb2x1bW5zOnRydWU7IGFzIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBjb2x1bW4uQWxpYXMgfX06e3sgdmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gfSB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSBbY2xhc3MubGlzdC1lbXB0eS1pdGVtXT1cIml0ZW0uaXNFbXB0eVwiXG4gICAgICAgICAgICAgICAgPnt7IGl0ZW0uaXNFbXB0eSA/ICgnTm9EYXRhJyB8IGJiYlRyYW5zbGF0ZSkgOiAoaXRlbS4kTW9DYXB0aW9uIHx8IGl0ZW0uJENhcHRpb24gfCBiYmJUcmFuc2xhdGUpIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
429
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFHMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFFbkYsT0FBTyxFQUNILGtCQUFrQixFQUNsQixRQUFRLEVBTVIsa0JBQWtCLEVBR2xCLFdBQVcsRUFFZCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7OztBQVE5QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCO0lBTmpFOztRQXFDSSxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFhcEMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFHNUIsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQXlI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QU1OLElBQUk7c0JBREgsS0FBSztnQkFNTixJQUFJO3NCQURILEtBQUs7Z0JBUU4sSUFBSTtzQkFESCxLQUFLO2dCQVlOLE1BQU07c0JBREwsS0FBSztnQkFNTixXQUFXO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCB0YWtlVW50aWwsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50LCBDb21ib2JveEl0ZW0sIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRmllbGRCYXNlQ29tcG9uZW50LFxuICAgIEJhcnNhQXBpLFxuICAgIFJlcG9ydEV4dHJhSW5mbyxcbiAgICBNb0ZvclJlcG9ydE1vZGVsLFxuICAgIENsYXNzTmFtZXNNb2RlbCxcbiAgICBWaWV3VHlwZXMsXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBQcmV2ZW50RGVmYXVsRXZlbnQsXG4gICAgUGFnaW5nU2V0dGluZyxcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxuICAgIGdldFVuaXF1ZUlkLFxuICAgIEdyaWRWaWV3XG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW8taW5mby11bHYtY29tYm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tby1pbmZvLXVsdi1jb21iby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU1vSW5mb1VsdkNvbWJvQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSB1bHZBZGFwdGVyOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgU2V0dGluZzoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgVmlldzogVmlld1R5cGVzO1xuICAgICAgICAgICAgQ2xhc3NOYW1lczogQ2xhc3NOYW1lc01vZGVsO1xuICAgICAgICAgICAgRXh0cmE6IFJlcG9ydEV4dHJhSW5mbztcbiAgICAgICAgICAgIERhdGE6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBASW5wdXQoKSBDb250cm9sOiBhbnk7XG4gICAgQElucHV0KCkgVWx2TWFpbkN0cmxyOiBhbnk7XG4gICAgQFZpZXdDaGlsZChDb21ib2JveENvbXBvbmVudCkgZmRDb21ib1JlZjogQ29tYm9ib3hDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBzZXQgVWx2VWkodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9VbHZVaSA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlLnZpZXdlckNvbnRyb2wub24oe1xuICAgICAgICAgICAgICAgIE1vRGF0YUxpc3RDaGFuZ2VkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IFVsdlVpKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9VbHZVaTtcbiAgICB9XG5cbiAgICBfVWx2VWk6IGFueTtcbiAgICBpc0V4cGFuZDogYm9vbGVhbjtcbiAgICBzbWFydENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0aWNrUmVmOiBhbnk7XG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlzRmlyc3RMb2FkOiBib29sZWFuO1xuICAgIHBvcG92ZXJFbGVtZW50OiBhbnk7XG4gICAgcmF3VmFsdWU6IHN0cmluZztcbiAgICBmb3JtU2VsZWN0aW9uRGlhbG9nOiBEaWFsb2dSZWY7XG4gICAgaXNPcGVuU2VsZWN0aW9uRGlhbG9nOiBib29sZWFuO1xuICAgIGhhc1JlcG9ydDogYW55O1xuICAgIG9yaWdpbmFsVmFsdWU6IGFueTtcbiAgICBpc0RhdGFMb2FkZWRGaXJzdFRpbWU6IGJvb2xlYW47XG4gICAgdmFsdWVUZXh0OiBzdHJpbmc7XG4gICAgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdID0gW107XG4gICAgaGFzVmFsdWU6IGJvb2xlYW47XG4gICAgY29tYm9ib3hJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgX29wZW5Qb3B1cEZvcm1TZWxlY3Rpb25Tb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2Nsb3NlRGlhbG9nU291cmNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sb2FkaW5nU291cmNlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oZSk6IHZvaWQge1xuICAgICAgICBlID0gbmV3IEJhcnNhQXBpLkV4dC5FdmVudE9iamVjdEltcGwoZSk7XG4gICAgICAgIGNvbnN0IGsgPSBlLmdldEtleSgpO1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBlLkVOVEVSIHx8IGsgPT09IEJhcnNhQXBpLkV4dC5FdmVudE9iamVjdC5UQUIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2tleWRvd24nLCB0aGlzLmNvbnRleHQsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0JywgWyckZXZlbnQnXSlcbiAgICBvbkFsdChlKTogdm9pZCB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tYm9ib3hJZCA9IGdldFVuaXF1ZUlkKDMpO1xuICAgICAgICB0aGlzLl9jaGVja0hhc1ZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLmxvYWRpbmckID0gdGhpcy5fbG9hZGluZ1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMubG9hZGluZyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhTG9hZGVkRmlyc3RUaW1lID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy51bHZBZGFwdGVyPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0ID09PSAnb2JqZWN0JyB8fFxuICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLlVsdlVpPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0ID09PSAnb2JqZWN0JztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc21hcnRDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB0aGlzLl9maWx0ZXJTbWFydENoYW5nZSh2YWx1ZSkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFwKCh2YWx1ZSkgPT4gKHRoaXMucmF3VmFsdWUgPSB2YWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1NtYXJ0Q2hhbmdlJywgdGhpcy5jb250ZXh0LCB2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fY2xvc2VEaWFsb2dTb3VyY2UpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLmhhc1JlcG9ydCA9IHRoaXMuU2V0dGluZy5SZWxhdGlvblZpZXdUeXBlID09PSAnUmVwb3J0VmlldycgfHwgdGhpcy5TZXR0aW5nLlJlcG9ydE5hbWUgPT09ICdIaWVyYXJjaGljYWwnO1xuICAgICAgICB0aGlzLkNvbnRyb2wgPSB0aGlzO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uUGFnaW5nQ2xpY2soZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgfVxuICAgIG9uUGFnZUNoYW5nZShlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgICAgICBpZiAodGhpcy5VbHZVaSkge1xuICAgICAgICAgICAgdGhpcy5VbHZVaS5maXJlRXZlbnQoJ1BhZ2VDaGFuZ2UnLCB0aGlzLlVsdlVpLCBlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIuRGF0YUN0cmxyLk1vdmVUb1BhZ2UoZSwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uSXRlbUNsaWNrKGU6IENvbWJvYm94SXRlbSwgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUl0ZW1TZWxlY3QobW9EYXRhTGlzdCwgZS5pdGVtKTtcbiAgICB9XG4gICAgb25QYWdlQ2hhbmdlMihwYWdlU2V0dGluZzogUGFnaW5nU2V0dGluZywgZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgICAgIGlmICghdGhpcy51bHZBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aGlzLlVsdlVpLmZpcmVFdmVudCgnUGFnZUNoYW5nZScsIHRoaXMuVWx2VWksIHBhZ2VTZXR0aW5nLlBhZ2UgKyAxKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XG4gICAgICAgIGNvbnN0IHVsdkFkYXB0ZXIgPSB0aGlzLnVsdkFkYXB0ZXI7XG4gICAgICAgIGNvbnN0IHRlbXAxID0gdWx2QWRhcHRlci5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdDtcbiAgICAgICAgdGVtcDEuc3BsaWNlKHRlbXAxLmxlbmd0aCAtIDEsIDEpO1xuICAgICAgICBjb25zdCBtb0RhdGFMaXN0T2xkID0gWy4uLnRlbXAxXTtcbiAgICAgICAgbW9EYXRhTGlzdE9sZC5mb3JFYWNoKChjKSA9PiAoYy4kX19Jc0xhc3QgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIuRGF0YUN0cmxyLk1vdmVUb1BhZ2UocGFnZVNldHRpbmcuUGFnZSArIDEsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IHVsdkFkYXB0ZXIuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3Q7XG4gICAgICAgICAgICBtb0RhdGFMaXN0LnNwbGljZSgwLCAwLCAuLi5tb0RhdGFMaXN0T2xkKTtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbk9wZW5DaGFuZ2UoZmRDb21ib2JveCwgaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzKCk7XG4gICAgICAgICAgICAvLyBmZENvbWJvYm94Lm9wZW4gPSBmYWxzZTsgLy8gaXQgY2xvc2UgcG9wdXAgd2hlbiBjbGljayBvbiBkcm9wZG93biBidXR0b24gaW4gY29tcG9uZW50XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFRleHQgPSB0aGlzLmZkQ29tYm9SZWY/LmlucHV0VGV4dFZhbHVlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlICYmIGlucHV0VGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JhaXNlU21hcnRDaGFuZ2UoaW5wdXRUZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvbklucHV0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmFpc2VTbWFydENoYW5nZShlKTtcbiAgICB9XG4gICAgb25JbnB1dENoYW5nZTIoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yYWlzZVNtYXJ0Q2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gICAgb25WYWx1ZUNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JhaXNlVmFsdWVDaGFuZ2VkKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gICAgb25OZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnTmV3Jyk7XG4gICAgfVxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnRGVsZXRlJyk7XG4gICAgfVxuICAgIG9uRWRpdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdFZGl0Jyk7XG4gICAgfVxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ1BvcHVwJyk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgY3VzdG9tRmlsdGVyKGNvbnRlbnQ6IGFueVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cblxuICAgIGRpc3BsYXlGdW5jID0gKG9iajogTWV0YW9iamVjdERhdGFNb2RlbCkgPT4ge1xuICAgICAgICBpZiAob2JqKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKG9iaiwgY29sTmFtZSwgb2JqLiRDYXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfTtcbiAgICBnZXRNb1ZhbHVlQ2FwdGlvbih2YWx1ZU1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCwgY29sTmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh2YWx1ZU1vID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjYXB0aW9uVmFsdWVNbztcbiAgICAgICAgY29uc3QgbW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlcixcbiAgICAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXG4gICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb3VuZGVkTW8gPSBtb2xpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gdmFsdWVNby5JZCk7XG4gICAgICAgIGlmIChjb2xOYW1lICYmIGZvdW5kZWRNbyAmJiBmb3VuZGVkTW9bY29sTmFtZV0pIHtcbiAgICAgICAgICAgIGlmIChmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZGVkTW9bY29sTmFtZV0uJENhcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXB0aW9uVmFsdWVNbyA9IGZvdW5kZWRNb1tjb2xOYW1lXS4kQ2FwdGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKGNhcHRpb25WYWx1ZU1vIHx8IGRlZmF1bHRWYWx1ZSk7XG4gICAgfVxuICAgIGdldEZpcnN0Q29sdW1uTmFtZSgpIHtcbiAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xuICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIgJiYgdGhpcy5VbHZNYWluQ3RybHI/LkRkPy5TZXR0aW5nPy5WaWV3KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3LkNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbCA9IHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldy5Db2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChjKSA9PiAhYy5OYW1lLnN0YXJ0c1dpdGgoJyQnKSAmJiBjLk5hbWUgIT09ICdJZCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdENvbD8uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb2xOYW1lID0gZmlyc3RDb2wuTmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbE5hbWU7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBJc0V4cGFuZGVkID0gKHR5cGUpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdEZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mZENvbWJvUmVmPy5wb3BvdmVyQ29tcG9uZW50Py5pc09wZW47XG4gICAgfTtcbiAgICAvLyByZXR1cm4gdGhpcy5jb21ib1JlZi5uYXRpdmVFbGVtZW50LnJlc3BvbnNpdmVQb3BvdmVyLmlzT3BlbigpO1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgQ29sbGFwc2UgPSAodHlwZSkgPT4ge307XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBFeHBhbmQgPSAodHlwZSkgPT4ge1xuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIgPSB0aGlzLlVsdk1haW5DdHJsclt0eXBlXTtcbiAgICB9O1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgb24gPSAoKSA9PiB7fTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIEZvY3VzID0gKCkgPT4ge307XG4gICAgQElucHV0KClcbiAgICBTZXRVbHZBZGFwdGVyID0gKHR5cGUsIHVsdkFkYXB0ZXIpID0+IHtcbiAgICAgICAgdGhpcy51bHZBZGFwdGVyID0gdWx2QWRhcHRlcjtcbiAgICAgICAgdGhpcy5fc2V0Q29sdW1ucygpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBJc1VpQ3JlYXRlZCA9ICh0eXBlKSA9PiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBNYXNrID0gKHR5cGUpID0+IHtcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBoaWRlID0gKHR5cGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVNlbGVjdGlvbkRpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5mb3JtU2VsZWN0aW9uRGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuICAgIEBJbnB1dCgpXG4gICAgc2hvdyA9ICh0eXBlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLlVsdlVpICYmICF0aGlzLmlzT3BlblNlbGVjdGlvbkRpYWxvZyAmJiB0aGlzLmNvbnRleHQuX3Nob3dQb3B1cCkge1xuICAgICAgICAgICAgdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZS5uZXh0KCk7IC8vIHJhYmV0ZSB0YWtpIGdlbmVyYWwgaW5mbyAucG9wdXAgYmF6IG1pc2hvZCBrZSBiYWlhZCBkcm9wZG93biBiYXNoZS5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmRDb21ib1JlZiAmJiAodGhpcy5mZENvbWJvUmVmLm9wZW4gPSB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcbiAgICBASW5wdXQoKVxuICAgIFVubWFzayA9ICh0eXBlKSA9PiB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcbiAgICBASW5wdXQoKVxuICAgIGdldFJhd1ZhbHVlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdWYWx1ZTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVJdGVtU2VsZWN0KG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChjKSA9PiAoYy4kSXNDaGVja2VkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKG1vKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2NoZWNrSGFzVmFsdWUodmFsdWUpO1xuICAgICAgICBzdXBlci5fc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAvLyB0aGlzLl9zZXRDb21ib1RleHQodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NoZWNrSGFzVmFsdWUodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlVGV4dCh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlVGV4dCA9IHRoaXMuX2dldFZhbHVlVGV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3NldENvbWJvVGV4dCh0aGlzLnZhbHVlVGV4dCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0VmFsdWVUZXh0KHZhbHVlKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLiRDYXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnICYmIHZhbHVlICYmIHRoaXMuVWx2TWFpbkN0cmxyICYmIHRoaXMuVWx2TWFpbkN0cmxyLkRkKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3O1xuICAgICAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xuICAgICAgICAgICAgaWYgKHZpZXcuQ29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29sID0gdmlldy5Db2x1bW5zLmZpbmQoKGMpID0+ICFjLk5hbWUuc3RhcnRzV2l0aCgnJCcpICYmIGMuTmFtZSAhPT0gJ0lkJyk7XG4gICAgICAgICAgICAgICAgY29sTmFtZSA9IGZpcnN0Q29sPy5OYW1lID8gZmlyc3RDb2wuTmFtZSA6ICckQ2FwdGlvbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Q29tYm9UZXh0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gdGhpcy5fdmFsdWVNbyA9IG51bGw7XG4gICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLmlucHV0VGV4dFZhbHVlID0gJyc7XG4gICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgY29uc3QgZmRDb21ib1JlZiA9IHRoaXMuZmRDb21ib1JlZjtcbiAgICAgICAgY29uc3QgaW5wdXRUZXh0ID0gZmRDb21ib1JlZj8uaW5wdXRUZXh0VmFsdWU7XG4gICAgICAgIGlmIChmZENvbWJvUmVmICYmIHZhbHVlICE9IGlucHV0VGV4dCkge1xuICAgICAgICAgICAgLy8gY29uc3QgVWx2TWFpbkN0cmxyID0gdGhpcy5VbHZNYWluQ3RybHI7XG4gICAgICAgICAgICAvLyBpZiAoVWx2TWFpbkN0cmxyICYmIFVsdk1haW5DdHJsci5EZCkge1xuICAgICAgICAgICAgLy8gICAgIGNvbnN0IHZpZXcgPSBVbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3O1xuICAgICAgICAgICAgLy8gICAgIGxldCBjb2xOYW1lID0gJyRDYXB0aW9uJztcbiAgICAgICAgICAgIC8vICAgICBpZiAodmlldy5Db2x1bW5zKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbnN0IGZpcnN0Q29sID0gdmlldy5Db2x1bW5zLmZpbmQoKGMpID0+ICFjLk5hbWUuc3RhcnRzV2l0aCgnJCcpICYmIGMuTmFtZSAhPT0gJ0lkJyk7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbE5hbWUgPSBmaXJzdENvbD8uTmFtZSA/IGZpcnN0Q29sLk5hbWUgOiAnJENhcHRpb24nO1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vICAgICB2YWx1ZSA9IHRoaXMuZ2V0TW9WYWx1ZUNhcHRpb24odGhpcy5fdmFsdWVNbywgY29sTmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgZmRDb21ib1JlZi5pbnB1dFRleHQgPSB2YWx1ZSA/IHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKHZhbHVlKSArICcnIDogJyc7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5pc09wZW5TZWxlY3Rpb25EaWFsb2cgPSB0cnVlO1xuICAgICAgICB0aGlzLlVsdlVpLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IHRydWU7IC8vIHRoaXMgaXMgdXNlZnVsIHRvIHVsdiBtYW5hZ2UgdG9vbGJhciBidXR0b25zLmZvciBleGFtcGxlIG1vdmUgaW4gdHJlZSBkb2VzIG5vdCBzaG93blxuICAgICAgICB0aGlzLmZvcm1TZWxlY3Rpb25EaWFsb2cgPSBCYXJzYUFwaS5Cdy5VbHZGb3JtTXVsdGlTZWxlY3QuU2hvdyh0aGlzLmNvbnRleHQsIHtcbiAgICAgICAgICAgIHVsdjE6IHRoaXMuVWx2VWksXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdCcpLFxuICAgICAgICAgICAgSXNMb2FkZWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5TZWxlY3Rpb25EaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclNtYXJ0Q2hhbmdlKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBjYW5SZXF1ZXN0ID0gKHRoaXMudWx2QWRhcHRlciB8fCB0aGlzLlVsdlVpKSAmJiB2YWx1ZSAhPT0gdGhpcy52YWx1ZTtcbiAgICAgICAgLy8gaWYgKGNhblJlcXVlc3QpIHtcbiAgICAgICAgLy8gICAgIGNvbnN0IG1vbGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgIC8vICAgICAgICAgdGhpcy51bHZBZGFwdGVyLFxuICAgICAgICAvLyAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXG4gICAgICAgIC8vICAgICAgICAgW11cbiAgICAgICAgLy8gICAgICk7XG4gICAgICAgIC8vICAgICBpZiAoIW1vbGlzdCkge1xuICAgICAgICAvLyAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyAgICAgY29uc3QgY29sTmFtZSA9IHRoaXMuZ2V0Rmlyc3RDb2x1bW5OYW1lKCk7XG5cbiAgICAgICAgLy8gICAgIGNvbnN0IGZpbmRNbyA9IG1vbGlzdC5maW5kKChtbykgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGNhcHRpb24gPSB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKG1vLCBjb2xOYW1lLCBtby4kQ2FwdGlvbik7XG4gICAgICAgIC8vICAgICAgICAgcmV0dXJuIGNhcHRpb24gPT09IHZhbHVlO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vICAgICBpZiAoZmluZE1vKSB7XG4gICAgICAgIC8vICAgICAgICAgY2FuUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAvLyAgICAgICAgIC8vdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKGZpbmRNbyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgcmV0dXJuIGNhblJlcXVlc3Q7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Q29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdWx2QWRhcHRlciA9IHRoaXMudWx2QWRhcHRlcjtcbiAgICAgICAgY29uc3QgdmlldyA9IDxHcmlkVmlldz51bHZBZGFwdGVyPy5TZXR0aW5nPy5WaWV3O1xuICAgICAgICBpZiAodmlldyAmJiB2aWV3LkNvbHVtbnM/Lmxlbmd0aCAmJiB0aGlzLmFsbENvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFsbENvbHVtbnMgPSB2aWV3LkNvbHVtbnMuZmlsdGVyKChjKSA9PiBOdW1iZXIoYy5NZXRhRmllbGRUeXBlSWQpID4gMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdOb3JtYWwnKTtcbiAgICAgICAgdGhpcy5fc2V0Q29sdW1ucygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmFpc2VTbWFydENoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNtYXJ0Q2hhbmdlLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdHJpZ2dlckNsaWNrKGV2ZW50TmFtZSwgdmFsdWUgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1RyaWdnZXJDbGljaycsIHRoaXMuY29udGV4dCwgZXZlbnROYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yYWlzZVZhbHVlQ2hhbmdlZChjYXB0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjYXB0aW9uO1xuICAgICAgICBjb25zdCBtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy51bHZBZGFwdGVyLFxuICAgICAgICAgICAgJ1NldHRpbmcuRGF0YS5Nb0RhdGFMaXN0JyxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICk7XG4gICAgICAgIGlmICghbW9saXN0IHx8IG1vbGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvL2NvbnN0IGNvbE5hbWUgPSB0aGlzLmdldEZpcnN0Q29sdW1uTmFtZSgpO1xuXG4gICAgICAgIGNvbnN0IG1vID0gbW9saXN0LmZpbmQoKGMpID0+IGMuJENhcHRpb24gPT09IGlucHV0VmFsdWUpO1xuICAgICAgICBpZiAoIW1vKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbW9saXN0LmZvckVhY2goKGMpID0+IChjLiRJc0NoZWNrZWQgPSBmYWxzZSkpO1xuXG4gICAgICAgIHRoaXMuX2ZpcmVWYWx1ZUNoYW5nZShtbyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZmlyZVZhbHVlQ2hhbmdlKG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBtbztcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5fc2V0Q29tYm9UZXh0KG1vLiRDYXB0aW9uKTtcbiAgICAgICAgLy8gdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKHRoaXMuVWx2VWkpIHtcbiAgICAgICAgICAgIHRoaXMuVWx2VWkudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ3Jvd2NsaWNrJywgdGhpcy5VbHZVaSwgMCwgbW8pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudWx2QWRhcHRlcikge1xuICAgICAgICAgICAgdGhpcy51bHZBZGFwdGVyLlZpZXdlckFkYXB0ZXIuZmlyZUV2ZW50KFxuICAgICAgICAgICAgICAgIEJhcnNhQXBpLlVsLlVsdk1haW5DdHJsci5FdmVudEVudW0uSXRlbUNsaWNrLFxuICAgICAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlci5WaWV3ZXJBZGFwdGVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRoaXMuX3RyaWdnZXJDbGljaygnSXRlbVNlbGVjdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBjb21ib1RlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6XG4gICAgICAgICAgICAgICAgKGxvYWRpbmckIHwgYXN5bmMpID09PSB0cnVlXG4gICAgICAgICAgICAgICAgfCBtb0luZm9VbHZNb0xpc3RcbiAgICAgICAgICAgICAgICAgICAgOiBpc0RhdGFMb2FkZWRGaXJzdFRpbWVcbiAgICAgICAgICAgICAgICAgICAgOiB1bHZBZGFwdGVyPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgIDogVWx2VWk/LlNldHRpbmc/LkRhdGE/Lk1vRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgOiB1bHZBZGFwdGVyPy5TZXR0aW5nPy5EYXRhPy5QYWdpbmdcbiAgICAgICAgICAgICAgICAgICAgOiBVbHZVaT8uU2V0dGluZz8uRGF0YT8uUGFnaW5nLFxuICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGVPclJlYWRvbmx5OiBkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGU6IGRpc2FibGUkIHwgYXN5bmMsXG4gICAgICAgICAgICByZWFkb25seTogcmVhZG9ubHkkIHwgYXN5bmMsXG4gICAgICAgICAgICBpc1NlYXJjaDogY29udGV4dC5fc2hvd1BvcHVwIHx8IGNvbnRleHQuX3Nob3dEcm9wRG93biA9PT0gZmFsc2VcbiAgICAgICAgfVxuICAgIFwiXG4+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNidG5zVHBsIGxldC1kaXNhYmxlT3JSZWFkb25seT1cImRpc2FibGVPclJlYWRvbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImV4dHJhLWJ1dHRvbnMgZmQtaW5wdXQtZ3JvdXAgZmQtaW5wdXQtZ3JvdXAtLWNvbnRyb2xcIj5cbiAgICAgICAgQGlmIChoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiIGZkLWlucHV0LWdyb3VwLWFkZG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DbGVhcigpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfSBAaWYgKCFoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSAmJiBTZXR0aW5nLlNob3dOZXdCdXR0b24pIHtcbiAgICAgICAgPHNwYW4gZmQtaW5wdXQtZ3JvdXAtYWRkb24gY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiBjb21iby1wb3B1cC1idG5cIj5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJhZGRcIiAoY2xpY2spPVwib25OZXcoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gQGlmIChoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSAmJiBTZXR0aW5nLlZpZXdSZWxhdGVkRm9ybVR5cGUgIT09ICdIaWRlJykge1xuICAgICAgICA8c3BhbiBmZC1pbnB1dC1ncm91cC1hZGRvbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImVkaXRcIiAoY2xpY2spPVwib25FZGl0KClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9IEBpZiAoY29udGV4dC5fc2hvd1BvcHVwICYmICF2YWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgICA8c3BhbiBmZC1pbnB1dC1ncm91cC1hZGRvbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cInNlYXJjaFwiIChjbGljayk9XCJvblNlYXJjaCgpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb21ib1RlbXBsYXRlXG4gICAgbGV0LW1vRGF0YUxpc3RcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxuICAgIGxldC1kaXNhYmxlT3JSZWFkb25seT1cImRpc2FibGVPclJlYWRvbmx5XCJcbiAgICBsZXQtZGlzYWJsZT1cImRpc2FibGVcIlxuICAgIGxldC1yZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICBsZXQtaXNTZWFyY2g9XCJpc1NlYXJjaFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInNpbXBsZS1jb21iby13cmFwcGVyXCI+XG4gICAgICAgIDxmZC1jb21ib2JveFxuICAgICAgICAgICAgI2ZkQ29tYm9ib3hcbiAgICAgICAgICAgIGNsYXNzPVwiY29tYm8tbW8tdWx2XCJcbiAgICAgICAgICAgIFtjbGFzcy5jYW5BZGRdPVwiIWhhc1ZhbHVlICYmIGRpc2FibGVPclJlYWRvbmx5ICE9PSB0cnVlICYmIFNldHRpbmcuU2hvd05ld0J1dHRvblwiXG4gICAgICAgICAgICBbY2xhc3MuY2FuRWRpdF09XCJoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZW9ycmVhZG9ubHldPVwiZGlzYWJsZU9yUmVhZG9ubHkgPT09IHRydWVcIlxuICAgICAgICAgICAgW2NvbWJvYm94SWRdPVwiY29tYm9ib3hJZFwiXG4gICAgICAgICAgICBbY2xhc3MuaGFzLVZhbHVlXT1cImhhc1ZhbHVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiXG4gICAgICAgICAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgICAgICAgICBbZmlsbE9uU2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5ID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgIFtkcm9wZG93blZhbHVlc109XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgICAgIFtmaWx0ZXJGbl09XCJjdXN0b21GaWx0ZXJcIlxuICAgICAgICAgICAgW29wZW5PbktleWJvYXJkRXZlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYnlsaW5lXT1cImFsbENvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICBbaXNTZWFyY2hdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5RnVuY1wiXG4gICAgICAgICAgICBbc2hvd0Ryb3Bkb3duQnV0dG9uXT1cImNvbnRleHQuX3Nob3dEcm9wRG93biAhPT0gZmFsc2UgJiYgZGlzYWJsZU9yUmVhZG9ubHkgIT09IHRydWVcIlxuICAgICAgICAgICAgKGl0ZW1DbGlja2VkKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgbW9EYXRhTGlzdClcIlxuICAgICAgICAgICAgKGlucHV0VGV4dENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKGZkQ29tYm9ib3gsICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY29tYm9ib3g+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnRuc1RwbDsgY29udGV4dDogeyBkaXNhYmxlT3JSZWFkb25seTogdGhpcy5kaXNhYmxlT3JSZWFkb25seSB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICBAaWYgKGl0ZW0uJGlzTG9hZGluZykge1xuICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudCBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDIwcHhcIj5cbiAgICAgICAgICAgIDxic3UtbWFzayBbc2l6ZV09XCIncydcIiBbdG9wXT1cIicxMHB4J1wiPjwvYnN1LW1hc2s+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLiRMb2FkTW9yZSA/IGxvYWRNb3JlQnV0dG9uIDogc2hvd0l0ZW07IGNvbnRleHQ6IHsgdWx2OiB1bHZBZGFwdGVyIHx8IFVsdlVpIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZE1vcmVCdXR0b24gbGV0LXVsdj1cInVsdlwiPlxuICAgICAgICAgICAgQGlmICh1bHYpIHtcbiAgICAgICAgICAgIDxic3UtdWx2LXBhZ2luZ1xuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhZ2luZ0NsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcGFnaW5nU2V0dGluZ109XCJ1bHYuU2V0dGluZy5EYXRhLlBhZ2luZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2JzdS11bHYtcGFnaW5nPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxuICAgICAgICAqbmdJZj1cInVsdiAmJiB1bHYuU2V0dGluZy5EYXRhLlBhZ2luZy5QYWdlICsgMSA8IHVsdi5TZXR0aW5nLkRhdGEuUGFnaW5nLlRvdGFsUGFnZXNcIlxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9uUGFnZUNoYW5nZTIodWx2LlNldHRpbmcuRGF0YS5QYWdpbmcsICRldmVudClcIlxuICAgICAgICBbbGFiZWxdPVwiJ01vcmUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgID48L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0l0ZW0+XG4gICAgICAgICAgICBAaWYgKGFsbENvbHVtbnM/Lmxlbmd0aCAmJiAhaXRlbS5pc0VtcHR5KSB7IEBpZiAoIWl0ZW0uJF9fSXNMYXN0KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9pbmZvdWx2IGRldmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIH0gQGlmIChpdGVtLiRJY29uKSB7XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRodW1ibmFpbD48ZmQtaWNvbiBbZ2x5cGhdPVwiaXRlbS4kSWNvblwiPjwvZmQtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudCBjbGFzcz1cIm1vaW5mb3VsdiBoYXNDb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlIGNsYXNzPVwidGl0bGVcIj57eyBhbGxDb2x1bW5zWzBdLkFsaWFzIHwgcnZhbDogaXRlbTphbGxDb2x1bW5zOnRydWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGFsbENvbHVtbnNbMV0pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lIGNsYXNzPVwiYnlsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFsbENvbHVtbnNbMV0uQWxpYXMgfCBydmFsOiBpdGVtOmFsbENvbHVtbnM6dHJ1ZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgY29sdW1uLWdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIGFsbENvbHVtbnM7IHRyYWNrIGNvbHVtbjsgbGV0IGluZGV4ID0gJGluZGV4KSB7IEBpZiAoaW5kZXggPiAxKSB7IEBpZiAoY29sdW1uLkFsaWFzXG4gICAgICAgICAgICAgICAgICAgIHwgcnZhbDogaXRlbTphbGxDb2x1bW5zOnRydWU7IGFzIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBjb2x1bW4uQWxpYXMgfX06e3sgdmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gfSB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSBbY2xhc3MubGlzdC1lbXB0eS1pdGVtXT1cIml0ZW0uaXNFbXB0eVwiXG4gICAgICAgICAgICAgICAgPnt7IGl0ZW0uaXNFbXB0eSA/ICgnTm9EYXRhJyB8IGJiYlRyYW5zbGF0ZSkgOiAoaXRlbS4kTW9DYXB0aW9uIHx8IGl0ZW0uJENhcHRpb24gfCBiYmJUcmFuc2xhdGUpIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -15,14 +15,14 @@ export class UiMonacoEditorComponent extends DeviceInfoFieldBaseComponent {
|
|
|
15
15
|
this._editor.setValue(value);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMonacoEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiMonacoEditorComponent, selector: "bsu-ui-monaco-editor", viewQueries: [{ propertyName: "_editor", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-monaco-editor\n #editor\n *untilInView=\"el\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n></bsu-barsa-monaco-editor>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i2.BarsaMonacoEditorComponent, selector: "bsu-barsa-monaco-editor", inputs: ["value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMonacoEditorComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
23
|
args: [{ selector: 'bsu-ui-monaco-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-monaco-editor\n #editor\n *untilInView=\"el\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n></bsu-barsa-monaco-editor>\n", styles: [":host{display:block}\n"] }]
|
|
24
24
|
}], propDecorators: { _editor: [{
|
|
25
25
|
type: ViewChild,
|
|
26
26
|
args: ['editor', { static: false }]
|
|
27
27
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW9uYWNvLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tb25hY28tZWRpdG9yL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW9uYWNvLWVkaXRvci91aS1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBU3pFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw0QkFBNEI7SUFHckUsYUFBYSxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDa0IsU0FBUyxDQUFDLEtBQVU7UUFDbkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOytHQWJRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHNMQ1ZwQyxtS0FNQTs7NEZESWEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdQLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xuaW1wb3J0IHsgQmFyc2FNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9iYXJzYS1tb25hY28tZWRpdG9yL2JhcnNhLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW9uYWNvLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU1vbmFjb0VkaXRvckNvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBfZWRpdG9yOiBCYXJzYU1vbmFjb0VkaXRvckNvbXBvbmVudDtcblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRleHQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY2hhbmdlJywgdGhpcywgdmFsdWUsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxic3UtYmFyc2EtbW9uYWNvLWVkaXRvclxuICAgICNlZGl0b3JcbiAgICAqdW50aWxJblZpZXc9XCJlbFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbj48L2JzdS1iYXJzYS1tb25hY28tZWRpdG9yPlxuIl19
|
|
@@ -27,11 +27,11 @@ export class UiMultiSelectCardComponent extends UiMultiSelectComboComponent {
|
|
|
27
27
|
this.value = item.id;
|
|
28
28
|
this._raiseValueChanged();
|
|
29
29
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMultiSelectCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiMultiSelectCardComponent, selector: "bsu-ui-multi-select-card", usesInheritance: true, ngImport: i0, template: "<fd-form-group [isInline]=\"!parameters?.IsVertically && !(isMobile && parameters?.OnlyInMobileVertically)\">\n @for (item of dataList; track item; let i = $index; let first = $first) {\n <div fd-form-item>\n <fd-card>\n <fd-card-content>\n <img\n width=\"90px\"\n [src]=\"item.fileId | picFieldSrc: 'PictureFileInfo':item.Id:item.fieldDefId\"\n [alt]=\"item.txt\"\n [attr.aria-label]=\"item.txt\"\n [title]=\"item.txt\"\n />\n </fd-card-content>\n <fd-card-header (click)=\"onRadioClicked(item)\">\n <fd-card-main-header>\n <fd-radio-button\n fd-card-title\n [value]=\"item.id\"\n [id]=\"'radio-' + id + i\"\n [name]=\"'radio' + id + i\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [ngModel]=\"value\"\n [selectedValue]=\"value\"\n >\n {{ item.txt }}\n </fd-radio-button>\n </fd-card-main-header>\n </fd-card-header>\n </fd-card>\n </div>\n }\n</fd-form-group>\n", styles: [":host{display:block;width:100%;height:100%}:host div[fd-form-item]{margin:0 .5rem}fd-form-group{row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i2.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i2.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i2.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i2.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormGroupComponent, selector: "fd-form-group", inputs: ["isInline"] }, { kind: "component", type: i4.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMultiSelectCardComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ selector: 'bsu-ui-multi-select-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-form-group [isInline]=\"!parameters?.IsVertically && !(isMobile && parameters?.OnlyInMobileVertically)\">\n @for (item of dataList; track item; let i = $index; let first = $first) {\n <div fd-form-item>\n <fd-card>\n <fd-card-content>\n <img\n width=\"90px\"\n [src]=\"item.fileId | picFieldSrc: 'PictureFileInfo':item.Id:item.fieldDefId\"\n [alt]=\"item.txt\"\n [attr.aria-label]=\"item.txt\"\n [title]=\"item.txt\"\n />\n </fd-card-content>\n <fd-card-header (click)=\"onRadioClicked(item)\">\n <fd-card-main-header>\n <fd-radio-button\n fd-card-title\n [value]=\"item.id\"\n [id]=\"'radio-' + id + i\"\n [name]=\"'radio' + id + i\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [ngModel]=\"value\"\n [selectedValue]=\"value\"\n >\n {{ item.txt }}\n </fd-radio-button>\n </fd-card-main-header>\n </fd-card-header>\n </fd-card>\n </div>\n }\n</fd-form-group>\n", styles: [":host{display:block;width:100%;height:100%}:host div[fd-form-item]{margin:0 .5rem}fd-form-group{row-gap:1rem}\n"] }]
|
|
36
36
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbXVsdGktc2VsZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbXVsdGktc2VsZWN0LWNhcmQvdWktbXVsdGktc2VsZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbXVsdGktc2VsZWN0LWNhcmQvdWktbXVsdGktc2VsZWN0LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOzs7Ozs7OztBQVF2RyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMkJBQTJCO0lBTjNFOztRQU9JLGtCQUFhLEdBQWtDLEVBQUUsQ0FBQztRQUdsRCxPQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBY3ZCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsZUFBZTtRQUNYLG9DQUFvQztRQUNwQyw4QkFBOEI7SUFDbEMsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBakJRLDBCQUEwQjttR0FBMUIsMEJBQTBCLHVGQ1Z2Qyx5ekNBZ0NBOzs0RkR0QmEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRVbmlxdWVJZCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpTXVsdGlTZWxlY3RDb21ib0NvbXBvbmVudCB9IGZyb20gJy4uL3VpLW11bHRpLXNlbGVjdC1jb21iby91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbXVsdGktc2VsZWN0LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tdWx0aS1zZWxlY3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbXVsdGktc2VsZWN0LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU11bHRpU2VsZWN0Q2FyZENvbXBvbmVudCBleHRlbmRzIFVpTXVsdGlTZWxlY3RDb21ib0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBzZWxlY3RlZEl0ZW1zOiB7IGlkOiBzdHJpbmc7IHR4dDogc3RyaW5nIH1bXSA9IFtdO1xuICAgIG1heFdpZHRoOiBhbnk7XG4gICAgZGF0YUxpc3Q6IGFueTtcbiAgICBpZCA9IGdldFVuaXF1ZUlkKDQpO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdUcmlnZ2VyQ2xpY2snLCB0aGlzLmNvbnRleHQsICcnKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBvdmVycmllZGUgcGFyZW50IHRvIGF2b2lkIGRvIG1vcmVcbiAgICAgICAgLy8gc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG4gICAgfVxuICAgIG9uUmFkaW9DbGlja2VkKGl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBpdGVtLmlkO1xuICAgICAgICB0aGlzLl9yYWlzZVZhbHVlQ2hhbmdlZCgpO1xuICAgIH1cbn1cbiIsIjxmZC1mb3JtLWdyb3VwIFtpc0lubGluZV09XCIhcGFyYW1ldGVycz8uSXNWZXJ0aWNhbGx5ICYmICEoaXNNb2JpbGUgJiYgcGFyYW1ldGVycz8uT25seUluTW9iaWxlVmVydGljYWxseSlcIj5cbiAgICBAZm9yIChpdGVtIG9mIGRhdGFMaXN0OyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleDsgbGV0IGZpcnN0ID0gJGZpcnN0KSB7XG4gICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgIDxmZC1jYXJkPlxuICAgICAgICAgICAgPGZkLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOTBweFwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5maWxlSWQgfCBwaWNGaWVsZFNyYzogJ1BpY3R1cmVGaWxlSW5mbyc6aXRlbS5JZDppdGVtLmZpZWxkRGVmSWRcIlxuICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0udHh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLnR4dFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnR4dFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZmQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGZkLWNhcmQtaGVhZGVyIChjbGljayk9XCJvblJhZGlvQ2xpY2tlZChpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDxmZC1jYXJkLW1haW4taGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1jYXJkLXRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3JhZGlvLScgKyBpZCArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3JhZGlvJyArIGlkICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50eHQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZC1jYXJkLW1haW4taGVhZGVyPlxuICAgICAgICAgICAgPC9mZC1jYXJkLWhlYWRlcj5cbiAgICAgICAgPC9mZC1jYXJkPlxuICAgIDwvZGl2PlxuICAgIH1cbjwvZmQtZm9ybS1ncm91cD5cbiJdfQ==
|
|
@@ -49,11 +49,11 @@ export class UiMultiSelectCheckboxComponent extends UiMultiSelectComboComponent
|
|
|
49
49
|
this.value = this.selectedItems.map((c) => (typeof c === 'string' ? c : c.id)).join(',');
|
|
50
50
|
this._raiseValueChanged();
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMultiSelectCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiMultiSelectCheckboxComponent, selector: "bsu-ui-multi-select-checkbox", usesInheritance: true, ngImport: i0, template: "<fd-form-group [isInline]=\"!parameters?.IsVertically && !(isMobile && parameters?.OnlyInMobileVertically)\">\n @for (item of dataList; track item; let i = $index; let first = $first) {\n <div fd-form-item>\n <fd-checkbox\n [id]=\"id + i\"\n (change)=\"onCheckedChange(item)\"\n [ngModel]=\"item.checked\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [label]=\"item.txt\"\n >\n </fd-checkbox>\n </div>\n }\n</fd-form-group>\n", styles: [":host{display:block;width:100%;height:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormGroupComponent, selector: "fd-form-group", inputs: ["isInline"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
54
54
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMultiSelectCheckboxComponent, decorators: [{
|
|
56
56
|
type: Component,
|
|
57
57
|
args: [{ selector: 'bsu-ui-multi-select-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-form-group [isInline]=\"!parameters?.IsVertically && !(isMobile && parameters?.OnlyInMobileVertically)\">\n @for (item of dataList; track item; let i = $index; let first = $first) {\n <div fd-form-item>\n <fd-checkbox\n [id]=\"id + i\"\n (change)=\"onCheckedChange(item)\"\n [ngModel]=\"item.checked\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [label]=\"item.txt\"\n >\n </fd-checkbox>\n </div>\n }\n</fd-form-group>\n", styles: [":host{display:block;width:100%;height:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}\n"] }]
|
|
58
58
|
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbXVsdGktc2VsZWN0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLW11bHRpLXNlbGVjdC1jaGVja2JveC91aS1tdWx0aS1zZWxlY3QtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbXVsdGktc2VsZWN0LWNoZWNrYm94L3VpLW11bHRpLXNlbGVjdC1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7OztBQVF2RyxNQUFNLE9BQU8sOEJBQ1QsU0FBUSwyQkFBMkI7SUFQdkM7O1FBVUksa0JBQWEsR0FBa0MsRUFBRSxDQUFDO1FBR2xELE9BQUUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7S0F1Q3ZCO0lBdENHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVTLFlBQVk7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsZUFBZTtRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sWUFBWSxHQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sY0FBYyxHQUFvRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUIsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsZUFBZTtRQUNYLG9DQUFvQztRQUNwQyw4QkFBOEI7SUFDbEMsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFJO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBN0NRLDhCQUE4QjttR0FBOUIsOEJBQThCLDJGQ1YzQyx3Z0JBY0E7OzRGREphLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRVbmlxdWVJZCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpTXVsdGlTZWxlY3RDb21ib0NvbXBvbmVudCB9IGZyb20gJy4uL3VpLW11bHRpLXNlbGVjdC1jb21iby91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbXVsdGktc2VsZWN0LWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbXVsdGktc2VsZWN0LWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tdWx0aS1zZWxlY3QtY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU11bHRpU2VsZWN0Q2hlY2tib3hDb21wb25lbnRcbiAgICBleHRlbmRzIFVpTXVsdGlTZWxlY3RDb21ib0NvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICAgIHNlbGVjdGVkSXRlbXM6IHsgaWQ6IHN0cmluZzsgdHh0OiBzdHJpbmcgfVtdID0gW107XG4gICAgbWF4V2lkdGg6IGFueTtcbiAgICBkYXRhTGlzdDogYW55O1xuICAgIGlkID0gZ2V0VW5pcXVlSWQoNCk7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVHJpZ2dlckNsaWNrJywgdGhpcy5jb250ZXh0LCAnJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZXREYXRhTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSB0aGlzLmNvbnRleHQuc3RvcmU7XG4gICAgICAgIHRoaXMuZGF0YUxpc3QgPSBzdG9yZS5kYXRhW3N0b3JlLnJvb3RdO1xuICAgICAgICB0aGlzLl9oYW5kbGVTZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBfaGFuZGxlU2V0VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5jb250ZXh0LnN0b3JlO1xuICAgICAgICBjb25zdCBzcGxpdGVkVmFsdWU6IHN0cmluZ1tdID0gdGhpcy52YWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICBjb25zdCBkcm9wRG93blZhbHVlczogeyBpZDogc3RyaW5nOyB0eHQ6IHN0cmluZzsgY2hlY2tlZDogYm9vbGVhbiB9W10gPSBzdG9yZS5kYXRhW3N0b3JlLnJvb3RdO1xuICAgICAgICBkcm9wRG93blZhbHVlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHNwbGl0ZWRWYWx1ZS5maW5kKChjKSA9PiBjID09PSBpdGVtLmlkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIG92ZXJyaWVkZSBwYXJlbnQgdG8gYXZvaWQgZG8gbW9yZVxuICAgICAgICAvLyBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcbiAgICB9XG4gICAgb25DaGVja2VkQ2hhbmdlKGl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5jaGVja2VkID0gIWl0ZW0uY2hlY2tlZDtcbiAgICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjLmlkID09PSBpdGVtLmlkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZEl0ZW1zLm1hcCgoYykgPT4gKHR5cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOiBjLmlkKSkuam9pbignLCcpO1xuICAgICAgICB0aGlzLl9yYWlzZVZhbHVlQ2hhbmdlZCgpO1xuICAgIH1cbn1cbiIsIjxmZC1mb3JtLWdyb3VwIFtpc0lubGluZV09XCIhcGFyYW1ldGVycz8uSXNWZXJ0aWNhbGx5ICYmICEoaXNNb2JpbGUgJiYgcGFyYW1ldGVycz8uT25seUluTW9iaWxlVmVydGljYWxseSlcIj5cbiAgICBAZm9yIChpdGVtIG9mIGRhdGFMaXN0OyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleDsgbGV0IGZpcnN0ID0gJGZpcnN0KSB7XG4gICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgW2lkXT1cImlkICsgaVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tlZENoYW5nZShpdGVtKVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS50eHRcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY2hlY2tib3g+XG4gICAgPC9kaXY+XG4gICAgfVxuPC9mZC1mb3JtLWdyb3VwPlxuIl19
|