barsa-sap-ui 2.2.72 → 2.2.74
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/fesm2022/barsa-sap-ui.mjs +757 -761
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/models/grid-data-provider.d.ts +1 -1
- package/lib/notification-popup.service.d.ts +1 -1
- package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +1 -1
- package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +1 -1
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +2 -2
- package/lib/ui-table-view/ui-table-view.component.d.ts +4 -4
- package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +1 -1
- package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +1 -1
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -2
- package/package.json +3 -5
- package/esm2022/barsa-sap-ui.mjs +0 -5
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -90
- package/esm2022/lib/avatar-size.pipe.mjs +0 -41
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -153
- package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +0 -30
- package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
- package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
- package/esm2022/lib/barsa-card-banner/barsa-card-banner.component.mjs +0 -38
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -31
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
- package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -84
- package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -117
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -79
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
- package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
- package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
- package/esm2022/lib/barsa-form-layout-panel/barsa-form-layout-panel.component.mjs +0 -58
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
- package/esm2022/lib/barsa-img-skeleton/barsa-img-skeleton.component.mjs +0 -25
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -42
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -30
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
- package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
- package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -103
- package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
- package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
- package/esm2022/lib/barsa-sap-ui.module.mjs +0 -369
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -30
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -171
- package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -230
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -102
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
- package/esm2022/lib/barsa-theme/barsa-theme.component.mjs +0 -121
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -419
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
- package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -20
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -248
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -79
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -52
- package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -33
- package/esm2022/lib/card-item/card-item.component.mjs +0 -79
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
- package/esm2022/lib/col-renderer.directive.mjs +0 -47
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -61
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -108
- package/esm2022/lib/constants.mjs +0 -450
- package/esm2022/lib/contentDensity.directive.mjs +0 -25
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
- package/esm2022/lib/device-info-field-base.mjs +0 -24
- package/esm2022/lib/dialog-handler.directive.mjs +0 -29
- package/esm2022/lib/download-files.directive.mjs +0 -34
- package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -27
- package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -80
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -40
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -175
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -22
- package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -60
- package/esm2022/lib/fullscreen-files.directive.mjs +0 -43
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -220
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
- package/esm2022/lib/global-search/global-search.component.mjs +0 -27
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
- package/esm2022/lib/index.mjs +0 -467
- package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
- package/esm2022/lib/layout-control/layout-control.component.mjs +0 -320
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -180
- package/esm2022/lib/list-item/list-item.component.mjs +0 -34
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
- package/esm2022/lib/ly-label/ly-label.component.mjs +0 -39
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -24
- package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -92
- package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -44
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -49
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
- package/esm2022/lib/mask/mask.component.mjs +0 -22
- package/esm2022/lib/message-strip/message-strip.component.mjs +0 -29
- package/esm2022/lib/models/grid-data-provider.mjs +0 -121
- package/esm2022/lib/models/grid-view.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -2
- package/esm2022/lib/no-data/no-data.component.mjs +0 -30
- package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
- package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +0 -79
- package/esm2022/lib/notification-popup.service.mjs +0 -92
- package/esm2022/lib/object-status-icon.pipe.mjs +0 -27
- package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -75
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -61
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
- package/esm2022/lib/report-tree-base.mjs +0 -387
- package/esm2022/lib/report-view-renderer.directive.mjs +0 -395
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -74
- package/esm2022/lib/sap-font-class.pipe.mjs +0 -30
- package/esm2022/lib/sap-font.pipe.mjs +0 -30
- package/esm2022/lib/sap-size.pipe.mjs +0 -28
- package/esm2022/lib/sap-ui-report-base.component.mjs +0 -819
- package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
- package/esm2022/lib/static-text/static-text.component.mjs +0 -15
- package/esm2022/lib/table-th.directive.mjs +0 -87
- package/esm2022/lib/title/title.component.mjs +0 -15
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -44
- package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
- package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -54
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -63
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -43
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -44
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -111
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -138
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -104
- package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -33
- package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -26
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
- package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
- package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
- package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -405
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -85
- package/esm2022/lib/ui-map/ui-map.component.mjs +0 -68
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
- package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -450
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -117
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
- package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +0 -47
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
- package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -271
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -103
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -260
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
- package/esm2022/lib/ui-report-carousel-view/ui-report-carousel-view.component.mjs +0 -140
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -66
- package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
- package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -296
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -50
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
- package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
- package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -50
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -115
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -313
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -116
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -177
- package/esm2022/lib/upload-file-status.pipe.mjs +0 -29
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
- package/esm2022/lib/wizard-layout.directive.mjs +0 -104
- package/esm2022/public-api.mjs +0 -242
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { PopoverComponent } from '@fundamental-ngx/core';
|
|
3
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "barsa-novin-ray-core";
|
|
7
|
-
import * as i3 from "@fundamental-ngx/core/bar";
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/button";
|
|
9
|
-
import * as i5 from "@fundamental-ngx/core/list";
|
|
10
|
-
import * as i6 from "@fundamental-ngx/core/menu";
|
|
11
|
-
import * as i7 from "@fundamental-ngx/core/popover";
|
|
12
|
-
import * as i8 from "@fundamental-ngx/core/split-button";
|
|
13
|
-
import * as i9 from "@fundamental-ngx/core/toolbar";
|
|
14
|
-
import * as i10 from "../apply-conditional-formmatings.directive";
|
|
15
|
-
export class UlvContextMenuComponent extends BaseComponent {
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
constructor(_cdr) {
|
|
20
|
-
super();
|
|
21
|
-
this._cdr = _cdr;
|
|
22
|
-
this.commandClick = new EventEmitter();
|
|
23
|
-
this._disableOverflow = false;
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
super.ngOnInit();
|
|
27
|
-
this.overflowMode = this.menuItems.length > 1;
|
|
28
|
-
this.disableOverflowContextMenu &&= this.deviceName === 'mobile' ? false : true;
|
|
29
|
-
this._disableOverflow = this.disableOverflowContextMenu;
|
|
30
|
-
}
|
|
31
|
-
ngOnChanges(changes) {
|
|
32
|
-
super.ngOnChanges(changes);
|
|
33
|
-
const { menuItems } = changes;
|
|
34
|
-
if (menuItems && !menuItems.firstChange) {
|
|
35
|
-
this._cdr.detectChanges();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
onCommandClick(e) {
|
|
39
|
-
this.isOpenOverflow = false;
|
|
40
|
-
this.commandClick.emit(e);
|
|
41
|
-
}
|
|
42
|
-
onOpenOverflow(e) {
|
|
43
|
-
e.stopPropagation();
|
|
44
|
-
e.preventDefault();
|
|
45
|
-
this.isOpenOverflow = true;
|
|
46
|
-
}
|
|
47
|
-
onCommandSplitButtonClick(e, btn) {
|
|
48
|
-
this.onCommandClick(e);
|
|
49
|
-
if (btn.Command && btn.Command.Handler) {
|
|
50
|
-
btn.Command.Handler(btn);
|
|
51
|
-
}
|
|
52
|
-
else if (btn.handler) {
|
|
53
|
-
btn.handler.bind(btn.scope)(btn);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
OpenPopover() {
|
|
57
|
-
this._popoverCmp.open();
|
|
58
|
-
}
|
|
59
|
-
OpenPopoverAt(x, y) {
|
|
60
|
-
this._popoverCmp.applyNewPosition([
|
|
61
|
-
{
|
|
62
|
-
originX: 'center',
|
|
63
|
-
originY: 'center',
|
|
64
|
-
overlayX: 'start',
|
|
65
|
-
overlayY: 'center',
|
|
66
|
-
offsetX: x,
|
|
67
|
-
offsetY: y
|
|
68
|
-
}
|
|
69
|
-
]);
|
|
70
|
-
this._popoverCmp.open();
|
|
71
|
-
}
|
|
72
|
-
ClosePopover() {
|
|
73
|
-
this._popoverCmp.close();
|
|
74
|
-
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvContextMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: { onlyOverflow: "onlyOverflow", rightClickEnable: "rightClickEnable", deviceName: "deviceName", menuItems: "menuItems", allColumns: "allColumns", index: "index", mo: "mo", styleIndex: "styleIndex", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", footerMode: "footerMode", contextMenuOverflowText: "contextMenuOverflowText", appendTo: "appendTo" }, outputs: { commandClick: "commandClick" }, host: { properties: { "class.disableOverflow": "this._disableOverflow" } }, viewQueries: [{ propertyName: "_popoverCmp", first: true, predicate: PopoverComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (footerMode) {\r\n<div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\r\n <div fd-bar-right>\r\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\r\n </div>\r\n <ng-template #footerToolbarTpl>\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\" [shouldOverflow]=\"true\">\r\n @for (cmd of menuItems; track cmd) {\r\n <span fd-toolbar-item>\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\r\n </span>\r\n }\r\n </fd-toolbar>\r\n </ng-template>\r\n</div>\r\n} @else if(rightClickEnable){\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n overflowCommands;\r\n context: { $implicit: menuItems, index: index, hideBtn: true, appendTo: appendTo, showText: true }\r\n \"\r\n></ng-container>\r\n}@else{\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\r\n context: { $implicit: menuItems, index: index }\r\n \"\r\n></ng-container>\r\n}\r\n\r\n<ng-template #simpleCommands let-commands let-index=\"index\">\r\n @for (cmd of commands; track cmd) {\r\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template\r\n #overflowCommands\r\n let-commands\r\n let-index=\"index\"\r\n let-hideBtn=\"hideBtn\"\r\n let-appendTo=\"appendTo\"\r\n let-showText=\"showText\"\r\n>\r\n <fd-popover\r\n placement=\"bottom\"\r\n [(isOpen)]=\"isOpenOverflow\"\r\n [closeOnOutsideClick]=\"true\"\r\n [noArrow]=\"true\"\r\n [appendTo]=\"appendTo\"\r\n [focusAutoCapture]=\"true\"\r\n [focusTrapped]=\"true\"\r\n >\r\n <fd-popover-control #popover>\r\n @if(!hideBtn){\r\n <button\r\n fd-button\r\n (click)=\"onOpenOverflow($event)\"\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"!contextMenuOverflowText ? 'overflow' : null\"\r\n [title]=\"contextMenuOverflowText\"\r\n [label]=\"contextMenuOverflowText\"\r\n ></button>\r\n }\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list class=\"ulv-overflow-buttons\">\r\n @for (cmd of commands; track cmd) {\r\n <li fd-list-item>\r\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n</ng-template>\r\n\r\n<ng-template #menuButtonTemplate let-cmd>\r\n <ng-container\r\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd, showLabel: true }\"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #menuTemplate let-cmd>\r\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\r\n <fd-menu>\r\n @for (btnCommand of cmd.menu.items; track btnCommand) {\r\n <li\r\n fd-menu-item\r\n #liEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"cmd.text\"\r\n [hostEl]=\"liEl\"\r\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\r\n >\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n</ng-template>\r\n<ng-template #buttonTemplate let-cmd let-showLabel=\"showLabel\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\r\n context: { $implicit: cmd, showLabel: showLabel }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #defaultButtonTemplate let-cmd let-showLabel=\"showLabel\">\r\n <button\r\n fd-button\r\n #btnEl\r\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\r\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\r\n [ulvCommandHandler]=\"cmd\"\r\n [label]=\"cmd.Command?.NewIcon && cmd.Command?.JsonExtraProp?.Icon ? (cmd.text | bbbTranslate) : ''\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"cmd.text\"\r\n [hostEl]=\"btnEl\"\r\n [disabled]=\"cmd.Command?._isEnable === false\"\r\n (commandClick)=\"onCommandClick($event)\"\r\n >\r\n <!-- \u0686\u0648\u0646 \u0639\u06A9\u0633 \u062F\u0631 \u0633\u0645\u062A \u0631\u0627\u0633\u062A \u0642\u0631\u0627\u0631 \u0628\u06AF\u06CC\u0631\u062F \u0627\u0632 \u0644\u06CC\u0628\u0644 \u062F\u06A9\u0645\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0646\u06A9\u0631\u062F\u0645 -->\r\n @if (!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon) {\r\n <img [src]=\"cmd.icon\" />\r\n }\r\n <span *ngIf=\"true || !(cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon)\">{{\r\n cmd.text | bbbTranslate\r\n }}</span>\r\n </button>\r\n</ng-template>\r\n<ng-template #customButtonTemplate let-cmd let-showLabel=\"showLabel\">\r\n <div\r\n #hostEl\r\n [dbName]=\"cmd.text\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"hostEl\"\r\n [styleIndex]=\"styleIndex\"\r\n >\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [ulvCommandHandler]=\"cmd\"\r\n [component]=\"cmd.Command?.CustomUi\"\r\n [mo]=\"mo\"\r\n [context]=\"cmd\"\r\n [showText]=\"showLabel || disableOverflowContextMenu === false\"\r\n [deviceName]=\"deviceName\"\r\n [index]=\"index\"\r\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\r\n [allColumns]=\"allColumns\"\r\n (btnClick)=\"onCommandClick($event)\"\r\n ></bnrc-dynamic-form-toolbaritem>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i6.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvContextMenuComponent, decorators: [{
|
|
79
|
-
type: Component,
|
|
80
|
-
args: [{ selector: 'bsu-ulv-context-menu,[ulvContextMenu]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (footerMode) {\r\n<div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\r\n <div fd-bar-right>\r\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\r\n </div>\r\n <ng-template #footerToolbarTpl>\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\" [shouldOverflow]=\"true\">\r\n @for (cmd of menuItems; track cmd) {\r\n <span fd-toolbar-item>\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\r\n </span>\r\n }\r\n </fd-toolbar>\r\n </ng-template>\r\n</div>\r\n} @else if(rightClickEnable){\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n overflowCommands;\r\n context: { $implicit: menuItems, index: index, hideBtn: true, appendTo: appendTo, showText: true }\r\n \"\r\n></ng-container>\r\n}@else{\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\r\n context: { $implicit: menuItems, index: index }\r\n \"\r\n></ng-container>\r\n}\r\n\r\n<ng-template #simpleCommands let-commands let-index=\"index\">\r\n @for (cmd of commands; track cmd) {\r\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template\r\n #overflowCommands\r\n let-commands\r\n let-index=\"index\"\r\n let-hideBtn=\"hideBtn\"\r\n let-appendTo=\"appendTo\"\r\n let-showText=\"showText\"\r\n>\r\n <fd-popover\r\n placement=\"bottom\"\r\n [(isOpen)]=\"isOpenOverflow\"\r\n [closeOnOutsideClick]=\"true\"\r\n [noArrow]=\"true\"\r\n [appendTo]=\"appendTo\"\r\n [focusAutoCapture]=\"true\"\r\n [focusTrapped]=\"true\"\r\n >\r\n <fd-popover-control #popover>\r\n @if(!hideBtn){\r\n <button\r\n fd-button\r\n (click)=\"onOpenOverflow($event)\"\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"!contextMenuOverflowText ? 'overflow' : null\"\r\n [title]=\"contextMenuOverflowText\"\r\n [label]=\"contextMenuOverflowText\"\r\n ></button>\r\n }\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list class=\"ulv-overflow-buttons\">\r\n @for (cmd of commands; track cmd) {\r\n <li fd-list-item>\r\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n</ng-template>\r\n\r\n<ng-template #menuButtonTemplate let-cmd>\r\n <ng-container\r\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd, showLabel: true }\"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #menuTemplate let-cmd>\r\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\r\n <fd-menu>\r\n @for (btnCommand of cmd.menu.items; track btnCommand) {\r\n <li\r\n fd-menu-item\r\n #liEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"cmd.text\"\r\n [hostEl]=\"liEl\"\r\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\r\n >\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n</ng-template>\r\n<ng-template #buttonTemplate let-cmd let-showLabel=\"showLabel\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\r\n context: { $implicit: cmd, showLabel: showLabel }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #defaultButtonTemplate let-cmd let-showLabel=\"showLabel\">\r\n <button\r\n fd-button\r\n #btnEl\r\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\r\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\r\n [ulvCommandHandler]=\"cmd\"\r\n [label]=\"cmd.Command?.NewIcon && cmd.Command?.JsonExtraProp?.Icon ? (cmd.text | bbbTranslate) : ''\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"cmd.text\"\r\n [hostEl]=\"btnEl\"\r\n [disabled]=\"cmd.Command?._isEnable === false\"\r\n (commandClick)=\"onCommandClick($event)\"\r\n >\r\n <!-- \u0686\u0648\u0646 \u0639\u06A9\u0633 \u062F\u0631 \u0633\u0645\u062A \u0631\u0627\u0633\u062A \u0642\u0631\u0627\u0631 \u0628\u06AF\u06CC\u0631\u062F \u0627\u0632 \u0644\u06CC\u0628\u0644 \u062F\u06A9\u0645\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0646\u06A9\u0631\u062F\u0645 -->\r\n @if (!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon) {\r\n <img [src]=\"cmd.icon\" />\r\n }\r\n <span *ngIf=\"true || !(cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon)\">{{\r\n cmd.text | bbbTranslate\r\n }}</span>\r\n </button>\r\n</ng-template>\r\n<ng-template #customButtonTemplate let-cmd let-showLabel=\"showLabel\">\r\n <div\r\n #hostEl\r\n [dbName]=\"cmd.text\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"hostEl\"\r\n [styleIndex]=\"styleIndex\"\r\n >\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [ulvCommandHandler]=\"cmd\"\r\n [component]=\"cmd.Command?.CustomUi\"\r\n [mo]=\"mo\"\r\n [context]=\"cmd\"\r\n [showText]=\"showLabel || disableOverflowContextMenu === false\"\r\n [deviceName]=\"deviceName\"\r\n [index]=\"index\"\r\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\r\n [allColumns]=\"allColumns\"\r\n (btnClick)=\"onCommandClick($event)\"\r\n ></bnrc-dynamic-form-toolbaritem>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"] }]
|
|
81
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { _popoverCmp: [{
|
|
82
|
-
type: ViewChild,
|
|
83
|
-
args: [PopoverComponent]
|
|
84
|
-
}], onlyOverflow: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], rightClickEnable: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], deviceName: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], menuItems: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], allColumns: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], index: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], mo: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], styleIndex: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], conditionalFormats: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], disableOverflowContextMenu: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], footerMode: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], contextMenuOverflowText: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], appendTo: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], commandClick: [{
|
|
111
|
-
type: Output
|
|
112
|
-
}], _disableOverflow: [{
|
|
113
|
-
type: HostBinding,
|
|
114
|
-
args: ['class.disableOverflow']
|
|
115
|
-
}] } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtY29udGV4dC1tZW51L3Vsdi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWNvbnRleHQtbWVudS91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBcUQsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU3hHLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBbUJ0RDs7T0FFRztJQUNILFlBQXNCLElBQXVCO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFQbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ1gscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBUS9ELENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQywwQkFBMEIsS0FBSyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEYsSUFBSSxDQUFD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dCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBEZXZpY2VTaXplLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtY29udGV4dC1tZW51LFt1bHZDb250ZXh0TWVudV0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWx2LWNvbnRleHQtbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWx2Q29udGV4dE1lbnVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudCkgX3BvcG92ZXJDbXA6IFBvcG92ZXJDb21wb25lbnQ7XHJcbiAgICBASW5wdXQoKSBvbmx5T3ZlcmZsb3c6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSByaWdodENsaWNrRW5hYmxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIG1lbnVJdGVtczogYW55W107XHJcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSBzdHlsZUluZGV4OiBudW1iZXJbXTtcclxuICAgIEBJbnB1dCgpIGNvbmRpdGlvbmFsRm9ybWF0czogYW55W107XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGZvb3Rlck1vZGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250ZXh0TWVudU92ZXJmbG93VGV4dDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYXBwZW5kVG86IEhUTUxFbGVtZW50O1xyXG4gICAgQE91dHB1dCgpIGNvbW1hbmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlT3ZlcmZsb3cnKSBfZGlzYWJsZU92ZXJmbG93ID0gZmFsc2U7XHJcbiAgICBpc09wZW5PdmVyZmxvdzogYm9vbGVhbjtcclxuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5vdmVyZmxvd01vZGUgPSB0aGlzLm1lbnVJdGVtcy5sZW5ndGggPiAxO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUgJiY9IHRoaXMuZGV2aWNlTmFtZSA9PT0gJ21vYmlsZScgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZU92ZXJmbG93ID0gdGhpcy5kaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IG1lbnVJdGVtcyB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAobWVudUl0ZW1zICYmICFtZW51SXRlbXMuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvbkNvbW1hbmRDbGljayhlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc09wZW5PdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29tbWFuZENsaWNrLmVtaXQoZSk7XHJcbiAgICB9XHJcbiAgICBvbk9wZW5PdmVyZmxvdyhlKTogdm9pZCB7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5PdmVyZmxvdyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBvbkNvbW1hbmRTcGxpdEJ1dHRvbkNsaWNrKGUsIGJ0bik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Db21tYW5kQ2xpY2soZSk7XHJcbiAgICAgICAgaWYgKGJ0bi5Db21tYW5kICYmIGJ0bi5Db21tYW5kLkhhbmRsZXIpIHtcclxuICAgICAgICAgICAgYnRuLkNvbW1hbmQuSGFuZGxlcihidG4pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYnRuLmhhbmRsZXIpIHtcclxuICAgICAgICAgICAgYnRuLmhhbmRsZXIuYmluZChidG4uc2NvcGUpKGJ0bik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIE9wZW5Qb3BvdmVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BvcG92ZXJDbXAub3BlbigpO1xyXG4gICAgfVxyXG4gICAgT3BlblBvcG92ZXJBdCh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BvcG92ZXJDbXAuYXBwbHlOZXdQb3NpdGlvbihbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgIG9mZnNldFg6IHgsXHJcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiB5XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdKTtcclxuICAgICAgICB0aGlzLl9wb3BvdmVyQ21wLm9wZW4oKTtcclxuICAgIH1cclxuICAgIENsb3NlUG9wb3ZlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wb3BvdmVyQ21wLmNsb3NlKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmIChmb290ZXJNb2RlKSB7XHJcbjxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZvb3RlclwiIFtjb3p5XT1cImZhbHNlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgPGRpdiBmZC1iYXItcmlnaHQ+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRvb2xiYXJUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXJUb29sYmFyVHBsPlxyXG4gICAgICAgIDxmZC10b29sYmFyIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2NsZWFyQm9yZGVyXT1cInRydWVcIiBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICBAZm9yIChjbWQgb2YgbWVudUl0ZW1zOyB0cmFjayBjbWQpIHtcclxuICAgICAgICAgICAgPHNwYW4gZmQtdG9vbGJhci1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY21kIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC10b29sYmFyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbn0gQGVsc2UgaWYocmlnaHRDbGlja0VuYWJsZSl7XHJcbjxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgb3ZlcmZsb3dDb21tYW5kcztcclxuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVudUl0ZW1zLCBpbmRleDogaW5kZXgsIGhpZGVCdG46IHRydWUsIGFwcGVuZFRvOiBhcHBlbmRUbywgc2hvd1RleHQ6IHRydWUgfVxyXG4gICAgXCJcclxuPjwvbmctY29udGFpbmVyPlxyXG59QGVsc2V7XHJcbjxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgb3ZlcmZsb3dNb2RlICYmICFkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudSA/IG92ZXJmbG93Q29tbWFuZHMgOiBzaW1wbGVDb21tYW5kcztcclxuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVudUl0ZW1zLCBpbmRleDogaW5kZXggfVxyXG4gICAgXCJcclxuPjwvbmctY29udGFpbmVyPlxyXG59XHJcblxyXG48bmctdGVtcGxhdGUgI3NpbXBsZUNvbW1hbmRzIGxldC1jb21tYW5kcyBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgQGZvciAoY21kIG9mIGNvbW1hbmRzOyB0cmFjayBjbWQpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51QnV0dG9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjbWQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjb3ZlcmZsb3dDb21tYW5kc1xyXG4gICAgbGV0LWNvbW1hbmRzXHJcbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXHJcbiAgICBsZXQtaGlkZUJ0bj1cImhpZGVCdG5cIlxyXG4gICAgbGV0LWFwcGVuZFRvPVwiYXBwZW5kVG9cIlxyXG4gICAgbGV0LXNob3dUZXh0PVwic2hvd1RleHRcIlxyXG4+XHJcbiAgICA8ZmQtcG9wb3ZlclxyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgWyhpc09wZW4pXT1cImlzT3Blbk92ZXJmbG93XCJcclxuICAgICAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJ0cnVlXCJcclxuICAgICAgICBbbm9BcnJvd109XCJ0cnVlXCJcclxuICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxyXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbCAjcG9wb3Zlcj5cclxuICAgICAgICAgICAgQGlmKCFoaWRlQnRuKXtcclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuT3ZlcmZsb3coJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIiFjb250ZXh0TWVudU92ZXJmbG93VGV4dCA/ICdvdmVyZmxvdycgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb250ZXh0TWVudU92ZXJmbG93VGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dE1lbnVPdmVyZmxvd1RleHRcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICA8dWwgZmQtbGlzdCBjbGFzcz1cInVsdi1vdmVyZmxvdy1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChjbWQgb2YgY29tbWFuZHM7IHRyYWNrIGNtZCkge1xyXG4gICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUJ1dHRvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY21kIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICA8L2ZkLXBvcG92ZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI21lbnVCdXR0b25UZW1wbGF0ZSBsZXQtY21kPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY21kLm1lbnUgPyBtZW51VGVtcGxhdGUgOiBidXR0b25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNtZCwgc2hvd0xhYmVsOiB0cnVlIH1cIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZSBsZXQtY21kPlxyXG4gICAgPGZkLXNwbGl0LWJ1dHRvbiBmZC10b29sYmFyLWl0ZW0gW21haW5BY3Rpb25dPVwieyBtYWluQWN0aW9uVGl0bGU6IGNtZC50ZXh0LCBrZWVwTWFpbkFjdGlvbjogdHJ1ZSB9XCI+XHJcbiAgICAgICAgPGZkLW1lbnU+XHJcbiAgICAgICAgICAgIEBmb3IgKGJ0bkNvbW1hbmQgb2YgY21kLm1lbnUuaXRlbXM7IHRyYWNrIGJ0bkNvbW1hbmQpIHtcclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICBmZC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAgICNsaUVsXHJcbiAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgW2RiTmFtZV09XCJjbWQudGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbaG9zdEVsXT1cImxpRWxcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29tbWFuZFNwbGl0QnV0dG9uQ2xpY2soJGV2ZW50LCBidG5Db21tYW5kKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGJ0bkNvbW1hbmQudGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1tZW51PlxyXG4gICAgPC9mZC1zcGxpdC1idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGUgbGV0LWNtZCBsZXQtc2hvd0xhYmVsPVwic2hvd0xhYmVsXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgY21kPy5Db21tYW5kPy5DdXN0b21VaSA/IGN1c3RvbUJ1dHRvblRlbXBsYXRlIDogZGVmYXVsdEJ1dHRvblRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogY21kLCBzaG93TGFiZWw6IHNob3dMYWJlbCB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0QnV0dG9uVGVtcGxhdGUgbGV0LWNtZCBsZXQtc2hvd0xhYmVsPVwic2hvd0xhYmVsXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgI2J0bkVsXHJcbiAgICAgICAgW2ZkVHlwZV09XCJjbWQuQ29tbWFuZD8uSnNvbkV4dHJhUHJvcD8uRGVzaWduID8gY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3AuRGVzaWduIDogJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgW2dseXBoXT1cImNtZC5Db21tYW5kPy5OZXdJY29uIHx8IGNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wPy5JY29uIHx8ICcnXCJcclxuICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiY21kXCJcclxuICAgICAgICBbbGFiZWxdPVwiY21kLkNvbW1hbmQ/Lk5ld0ljb24gJiYgY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3A/Lkljb24gPyAoY21kLnRleHQgfCBiYmJUcmFuc2xhdGUpIDogJydcIlxyXG4gICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgIFtkYk5hbWVdPVwiY21kLnRleHRcIlxyXG4gICAgICAgIFtob3N0RWxdPVwiYnRuRWxcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjbWQuQ29tbWFuZD8uX2lzRW5hYmxlID09PSBmYWxzZVwiXHJcbiAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvbkNvbW1hbmRDbGljaygkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgICA8IS0tINqG2YjZhiDYudqp2LMg2K/YsSDYs9mF2Kog2LHYp9iz2Kog2YLYsdin2LEg2Kjar9uM2LHYryDYp9iyINmE24zYqNmEINiv2qnZhdmHINin2LPYqtmB2KfYr9mHINmG2qnYsdiv2YUgLS0+XHJcbiAgICAgICAgQGlmICghY21kLkNvbW1hbmQ/Lk5ld0ljb24gJiYgIWNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wPy5JY29uKSB7XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImNtZC5pY29uXCIgLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0cnVlIHx8ICEoY21kLkNvbW1hbmQ/Lk5ld0ljb24gfHwgY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3A/Lkljb24pXCI+e3tcclxuICAgICAgICAgICAgY21kLnRleHQgfCBiYmJUcmFuc2xhdGVcclxuICAgICAgICB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2N1c3RvbUJ1dHRvblRlbXBsYXRlIGxldC1jbWQgbGV0LXNob3dMYWJlbD1cInNob3dMYWJlbFwiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgICNob3N0RWxcclxuICAgICAgICBbZGJOYW1lXT1cImNtZC50ZXh0XCJcclxuICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICBbaG9zdEVsXT1cImhvc3RFbFwiXHJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXHJcbiAgICA+XHJcbiAgICAgICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXHJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiY21kXCJcclxuICAgICAgICAgICAgW2NvbXBvbmVudF09XCJjbWQuQ29tbWFuZD8uQ3VzdG9tVWlcIlxyXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICBbY29udGV4dF09XCJjbWRcIlxyXG4gICAgICAgICAgICBbc2hvd1RleHRdPVwic2hvd0xhYmVsIHx8IGRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51ID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxyXG4gICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBbaXNFbmFibGVdPVwiY21kLkNvbW1hbmQ/Ll9pc0VuYWJsZSB8fCBjbWQuQ29tbWFuZD8uVXNlRm9yU2luZ2xlXCJcclxuICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgICAgIChidG5DbGljayk9XCJvbkNvbW1hbmRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICA+PC9ibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbT5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { BaseUlvSettingComponent } from 'barsa-novin-ray-core';
|
|
3
|
-
import { UiGridFilterSettingsComponent } from '../ui-grid-filter-settings/ui-grid-filter-settings.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@fundamental-ngx/core";
|
|
6
|
-
import * as i2 from "@fundamental-ngx/core/bar";
|
|
7
|
-
import * as i3 from "@fundamental-ngx/core/button";
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/dialog";
|
|
9
|
-
import * as i5 from "@fundamental-ngx/cdk/utils";
|
|
10
|
-
import * as i6 from "@fundamental-ngx/core/title";
|
|
11
|
-
import * as i7 from "../ui-grid-filter-settings/ui-grid-filter-settings.component";
|
|
12
|
-
import * as i8 from "@angular/common";
|
|
13
|
-
import * as i9 from "barsa-novin-ray-core";
|
|
14
|
-
export class UlvFilterSettingsComponent extends BaseUlvSettingComponent {
|
|
15
|
-
constructor(dialogRef) {
|
|
16
|
-
super();
|
|
17
|
-
this.dialogRef = dialogRef;
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.context = this.dialogRef.data.context;
|
|
21
|
-
this.controlsInfo$ = this.dialogRef.data.controlsInfo$;
|
|
22
|
-
this.typeDefId = this.dialogRef.data.typeDefId;
|
|
23
|
-
this.selectedColumnName = this.dialogRef.data.selectedColumnName;
|
|
24
|
-
super.ngOnInit();
|
|
25
|
-
}
|
|
26
|
-
close(setting = null) {
|
|
27
|
-
this.dialogRef.close(setting);
|
|
28
|
-
}
|
|
29
|
-
onOkClick() {
|
|
30
|
-
const filters = this.gridFilterSettings.getFilters();
|
|
31
|
-
this.close(filters);
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFilterSettingsComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UlvFilterSettingsComponent, selector: "bsu-ulv-filter-settings", viewQueries: [{ propertyName: "gridFilterSettings", first: true, predicate: UiGridFilterSettingsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h4 fd-title [headerSize]=\"4\">{{ 'Filter' | bbbTranslate }}</h4>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-bar-element>\r\n <button fd-button [label]=\"'Reset' | bbbTranslate\" [fdType]=\"'transparent'\"></button>\r\n </fd-bar-element>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body class=\"setting-wrapper\">\r\n @if (controlsInfo$ | async; as controlsInfo) {\r\n <bsu-ui-grid-filter-settings\r\n [columns]=\"allColumns\"\r\n [sortSettings]=\"sortSettings\"\r\n [controlsInfo]=\"controlsInfo\"\r\n [typeDefId]=\"typeDefId\"\r\n [selectedColumnName]=\"selectedColumnName\"\r\n ></bsu-ui-grid-filter-settings>\r\n }\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-dialog-footer-button>\r\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n <fd-dialog-footer-button>\r\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.UiGridFilterSettingsComponent, selector: "bsu-ui-grid-filter-settings", inputs: ["sortDirections", "typeDefId", "selectedColumnName", "filters", "columns", "controlsInfo"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFilterSettingsComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'bsu-ulv-filter-settings', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h4 fd-title [headerSize]=\"4\">{{ 'Filter' | bbbTranslate }}</h4>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-bar-element>\r\n <button fd-button [label]=\"'Reset' | bbbTranslate\" [fdType]=\"'transparent'\"></button>\r\n </fd-bar-element>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body class=\"setting-wrapper\">\r\n @if (controlsInfo$ | async; as controlsInfo) {\r\n <bsu-ui-grid-filter-settings\r\n [columns]=\"allColumns\"\r\n [sortSettings]=\"sortSettings\"\r\n [controlsInfo]=\"controlsInfo\"\r\n [typeDefId]=\"typeDefId\"\r\n [selectedColumnName]=\"selectedColumnName\"\r\n ></bsu-ui-grid-filter-settings>\r\n }\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-dialog-footer-button>\r\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n <fd-dialog-footer-button>\r\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\r\n </fd-dialog-footer-button>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n" }]
|
|
39
|
-
}], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { gridFilterSettings: [{
|
|
40
|
-
type: ViewChild,
|
|
41
|
-
args: [UiGridFilterSettingsComponent]
|
|
42
|
-
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtZmlsdGVyLXNldHRpbmdzL3Vsdi1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZpbHRlci1zZXR0aW5ncy91bHYtZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSx1QkFBdUIsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0csTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQU1uRSxZQUFvQixTQUFvQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURRLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFeEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDakUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxLQUFLLENBQUMsVUFBZSxJQUFJO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxTQUFTO1FBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQzsrR0F2QlEsMEJBQTBCO21HQUExQiwwQkFBMEIsbUhBQ3hCLDZCQUE2Qix1RUNkNUMsaS9DQW9DQTs7NEZEdkJhLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4RUFJakIsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlVWx2U2V0dGluZ0NvbXBvbmVudCwgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVWlHcmlkRmlsdGVyU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuLi91aS1ncmlkLWZpbHRlci1zZXR0aW5ncy91aS1ncmlkLWZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVsdi1maWx0ZXItc2V0dGluZ3MnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWx2LWZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWx2RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBCYXNlVWx2U2V0dGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKFVpR3JpZEZpbHRlclNldHRpbmdzQ29tcG9uZW50KVxyXG4gICAgZ3JpZEZpbHRlclNldHRpbmdzOiBVaUdyaWRGaWx0ZXJTZXR0aW5nc0NvbXBvbmVudDtcclxuICAgIGNvbnRyb2xzSW5mbyQ6IE9ic2VydmFibGU8R2VuZXJhbENvbnRyb2xJbmZvTW9kZWxbXT47XHJcbiAgICB0eXBlRGVmSWQ6IHN0cmluZztcclxuICAgIHNlbGVjdGVkQ29sdW1uTmFtZTogc3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2dSZWY6IERpYWxvZ1JlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5kaWFsb2dSZWYuZGF0YS5jb250ZXh0O1xyXG4gICAgICAgIHRoaXMuY29udHJvbHNJbmZvJCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuY29udHJvbHNJbmZvJDtcclxuICAgICAgICB0aGlzLnR5cGVEZWZJZCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEudHlwZURlZklkO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5OYW1lID0gdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZENvbHVtbk5hbWU7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuICAgIGNsb3NlKHNldHRpbmc6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzZXR0aW5nKTtcclxuICAgIH1cclxuICAgIG9uT2tDbGljaygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5ncmlkRmlsdGVyU2V0dGluZ3MuZ2V0RmlsdGVycygpO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoZmlsdGVycyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLWRpYWxvZz5cclxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxyXG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBmZC10aXRsZSBbaGVhZGVyU2l6ZV09XCI0XCI+e3sgJ0ZpbHRlcicgfCBiYmJUcmFuc2xhdGUgfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxyXG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInUmVzZXQnIHwgYmJiVHJhbnNsYXRlXCIgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgPGZkLWRpYWxvZy1ib2R5IGNsYXNzPVwic2V0dGluZy13cmFwcGVyXCI+XHJcbiAgICAgICAgQGlmIChjb250cm9sc0luZm8kIHwgYXN5bmM7IGFzIGNvbnRyb2xzSW5mbykge1xyXG4gICAgICAgIDxic3UtdWktZ3JpZC1maWx0ZXItc2V0dGluZ3NcclxuICAgICAgICAgICAgW2NvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgICAgIFtzb3J0U2V0dGluZ3NdPVwic29ydFNldHRpbmdzXCJcclxuICAgICAgICAgICAgW2NvbnRyb2xzSW5mb109XCJjb250cm9sc0luZm9cIlxyXG4gICAgICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZENvbHVtbk5hbWVdPVwic2VsZWN0ZWRDb2x1bW5OYW1lXCJcclxuICAgICAgICA+PC9ic3UtdWktZ3JpZC1maWx0ZXItc2V0dGluZ3M+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1kaWFsb2ctYm9keT5cclxuXHJcbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cImVtcGhhc2l6ZWRcIiAoY2xpY2spPVwib25Pa0NsaWNrKClcIiBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWxTZXR0aW5ncygpXCIgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuPC9mZC1kaWFsb2c+XHJcbiJdfQ==
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@fundamental-ngx/core";
|
|
6
|
-
import * as i2 from "barsa-novin-ray-core";
|
|
7
|
-
import * as i3 from "@fundamental-ngx/core/bar";
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/button";
|
|
9
|
-
import * as i5 from "@fundamental-ngx/core/dialog";
|
|
10
|
-
import * as i6 from "@fundamental-ngx/cdk/utils";
|
|
11
|
-
import * as i7 from "@fundamental-ngx/core/title";
|
|
12
|
-
import * as i8 from "@fundamental-ngx/core/toolbar";
|
|
13
|
-
import * as i9 from "@fundamental-ngx/core/token";
|
|
14
|
-
import * as i10 from "../ui-ulv-main-ui/ui-ulv-main-ui.component";
|
|
15
|
-
import * as i11 from "../fullscreen-dialog.directive";
|
|
16
|
-
export class UlvFormMultiSelectComponent extends BaseComponent {
|
|
17
|
-
constructor(_dialogService, _bbbTranslatePipe, _portalService, _contentDensityService) {
|
|
18
|
-
super();
|
|
19
|
-
this._dialogService = _dialogService;
|
|
20
|
-
this._bbbTranslatePipe = _bbbTranslatePipe;
|
|
21
|
-
/* eslint-disable */
|
|
22
|
-
this.Show = (adapter, config) => {
|
|
23
|
-
const largeScreen = this.deviceSize === 'l' || this.deviceSize === 'xl';
|
|
24
|
-
const dialogConfig = {
|
|
25
|
-
data: { ...config, adapter },
|
|
26
|
-
escKeyCloseable: false,
|
|
27
|
-
dialogPanelClass: `ulv-selection-form-dialog ${this.deviceSize ? 'ulv-selection-form-dialog-mobile' : ''}`,
|
|
28
|
-
verticalPadding: false,
|
|
29
|
-
focusTrapped: false
|
|
30
|
-
};
|
|
31
|
-
if (largeScreen) {
|
|
32
|
-
dialogConfig.width = '50vw';
|
|
33
|
-
dialogConfig.height = 'auto';
|
|
34
|
-
dialogConfig.minWidth = '400';
|
|
35
|
-
dialogConfig.minHeight = '60vh';
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
dialogConfig.mobile = true;
|
|
39
|
-
dialogConfig.fullScreen = true;
|
|
40
|
-
}
|
|
41
|
-
if (adapter.HideOkCancelButtons) {
|
|
42
|
-
dialogConfig.fullScreen = true;
|
|
43
|
-
}
|
|
44
|
-
const dialogRef = this._dialogService.open(this.dialogContainer, dialogConfig);
|
|
45
|
-
dialogRef.loading(config.IsLoaded === true ? false : true); // means ulv is loaded and it does not show loading in dialog
|
|
46
|
-
dialogRef.mask = (val) => {
|
|
47
|
-
dialogRef.loading(val);
|
|
48
|
-
};
|
|
49
|
-
dialogRef.AddUlvToWindow = (ulvControl1, ulvControl2) => {
|
|
50
|
-
dialogRef.loading(false);
|
|
51
|
-
const selectFormTitleText = this._bbbTranslatePipe.transform('SelectFormTitle');
|
|
52
|
-
dialogRef.data.title =
|
|
53
|
-
ulvControl1.Setting.Extra?.ExtraJsonPropReport?.Title === false
|
|
54
|
-
? ''
|
|
55
|
-
: selectFormTitleText.replace('{0}', ulvControl1.Setting.Extra.Report.TypeDefCaption);
|
|
56
|
-
dialogRef.data.ulv1 = ulvControl1;
|
|
57
|
-
if (ulvControl1.viewerControl) {
|
|
58
|
-
this._handleUlvViewerEvent(ulvControl1, adapter, dialogRef);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
ulvControl1.on({
|
|
62
|
-
ViewerControlChanged: () => {
|
|
63
|
-
this._handleUlvViewerEvent(ulvControl1, adapter, dialogRef);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
if (ulvControl2) {
|
|
68
|
-
dialogRef.data.ulv2 = ulvControl2;
|
|
69
|
-
dialogRef.data.selectedItems = ulvControl2.Setting.Data;
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
return dialogRef;
|
|
73
|
-
/* eslint-disable */
|
|
74
|
-
};
|
|
75
|
-
this.contentDensity$ = _contentDensityService.contentDensity;
|
|
76
|
-
BarsaApi.Bw.UlvFormMultiSelect = this;
|
|
77
|
-
_portalService.deviceSize$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {
|
|
78
|
-
this.deviceSize = c;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
_handleUlvViewerEvent(ulvControl1, adapter, dialogRef) {
|
|
82
|
-
ulvControl1.viewerControl.ShowOkCancelButtons = adapter.ShowOkCancelButtons;
|
|
83
|
-
ulvControl1.viewerControl.on({
|
|
84
|
-
/* eslint-disable */
|
|
85
|
-
rowselect: (sender, index, mo) => {
|
|
86
|
-
this._addItem(dialogRef, mo);
|
|
87
|
-
},
|
|
88
|
-
/* eslint-disable */
|
|
89
|
-
rowdeselect: (sender, index, mo) => {
|
|
90
|
-
this._removeItem(dialogRef, mo);
|
|
91
|
-
},
|
|
92
|
-
rowSelectAll: () => {
|
|
93
|
-
ulvControl1.Setting.Data.MoDataList.forEach((mo) => {
|
|
94
|
-
this._addItem(dialogRef, mo);
|
|
95
|
-
});
|
|
96
|
-
},
|
|
97
|
-
rowDeSelectAll: () => {
|
|
98
|
-
ulvControl1.Setting.Data.MoDataList.forEach((mo) => {
|
|
99
|
-
this._removeItem(dialogRef, mo);
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
onOk(dialogRef) {
|
|
105
|
-
const { ulv, ulv2 } = this._getUlv(dialogRef);
|
|
106
|
-
// if (ulv) {
|
|
107
|
-
// if (ulv2) {
|
|
108
|
-
// const adapter = dialogRef.data.adapter;
|
|
109
|
-
// adapter.fireEvent('AddRemoveButtonClick', adapter, 'Add');
|
|
110
|
-
// }
|
|
111
|
-
// }
|
|
112
|
-
this._btnClick(ulv, 'Ok');
|
|
113
|
-
}
|
|
114
|
-
_getUlv(dialogRef) {
|
|
115
|
-
const ulv2 = dialogRef.data.ulv2;
|
|
116
|
-
const ulv1 = dialogRef.data.ulv1;
|
|
117
|
-
const ulv = ulv2 || ulv1;
|
|
118
|
-
return { ulv, ulv2 };
|
|
119
|
-
}
|
|
120
|
-
_btnClick(ulv, btnKey) {
|
|
121
|
-
const okBtn = ulv.buttons.find((c) => c.Key === btnKey);
|
|
122
|
-
const scope = okBtn.scope;
|
|
123
|
-
okBtn.handler.bind(scope)(okBtn);
|
|
124
|
-
}
|
|
125
|
-
onCancel(dialogRef) {
|
|
126
|
-
if (!dialogRef.data.adapter?.ShowOkCancelButtons) {
|
|
127
|
-
dialogRef.dismiss();
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
const { ulv, ulv2 } = this._getUlv(dialogRef);
|
|
131
|
-
if (!ulv) {
|
|
132
|
-
dialogRef.dismiss();
|
|
133
|
-
}
|
|
134
|
-
this._btnClick(ulv, 'Cancel');
|
|
135
|
-
}
|
|
136
|
-
onClear(dialogRef) {
|
|
137
|
-
dialogRef.data.ulv1.viewerControl.fireEvent('ClearAllSelected');
|
|
138
|
-
dialogRef.data.selectedItems.MoDataList = [];
|
|
139
|
-
}
|
|
140
|
-
onRemoveSelected(dialogRef, item) {
|
|
141
|
-
this._removeItem(dialogRef, item);
|
|
142
|
-
}
|
|
143
|
-
_removeItem(dialogRef, mo) {
|
|
144
|
-
const selectedItems = dialogRef.data.selectedItems;
|
|
145
|
-
if (!selectedItems) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
selectedItems.MoDataList = selectedItems.MoDataList.filter((c) => c.Id !== mo.Id);
|
|
149
|
-
dialogRef.data.ulv1.viewerControl.fireEvent('DeselectRowInDialog', [mo]);
|
|
150
|
-
if (dialogRef.data.ulv2) {
|
|
151
|
-
const adapter = dialogRef.data.adapter;
|
|
152
|
-
adapter.fireEvent('AddRemoveButtonClick', adapter, 'RemoveMo', mo);
|
|
153
|
-
}
|
|
154
|
-
// const adapter = dialogRef.data.adapter;
|
|
155
|
-
// adapter.fireEvent('AddRemoveButtonClick', adapter, 'Remove');
|
|
156
|
-
}
|
|
157
|
-
_addItem(dialogRef, mo) {
|
|
158
|
-
const selectedItems = dialogRef.data.selectedItems;
|
|
159
|
-
if (!selectedItems) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
if (!selectedItems.MoDataList.find((c) => c.Id === mo.Id)) {
|
|
163
|
-
if (!mo.$Caption) {
|
|
164
|
-
const x = Object.keys(mo).filter((c) => !c.startsWith('$') && c !== 'Id');
|
|
165
|
-
if (x.length) {
|
|
166
|
-
mo.$Caption = mo[x[0]];
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
selectedItems.MoDataList = [...selectedItems.MoDataList, mo];
|
|
170
|
-
if (dialogRef.data.ulv2) {
|
|
171
|
-
const adapter = dialogRef.data.adapter;
|
|
172
|
-
adapter.fireEvent('AddRemoveButtonClick', adapter, 'Add');
|
|
173
|
-
}
|
|
174
|
-
// const adapter = dialogRef.data.adapter;
|
|
175
|
-
// adapter.fireEvent('AddRemoveButtonClick', adapter, 'Add');
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
_trackBySelectedFn(_index, item) {
|
|
179
|
-
return item.Id;
|
|
180
|
-
}
|
|
181
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFormMultiSelectComponent, deps: [{ token: i1.DialogService }, { token: i2.BbbTranslatePipe }, { token: i2.PortalService }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
182
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UlvFormMultiSelectComponent, selector: "bsu-ulv-form-multi-select", inputs: { Show: "Show" }, viewQueries: [{ propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }, { propertyName: "dialogComponent", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\r\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n @if (!dialogConfig.fullscreen && !dialogConfig.mobile) {\r\n <fd-button-bar\r\n ariaLabel=\"fullscreen\"\r\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\r\n fullscreenDialog\r\n [dialog]=\"dialog\"\r\n [fullscreen]=\"dialog.data.fullscreen\"\r\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\r\n [dialogComponent]=\"dialogTpl\"\r\n ></fd-button-bar>\r\n }\r\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\r\n <button fd-dialog-close-button></button> -->\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body>\r\n @if (dialog.data.ulv1; as ulv1) {\r\n <bsu-ui-ulv-main-ui\r\n class=\"ulv-form-multi-select\"\r\n [context]=\"ulv1\"\r\n [inDialog]=\"true\"\r\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\r\n [fullscreen]=\"dialog.data.fullscreen\"\r\n ></bsu-ui-ulv-main-ui>\r\n }\r\n </fd-dialog-body>\r\n @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\r\n <fd-dialog-footer class=\"ulvSelection\">\r\n <ng-template fdkTemplate=\"footer\">\r\n <div\r\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\r\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\r\n >\r\n <h5 fd-title class=\"selected-and-condition-title !tw-pb-2\">\r\n <ng-container>\r\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\r\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\r\n </ng-container>\r\n </h5>\r\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\r\n <div class=\"ulv-selection-form-dialog__tokens\">\r\n @if (dialog.data.selectedItems) {\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n <!-- Selected items -->\r\n @for ( item of dialog.data.selectedItems.MoDataList; track\r\n _trackBySelectedFn(selectedIndex, item); let selectedIndex = $index) {\r\n <fd-token\r\n fd-toolbar-item\r\n fdOverflowPriority=\"high\"\r\n class=\"fdp-value-help-dialog__selection-token\"\r\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\r\n >{{ item.$Caption }}\r\n </fd-token>\r\n }\r\n </fd-toolbar>\r\n }\r\n </div>\r\n <button\r\n class=\"ulv-selection-form-dialog__tokens-clear\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n [aria-label]=\"'Clear' | bbbTranslate\"\r\n (click)=\"onClear(dialog)\"\r\n ></button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n } @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\r\n <div class=\"fd-bar__right\">\r\n <button\r\n fd-button\r\n data-succes\r\n [label]=\"'OK' | bbbTranslate\"\r\n fdType=\"emphasized\"\r\n (click)=\"onOk(dialog)\"\r\n ></button>\r\n <button\r\n fd-button\r\n data-dismiss-dialog\r\n fd-dialog-decisive-button\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onCancel(dialog)\"\r\n ></button>\r\n </div>\r\n }\r\n </ng-template>\r\n </fd-dialog-footer>\r\n }\r\n </fd-dialog>\r\n</ng-template>\r\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:.5rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar{padding:0!important;height:5rem!important}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar>div{width:100%}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i5.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i9.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i10.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }, { kind: "directive", type: i11.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent", "fullscreen"], outputs: ["fullscreenChanged"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
183
|
-
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UlvFormMultiSelectComponent, decorators: [{
|
|
185
|
-
type: Component,
|
|
186
|
-
args: [{ selector: 'bsu-ulv-form-multi-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\r\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n @if (!dialogConfig.fullscreen && !dialogConfig.mobile) {\r\n <fd-button-bar\r\n ariaLabel=\"fullscreen\"\r\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\r\n fullscreenDialog\r\n [dialog]=\"dialog\"\r\n [fullscreen]=\"dialog.data.fullscreen\"\r\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\r\n [dialogComponent]=\"dialogTpl\"\r\n ></fd-button-bar>\r\n }\r\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\r\n <button fd-dialog-close-button></button> -->\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body>\r\n @if (dialog.data.ulv1; as ulv1) {\r\n <bsu-ui-ulv-main-ui\r\n class=\"ulv-form-multi-select\"\r\n [context]=\"ulv1\"\r\n [inDialog]=\"true\"\r\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\r\n [fullscreen]=\"dialog.data.fullscreen\"\r\n ></bsu-ui-ulv-main-ui>\r\n }\r\n </fd-dialog-body>\r\n @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\r\n <fd-dialog-footer class=\"ulvSelection\">\r\n <ng-template fdkTemplate=\"footer\">\r\n <div\r\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\r\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\r\n >\r\n <h5 fd-title class=\"selected-and-condition-title !tw-pb-2\">\r\n <ng-container>\r\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\r\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\r\n </ng-container>\r\n </h5>\r\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\r\n <div class=\"ulv-selection-form-dialog__tokens\">\r\n @if (dialog.data.selectedItems) {\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n <!-- Selected items -->\r\n @for ( item of dialog.data.selectedItems.MoDataList; track\r\n _trackBySelectedFn(selectedIndex, item); let selectedIndex = $index) {\r\n <fd-token\r\n fd-toolbar-item\r\n fdOverflowPriority=\"high\"\r\n class=\"fdp-value-help-dialog__selection-token\"\r\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\r\n >{{ item.$Caption }}\r\n </fd-token>\r\n }\r\n </fd-toolbar>\r\n }\r\n </div>\r\n <button\r\n class=\"ulv-selection-form-dialog__tokens-clear\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n [aria-label]=\"'Clear' | bbbTranslate\"\r\n (click)=\"onClear(dialog)\"\r\n ></button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n } @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\r\n <div class=\"fd-bar__right\">\r\n <button\r\n fd-button\r\n data-succes\r\n [label]=\"'OK' | bbbTranslate\"\r\n fdType=\"emphasized\"\r\n (click)=\"onOk(dialog)\"\r\n ></button>\r\n <button\r\n fd-button\r\n data-dismiss-dialog\r\n fd-dialog-decisive-button\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onCancel(dialog)\"\r\n ></button>\r\n </div>\r\n }\r\n </ng-template>\r\n </fd-dialog-footer>\r\n }\r\n </fd-dialog>\r\n</ng-template>\r\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:.5rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar{padding:0!important;height:5rem!important}.ulv-selection-form-dialog fd-dialog-footer.ulvSelection .fd-bar>div{width:100%}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"] }]
|
|
187
|
-
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.BbbTranslatePipe }, { type: i2.PortalService }, { type: i1.ContentDensityService }], propDecorators: { dialogContainer: [{
|
|
188
|
-
type: ViewChild,
|
|
189
|
-
args: ['container', { read: TemplateRef }]
|
|
190
|
-
}], dialogComponent: [{
|
|
191
|
-
type: ViewChild,
|
|
192
|
-
args: ['dialogTpl']
|
|
193
|
-
}], Show: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVUzQyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQVMxRCxZQUNZLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUMzQyxjQUE2QixFQUM3QixzQkFBNkM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFMQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVy9DLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztZQUN4RSxNQUFNLFlBQVksR0FBMkI7Z0JBQ3pDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRTtnQkFD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Q3RCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBRUQsMENBQTBDO1lBQzFDLDZEQUE2RDtRQUNqRSxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWMsRUFBRSxJQUF5QjtRQUN4RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0F6TFEsMkJBQTJCO21HQUEzQiwyQkFBMkIsb0xBQ0osV0FBVyxtSkNyQi9DLGk3S0E2R0E7OzRGRHpGYSwyQkFBMkI7a0JBUnZDLFNBQVM7K0JBQ0ksMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7aUxBSWpCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUc3QyxlQUFlO3NCQURkLFNBQVM7dUJBQUMsV0FBVztnQkFvQmIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBDb250ZW50RGVuc2l0eSxcclxuICAgIENvbnRlbnREZW5zaXR5U2VydmljZSxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIERpYWxvZ1JlZixcclxuICAgIERpYWxvZ1NlcnZpY2VcclxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCwgQmJiVHJhbnNsYXRlUGlwZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVsdi1mb3JtLW11bHRpLXNlbGVjdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVsdkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVHBsJylcclxuICAgIGRpYWxvZ0NvbXBvbmVudDogRGlhbG9nQ29tcG9uZW50O1xyXG5cclxuICAgIGRldmljZVNpemU6IHN0cmluZztcclxuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGVQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxyXG4gICAgICAgIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IF9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHk7XHJcbiAgICAgICAgQmFyc2FBcGkuQncuVWx2Rm9ybU11bHRpU2VsZWN0ID0gdGhpcztcclxuICAgICAgICBfcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV2aWNlU2l6ZSA9IGM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgU2hvdyA9IChhZGFwdGVyLCBjb25maWcpID0+IHtcclxuICAgICAgICBjb25zdCBsYXJnZVNjcmVlbiA9IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ2wnIHx8IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3hsJztcclxuICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICAgICAgICAgIGRhdGE6IHsgLi4uY29uZmlnLCBhZGFwdGVyIH0sXHJcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGRpYWxvZ1BhbmVsQ2xhc3M6IGB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nICR7dGhpcy5kZXZpY2VTaXplID8gJ3Vsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2ctbW9iaWxlJyA6ICcnfWAsXHJcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIGZvY3VzVHJhcHBlZDogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChsYXJnZVNjcmVlbikge1xyXG4gICAgICAgICAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTB2dyc7XHJcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSAnYXV0byc7XHJcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5XaWR0aCA9ICc0MDAnO1xyXG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluSGVpZ2h0ID0gJzYwdmgnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5tb2JpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhZGFwdGVyLkhpZGVPa0NhbmNlbEJ1dHRvbnMpIHtcclxuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5kaWFsb2dDb250YWluZXIsIGRpYWxvZ0NvbmZpZyk7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKGNvbmZpZy5Jc0xvYWRlZCA9PT0gdHJ1ZSA/IGZhbHNlIDogdHJ1ZSk7IC8vIG1lYW5zIHVsdiBpcyBsb2FkZWQgYW5kIGl0IGRvZXMgbm90IHNob3cgbG9hZGluZyBpbiBkaWFsb2dcclxuICAgICAgICAoZGlhbG9nUmVmIGFzIGFueSkubWFzayA9ICh2YWwpID0+IHtcclxuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcodmFsKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5BZGRVbHZUb1dpbmRvdyA9ICh1bHZDb250cm9sMSwgdWx2Q29udHJvbDIpID0+IHtcclxuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RGb3JtVGl0bGVUZXh0ID0gdGhpcy5fYmJiVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdEZvcm1UaXRsZScpO1xyXG4gICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS50aXRsZSA9XHJcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkV4dHJhPy5FeHRyYUpzb25Qcm9wUmVwb3J0Py5UaXRsZSA9PT0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RGb3JtVGl0bGVUZXh0LnJlcGxhY2UoJ3swfScsIHVsdkNvbnRyb2wxLlNldHRpbmcuRXh0cmEuUmVwb3J0LlR5cGVEZWZDYXB0aW9uKTtcclxuICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MSA9IHVsdkNvbnRyb2wxO1xyXG4gICAgICAgICAgICBpZiAodWx2Q29udHJvbDEudmlld2VyQ29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5vbih7XHJcbiAgICAgICAgICAgICAgICAgICAgVmlld2VyQ29udHJvbENoYW5nZWQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHVsdkNvbnRyb2wyKSB7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYyID0gdWx2Q29udHJvbDI7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gdWx2Q29udHJvbDIuU2V0dGluZy5EYXRhO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxOiBhbnksIGFkYXB0ZXI6IGFueSwgZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55LCBhbnk+KSB7XHJcbiAgICAgICAgdWx2Q29udHJvbDEudmlld2VyQ29udHJvbC5TaG93T2tDYW5jZWxCdXR0b25zID0gYWRhcHRlci5TaG93T2tDYW5jZWxCdXR0b25zO1xyXG4gICAgICAgIHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wub24oe1xyXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkSXRlbShkaWFsb2dSZWYsIG1vKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgICAgICAgICAgcm93ZGVzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIG1vKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcm93U2VsZWN0QWxsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcm93RGVTZWxlY3RBbGw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRGF0YS5Nb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIG1vKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PayhkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcclxuICAgICAgICAvLyBpZiAodWx2KSB7XHJcbiAgICAgICAgLy8gICAgIGlmICh1bHYyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcclxuICAgICAgICAvLyAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLl9idG5DbGljayh1bHYsICdPaycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFVsdihkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHsgdWx2OiBhbnk7IHVsdjI6IGFueSB9IHtcclxuICAgICAgICBjb25zdCB1bHYyID0gZGlhbG9nUmVmLmRhdGEudWx2MjtcclxuICAgICAgICBjb25zdCB1bHYxID0gZGlhbG9nUmVmLmRhdGEudWx2MTtcclxuICAgICAgICBjb25zdCB1bHYgPSB1bHYyIHx8IHVsdjE7XHJcbiAgICAgICAgcmV0dXJuIHsgdWx2LCB1bHYyIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYnRuQ2xpY2sodWx2OiBhbnksIGJ0bktleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgb2tCdG4gPSB1bHYuYnV0dG9ucy5maW5kKChjKSA9PiBjLktleSA9PT0gYnRuS2V5KTtcclxuICAgICAgICBjb25zdCBzY29wZSA9IG9rQnRuLnNjb3BlO1xyXG4gICAgICAgIG9rQnRuLmhhbmRsZXIuYmluZChzY29wZSkob2tCdG4pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYuZGF0YS5hZGFwdGVyPy5TaG93T2tDYW5jZWxCdXR0b25zKSB7XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNtaXNzKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyB1bHYsIHVsdjIgfSA9IHRoaXMuX2dldFVsdihkaWFsb2dSZWYpO1xyXG4gICAgICAgIGlmICghdWx2KSB7XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNtaXNzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2J0bkNsaWNrKHVsdiwgJ0NhbmNlbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xlYXIoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcclxuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdDbGVhckFsbFNlbGVjdGVkJyk7XHJcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgb25SZW1vdmVTZWxlY3RlZChkaWFsb2dSZWY6IERpYWxvZ1JlZiwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBpdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUl0ZW0oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55PiwgbW86IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdC5maWx0ZXIoKGMpID0+IGMuSWQgIT09IG1vLklkKTtcclxuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdEZXNlbGVjdFJvd0luRGlhbG9nJywgW21vXSk7XHJcbiAgICAgICAgaWYgKGRpYWxvZ1JlZi5kYXRhLnVsdjIpIHtcclxuICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XHJcbiAgICAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdSZW1vdmVNbycsIG1vKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XHJcbiAgICAgICAgLy8gYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ1JlbW92ZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfYWRkSXRlbShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LmZpbmQoKGMpID0+IGMuSWQgPT09IG1vLklkKSkge1xyXG4gICAgICAgICAgICBpZiAoIW1vLiRDYXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gT2JqZWN0LmtleXMobW8pLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnJCcpICYmIGMgIT09ICdJZCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW8uJENhcHRpb24gPSBtb1t4WzBdXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBbLi4uc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LCBtb107XHJcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS51bHYyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcclxuICAgICAgICAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XHJcbiAgICAgICAgICAgIC8vIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX3RyYWNrQnlTZWxlY3RlZEZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5JZDtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2NvbnRhaW5lcj5cclxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiICNkaWFsb2dUcGw+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItM1wiIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaWFsb2dDb25maWcuZnVsbHNjcmVlbiAmJiAhZGlhbG9nQ29uZmlnLm1vYmlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cImZ1bGxzY3JlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5EaWFsb2dcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ109XCJkaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5DaGFuZ2VkKT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nQ29tcG9uZW50XT1cImRpYWxvZ1RwbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8IS0tIDxoMyBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDM+XHJcbiAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbj48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG5cclxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgICAgIEBpZiAoZGlhbG9nLmRhdGEudWx2MTsgYXMgdWx2MSkge1xyXG4gICAgICAgICAgICA8YnN1LXVpLXVsdi1tYWluLXVpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1mb3JtLW11bHRpLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICBbY29udGV4dF09XCJ1bHYxXCJcclxuICAgICAgICAgICAgICAgIFtpbkRpYWxvZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtpc011bHRpU2VsZWN0XT1cImRpYWxvZy5kYXRhLlNob3dTZWNvbmRQYW5lbFwiXHJcbiAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgPjwvYnN1LXVpLXVsdi1tYWluLXVpPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cclxuICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnVsdjIgJiYgZGlhbG9nLmRhdGEuU2hvd1NlY29uZFBhbmVsKSB7XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgY2xhc3M9XCJ1bHZTZWxlY3Rpb25cIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19yb3cgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fc2VsZWN0aW9uLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlIGNsYXNzPVwic2VsZWN0ZWQtYW5kLWNvbmRpdGlvbi10aXRsZSAhdHctcGItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyAnU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlIH19IDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7IGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXM/Lk1vRGF0YUxpc3Q/Lmxlbmd0aCB8fCAwIH19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3RlZCBpdGVtcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yICggaXRlbSBvZiBkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3Q7IHRyYWNrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RyYWNrQnlTZWxlY3RlZEZuKHNlbGVjdGVkSW5kZXgsIGl0ZW0pOyBsZXQgc2VsZWN0ZWRJbmRleCA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwiaGlnaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19zZWxlY3Rpb24tdG9rZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbG9zZUNsaWNrKT1cIm9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nLCBpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBpdGVtLiRDYXB0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKGRpYWxvZylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICAgICAgfSBAaWYgKGRpYWxvZy5kYXRhLnVsdjEgJiYgIWRpYWxvZy5kYXRhLnVsdjE/LkhpZGVPa0NhbmNlbEJ1dHRvbnMpIHtcclxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLmFkYXB0ZXI/LlNob3dPa0NhbmNlbEJ1dHRvbnMgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtYmFyX19yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3VjY2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9rKGRpYWxvZylcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWRpc21pc3MtZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKGRpYWxvZylcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgICAgICB9XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|