barsa-sap-ui 1.0.455 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/barsa-sap-ui.mjs +4 -4
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +89 -0
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +127 -0
- package/{esm2020 → esm2022}/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -23
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +30 -0
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -24
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +260 -0
- package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +56 -0
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +77 -0
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
- package/{esm2020 → esm2022}/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -23
- package/{esm2020 → esm2022}/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +15 -15
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +41 -0
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +37 -0
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +53 -0
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -28
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +98 -0
- package/{esm2020 → esm2022}/lib/barsa-sap-ui-routing.module.mjs +18 -18
- package/esm2022/lib/barsa-sap-ui.module.mjs +360 -0
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +168 -0
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +27 -0
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +198 -0
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +61 -0
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +417 -0
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +129 -0
- package/{esm2020 → esm2022}/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +19 -19
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +208 -0
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +78 -0
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +44 -0
- package/{esm2020 → esm2022}/lib/captcha-field/captcha-field.component.mjs +28 -28
- package/esm2022/lib/card-item/card-item.component.mjs +76 -0
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
- package/esm2022/lib/col-renderer.directive.mjs +46 -0
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +60 -0
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +85 -0
- package/esm2022/lib/constants.mjs +421 -0
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/device-info-field-base.mjs +23 -23
- package/{esm2020 → esm2022}/lib/dialog-handler.directive.mjs +28 -28
- package/esm2022/lib/download-files.directive.mjs +33 -0
- package/esm2022/lib/dynamic-page-size.pipe.mjs +26 -0
- package/{esm2020 → esm2022}/lib/file-in-dialog/file-in-dialog.component.mjs +44 -44
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/file-viewer-content/file-viewer-content.component.mjs +53 -53
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +41 -0
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +142 -0
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +44 -0
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +43 -0
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
- package/esm2022/lib/fullscreen-dialog.directive.mjs +59 -0
- package/esm2022/lib/fullscreen-files.directive.mjs +42 -0
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +188 -0
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +203 -0
- package/{esm2020 → esm2022}/lib/global-search/global-search.component.mjs +27 -27
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
- package/{esm2020 → esm2022}/lib/header-facet-form/header-facet-form.component.mjs +22 -22
- package/{esm2020 → esm2022}/lib/header-facet-key-value/header-facet-key-value.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/header-facet-microchart/header-facet-microchart.component.mjs +21 -21
- package/{esm2020 → esm2022}/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +28 -28
- package/esm2022/lib/header-facet-progress/header-facet-progress.component.mjs +25 -0
- package/esm2022/lib/header-facet-rate/header-facet-rate.component.mjs +25 -0
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
- package/esm2022/lib/index.mjs +564 -0
- package/{esm2020 → esm2022}/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -32
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +68 -0
- package/esm2022/lib/layout-control/layout-control.component.mjs +234 -0
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +154 -0
- package/esm2022/lib/list-item/list-item.component.mjs +34 -0
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +71 -0
- package/esm2022/lib/ly-label/ly-label.component.mjs +34 -0
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
- package/{esm2020 → esm2022}/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -24
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +73 -0
- package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +52 -0
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +50 -0
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/mask/mask.component.mjs +22 -22
- package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
- package/esm2022/lib/models/grid-data-provider.mjs +83 -0
- package/esm2022/lib/models/grid-view.mjs +2 -0
- package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
- package/esm2022/lib/no-data/no-data.component.mjs +31 -0
- package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
- package/esm2022/lib/notification-popup.service.mjs +92 -0
- package/{esm2020 → esm2022}/lib/progress-indicator/progress-indicator.component.mjs +18 -18
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +63 -0
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
- package/esm2022/lib/report-tree-base.mjs +408 -0
- package/esm2022/lib/report-view-renderer.directive.mjs +366 -0
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
- package/esm2022/lib/sap-font-class.pipe.mjs +29 -0
- package/esm2022/lib/sap-font.pipe.mjs +29 -0
- package/esm2022/lib/sap-size.pipe.mjs +27 -0
- package/esm2022/lib/sap-ui-report-base.component.mjs +765 -0
- package/esm2022/lib/search-panel/search-panel.component.mjs +42 -0
- package/{esm2020 → esm2022}/lib/static-text/static-text.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/title/title.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +18 -18
- package/esm2022/lib/ui-button/ui-button.component.mjs +31 -0
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +59 -0
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +34 -0
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +34 -0
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +149 -0
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +110 -0
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +121 -0
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +92 -0
- package/{esm2020 → esm2022}/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -32
- package/{esm2020 → esm2022}/lib/ui-graph/ui-graph.component.mjs +17 -17
- package/{esm2020 → esm2022}/lib/ui-grid/ui-grid.component.mjs +25 -25
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +155 -0
- package/{esm2020 → esm2022}/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -16
- package/{esm2020 → esm2022}/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/ui-label/ui-label.component.mjs +12 -12
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +349 -0
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +75 -0
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
- package/{esm2020 → esm2022}/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -14
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +430 -0
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +24 -0
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
- package/{esm2020 → esm2022}/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -21
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +261 -0
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +98 -0
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +223 -0
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -24
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +37 -0
- package/{esm2020 → esm2022}/lib/ui-single-picture/ui-single-picture.component.mjs +36 -36
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +155 -0
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/ui-time-span/ui-time-span.component.mjs +24 -24
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +92 -0
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +80 -0
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +289 -0
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +117 -0
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +60 -0
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +87 -0
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +184 -0
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +44 -0
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +115 -0
- package/esm2022/lib/upload-file-status.pipe.mjs +28 -0
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
- package/{esm2020 → esm2022}/lib/wizard-layout.directive.mjs +103 -103
- package/{esm2020 → esm2022}/public-api.mjs +230 -222
- package/fesm2022/barsa-sap-ui.mjs +14745 -0
- package/fesm2022/barsa-sap-ui.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/apply-conditional-formmatings.directive.d.ts +25 -25
- package/lib/barsa-answer-card/barsa-answer-card.component.d.ts +12 -12
- package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +29 -29
- package/lib/barsa-bar-panel/barsa-bar-panel.component.d.ts +9 -9
- package/lib/barsa-base-panel/barsa-base-layout-panel.component.d.ts +12 -12
- package/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.d.ts +15 -15
- package/lib/barsa-card-row-payam/barsa-card-row-payam.component.d.ts +20 -20
- package/lib/barsa-cartable-form/barsa-cartable-form.component.d.ts +10 -10
- package/lib/barsa-cartable-template/barsa-cartable-template.component.d.ts +14 -14
- package/lib/barsa-chat/barsa-chat.component.d.ts +48 -0
- package/lib/barsa-chat/chat.model.d.ts +43 -0
- package/lib/barsa-chat-content/barsa-chat-content.component.d.ts +5 -0
- package/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.d.ts +9 -0
- package/lib/barsa-chat-list/barsa-chat-list.component.d.ts +16 -0
- package/lib/barsa-chat-message/barsa-chat-message.component.d.ts +16 -0
- package/lib/barsa-chat-thread/barsa-chat-thread.component.d.ts +6 -0
- package/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.d.ts +5 -0
- package/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.d.ts +5 -0
- package/lib/barsa-chip/barsa-chip.component.d.ts +20 -20
- package/lib/barsa-column-indicator/barsa-column-indicator.component.d.ts +11 -11
- package/lib/barsa-column-rownumber/barsa-column-rownumber.component.d.ts +8 -8
- package/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.d.ts +6 -6
- package/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.d.ts +10 -10
- package/lib/barsa-date-time-picker/barsa-date-time-picker.component.d.ts +18 -18
- package/lib/barsa-dynamic-field/barsa-dynamic-field.component.d.ts +16 -16
- package/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.d.ts +23 -23
- package/lib/barsa-field-key-value/barsa-field-key-value.component.d.ts +26 -26
- package/lib/barsa-form-side-content/barsa-form-side-content.component.d.ts +25 -23
- package/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.d.ts +16 -16
- package/lib/barsa-group-cartable/barsa-cartable-group.component.d.ts +26 -26
- package/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.d.ts +14 -14
- package/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.d.ts +12 -12
- package/lib/barsa-list-file-linear/barsa-list-file-linear.component.d.ts +17 -17
- package/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.d.ts +8 -8
- package/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.d.ts +9 -9
- package/lib/barsa-monaco-editor/barsa-monaco-editor.component.d.ts +23 -23
- package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +14 -14
- package/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.d.ts +79 -79
- package/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.d.ts +7 -7
- package/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.d.ts +13 -13
- package/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.d.ts +7 -7
- package/lib/barsa-question-answer-form/barsa-question-answer-form.component.d.ts +10 -10
- package/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.d.ts +13 -13
- package/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.d.ts +14 -14
- package/lib/barsa-question-post/barsa-question-post.component.d.ts +10 -10
- package/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.d.ts +9 -9
- package/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.d.ts +15 -15
- package/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.d.ts +31 -31
- package/lib/barsa-sap-ui-routing.module.d.ts +7 -7
- package/lib/barsa-sap-ui.module.d.ts +245 -234
- package/lib/barsa-search-form/barsa-search-form.component.d.ts +8 -8
- package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +73 -73
- package/lib/barsa-table-column/barsa-table-column.component.d.ts +8 -8
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +59 -59
- package/lib/barsa-table-row/barsa-table-row.component.d.ts +18 -18
- package/lib/barsa-tag-categories/barsa-tag-categories.component.d.ts +11 -11
- package/lib/barsa-tag-chip/barsa-tag-chip.component.d.ts +10 -10
- package/lib/barsa-tags-category-row/barsa-tags-category-row.component.d.ts +9 -9
- package/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.d.ts +18 -18
- package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +54 -54
- package/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.d.ts +12 -12
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +54 -54
- package/lib/barsa-tree-item/node-has-one-depth-level.pipe.d.ts +8 -8
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +72 -72
- package/lib/blob-viewer/blob-viewer.component.d.ts +24 -24
- package/lib/breadcrumb/breadcrumb.component.d.ts +17 -17
- package/lib/captcha-field/captcha-field.component.d.ts +10 -10
- package/lib/card-item/card-item.component.d.ts +20 -20
- package/lib/card-view-content/card-view-content.component.d.ts +14 -14
- package/lib/col-renderer.directive.d.ts +10 -10
- package/lib/column-matrix-renderer/column-matrix-renderer.component.d.ts +23 -23
- package/lib/column-matrix-renderer/matrix-value.pipe.d.ts +8 -8
- package/lib/column-renderer/column-renderer.component.d.ts +33 -33
- package/lib/constants.d.ts +12 -12
- package/lib/custom-date-time/custom-date-time.component.d.ts +26 -26
- package/lib/device-info-field-base.d.ts +12 -12
- package/lib/dialog-handler.directive.d.ts +12 -12
- package/lib/download-files.directive.d.ts +9 -9
- package/lib/dynamic-page-size.pipe.d.ts +8 -8
- package/lib/file-in-dialog/file-in-dialog.component.d.ts +16 -16
- package/lib/file-viewer/file-viewer.component.d.ts +21 -21
- package/lib/file-viewer-content/file-viewer-content.component.d.ts +20 -20
- package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +17 -17
- package/lib/form-dialog/form-dialog.component.d.ts +45 -45
- package/lib/form-dialog-less/form-dialog-less.component.d.ts +29 -29
- package/lib/form-toolbar/form-toolbar.component.d.ts +14 -14
- package/lib/form-toolbar-button/form-toolbar-button.component.d.ts +20 -20
- package/lib/form-wizard/form-wizard.component.d.ts +8 -8
- package/lib/fullscreen-dialog.directive.d.ts +20 -20
- package/lib/fullscreen-files.directive.d.ts +16 -16
- package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +76 -76
- package/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.d.ts +18 -18
- package/lib/global-search/global-search.component.d.ts +11 -11
- package/lib/global-search-module/global-search-module.component.d.ts +18 -18
- package/lib/global-search-panel/global-search-panel.component.d.ts +9 -9
- package/lib/header-avatar/header-avatar.component.d.ts +8 -8
- package/lib/header-facet-form/header-facet-form.component.d.ts +9 -9
- package/lib/header-facet-key-value/header-facet-key-value.component.d.ts +11 -11
- package/lib/header-facet-microchart/header-facet-microchart.component.d.ts +8 -8
- package/lib/header-facet-plain-text/header-facet-plain-text.component.d.ts +11 -11
- package/lib/header-facet-progress/header-facet-progress.component.d.ts +11 -11
- package/lib/header-facet-rate/header-facet-rate.component.d.ts +11 -11
- package/lib/htree-create-new/htree-create-new.component.d.ts +13 -13
- package/lib/hyperlink/hyperlink.component.d.ts +7 -7
- package/lib/index.d.ts +102 -100
- package/lib/inline-save-and-cancel/inline-save-and-cancel.component.d.ts +11 -11
- package/lib/layout-actions/layout-actions.component.d.ts +25 -25
- package/lib/layout-control/layout-control.component.d.ts +67 -67
- package/lib/layout-wizard/layout-wizard.component.d.ts +28 -28
- package/lib/list-item/list-item.component.d.ts +14 -14
- package/lib/ly-empty-space/ly-empty-space.component.d.ts +13 -13
- package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +23 -23
- package/lib/ly-label/ly-label.component.d.ts +16 -16
- package/lib/ly-layout-container/ly-layout-container.component.d.ts +26 -26
- package/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.d.ts +8 -8
- package/lib/ly-layout-field-label/ly-layout-field-label.component.d.ts +13 -13
- package/lib/ly-layout-panel/ly-layout-panel.component.d.ts +26 -26
- package/lib/ly-line/ly-line.component.d.ts +17 -17
- package/lib/ly-simple-label/ly-simple-label.component.d.ts +9 -9
- package/lib/ly-tab-container/ly-tab-container.component.d.ts +19 -19
- package/lib/ly-tab-page/ly-tab-page.component.d.ts +20 -20
- package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +19 -19
- package/lib/manage-filters-report/manage-filters-report.component.d.ts +24 -24
- package/lib/mask/mask.component.d.ts +9 -9
- package/lib/message-strip/message-strip.component.d.ts +11 -11
- package/lib/models/grid-data-provider.d.ts +22 -22
- package/lib/models/grid-view.d.ts +61 -61
- package/lib/models/index.d.ts +1 -1
- package/lib/no-data/no-data.component.d.ts +11 -9
- package/lib/notification-item/notification-item.component.d.ts +43 -43
- package/lib/notification-popup.service.d.ts +17 -17
- package/lib/progress-indicator/progress-indicator.component.d.ts +8 -8
- package/lib/report-navigator/report-navigator.component.d.ts +21 -21
- package/lib/report-new-top-form/report-new-top-form.component.d.ts +18 -18
- package/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.d.ts +14 -14
- package/lib/report-search-fields-manage/report-search-fields-manage.component.d.ts +20 -20
- package/lib/report-search-panel-save/report-search-panel-save.component.d.ts +27 -27
- package/lib/report-tree-base.d.ts +62 -62
- package/lib/report-view-renderer.directive.d.ts +117 -117
- package/lib/responsive-toolbar/responsive-toolbar.component.d.ts +19 -19
- package/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.d.ts +24 -24
- package/lib/rich-text-static/rich-text-static.component.d.ts +28 -28
- package/lib/sap-font-class.pipe.d.ts +8 -8
- package/lib/sap-font.pipe.d.ts +9 -9
- package/lib/sap-size.pipe.d.ts +8 -8
- package/lib/sap-ui-report-base.component.d.ts +154 -154
- package/lib/search-panel/search-panel.component.d.ts +14 -14
- package/lib/static-text/static-text.component.d.ts +7 -7
- package/lib/title/title.component.d.ts +7 -7
- package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +9 -9
- package/lib/ui-button/ui-button.component.d.ts +11 -11
- package/lib/ui-calendar/ui-calendar.component.d.ts +19 -19
- package/lib/ui-card-view/ui-card-view.component.d.ts +16 -16
- package/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.d.ts +12 -12
- package/lib/ui-check-box/ui-check-box.component.d.ts +14 -14
- package/lib/ui-color-ui/ui-color-ui.component.d.ts +16 -16
- package/lib/ui-container-with-button/ui-container-with-button.component.d.ts +11 -11
- package/lib/ui-date-range-ex/ui-date-range-ex.component.d.ts +35 -36
- package/lib/ui-date-time/ui-date-time.component.d.ts +39 -40
- package/lib/ui-editable-grid/ui-editable-grid.component.d.ts +43 -43
- package/lib/ui-exception-form/ui-exception-form.component.d.ts +15 -15
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +50 -50
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +53 -53
- package/lib/ui-gantt-chart/ui-gantt-chart.component.d.ts +15 -15
- package/lib/ui-graph/ui-graph.component.d.ts +9 -9
- package/lib/ui-grid/ui-grid.component.d.ts +12 -12
- package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +14 -14
- package/lib/ui-grid-filter-item/ui-grid-filter-item.component.d.ts +19 -19
- package/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.d.ts +24 -24
- package/lib/ui-grid-sort-item/ui-grid-sort-item.component.d.ts +25 -25
- package/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.d.ts +28 -28
- package/lib/ui-html-viewer/ui-html-viewer.component.d.ts +9 -9
- package/lib/ui-info-bar-panel/ui-info-bar-panel.component.d.ts +5 -5
- package/lib/ui-label/ui-label.component.d.ts +6 -6
- package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +73 -73
- package/lib/ui-list-view/ui-list-view.component.d.ts +29 -29
- package/lib/ui-matrix-view/ui-matrix-view.component.d.ts +45 -45
- package/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.d.ts +7 -7
- package/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.d.ts +6 -6
- package/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.d.ts +15 -15
- package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +90 -89
- package/lib/ui-monaco-editor/ui-monaco-editor.component.d.ts +10 -7
- package/lib/ui-multi-select-card/ui-multi-select-card.component.d.ts +17 -17
- package/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.d.ts +19 -19
- package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +27 -27
- package/lib/ui-multi-select-radio/ui-multi-select-radio.component.d.ts +17 -17
- package/lib/ui-multi-select-slider/ui-multi-select-slider.component.d.ts +24 -24
- package/lib/ui-multi-select-smile/ui-multi-select-smile.component.d.ts +23 -23
- package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +11 -11
- package/lib/ui-num-int-slider/ui-num-int-slider.component.d.ts +18 -18
- package/lib/ui-num-int-ui/ui-num-int-ui.component.d.ts +10 -10
- package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +79 -79
- package/lib/ui-picture-file/ui-picture-file.component.d.ts +26 -25
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +80 -69
- package/lib/ui-radio-group/ui-radio-group.component.d.ts +20 -20
- package/lib/ui-read-only-field/ui-read-only-field.component.d.ts +21 -21
- package/lib/ui-report-container/ui-report-container.component.d.ts +17 -17
- package/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.d.ts +9 -9
- package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +16 -16
- package/lib/ui-single-picture/ui-single-picture.component.d.ts +13 -13
- package/lib/ui-switch-button/ui-switch-button.component.d.ts +11 -11
- package/lib/ui-table-view/ui-table-view.component.d.ts +39 -39
- package/lib/ui-text-area/ui-text-area.component.d.ts +23 -23
- package/lib/ui-text-field/ui-text-field.component.d.ts +23 -23
- package/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.d.ts +13 -13
- package/lib/ui-time-span/ui-time-span.component.d.ts +10 -10
- package/lib/ui-tinymce/ui-tinymce.component.d.ts +22 -22
- package/lib/ui-tree/ui-tree.component.d.ts +37 -37
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +47 -47
- package/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.d.ts +9 -9
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +74 -74
- package/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.d.ts +16 -16
- package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +21 -21
- package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +48 -48
- package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +21 -21
- package/lib/ul-toast-adapter/ul-toast-adapter.component.d.ts +13 -13
- package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +20 -20
- package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +31 -31
- package/lib/ulv-filter-settings/ulv-filter-settings.component.d.ts +19 -19
- package/lib/ulv-form-multi-select/ulv-form-multi-select.component.d.ts +26 -26
- package/lib/ulv-groupby-settings/ulv-groupby-settings.component.d.ts +16 -16
- package/lib/ulv-paging/ulv-paging.component.d.ts +28 -28
- package/lib/ulv-selection/ulv-selection.component.d.ts +43 -43
- package/lib/ulv-settings/ulv-settings.component.d.ts +43 -43
- package/lib/ulv-sort-settings/ulv-sort-settings.component.d.ts +16 -16
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +49 -49
- package/lib/upload-file-status.pipe.d.ts +9 -9
- package/lib/util-chat-time-badge.pipe.d.ts +7 -0
- package/lib/util-date-to-hh-mm.pipe.d.ts +7 -0
- package/lib/wizard-layout.directive.d.ts +40 -40
- package/package.json +7 -13
- package/public-api.d.ts +226 -218
- package/esm2020/lib/apply-conditional-formmatings.directive.mjs +0 -89
- package/esm2020/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
- package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -127
- package/esm2020/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
- package/esm2020/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -25
- package/esm2020/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -30
- package/esm2020/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
- package/esm2020/lib/barsa-chip/barsa-chip.component.mjs +0 -72
- package/esm2020/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -15
- package/esm2020/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
- package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
- package/esm2020/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -42
- package/esm2020/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
- package/esm2020/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
- package/esm2020/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -37
- package/esm2020/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
- package/esm2020/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
- package/esm2020/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
- package/esm2020/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
- package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
- package/esm2020/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
- package/esm2020/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
- package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
- package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -53
- package/esm2020/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
- package/esm2020/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
- package/esm2020/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -31
- package/esm2020/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
- package/esm2020/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -35
- package/esm2020/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -47
- package/esm2020/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -78
- package/esm2020/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
- package/esm2020/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
- package/esm2020/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -98
- package/esm2020/lib/barsa-sap-ui.module.mjs +0 -332
- package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
- package/esm2020/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -168
- package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +0 -28
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +0 -198
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +0 -61
- package/esm2020/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
- package/esm2020/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
- package/esm2020/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
- package/esm2020/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -38
- package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -417
- package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -130
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -209
- package/esm2020/lib/blob-viewer/blob-viewer.component.mjs +0 -78
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -45
- package/esm2020/lib/card-item/card-item.component.mjs +0 -76
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +0 -46
- package/esm2020/lib/col-renderer.directive.mjs +0 -46
- package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
- package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +0 -85
- package/esm2020/lib/constants.mjs +0 -421
- package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +0 -41
- package/esm2020/lib/download-files.directive.mjs +0 -33
- package/esm2020/lib/dynamic-page-size.pipe.mjs +0 -26
- package/esm2020/lib/file-viewer/file-viewer.component.mjs +0 -47
- package/esm2020/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -41
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +0 -143
- package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +0 -45
- package/esm2020/lib/form-toolbar/form-toolbar.component.mjs +0 -42
- package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -46
- package/esm2020/lib/form-wizard/form-wizard.component.mjs +0 -21
- package/esm2020/lib/fullscreen-dialog.directive.mjs +0 -59
- package/esm2020/lib/fullscreen-files.directive.mjs +0 -42
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -188
- package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -203
- package/esm2020/lib/global-search-module/global-search-module.component.mjs +0 -30
- package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +0 -25
- package/esm2020/lib/header-avatar/header-avatar.component.mjs +0 -19
- package/esm2020/lib/header-facet-progress/header-facet-progress.component.mjs +0 -26
- package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +0 -26
- package/esm2020/lib/htree-create-new/htree-create-new.component.mjs +0 -49
- package/esm2020/lib/hyperlink/hyperlink.component.mjs +0 -23
- package/esm2020/lib/index.mjs +0 -529
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +0 -68
- package/esm2020/lib/layout-control/layout-control.component.mjs +0 -234
- package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +0 -155
- package/esm2020/lib/list-item/list-item.component.mjs +0 -33
- package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
- package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -71
- package/esm2020/lib/ly-label/ly-label.component.mjs +0 -35
- package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
- package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
- package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -73
- package/esm2020/lib/ly-line/ly-line.component.mjs +0 -56
- package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +0 -23
- package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +0 -52
- package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
- package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -50
- package/esm2020/lib/manage-filters-report/manage-filters-report.component.mjs +0 -45
- package/esm2020/lib/message-strip/message-strip.component.mjs +0 -28
- package/esm2020/lib/models/grid-data-provider.mjs +0 -83
- package/esm2020/lib/models/grid-view.mjs +0 -2
- package/esm2020/lib/no-data/no-data.component.mjs +0 -23
- package/esm2020/lib/notification-item/notification-item.component.mjs +0 -57
- package/esm2020/lib/notification-popup.service.mjs +0 -88
- package/esm2020/lib/report-navigator/report-navigator.component.mjs +0 -63
- package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
- package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -98
- package/esm2020/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -90
- package/esm2020/lib/report-tree-base.mjs +0 -408
- package/esm2020/lib/report-view-renderer.directive.mjs +0 -366
- package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
- package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
- package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +0 -72
- package/esm2020/lib/sap-font-class.pipe.mjs +0 -29
- package/esm2020/lib/sap-font.pipe.mjs +0 -29
- package/esm2020/lib/sap-size.pipe.mjs +0 -27
- package/esm2020/lib/sap-ui-report-base.component.mjs +0 -766
- package/esm2020/lib/search-panel/search-panel.component.mjs +0 -43
- package/esm2020/lib/ui-button/ui-button.component.mjs +0 -31
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +0 -53
- package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +0 -60
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -43
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +0 -34
- package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
- package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -34
- package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -194
- package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +0 -150
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
- package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
- package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +0 -92
- package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -44
- package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -67
- package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -76
- package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -59
- package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -156
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -349
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +0 -75
- package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -125
- package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
- package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -56
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -409
- package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -18
- package/esm2020/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
- package/esm2020/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
- package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
- package/esm2020/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
- package/esm2020/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
- package/esm2020/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
- package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -24
- package/esm2020/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
- package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -262
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +0 -91
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -223
- package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
- package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +0 -46
- package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -37
- package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +0 -151
- package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +0 -49
- package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +0 -52
- package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +0 -92
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +0 -81
- package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -24
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -289
- package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -26
- package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -91
- package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -117
- package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
- package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -44
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -60
- package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -87
- package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -185
- package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
- package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +0 -84
- package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +0 -66
- package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +0 -117
- package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -44
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -115
- package/esm2020/lib/upload-file-status.pipe.mjs +0 -28
- package/fesm2015/barsa-sap-ui.mjs +0 -14213
- package/fesm2015/barsa-sap-ui.mjs.map +0 -1
- package/fesm2020/barsa-sap-ui.mjs +0 -14183
- package/fesm2020/barsa-sap-ui.mjs.map +0 -1
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import { Component, HostListener, Input, ViewChild, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { of, Subject } from 'rxjs';
|
|
3
|
+
import { debounceTime, filter, distinctUntilChanged, tap, takeUntil, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { ComboboxComponent } from '@fundamental-ngx/core';
|
|
5
|
+
import { FieldBaseComponent, BarsaApi, PreventDefaulEvent, getUniqueId } from 'barsa-novin-ray-core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
9
|
+
import * as i3 from "@fundamental-ngx/core/button";
|
|
10
|
+
import * as i4 from "@fundamental-ngx/core/combobox";
|
|
11
|
+
import * as i5 from "@fundamental-ngx/core/form";
|
|
12
|
+
import * as i6 from "@fundamental-ngx/core/icon";
|
|
13
|
+
import * as i7 from "@fundamental-ngx/core/input-group";
|
|
14
|
+
import * as i8 from "@fundamental-ngx/core/list";
|
|
15
|
+
import * as i9 from "../ulv-paging/ulv-paging.component";
|
|
16
|
+
import * as i10 from "../mask/mask.component";
|
|
17
|
+
export class UiMoInfoUlvComboComponent extends FieldBaseComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.smartChange = new Subject();
|
|
21
|
+
this.allColumns = [];
|
|
22
|
+
this._openPopupFormSelectionSource = new Subject();
|
|
23
|
+
this._closeDialogSource = new Subject();
|
|
24
|
+
this._loadingSource = new Subject();
|
|
25
|
+
this.displayFunc = (obj) => {
|
|
26
|
+
if (obj) {
|
|
27
|
+
const colName = this.getFirstColumnName();
|
|
28
|
+
return this.getMoValueCaption(obj, colName, obj.$Caption);
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
};
|
|
32
|
+
/* eslint-disable */
|
|
33
|
+
this.IsExpanded = (type) => {
|
|
34
|
+
if (type === 'Dd') {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return this.fdComboRef?.popoverComponent?.isOpen;
|
|
38
|
+
};
|
|
39
|
+
// return this.comboRef.nativeElement.responsivePopover.isOpen();
|
|
40
|
+
/* eslint-disable */
|
|
41
|
+
this.Collapse = (type) => { };
|
|
42
|
+
/* eslint-disable */
|
|
43
|
+
this.Expand = (type) => {
|
|
44
|
+
this.ulvAdapter = this.UlvMainCtrlr[type];
|
|
45
|
+
};
|
|
46
|
+
/* eslint-disable */
|
|
47
|
+
this.on = () => { };
|
|
48
|
+
/* eslint-disable */
|
|
49
|
+
this.Focus = () => { };
|
|
50
|
+
this.SetUlvAdapter = (type, ulvAdapter) => {
|
|
51
|
+
this.ulvAdapter = ulvAdapter;
|
|
52
|
+
this._setColumns();
|
|
53
|
+
/* eslint-disable */
|
|
54
|
+
};
|
|
55
|
+
this.IsUiCreated = (type) => {
|
|
56
|
+
return true;
|
|
57
|
+
/* eslint-disable */
|
|
58
|
+
};
|
|
59
|
+
this.Mask = (type) => {
|
|
60
|
+
this._loadingSource.next(true);
|
|
61
|
+
/* eslint-disable */
|
|
62
|
+
};
|
|
63
|
+
this.hide = (type) => {
|
|
64
|
+
if (this.formSelectionDialog) {
|
|
65
|
+
this.formSelectionDialog.close();
|
|
66
|
+
}
|
|
67
|
+
/* eslint-disable */
|
|
68
|
+
};
|
|
69
|
+
this.show = (type) => {
|
|
70
|
+
if (this.UlvUi && !this.isOpenSelectionDialog && this.context._showPopup) {
|
|
71
|
+
this._openPopupFormSelectionSource.next(); // rabete taki general info .popup baz mishod ke baiad dropdown bashe.
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.fdComboRef && (this.fdComboRef.open = true);
|
|
75
|
+
}
|
|
76
|
+
this._cdr.detectChanges();
|
|
77
|
+
/* eslint-disable */
|
|
78
|
+
};
|
|
79
|
+
this.Unmask = (type) => {
|
|
80
|
+
this._loadingSource.next(false);
|
|
81
|
+
/* eslint-disable */
|
|
82
|
+
};
|
|
83
|
+
this.getRawValue = () => {
|
|
84
|
+
return this.rawValue;
|
|
85
|
+
/* eslint-disable */
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
set UlvUi(value) {
|
|
89
|
+
this._UlvUi = value;
|
|
90
|
+
if (value) {
|
|
91
|
+
value.viewerControl.on({
|
|
92
|
+
MoDataListChanged: () => {
|
|
93
|
+
this._cdr.detectChanges();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
get UlvUi() {
|
|
99
|
+
return this._UlvUi;
|
|
100
|
+
}
|
|
101
|
+
onKeyDown(e) {
|
|
102
|
+
e = new BarsaApi.Ext.EventObjectImpl(e);
|
|
103
|
+
const k = e.getKey();
|
|
104
|
+
if (e.keyCode === e.ENTER || k === BarsaApi.Ext.EventObject.TAB) {
|
|
105
|
+
this.context.fireEvent('keydown', this.context, e);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
onAlt(e) {
|
|
109
|
+
e.stopPropagation();
|
|
110
|
+
e.preventDefault();
|
|
111
|
+
}
|
|
112
|
+
ngOnInit() {
|
|
113
|
+
this.comboboxId = getUniqueId(3);
|
|
114
|
+
this._checkHasValue(this.value);
|
|
115
|
+
this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$));
|
|
116
|
+
this.loading$.subscribe(() => {
|
|
117
|
+
this.isDataLoadedFirstTime =
|
|
118
|
+
typeof this.ulvAdapter?.Setting?.Data?.MoDataList === 'object' ||
|
|
119
|
+
typeof this.UlvUi?.Setting?.Data?.MoDataList === 'object';
|
|
120
|
+
});
|
|
121
|
+
this.smartChange
|
|
122
|
+
.pipe(takeUntil(this._onDestroy$), debounceTime(200), filter((value) => this._filterSmartChange(value)), distinctUntilChanged(), tap((value) => (this.rawValue = value)))
|
|
123
|
+
.subscribe((value) => {
|
|
124
|
+
this.context.fireEvent('SmartChange', this.context, value);
|
|
125
|
+
});
|
|
126
|
+
this._openPopupFormSelectionSource
|
|
127
|
+
.asObservable()
|
|
128
|
+
.pipe(takeUntil(this._closeDialogSource), takeUntil(this._onDestroy$), switchMap(() => this._openPopupFormSelection()))
|
|
129
|
+
.subscribe();
|
|
130
|
+
super.ngOnInit();
|
|
131
|
+
this.originalValue = this.value;
|
|
132
|
+
this.hasReport = this.Setting.RelationViewType === 'ReportView' || this.Setting.ReportName === 'Hierarchical';
|
|
133
|
+
this.Control = this;
|
|
134
|
+
setTimeout(() => {
|
|
135
|
+
this._setValueText(this.value);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
onPagingClick(e) {
|
|
139
|
+
PreventDefaulEvent(e);
|
|
140
|
+
}
|
|
141
|
+
onPageChange(e) {
|
|
142
|
+
this._loadingSource.next(true);
|
|
143
|
+
if (this.UlvUi) {
|
|
144
|
+
this.UlvUi.fireEvent('PageChange', this.UlvUi, e);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.ulvAdapter.DataCtrlr.MoveToPage(e, () => {
|
|
148
|
+
this._loadingSource.next(false);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
onItemClick(e, moDataList) {
|
|
152
|
+
this._handleItemSelect(moDataList, e.item);
|
|
153
|
+
}
|
|
154
|
+
onPageChange2(pageSetting, e) {
|
|
155
|
+
PreventDefaulEvent(e);
|
|
156
|
+
if (!this.ulvAdapter) {
|
|
157
|
+
this.UlvUi.fireEvent('PageChange', this.UlvUi, pageSetting.Page + 1);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
this._loadingSource.next(true);
|
|
161
|
+
const ulvAdapter = this.ulvAdapter;
|
|
162
|
+
const temp1 = ulvAdapter.Setting.Data.MoDataList;
|
|
163
|
+
temp1.splice(temp1.length - 1, 1);
|
|
164
|
+
const moDataListOld = [...temp1];
|
|
165
|
+
moDataListOld.forEach((c) => (c.$__IsLast = false));
|
|
166
|
+
this.ulvAdapter.DataCtrlr.MoveToPage(pageSetting.Page + 1, () => {
|
|
167
|
+
const moDataList = ulvAdapter.Setting.Data.MoDataList;
|
|
168
|
+
moDataList.splice(0, 0, ...moDataListOld);
|
|
169
|
+
this._loadingSource.next(false);
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
onOpenChange(fdCombobox, isOpen) {
|
|
173
|
+
if (isOpen) {
|
|
174
|
+
this._focus();
|
|
175
|
+
// fdCombobox.open = false; // it close popup when click on dropdown button in component
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const inputText = this.fdComboRef?.inputTextValue;
|
|
179
|
+
if (!this.value && inputText) {
|
|
180
|
+
this._raiseSmartChange(inputText);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
onInputChange(e) {
|
|
185
|
+
this._raiseSmartChange(e);
|
|
186
|
+
}
|
|
187
|
+
onInputChange2(e) {
|
|
188
|
+
this._raiseSmartChange(e.target.value);
|
|
189
|
+
}
|
|
190
|
+
onValueChange(e) {
|
|
191
|
+
this._raiseValueChanged(e.target.value);
|
|
192
|
+
}
|
|
193
|
+
onNew() {
|
|
194
|
+
this._triggerClick('New');
|
|
195
|
+
}
|
|
196
|
+
onClear() {
|
|
197
|
+
this._triggerClick('Delete');
|
|
198
|
+
}
|
|
199
|
+
onEdit() {
|
|
200
|
+
this._triggerClick('Edit');
|
|
201
|
+
}
|
|
202
|
+
onSearch() {
|
|
203
|
+
this._triggerClick('Popup');
|
|
204
|
+
}
|
|
205
|
+
/* eslint-disable */
|
|
206
|
+
customFilter(content, searchTerm) {
|
|
207
|
+
return content;
|
|
208
|
+
}
|
|
209
|
+
getMoValueCaption(valueMo, colName, defaultValue) {
|
|
210
|
+
if (valueMo === null) {
|
|
211
|
+
return defaultValue;
|
|
212
|
+
}
|
|
213
|
+
let captionValueMo;
|
|
214
|
+
const molist = BarsaApi.Common.Util.TryGetValue(this.ulvAdapter, 'Setting.Data.MoDataList', []);
|
|
215
|
+
const foundedMo = molist.find((c) => c.Id === valueMo.Id);
|
|
216
|
+
if (colName && foundedMo && foundedMo[colName]) {
|
|
217
|
+
if (foundedMo[colName + '$Caption']) {
|
|
218
|
+
captionValueMo = foundedMo[colName + '$Caption'];
|
|
219
|
+
}
|
|
220
|
+
else if (foundedMo[colName].$Caption) {
|
|
221
|
+
captionValueMo = foundedMo[colName].$Caption;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
captionValueMo = foundedMo[colName];
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return this._bbbPipe.transform(captionValueMo || defaultValue);
|
|
228
|
+
}
|
|
229
|
+
getFirstColumnName() {
|
|
230
|
+
let colName = '$Caption';
|
|
231
|
+
if (this.UlvMainCtrlr && this.UlvMainCtrlr?.Dd?.Setting?.View) {
|
|
232
|
+
if (this.UlvMainCtrlr.Dd.Setting.View.Columns) {
|
|
233
|
+
const firstCol = this.UlvMainCtrlr.Dd.Setting.View.Columns.find((c) => !c.Name.startsWith('$') && c.Name !== 'Id');
|
|
234
|
+
if (firstCol?.Name) {
|
|
235
|
+
colName = firstCol.Name;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return colName;
|
|
240
|
+
}
|
|
241
|
+
_handleItemSelect(moDataList, mo) {
|
|
242
|
+
moDataList.forEach((c) => (c.$IsChecked = false));
|
|
243
|
+
this._fireValueChange(mo);
|
|
244
|
+
}
|
|
245
|
+
_setValue(value) {
|
|
246
|
+
this._setValueText(value);
|
|
247
|
+
this._checkHasValue(value);
|
|
248
|
+
super._setValue(value);
|
|
249
|
+
// this._setComboText(value);
|
|
250
|
+
}
|
|
251
|
+
_checkHasValue(value) {
|
|
252
|
+
this.hasValue = typeof value !== 'undefined' && value !== null && value !== '';
|
|
253
|
+
}
|
|
254
|
+
_setValueText(value) {
|
|
255
|
+
this.valueText = this._getValueText(value);
|
|
256
|
+
this._setComboText(this.valueText);
|
|
257
|
+
}
|
|
258
|
+
_getValueText(value) {
|
|
259
|
+
if (!value) {
|
|
260
|
+
return '';
|
|
261
|
+
}
|
|
262
|
+
else if (typeof value === 'string') {
|
|
263
|
+
return value;
|
|
264
|
+
}
|
|
265
|
+
else if (typeof value === 'object') {
|
|
266
|
+
return value.$Caption;
|
|
267
|
+
}
|
|
268
|
+
if (typeof value !== 'string' && value && this.UlvMainCtrlr && this.UlvMainCtrlr.Dd) {
|
|
269
|
+
const view = this.UlvMainCtrlr.Dd.Setting.View;
|
|
270
|
+
let colName = '$Caption';
|
|
271
|
+
if (view.Columns) {
|
|
272
|
+
const firstCol = view.Columns.find((c) => !c.Name.startsWith('$') && c.Name !== 'Id');
|
|
273
|
+
colName = firstCol?.Name ? firstCol.Name : '$Caption';
|
|
274
|
+
}
|
|
275
|
+
return this._bbbPipe.transform(value);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
_setComboText(value) {
|
|
279
|
+
// if (value === null || typeof value === 'undefined') {
|
|
280
|
+
// this._valueMo = null;
|
|
281
|
+
//this.fdComboRef.inputTextValue = '';
|
|
282
|
+
//this.fdComboRef._cdRef.detectChanges();
|
|
283
|
+
// }
|
|
284
|
+
const fdComboRef = this.fdComboRef;
|
|
285
|
+
const inputText = fdComboRef?.inputTextValue;
|
|
286
|
+
if (fdComboRef && value != inputText) {
|
|
287
|
+
// const UlvMainCtrlr = this.UlvMainCtrlr;
|
|
288
|
+
// if (UlvMainCtrlr && UlvMainCtrlr.Dd) {
|
|
289
|
+
// const view = UlvMainCtrlr.Dd.Setting.View;
|
|
290
|
+
// let colName = '$Caption';
|
|
291
|
+
// if (view.Columns) {
|
|
292
|
+
// const firstCol = view.Columns.find((c) => !c.Name.startsWith('$') && c.Name !== 'Id');
|
|
293
|
+
// colName = firstCol?.Name ? firstCol.Name : '$Caption';
|
|
294
|
+
// }
|
|
295
|
+
// value = this.getMoValueCaption(this._valueMo, colName, value);
|
|
296
|
+
// }
|
|
297
|
+
fdComboRef.inputText = value ? this._bbbPipe.transform(value) + '' : '';
|
|
298
|
+
this._cdr.detectChanges();
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
_openPopupFormSelection() {
|
|
302
|
+
this.isOpenSelectionDialog = true;
|
|
303
|
+
this.UlvUi.viewerControl.ShowOkCancelButtons = true; // this is useful to ulv manage toolbar buttons.for example move in tree does not shown
|
|
304
|
+
this.formSelectionDialog = BarsaApi.Bw.UlvFormMultiSelect.Show(this.context, {
|
|
305
|
+
ulv1: this.UlvUi,
|
|
306
|
+
title: this._bbbPipe.transform('Select'),
|
|
307
|
+
IsLoaded: true
|
|
308
|
+
});
|
|
309
|
+
setTimeout(() => {
|
|
310
|
+
this.isOpenSelectionDialog = false;
|
|
311
|
+
}, 500);
|
|
312
|
+
return of(true);
|
|
313
|
+
}
|
|
314
|
+
_filterSmartChange(value) {
|
|
315
|
+
let canRequest = (this.ulvAdapter || this.UlvUi) && value !== this.value;
|
|
316
|
+
// if (canRequest) {
|
|
317
|
+
// const molist: MetaobjectDataModel[] = BarsaApi.Common.Util.TryGetValue(
|
|
318
|
+
// this.ulvAdapter,
|
|
319
|
+
// 'Setting.Data.MoDataList',
|
|
320
|
+
// []
|
|
321
|
+
// );
|
|
322
|
+
// if (!molist) {
|
|
323
|
+
// return true;
|
|
324
|
+
// }
|
|
325
|
+
// const colName = this.getFirstColumnName();
|
|
326
|
+
// const findMo = molist.find((mo) => {
|
|
327
|
+
// const caption = this.getMoValueCaption(mo, colName, mo.$Caption);
|
|
328
|
+
// return caption === value;
|
|
329
|
+
// });
|
|
330
|
+
// if (findMo) {
|
|
331
|
+
// canRequest = false;
|
|
332
|
+
// //this._fireValueChange(findMo);
|
|
333
|
+
// }
|
|
334
|
+
// }
|
|
335
|
+
return canRequest;
|
|
336
|
+
}
|
|
337
|
+
_setColumns() {
|
|
338
|
+
const ulvAdapter = this.ulvAdapter;
|
|
339
|
+
const view = ulvAdapter?.Setting?.View;
|
|
340
|
+
if (view && view.Columns?.length && this.allColumns.length === 0) {
|
|
341
|
+
this.allColumns = view.Columns.filter((c) => Number(c.MetaFieldTypeId) > 0);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
_focus() {
|
|
345
|
+
this._triggerClick('Normal');
|
|
346
|
+
this._setColumns();
|
|
347
|
+
}
|
|
348
|
+
_raiseSmartChange(value) {
|
|
349
|
+
this.smartChange.next(value);
|
|
350
|
+
}
|
|
351
|
+
_triggerClick(eventName, value = null) {
|
|
352
|
+
this.context.fireEvent('TriggerClick', this.context, eventName, value);
|
|
353
|
+
}
|
|
354
|
+
_raiseValueChanged(caption) {
|
|
355
|
+
const inputValue = caption;
|
|
356
|
+
const molist = BarsaApi.Common.Util.TryGetValue(this.ulvAdapter, 'Setting.Data.MoDataList', []);
|
|
357
|
+
if (!molist || molist.length === 0) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
//const colName = this.getFirstColumnName();
|
|
361
|
+
const mo = molist.find((c) => c.$Caption === inputValue);
|
|
362
|
+
if (!mo) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
molist.forEach((c) => (c.$IsChecked = false));
|
|
366
|
+
this._fireValueChange(mo);
|
|
367
|
+
}
|
|
368
|
+
_fireValueChange(mo) {
|
|
369
|
+
this.value = mo;
|
|
370
|
+
mo.$IsChecked = true;
|
|
371
|
+
this._setValueText(this.value);
|
|
372
|
+
// this._setComboText(mo.$Caption);
|
|
373
|
+
// this._cdr.detectChanges();
|
|
374
|
+
if (this.UlvUi) {
|
|
375
|
+
this.UlvUi.viewerControl.fireEvent('rowclick', this.UlvUi, 0, mo);
|
|
376
|
+
}
|
|
377
|
+
else if (this.ulvAdapter) {
|
|
378
|
+
this.ulvAdapter.ViewerAdapter.Control.fireEvent('rowclick', this.ulvAdapter.ViewerAdapter.Control, 0, mo);
|
|
379
|
+
}
|
|
380
|
+
// this._triggerClick('ItemSelect', this.value);
|
|
381
|
+
}
|
|
382
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiMoInfoUlvComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiMoInfoUlvComboComponent, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvMainCtrlr: "UlvMainCtrlr", UlvUi: "UlvUi", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown": "onKeyDown($event)", "keydown.alt": "onAlt($event)" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n context._showPopup || context._showDropDown === false ? inputTemplate : comboTemplate;\n context: {\n $implicit:\n (loading$ | async) === true\n | moInfoUlvMoList\n : isDataLoadedFirstTime\n : ulvAdapter?.Setting?.Data?.MoDataList\n : UlvUi?.Setting?.Data?.MoDataList\n : ulvAdapter?.Setting?.Data?.Paging\n : UlvUi?.Setting?.Data?.Paging,\n deviceSize: deviceSize$ | async,\n disableOrReadonly: disableOrReadonly$ | async,\n disable: disable$ | async,\n readonly: readonly$ | async\n }\n \"\n>\n</ng-container>\n<ng-template\n #inputTemplate\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n>\n <div style=\"display: flex\" class=\"fd-input-group\">\n <input\n fd-input-group-input\n fd-form-control\n #inputRef\n [placeholder]=\"Setting.NullText || ''\"\n [attr.readonly]=\"true\"\n [attr.disabled]=\"disable === true ? true : null\"\n [value]=\"!value ? '' : (value | bbbTranslate)\"\n [id]=\"id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n (input)=\"onValueChange($event)\"\n />\n <ng-container *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: disableOrReadonly }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\n <div class=\"extra-buttons fd-input-group fd-input-group--control\">\n @if (hasValue && disableOrReadonly !== true) {\n <span class=\"fd-input-group__addon--button combo-popup-btn\" fd-input-group-addon>\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n } @if (!hasValue && disableOrReadonly !== true && Setting.ShowNewButton) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n } @if (hasValue && disableOrReadonly !== true && Setting.ViewRelatedFormType !== 'Hide') {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n } @if (context._showPopup && !value && disableOrReadonly !== true) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n }\n </div>\n</ng-template>\n<ng-template\n #comboTemplate\n let-moDataList\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n>\n <div class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.canAdd]=\"!hasValue && disableOrReadonly !== true && Setting.ShowNewButton\"\n [class.canEdit]=\"hasValue && disableOrReadonly !== true\"\n [comboboxId]=\"comboboxId\"\n [class.has-report]=\"hasReport\"\n [class.has-Value]=\"hasValue\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"readonly === true ? true : false\"\n [disabled]=\"disable === true ? true : false\"\n [dropdownValues]=\"moDataList\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [byline]=\"allColumns.length > 0\"\n [itemTemplate]=\"itemTemplate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"disableOrReadonly !== true\"\n (itemClicked)=\"onItemClick($event, moDataList)\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n >\n </fd-combobox>\n <ng-container *ngTemplateOutlet=\"btnsTpl\"></ng-container>\n </div>\n <ng-template #itemTemplate let-item>\n @if (item.$isLoading) {\n <div fd-list-content style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\n </div>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"item.$LoadMore ? loadMoreButton : showItem; context: { ulv: ulvAdapter || UlvUi }\"\n >\n </ng-container>\n }\n <ng-template #loadMoreButton let-ulv=\"ulv\">\n @if (ulv) {\n <bsu-ulv-paging\n (click)=\"onPagingClick($event)\"\n (pageChange)=\"onPageChange($event)\"\n [pagingSetting]=\"ulv.Setting.Data.Paging\"\n >\n </bsu-ulv-paging>\n }\n <!-- <button\n style=\"width: 100%\"\n *ngIf=\"ulv && ulv.Setting.Data.Paging.Page + 1 < ulv.Setting.Data.Paging.TotalPages\"\n fd-button\n (click)=\"onPageChange2(ulv.Setting.Data.Paging, $event)\"\n [label]=\"'More' | bbbTranslate\"\n ></button> -->\n </ng-template>\n <ng-template #showItem>\n @if (allColumns?.length && !item.isEmpty) { @if (!item.$__IsLast) {\n <div class=\"moinfoulv devider\"></div>\n } @if (item.$Icon) {\n <span fd-list-thumbnail><fd-icon [glyph]=\"item.$Icon\"></fd-icon></span>\n }\n <div fd-list-content class=\"moinfoulv hasColumns\">\n <div fd-list-title class=\"title\">{{ allColumns[0].Alias | rval: item:allColumns:true }}</div>\n @if (allColumns[1]) {\n <div fd-list-byline class=\"byline\">\n {{ allColumns[1].Alias | rval: item:allColumns:true }}\n </div>\n }\n <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\n @for (column of allColumns; track column; let index = $index) { @if (index > 1) { @if (column.Alias\n | rval: item:allColumns:true; as value) {\n <span> {{ column.Alias }}:{{ value }}</span>\n } } }\n </div>\n </div>\n } @else {\n <span fd-list-title [class.list-empty-item]=\"item.isEmpty\"\n >{{ item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate) }}\n </span>\n }\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group{min-width:fit-content}.fd-input-group>.fd-input-group__input{background-color:transparent!important}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.simple-combo-wrapper ::ng-deep .combo-mo-ulv[class*=has-] .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canAdd .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canEdit .fd-input-group{border-left:none;border-bottom-left-radius:unset;border-top-left-radius:unset}.simple-combo-wrapper ::ng-deep .combo-popup-btn{background-color:var(--sapField_Background)!important;border-top:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-bottom:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);box-sizing:content-box;border-radius:0}.simple-combo-wrapper ::ng-deep .combo-popup-btn:first-child{margin-right:-1px}.simple-combo-wrapper ::ng-deep .combo-popup-btn:last-child{border-left:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}.extra-buttons{width:auto;border-top:none!important;border-right:none;border-left:none}.extra-buttons>span{overflow:hidden}.extra-buttons:hover{border-top:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.extra-buttons .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover{border-top:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "component", type: i5.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i7.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "directive", type: i7.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i8.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i8.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i9.UlvPagingComponent, selector: "bsu-ulv-paging", inputs: ["pagingSetting"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i10.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.MoInfoUlvMoListPipe, name: "moInfoUlvMoList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
384
|
+
}
|
|
385
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiMoInfoUlvComboComponent, decorators: [{
|
|
386
|
+
type: Component,
|
|
387
|
+
args: [{ selector: 'bsu-ui-mo-info-ulv-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n context._showPopup || context._showDropDown === false ? inputTemplate : comboTemplate;\n context: {\n $implicit:\n (loading$ | async) === true\n | moInfoUlvMoList\n : isDataLoadedFirstTime\n : ulvAdapter?.Setting?.Data?.MoDataList\n : UlvUi?.Setting?.Data?.MoDataList\n : ulvAdapter?.Setting?.Data?.Paging\n : UlvUi?.Setting?.Data?.Paging,\n deviceSize: deviceSize$ | async,\n disableOrReadonly: disableOrReadonly$ | async,\n disable: disable$ | async,\n readonly: readonly$ | async\n }\n \"\n>\n</ng-container>\n<ng-template\n #inputTemplate\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n>\n <div style=\"display: flex\" class=\"fd-input-group\">\n <input\n fd-input-group-input\n fd-form-control\n #inputRef\n [placeholder]=\"Setting.NullText || ''\"\n [attr.readonly]=\"true\"\n [attr.disabled]=\"disable === true ? true : null\"\n [value]=\"!value ? '' : (value | bbbTranslate)\"\n [id]=\"id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n (input)=\"onValueChange($event)\"\n />\n <ng-container *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: disableOrReadonly }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\n <div class=\"extra-buttons fd-input-group fd-input-group--control\">\n @if (hasValue && disableOrReadonly !== true) {\n <span class=\"fd-input-group__addon--button combo-popup-btn\" fd-input-group-addon>\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n } @if (!hasValue && disableOrReadonly !== true && Setting.ShowNewButton) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n } @if (hasValue && disableOrReadonly !== true && Setting.ViewRelatedFormType !== 'Hide') {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n } @if (context._showPopup && !value && disableOrReadonly !== true) {\n <span fd-input-group-addon class=\"fd-input-group__addon--button combo-popup-btn\">\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n }\n </div>\n</ng-template>\n<ng-template\n #comboTemplate\n let-moDataList\n let-deviceSize=\"deviceSize\"\n let-disableOrReadonly=\"disableOrReadonly\"\n let-disable=\"disable\"\n let-readonly=\"readonly\"\n>\n <div class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.canAdd]=\"!hasValue && disableOrReadonly !== true && Setting.ShowNewButton\"\n [class.canEdit]=\"hasValue && disableOrReadonly !== true\"\n [comboboxId]=\"comboboxId\"\n [class.has-report]=\"hasReport\"\n [class.has-Value]=\"hasValue\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"readonly === true ? true : false\"\n [disabled]=\"disable === true ? true : false\"\n [dropdownValues]=\"moDataList\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [byline]=\"allColumns.length > 0\"\n [itemTemplate]=\"itemTemplate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"disableOrReadonly !== true\"\n (itemClicked)=\"onItemClick($event, moDataList)\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n >\n </fd-combobox>\n <ng-container *ngTemplateOutlet=\"btnsTpl\"></ng-container>\n </div>\n <ng-template #itemTemplate let-item>\n @if (item.$isLoading) {\n <div fd-list-content style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\n </div>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"item.$LoadMore ? loadMoreButton : showItem; context: { ulv: ulvAdapter || UlvUi }\"\n >\n </ng-container>\n }\n <ng-template #loadMoreButton let-ulv=\"ulv\">\n @if (ulv) {\n <bsu-ulv-paging\n (click)=\"onPagingClick($event)\"\n (pageChange)=\"onPageChange($event)\"\n [pagingSetting]=\"ulv.Setting.Data.Paging\"\n >\n </bsu-ulv-paging>\n }\n <!-- <button\n style=\"width: 100%\"\n *ngIf=\"ulv && ulv.Setting.Data.Paging.Page + 1 < ulv.Setting.Data.Paging.TotalPages\"\n fd-button\n (click)=\"onPageChange2(ulv.Setting.Data.Paging, $event)\"\n [label]=\"'More' | bbbTranslate\"\n ></button> -->\n </ng-template>\n <ng-template #showItem>\n @if (allColumns?.length && !item.isEmpty) { @if (!item.$__IsLast) {\n <div class=\"moinfoulv devider\"></div>\n } @if (item.$Icon) {\n <span fd-list-thumbnail><fd-icon [glyph]=\"item.$Icon\"></fd-icon></span>\n }\n <div fd-list-content class=\"moinfoulv hasColumns\">\n <div fd-list-title class=\"title\">{{ allColumns[0].Alias | rval: item:allColumns:true }}</div>\n @if (allColumns[1]) {\n <div fd-list-byline class=\"byline\">\n {{ allColumns[1].Alias | rval: item:allColumns:true }}\n </div>\n }\n <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\n @for (column of allColumns; track column; let index = $index) { @if (index > 1) { @if (column.Alias\n | rval: item:allColumns:true; as value) {\n <span> {{ column.Alias }}:{{ value }}</span>\n } } }\n </div>\n </div>\n } @else {\n <span fd-list-title [class.list-empty-item]=\"item.isEmpty\"\n >{{ item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate) }}\n </span>\n }\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group{min-width:fit-content}.fd-input-group>.fd-input-group__input{background-color:transparent!important}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.simple-combo-wrapper ::ng-deep .combo-mo-ulv[class*=has-] .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canAdd .fd-input-group,.simple-combo-wrapper ::ng-deep .combo-mo-ulv.canEdit .fd-input-group{border-left:none;border-bottom-left-radius:unset;border-top-left-radius:unset}.simple-combo-wrapper ::ng-deep .combo-popup-btn{background-color:var(--sapField_Background)!important;border-top:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-bottom:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);box-sizing:content-box;border-radius:0}.simple-combo-wrapper ::ng-deep .combo-popup-btn:first-child{margin-right:-1px}.simple-combo-wrapper ::ng-deep .combo-popup-btn:last-child{border-left:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}.extra-buttons{width:auto;border-top:none!important;border-right:none;border-left:none}.extra-buttons>span{overflow:hidden}.extra-buttons:hover{border-top:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.extra-buttons .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover{border-top:none}\n"] }]
|
|
388
|
+
}], propDecorators: { ulvAdapter: [{
|
|
389
|
+
type: Input
|
|
390
|
+
}], Control: [{
|
|
391
|
+
type: Input
|
|
392
|
+
}], UlvMainCtrlr: [{
|
|
393
|
+
type: Input
|
|
394
|
+
}], fdComboRef: [{
|
|
395
|
+
type: ViewChild,
|
|
396
|
+
args: [ComboboxComponent]
|
|
397
|
+
}], UlvUi: [{
|
|
398
|
+
type: Input
|
|
399
|
+
}], onKeyDown: [{
|
|
400
|
+
type: HostListener,
|
|
401
|
+
args: ['keydown', ['$event']]
|
|
402
|
+
}], onAlt: [{
|
|
403
|
+
type: HostListener,
|
|
404
|
+
args: ['keydown.alt', ['$event']]
|
|
405
|
+
}], IsExpanded: [{
|
|
406
|
+
type: Input
|
|
407
|
+
}], Collapse: [{
|
|
408
|
+
type: Input
|
|
409
|
+
}], Expand: [{
|
|
410
|
+
type: Input
|
|
411
|
+
}], on: [{
|
|
412
|
+
type: Input
|
|
413
|
+
}], Focus: [{
|
|
414
|
+
type: Input
|
|
415
|
+
}], SetUlvAdapter: [{
|
|
416
|
+
type: Input
|
|
417
|
+
}], IsUiCreated: [{
|
|
418
|
+
type: Input
|
|
419
|
+
}], Mask: [{
|
|
420
|
+
type: Input
|
|
421
|
+
}], hide: [{
|
|
422
|
+
type: Input
|
|
423
|
+
}], show: [{
|
|
424
|
+
type: Input
|
|
425
|
+
}], Unmask: [{
|
|
426
|
+
type: Input
|
|
427
|
+
}], getRawValue: [{
|
|
428
|
+
type: Input
|
|
429
|
+
}] } });
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFHMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFFbkYsT0FBTyxFQUNILGtCQUFrQixFQUNsQixRQUFRLEVBTVIsa0JBQWtCLEVBR2xCLFdBQVcsRUFFZCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFROUIsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtCQUFrQjtJQU5qRTs7UUFxQ0ksZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBYXBDLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FBRzVCLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEQsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUF5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TU4sSUFBSTtzQkFESCxLQUFLO2dCQU1OLElBQUk7c0JBREgsS0FBSztnQkFRTixJQUFJO3NCQURILEtBQUs7Z0JBWU4sTUFBTTtzQkFETCxLQUFLO2dCQU1OLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgT25Jbml0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgdGFrZVVudGlsLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50LCBDb21ib2JveEl0ZW0sIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRmllbGRCYXNlQ29tcG9uZW50LFxyXG4gICAgQmFyc2FBcGksXHJcbiAgICBSZXBvcnRFeHRyYUluZm8sXHJcbiAgICBNb0ZvclJlcG9ydE1vZGVsLFxyXG4gICAgQ2xhc3NOYW1lc01vZGVsLFxyXG4gICAgVmlld1R5cGVzLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIFByZXZlbnREZWZhdWxFdmVudCxcclxuICAgIFBhZ2luZ1NldHRpbmcsXHJcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxyXG4gICAgZ2V0VW5pcXVlSWQsXHJcbiAgICBHcmlkVmlld1xyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW8taW5mby11bHYtY29tYm8nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vLWluZm8tdWx2LWNvbWJvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vLWluZm8tdWx2LWNvbWJvLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlNb0luZm9VbHZDb21ib0NvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBASW5wdXQoKSB1bHZBZGFwdGVyOiB7XHJcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgICAgIFNldHRpbmc6IHtcclxuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgICAgICAgICBWaWV3OiBWaWV3VHlwZXM7XHJcbiAgICAgICAgICAgIENsYXNzTmFtZXM6IENsYXNzTmFtZXNNb2RlbDtcclxuICAgICAgICAgICAgRXh0cmE6IFJlcG9ydEV4dHJhSW5mbztcclxuICAgICAgICAgICAgRGF0YTogTW9Gb3JSZXBvcnRNb2RlbDtcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIENvbnRyb2w6IGFueTtcclxuICAgIEBJbnB1dCgpIFVsdk1haW5DdHJscjogYW55O1xyXG4gICAgQFZpZXdDaGlsZChDb21ib2JveENvbXBvbmVudCkgZmRDb21ib1JlZjogQ29tYm9ib3hDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgc2V0IFVsdlVpKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9VbHZVaSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB2YWx1ZS52aWV3ZXJDb250cm9sLm9uKHtcclxuICAgICAgICAgICAgICAgIE1vRGF0YUxpc3RDaGFuZ2VkOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IFVsdlVpKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX1VsdlVpO1xyXG4gICAgfVxyXG5cclxuICAgIF9VbHZVaTogYW55O1xyXG4gICAgaXNFeHBhbmQ6IGJvb2xlYW47XHJcbiAgICBzbWFydENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAgIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgdGlja1JlZjogYW55O1xyXG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaXNGaXJzdExvYWQ6IGJvb2xlYW47XHJcbiAgICBwb3BvdmVyRWxlbWVudDogYW55O1xyXG4gICAgcmF3VmFsdWU6IHN0cmluZztcclxuICAgIGZvcm1TZWxlY3Rpb25EaWFsb2c6IERpYWxvZ1JlZjtcclxuICAgIGlzT3BlblNlbGVjdGlvbkRpYWxvZzogYm9vbGVhbjtcclxuICAgIGhhc1JlcG9ydDogYW55O1xyXG4gICAgb3JpZ2luYWxWYWx1ZTogYW55O1xyXG4gICAgaXNEYXRhTG9hZGVkRmlyc3RUaW1lOiBib29sZWFuO1xyXG4gICAgdmFsdWVUZXh0OiBzdHJpbmc7XHJcbiAgICBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10gPSBbXTtcclxuICAgIGhhc1ZhbHVlOiBib29sZWFuO1xyXG4gICAgY29tYm9ib3hJZDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF9jbG9zZURpYWxvZ1NvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF9sb2FkaW5nU291cmNlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlEb3duKGUpOiB2b2lkIHtcclxuICAgICAgICBlID0gbmV3IEJhcnNhQXBpLkV4dC5FdmVudE9iamVjdEltcGwoZSk7XHJcbiAgICAgICAgY29uc3QgayA9IGUuZ2V0S2V5KCk7XHJcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gZS5FTlRFUiB8fCBrID09PSBCYXJzYUFwaS5FeHQuRXZlbnRPYmplY3QuVEFCKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2tleWRvd24nLCB0aGlzLmNvbnRleHQsIGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0JywgWyckZXZlbnQnXSlcclxuICAgIG9uQWx0KGUpOiB2b2lkIHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29tYm9ib3hJZCA9IGdldFVuaXF1ZUlkKDMpO1xyXG4gICAgICAgIHRoaXMuX2NoZWNrSGFzVmFsdWUodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc0RhdGFMb2FkZWRGaXJzdFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMudWx2QWRhcHRlcj8uU2V0dGluZz8uRGF0YT8uTW9EYXRhTGlzdCA9PT0gJ29iamVjdCcgfHxcclxuICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLlVsdlVpPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0ID09PSAnb2JqZWN0JztcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNtYXJ0Q2hhbmdlXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB0aGlzLl9maWx0ZXJTbWFydENoYW5nZSh2YWx1ZSkpLFxyXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgICAgIHRhcCgodmFsdWUpID0+ICh0aGlzLnJhd1ZhbHVlID0gdmFsdWUpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdTbWFydENoYW5nZScsIHRoaXMuY29udGV4dCwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9vcGVuUG9wdXBGb3JtU2VsZWN0aW9uU291cmNlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9jbG9zZURpYWxvZ1NvdXJjZSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgdGhpcy5oYXNSZXBvcnQgPSB0aGlzLlNldHRpbmcuUmVsYXRpb25WaWV3VHlwZSA9PT0gJ1JlcG9ydFZpZXcnIHx8IHRoaXMuU2V0dGluZy5SZXBvcnROYW1lID09PSAnSGllcmFyY2hpY2FsJztcclxuICAgICAgICB0aGlzLkNvbnRyb2wgPSB0aGlzO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRWYWx1ZVRleHQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvblBhZ2luZ0NsaWNrKGUpOiB2b2lkIHtcclxuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XHJcbiAgICB9XHJcbiAgICBvblBhZ2VDaGFuZ2UoZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xyXG4gICAgICAgIGlmICh0aGlzLlVsdlVpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuVWx2VWkuZmlyZUV2ZW50KCdQYWdlQ2hhbmdlJywgdGhpcy5VbHZVaSwgZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51bHZBZGFwdGVyLkRhdGFDdHJsci5Nb3ZlVG9QYWdlKGUsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG9uSXRlbUNsaWNrKGU6IENvbWJvYm94SXRlbSwgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlSXRlbVNlbGVjdChtb0RhdGFMaXN0LCBlLml0ZW0pO1xyXG4gICAgfVxyXG4gICAgb25QYWdlQ2hhbmdlMihwYWdlU2V0dGluZzogUGFnaW5nU2V0dGluZywgZSk6IHZvaWQge1xyXG4gICAgICAgIFByZXZlbnREZWZhdWxFdmVudChlKTtcclxuICAgICAgICBpZiAoIXRoaXMudWx2QWRhcHRlcikge1xyXG4gICAgICAgICAgICB0aGlzLlVsdlVpLmZpcmVFdmVudCgnUGFnZUNoYW5nZScsIHRoaXMuVWx2VWksIHBhZ2VTZXR0aW5nLlBhZ2UgKyAxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9sb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgY29uc3QgdWx2QWRhcHRlciA9IHRoaXMudWx2QWRhcHRlcjtcclxuICAgICAgICBjb25zdCB0ZW1wMSA9IHVsdkFkYXB0ZXIuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3Q7XHJcbiAgICAgICAgdGVtcDEuc3BsaWNlKHRlbXAxLmxlbmd0aCAtIDEsIDEpO1xyXG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3RPbGQgPSBbLi4udGVtcDFdO1xyXG4gICAgICAgIG1vRGF0YUxpc3RPbGQuZm9yRWFjaCgoYykgPT4gKGMuJF9fSXNMYXN0ID0gZmFsc2UpKTtcclxuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIuRGF0YUN0cmxyLk1vdmVUb1BhZ2UocGFnZVNldHRpbmcuUGFnZSArIDEsICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gdWx2QWRhcHRlci5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdDtcclxuICAgICAgICAgICAgbW9EYXRhTGlzdC5zcGxpY2UoMCwgMCwgLi4ubW9EYXRhTGlzdE9sZCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvbk9wZW5DaGFuZ2UoZmRDb21ib2JveCwgaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGlzT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLl9mb2N1cygpO1xyXG4gICAgICAgICAgICAvLyBmZENvbWJvYm94Lm9wZW4gPSBmYWxzZTsgLy8gaXQgY2xvc2UgcG9wdXAgd2hlbiBjbGljayBvbiBkcm9wZG93biBidXR0b24gaW4gY29tcG9uZW50XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgaW5wdXRUZXh0ID0gdGhpcy5mZENvbWJvUmVmPy5pbnB1dFRleHRWYWx1ZTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlICYmIGlucHV0VGV4dCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmFpc2VTbWFydENoYW5nZShpbnB1dFRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25JbnB1dENoYW5nZShlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmFpc2VTbWFydENoYW5nZShlKTtcclxuICAgIH1cclxuICAgIG9uSW5wdXRDaGFuZ2UyKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yYWlzZVNtYXJ0Q2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uVmFsdWVDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JhaXNlVmFsdWVDaGFuZ2VkKGUudGFyZ2V0LnZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uTmV3KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnTmV3Jyk7XHJcbiAgICB9XHJcbiAgICBvbkNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnRGVsZXRlJyk7XHJcbiAgICB9XHJcbiAgICBvbkVkaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdFZGl0Jyk7XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ1BvcHVwJyk7XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgY3VzdG9tRmlsdGVyKGNvbnRlbnQ6IGFueVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheUZ1bmMgPSAob2JqOiBNZXRhb2JqZWN0RGF0YU1vZGVsKSA9PiB7XHJcbiAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9WYWx1ZUNhcHRpb24ob2JqLCBjb2xOYW1lLCBvYmouJENhcHRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gICAgZ2V0TW9WYWx1ZUNhcHRpb24odmFsdWVNbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwsIGNvbE5hbWU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh2YWx1ZU1vID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBjYXB0aW9uVmFsdWVNbztcclxuICAgICAgICBjb25zdCBtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICB0aGlzLnVsdkFkYXB0ZXIsXHJcbiAgICAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBmb3VuZGVkTW8gPSBtb2xpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gdmFsdWVNby5JZCk7XHJcbiAgICAgICAgaWYgKGNvbE5hbWUgJiYgZm91bmRlZE1vICYmIGZvdW5kZWRNb1tjb2xOYW1lXSkge1xyXG4gICAgICAgICAgICBpZiAoZm91bmRlZE1vW2NvbE5hbWUgKyAnJENhcHRpb24nXSkge1xyXG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvdW5kZWRNb1tjb2xOYW1lXS4kQ2FwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZV0uJENhcHRpb247XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjYXB0aW9uVmFsdWVNbyA9IGZvdW5kZWRNb1tjb2xOYW1lXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oY2FwdGlvblZhbHVlTW8gfHwgZGVmYXVsdFZhbHVlKTtcclxuICAgIH1cclxuICAgIGdldEZpcnN0Q29sdW1uTmFtZSgpIHtcclxuICAgICAgICBsZXQgY29sTmFtZSA9ICckQ2FwdGlvbic7XHJcbiAgICAgICAgaWYgKHRoaXMuVWx2TWFpbkN0cmxyICYmIHRoaXMuVWx2TWFpbkN0cmxyPy5EZD8uU2V0dGluZz8uVmlldykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3LkNvbHVtbnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29sID0gdGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3LkNvbHVtbnMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAoYykgPT4gIWMuTmFtZS5zdGFydHNXaXRoKCckJykgJiYgYy5OYW1lICE9PSAnSWQnXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0Q29sPy5OYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sTmFtZSA9IGZpcnN0Q29sLk5hbWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvbE5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIElzRXhwYW5kZWQgPSAodHlwZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlID09PSAnRGQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmRDb21ib1JlZj8ucG9wb3ZlckNvbXBvbmVudD8uaXNPcGVuO1xyXG4gICAgfTtcclxuICAgIC8vIHJldHVybiB0aGlzLmNvbWJvUmVmLm5hdGl2ZUVsZW1lbnQucmVzcG9uc2l2ZVBvcG92ZXIuaXNPcGVuKCk7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgQ29sbGFwc2UgPSAodHlwZSkgPT4ge307XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgRXhwYW5kID0gKHR5cGUpID0+IHtcclxuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIgPSB0aGlzLlVsdk1haW5DdHJsclt0eXBlXTtcclxuICAgIH07XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgb24gPSAoKSA9PiB7fTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBGb2N1cyA9ICgpID0+IHt9O1xyXG4gICAgQElucHV0KClcclxuICAgIFNldFVsdkFkYXB0ZXIgPSAodHlwZSwgdWx2QWRhcHRlcikgPT4ge1xyXG4gICAgICAgIHRoaXMudWx2QWRhcHRlciA9IHVsdkFkYXB0ZXI7XHJcbiAgICAgICAgdGhpcy5fc2V0Q29sdW1ucygpO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG4gICAgQElucHV0KClcclxuICAgIElzVWlDcmVhdGVkID0gKHR5cGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBNYXNrID0gKHR5cGUpID0+IHtcclxuICAgICAgICB0aGlzLl9sb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGlkZSA9ICh0eXBlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybVNlbGVjdGlvbkRpYWxvZykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1TZWxlY3Rpb25EaWFsb2cuY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2hvdyA9ICh0eXBlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuVWx2VWkgJiYgIXRoaXMuaXNPcGVuU2VsZWN0aW9uRGlhbG9nICYmIHRoaXMuY29udGV4dC5fc2hvd1BvcHVwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wZW5Qb3B1cEZvcm1TZWxlY3Rpb25Tb3VyY2UubmV4dCgpOyAvLyByYWJldGUgdGFraSBnZW5lcmFsIGluZm8gLnBvcHVwIGJheiBtaXNob2Qga2UgYmFpYWQgZHJvcGRvd24gYmFzaGUuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mZENvbWJvUmVmICYmICh0aGlzLmZkQ29tYm9SZWYub3BlbiA9IHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBVbm1hc2sgPSAodHlwZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0UmF3VmFsdWUgPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3VmFsdWU7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcblxyXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVJdGVtU2VsZWN0KG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKGMpID0+IChjLiRJc0NoZWNrZWQgPSBmYWxzZSkpO1xyXG4gICAgICAgIHRoaXMuX2ZpcmVWYWx1ZUNoYW5nZShtbyk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXRWYWx1ZVRleHQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX2NoZWNrSGFzVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgLy8gdGhpcy5fc2V0Q29tYm9UZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfY2hlY2tIYXNWYWx1ZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaGFzVmFsdWUgPSB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJztcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWVUZXh0KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZVRleHQgPSB0aGlzLl9nZXRWYWx1ZVRleHQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3NldENvbWJvVGV4dCh0aGlzLnZhbHVlVGV4dCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2dldFZhbHVlVGV4dCh2YWx1ZSkge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS4kQ2FwdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgJiYgdmFsdWUgJiYgdGhpcy5VbHZNYWluQ3RybHIgJiYgdGhpcy5VbHZNYWluQ3RybHIuRGQpIHtcclxuICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldztcclxuICAgICAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xyXG4gICAgICAgICAgICBpZiAodmlldy5Db2x1bW5zKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbCA9IHZpZXcuQ29sdW1ucy5maW5kKChjKSA9PiAhYy5OYW1lLnN0YXJ0c1dpdGgoJyQnKSAmJiBjLk5hbWUgIT09ICdJZCcpO1xyXG4gICAgICAgICAgICAgICAgY29sTmFtZSA9IGZpcnN0Q29sPy5OYW1lID8gZmlyc3RDb2wuTmFtZSA6ICckQ2FwdGlvbic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldENvbWJvVGV4dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAvLyB0aGlzLl92YWx1ZU1vID0gbnVsbDtcclxuICAgICAgICAvL3RoaXMuZmRDb21ib1JlZi5pbnB1dFRleHRWYWx1ZSA9ICcnO1xyXG4gICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGNvbnN0IGZkQ29tYm9SZWYgPSB0aGlzLmZkQ29tYm9SZWY7XHJcbiAgICAgICAgY29uc3QgaW5wdXRUZXh0ID0gZmRDb21ib1JlZj8uaW5wdXRUZXh0VmFsdWU7XHJcbiAgICAgICAgaWYgKGZkQ29tYm9SZWYgJiYgdmFsdWUgIT0gaW5wdXRUZXh0KSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IFVsdk1haW5DdHJsciA9IHRoaXMuVWx2TWFpbkN0cmxyO1xyXG4gICAgICAgICAgICAvLyBpZiAoVWx2TWFpbkN0cmxyICYmIFVsdk1haW5DdHJsci5EZCkge1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc3QgdmlldyA9IFVsdk1haW5DdHJsci5EZC5TZXR0aW5nLlZpZXc7XHJcbiAgICAgICAgICAgIC8vICAgICBsZXQgY29sTmFtZSA9ICckQ2FwdGlvbic7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAodmlldy5Db2x1bW5zKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgY29uc3QgZmlyc3RDb2wgPSB2aWV3LkNvbHVtbnMuZmluZCgoYykgPT4gIWMuTmFtZS5zdGFydHNXaXRoKCckJykgJiYgYy5OYW1lICE9PSAnSWQnKTtcclxuICAgICAgICAgICAgLy8gICAgICAgICBjb2xOYW1lID0gZmlyc3RDb2w/Lk5hbWUgPyBmaXJzdENvbC5OYW1lIDogJyRDYXB0aW9uJztcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gICAgIHZhbHVlID0gdGhpcy5nZXRNb1ZhbHVlQ2FwdGlvbih0aGlzLl92YWx1ZU1vLCBjb2xOYW1lLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgZmRDb21ib1JlZi5pbnB1dFRleHQgPSB2YWx1ZSA/IHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKHZhbHVlKSArICcnIDogJyc7XHJcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9vcGVuUG9wdXBGb3JtU2VsZWN0aW9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuU2VsZWN0aW9uRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLlVsdlVpLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IHRydWU7IC8vIHRoaXMgaXMgdXNlZnVsIHRvIHVsdiBtYW5hZ2UgdG9vbGJhciBidXR0b25zLmZvciBleGFtcGxlIG1vdmUgaW4gdHJlZSBkb2VzIG5vdCBzaG93blxyXG4gICAgICAgIHRoaXMuZm9ybVNlbGVjdGlvbkRpYWxvZyA9IEJhcnNhQXBpLkJ3LlVsdkZvcm1NdWx0aVNlbGVjdC5TaG93KHRoaXMuY29udGV4dCwge1xyXG4gICAgICAgICAgICB1bHYxOiB0aGlzLlVsdlVpLFxyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdCcpLFxyXG4gICAgICAgICAgICBJc0xvYWRlZDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3BlblNlbGVjdGlvbkRpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJTbWFydENoYW5nZSh2YWx1ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBjYW5SZXF1ZXN0ID0gKHRoaXMudWx2QWRhcHRlciB8fCB0aGlzLlVsdlVpKSAmJiB2YWx1ZSAhPT0gdGhpcy52YWx1ZTtcclxuICAgICAgICAvLyBpZiAoY2FuUmVxdWVzdCkge1xyXG4gICAgICAgIC8vICAgICBjb25zdCBtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy51bHZBZGFwdGVyLFxyXG4gICAgICAgIC8vICAgICAgICAgJ1NldHRpbmcuRGF0YS5Nb0RhdGFMaXN0JyxcclxuICAgICAgICAvLyAgICAgICAgIFtdXHJcbiAgICAgICAgLy8gICAgICk7XHJcbiAgICAgICAgLy8gICAgIGlmICghbW9saXN0KSB7XHJcbiAgICAgICAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vICAgICBjb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcclxuXHJcbiAgICAgICAgLy8gICAgIGNvbnN0IGZpbmRNbyA9IG1vbGlzdC5maW5kKChtbykgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgY29uc3QgY2FwdGlvbiA9IHRoaXMuZ2V0TW9WYWx1ZUNhcHRpb24obW8sIGNvbE5hbWUsIG1vLiRDYXB0aW9uKTtcclxuICAgICAgICAvLyAgICAgICAgIHJldHVybiBjYXB0aW9uID09PSB2YWx1ZTtcclxuICAgICAgICAvLyAgICAgfSk7XHJcbiAgICAgICAgLy8gICAgIGlmIChmaW5kTW8pIHtcclxuICAgICAgICAvLyAgICAgICAgIGNhblJlcXVlc3QgPSBmYWxzZTtcclxuICAgICAgICAvLyAgICAgICAgIC8vdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKGZpbmRNbyk7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgcmV0dXJuIGNhblJlcXVlc3Q7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldENvbHVtbnMoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdWx2QWRhcHRlciA9IHRoaXMudWx2QWRhcHRlcjtcclxuICAgICAgICBjb25zdCB2aWV3ID0gPEdyaWRWaWV3PnVsdkFkYXB0ZXI/LlNldHRpbmc/LlZpZXc7XHJcbiAgICAgICAgaWYgKHZpZXcgJiYgdmlldy5Db2x1bW5zPy5sZW5ndGggJiYgdGhpcy5hbGxDb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFsbENvbHVtbnMgPSB2aWV3LkNvbHVtbnMuZmlsdGVyKChjKSA9PiBOdW1iZXIoYy5NZXRhRmllbGRUeXBlSWQpID4gMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9mb2N1cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ05vcm1hbCcpO1xyXG4gICAgICAgIHRoaXMuX3NldENvbHVtbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3JhaXNlU21hcnRDaGFuZ2UodmFsdWUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNtYXJ0Q2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfdHJpZ2dlckNsaWNrKGV2ZW50TmFtZSwgdmFsdWUgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVHJpZ2dlckNsaWNrJywgdGhpcy5jb250ZXh0LCBldmVudE5hbWUsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3JhaXNlVmFsdWVDaGFuZ2VkKGNhcHRpb24pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gY2FwdGlvbjtcclxuICAgICAgICBjb25zdCBtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICB0aGlzLnVsdkFkYXB0ZXIsXHJcbiAgICAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoIW1vbGlzdCB8fCBtb2xpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9jb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgbW8gPSBtb2xpc3QuZmluZCgoYykgPT4gYy4kQ2FwdGlvbiA9PT0gaW5wdXRWYWx1ZSk7XHJcbiAgICAgICAgaWYgKCFtbykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1vbGlzdC5mb3JFYWNoKChjKSA9PiAoYy4kSXNDaGVja2VkID0gZmFsc2UpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKG1vKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZmlyZVZhbHVlQ2hhbmdlKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG1vO1xyXG4gICAgICAgIG1vLiRJc0NoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAvLyB0aGlzLl9zZXRDb21ib1RleHQobW8uJENhcHRpb24pO1xyXG4gICAgICAgIC8vIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuVWx2VWkpIHtcclxuICAgICAgICAgICAgdGhpcy5VbHZVaS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgncm93Y2xpY2snLCB0aGlzLlVsdlVpLCAwLCBtbyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVsdkFkYXB0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy51bHZBZGFwdGVyLlZpZXdlckFkYXB0ZXIuQ29udHJvbC5maXJlRXZlbnQoJ3Jvd2NsaWNrJywgdGhpcy51bHZBZGFwdGVyLlZpZXdlckFkYXB0ZXIuQ29udHJvbCwgMCwgbW8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLl90cmlnZ2VyQ2xpY2soJ0l0ZW1TZWxlY3QnLCB0aGlzLnZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgY29udGV4dC5fc2hvd1BvcHVwIHx8IGNvbnRleHQuX3Nob3dEcm9wRG93biA9PT0gZmFsc2UgPyBpbnB1dFRlbXBsYXRlIDogY29tYm9UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OlxuICAgICAgICAgICAgICAgIChsb2FkaW5nJCB8IGFzeW5jKSA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgIHwgbW9JbmZvVWx2TW9MaXN0XG4gICAgICAgICAgICAgICAgICAgIDogaXNEYXRhTG9hZGVkRmlyc3RUaW1lXG4gICAgICAgICAgICAgICAgICAgIDogdWx2QWRhcHRlcj8uU2V0dGluZz8uRGF0YT8uTW9EYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICA6IFVsdlVpPy5TZXR0aW5nPy5EYXRhPy5Nb0RhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgIDogdWx2QWRhcHRlcj8uU2V0dGluZz8uRGF0YT8uUGFnaW5nXG4gICAgICAgICAgICAgICAgICAgIDogVWx2VWk/LlNldHRpbmc/LkRhdGE/LlBhZ2luZyxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUkIHwgYXN5bmMsXG4gICAgICAgICAgICBkaXNhYmxlT3JSZWFkb25seTogZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMsXG4gICAgICAgICAgICBkaXNhYmxlOiBkaXNhYmxlJCB8IGFzeW5jLFxuICAgICAgICAgICAgcmVhZG9ubHk6IHJlYWRvbmx5JCB8IGFzeW5jXG4gICAgICAgIH1cbiAgICBcIlxuPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGVcbiAgICAjaW5wdXRUZW1wbGF0ZVxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LWRpc2FibGVPclJlYWRvbmx5PVwiZGlzYWJsZU9yUmVhZG9ubHlcIlxuICAgIGxldC1kaXNhYmxlPVwiZGlzYWJsZVwiXG4gICAgbGV0LXJlYWRvbmx5PVwicmVhZG9ubHlcIlxuPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCIgY2xhc3M9XCJmZC1pbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWlucHV0XG4gICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICNpbnB1dFJlZlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlNldHRpbmcuTnVsbFRleHQgfHwgJydcIlxuICAgICAgICAgICAgW2F0dHIucmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlID09PSB0cnVlID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIiF2YWx1ZSA/ICcnIDogKHZhbHVlIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW3N0eWxlLmRpcmVjdGlvbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiBudWxsXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnRuc1RwbDsgY29udGV4dDogeyBkaXNhYmxlT3JSZWFkb25seTogZGlzYWJsZU9yUmVhZG9ubHkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidG5zVHBsIGxldC1kaXNhYmxlT3JSZWFkb25seT1cImRpc2FibGVPclJlYWRvbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImV4dHJhLWJ1dHRvbnMgZmQtaW5wdXQtZ3JvdXAgZmQtaW5wdXQtZ3JvdXAtLWNvbnRyb2xcIj5cbiAgICAgICAgQGlmIChoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiIGZkLWlucHV0LWdyb3VwLWFkZG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DbGVhcigpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfSBAaWYgKCFoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSAmJiBTZXR0aW5nLlNob3dOZXdCdXR0b24pIHtcbiAgICAgICAgPHNwYW4gZmQtaW5wdXQtZ3JvdXAtYWRkb24gY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiBjb21iby1wb3B1cC1idG5cIj5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJhZGRcIiAoY2xpY2spPVwib25OZXcoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gQGlmIChoYXNWYWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSAmJiBTZXR0aW5nLlZpZXdSZWxhdGVkRm9ybVR5cGUgIT09ICdIaWRlJykge1xuICAgICAgICA8c3BhbiBmZC1pbnB1dC1ncm91cC1hZGRvbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImVkaXRcIiAoY2xpY2spPVwib25FZGl0KClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9IEBpZiAoY29udGV4dC5fc2hvd1BvcHVwICYmICF2YWx1ZSAmJiBkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgICA8c3BhbiBmZC1pbnB1dC1ncm91cC1hZGRvbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIGNvbWJvLXBvcHVwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cInNlYXJjaFwiIChjbGljayk9XCJvblNlYXJjaCgpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb21ib1RlbXBsYXRlXG4gICAgbGV0LW1vRGF0YUxpc3RcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxuICAgIGxldC1kaXNhYmxlT3JSZWFkb25seT1cImRpc2FibGVPclJlYWRvbmx5XCJcbiAgICBsZXQtZGlzYWJsZT1cImRpc2FibGVcIlxuICAgIGxldC1yZWFkb25seT1cInJlYWRvbmx5XCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWNvbWJvLXdyYXBwZXJcIj5cbiAgICAgICAgPGZkLWNvbWJvYm94XG4gICAgICAgICAgICAjZmRDb21ib2JveFxuICAgICAgICAgICAgY2xhc3M9XCJjb21iby1tby11bHZcIlxuICAgICAgICAgICAgW2NsYXNzLmNhbkFkZF09XCIhaGFzVmFsdWUgJiYgZGlzYWJsZU9yUmVhZG9ubHkgIT09IHRydWUgJiYgU2V0dGluZy5TaG93TmV3QnV0dG9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5jYW5FZGl0XT1cImhhc1ZhbHVlICYmIGRpc2FibGVPclJlYWRvbmx5ICE9PSB0cnVlXCJcbiAgICAgICAgICAgIFtjb21ib2JveElkXT1cImNvbWJvYm94SWRcIlxuICAgICAgICAgICAgW2NsYXNzLmhhcy1yZXBvcnRdPVwiaGFzUmVwb3J0XCJcbiAgICAgICAgICAgIFtjbGFzcy5oYXMtVmFsdWVdPVwiaGFzVmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFttb2JpbGVdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgIFttb2JpbGVDb25maWddPVwibW9iaWxlQ29uZmlnXCJcbiAgICAgICAgICAgIFtmaWxsT25TZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHkgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGUgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgW2Ryb3Bkb3duVmFsdWVzXT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICAgICAgW2ZpbHRlckZuXT1cImN1c3RvbUZpbHRlclwiXG4gICAgICAgICAgICBbb3Blbk9uS2V5Ym9hcmRFdmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtieWxpbmVdPVwiYWxsQ29sdW1ucy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtkaXNwbGF5Rm5dPVwiZGlzcGxheUZ1bmNcIlxuICAgICAgICAgICAgW3Nob3dEcm9wZG93bkJ1dHRvbl09XCJkaXNhYmxlT3JSZWFkb25seSAhPT0gdHJ1ZVwiXG4gICAgICAgICAgICAoaXRlbUNsaWNrZWQpPVwib25JdGVtQ2xpY2soJGV2ZW50LCBtb0RhdGFMaXN0KVwiXG4gICAgICAgICAgICAoaW5wdXRUZXh0Q2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAob3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoZmRDb21ib2JveCwgJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1jb21ib2JveD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ0bnNUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgQGlmIChpdGVtLiRpc0xvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAyMHB4XCI+XG4gICAgICAgICAgICA8YnN1LW1hc2sgW3NpemVdPVwiJ3MnXCIgW3RvcF09XCInMTBweCdcIj48L2JzdS1tYXNrPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS4kTG9hZE1vcmUgPyBsb2FkTW9yZUJ1dHRvbiA6IHNob3dJdGVtOyBjb250ZXh0OiB7IHVsdjogdWx2QWRhcHRlciB8fCBVbHZVaSB9XCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRNb3JlQnV0dG9uIGxldC11bHY9XCJ1bHZcIj5cbiAgICAgICAgICAgIEBpZiAodWx2KSB7XG4gICAgICAgICAgICA8YnN1LXVsdi1wYWdpbmdcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QYWdpbmdDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BhZ2luZ1NldHRpbmddPVwidWx2LlNldHRpbmcuRGF0YS5QYWdpbmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9ic3UtdWx2LXBhZ2luZz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcbiAgICAgICAgKm5nSWY9XCJ1bHYgJiYgdWx2LlNldHRpbmcuRGF0YS5QYWdpbmcuUGFnZSArIDEgPCB1bHYuU2V0dGluZy5EYXRhLlBhZ2luZy5Ub3RhbFBhZ2VzXCJcbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJvblBhZ2VDaGFuZ2UyKHVsdi5TZXR0aW5nLkRhdGEuUGFnaW5nLCAkZXZlbnQpXCJcbiAgICAgICAgW2xhYmVsXT1cIidNb3JlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICA+PC9idXR0b24+IC0tPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dJdGVtPlxuICAgICAgICAgICAgQGlmIChhbGxDb2x1bW5zPy5sZW5ndGggJiYgIWl0ZW0uaXNFbXB0eSkgeyBAaWYgKCFpdGVtLiRfX0lzTGFzdCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vaW5mb3VsdiBkZXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICB9IEBpZiAoaXRlbS4kSWNvbikge1xuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aHVtYm5haWw+PGZkLWljb24gW2dseXBoXT1cIml0ZW0uJEljb25cIj48L2ZkLWljb24+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQgY2xhc3M9XCJtb2luZm91bHYgaGFzQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbGlzdC10aXRsZSBjbGFzcz1cInRpdGxlXCI+e3sgYWxsQ29sdW1uc1swXS5BbGlhcyB8IHJ2YWw6IGl0ZW06YWxsQ29sdW1uczp0cnVlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChhbGxDb2x1bW5zWzFdKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZSBjbGFzcz1cImJ5bGluZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBhbGxDb2x1bW5zWzFdLkFsaWFzIHwgcnZhbDogaXRlbTphbGxDb2x1bW5zOnRydWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDhweDsgZmxleC13cmFwOiB3cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBhbGxDb2x1bW5zOyB0cmFjayBjb2x1bW47IGxldCBpbmRleCA9ICRpbmRleCkgeyBAaWYgKGluZGV4ID4gMSkgeyBAaWYgKGNvbHVtbi5BbGlhc1xuICAgICAgICAgICAgICAgICAgICB8IHJ2YWw6IGl0ZW06YWxsQ29sdW1uczp0cnVlOyBhcyB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgY29sdW1uLkFsaWFzIH19Ont7IHZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9IH0gfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgW2NsYXNzLmxpc3QtZW1wdHktaXRlbV09XCJpdGVtLmlzRW1wdHlcIlxuICAgICAgICAgICAgICAgID57eyBpdGVtLmlzRW1wdHkgPyAoJ05vRGF0YScgfCBiYmJUcmFuc2xhdGUpIDogKGl0ZW0uJE1vQ2FwdGlvbiB8fCBpdGVtLiRDYXB0aW9uIHwgYmJiVHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { DeviceInfoFieldBaseComponent } from '../device-info-field-base';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
+
import * as i2 from "../barsa-monaco-editor/barsa-monaco-editor.component";
|
|
6
|
+
export class UiMonacoEditorComponent extends DeviceInfoFieldBaseComponent {
|
|
7
|
+
onValueChange(value) {
|
|
8
|
+
this.value = value;
|
|
9
|
+
this.context.value = value;
|
|
10
|
+
this.context.fireEvent('change', this, value, this.value);
|
|
11
|
+
}
|
|
12
|
+
_setValue(value) {
|
|
13
|
+
super._setValue(value);
|
|
14
|
+
if (this._editor) {
|
|
15
|
+
this._editor.setValue(value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiMonacoEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: UiMonacoEditorComponent, selector: "bsu-ui-monaco-editor", viewQueries: [{ propertyName: "_editor", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-monaco-editor\n #editor\n *untilInView=\"el\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n></bsu-barsa-monaco-editor>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i2.BarsaMonacoEditorComponent, selector: "bsu-barsa-monaco-editor", inputs: ["value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiMonacoEditorComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'bsu-ui-monaco-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-monaco-editor\n #editor\n *untilInView=\"el\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n></bsu-barsa-monaco-editor>\n", styles: [":host{display:block}\n"] }]
|
|
24
|
+
}], propDecorators: { _editor: [{
|
|
25
|
+
type: ViewChild,
|
|
26
|
+
args: ['editor', { static: false }]
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW9uYWNvLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tb25hY28tZWRpdG9yL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW9uYWNvLWVkaXRvci91aS1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBU3pFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw0QkFBNEI7SUFHckUsYUFBYSxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDa0IsU0FBUyxDQUFDLEtBQVU7UUFDbkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOzhHQWJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHNMQ1ZwQyxtS0FNQTs7MkZESWEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdQLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xuaW1wb3J0IHsgQmFyc2FNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9iYXJzYS1tb25hY28tZWRpdG9yL2JhcnNhLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW9uYWNvLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU1vbmFjb0VkaXRvckNvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBfZWRpdG9yOiBCYXJzYU1vbmFjb0VkaXRvckNvbXBvbmVudDtcblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRleHQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY2hhbmdlJywgdGhpcywgdmFsdWUsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxic3UtYmFyc2EtbW9uYWNvLWVkaXRvclxuICAgICNlZGl0b3JcbiAgICAqdW50aWxJblZpZXc9XCJlbFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbj48L2JzdS1iYXJzYS1tb25hY28tZWRpdG9yPlxuIl19
|