barsa-sap-ui 0.0.2
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/README.md +25 -0
- package/esm2020/barsa-sap-ui.mjs +5 -0
- package/esm2020/lib/apply-conditional-formmatings.directive.mjs +84 -0
- package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +109 -0
- package/esm2020/lib/barsa-base-layout/barsa-base-layout.component.mjs +34 -0
- package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
- package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +28 -0
- package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +77 -0
- package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +45 -0
- package/esm2020/lib/barsa-sap-ui-routing.module.mjs +17 -0
- package/esm2020/lib/barsa-sap-ui.module.mjs +277 -0
- package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +122 -0
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +57 -0
- package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +334 -0
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +120 -0
- package/esm2020/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +19 -0
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +156 -0
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +45 -0
- package/esm2020/lib/captcha-field/captcha-field.component.mjs +28 -0
- package/esm2020/lib/card-item/card-item.component.mjs +60 -0
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +23 -0
- package/esm2020/lib/col-renderer.directive.mjs +50 -0
- package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
- package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +60 -0
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +84 -0
- package/esm2020/lib/constants.mjs +413 -0
- package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +41 -0
- package/esm2020/lib/device-info-field-base.mjs +23 -0
- package/esm2020/lib/dynamic-page-size.pipe.mjs +26 -0
- package/esm2020/lib/empty-page/empty-page.component.mjs +38 -0
- package/esm2020/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +125 -0
- package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +38 -0
- package/esm2020/lib/form-page/form-page.component.mjs +51 -0
- package/esm2020/lib/form-page-base.mjs +129 -0
- package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +44 -0
- package/esm2020/lib/form-wizard/form-wizard.component.mjs +21 -0
- package/esm2020/lib/fullscreen-dialog.directive.mjs +40 -0
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +152 -0
- package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +203 -0
- package/esm2020/lib/global-search/global-search.component.mjs +26 -0
- package/esm2020/lib/global-search-module/global-search-module.component.mjs +30 -0
- package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +30 -0
- package/esm2020/lib/header-avatar/header-avatar.component.mjs +19 -0
- package/esm2020/lib/header-facet-form/header-facet-form.component.mjs +22 -0
- package/esm2020/lib/header-facet-key-value/header-facet-key-value.component.mjs +31 -0
- package/esm2020/lib/header-facet-microchart/header-facet-microchart.component.mjs +21 -0
- package/esm2020/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +28 -0
- package/esm2020/lib/header-facet-progress/header-facet-progress.component.mjs +26 -0
- package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +26 -0
- package/esm2020/lib/htree-create-new/htree-create-new.component.mjs +49 -0
- package/esm2020/lib/hyperlink/hyperlink.component.mjs +19 -0
- package/esm2020/lib/index.mjs +412 -0
- package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +65 -0
- package/esm2020/lib/layout-control/layout-control.component.mjs +214 -0
- package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +133 -0
- package/esm2020/lib/list-item/list-item.component.mjs +30 -0
- package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +37 -0
- package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +70 -0
- package/esm2020/lib/ly-label/ly-label.component.mjs +31 -0
- package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
- package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
- package/esm2020/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
- package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +64 -0
- package/esm2020/lib/ly-line/ly-line.component.mjs +56 -0
- package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +27 -0
- package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +43 -0
- package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +35 -0
- package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +49 -0
- package/esm2020/lib/manage-filters-report/manage-filters-report.component.mjs +45 -0
- package/esm2020/lib/mask/mask.component.mjs +22 -0
- package/esm2020/lib/message-strip/message-strip.component.mjs +28 -0
- package/esm2020/lib/models/grid-data-provider.mjs +219 -0
- package/esm2020/lib/models/grid-view.mjs +2 -0
- package/esm2020/lib/models/index.mjs +2 -0
- package/esm2020/lib/no-data/no-data.component.mjs +20 -0
- package/esm2020/lib/page-with-form-handler-base.mjs +42 -0
- package/esm2020/lib/page-with-header/page-with-header.component.mjs +76 -0
- package/esm2020/lib/progress-indicator/progress-indicator.component.mjs +18 -0
- package/esm2020/lib/report-navigator/report-navigator.component.mjs +62 -0
- package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
- package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +99 -0
- package/esm2020/lib/report-search-panel-save/report-search-panel-save.component.mjs +90 -0
- package/esm2020/lib/report-tree-base.mjs +405 -0
- package/esm2020/lib/report-view-renderer.directive.mjs +248 -0
- package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
- package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
- package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +35 -0
- package/esm2020/lib/sap-font-class.pipe.mjs +29 -0
- package/esm2020/lib/sap-font.pipe.mjs +29 -0
- package/esm2020/lib/sap-ui-report-base.component.mjs +689 -0
- package/esm2020/lib/search-panel/search-panel.component.mjs +40 -0
- package/esm2020/lib/static-text/static-text.component.mjs +15 -0
- package/esm2020/lib/title/title.component.mjs +15 -0
- package/esm2020/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +14 -0
- package/esm2020/lib/ui-button/ui-button.component.mjs +31 -0
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +46 -0
- package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +60 -0
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +27 -0
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +29 -0
- package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
- package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +34 -0
- package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +194 -0
- package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +116 -0
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +110 -0
- package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +61 -0
- package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +181 -0
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +43 -0
- package/esm2020/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.mjs +26 -0
- package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
- package/esm2020/lib/ui-graph/ui-graph.component.mjs +16 -0
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +25 -0
- package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +44 -0
- package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +67 -0
- package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +76 -0
- package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +59 -0
- package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +156 -0
- package/esm2020/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
- package/esm2020/lib/ui-label/ui-label.component.mjs +12 -0
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +299 -0
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +44 -0
- package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +125 -0
- package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
- package/esm2020/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +13 -0
- package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +46 -0
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +335 -0
- package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +18 -0
- package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +83 -0
- package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +24 -0
- package/esm2020/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
- package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +216 -0
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +95 -0
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +215 -0
- package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +24 -0
- package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +29 -0
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +46 -0
- package/esm2020/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
- package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +29 -0
- package/esm2020/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
- package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +106 -0
- package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +44 -0
- package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +47 -0
- package/esm2020/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +47 -0
- package/esm2020/lib/ui-time-span/ui-time-span.component.mjs +24 -0
- package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +69 -0
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +75 -0
- package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +24 -0
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +276 -0
- package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +26 -0
- package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +86 -0
- package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +117 -0
- package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +114 -0
- package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +44 -0
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
- package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +74 -0
- package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +183 -0
- package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
- package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +73 -0
- package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +66 -0
- package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +117 -0
- package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +44 -0
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +110 -0
- package/esm2020/lib/upload-file-status.pipe.mjs +28 -0
- package/esm2020/lib/wizard-layout.directive.mjs +102 -0
- package/esm2020/public-api.mjs +170 -0
- package/fesm2015/barsa-sap-ui.mjs +11437 -0
- package/fesm2015/barsa-sap-ui.mjs.map +1 -0
- package/fesm2020/barsa-sap-ui.mjs +11427 -0
- package/fesm2020/barsa-sap-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/apply-conditional-formmatings.directive.d.ts +25 -0
- package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +26 -0
- package/lib/barsa-base-layout/barsa-base-layout.component.d.ts +18 -0
- package/lib/barsa-date-time-picker/barsa-date-time-picker.component.d.ts +18 -0
- package/lib/barsa-list-file-linear/barsa-list-file-linear.component.d.ts +8 -0
- package/lib/barsa-monaco-editor/barsa-monaco-editor.component.d.ts +18 -0
- package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +13 -0
- package/lib/barsa-sap-ui-routing.module.d.ts +7 -0
- package/lib/barsa-sap-ui.module.d.ts +181 -0
- package/lib/barsa-search-form/barsa-search-form.component.d.ts +8 -0
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +37 -0
- package/lib/barsa-table-row/barsa-table-row.component.d.ts +20 -0
- package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +43 -0
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +48 -0
- package/lib/barsa-tree-item/node-has-one-depth-level.pipe.d.ts +8 -0
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +52 -0
- package/lib/breadcrumb/breadcrumb.component.d.ts +17 -0
- package/lib/captcha-field/captcha-field.component.d.ts +10 -0
- package/lib/card-item/card-item.component.d.ts +17 -0
- package/lib/card-view-content/card-view-content.component.d.ts +8 -0
- package/lib/col-renderer.directive.d.ts +12 -0
- package/lib/column-matrix-renderer/column-matrix-renderer.component.d.ts +23 -0
- package/lib/column-matrix-renderer/matrix-value.pipe.d.ts +8 -0
- package/lib/column-renderer/column-renderer.component.d.ts +29 -0
- package/lib/constants.d.ts +6 -0
- package/lib/custom-date-time/custom-date-time.component.d.ts +26 -0
- package/lib/device-info-field-base.d.ts +12 -0
- package/lib/dynamic-page-size.pipe.d.ts +8 -0
- package/lib/empty-page/empty-page.component.d.ts +11 -0
- package/lib/file-in-dialog/file-in-dialog.component.d.ts +16 -0
- package/lib/form-dialog/form-dialog.component.d.ts +40 -0
- package/lib/form-dialog-less/form-dialog-less.component.d.ts +27 -0
- package/lib/form-page/form-page.component.d.ts +17 -0
- package/lib/form-page-base.d.ts +26 -0
- package/lib/form-toolbar-button/form-toolbar-button.component.d.ts +18 -0
- package/lib/form-wizard/form-wizard.component.d.ts +8 -0
- package/lib/fullscreen-dialog.directive.d.ts +14 -0
- package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +58 -0
- package/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.d.ts +18 -0
- package/lib/global-search/global-search.component.d.ts +12 -0
- package/lib/global-search-module/global-search-module.component.d.ts +18 -0
- package/lib/global-search-panel/global-search-panel.component.d.ts +11 -0
- package/lib/header-avatar/header-avatar.component.d.ts +8 -0
- package/lib/header-facet-form/header-facet-form.component.d.ts +9 -0
- package/lib/header-facet-key-value/header-facet-key-value.component.d.ts +11 -0
- package/lib/header-facet-microchart/header-facet-microchart.component.d.ts +8 -0
- package/lib/header-facet-plain-text/header-facet-plain-text.component.d.ts +11 -0
- package/lib/header-facet-progress/header-facet-progress.component.d.ts +11 -0
- package/lib/header-facet-rate/header-facet-rate.component.d.ts +11 -0
- package/lib/htree-create-new/htree-create-new.component.d.ts +13 -0
- package/lib/hyperlink/hyperlink.component.d.ts +7 -0
- package/lib/index.d.ts +85 -0
- package/lib/inline-save-and-cancel/inline-save-and-cancel.component.d.ts +11 -0
- package/lib/layout-actions/layout-actions.component.d.ts +23 -0
- package/lib/layout-control/layout-control.component.d.ts +65 -0
- package/lib/layout-wizard/layout-wizard.component.d.ts +27 -0
- package/lib/list-item/list-item.component.d.ts +13 -0
- package/lib/ly-empty-space/ly-empty-space.component.d.ts +14 -0
- package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +22 -0
- package/lib/ly-label/ly-label.component.d.ts +15 -0
- package/lib/ly-layout-container/ly-layout-container.component.d.ts +26 -0
- package/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.d.ts +8 -0
- package/lib/ly-layout-field-label/ly-layout-field-label.component.d.ts +13 -0
- package/lib/ly-layout-panel/ly-layout-panel.component.d.ts +25 -0
- package/lib/ly-line/ly-line.component.d.ts +17 -0
- package/lib/ly-simple-label/ly-simple-label.component.d.ts +11 -0
- package/lib/ly-tab-container/ly-tab-container.component.d.ts +16 -0
- package/lib/ly-tab-page/ly-tab-page.component.d.ts +18 -0
- package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +18 -0
- package/lib/manage-filters-report/manage-filters-report.component.d.ts +24 -0
- package/lib/mask/mask.component.d.ts +9 -0
- package/lib/message-strip/message-strip.component.d.ts +11 -0
- package/lib/models/grid-data-provider.d.ts +26 -0
- package/lib/models/grid-view.d.ts +64 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/no-data/no-data.component.d.ts +8 -0
- package/lib/page-with-form-handler-base.d.ts +10 -0
- package/lib/page-with-header/page-with-header.component.d.ts +29 -0
- package/lib/progress-indicator/progress-indicator.component.d.ts +8 -0
- package/lib/report-navigator/report-navigator.component.d.ts +21 -0
- package/lib/report-new-top-form/report-new-top-form.component.d.ts +18 -0
- package/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.d.ts +14 -0
- package/lib/report-search-fields-manage/report-search-fields-manage.component.d.ts +20 -0
- package/lib/report-search-panel-save/report-search-panel-save.component.d.ts +27 -0
- package/lib/report-tree-base.d.ts +61 -0
- package/lib/report-view-renderer.directive.d.ts +82 -0
- package/lib/responsive-toolbar/responsive-toolbar.component.d.ts +19 -0
- package/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.d.ts +24 -0
- package/lib/rich-text-static/rich-text-static.component.d.ts +24 -0
- package/lib/sap-font-class.pipe.d.ts +8 -0
- package/lib/sap-font.pipe.d.ts +9 -0
- package/lib/sap-ui-report-base.component.d.ts +133 -0
- package/lib/search-panel/search-panel.component.d.ts +13 -0
- package/lib/static-text/static-text.component.d.ts +7 -0
- package/lib/title/title.component.d.ts +7 -0
- package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +7 -0
- package/lib/ui-button/ui-button.component.d.ts +11 -0
- package/lib/ui-calendar/ui-calendar.component.d.ts +16 -0
- package/lib/ui-card-view/ui-card-view.component.d.ts +16 -0
- package/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.d.ts +9 -0
- package/lib/ui-check-box/ui-check-box.component.d.ts +12 -0
- package/lib/ui-color-ui/ui-color-ui.component.d.ts +16 -0
- package/lib/ui-container-with-button/ui-container-with-button.component.d.ts +11 -0
- package/lib/ui-date-range-ex/ui-date-range-ex.component.d.ts +36 -0
- package/lib/ui-date-time/ui-date-time.component.d.ts +24 -0
- package/lib/ui-editable-grid/ui-editable-grid.component.d.ts +43 -0
- package/lib/ui-exception-form/ui-exception-form.component.d.ts +16 -0
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +51 -0
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +24 -0
- package/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.d.ts +13 -0
- package/lib/ui-gantt-chart/ui-gantt-chart.component.d.ts +15 -0
- package/lib/ui-graph/ui-graph.component.d.ts +9 -0
- package/lib/ui-grid/ui-grid.component.d.ts +12 -0
- package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +14 -0
- package/lib/ui-grid-filter-item/ui-grid-filter-item.component.d.ts +19 -0
- package/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.d.ts +24 -0
- package/lib/ui-grid-sort-item/ui-grid-sort-item.component.d.ts +25 -0
- package/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.d.ts +28 -0
- package/lib/ui-info-bar-panel/ui-info-bar-panel.component.d.ts +5 -0
- package/lib/ui-label/ui-label.component.d.ts +6 -0
- package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +62 -0
- package/lib/ui-list-view/ui-list-view.component.d.ts +15 -0
- package/lib/ui-matrix-view/ui-matrix-view.component.d.ts +45 -0
- package/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.d.ts +7 -0
- package/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.d.ts +6 -0
- package/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.d.ts +13 -0
- package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +78 -0
- package/lib/ui-monaco-editor/ui-monaco-editor.component.d.ts +7 -0
- package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +21 -0
- package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +11 -0
- package/lib/ui-num-int-ui/ui-num-int-ui.component.d.ts +10 -0
- package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +63 -0
- package/lib/ui-picture-file/ui-picture-file.component.d.ts +27 -0
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +68 -0
- package/lib/ui-radio-group/ui-radio-group.component.d.ts +9 -0
- package/lib/ui-read-only-field/ui-read-only-field.component.d.ts +11 -0
- package/lib/ui-report-container/ui-report-container.component.d.ts +17 -0
- package/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.d.ts +9 -0
- package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +13 -0
- package/lib/ui-single-picture/ui-single-picture.component.d.ts +13 -0
- package/lib/ui-switch-button/ui-switch-button.component.d.ts +11 -0
- package/lib/ui-table-view/ui-table-view.component.d.ts +29 -0
- package/lib/ui-text-area/ui-text-area.component.d.ts +15 -0
- package/lib/ui-text-field/ui-text-field.component.d.ts +14 -0
- package/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.d.ts +13 -0
- package/lib/ui-time-span/ui-time-span.component.d.ts +10 -0
- package/lib/ui-tinymce/ui-tinymce.component.d.ts +17 -0
- package/lib/ui-tree/ui-tree.component.d.ts +32 -0
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +41 -0
- package/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.d.ts +9 -0
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +67 -0
- package/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.d.ts +16 -0
- package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +20 -0
- package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +48 -0
- package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +41 -0
- package/lib/ul-toast-adapter/ul-toast-adapter.component.d.ts +13 -0
- package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +19 -0
- package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +24 -0
- package/lib/ulv-filter-settings/ulv-filter-settings.component.d.ts +19 -0
- package/lib/ulv-form-multi-select/ulv-form-multi-select.component.d.ts +26 -0
- package/lib/ulv-groupby-settings/ulv-groupby-settings.component.d.ts +16 -0
- package/lib/ulv-paging/ulv-paging.component.d.ts +27 -0
- package/lib/ulv-selection/ulv-selection.component.d.ts +43 -0
- package/lib/ulv-settings/ulv-settings.component.d.ts +43 -0
- package/lib/ulv-sort-settings/ulv-sort-settings.component.d.ts +16 -0
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +47 -0
- package/lib/upload-file-status.pipe.d.ts +9 -0
- package/lib/wizard-layout.directive.d.ts +39 -0
- package/package.json +31 -0
- package/public-api.d.ts +166 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { BarsaApi, BaseComponent, UlvMainService } from 'barsa-novin-ray-core';
|
|
4
|
+
import { ManageFiltersReportComponent } from '../manage-filters-report/manage-filters-report.component';
|
|
5
|
+
import { SearchPanelComponent } from '../search-panel/search-panel.component';
|
|
6
|
+
import { ReportSearchFieldsHiddenSettingsComponent } from '../report-search-fields-hidden-settings/report-search-fields-hidden-settings.component';
|
|
7
|
+
import { ReportSearchPanelSaveComponent } from '../report-search-panel-save/report-search-panel-save.component';
|
|
8
|
+
import { ReportSearchFieldsManageComponent } from '../report-search-fields-manage/report-search-fields-manage.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
11
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
12
|
+
import * as i3 from "@angular/router";
|
|
13
|
+
import * as i4 from "../barsa-ulv-main/barsa-ulv-main.component";
|
|
14
|
+
import * as i5 from "@angular/common";
|
|
15
|
+
export class UiUlvMainUiComponent extends BaseComponent {
|
|
16
|
+
constructor(_dialogService, _ulvMainService, el, _router, _portalService, _cdr, contentDensityService, _bradcrumbService) {
|
|
17
|
+
super();
|
|
18
|
+
this._dialogService = _dialogService;
|
|
19
|
+
this._ulvMainService = _ulvMainService;
|
|
20
|
+
this.el = el;
|
|
21
|
+
this._router = _router;
|
|
22
|
+
this._portalService = _portalService;
|
|
23
|
+
this._cdr = _cdr;
|
|
24
|
+
this.firstApplyAutomatically = true;
|
|
25
|
+
this.defaultDialogConfig = {
|
|
26
|
+
verticalPadding: true,
|
|
27
|
+
responsivePadding: true,
|
|
28
|
+
resizable: true,
|
|
29
|
+
minWidth: '50rem',
|
|
30
|
+
bodyMinHeight: 'calc(50vh - 88px)'
|
|
31
|
+
};
|
|
32
|
+
this.contentDensity$ = contentDensityService.contentDensity;
|
|
33
|
+
this.rtl$ = _portalService.rtl$;
|
|
34
|
+
this.breadCrumbs$ = _bradcrumbService.breadcrumbs$;
|
|
35
|
+
}
|
|
36
|
+
set searchPanelComponent(val) {
|
|
37
|
+
if (val) {
|
|
38
|
+
this.searchPanelLoaded = true;
|
|
39
|
+
}
|
|
40
|
+
this._cdr.detectChanges();
|
|
41
|
+
}
|
|
42
|
+
set fullscreen(val) {
|
|
43
|
+
this._ulvMainService.setFullscreen(val);
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
super.ngOnInit();
|
|
47
|
+
this._ulvMainService.setInDialog(this.inDialog);
|
|
48
|
+
// fromEvent(document, 'click')
|
|
49
|
+
// .pipe(takeUntil(this._onDestroy$))
|
|
50
|
+
// .subscribe((e) => {
|
|
51
|
+
// if (
|
|
52
|
+
// e.target &&
|
|
53
|
+
// this.el.nativeElement !== e.target &&
|
|
54
|
+
// !this.el.nativeElement.contains(e.target) &&
|
|
55
|
+
// document.body.contains(e.target as HTMLElement)
|
|
56
|
+
// ) {
|
|
57
|
+
// this._ulvMainService.setInlineEdit(false);
|
|
58
|
+
// }
|
|
59
|
+
// });
|
|
60
|
+
this._removeBugInChromeCssActive();
|
|
61
|
+
this.marginUlv = !this.isReportPage;
|
|
62
|
+
if (!this.context.Setting.SearchPanel) {
|
|
63
|
+
this.searchPanelLoaded = true;
|
|
64
|
+
}
|
|
65
|
+
this.isAnonymous$ = this._portalService.isAnonymous$;
|
|
66
|
+
this.hideSearchPanel$ = this._ulvMainService.hideSearchpanel$;
|
|
67
|
+
this.title = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters.Title', '');
|
|
68
|
+
this._ulvMainService.setContext(this.context);
|
|
69
|
+
this._ulvMainService.setLayoutInfo(this.layoutInfo);
|
|
70
|
+
this._ulvMainService.loadSearchPanelSettings();
|
|
71
|
+
this.mask$ = this._ulvMainService.mask$;
|
|
72
|
+
this.viwerMask$ = this._ulvMainService.viwerMask$;
|
|
73
|
+
this.pagingSetting$ = this._ulvMainService.pagingSetting$;
|
|
74
|
+
this.searchPanelMoChanged$ = this._ulvMainService.searchPanelMoChanged$;
|
|
75
|
+
this.hasSearchPanel = this._ulvMainService.searchPanelUi !== null;
|
|
76
|
+
this.searchPanelUi$ = this._ulvMainService.searchPanelUi$;
|
|
77
|
+
this.reportId$ = this._ulvMainService.reportId$;
|
|
78
|
+
this._ulvMainService.readonly$.subscribe((readonly) => {
|
|
79
|
+
this.readonly = readonly;
|
|
80
|
+
});
|
|
81
|
+
this._ulvMainService.enable$.subscribe((enable) => {
|
|
82
|
+
this.disable = !enable;
|
|
83
|
+
});
|
|
84
|
+
this._ulvMainService.selectedSearchPanelSettings$
|
|
85
|
+
.pipe(takeUntil(this._onDestroy$), distinctUntilChanged((a, b) => a?.Title === b?.Title))
|
|
86
|
+
.subscribe((selectedSearchPanelSettings) => {
|
|
87
|
+
this.selectedSearchPanelSettings = selectedSearchPanelSettings;
|
|
88
|
+
this._ulvMainService.applySearchPanelSettings(selectedSearchPanelSettings);
|
|
89
|
+
this._ulvMainService.toggleHideSearchpanel(selectedSearchPanelSettings?.HideSearchPanel);
|
|
90
|
+
});
|
|
91
|
+
this.viewer$ = this._ulvMainService.viewer$;
|
|
92
|
+
this.allSearchPanelSettings$ = this._ulvMainService.allSearchPanelSettings$;
|
|
93
|
+
this.selectedSearchPanelSettings$ = this._ulvMainService.selectedSearchPanelSettings$;
|
|
94
|
+
this.selectedSearchPanelSettingsId$ = this._ulvMainService.selectedSearchPanelSettingsId$;
|
|
95
|
+
this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
|
|
96
|
+
}
|
|
97
|
+
onClose() {
|
|
98
|
+
this._router.navigate(['/home']);
|
|
99
|
+
}
|
|
100
|
+
onSearchPanelMoChanged() {
|
|
101
|
+
this._setSearchPanelMoChanged(true);
|
|
102
|
+
}
|
|
103
|
+
onOpenManageFilters() {
|
|
104
|
+
this._dialogService.open(ManageFiltersReportComponent, {
|
|
105
|
+
backdropClickCloseable: true,
|
|
106
|
+
draggable: false,
|
|
107
|
+
escKeyCloseable: true,
|
|
108
|
+
hasBackdrop: false,
|
|
109
|
+
focusTrapped: true
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
onCollapsedChange(collapsed) {
|
|
113
|
+
this._ulvMainService.toggleHideSearchpanel(collapsed);
|
|
114
|
+
this._ulvMainService.searchPanelMoChanged(true);
|
|
115
|
+
}
|
|
116
|
+
onHideSearchPanelClick() {
|
|
117
|
+
this._ulvMainService.toggleHideSearchpanel();
|
|
118
|
+
this._ulvMainService.searchPanelMoChanged(true);
|
|
119
|
+
}
|
|
120
|
+
onFilterSave() {
|
|
121
|
+
this._saveFilter();
|
|
122
|
+
}
|
|
123
|
+
onFilterSaveAs() {
|
|
124
|
+
this._openSaveAsFilter();
|
|
125
|
+
}
|
|
126
|
+
onShowFilterFieldsSetting() {
|
|
127
|
+
this._openSearchFieldsHiddenSettings();
|
|
128
|
+
}
|
|
129
|
+
onManageFilters() {
|
|
130
|
+
this._openSearchFiltersManage();
|
|
131
|
+
}
|
|
132
|
+
onClearSearch() {
|
|
133
|
+
this._ulvMainService.clearSearch();
|
|
134
|
+
}
|
|
135
|
+
onSearch() {
|
|
136
|
+
this._ulvMainService.search();
|
|
137
|
+
}
|
|
138
|
+
onSelectSearchPanelSettings(selectedSearchPanelSettingsId) {
|
|
139
|
+
this._ulvMainService.changeSelectedSearchPanel(selectedSearchPanelSettingsId);
|
|
140
|
+
}
|
|
141
|
+
_removeBugInChromeCssActive() {
|
|
142
|
+
if (BarsaApi.Common.Util.RemoveBugInChromeCssActive) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
let list = [];
|
|
146
|
+
const h = document.head.children;
|
|
147
|
+
for (let i = 0; i < h.length; i++) {
|
|
148
|
+
list[i] = {
|
|
149
|
+
i,
|
|
150
|
+
n: h[i],
|
|
151
|
+
a: h[i].innerHTML
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
list = list.reverse();
|
|
155
|
+
/* eslint-disable */
|
|
156
|
+
const t = `.fd-table__cell--activable:active *,.fd-table__row--activable.is-active *,.fd-table__row--activable:active *{color:var(--sapList_Active_TextColor)!important}`;
|
|
157
|
+
/* eslint-enable */
|
|
158
|
+
const f = list.filter((c) => c.a.indexOf(t) >= 0);
|
|
159
|
+
if (f.length > 0) {
|
|
160
|
+
BarsaApi.Common.Util.RemoveBugInChromeCssActive = true;
|
|
161
|
+
f[0].n.innerHTML = f[0].a.slice(0, 10058) + f[0].a.slice(10058 + t.length, f[0].a.length);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
_setSearchPanelMoChanged(change) {
|
|
165
|
+
this._ulvMainService.searchPanelMoChanged(change);
|
|
166
|
+
}
|
|
167
|
+
_openSearchFieldsHiddenSettings() {
|
|
168
|
+
const fieldsSetting = this._ulvMainService.getSearchPanelFieldsSetting();
|
|
169
|
+
const config = {
|
|
170
|
+
...this.defaultDialogConfig,
|
|
171
|
+
minWidth: '25rem',
|
|
172
|
+
data: {
|
|
173
|
+
fields: [...fieldsSetting]
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
const dialogRef = this._dialogService.open(ReportSearchFieldsHiddenSettingsComponent, config);
|
|
177
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((setting) => {
|
|
178
|
+
if (setting) {
|
|
179
|
+
this._ulvMainService.setAndApplySearchPanelSettingFieldsSetting(setting);
|
|
180
|
+
this._ulvMainService.searchPanelMoChanged(true);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
_openSaveAsFilter() {
|
|
185
|
+
const searchMo = this._ulvMainService.getSearchPanelMo();
|
|
186
|
+
const selectedSearchPanelSettings = this.selectedSearchPanelSettings;
|
|
187
|
+
const fieldsSetting = selectedSearchPanelSettings?.FieldsSetting;
|
|
188
|
+
const config = {
|
|
189
|
+
...this.defaultDialogConfig,
|
|
190
|
+
minWidth: '25rem',
|
|
191
|
+
resizable: false,
|
|
192
|
+
data: {
|
|
193
|
+
searchMo,
|
|
194
|
+
fieldsSetting,
|
|
195
|
+
reportId: this._ulvMainService.reportId
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
const dialogRef = this._dialogService.open(ReportSearchPanelSaveComponent, config);
|
|
199
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((searchPanelSetting) => {
|
|
200
|
+
if (searchPanelSetting) {
|
|
201
|
+
searchPanelSetting.HideSearchPanel = this._ulvMainService.hideSearchpanel;
|
|
202
|
+
this._ulvMainService.addSearchPanelSettings(searchPanelSetting);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
_saveFilter() {
|
|
207
|
+
const selectedSearchPanelSettings = this.selectedSearchPanelSettings;
|
|
208
|
+
if (selectedSearchPanelSettings) {
|
|
209
|
+
selectedSearchPanelSettings.HideSearchPanel = this._ulvMainService.hideSearchpanel;
|
|
210
|
+
this._ulvMainService.saveSearchPanelSetting(selectedSearchPanelSettings);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
_openSearchFiltersManage() {
|
|
214
|
+
const allSearchPanelSettings = this._ulvMainService.allSearchPanelSettings;
|
|
215
|
+
const reportId = this._ulvMainService.reportId;
|
|
216
|
+
const config = {
|
|
217
|
+
...this.defaultDialogConfig,
|
|
218
|
+
responsivePadding: false,
|
|
219
|
+
verticalPadding: false,
|
|
220
|
+
data: {
|
|
221
|
+
allSearchPanelSettings: allSearchPanelSettings.map((c) => ({
|
|
222
|
+
Title: c.Title,
|
|
223
|
+
IsDefault: c.IsDefault,
|
|
224
|
+
IsPublic: c.IsPublic,
|
|
225
|
+
IsPrimary: !!c.IsPrimary,
|
|
226
|
+
ApplyAutomatically: c.ApplyAutomatically,
|
|
227
|
+
ReportId: reportId,
|
|
228
|
+
Id: c.Id
|
|
229
|
+
}))
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
const dialogRef = this._dialogService.open(ReportSearchFieldsManageComponent, config);
|
|
233
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((setting) => {
|
|
234
|
+
if (setting) {
|
|
235
|
+
setting
|
|
236
|
+
.filter((c) => !c.IsPrimary)
|
|
237
|
+
.forEach((newSetting) => {
|
|
238
|
+
const sps = allSearchPanelSettings.find((c) => c.Id === newSetting.Id);
|
|
239
|
+
if (sps) {
|
|
240
|
+
BarsaApi.Common.Merger.Merge(sps, newSetting);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
this._ulvMainService.updateSearchPanelSettings(allSearchPanelSettings);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
UiUlvMainUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiUlvMainUiComponent, deps: [{ token: i1.DialogService }, { token: i2.UlvMainService }, { token: i0.ElementRef }, { token: i3.Router }, { token: i2.PortalService }, { token: i0.ChangeDetectorRef }, { token: i1.ContentDensityService }, { token: i2.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
|
|
249
|
+
UiUlvMainUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: { context: "context", isReportPage: "isReportPage", inDialog: "inDialog", layoutInfo: "layoutInfo", fullscreen: "fullscreen" }, host: { properties: { "class.control-readonly": "this.readonly", "class.control-disabled": "this.disable", "class.margin-ulv": "this.marginUlv" } }, providers: [UlvMainService], viewQueries: [{ propertyName: "searchPanelComponent", first: true, predicate: SearchPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-ulv-main\n [attr.isReportPage]=\"isReportPage\"\n [viewerControl]=\"viewer$ | async\"\n [loading]=\"(mask$ | async) === true\"\n [viewerLoading]=\"(viwerMask$ | async) === true\"\n [isReportPage]=\"isReportPage\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [title]=\"title\"\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\n [context]=\"context\"\n [contentDensity]=\"contentDensity$ | async\"\n (close)=\"onClose()\"\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\n (openManageFilters)=\"onOpenManageFilters()\"\n (collapsedChange)=\"onCollapsedChange($event)\"\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\n (filterSave)=\"onFilterSave()\"\n (filterSaveAs)=\"onFilterSaveAs()\"\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\n (manageFilters)=\"onManageFilters()\"\n (clearSearch)=\"onClearSearch()\"\n (search)=\"onSearch()\"\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\n>\n</bsu-barsa-ulv-main>\n", styles: [":host{width:100%;height:100%;display:flex;flex-direction:column;cursor:default}:host ::ng-deep bsu-barsa-ulv-main[isReportPage=true] bsu-barsa-asp-viewer{height:100vh!important}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"], dependencies: [{ kind: "component", type: i4.BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: ["viewerControl", "loading", "viewerLoading", "isReportPage", "deviceSize", "title", "searchPanelUi", "breadCrumbs", "allSearchPanelSettings", "isAnonymous", "rtl", "selectedSearchPanelSettings", "searchPanelMoChanged", "selectedSearchPanelSettingsId", "hideSearchPanel", "pagingSetting", "contentDensity", "context"], outputs: ["close", "searchPanelMoChange", "openManageFilters", "collapsedChange", "hideSearchPanelClick", "filterSave", "filterSaveAs", "showFilterFieldsSetting", "manageFilters", "clearSearch", "search", "selectSearchPanelSettings"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiUlvMainUiComponent, decorators: [{
|
|
251
|
+
type: Component,
|
|
252
|
+
args: [{ selector: 'bsu-ui-ulv-main-ui', providers: [UlvMainService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-ulv-main\n [attr.isReportPage]=\"isReportPage\"\n [viewerControl]=\"viewer$ | async\"\n [loading]=\"(mask$ | async) === true\"\n [viewerLoading]=\"(viwerMask$ | async) === true\"\n [isReportPage]=\"isReportPage\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [title]=\"title\"\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\n [context]=\"context\"\n [contentDensity]=\"contentDensity$ | async\"\n (close)=\"onClose()\"\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\n (openManageFilters)=\"onOpenManageFilters()\"\n (collapsedChange)=\"onCollapsedChange($event)\"\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\n (filterSave)=\"onFilterSave()\"\n (filterSaveAs)=\"onFilterSaveAs()\"\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\n (manageFilters)=\"onManageFilters()\"\n (clearSearch)=\"onClearSearch()\"\n (search)=\"onSearch()\"\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\n>\n</bsu-barsa-ulv-main>\n", styles: [":host{width:100%;height:100%;display:flex;flex-direction:column;cursor:default}:host ::ng-deep bsu-barsa-ulv-main[isReportPage=true] bsu-barsa-asp-viewer{height:100vh!important}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"] }]
|
|
253
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.UlvMainService }, { type: i0.ElementRef }, { type: i3.Router }, { type: i2.PortalService }, { type: i0.ChangeDetectorRef }, { type: i1.ContentDensityService }, { type: i2.BreadcrumbService }]; }, propDecorators: { context: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], isReportPage: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], inDialog: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], layoutInfo: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], readonly: [{
|
|
262
|
+
type: HostBinding,
|
|
263
|
+
args: ['class.control-readonly']
|
|
264
|
+
}], disable: [{
|
|
265
|
+
type: HostBinding,
|
|
266
|
+
args: ['class.control-disabled']
|
|
267
|
+
}], marginUlv: [{
|
|
268
|
+
type: HostBinding,
|
|
269
|
+
args: ['class.margin-ulv']
|
|
270
|
+
}], searchPanelComponent: [{
|
|
271
|
+
type: ViewChild,
|
|
272
|
+
args: [SearchPanelComponent]
|
|
273
|
+
}], fullscreen: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}] } });
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LW1haW4tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGNBQWMsRUFRakIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUNuSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7OztBQVN6SCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQWdEbkQsWUFDWSxjQUE2QixFQUM3QixlQUErQixFQUNoQyxFQUFjLEVBQ2IsT0FBZSxFQUNmLGNBQTZCLEVBQzdCLElBQXVCLEVBQy9CLHFCQUE0QyxFQUM1QyxpQkFBb0M7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFUQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3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ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIFVsdk1haW5TZXJ2aWNlLFxuICAgIFBhZ2luZ1NldHRpbmcsXG4gICAgUG9ydGFsU2VydmljZSxcbiAgICBTZWFyY2hQYW5lbFNldHRpbmdzLFxuICAgIEJyZWFkQ3J1bWJJbmZvLFxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIENvbHVtbkluZm9UeXBlLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbmltcG9ydCB7IE1hbmFnZUZpbHRlcnNSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9tYW5hZ2UtZmlsdGVycy1yZXBvcnQvbWFuYWdlLWZpbHRlcnMtcmVwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1wYW5lbC9zZWFyY2gtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtaGlkZGVuLXNldHRpbmdzL3JlcG9ydC1zZWFyY2gtZmllbGRzLWhpZGRlbi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0U2VhcmNoRmllbGRzTWFuYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS11bHYtbWFpbi11aScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXVsdi1tYWluLXVpLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS11bHYtbWFpbi11aS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1Vsdk1haW5TZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVVsdk1haW5VaUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBASW5wdXQoKSBpc1JlcG9ydFBhZ2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogYW55O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250cm9sLXJlYWRvbmx5JykgcmVhZG9ubHk7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250cm9sLWRpc2FibGVkJykgZGlzYWJsZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hcmdpbi11bHYnKSBtYXJnaW5VbHY7XG4gICAgQFZpZXdDaGlsZChTZWFyY2hQYW5lbENvbXBvbmVudClcbiAgICBzZXQgc2VhcmNoUGFuZWxDb21wb25lbnQodmFsKSB7XG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUGFuZWxMb2FkZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBmdWxsc2NyZWVuKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRGdWxsc2NyZWVuKHZhbCk7XG4gICAgfVxuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nczogU2VhcmNoUGFuZWxTZXR0aW5ncyB8IHVuZGVmaW5lZDtcbiAgICBmaXJzdEFwcGx5QXV0b21hdGljYWxseSA9IHRydWU7XG4gICAgbWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdml3ZXJNYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB2aWV3ZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgcGFnaW5nU2V0dGluZyQ6IE9ic2VydmFibGU8UGFnaW5nU2V0dGluZyB8IG51bGw+O1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgc2VhcmNoUGFuZWxVaSQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBoaWRlU2VhcmNoUGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcmVwb3J0SWQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgc2VhcmNoUGFuZWxNb0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkOiBPYnNlcnZhYmxlPFNlYXJjaFBhbmVsU2V0dGluZ3NbXT47XG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJDogT2JzZXJ2YWJsZTxTZWFyY2hQYW5lbFNldHRpbmdzIHwgdW5kZWZpbmVkPjtcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTxBYmJyZXZhdGlvbkRldmljZVNpemU+O1xuICAgIGJyZWFkQ3J1bWJzJDogT2JzZXJ2YWJsZTxCcmVhZENydW1iSW5mb1tdPjtcbiAgICBzZWFyY2hQYW5lbExvYWRlZDogYm9vbGVhbjtcbiAgICBpc0Fub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoYXNTZWFyY2hQYW5lbDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgZGVmYXVsdERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBtaW5XaWR0aDogJzUwcmVtJyxcbiAgICAgICAgYm9keU1pbkhlaWdodDogJ2NhbGMoNTB2aCAtIDg4cHgpJ1xuICAgIH07XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3Vsdk1haW5TZXJ2aWNlOiBVbHZNYWluU2VydmljZSxcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIF9icmFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IGNvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcbiAgICAgICAgdGhpcy5ydGwkID0gX3BvcnRhbFNlcnZpY2UucnRsJDtcbiAgICAgICAgdGhpcy5icmVhZENydW1icyQgPSBfYnJhZGNydW1iU2VydmljZS5icmVhZGNydW1icyQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldEluRGlhbG9nKHRoaXMuaW5EaWFsb2cpO1xuICAgICAgICAvLyBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgIC8vICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaWYgKFxuICAgICAgICAvLyAgICAgICAgICAgICBlLnRhcmdldCAmJlxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgIT09IGUudGFyZ2V0ICYmXG4gICAgICAgIC8vICAgICAgICAgICAgICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpICYmXG4gICAgICAgIC8vICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY29udGFpbnMoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAgIC8vICAgICAgICAgKSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldElubGluZUVkaXQoZmFsc2UpO1xuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICB0aGlzLl9yZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSgpO1xuICAgICAgICB0aGlzLm1hcmdpblVsdiA9ICF0aGlzLmlzUmVwb3J0UGFnZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRleHQuU2V0dGluZy5TZWFyY2hQYW5lbCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQYW5lbExvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0Fub255bW91cyQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmlzQW5vbnltb3VzJDtcbiAgICAgICAgdGhpcy5oaWRlU2VhcmNoUGFuZWwkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVNlYXJjaHBhbmVsJDtcblxuICAgICAgICB0aGlzLnRpdGxlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuVGl0bGUnLCAnJyk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldENvbnRleHQodGhpcy5jb250ZXh0KTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0TGF5b3V0SW5mbyh0aGlzLmxheW91dEluZm8pO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5sb2FkU2VhcmNoUGFuZWxTZXR0aW5ncygpO1xuICAgICAgICB0aGlzLm1hc2skID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubWFzayQ7XG4gICAgICAgIHRoaXMudml3ZXJNYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnZpd2VyTWFzayQ7XG4gICAgICAgIHRoaXMucGFnaW5nU2V0dGluZyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5wYWdpbmdTZXR0aW5nJDtcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbE1vQ2hhbmdlZCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCQ7XG4gICAgICAgIHRoaXMuaGFzU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbFVpICE9PSBudWxsO1xuICAgICAgICB0aGlzLnNlYXJjaFBhbmVsVWkkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxVaSQ7XG4gICAgICAgIHRoaXMucmVwb3J0SWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucmVwb3J0SWQkO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZWFkb25seSQuc3Vic2NyaWJlKChyZWFkb25seSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuZW5hYmxlJC5zdWJzY3JpYmUoKGVuYWJsZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlID0gIWVuYWJsZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYT8uVGl0bGUgPT09IGI/LlRpdGxlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuYXBwbHlTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uSGlkZVNlYXJjaFBhbmVsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpZXdlciQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aWV3ZXIkO1xuICAgICAgICB0aGlzLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkO1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy9ob21lJ10pO1xuICAgIH1cbiAgICBvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRTZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcbiAgICB9XG5cbiAgICBvbk9wZW5NYW5hZ2VGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oTWFuYWdlRmlsdGVyc1JlcG9ydENvbXBvbmVudCwge1xuICAgICAgICAgICAgYmFja2Ryb3BDbGlja0Nsb3NlYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IHRydWUsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBmb2N1c1RyYXBwZWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvZ2dsZUhpZGVTZWFyY2hwYW5lbChjb2xsYXBzZWQpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcbiAgICB9XG4gICAgb25IaWRlU2VhcmNoUGFuZWxDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKCk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKHRydWUpO1xuICAgIH1cblxuICAgIG9uRmlsdGVyU2F2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2F2ZUZpbHRlcigpO1xuICAgIH1cblxuICAgIG9uRmlsdGVyU2F2ZUFzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcGVuU2F2ZUFzRmlsdGVyKCk7XG4gICAgfVxuXG4gICAgb25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3BlblNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzKCk7XG4gICAgfVxuXG4gICAgb25NYW5hZ2VGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRmlsdGVyc01hbmFnZSgpO1xuICAgIH1cblxuICAgIG9uQ2xlYXJTZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNsZWFyU2VhcmNoKCk7XG4gICAgfVxuXG4gICAgb25TZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaCgpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNoYW5nZVNlbGVjdGVkU2VhcmNoUGFuZWwoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKEJhcnNhQXBpLkNvbW1vbi5VdGlsLlJlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxpc3Q6IHsgaTogYW55OyBuOiBhbnk7IGE6IGFueSB9W10gPSBbXTtcbiAgICAgICAgY29uc3QgaCA9IGRvY3VtZW50LmhlYWQuY2hpbGRyZW47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGlzdFtpXSA9IHtcbiAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgIG46IGhbaV0sXG4gICAgICAgICAgICAgICAgYTogaFtpXS5pbm5lckhUTUxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgbGlzdCA9IGxpc3QucmV2ZXJzZSgpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICBjb25zdCB0ID0gYC5mZC10YWJsZV9fY2VsbC0tYWN0aXZhYmxlOmFjdGl2ZSAqLC5mZC10YWJsZV9fcm93LS1hY3RpdmFibGUuaXMtYWN0aXZlICosLmZkLXRhYmxlX19yb3ctLWFjdGl2YWJsZTphY3RpdmUgKntjb2xvcjp2YXIoLS1zYXBMaXN0X0FjdGl2ZV9UZXh0Q29sb3IpIWltcG9ydGFudH1gO1xuICAgICAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gICAgICAgIGNvbnN0IGYgPSBsaXN0LmZpbHRlcigoYykgPT4gYy5hLmluZGV4T2YodCkgPj0gMCk7XG4gICAgICAgIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlJlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZbMF0ubi5pbm5lckhUTUwgPSBmWzBdLmEuc2xpY2UoMCwgMTAwNTgpICsgZlswXS5hLnNsaWNlKDEwMDU4ICsgdC5sZW5ndGgsIGZbMF0uYS5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3NldFNlYXJjaFBhbmVsTW9DaGFuZ2VkKGNoYW5nZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZChjaGFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29wZW5TZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmllbGRzU2V0dGluZyA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmdldFNlYXJjaFBhbmVsRmllbGRzU2V0dGluZygpO1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmRlZmF1bHREaWFsb2dDb25maWcsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzI1cmVtJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFsuLi5maWVsZHNTZXR0aW5nXVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0U2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3NDb21wb25lbnQsIGNvbmZpZyk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZXR0aW5nOiBDb2x1bW5JbmZvVHlwZVtdKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldEFuZEFwcGx5U2VhcmNoUGFuZWxTZXR0aW5nRmllbGRzU2V0dGluZyhzZXR0aW5nKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgX29wZW5TYXZlQXNGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlYXJjaE1vID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZ2V0U2VhcmNoUGFuZWxNbygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncztcbiAgICAgICAgY29uc3QgZmllbGRzU2V0dGluZyA9IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uRmllbGRzU2V0dGluZztcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcyNXJlbScsXG4gICAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHNlYXJjaE1vLFxuICAgICAgICAgICAgICAgIGZpZWxkc1NldHRpbmcsXG4gICAgICAgICAgICAgICAgcmVwb3J0SWQ6IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQsIGNvbmZpZyk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZWFyY2hQYW5lbFNldHRpbmc6IFNlYXJjaFBhbmVsU2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWFyY2hQYW5lbFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICBzZWFyY2hQYW5lbFNldHRpbmcuSGlkZVNlYXJjaFBhbmVsID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVNlYXJjaHBhbmVsO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFkZFNlYXJjaFBhbmVsU2V0dGluZ3Moc2VhcmNoUGFuZWxTZXR0aW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NhdmVGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyA9IHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzO1xuICAgICAgICBpZiAoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MuSGlkZVNlYXJjaFBhbmVsID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVNlYXJjaHBhbmVsO1xuICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2F2ZVNlYXJjaFBhbmVsU2V0dGluZyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX29wZW5TZWFyY2hGaWx0ZXJzTWFuYWdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbGxTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncztcbiAgICAgICAgY29uc3QgcmVwb3J0SWQgPSB0aGlzLl91bHZNYWluU2VydmljZS5yZXBvcnRJZDtcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgcmVzcG9uc2l2ZVBhZGRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhbGxTZWFyY2hQYW5lbFNldHRpbmdzOiBhbGxTZWFyY2hQYW5lbFNldHRpbmdzLm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgVGl0bGU6IGMuVGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIElzRGVmYXVsdDogYy5Jc0RlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIElzUHVibGljOiBjLklzUHVibGljLFxuICAgICAgICAgICAgICAgICAgICBJc1ByaW1hcnk6ICEhYy5Jc1ByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgIEFwcGx5QXV0b21hdGljYWxseTogYy5BcHBseUF1dG9tYXRpY2FsbHksXG4gICAgICAgICAgICAgICAgICAgIFJlcG9ydElkOiByZXBvcnRJZCxcbiAgICAgICAgICAgICAgICAgICAgSWQ6IGMuSWRcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCwgY29uZmlnKTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHNldHRpbmc6IFNlYXJjaFBhbmVsU2V0dGluZ3NbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICBzZXR0aW5nXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLklzUHJpbWFyeSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKG5ld1NldHRpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwcyA9IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MuZmluZCgoYykgPT4gYy5JZCA9PT0gbmV3U2V0dGluZy5JZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3BzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5NZXJnZShzcHMsIG5ld1NldHRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS51cGRhdGVTZWFyY2hQYW5lbFNldHRpbmdzKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8YnN1LWJhcnNhLXVsdi1tYWluXG4gICAgW2F0dHIuaXNSZXBvcnRQYWdlXT1cImlzUmVwb3J0UGFnZVwiXG4gICAgW3ZpZXdlckNvbnRyb2xdPVwidmlld2VyJCB8IGFzeW5jXCJcbiAgICBbbG9hZGluZ109XCIobWFzayQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFt2aWV3ZXJMb2FkaW5nXT1cIih2aXdlck1hc2skIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICBbaXNSZXBvcnRQYWdlXT1cImlzUmVwb3J0UGFnZVwiXG4gICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpISFcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW3NlYXJjaFBhbmVsVWldPVwiKHNlYXJjaFBhbmVsVWkkIHwgYXN5bmMpISFcIlxuICAgIFticmVhZENydW1ic109XCIoYnJlYWRDcnVtYnMkIHwgYXN5bmMpISFcIlxuICAgIFthbGxTZWFyY2hQYW5lbFNldHRpbmdzXT1cIihhbGxTZWFyY2hQYW5lbFNldHRpbmdzJCB8IGFzeW5jKSEhXCJcbiAgICBbaXNBbm9ueW1vdXNdPVwiKGlzQW5vbnltb3VzJCB8IGFzeW5jKSEhXCJcbiAgICBbcnRsXT1cIihydGwkIHwgYXN5bmMpISFcIlxuICAgIFtzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NdPVwiKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQgfCBhc3luYykhIVwiXG4gICAgW3NlYXJjaFBhbmVsTW9DaGFuZ2VkXT1cIihzZWFyY2hQYW5lbE1vQ2hhbmdlZCQgfCBhc3luYykhIVwiXG4gICAgW3NlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkXT1cIihzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCQgfCBhc3luYykhIVwiXG4gICAgW2hpZGVTZWFyY2hQYW5lbF09XCIoaGlkZVNlYXJjaFBhbmVsJCB8IGFzeW5jKSEhXCJcbiAgICBbcGFnaW5nU2V0dGluZ109XCIocGFnaW5nU2V0dGluZyQgfCBhc3luYykhIVwiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5JCB8IGFzeW5jXCJcbiAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAoc2VhcmNoUGFuZWxNb0NoYW5nZSk9XCJvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKClcIlxuICAgIChvcGVuTWFuYWdlRmlsdGVycyk9XCJvbk9wZW5NYW5hZ2VGaWx0ZXJzKClcIlxuICAgIChjb2xsYXBzZWRDaGFuZ2UpPVwib25Db2xsYXBzZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGhpZGVTZWFyY2hQYW5lbENsaWNrKT1cIm9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKVwiXG4gICAgKGZpbHRlclNhdmUpPVwib25GaWx0ZXJTYXZlKClcIlxuICAgIChmaWx0ZXJTYXZlQXMpPVwib25GaWx0ZXJTYXZlQXMoKVwiXG4gICAgKHNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKT1cIm9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKVwiXG4gICAgKG1hbmFnZUZpbHRlcnMpPVwib25NYW5hZ2VGaWx0ZXJzKClcIlxuICAgIChjbGVhclNlYXJjaCk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgIChzZWFyY2gpPVwib25TZWFyY2goKVwiXG4gICAgKHNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MpPVwib25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKCRldmVudClcIlxuPlxuPC9ic3UtYmFyc2EtdWx2LW1haW4+XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/bar";
|
|
6
|
+
import * as i3 from "@fundamental-ngx/core/button";
|
|
7
|
+
export class UiWorkflowPanelUiComponent extends BaseComponent {
|
|
8
|
+
onToolClick(btn) {
|
|
9
|
+
btn.handler(btn, this.context);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
UiWorkflowPanelUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiWorkflowPanelUiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
UiWorkflowPanelUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiWorkflowPanelUiComponent, selector: "bsu-ui-workflow-panel-ui", inputs: { context: "context", infoHtml: "infoHtml", showInfoBar: "showInfoBar", buttonList: "buttonList" }, usesInheritance: true, ngImport: i0, template: "<fd-bar-element>\r\n <button\r\n *ngFor=\"let btn of buttonList.slice().reverse(); let i = index\"\r\n fd-button\r\n [fdType]=\"i === 0 ? 'emphasized' : 'standard'\"\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolClick(btn)\"\r\n ></button>\r\n</fd-bar-element>\r\n", styles: ["button{margin:0 5px;min-width:60px}fd-bar-element:last-child{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiWorkflowPanelUiComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'bsu-ui-workflow-panel-ui', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-bar-element>\r\n <button\r\n *ngFor=\"let btn of buttonList.slice().reverse(); let i = index\"\r\n fd-button\r\n [fdType]=\"i === 0 ? 'emphasized' : 'standard'\"\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolClick(btn)\"\r\n ></button>\r\n</fd-bar-element>\r\n", styles: ["button{margin:0 5px;min-width:60px}fd-bar-element:last-child{margin-left:0}\n"] }]
|
|
17
|
+
}], propDecorators: { context: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], infoHtml: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], showInfoBar: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], buttonList: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}] } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktd29ya2Zsb3ctcGFuZWwtdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktd29ya2Zsb3ctcGFuZWwtdWkvdWktd29ya2Zsb3ctcGFuZWwtdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktd29ya2Zsb3ctcGFuZWwtdWkvdWktd29ya2Zsb3ctcGFuZWwtdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU9yRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsYUFBYTtJQVd6RCxXQUFXLENBQUMsR0FBRztRQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzt1SEFiUSwwQkFBMEI7MkdBQTFCLDBCQUEwQixtTUNUdkMsdVdBVUE7MkZERGEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLXdvcmtmbG93LXBhbmVsLXVpJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktd29ya2Zsb3ctcGFuZWwtdWkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXdvcmtmbG93LXBhbmVsLXVpLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlXb3JrZmxvd1BhbmVsVWlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XG4gICAgQElucHV0KCkgaW5mb0h0bWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93SW5mb0JhcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBidXR0b25MaXN0OiB7XG4gICAgICAgIGhhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgICAgRGF0YTogYW55O1xuICAgICAgICBuZXdJY29uOiBzdHJpbmc7XG4gICAgfVtdO1xuXG4gICAgb25Ub29sQ2xpY2soYnRuKTogdm9pZCB7XG4gICAgICAgIGJ0bi5oYW5kbGVyKGJ0biwgdGhpcy5jb250ZXh0KTtcbiAgICB9XG59XG4iLCI8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGJ0biBvZiBidXR0b25MaXN0LnNsaWNlKCkucmV2ZXJzZSgpOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICBmZC1idXR0b25cclxuICAgICAgICBbZmRUeXBlXT1cImkgPT09IDAgPyAnZW1waGFzaXplZCcgOiAnc3RhbmRhcmQnXCJcclxuICAgICAgICBbbGFiZWxdPVwiYnRuLnRleHRcIlxyXG4gICAgICAgIFtnbHlwaF09XCJidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVG9vbENsaWNrKGJ0bilcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG48L2ZkLWJhci1lbGVtZW50PlxyXG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { debounceTime, delay, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { BarsaApi, BaseComponent } from 'barsa-novin-ray-core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
7
|
+
import * as i2 from "../mask/mask.component";
|
|
8
|
+
export class UlLoadingMaskUiComponent extends BaseComponent {
|
|
9
|
+
constructor(_dialogService) {
|
|
10
|
+
super();
|
|
11
|
+
this._dialogService = _dialogService;
|
|
12
|
+
BarsaApi.Ul.CustomLoadingMaskUi.on({
|
|
13
|
+
Mask: this.mask.bind(this),
|
|
14
|
+
Unmask: this.unmask.bind(this),
|
|
15
|
+
MaskBody: this.maskBody.bind(this),
|
|
16
|
+
UnmaskBody: this.unmaskBody.bind(this),
|
|
17
|
+
UnmaskAll: this.unmaskAll.bind(this)
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
mask(element, option) {
|
|
21
|
+
const containerRef = this.resolveElement(element);
|
|
22
|
+
this._mask(containerRef, option);
|
|
23
|
+
}
|
|
24
|
+
unmask(element) {
|
|
25
|
+
const containerRef = this.resolveElement(element);
|
|
26
|
+
this._unmask(containerRef);
|
|
27
|
+
}
|
|
28
|
+
unmaskAll() {
|
|
29
|
+
this._dialogService.dismissAll();
|
|
30
|
+
}
|
|
31
|
+
maskBody() {
|
|
32
|
+
const body = this.getBody();
|
|
33
|
+
this._mask(body);
|
|
34
|
+
}
|
|
35
|
+
unmaskBody() {
|
|
36
|
+
const body = this.getBody();
|
|
37
|
+
this._unmask(body);
|
|
38
|
+
}
|
|
39
|
+
_unmask(containerRef) {
|
|
40
|
+
if (containerRef && containerRef.maskDialog?.close) {
|
|
41
|
+
containerRef.maskDialog.close();
|
|
42
|
+
containerRef.maskDialog = null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
getBody() {
|
|
46
|
+
return document.querySelector('body');
|
|
47
|
+
}
|
|
48
|
+
_mask(containerRef, option) {
|
|
49
|
+
if (containerRef.maskDialog) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const maskDelay = option?.delay || 5000;
|
|
53
|
+
containerRef.maskDialog = this._dialogService.open(this.waitRef, {
|
|
54
|
+
container: containerRef,
|
|
55
|
+
responsivePadding: true,
|
|
56
|
+
fullScreen: true
|
|
57
|
+
});
|
|
58
|
+
of(true)
|
|
59
|
+
.pipe(takeUntil(this._onDestroy$), delay(maskDelay), debounceTime(200))
|
|
60
|
+
.subscribe(() => {
|
|
61
|
+
if (containerRef.maskDialog?.close) {
|
|
62
|
+
containerRef.maskDialog.close();
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
resolveElement(element) {
|
|
67
|
+
let containerRef = element;
|
|
68
|
+
if (containerRef.getEl) {
|
|
69
|
+
containerRef.getEl();
|
|
70
|
+
}
|
|
71
|
+
else if (containerRef.controlUi) {
|
|
72
|
+
containerRef = containerRef.controlUi;
|
|
73
|
+
}
|
|
74
|
+
return containerRef;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
UlLoadingMaskUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlLoadingMaskUiComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
UlLoadingMaskUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlLoadingMaskUiComponent, selector: "bsu-ul-loading-mask-ui", viewQueries: [{ propertyName: "waitRef", first: true, predicate: ["waitRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #waitRef>\r\n <bsu-mask></bsu-mask>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlLoadingMaskUiComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'bsu-ul-loading-mask-ui', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #waitRef>\r\n <bsu-mask></bsu-mask>\r\n</ng-template>\r\n" }]
|
|
82
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }]; }, propDecorators: { waitRef: [{
|
|
83
|
+
type: ViewChild,
|
|
84
|
+
args: ['waitRef']
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWwtbG9hZGluZy1tYXNrLXVpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VsLWxvYWRpbmctbWFzay11aS91bC1sb2FkaW5nLW1hc2stdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWwtbG9hZGluZy1tYXNrLXVpL3VsLWxvYWRpbmctbWFzay11aS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFPL0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFFdkQsWUFBb0IsY0FBNkI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFEUSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUU3QyxRQUFRLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RD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eyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBCYXJzYUFwaSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVsLWxvYWRpbmctbWFzay11aScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VsLWxvYWRpbmctbWFzay11aS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWwtbG9hZGluZy1tYXNrLXVpLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWxMb2FkaW5nTWFza1VpQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnd2FpdFJlZicpIHdhaXRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBCYXJzYUFwaS5VbC5DdXN0b21Mb2FkaW5nTWFza1VpLm9uKHtcbiAgICAgICAgICAgIE1hc2s6IHRoaXMubWFzay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgVW5tYXNrOiB0aGlzLnVubWFzay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgTWFza0JvZHk6IHRoaXMubWFza0JvZHkuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFVubWFza0JvZHk6IHRoaXMudW5tYXNrQm9keS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgVW5tYXNrQWxsOiB0aGlzLnVubWFza0FsbC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtYXNrKGVsZW1lbnQsIG9wdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJSZWYgPSB0aGlzLnJlc29sdmVFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB0aGlzLl9tYXNrKGNvbnRhaW5lclJlZiwgb3B0aW9uKTtcbiAgICB9XG4gICAgdW5tYXNrKGVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5yZXNvbHZlRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgdGhpcy5fdW5tYXNrKGNvbnRhaW5lclJlZik7XG4gICAgfVxuICAgIHVubWFza0FsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gICAgfVxuICAgIG1hc2tCb2R5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5nZXRCb2R5KCk7XG4gICAgICAgIHRoaXMuX21hc2soYm9keSk7XG4gICAgfVxuICAgIHVubWFza0JvZHkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLmdldEJvZHkoKTtcbiAgICAgICAgdGhpcy5fdW5tYXNrKGJvZHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3VubWFzayhjb250YWluZXJSZWY6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoY29udGFpbmVyUmVmICYmIGNvbnRhaW5lclJlZi5tYXNrRGlhbG9nPy5jbG9zZSkge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmLm1hc2tEaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgICAgIGNvbnRhaW5lclJlZi5tYXNrRGlhbG9nID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Qm9keSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21hc2soY29udGFpbmVyUmVmOiBhbnksIG9wdGlvbj86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoY29udGFpbmVyUmVmLm1hc2tEaWFsb2cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXNrRGVsYXkgPSBvcHRpb24/LmRlbGF5IHx8IDUwMDA7XG4gICAgICAgIGNvbnRhaW5lclJlZi5tYXNrRGlhbG9nID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMud2FpdFJlZiwge1xuICAgICAgICAgICAgY29udGFpbmVyOiBjb250YWluZXJSZWYsXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGZ1bGxTY3JlZW46IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIG9mKHRydWUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRlbGF5KG1hc2tEZWxheSksIGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lclJlZi5tYXNrRGlhbG9nPy5jbG9zZSkge1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJSZWYubWFza0RpYWxvZy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZUVsZW1lbnQoZWxlbWVudDogYW55KTogYW55IHtcbiAgICAgICAgbGV0IGNvbnRhaW5lclJlZiA9IGVsZW1lbnQ7XG4gICAgICAgIGlmIChjb250YWluZXJSZWYuZ2V0RWwpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lclJlZi5nZXRFbCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRhaW5lclJlZi5jb250cm9sVWkpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lclJlZiA9IGNvbnRhaW5lclJlZi5jb250cm9sVWk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lclJlZjtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3dhaXRSZWY+XHJcbiAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { delay, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@fundamental-ngx/core/button";
|
|
9
|
+
import * as i4 from "@fundamental-ngx/core/dialog";
|
|
10
|
+
import * as i5 from "@fundamental-ngx/core/title";
|
|
11
|
+
import * as i6 from "../mask/mask.component";
|
|
12
|
+
import * as i7 from "barsa-novin-ray-core";
|
|
13
|
+
export class UlMsgBoxAdapterComponent extends BaseComponent {
|
|
14
|
+
constructor(_dialogService, _contentDensityService) {
|
|
15
|
+
super();
|
|
16
|
+
this._dialogService = _dialogService;
|
|
17
|
+
this._contentDensityService = _contentDensityService;
|
|
18
|
+
this.show = (object) => {
|
|
19
|
+
object.iconType = this.getMsgType(object.icon);
|
|
20
|
+
this._dialogService.open(this.templateRef, {
|
|
21
|
+
...object,
|
|
22
|
+
responsivePadding: true
|
|
23
|
+
});
|
|
24
|
+
/* eslint-disable */
|
|
25
|
+
};
|
|
26
|
+
this.wait = (msg, title, object) => {
|
|
27
|
+
object.iconType = this.getMsgType(object.icon);
|
|
28
|
+
const waitDialog = this._dialogService.open(this.waitRef, {
|
|
29
|
+
...object,
|
|
30
|
+
responsivePadding: true,
|
|
31
|
+
fullScreen: true
|
|
32
|
+
});
|
|
33
|
+
if (!object.duration) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
of(true)
|
|
37
|
+
.pipe(takeUntil(this._onDestroy$), delay(object.duration))
|
|
38
|
+
.subscribe((c) => {
|
|
39
|
+
waitDialog.close();
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
this.hide = () => {
|
|
43
|
+
this._dialogService.dismissAll();
|
|
44
|
+
/* eslint-disable */
|
|
45
|
+
};
|
|
46
|
+
this.keepOrder = (a, b) => {
|
|
47
|
+
return a;
|
|
48
|
+
/* eslint-disable */
|
|
49
|
+
};
|
|
50
|
+
BarsaApi.Ul.MsgBox.Adapter.on({
|
|
51
|
+
Show: (msgBoxData) => this.show(msgBoxData),
|
|
52
|
+
wait: (msg, title, msgBoxData) => this.wait(msg, title, msgBoxData),
|
|
53
|
+
hide: () => this.hide()
|
|
54
|
+
});
|
|
55
|
+
this.contentDensity$ = this._contentDensityService.contentDensity.asObservable();
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
super.ngOnInit();
|
|
59
|
+
}
|
|
60
|
+
onButton(btn, dialog, dialogConfig) {
|
|
61
|
+
dialog.close();
|
|
62
|
+
dialogConfig.fn.call(this, btn.key);
|
|
63
|
+
}
|
|
64
|
+
onClose(dialog, dialogConfig) {
|
|
65
|
+
dialog.close();
|
|
66
|
+
dialogConfig.fn.call(this, 'cancel');
|
|
67
|
+
}
|
|
68
|
+
reverseObj(obj) {
|
|
69
|
+
return Object.keys(obj)
|
|
70
|
+
.reverse()
|
|
71
|
+
.reduce((a, key) => {
|
|
72
|
+
a[key] = obj[key];
|
|
73
|
+
return a;
|
|
74
|
+
}, {});
|
|
75
|
+
}
|
|
76
|
+
getMsgType(icon) {
|
|
77
|
+
switch (icon) {
|
|
78
|
+
case BarsaApi.Ul.MsgBox.INFO:
|
|
79
|
+
return 'information';
|
|
80
|
+
case BarsaApi.Ul.MsgBox.WARNING:
|
|
81
|
+
return 'warning';
|
|
82
|
+
case BarsaApi.Ul.MsgBox.QUESTION:
|
|
83
|
+
return 'default';
|
|
84
|
+
case BarsaApi.Ul.MsgBox.ERROR:
|
|
85
|
+
return 'error';
|
|
86
|
+
}
|
|
87
|
+
return 'default';
|
|
88
|
+
}
|
|
89
|
+
getBtnCaption(name) {
|
|
90
|
+
switch (name) {
|
|
91
|
+
case 'ok':
|
|
92
|
+
return 'تایید';
|
|
93
|
+
case 'cancel':
|
|
94
|
+
return 'انصراف';
|
|
95
|
+
case 'yes':
|
|
96
|
+
return 'بله';
|
|
97
|
+
case 'no':
|
|
98
|
+
return 'خیر';
|
|
99
|
+
}
|
|
100
|
+
return '';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
UlMsgBoxAdapterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlMsgBoxAdapterComponent, deps: [{ token: i1.DialogService }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
UlMsgBoxAdapterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlMsgBoxAdapterComponent, selector: "bsu-ul-msg-box-adapter", inputs: { context: "context" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true }, { propertyName: "waitRef", first: true, predicate: ["waitRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #waitRef>\r\n <bsu-mask></bsu-mask>\r\n</ng-template>\r\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\r\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\r\n <fd-dialog-header>\r\n <h1 fd-title>\r\n {{ dialogConfig.title }}\r\n </h1>\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body style=\"padding: 15px\">\r\n <div style=\"min-height: 125px\">\r\n <label fd-label [type]=\"dialogConfig.iconType\" [innerHtml]=\"dialogConfig.msg\"> </label>\r\n </div>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-dialog-footer-button *ngFor=\"let btn of dialogConfig.buttons | keyvalue: keepOrder\">\r\n <button\r\n fd-button\r\n fd-dialog-decisive-button\r\n [fdType]=\"\r\n btn.key === 'ok' || btn.key === 'yes'\r\n ? 'emphasized'\r\n : btn.key === 'no'\r\n ? 'standard'\r\n : 'transparent'\r\n \"\r\n [label]=\"btn.key + '' | titlecase | bbbTranslate\"\r\n (click)=\"onButton(btn, dialog, dialogConfig)\"\r\n ></button>\r\n </fd-dialog-footer-button>\r\n </fd-dialog-footer>\r\n </fd-dialog>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i4.DialogFooterButtonComponent, selector: "fd-dialog-footer-button" }, { kind: "directive", type: i4.DialogDecisiveButtonDirective, selector: "[fd-dialog-decisive-button]" }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlMsgBoxAdapterComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'bsu-ul-msg-box-adapter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #waitRef>\r\n <bsu-mask></bsu-mask>\r\n</ng-template>\r\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\r\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\r\n <fd-dialog-header>\r\n <h1 fd-title>\r\n {{ dialogConfig.title }}\r\n </h1>\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body style=\"padding: 15px\">\r\n <div style=\"min-height: 125px\">\r\n <label fd-label [type]=\"dialogConfig.iconType\" [innerHtml]=\"dialogConfig.msg\"> </label>\r\n </div>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-dialog-footer-button *ngFor=\"let btn of dialogConfig.buttons | keyvalue: keepOrder\">\r\n <button\r\n fd-button\r\n fd-dialog-decisive-button\r\n [fdType]=\"\r\n btn.key === 'ok' || btn.key === 'yes'\r\n ? 'emphasized'\r\n : btn.key === 'no'\r\n ? 'standard'\r\n : 'transparent'\r\n \"\r\n [label]=\"btn.key + '' | titlecase | bbbTranslate\"\r\n (click)=\"onButton(btn, dialog, dialogConfig)\"\r\n ></button>\r\n </fd-dialog-footer-button>\r\n </fd-dialog-footer>\r\n </fd-dialog>\r\n</ng-template>\r\n" }]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i1.ContentDensityService }]; }, propDecorators: { templateRef: [{
|
|
109
|
+
type: ViewChild,
|
|
110
|
+
args: ['templateRef']
|
|
111
|
+
}], waitRef: [{
|
|
112
|
+
type: ViewChild,
|
|
113
|
+
args: ['waitRef']
|
|
114
|
+
}], context: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}] } });
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWwtbXNnLWJveC1hZGFwdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VsLW1zZy1ib3gtYWRhcHRlci91bC1tc2ctYm94LWFkYXB0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWwtbXNnLWJveC1hZGFwdGVyL3VsLW1zZy1ib3gtYWRhcHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7QUFrQi9ELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBS3ZELFlBQW9CLGNBQTZCLEVBQVUsc0JBQTZDO1FBQ3BHLEtBQUssRUFBRSxDQUFDO1FBRFEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBNkJ4RyxTQUFJLEdBQUcsQ0FBQyxNQUF3QixFQUFRLEVBQUU7WUFDdEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUN2QyxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUUsSUFBSTthQUMxQixDQUFDLENBQUM7WUFDSCxv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STtnQkFDeEIsT0FBTyxhQUFhLENBQUM7WUFDekIsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUMzQixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzVCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDekIsT0FBTyxPQUFPLENBQUM7U0FDdEI7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBS0QsYUFBYSxDQUFDLElBQWtCO1FBQzVCLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxJQUFJO2dCQUNMLE9BQU8sT0FBTyxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLEtBQUs7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDakIsS0FBSyxJQUFJO2dCQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDOztxSEF6R1Esd0JBQXdCO3lHQUF4Qix3QkFBd0Isc1RDdkJyQyx1OUNBb0NBOzJGRGJhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07d0lBR3JCLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDRixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1gsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBEaWFsb2dDb25maWcsIERpYWxvZ1JlZiwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5pbnRlcmZhY2UgTWVzc2FnZUJveE9iamVjdCBleHRlbmRzIERpYWxvZ0NvbmZpZyB7XG4gICAgc2NvcGU6IGFueTtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlbGF5OiBudW1iZXI7XG4gICAgbXNnOiBzdHJpbmc7XG4gICAgYnV0dG9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG4gICAgaWNvbjogc3RyaW5nO1xuICAgIGljb25UeXBlOiBzdHJpbmc7XG4gICAgZm46IChrZXk6IHN0cmluZykgPT4gdm9pZDtcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVsLW1zZy1ib3gtYWRhcHRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VsLW1zZy1ib3gtYWRhcHRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWwtbXNnLWJveC1hZGFwdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWxNc2dCb3hBZGFwdGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnKSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCd3YWl0UmVmJykgd2FpdFJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBjb250ZXh0O1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgQmFyc2FBcGkuVWwuTXNnQm94LkFkYXB0ZXIub24oe1xuICAgICAgICAgICAgU2hvdzogKG1zZ0JveERhdGEpID0+IHRoaXMuc2hvdyhtc2dCb3hEYXRhKSxcbiAgICAgICAgICAgIHdhaXQ6IChtc2csIHRpdGxlLCBtc2dCb3hEYXRhKSA9PiB0aGlzLndhaXQobXNnLCB0aXRsZSwgbXNnQm94RGF0YSksXG4gICAgICAgICAgICBoaWRlOiAoKSA9PiB0aGlzLmhpZGUoKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHkuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuICAgIG9uQnV0dG9uKGJ0biwgZGlhbG9nOiBEaWFsb2dSZWYsIGRpYWxvZ0NvbmZpZzogTWVzc2FnZUJveE9iamVjdCk6IHZvaWQge1xuICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgZGlhbG9nQ29uZmlnLmZuLmNhbGwodGhpcywgYnRuLmtleSk7XG4gICAgfVxuICAgIG9uQ2xvc2UoZGlhbG9nLCBkaWFsb2dDb25maWc6IE1lc3NhZ2VCb3hPYmplY3QpOiB2b2lkIHtcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIGRpYWxvZ0NvbmZpZy5mbi5jYWxsKHRoaXMsICdjYW5jZWwnKTtcbiAgICB9XG4gICAgcmV2ZXJzZU9iaihvYmopOiBhbnkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxuICAgICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgICAgLnJlZHVjZSgoYSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgYVtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgfVxuICAgIHNob3cgPSAob2JqZWN0OiBNZXNzYWdlQm94T2JqZWN0KTogdm9pZCA9PiB7XG4gICAgICAgIG9iamVjdC5pY29uVHlwZSA9IHRoaXMuZ2V0TXNnVHlwZShvYmplY3QuaWNvbik7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLnRlbXBsYXRlUmVmLCB7XG4gICAgICAgICAgICAuLi5vYmplY3QsXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuICAgIHdhaXQgPSAoXG4gICAgICAgIG1zZyxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgaW50ZXJ2YWw6IG51bWJlcjtcbiAgICAgICAgICAgIGR1cmF0aW9uOiBudW1iZXI7XG4gICAgICAgICAgICBpbmNyZW1lbnQ6IG51bWJlcjtcbiAgICAgICAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgICAgICAgIGljb246IHN0cmluZztcbiAgICAgICAgICAgIGljb25UeXBlOiBzdHJpbmc7XG4gICAgICAgICAgICBzY29wZTogYW55O1xuICAgICAgICAgICAgZm46ICgpID0+IHZvaWQ7XG4gICAgICAgIH1cbiAgICApID0+IHtcbiAgICAgICAgb2JqZWN0Lmljb25UeXBlID0gdGhpcy5nZXRNc2dUeXBlKG9iamVjdC5pY29uKTtcbiAgICAgICAgY29uc3Qgd2FpdERpYWxvZyA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLndhaXRSZWYsIHtcbiAgICAgICAgICAgIC4uLm9iamVjdCxcbiAgICAgICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgICAgICAgICAgZnVsbFNjcmVlbjogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvYmplY3QuZHVyYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9mKHRydWUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRlbGF5KG9iamVjdC5kdXJhdGlvbikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgd2FpdERpYWxvZy5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfTtcbiAgICBoaWRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLmRpc21pc3NBbGwoKTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuICAgIGdldE1zZ1R5cGUoaWNvbjogc3RyaW5nIHwgYW55KTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChpY29uKSB7XG4gICAgICAgICAgICBjYXNlIEJhcnNhQXBpLlVsLk1zZ0JveC5JTkZPOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW5mb3JtYXRpb24nO1xuICAgICAgICAgICAgY2FzZSBCYXJzYUFwaS5VbC5Nc2dCb3guV0FSTklORzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xuICAgICAgICAgICAgY2FzZSBCYXJzYUFwaS5VbC5Nc2dCb3guUVVFU1RJT046XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICAgICAgICAgIGNhc2UgQmFyc2FBcGkuVWwuTXNnQm94LkVSUk9SOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgfVxuICAgIGtlZXBPcmRlciA9IChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgZ2V0QnRuQ2FwdGlvbihuYW1lOiBzdHJpbmcgfCBhbnkpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ29rJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9iq2KfbjNuM2K8nO1xuICAgICAgICAgICAgY2FzZSAnY2FuY2VsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9in2YbYtdix2KfZgSc7XG4gICAgICAgICAgICBjYXNlICd5ZXMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAn2KjZhNmHJztcbiAgICAgICAgICAgIGNhc2UgJ25vJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9iu24zYsSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjd2FpdFJlZj5cclxuICAgIDxic3UtbWFzaz48L2JzdS1tYXNrPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI3RlbXBsYXRlUmVmPlxyXG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxoMSBmZC10aXRsZT5cclxuICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0NvbmZpZy50aXRsZSB9fVxyXG4gICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cclxuXHJcbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5IHN0eWxlPVwicGFkZGluZzogMTVweFwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWluLWhlaWdodDogMTI1cHhcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1sYWJlbCBbdHlwZV09XCJkaWFsb2dDb25maWcuaWNvblR5cGVcIiBbaW5uZXJIdG1sXT1cImRpYWxvZ0NvbmZpZy5tc2dcIj4gPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cclxuXHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnRuIG9mIGRpYWxvZ0NvbmZpZy5idXR0b25zIHwga2V5dmFsdWU6IGtlZXBPcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBidG4ua2V5ID09PSAnb2snIHx8IGJ0bi5rZXkgPT09ICd5ZXMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdlbXBoYXNpemVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBidG4ua2V5ID09PSAnbm8nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdzdGFuZGFyZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RyYW5zcGFyZW50J1xyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5rZXkgKyAnJyB8IHRpdGxlY2FzZSB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uKGJ0biwgZGlhbG9nLCBkaWFsb2dDb25maWcpXCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|