barsa-sap-ui 2.2.1 → 2.2.3
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/barsa-sap-ui.mjs +5 -0
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +90 -0
- package/esm2022/lib/avatar-size.pipe.mjs +41 -0
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +145 -0
- package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +23 -0
- package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -0
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
- package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +24 -0
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +31 -0
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
- package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -0
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +242 -0
- package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +66 -0
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +78 -0
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
- package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -0
- package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +14 -0
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +40 -0
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +58 -0
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
- package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +57 -0
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
- package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -0
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +102 -0
- package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +26 -0
- package/esm2022/lib/barsa-sap-ui-routing.module.mjs +18 -0
- package/esm2022/lib/barsa-sap-ui.module.mjs +377 -0
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +170 -0
- package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +29 -0
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +222 -0
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +87 -0
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +418 -0
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +153 -0
- package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +20 -0
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +216 -0
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +74 -0
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +50 -0
- package/esm2022/lib/captcha-field/captcha-field.component.mjs +28 -0
- package/esm2022/lib/card-item/card-item.component.mjs +74 -0
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
- package/esm2022/lib/col-renderer.directive.mjs +47 -0
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +61 -0
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +97 -0
- package/esm2022/lib/constants.mjs +450 -0
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
- package/esm2022/lib/device-info-field-base.mjs +24 -0
- package/esm2022/lib/dialog-handler.directive.mjs +29 -0
- package/esm2022/lib/download-files.directive.mjs +34 -0
- package/esm2022/lib/dynamic-page-size.pipe.mjs +27 -0
- package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +47 -0
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +71 -0
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +37 -0
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +171 -0
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +50 -0
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +62 -0
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
- package/esm2022/lib/fullscreen-dialog.directive.mjs +60 -0
- package/esm2022/lib/fullscreen-files.directive.mjs +43 -0
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +217 -0
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +215 -0
- package/esm2022/lib/global-search/global-search.component.mjs +27 -0
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
- package/esm2022/lib/index.mjs +549 -0
- package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +70 -0
- package/esm2022/lib/layout-control/layout-control.component.mjs +302 -0
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +180 -0
- package/esm2022/lib/list-item/list-item.component.mjs +34 -0
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +82 -0
- package/esm2022/lib/ly-label/ly-label.component.mjs +37 -0
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
- package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +83 -0
- package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +44 -0
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +51 -0
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
- package/esm2022/lib/mask/mask.component.mjs +22 -0
- package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
- package/esm2022/lib/models/grid-data-provider.mjs +114 -0
- package/esm2022/lib/models/grid-view.mjs +2 -0
- package/esm2022/lib/models/index.mjs +2 -0
- package/esm2022/lib/no-data/no-data.component.mjs +31 -0
- package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
- package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +79 -0
- package/esm2022/lib/notification-popup.service.mjs +92 -0
- package/esm2022/lib/object-status-icon.pipe.mjs +27 -0
- package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +18 -0
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +68 -0
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
- package/esm2022/lib/report-tree-base.mjs +387 -0
- package/esm2022/lib/report-view-renderer.directive.mjs +392 -0
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
- package/esm2022/lib/sap-font-class.pipe.mjs +30 -0
- package/esm2022/lib/sap-font.pipe.mjs +30 -0
- package/esm2022/lib/sap-size.pipe.mjs +28 -0
- package/esm2022/lib/sap-ui-report-base.component.mjs +809 -0
- package/esm2022/lib/search-panel/search-panel.component.mjs +63 -0
- package/esm2022/lib/static-text/static-text.component.mjs +15 -0
- package/esm2022/lib/table-th.directive.mjs +87 -0
- package/esm2022/lib/title/title.component.mjs +15 -0
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +34 -0
- package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +33 -0
- package/esm2022/lib/ui-button/ui-button.component.mjs +32 -0
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +58 -0
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +39 -0
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +38 -0
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +150 -0
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +108 -0
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +124 -0
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +103 -0
- package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
- package/esm2022/lib/ui-graph/ui-graph.component.mjs +17 -0
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +25 -0
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +123 -0
- package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -0
- package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
- package/esm2022/lib/ui-label/ui-label.component.mjs +12 -0
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +379 -0
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +84 -0
- package/esm2022/lib/ui-map/ui-map.component.mjs +68 -0
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
- package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -0
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +429 -0
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
- package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +47 -0
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +33 -0
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
- package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +268 -0
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +101 -0
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +261 -0
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
- package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +55 -0
- package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +296 -0
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
- package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +48 -0
- package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +24 -0
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +114 -0
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +100 -0
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +310 -0
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +119 -0
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +116 -0
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +196 -0
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +54 -0
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +177 -0
- package/esm2022/lib/upload-file-status.pipe.mjs +29 -0
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
- package/esm2022/lib/wizard-layout.directive.mjs +104 -0
- package/esm2022/public-api.mjs +236 -0
- package/fesm2022/barsa-sap-ui.mjs +6 -13
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/layout-wizard/layout-wizard.component.d.ts +0 -1
- package/package.json +3 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ReportViewBaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/cdk/drag-drop";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/layout-panel";
|
|
6
|
+
import * as i3 from "@fundamental-ngx/core/list";
|
|
7
|
+
import * as i4 from "../barsa-tree-item/barsa-tree-item.component";
|
|
8
|
+
import * as i5 from "../no-data/no-data.component";
|
|
9
|
+
import * as i6 from "barsa-novin-ray-core";
|
|
10
|
+
export class UiTreeViewComponent extends ReportViewBaseComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.checkChange = new EventEmitter();
|
|
14
|
+
this.nodeSelect = new EventEmitter();
|
|
15
|
+
this.createNew = new EventEmitter();
|
|
16
|
+
this.loadChildren = new EventEmitter();
|
|
17
|
+
this.nodeViewClick = new EventEmitter();
|
|
18
|
+
this.nodeUlvCommand = new EventEmitter();
|
|
19
|
+
this.itemDrop = new EventEmitter();
|
|
20
|
+
this.itemDragMoved = new EventEmitter();
|
|
21
|
+
this.cursor = 'default';
|
|
22
|
+
}
|
|
23
|
+
onActionListClick2(node, index, itemId) {
|
|
24
|
+
if (itemId === 'Show') {
|
|
25
|
+
this.onNodeViewClick(node, index);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.onNodeSelect(node, index);
|
|
29
|
+
const editBtn = this.toolbarButtons.find((tb) => tb?.itemId === itemId);
|
|
30
|
+
if (editBtn) {
|
|
31
|
+
editBtn.handler(editBtn);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
onDrop($event) {
|
|
35
|
+
this.itemDrop.emit($event);
|
|
36
|
+
}
|
|
37
|
+
onDragMoved($event) {
|
|
38
|
+
this.itemDragMoved.emit($event);
|
|
39
|
+
}
|
|
40
|
+
onNodeSelect(node, index) {
|
|
41
|
+
this.nodeSelect.emit({ node, index });
|
|
42
|
+
}
|
|
43
|
+
onNodeUlvCommand(node, index) {
|
|
44
|
+
this.nodeUlvCommand.emit({ node, index });
|
|
45
|
+
}
|
|
46
|
+
onNodeViewClick(node, index) {
|
|
47
|
+
this.nodeViewClick.emit({ node, index });
|
|
48
|
+
}
|
|
49
|
+
onCheckChange($event) {
|
|
50
|
+
this.checkChange.emit($event);
|
|
51
|
+
}
|
|
52
|
+
onLoadChildren(node) {
|
|
53
|
+
this.loadChildren.emit(node);
|
|
54
|
+
}
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiTreeViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiTreeViewComponent, selector: "bsu-ui-tree-view", inputs: { root: "root", selectedNode: "selectedNode", isHetro: "isHetro", leafCursorPointer: "leafCursorPointer", relationList: "relationList", showOkCancelButtons: "showOkCancelButtons", enableNodeReordering: "enableNodeReordering", collapseIcon: "collapseIcon", iconField: "iconField", colorField: "colorField", viewSettingsContentDensity: "viewSettingsContentDensity" }, outputs: { checkChange: "checkChange", nodeSelect: "nodeSelect", createNew: "createNew", loadChildren: "loadChildren", nodeViewClick: "nodeViewClick", nodeUlvCommand: "nodeUlvCommand", itemDrop: "itemDrop", itemDragMoved: "itemDragMoved" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel>\r\n <fd-layout-panel-body [bleed]=\"true\">\r\n <ul\r\n cdkDropList\r\n [cdkDropListData]=\"moDataList\"\r\n [id]=\"'$Root'\"\r\n [cdkDropListDisabled]=\"!enableNodeReordering\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n fd-list\r\n [class.is-compact]=\"viewSettingsContentDensity === 'compact'\"\r\n [class.is-cozy]=\"viewSettingsContentDensity === 'cozy'\"\r\n >\r\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\r\n (node.visibility === true && node.parentNode | isExpandedNode) {\r\n <bsu-barsa-tree-item\r\n class=\"node-item\"\r\n [attr.data-id]=\"node.Data.Id\"\r\n [attr.id]=\"'node-' + node.Data.Id\"\r\n [isdirty]=\"node.$Dirty\"\r\n [enableNodeReordering]=\"enableNodeReordering\"\r\n [leafCursorPointer]=\"leafCursorPointer && node.leaf\"\r\n [hasInlineDeleteButton]=\"hasInlineDeleteButton\"\r\n [hasInlineEditButton]=\"hasInlineEditButton\"\r\n [actionList]=\"actionList\"\r\n [style.cursor]=\"cursor\"\r\n [node]=\"node\"\r\n [hideIcon]=\"hideIcon\"\r\n [icon]=\"iconField | rval: node.Data:allColumns\"\r\n [color]=\"colorField | rval: node.Data:allColumns\"\r\n [level]=\"node.level\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [styleIndex]=\"node.Data.$StyleIndex\"\r\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\r\n [hasChildren]=\"node.Data.$HasChildren\"\r\n [loading]=\"node.loading\"\r\n [inDialog]=\"inDialog\"\r\n [isMultiSelect]=\"isMultiSelect\"\r\n [isExpand]=\"node.isExpand\"\r\n [isHetro]=\"isHetro\"\r\n [parentNode]=\"node.parentNode\"\r\n [text]=\"node.text\"\r\n [openOnClick]=\"openOnClick\"\r\n [collapseIcon]=\"rtl ? 'slim-arrow-left' : 'slim-arrow-right'\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [rtl]=\"rtl\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [showOkCancelButtons]=\"showOkCancelButtons\"\r\n [selectedNode]=\"selectedNode\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [isCheckList]=\"isCheckList\"\r\n [deviceName]=\"deviceName\"\r\n [access]=\"access\"\r\n (actionListClick)=\"onActionListClick2(node, index, $event)\"\r\n (checkChange)=\"onCheckChange($event)\"\r\n (select)=\"onNodeSelect(node, index)\"\r\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\r\n (viewClick)=\"onNodeViewClick(node, index)\"\r\n (loadChildren)=\"onLoadChildren(node)\"\r\n (dragMoved)=\"onDragMoved($event)\"\r\n [relationList]=\"relationList\"\r\n (createNew)=\"createNew.emit($event)\"\r\n >\r\n </bsu-barsa-tree-item>\r\n } } } @else {\r\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\r\n }\r\n </ul>\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n<!--noData-->\r\n", styles: ["fd-layout-panel{border-radius:0}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"], dependencies: [{ kind: "directive", type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i2.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i2.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i3.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4.BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: ["node", "selectedNode", "relationList", "hideOpenIcon", "hasArrowIcon", "collapseIcon", "loading", "hasChildren", "leafCursorPointer", "isExpand", "children", "parentNode", "text", "icon", "color", "isHetro", "enableNodeReordering", "hideIcon"], outputs: ["createNew", "select", "checkChange", "viewClick", "loadChildren", "dragMoved"] }, { kind: "component", type: i5.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "pipe", type: i6.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i6.IsExpandedNodePipe, name: "isExpandedNode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiTreeViewComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: 'bsu-ui-tree-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-layout-panel>\r\n <fd-layout-panel-body [bleed]=\"true\">\r\n <ul\r\n cdkDropList\r\n [cdkDropListData]=\"moDataList\"\r\n [id]=\"'$Root'\"\r\n [cdkDropListDisabled]=\"!enableNodeReordering\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n fd-list\r\n [class.is-compact]=\"viewSettingsContentDensity === 'compact'\"\r\n [class.is-cozy]=\"viewSettingsContentDensity === 'cozy'\"\r\n >\r\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\r\n (node.visibility === true && node.parentNode | isExpandedNode) {\r\n <bsu-barsa-tree-item\r\n class=\"node-item\"\r\n [attr.data-id]=\"node.Data.Id\"\r\n [attr.id]=\"'node-' + node.Data.Id\"\r\n [isdirty]=\"node.$Dirty\"\r\n [enableNodeReordering]=\"enableNodeReordering\"\r\n [leafCursorPointer]=\"leafCursorPointer && node.leaf\"\r\n [hasInlineDeleteButton]=\"hasInlineDeleteButton\"\r\n [hasInlineEditButton]=\"hasInlineEditButton\"\r\n [actionList]=\"actionList\"\r\n [style.cursor]=\"cursor\"\r\n [node]=\"node\"\r\n [hideIcon]=\"hideIcon\"\r\n [icon]=\"iconField | rval: node.Data:allColumns\"\r\n [color]=\"colorField | rval: node.Data:allColumns\"\r\n [level]=\"node.level\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [styleIndex]=\"node.Data.$StyleIndex\"\r\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\r\n [hasChildren]=\"node.Data.$HasChildren\"\r\n [loading]=\"node.loading\"\r\n [inDialog]=\"inDialog\"\r\n [isMultiSelect]=\"isMultiSelect\"\r\n [isExpand]=\"node.isExpand\"\r\n [isHetro]=\"isHetro\"\r\n [parentNode]=\"node.parentNode\"\r\n [text]=\"node.text\"\r\n [openOnClick]=\"openOnClick\"\r\n [collapseIcon]=\"rtl ? 'slim-arrow-left' : 'slim-arrow-right'\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [rtl]=\"rtl\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [showOkCancelButtons]=\"showOkCancelButtons\"\r\n [selectedNode]=\"selectedNode\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [isCheckList]=\"isCheckList\"\r\n [deviceName]=\"deviceName\"\r\n [access]=\"access\"\r\n (actionListClick)=\"onActionListClick2(node, index, $event)\"\r\n (checkChange)=\"onCheckChange($event)\"\r\n (select)=\"onNodeSelect(node, index)\"\r\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\r\n (viewClick)=\"onNodeViewClick(node, index)\"\r\n (loadChildren)=\"onLoadChildren(node)\"\r\n (dragMoved)=\"onDragMoved($event)\"\r\n [relationList]=\"relationList\"\r\n (createNew)=\"createNew.emit($event)\"\r\n >\r\n </bsu-barsa-tree-item>\r\n } } } @else {\r\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\r\n }\r\n </ul>\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n<!--noData-->\r\n", styles: ["fd-layout-panel{border-radius:0}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"] }]
|
|
61
|
+
}], propDecorators: { root: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], selectedNode: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], isHetro: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], leafCursorPointer: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], relationList: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], showOkCancelButtons: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], enableNodeReordering: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], collapseIcon: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], iconField: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], colorField: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], viewSettingsContentDensity: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], checkChange: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], nodeSelect: [{
|
|
86
|
+
type: Output
|
|
87
|
+
}], createNew: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}], loadChildren: [{
|
|
90
|
+
type: Output
|
|
91
|
+
}], nodeViewClick: [{
|
|
92
|
+
type: Output
|
|
93
|
+
}], nodeUlvCommand: [{
|
|
94
|
+
type: Output
|
|
95
|
+
}], itemDrop: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}], itemDragMoved: [{
|
|
98
|
+
type: Output
|
|
99
|
+
}] } });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXRyZWUtdmlldy91aS10cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS12aWV3L3VpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBMkIsdUJBQXVCLEVBQWlDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBY3ZILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBZ0Q7SUFQekY7O1FBbUJjLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBSXBDLENBQUM7UUFFSyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBR25DLENBQUM7UUFDSyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFakQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBR3RDLENBQUM7UUFDSyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUd2QyxDQUFDO1FBQ0ssYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWxELFdBQU0sR0FBRyxTQUFTLENBQUM7S0F1Q3RCO0lBckNHLGtCQUFrQixDQUFDLElBQWlCLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDL0QsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN4RSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1QsT0FBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFpQixFQUFFLEtBQUs7UUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxLQUFhO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFpQixFQUFFLEtBQWE7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQU07UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBMUVRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHNyQkNmaEMsMnJIQTJFQTs7NEZENURhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdSLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQU1HLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBSUcsY0FBYztzQkFBdkIsTUFBTTtnQkFJRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcsIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LCBUcmVlTm9kZU9iaiwgUmVsYXRpb25JdGVtVHlwZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRHJvcEluZm8ge1xyXG4gICAgdGFyZ2V0SWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgICBhY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLXRyZWUtdmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXRyZWUtdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlUcmVlVmlld0NvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiB7XHJcbiAgICBASW5wdXQoKSByb290OiBhbnk7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZE5vZGU6IGFueTtcclxuICAgIEBJbnB1dCgpIGlzSGV0cm86IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBsZWFmQ3Vyc29yUG9pbnRlcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJlbGF0aW9uTGlzdDogUmVsYXRpb25JdGVtVHlwZVtdO1xyXG4gICAgQElucHV0KCkgc2hvd09rQ2FuY2VsQnV0dG9ucztcclxuICAgIEBJbnB1dCgpIGVuYWJsZU5vZGVSZW9yZGVyaW5nO1xyXG4gICAgQElucHV0KCkgY29sbGFwc2VJY29uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpY29uRmllbGQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNvbG9yRmllbGQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nc0NvbnRlbnREZW5zaXR5OiAnY29tcGFjdCcgfCAnY296eScgfCB1bmRlZmluZWQ7XHJcbiAgICBAT3V0cHV0KCkgY2hlY2tDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcclxuICAgICAgICBpbmRleDogbnVtYmVyO1xyXG4gICAgICAgIGNoZWNrZWQ6IGJvb2xlYW47XHJcbiAgICB9PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBub2RlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICAgICAgbm9kZTogVHJlZU5vZGVPYmo7XHJcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcclxuICAgIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgY3JlYXRlTmV3ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkl0ZW1UeXBlPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBsb2FkQ2hpbGRyZW4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyZWVOb2RlT2JqPigpO1xyXG4gICAgQE91dHB1dCgpIG5vZGVWaWV3Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcclxuICAgICAgICBpbmRleDogbnVtYmVyO1xyXG4gICAgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBub2RlVWx2Q29tbWFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgICAgIG5vZGU6IFRyZWVOb2RlT2JqO1xyXG4gICAgICAgIGluZGV4OiBudW1iZXI7XHJcbiAgICB9PigpO1xyXG4gICAgQE91dHB1dCgpIGl0ZW1Ecm9wID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgaXRlbURyYWdNb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGN1cnNvciA9ICdkZWZhdWx0JztcclxuXHJcbiAgICBvbkFjdGlvbkxpc3RDbGljazIobm9kZTogVHJlZU5vZGVPYmosIGluZGV4OiBudW1iZXIsIGl0ZW1JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGl0ZW1JZCA9PT0gJ1Nob3cnKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Ob2RlVmlld0NsaWNrKG5vZGUsIGluZGV4KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uTm9kZVNlbGVjdChub2RlLCBpbmRleCk7XHJcbiAgICAgICAgY29uc3QgZWRpdEJ0biA9IHRoaXMudG9vbGJhckJ1dHRvbnMuZmluZCgodGIpID0+IHRiPy5pdGVtSWQgPT09IGl0ZW1JZCk7XHJcbiAgICAgICAgaWYgKGVkaXRCdG4pIHtcclxuICAgICAgICAgICAgKGVkaXRCdG4gYXMgYW55KS5oYW5kbGVyKGVkaXRCdG4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLml0ZW1Ecm9wLmVtaXQoJGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRyYWdNb3ZlZCgkZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLml0ZW1EcmFnTW92ZWQuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTm9kZVNlbGVjdChub2RlOiBUcmVlTm9kZU9iaiwgaW5kZXgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5vZGVTZWxlY3QuZW1pdCh7IG5vZGUsIGluZGV4IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTm9kZVVsdkNvbW1hbmQobm9kZTogVHJlZU5vZGVPYmosIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5vZGVVbHZDb21tYW5kLmVtaXQoeyBub2RlLCBpbmRleCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbk5vZGVWaWV3Q2xpY2sobm9kZTogVHJlZU5vZGVPYmosIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5vZGVWaWV3Q2xpY2suZW1pdCh7IG5vZGUsIGluZGV4IH0pO1xyXG4gICAgfVxyXG4gICAgb25DaGVja0NoYW5nZSgkZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ2hhbmdlLmVtaXQoJGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvYWRDaGlsZHJlbihub2RlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbi5lbWl0KG5vZGUpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxmZC1sYXlvdXQtcGFuZWw+XHJcbiAgICA8ZmQtbGF5b3V0LXBhbmVsLWJvZHkgW2JsZWVkXT1cInRydWVcIj5cclxuICAgICAgICA8dWxcclxuICAgICAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJtb0RhdGFMaXN0XCJcclxuICAgICAgICAgICAgW2lkXT1cIickUm9vdCdcIlxyXG4gICAgICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZW5hYmxlTm9kZVJlb3JkZXJpbmdcIlxyXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBmZC1saXN0XHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1jb21wYWN0XT1cInZpZXdTZXR0aW5nc0NvbnRlbnREZW5zaXR5ID09PSAnY29tcGFjdCdcIlxyXG4gICAgICAgICAgICBbY2xhc3MuaXMtY296eV09XCJ2aWV3U2V0dGluZ3NDb250ZW50RGVuc2l0eSA9PT0gJ2NvenknXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIEBpZiAobW9EYXRhTGlzdD8ubGVuZ3RoID4gMCkgeyBAZm9yIChub2RlIG9mIG1vRGF0YUxpc3Q7IHRyYWNrIG5vZGUua2V5OyBsZXQgaW5kZXggPSAkaW5kZXgpIHsgQGlmXHJcbiAgICAgICAgICAgIChub2RlLnZpc2liaWxpdHkgPT09IHRydWUgJiYgbm9kZS5wYXJlbnROb2RlIHwgaXNFeHBhbmRlZE5vZGUpIHtcclxuICAgICAgICAgICAgPGJzdS1iYXJzYS10cmVlLWl0ZW1cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm9kZS1pdGVtXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaWRdPVwibm9kZS5EYXRhLklkXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIidub2RlLScgKyBub2RlLkRhdGEuSWRcIlxyXG4gICAgICAgICAgICAgICAgW2lzZGlydHldPVwibm9kZS4kRGlydHlcIlxyXG4gICAgICAgICAgICAgICAgW2VuYWJsZU5vZGVSZW9yZGVyaW5nXT1cImVuYWJsZU5vZGVSZW9yZGVyaW5nXCJcclxuICAgICAgICAgICAgICAgIFtsZWFmQ3Vyc29yUG9pbnRlcl09XCJsZWFmQ3Vyc29yUG9pbnRlciAmJiBub2RlLmxlYWZcIlxyXG4gICAgICAgICAgICAgICAgW2hhc0lubGluZURlbGV0ZUJ1dHRvbl09XCJoYXNJbmxpbmVEZWxldGVCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgW2hhc0lubGluZUVkaXRCdXR0b25dPVwiaGFzSW5saW5lRWRpdEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbYWN0aW9uTGlzdF09XCJhY3Rpb25MaXN0XCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiY3Vyc29yXCJcclxuICAgICAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxyXG4gICAgICAgICAgICAgICAgW2hpZGVJY29uXT1cImhpZGVJY29uXCJcclxuICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25GaWVsZCB8IHJ2YWw6IG5vZGUuRGF0YTphbGxDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvckZpZWxkIHwgcnZhbDogbm9kZS5EYXRhOmFsbENvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgW2xldmVsXT1cIm5vZGUubGV2ZWxcIlxyXG4gICAgICAgICAgICAgICAgW2hpZGVPcGVuSWNvbl09XCJoaWRlT3Blbkljb25cIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwibm9kZS5EYXRhLiRTdHlsZUluZGV4XCJcclxuICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwic2VsZWN0ZWROb2RlPy5EYXRhPy5JZCA9PT0gbm9kZS5EYXRhLklkIHx8IChpbkRpYWxvZyAmJiBub2RlLkRhdGEuJElzQ2hlY2tlZClcIlxyXG4gICAgICAgICAgICAgICAgW2hhc0NoaWxkcmVuXT1cIm5vZGUuRGF0YS4kSGFzQ2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibm9kZS5sb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIFtpbkRpYWxvZ109XCJpbkRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJpc011bHRpU2VsZWN0XCJcclxuICAgICAgICAgICAgICAgIFtpc0V4cGFuZF09XCJub2RlLmlzRXhwYW5kXCJcclxuICAgICAgICAgICAgICAgIFtpc0hldHJvXT1cImlzSGV0cm9cIlxyXG4gICAgICAgICAgICAgICAgW3BhcmVudE5vZGVdPVwibm9kZS5wYXJlbnROb2RlXCJcclxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cIm5vZGUudGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbb3Blbk9uQ2xpY2tdPVwib3Blbk9uQ2xpY2tcIlxyXG4gICAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJydGwgPyAnc2xpbS1hcnJvdy1sZWZ0JyA6ICdzbGltLWFycm93LXJpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXHJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dPa0NhbmNlbEJ1dHRvbnNdPVwic2hvd09rQ2FuY2VsQnV0dG9uc1wiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWROb2RlXT1cInNlbGVjdGVkTm9kZVwiXHJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICAgICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcclxuICAgICAgICAgICAgICAgIChhY3Rpb25MaXN0Q2xpY2spPVwib25BY3Rpb25MaXN0Q2xpY2syKG5vZGUsIGluZGV4LCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChjaGVja0NoYW5nZSk9XCJvbkNoZWNrQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvbk5vZGVTZWxlY3Qobm9kZSwgaW5kZXgpXCJcclxuICAgICAgICAgICAgICAgICh1bHZDb21tYW5kQ2xpY2spPVwib25Ob2RlVWx2Q29tbWFuZChub2RlLCBpbmRleClcIlxyXG4gICAgICAgICAgICAgICAgKHZpZXdDbGljayk9XCJvbk5vZGVWaWV3Q2xpY2sobm9kZSwgaW5kZXgpXCJcclxuICAgICAgICAgICAgICAgIChsb2FkQ2hpbGRyZW4pPVwib25Mb2FkQ2hpbGRyZW4obm9kZSlcIlxyXG4gICAgICAgICAgICAgICAgKGRyYWdNb3ZlZCk9XCJvbkRyYWdNb3ZlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtyZWxhdGlvbkxpc3RdPVwicmVsYXRpb25MaXN0XCJcclxuICAgICAgICAgICAgICAgIChjcmVhdGVOZXcpPVwiY3JlYXRlTmV3LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9ic3UtYmFyc2EtdHJlZS1pdGVtPlxyXG4gICAgICAgICAgICB9IH0gfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxic3Utbm8tZGF0YSBbc2ltcGxlXT1cInRydWVcIj48L2JzdS1uby1kYXRhPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XHJcbjwvZmQtbGF5b3V0LXBhbmVsPlxyXG5cclxuPCEtLW5vRGF0YS0tPlxyXG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/button";
|
|
6
|
+
import * as i3 from "@fundamental-ngx/core/dialog";
|
|
7
|
+
import * as i4 from "@fundamental-ngx/cdk/utils";
|
|
8
|
+
import * as i5 from "@fundamental-ngx/core/title";
|
|
9
|
+
import * as i6 from "@fundamental-ngx/core/toolbar";
|
|
10
|
+
import * as i7 from "../ui-ulv-main-ui/ui-ulv-main-ui.component";
|
|
11
|
+
export class UiUlvFormMultiSelectUiComponent extends BaseComponent {
|
|
12
|
+
constructor(dialogRef) {
|
|
13
|
+
super();
|
|
14
|
+
this.dialogRef = dialogRef;
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiUlvFormMultiSelectUiComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiUlvFormMultiSelectUiComponent, selector: "bsu-ui-ulv-form-multi-select-ui", usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ dialogRef.data.title }}</h1>\r\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss('Close button')\"></button>\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body>\r\n @if (dialogRef.data.ulv1; as ulv1) {\r\n <bsu-ui-ulv-main-ui [context]=\"ulv1\"></bsu-ui-ulv-main-ui>\r\n }\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div\r\n class=\"fdp-value-help-dialog__row fdp-value-help-dialog__selection-row\"\r\n aria-label=\"Selected and condition items\"\r\n i18n-aria-label=\"@@platformI18nValueHelpDialog.SelectionBarLabel\"\r\n >\r\n <h5 fd-title class=\"selected-and-condition-title\">\r\n <ng-container>\r\n <ng-container i18n=\"@@platformI18nValueHelpDialog.SelectedAndConditionLabel\"\r\n >Selected Items and Conditions\r\n </ng-container>\r\n ()\r\n </ng-container>\r\n </h5>\r\n\r\n <div class=\"fdp-value-help-dialog__tokens-wrapper\">\r\n <div class=\"fdp-value-help-dialog__tokens\">\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n <!-- Selected items -->\r\n </fd-toolbar>\r\n </div>\r\n <button\r\n class=\"fdp-value-help-dialog__tokens-clear\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n i18n-aria-label=\"@@platformI18nValueHelpDialog.ClearSelectedAriaLabel\"\r\n aria-label=\"clear selected items\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"fdp-value-help-dialog__actions-row\">\r\n <button\r\n fd-button\r\n data-go-advanced\r\n i18n-label=\"@@platformI18nValueHelpDialog.SearchButton\"\r\n label=\"Go\"\r\n fdType=\"emphasized\"\r\n ></button>\r\n <button\r\n fd-button\r\n data-succes\r\n i18n-label=\"@@platformI18nValueHelpDialog.SuccessButton\"\r\n label=\"OK\"\r\n fdType=\"emphasized\"\r\n ></button>\r\n <button\r\n fd-button\r\n data-dismiss-dialog\r\n fd-dialog-decisive-button\r\n i18n-label=\"@@platformI18nValueHelpDialog.CancelButton\"\r\n label=\"Cancel\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i3.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i3.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i3.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i4.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiUlvFormMultiSelectUiComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'bsu-ui-ulv-form-multi-select-ui', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ dialogRef.data.title }}</h1>\r\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss('Close button')\"></button>\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body>\r\n @if (dialogRef.data.ulv1; as ulv1) {\r\n <bsu-ui-ulv-main-ui [context]=\"ulv1\"></bsu-ui-ulv-main-ui>\r\n }\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div\r\n class=\"fdp-value-help-dialog__row fdp-value-help-dialog__selection-row\"\r\n aria-label=\"Selected and condition items\"\r\n i18n-aria-label=\"@@platformI18nValueHelpDialog.SelectionBarLabel\"\r\n >\r\n <h5 fd-title class=\"selected-and-condition-title\">\r\n <ng-container>\r\n <ng-container i18n=\"@@platformI18nValueHelpDialog.SelectedAndConditionLabel\"\r\n >Selected Items and Conditions\r\n </ng-container>\r\n ()\r\n </ng-container>\r\n </h5>\r\n\r\n <div class=\"fdp-value-help-dialog__tokens-wrapper\">\r\n <div class=\"fdp-value-help-dialog__tokens\">\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n <!-- Selected items -->\r\n </fd-toolbar>\r\n </div>\r\n <button\r\n class=\"fdp-value-help-dialog__tokens-clear\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n i18n-aria-label=\"@@platformI18nValueHelpDialog.ClearSelectedAriaLabel\"\r\n aria-label=\"clear selected items\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"fdp-value-help-dialog__actions-row\">\r\n <button\r\n fd-button\r\n data-go-advanced\r\n i18n-label=\"@@platformI18nValueHelpDialog.SearchButton\"\r\n label=\"Go\"\r\n fdType=\"emphasized\"\r\n ></button>\r\n <button\r\n fd-button\r\n data-succes\r\n i18n-label=\"@@platformI18nValueHelpDialog.SuccessButton\"\r\n label=\"OK\"\r\n fdType=\"emphasized\"\r\n ></button>\r\n <button\r\n fd-button\r\n data-dismiss-dialog\r\n fd-dialog-decisive-button\r\n i18n-label=\"@@platformI18nValueHelpDialog.CancelButton\"\r\n label=\"Cancel\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n" }]
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.DialogRef }] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LWZvcm0tbXVsdGktc2VsZWN0LXVpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXVsdi1mb3JtLW11bHRpLXNlbGVjdC11aS91aS11bHYtZm9ybS1tdWx0aS1zZWxlY3QtdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LWZvcm0tbXVsdGktc2VsZWN0LXVpL3VpLXVsdi1mb3JtLW11bHRpLXNlbGVjdC11aS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBUXJELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxhQUFhO0lBQzlELFlBQW1CLFNBQW9CO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRE8sY0FBUyxHQUFULFNBQVMsQ0FBVztJQUV2QyxDQUFDOytHQUhRLCtCQUErQjttR0FBL0IsK0JBQStCLDhGQ1g1QyxnaEdBdUVBOzs0RkQ1RGEsK0JBQStCO2tCQVAzQyxTQUFTOytCQUNJLGlDQUFpQyxtQkFHMUIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS11bHYtZm9ybS1tdWx0aS1zZWxlY3QtdWknLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXVsdi1mb3JtLW11bHRpLXNlbGVjdC11aS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS11bHYtZm9ybS1tdWx0aS1zZWxlY3QtdWkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpVWx2Rm9ybU11bHRpU2VsZWN0VWlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLWRpYWxvZz5cclxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgIDxoMSBmZC10aXRsZT57eyBkaWFsb2dSZWYuZGF0YS50aXRsZSB9fTwvaDE+XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2dSZWYuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIj48L2J1dHRvbj5cclxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cclxuXHJcbiAgICA8ZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgQGlmIChkaWFsb2dSZWYuZGF0YS51bHYxOyBhcyB1bHYxKSB7XHJcbiAgICAgICAgPGJzdS11aS11bHYtbWFpbi11aSBbY29udGV4dF09XCJ1bHYxXCI+PC9ic3UtdWktdWx2LW1haW4tdWk+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1kaWFsb2ctYm9keT5cclxuXHJcbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3JvdyBmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3NlbGVjdGlvbi1yb3dcIlxyXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdGVkIGFuZCBjb25kaXRpb24gaXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgaTE4bi1hcmlhLWxhYmVsPVwiQEBwbGF0Zm9ybUkxOG5WYWx1ZUhlbHBEaWFsb2cuU2VsZWN0aW9uQmFyTGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBpMThuPVwiQEBwbGF0Zm9ybUkxOG5WYWx1ZUhlbHBEaWFsb2cuU2VsZWN0ZWRBbmRDb25kaXRpb25MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+U2VsZWN0ZWQgSXRlbXMgYW5kIENvbmRpdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICgpXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2g1PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3Rva2Vucy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19fdG9rZW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19fdG9rZW5zLWNsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi1hcmlhLWxhYmVsPVwiQEBwbGF0Zm9ybUkxOG5WYWx1ZUhlbHBEaWFsb2cuQ2xlYXJTZWxlY3RlZEFyaWFMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjbGVhciBzZWxlY3RlZCBpdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19hY3Rpb25zLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtZ28tYWR2YW5jZWRcclxuICAgICAgICAgICAgICAgICAgICBpMThuLWxhYmVsPVwiQEBwbGF0Zm9ybUkxOG5WYWx1ZUhlbHBEaWFsb2cuU2VhcmNoQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkdvXCJcclxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBkYXRhLXN1Y2Nlc1xyXG4gICAgICAgICAgICAgICAgICAgIGkxOG4tbGFiZWw9XCJAQHBsYXRmb3JtSTE4blZhbHVlSGVscERpYWxvZy5TdWNjZXNzQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIk9LXCJcclxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWRpc21pc3MtZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGkxOG4tbGFiZWw9XCJAQHBsYXRmb3JtSTE4blZhbHVlSGVscERpYWxvZy5DYW5jZWxCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ2FuY2VsXCJcclxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbjwvZmQtZGlhbG9nPlxyXG4iXX0=
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { BarsaApi, BaseComponent, UlvMainService, getDeviceIsMobile } from 'barsa-novin-ray-core';
|
|
4
|
+
import { ManageFiltersReportComponent } from '../manage-filters-report/manage-filters-report.component';
|
|
5
|
+
import { SearchPanelComponent } from '../search-panel/search-panel.component';
|
|
6
|
+
import { ReportSearchFieldsHiddenSettingsComponent } from '../report-search-fields-hidden-settings/report-search-fields-hidden-settings.component';
|
|
7
|
+
import { ReportSearchPanelSaveComponent } from '../report-search-panel-save/report-search-panel-save.component';
|
|
8
|
+
import { ReportSearchFieldsManageComponent } from '../report-search-fields-manage/report-search-fields-manage.component';
|
|
9
|
+
import { BarsaUlvMainComponent } from '../barsa-ulv-main/barsa-ulv-main.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
12
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
13
|
+
import * as i3 from "@angular/router";
|
|
14
|
+
import * as i4 from "../barsa-ulv-main/barsa-ulv-main.component";
|
|
15
|
+
import * as i5 from "@angular/common";
|
|
16
|
+
export class UiUlvMainUiComponent extends BaseComponent {
|
|
17
|
+
set searchPanelComponent(val) {
|
|
18
|
+
if (val) {
|
|
19
|
+
this.searchPanelLoaded = true;
|
|
20
|
+
}
|
|
21
|
+
this._cdr.detectChanges();
|
|
22
|
+
}
|
|
23
|
+
set fullscreen(val) {
|
|
24
|
+
this._ulvMainService.setFullscreen(val);
|
|
25
|
+
}
|
|
26
|
+
constructor(_dialogService, _ulvMainService, el, _router, _portalService, _cdr, _activatedRoute, contentDensityService, _bradcrumbService) {
|
|
27
|
+
super();
|
|
28
|
+
this._dialogService = _dialogService;
|
|
29
|
+
this._ulvMainService = _ulvMainService;
|
|
30
|
+
this.el = el;
|
|
31
|
+
this._router = _router;
|
|
32
|
+
this._portalService = _portalService;
|
|
33
|
+
this._cdr = _cdr;
|
|
34
|
+
this._activatedRoute = _activatedRoute;
|
|
35
|
+
this.firstApplyAutomatically = true;
|
|
36
|
+
this.defaultDialogConfig = {
|
|
37
|
+
verticalPadding: true,
|
|
38
|
+
responsivePadding: true,
|
|
39
|
+
resizable: true,
|
|
40
|
+
minWidth: getDeviceIsMobile() ? '' : '50rem',
|
|
41
|
+
bodyMinHeight: getDeviceIsMobile() ? '' : 'calc(50vh - 88px)',
|
|
42
|
+
mobile: getDeviceIsMobile()
|
|
43
|
+
};
|
|
44
|
+
this.contentDensity$ = contentDensityService.contentDensity;
|
|
45
|
+
this.rtl$ = _portalService.rtl$;
|
|
46
|
+
this.breadCrumbs$ = _bradcrumbService.breadcrumbs$;
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
super.ngOnInit();
|
|
50
|
+
this.isMobile = getDeviceIsMobile();
|
|
51
|
+
this._ulvMainService.setInDialog(this.inDialog);
|
|
52
|
+
this._ulvMainService.setIsMultiSelect(this.isMultiSelect);
|
|
53
|
+
this._ulvMainService.uiViewerSelector$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {
|
|
54
|
+
this._barsaUlvComponent.SetUiViewerSelector(c);
|
|
55
|
+
});
|
|
56
|
+
// fromEvent(document, 'click')
|
|
57
|
+
// .pipe(takeUntil(this._onDestroy$))
|
|
58
|
+
// .subscribe((e) => {
|
|
59
|
+
// if (
|
|
60
|
+
// e.target &&
|
|
61
|
+
// this.el.nativeElement !== e.target &&
|
|
62
|
+
// !this.el.nativeElement.contains(e.target) &&
|
|
63
|
+
// document.body.contains(e.target as HTMLElement)
|
|
64
|
+
// ) {
|
|
65
|
+
// this._ulvMainService.setInlineEdit(false);
|
|
66
|
+
// }
|
|
67
|
+
// });
|
|
68
|
+
this._removeBugInChromeCssActive();
|
|
69
|
+
this.marginUlv = !this.isReportPage;
|
|
70
|
+
if (!this.context.Setting.SearchPanel) {
|
|
71
|
+
this.searchPanelLoaded = true;
|
|
72
|
+
}
|
|
73
|
+
this._observeOn();
|
|
74
|
+
this.context.fireEvent('render', this);
|
|
75
|
+
}
|
|
76
|
+
_observeOn() {
|
|
77
|
+
this.isAnonymous$ = this._portalService.isAnonymous$;
|
|
78
|
+
this.hideSearchPanel$ = this._ulvMainService.hideSearchpanel$;
|
|
79
|
+
this.title = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters.Title', '');
|
|
80
|
+
this.simpleSearchPanel = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters.SimpleSearchPanel', false);
|
|
81
|
+
const hideTitleMode = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters.HideTitleMode', '');
|
|
82
|
+
if (hideTitleMode === '2' || hideTitleMode === '3') {
|
|
83
|
+
this._ulvMainService.hideUlvTitlePage();
|
|
84
|
+
}
|
|
85
|
+
this._ulvMainService.setContext(this.context);
|
|
86
|
+
this._ulvMainService.setLayoutInfo(this.layoutInfo);
|
|
87
|
+
this.mask$ = this._ulvMainService.mask$;
|
|
88
|
+
this.viwerMask$ = this._ulvMainService.viwerMask$;
|
|
89
|
+
this.hideUlvPageTitle$ = this._ulvMainService.hideUlvPageTitle$;
|
|
90
|
+
this.canSaveGridSetting$ = this._ulvMainService.canSaveGridSetting$;
|
|
91
|
+
this.pagingSetting$ = this._ulvMainService.pagingSetting$;
|
|
92
|
+
this.searchPanelMoChanged$ = this._ulvMainService.searchPanelMoChanged$;
|
|
93
|
+
this.hasSearchPanel = this._ulvMainService.searchPanelUi !== null;
|
|
94
|
+
this.searchPanelUi$ = this._ulvMainService.searchPanelUi$;
|
|
95
|
+
this.standalone$ = this._portalService.standalone$;
|
|
96
|
+
this.landscape$ = this._portalService.landscape$;
|
|
97
|
+
this.reportId$ = this._ulvMainService.reportId$;
|
|
98
|
+
this._ulvMainService.canSaveGridSetting$.subscribe((canSave) => {
|
|
99
|
+
if (canSave) {
|
|
100
|
+
this._ulvMainService.loadSearchPanelSettings();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
this._ulvMainService.readonly$.subscribe((readonly) => {
|
|
104
|
+
this.readonly = readonly;
|
|
105
|
+
});
|
|
106
|
+
this._ulvMainService.enable$.subscribe((enable) => {
|
|
107
|
+
this.disable = !enable;
|
|
108
|
+
});
|
|
109
|
+
this._ulvMainService.selectedSearchPanelSettings$
|
|
110
|
+
.pipe(takeUntil(this._onDestroy$), distinctUntilChanged((a, b) => a?.Title === b?.Title))
|
|
111
|
+
.subscribe((selectedSearchPanelSettings) => {
|
|
112
|
+
this.selectedSearchPanelSettings = selectedSearchPanelSettings;
|
|
113
|
+
this._ulvMainService.applySearchPanelSettings(selectedSearchPanelSettings);
|
|
114
|
+
this._ulvMainService.toggleHideSearchpanel(selectedSearchPanelSettings?.HideSearchPanel);
|
|
115
|
+
});
|
|
116
|
+
this.viewer$ = this._ulvMainService.viewer$;
|
|
117
|
+
this.allSearchPanelSettings$ = this._ulvMainService.allSearchPanelSettings$;
|
|
118
|
+
this.selectedSearchPanelSettings$ = this._ulvMainService.selectedSearchPanelSettings$;
|
|
119
|
+
this.selectedSearchPanelSettingsId$ = this._ulvMainService.selectedSearchPanelSettingsId$;
|
|
120
|
+
this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
|
|
121
|
+
}
|
|
122
|
+
onClose() {
|
|
123
|
+
this._router.navigate(['../..'], { relativeTo: this._activatedRoute });
|
|
124
|
+
}
|
|
125
|
+
onSearchPanelMoChanged() {
|
|
126
|
+
this._setSearchPanelMoChanged(true);
|
|
127
|
+
}
|
|
128
|
+
onPageChange(e) {
|
|
129
|
+
this._ulvMainService.pageChanged(e);
|
|
130
|
+
}
|
|
131
|
+
onOpenManageFilters() {
|
|
132
|
+
this._dialogService.open(ManageFiltersReportComponent, {
|
|
133
|
+
backdropClickCloseable: true,
|
|
134
|
+
draggable: false,
|
|
135
|
+
escKeyCloseable: true,
|
|
136
|
+
hasBackdrop: false,
|
|
137
|
+
focusTrapped: true,
|
|
138
|
+
mobile: this.isMobile
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
onCollapsedChange(collapsed) {
|
|
142
|
+
this._ulvMainService.toggleHideSearchpanel(collapsed);
|
|
143
|
+
this._ulvMainService.searchPanelMoChanged(true);
|
|
144
|
+
}
|
|
145
|
+
onHideSearchPanelClick() {
|
|
146
|
+
this._ulvMainService.toggleHideSearchpanel();
|
|
147
|
+
this._ulvMainService.searchPanelMoChanged(true);
|
|
148
|
+
}
|
|
149
|
+
onFilterSave() {
|
|
150
|
+
this._saveFilter();
|
|
151
|
+
}
|
|
152
|
+
onFilterSaveAs() {
|
|
153
|
+
this._openSaveAsFilter();
|
|
154
|
+
}
|
|
155
|
+
onShowFilterFieldsSetting() {
|
|
156
|
+
this._openSearchFieldsHiddenSettings();
|
|
157
|
+
}
|
|
158
|
+
onManageFilters() {
|
|
159
|
+
this._openSearchFiltersManage();
|
|
160
|
+
}
|
|
161
|
+
onClearSearch() {
|
|
162
|
+
this._ulvMainService.clearSearch();
|
|
163
|
+
}
|
|
164
|
+
onSearch() {
|
|
165
|
+
this._ulvMainService.search();
|
|
166
|
+
}
|
|
167
|
+
onSelectSearchPanelSettings(selectedSearchPanelSettingsId) {
|
|
168
|
+
this._ulvMainService.changeSelectedSearchPanel(selectedSearchPanelSettingsId);
|
|
169
|
+
}
|
|
170
|
+
_removeBugInChromeCssActive() {
|
|
171
|
+
if (BarsaApi.Common.Util.RemoveBugInChromeCssActive) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
let list = [];
|
|
175
|
+
const h = document.head.children;
|
|
176
|
+
for (let i = 0; i < h.length; i++) {
|
|
177
|
+
list[i] = {
|
|
178
|
+
i,
|
|
179
|
+
n: h[i],
|
|
180
|
+
a: h[i].innerHTML
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
list = list.reverse();
|
|
184
|
+
/* eslint-disable */
|
|
185
|
+
const t = `.fd-table__cell--activable:active *,.fd-table__row--activable.is-active *,.fd-table__row--activable:active *{color:var(--sapList_Active_TextColor)!important}`;
|
|
186
|
+
/* eslint-enable */
|
|
187
|
+
const f = list.filter((c) => c.a.indexOf(t) >= 0);
|
|
188
|
+
if (f.length > 0) {
|
|
189
|
+
BarsaApi.Common.Util.RemoveBugInChromeCssActive = true;
|
|
190
|
+
f[0].n.innerHTML = f[0].a.slice(0, 10058) + f[0].a.slice(10058 + t.length, f[0].a.length);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
_setSearchPanelMoChanged(change) {
|
|
194
|
+
this._ulvMainService.searchPanelMoChanged(change);
|
|
195
|
+
}
|
|
196
|
+
_openSearchFieldsHiddenSettings() {
|
|
197
|
+
const fieldsSetting = this._ulvMainService.getSearchPanelFieldsSetting();
|
|
198
|
+
const config = {
|
|
199
|
+
...this.defaultDialogConfig,
|
|
200
|
+
minWidth: '25rem',
|
|
201
|
+
data: {
|
|
202
|
+
fields: [...fieldsSetting]
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
const dialogRef = this._dialogService.open(ReportSearchFieldsHiddenSettingsComponent, config);
|
|
206
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((setting) => {
|
|
207
|
+
if (setting) {
|
|
208
|
+
this._ulvMainService.setAndApplySearchPanelSettingFieldsSetting(setting);
|
|
209
|
+
this._ulvMainService.searchPanelMoChanged(true);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
_openSaveAsFilter() {
|
|
214
|
+
const searchMo = this._ulvMainService.getSearchPanelMo();
|
|
215
|
+
const selectedSearchPanelSettings = this.selectedSearchPanelSettings;
|
|
216
|
+
const fieldsSetting = selectedSearchPanelSettings?.FieldsSetting;
|
|
217
|
+
const config = {
|
|
218
|
+
...this.defaultDialogConfig,
|
|
219
|
+
minWidth: '25rem',
|
|
220
|
+
resizable: false,
|
|
221
|
+
data: {
|
|
222
|
+
searchMo,
|
|
223
|
+
fieldsSetting,
|
|
224
|
+
reportId: this._ulvMainService.reportId
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
const dialogRef = this._dialogService.open(ReportSearchPanelSaveComponent, config);
|
|
228
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((searchPanelSetting) => {
|
|
229
|
+
if (searchPanelSetting) {
|
|
230
|
+
searchPanelSetting.HideSearchPanel = this._ulvMainService.hideSearchpanel;
|
|
231
|
+
this._ulvMainService.addSearchPanelSettings(searchPanelSetting);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
_saveFilter() {
|
|
236
|
+
const selectedSearchPanelSettings = this.selectedSearchPanelSettings;
|
|
237
|
+
if (selectedSearchPanelSettings) {
|
|
238
|
+
selectedSearchPanelSettings.HideSearchPanel = this._ulvMainService.hideSearchpanel;
|
|
239
|
+
this._ulvMainService.saveSearchPanelSetting(selectedSearchPanelSettings);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
_openSearchFiltersManage() {
|
|
243
|
+
const allSearchPanelSettings = this._ulvMainService.allSearchPanelSettings;
|
|
244
|
+
const reportId = this._ulvMainService.reportId;
|
|
245
|
+
const config = {
|
|
246
|
+
...this.defaultDialogConfig,
|
|
247
|
+
responsivePadding: false,
|
|
248
|
+
verticalPadding: false,
|
|
249
|
+
data: {
|
|
250
|
+
allSearchPanelSettings: allSearchPanelSettings.map((c) => ({
|
|
251
|
+
Title: c.Title,
|
|
252
|
+
IsDefault: c.IsDefault,
|
|
253
|
+
IsPublic: c.IsPublic,
|
|
254
|
+
IsPrimary: !!c.IsPrimary,
|
|
255
|
+
ApplyAutomatically: c.ApplyAutomatically,
|
|
256
|
+
ReportId: reportId,
|
|
257
|
+
Id: c.Id
|
|
258
|
+
}))
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
const dialogRef = this._dialogService.open(ReportSearchFieldsManageComponent, config);
|
|
262
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((setting) => {
|
|
263
|
+
if (setting) {
|
|
264
|
+
setting
|
|
265
|
+
.filter((c) => !c.IsPrimary)
|
|
266
|
+
.forEach((newSetting) => {
|
|
267
|
+
const sps = allSearchPanelSettings.find((c) => c.Id === newSetting.Id);
|
|
268
|
+
if (sps) {
|
|
269
|
+
BarsaApi.Common.Merger.Merge(sps, newSetting);
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
this._ulvMainService.updateSearchPanelSettings(allSearchPanelSettings);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiUlvMainUiComponent, deps: [{ token: i1.DialogService }, { token: i2.UlvMainService }, { token: i0.ElementRef }, { token: i3.Router }, { token: i2.PortalService }, { token: i0.ChangeDetectorRef }, { token: i3.ActivatedRoute }, { token: i1.ContentDensityService }, { token: i2.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: { context: "context", isReportPage: "isReportPage", inDialog: "inDialog", isMultiSelect: "isMultiSelect", layoutInfo: "layoutInfo", fullscreen: "fullscreen" }, host: { properties: { "class.control-readonly": "this.readonly", "class.control-disabled": "this.disable", "class.margin-ulv": "this.marginUlv" } }, providers: [UlvMainService], viewQueries: [{ propertyName: "_barsaUlvComponent", first: true, predicate: BarsaUlvMainComponent, descendants: true }, { propertyName: "searchPanelComponent", first: true, predicate: SearchPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-ulv-main\r\n [style.margin]=\"isReportPage ? null : 'var(--fdInput_Field_Margin, .25rem 0)'\"\r\n [style.style.width]=\"!isMobile ? null : '100%'\"\r\n [layoutInfo]=\"layoutInfo\"\r\n [attr.isReportPage]=\"isReportPage\"\r\n [simpleSearchPanel]=\"simpleSearchPanel\"\r\n [viewerControl]=\"viewer$ | async\"\r\n [loading]=\"(mask$ | async) === true\"\r\n [viewerLoading]=\"(viwerMask$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [hideUlvPageTitle]=\"(hideUlvPageTitle$ | async) === true\"\r\n [isReportPage]=\"isReportPage\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [title]=\"title\"\r\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\r\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\r\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\r\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\r\n [canSaveGridSetting]=\"(canSaveGridSetting$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\r\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\r\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\r\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\r\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\r\n [context]=\"context\"\r\n [contentDensity]=\"contentDensity$ | async\"\r\n (closeEvent)=\"onClose()\"\r\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\r\n (openManageFilters)=\"onOpenManageFilters()\"\r\n (collapsedChange)=\"onCollapsedChange($event)\"\r\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\r\n (filterSave)=\"onFilterSave()\"\r\n (filterSaveAs)=\"onFilterSaveAs()\"\r\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\r\n (manageFilters)=\"onManageFilters()\"\r\n (clearSearch)=\"onClearSearch()\"\r\n (search)=\"onSearch()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\r\n>\r\n</bsu-barsa-ulv-main>\r\n", styles: [":host{width:100%;min-height:100%;height:auto;display:flex;flex-direction:column;cursor:default}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"], dependencies: [{ kind: "component", type: i4.BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: ["viewerControl", "loading", "viewerLoading", "isReportPage", "deviceSize", "title", "searchPanelUi", "breadCrumbs", "allSearchPanelSettings", "isAnonymous", "canSaveGridSetting", "rtl", "hideUlvPageTitle", "selectedSearchPanelSettings", "searchPanelMoChanged", "selectedSearchPanelSettingsId", "hideSearchPanel", "pagingSetting", "contentDensity", "context", "isMobile", "standalone", "landscape", "simpleSearchPanel", "layoutInfo"], outputs: ["closeEvent", "searchPanelMoChange", "openManageFilters", "collapsedChange", "hideSearchPanelClick", "filterSave", "filterSaveAs", "pageChange", "showFilterFieldsSetting", "manageFilters", "clearSearch", "search", "selectSearchPanelSettings"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
278
|
+
}
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiUlvMainUiComponent, decorators: [{
|
|
280
|
+
type: Component,
|
|
281
|
+
args: [{ selector: 'bsu-ui-ulv-main-ui', providers: [UlvMainService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<bsu-barsa-ulv-main\r\n [style.margin]=\"isReportPage ? null : 'var(--fdInput_Field_Margin, .25rem 0)'\"\r\n [style.style.width]=\"!isMobile ? null : '100%'\"\r\n [layoutInfo]=\"layoutInfo\"\r\n [attr.isReportPage]=\"isReportPage\"\r\n [simpleSearchPanel]=\"simpleSearchPanel\"\r\n [viewerControl]=\"viewer$ | async\"\r\n [loading]=\"(mask$ | async) === true\"\r\n [viewerLoading]=\"(viwerMask$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [hideUlvPageTitle]=\"(hideUlvPageTitle$ | async) === true\"\r\n [isReportPage]=\"isReportPage\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [title]=\"title\"\r\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\r\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\r\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\r\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\r\n [canSaveGridSetting]=\"(canSaveGridSetting$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\r\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\r\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\r\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\r\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\r\n [context]=\"context\"\r\n [contentDensity]=\"contentDensity$ | async\"\r\n (closeEvent)=\"onClose()\"\r\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\r\n (openManageFilters)=\"onOpenManageFilters()\"\r\n (collapsedChange)=\"onCollapsedChange($event)\"\r\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\r\n (filterSave)=\"onFilterSave()\"\r\n (filterSaveAs)=\"onFilterSaveAs()\"\r\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\r\n (manageFilters)=\"onManageFilters()\"\r\n (clearSearch)=\"onClearSearch()\"\r\n (search)=\"onSearch()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\r\n>\r\n</bsu-barsa-ulv-main>\r\n", styles: [":host{width:100%;min-height:100%;height:auto;display:flex;flex-direction:column;cursor:default}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"] }]
|
|
282
|
+
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.UlvMainService }, { type: i0.ElementRef }, { type: i3.Router }, { type: i2.PortalService }, { type: i0.ChangeDetectorRef }, { type: i3.ActivatedRoute }, { type: i1.ContentDensityService }, { type: i2.BreadcrumbService }], propDecorators: { context: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], isReportPage: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], inDialog: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], isMultiSelect: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], layoutInfo: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], _barsaUlvComponent: [{
|
|
293
|
+
type: ViewChild,
|
|
294
|
+
args: [BarsaUlvMainComponent]
|
|
295
|
+
}], readonly: [{
|
|
296
|
+
type: HostBinding,
|
|
297
|
+
args: ['class.control-readonly']
|
|
298
|
+
}], disable: [{
|
|
299
|
+
type: HostBinding,
|
|
300
|
+
args: ['class.control-disabled']
|
|
301
|
+
}], marginUlv: [{
|
|
302
|
+
type: HostBinding,
|
|
303
|
+
args: ['class.margin-ulv']
|
|
304
|
+
}], searchPanelComponent: [{
|
|
305
|
+
type: ViewChild,
|
|
306
|
+
args: [SearchPanelComponent]
|
|
307
|
+
}], fullscreen: [{
|
|
308
|
+
type: Input
|
|
309
|
+
}] } });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LW1haW4tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGNBQWMsRUFRZCxpQkFBaUIsRUFFcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUNuSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUN6SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7OztBQVVuRixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQVVuRCxJQUNJLG9CQUFvQixDQUFDLEdBQUc7UUFDeEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFD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QUFDO29CQUN2RSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNOLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ2xELENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzNFLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBcFVRLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBXQUpsQixDQUFDLGNBQWMsQ0FBQyw4RUFVaEIscUJBQXFCLHVGQUlyQixvQkFBb0IsdUVDeERuQyxvbkVBMkNBOzs0RkRHYSxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0ksb0JBQW9CLGFBR25CLENBQUMsY0FBYyxDQUFDLG1CQUNWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzswVEFHUixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDNEIsa0JBQWtCO3NCQUFuRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFDTyxRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRSxPQUFPO3NCQUE3QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDSixTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFFM0Isb0JBQW9CO3NCQUR2QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFPbEIsVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgUGFnaW5nU2V0dGluZyxcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBTZWFyY2hQYW5lbFNldHRpbmdzLFxyXG4gICAgQnJlYWRDcnVtYkluZm8sXHJcbiAgICBCcmVhZGNydW1iU2VydmljZSxcclxuICAgIENvbHVtbkluZm9UeXBlLFxyXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxyXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXHJcbiAgICBMYXlvdXRTZXR0aW5nXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWFuYWdlRmlsdGVyc1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL21hbmFnZS1maWx0ZXJzLXJlcG9ydC9tYW5hZ2UtZmlsdGVycy1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gtcGFuZWwvc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtaGlkZGVuLXNldHRpbmdzL3JlcG9ydC1zZWFyY2gtZmllbGRzLWhpZGRlbi1zZXR0aW5ncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQgfSBmcm9tICcuLi9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUvcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS9yZXBvcnQtc2VhcmNoLWZpZWxkcy1tYW5hZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FVbHZNYWluQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktdWx2LW1haW4tdWknLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXVsdi1tYWluLXVpLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXVsdi1tYWluLXVpLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtVbHZNYWluU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVVsdk1haW5VaUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xyXG4gICAgQElucHV0KCkgaXNSZXBvcnRQYWdlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogTGF5b3V0U2V0dGluZztcclxuICAgIEBWaWV3Q2hpbGQoQmFyc2FVbHZNYWluQ29tcG9uZW50KSBfYmFyc2FVbHZDb21wb25lbnQ6IEJhcnNhVWx2TWFpbkNvbXBvbmVudDtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1yZWFkb25seScpIHJlYWRvbmx5O1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250cm9sLWRpc2FibGVkJykgZGlzYWJsZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubWFyZ2luLXVsdicpIG1hcmdpblVsdjtcclxuICAgIEBWaWV3Q2hpbGQoU2VhcmNoUGFuZWxDb21wb25lbnQpXHJcbiAgICBzZXQgc2VhcmNoUGFuZWxDb21wb25lbnQodmFsKSB7XHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFBhbmVsTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpIHNldCBmdWxsc2NyZWVuKHZhbDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldEZ1bGxzY3JlZW4odmFsKTtcclxuICAgIH1cclxuICAgIHNpbXBsZVNlYXJjaFBhbmVsOiBib29sZWFuO1xyXG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzOiBTZWFyY2hQYW5lbFNldHRpbmdzIHwgdW5kZWZpbmVkO1xyXG4gICAgZmlyc3RBcHBseUF1dG9tYXRpY2FsbHkgPSB0cnVlO1xyXG4gICAgbWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICB2aXdlck1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgdmlld2VyJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgcGFnaW5nU2V0dGluZyQ6IE9ic2VydmFibGU8UGFnaW5nU2V0dGluZyB8IG51bGw+O1xyXG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcclxuICAgIHNlYXJjaFBhbmVsVWkkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBoaWRlU2VhcmNoUGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHJlcG9ydElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgc2VhcmNoUGFuZWxNb0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQ6IE9ic2VydmFibGU8U2VhcmNoUGFuZWxTZXR0aW5nc1tdPjtcclxuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJDogT2JzZXJ2YWJsZTxTZWFyY2hQYW5lbFNldHRpbmdzIHwgdW5kZWZpbmVkPjtcclxuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XHJcbiAgICBicmVhZENydW1icyQ6IE9ic2VydmFibGU8QnJlYWRDcnVtYkluZm9bXT47XHJcbiAgICBjYW5TYXZlR3JpZFNldHRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgc2VhcmNoUGFuZWxMb2FkZWQ6IGJvb2xlYW47XHJcbiAgICBpc0Fub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaGFzU2VhcmNoUGFuZWw6IGJvb2xlYW47XHJcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcclxuICAgIGxhbmRzY2FwZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBzdGFuZGFsb25lJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGhpZGVVbHZQYWdlVGl0bGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgdWlWaWV3ZXJTZWxlY3RvciQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuXHJcbiAgICBwcml2YXRlIGRlZmF1bHREaWFsb2dDb25maWcgPSB7XHJcbiAgICAgICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxyXG4gICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxyXG4gICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICBtaW5XaWR0aDogZ2V0RGV2aWNlSXNNb2JpbGUoKSA/ICcnIDogJzUwcmVtJyxcclxuICAgICAgICBib2R5TWluSGVpZ2h0OiBnZXREZXZpY2VJc01vYmlsZSgpID8gJycgOiAnY2FsYyg1MHZoIC0gODhweCknLFxyXG4gICAgICAgIG1vYmlsZTogZ2V0RGV2aWNlSXNNb2JpbGUoKVxyXG4gICAgfTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIGNvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxyXG4gICAgICAgIF9icmFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IGNvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcclxuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xyXG4gICAgICAgIHRoaXMuYnJlYWRDcnVtYnMkID0gX2JyYWRjcnVtYlNlcnZpY2UuYnJlYWRjcnVtYnMkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SW5EaWFsb2codGhpcy5pbkRpYWxvZyk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SXNNdWx0aVNlbGVjdCh0aGlzLmlzTXVsdGlTZWxlY3QpO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnVpVmlld2VyU2VsZWN0b3IkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fYmFyc2FVbHZDb21wb25lbnQuU2V0VWlWaWV3ZXJTZWxlY3RvcihjKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXHJcbiAgICAgICAgLy8gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcclxuICAgICAgICAvLyAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKFxyXG4gICAgICAgIC8vICAgICAgICAgICAgIGUudGFyZ2V0ICYmXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50ICE9PSBlLnRhcmdldCAmJlxyXG4gICAgICAgIC8vICAgICAgICAgICAgICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpICYmXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jb250YWlucyhlLnRhcmdldCBhcyBIVE1MRWxlbWVudClcclxuICAgICAgICAvLyAgICAgICAgICkge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldElubGluZUVkaXQoZmFsc2UpO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICB0aGlzLl9yZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMubWFyZ2luVWx2ID0gIXRoaXMuaXNSZXBvcnRQYWdlO1xyXG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0LlNldHRpbmcuU2VhcmNoUGFuZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hQYW5lbExvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX29ic2VydmVPbigpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3JlbmRlcicsIHRoaXMpO1xyXG4gICAgfVxyXG4gICAgX29ic2VydmVPbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzQW5vbnltb3VzJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuaXNBbm9ueW1vdXMkO1xyXG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaFBhbmVsJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbCQ7XHJcblxyXG4gICAgICAgIHRoaXMudGl0bGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5UaXRsZScsICcnKTtcclxuICAgICAgICB0aGlzLnNpbXBsZVNlYXJjaFBhbmVsID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcclxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLlNpbXBsZVNlYXJjaFBhbmVsJyxcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGhpZGVUaXRsZU1vZGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxyXG4gICAgICAgICAgICAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuSGlkZVRpdGxlTW9kZScsXHJcbiAgICAgICAgICAgICcnXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGhpZGVUaXRsZU1vZGUgPT09ICcyJyB8fCBoaWRlVGl0bGVNb2RlID09PSAnMycpIHtcclxuICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVVsdlRpdGxlUGFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRDb250ZXh0KHRoaXMuY29udGV4dCk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0TGF5b3V0SW5mbyh0aGlzLmxheW91dEluZm8pO1xyXG5cclxuICAgICAgICB0aGlzLm1hc2skID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubWFzayQ7XHJcbiAgICAgICAgdGhpcy52aXdlck1hc2skID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uudml3ZXJNYXNrJDtcclxuICAgICAgICB0aGlzLmhpZGVVbHZQYWdlVGl0bGUkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVVsdlBhZ2VUaXRsZSQ7XHJcbiAgICAgICAgdGhpcy5jYW5TYXZlR3JpZFNldHRpbmckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY2FuU2F2ZUdyaWRTZXR0aW5nJDtcclxuICAgICAgICB0aGlzLnBhZ2luZ1NldHRpbmckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucGFnaW5nU2V0dGluZyQ7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbE1vQ2hhbmdlZCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCQ7XHJcbiAgICAgICAgdGhpcy5oYXNTZWFyY2hQYW5lbCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsVWkgIT09IG51bGw7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbFVpJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsVWkkO1xyXG4gICAgICAgIHRoaXMuc3RhbmRhbG9uZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnN0YW5kYWxvbmUkO1xyXG4gICAgICAgIHRoaXMubGFuZHNjYXBlJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UubGFuZHNjYXBlJDtcclxuICAgICAgICB0aGlzLnJlcG9ydElkJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkJDtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5jYW5TYXZlR3JpZFNldHRpbmckLnN1YnNjcmliZSgoY2FuU2F2ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2FuU2F2ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UubG9hZFNlYXJjaFBhbmVsU2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlYWRvbmx5JC5zdWJzY3JpYmUoKHJlYWRvbmx5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSByZWFkb25seTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5lbmFibGUkLnN1YnNjcmliZSgoZW5hYmxlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZSA9ICFlbmFibGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5UaXRsZSA9PT0gYj8uVGl0bGUpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyA9IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncztcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFwcGx5U2VhcmNoUGFuZWxTZXR0aW5ncyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uSGlkZVNlYXJjaFBhbmVsKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52aWV3ZXIkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uudmlld2VyJDtcclxuICAgICAgICB0aGlzLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJDtcclxuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICB9XHJcbiAgICBvbkNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5fYWN0aXZhdGVkUm91dGUgfSk7XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NldFNlYXJjaFBhbmVsTW9DaGFuZ2VkKHRydWUpO1xyXG4gICAgfVxyXG4gICAgb25QYWdlQ2hhbmdlKGU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnBhZ2VDaGFuZ2VkKGUpO1xyXG4gICAgfVxyXG4gICAgb25PcGVuTWFuYWdlRmlsdGVycygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oTWFuYWdlRmlsdGVyc1JlcG9ydENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBiYWNrZHJvcENsaWNrQ2xvc2VhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgZm9jdXNUcmFwcGVkOiB0cnVlLFxyXG4gICAgICAgICAgICBtb2JpbGU6IHRoaXMuaXNNb2JpbGVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNvbGxhcHNlZENoYW5nZShjb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS50b2dnbGVIaWRlU2VhcmNocGFuZWwoY29sbGFwc2VkKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcclxuICAgIH1cclxuICAgIG9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKCk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25GaWx0ZXJTYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NhdmVGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZpbHRlclNhdmVBcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vcGVuU2F2ZUFzRmlsdGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb3BlblNlYXJjaEZpbHRlcnNNYW5hZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNsZWFyU2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWFyY2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5jaGFuZ2VTZWxlY3RlZFNlYXJjaFBhbmVsKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3JlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChCYXJzYUFwaS5Db21tb24uVXRpbC5SZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBsaXN0OiB7IGk6IGFueTsgbjogYW55OyBhOiBhbnkgfVtdID0gW107XHJcbiAgICAgICAgY29uc3QgaCA9IGRvY3VtZW50LmhlYWQuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxpc3RbaV0gPSB7XHJcbiAgICAgICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAgICAgbjogaFtpXSxcclxuICAgICAgICAgICAgICAgIGE6IGhbaV0uaW5uZXJIVE1MXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpc3QgPSBsaXN0LnJldmVyc2UoKTtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgICAgIGNvbnN0IHQgPSBgLmZkLXRhYmxlX19jZWxsLS1hY3RpdmFibGU6YWN0aXZlICosLmZkLXRhYmxlX19yb3ctLWFjdGl2YWJsZS5pcy1hY3RpdmUgKiwuZmQtdGFibGVfX3Jvdy0tYWN0aXZhYmxlOmFjdGl2ZSAqe2NvbG9yOnZhcigtLXNhcExpc3RfQWN0aXZlX1RleHRDb2xvcikhaW1wb3J0YW50fWA7XHJcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xyXG4gICAgICAgIGNvbnN0IGYgPSBsaXN0LmZpbHRlcigoYykgPT4gYy5hLmluZGV4T2YodCkgPj0gMCk7XHJcbiAgICAgICAgaWYgKGYubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uVXRpbC5SZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGZbMF0ubi5pbm5lckhUTUwgPSBmWzBdLmEuc2xpY2UoMCwgMTAwNTgpICsgZlswXS5hLnNsaWNlKDEwMDU4ICsgdC5sZW5ndGgsIGZbMF0uYS5sZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX3NldFNlYXJjaFBhbmVsTW9DaGFuZ2VkKGNoYW5nZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKGNoYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfb3BlblNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkc1NldHRpbmcgPSB0aGlzLl91bHZNYWluU2VydmljZS5nZXRTZWFyY2hQYW5lbEZpZWxkc1NldHRpbmcoKTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcclxuICAgICAgICAgICAgbWluV2lkdGg6ICcyNXJlbScsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGZpZWxkczogWy4uLmZpZWxkc1NldHRpbmddXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRTZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5nc0NvbXBvbmVudCwgY29uZmlnKTtcclxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2V0dGluZzogQ29sdW1uSW5mb1R5cGVbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0QW5kQXBwbHlTZWFyY2hQYW5lbFNldHRpbmdGaWVsZHNTZXR0aW5nKHNldHRpbmcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX29wZW5TYXZlQXNGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2VhcmNoTW8gPSB0aGlzLl91bHZNYWluU2VydmljZS5nZXRTZWFyY2hQYW5lbE1vKCk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XHJcbiAgICAgICAgY29uc3QgZmllbGRzU2V0dGluZyA9IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uRmllbGRzU2V0dGluZztcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcclxuICAgICAgICAgICAgbWluV2lkdGg6ICcyNXJlbScsXHJcbiAgICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIHNlYXJjaE1vLFxyXG4gICAgICAgICAgICAgICAgZmllbGRzU2V0dGluZyxcclxuICAgICAgICAgICAgICAgIHJlcG9ydElkOiB0aGlzLl91bHZNYWluU2VydmljZS5yZXBvcnRJZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50LCBjb25maWcpO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZWFyY2hQYW5lbFNldHRpbmc6IFNlYXJjaFBhbmVsU2V0dGluZ3MpID0+IHtcclxuICAgICAgICAgICAgaWYgKHNlYXJjaFBhbmVsU2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgc2VhcmNoUGFuZWxTZXR0aW5nLkhpZGVTZWFyY2hQYW5lbCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFkZFNlYXJjaFBhbmVsU2V0dGluZ3Moc2VhcmNoUGFuZWxTZXR0aW5nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2F2ZUZpbHRlcigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncztcclxuICAgICAgICBpZiAoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5IaWRlU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWw7XHJcbiAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNhdmVTZWFyY2hQYW5lbFNldHRpbmcoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9vcGVuU2VhcmNoRmlsdGVyc01hbmFnZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhbGxTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncztcclxuICAgICAgICBjb25zdCByZXBvcnRJZCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MubWFwKChjKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIFRpdGxlOiBjLlRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIElzRGVmYXVsdDogYy5Jc0RlZmF1bHQsXHJcbiAgICAgICAgICAgICAgICAgICAgSXNQdWJsaWM6IGMuSXNQdWJsaWMsXHJcbiAgICAgICAgICAgICAgICAgICAgSXNQcmltYXJ5OiAhIWMuSXNQcmltYXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIEFwcGx5QXV0b21hdGljYWxseTogYy5BcHBseUF1dG9tYXRpY2FsbHksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVwb3J0SWQ6IHJlcG9ydElkLFxyXG4gICAgICAgICAgICAgICAgICAgIElkOiBjLklkXHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCwgY29uZmlnKTtcclxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2V0dGluZzogU2VhcmNoUGFuZWxTZXR0aW5nc1tdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzZXR0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuSXNQcmltYXJ5KVxyXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChuZXdTZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwcyA9IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MuZmluZCgoYykgPT4gYy5JZCA9PT0gbmV3U2V0dGluZy5JZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuTWVyZ2Uoc3BzLCBuZXdTZXR0aW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudXBkYXRlU2VhcmNoUGFuZWxTZXR0aW5ncyhhbGxTZWFyY2hQYW5lbFNldHRpbmdzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxic3UtYmFyc2EtdWx2LW1haW5cclxuICAgIFtzdHlsZS5tYXJnaW5dPVwiaXNSZXBvcnRQYWdlID8gbnVsbCA6ICd2YXIoLS1mZElucHV0X0ZpZWxkX01hcmdpbiwgLjI1cmVtIDApJ1wiXHJcbiAgICBbc3R5bGUuc3R5bGUud2lkdGhdPVwiIWlzTW9iaWxlID8gbnVsbCA6ICcxMDAlJ1wiXHJcbiAgICBbbGF5b3V0SW5mb109XCJsYXlvdXRJbmZvXCJcclxuICAgIFthdHRyLmlzUmVwb3J0UGFnZV09XCJpc1JlcG9ydFBhZ2VcIlxyXG4gICAgW3NpbXBsZVNlYXJjaFBhbmVsXT1cInNpbXBsZVNlYXJjaFBhbmVsXCJcclxuICAgIFt2aWV3ZXJDb250cm9sXT1cInZpZXdlciQgfCBhc3luY1wiXHJcbiAgICBbbG9hZGluZ109XCIobWFzayQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW3ZpZXdlckxvYWRpbmddPVwiKHZpd2VyTWFzayQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW3N0YW5kYWxvbmVdPVwiKHN0YW5kYWxvbmUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW2hpZGVVbHZQYWdlVGl0bGVdPVwiKGhpZGVVbHZQYWdlVGl0bGUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtpc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcclxuICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcclxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICBbc2VhcmNoUGFuZWxVaV09XCIoc2VhcmNoUGFuZWxVaSQgfCBhc3luYykhIVwiXHJcbiAgICBbYnJlYWRDcnVtYnNdPVwiKGJyZWFkQ3J1bWJzJCB8IGFzeW5jKSEhXCJcclxuICAgIFthbGxTZWFyY2hQYW5lbFNldHRpbmdzXT1cIihhbGxTZWFyY2hQYW5lbFNldHRpbmdzJCB8IGFzeW5jKSEhXCJcclxuICAgIFtpc0Fub255bW91c109XCIoaXNBbm9ueW1vdXMkIHwgYXN5bmMpISFcIlxyXG4gICAgW2NhblNhdmVHcmlkU2V0dGluZ109XCIoY2FuU2F2ZUdyaWRTZXR0aW5nJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbcnRsXT1cIihydGwkIHwgYXN5bmMpISFcIlxyXG4gICAgW3NlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc109XCIoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCB8IGFzeW5jKSEhXCJcclxuICAgIFtzZWFyY2hQYW5lbE1vQ2hhbmdlZF09XCIoc2VhcmNoUGFuZWxNb0NoYW5nZWQkIHwgYXN5bmMpISFcIlxyXG4gICAgW3NlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkXT1cIihzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCQgfCBhc3luYykhIVwiXHJcbiAgICBbaGlkZVNlYXJjaFBhbmVsXT1cIihoaWRlU2VhcmNoUGFuZWwkIHwgYXN5bmMpISFcIlxyXG4gICAgW3BhZ2luZ1NldHRpbmddPVwiKHBhZ2luZ1NldHRpbmckIHwgYXN5bmMpISFcIlxyXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXHJcbiAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHkkIHwgYXN5bmNcIlxyXG4gICAgKGNsb3NlRXZlbnQpPVwib25DbG9zZSgpXCJcclxuICAgIChzZWFyY2hQYW5lbE1vQ2hhbmdlKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXHJcbiAgICAob3Blbk1hbmFnZUZpbHRlcnMpPVwib25PcGVuTWFuYWdlRmlsdGVycygpXCJcclxuICAgIChjb2xsYXBzZWRDaGFuZ2UpPVwib25Db2xsYXBzZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoaGlkZVNlYXJjaFBhbmVsQ2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcclxuICAgIChmaWx0ZXJTYXZlKT1cIm9uRmlsdGVyU2F2ZSgpXCJcclxuICAgIChmaWx0ZXJTYXZlQXMpPVwib25GaWx0ZXJTYXZlQXMoKVwiXHJcbiAgICAoc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcpPVwib25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpXCJcclxuICAgIChtYW5hZ2VGaWx0ZXJzKT1cIm9uTWFuYWdlRmlsdGVycygpXCJcclxuICAgIChjbGVhclNlYXJjaCk9XCJvbkNsZWFyU2VhcmNoKClcIlxyXG4gICAgKHNlYXJjaCk9XCJvblNlYXJjaCgpXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChzZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKT1cIm9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncygkZXZlbnQpXCJcclxuPlxyXG48L2JzdS1iYXJzYS11bHYtbWFpbj5cclxuIl19
|