barsa-sap-ui 2.2.2 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/barsa-sap-ui.mjs +5 -0
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +90 -0
- package/esm2022/lib/avatar-size.pipe.mjs +41 -0
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +145 -0
- package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +23 -0
- package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -0
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
- package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +24 -0
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +31 -0
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
- package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -0
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +242 -0
- package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +66 -0
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +78 -0
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
- package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -0
- package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +14 -0
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +40 -0
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +58 -0
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
- package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +57 -0
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
- package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -0
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +102 -0
- package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +26 -0
- package/esm2022/lib/barsa-sap-ui-routing.module.mjs +18 -0
- package/esm2022/lib/barsa-sap-ui.module.mjs +377 -0
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +170 -0
- package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +29 -0
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +222 -0
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +87 -0
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +418 -0
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +153 -0
- package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +20 -0
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +216 -0
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +74 -0
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +50 -0
- package/esm2022/lib/captcha-field/captcha-field.component.mjs +28 -0
- package/esm2022/lib/card-item/card-item.component.mjs +74 -0
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
- package/esm2022/lib/col-renderer.directive.mjs +47 -0
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +61 -0
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +97 -0
- package/esm2022/lib/constants.mjs +450 -0
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
- package/esm2022/lib/device-info-field-base.mjs +24 -0
- package/esm2022/lib/dialog-handler.directive.mjs +29 -0
- package/esm2022/lib/download-files.directive.mjs +34 -0
- package/esm2022/lib/dynamic-page-size.pipe.mjs +27 -0
- package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +47 -0
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +71 -0
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +37 -0
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +171 -0
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +50 -0
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +62 -0
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
- package/esm2022/lib/fullscreen-dialog.directive.mjs +60 -0
- package/esm2022/lib/fullscreen-files.directive.mjs +43 -0
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +217 -0
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +215 -0
- package/esm2022/lib/global-search/global-search.component.mjs +27 -0
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
- package/esm2022/lib/index.mjs +549 -0
- package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +70 -0
- package/esm2022/lib/layout-control/layout-control.component.mjs +302 -0
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +180 -0
- package/esm2022/lib/list-item/list-item.component.mjs +34 -0
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +82 -0
- package/esm2022/lib/ly-label/ly-label.component.mjs +37 -0
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
- package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +83 -0
- package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +44 -0
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +51 -0
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
- package/esm2022/lib/mask/mask.component.mjs +22 -0
- package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
- package/esm2022/lib/models/grid-data-provider.mjs +114 -0
- package/esm2022/lib/models/grid-view.mjs +2 -0
- package/esm2022/lib/models/index.mjs +2 -0
- package/esm2022/lib/no-data/no-data.component.mjs +31 -0
- package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
- package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +79 -0
- package/esm2022/lib/notification-popup.service.mjs +92 -0
- package/esm2022/lib/object-status-icon.pipe.mjs +27 -0
- package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +18 -0
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +68 -0
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
- package/esm2022/lib/report-tree-base.mjs +387 -0
- package/esm2022/lib/report-view-renderer.directive.mjs +392 -0
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
- package/esm2022/lib/sap-font-class.pipe.mjs +30 -0
- package/esm2022/lib/sap-font.pipe.mjs +30 -0
- package/esm2022/lib/sap-size.pipe.mjs +28 -0
- package/esm2022/lib/sap-ui-report-base.component.mjs +809 -0
- package/esm2022/lib/search-panel/search-panel.component.mjs +63 -0
- package/esm2022/lib/static-text/static-text.component.mjs +15 -0
- package/esm2022/lib/table-th.directive.mjs +87 -0
- package/esm2022/lib/title/title.component.mjs +15 -0
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +34 -0
- package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +33 -0
- package/esm2022/lib/ui-button/ui-button.component.mjs +32 -0
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +58 -0
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +39 -0
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +38 -0
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +150 -0
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +108 -0
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +124 -0
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +103 -0
- package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
- package/esm2022/lib/ui-graph/ui-graph.component.mjs +17 -0
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +25 -0
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +123 -0
- package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -0
- package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
- package/esm2022/lib/ui-label/ui-label.component.mjs +12 -0
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +379 -0
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +84 -0
- package/esm2022/lib/ui-map/ui-map.component.mjs +68 -0
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
- package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -0
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +429 -0
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
- package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +47 -0
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +33 -0
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
- package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +268 -0
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +101 -0
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +261 -0
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
- package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +55 -0
- package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +296 -0
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
- package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +48 -0
- package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +24 -0
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +114 -0
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +100 -0
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +310 -0
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +119 -0
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +116 -0
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +196 -0
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +54 -0
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +177 -0
- package/esm2022/lib/upload-file-status.pipe.mjs +29 -0
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
- package/esm2022/lib/wizard-layout.directive.mjs +104 -0
- package/esm2022/public-api.mjs +236 -0
- package/fesm2022/barsa-sap-ui.mjs +6 -6
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, ChangeDetectionStrategy, NgZone, inject } from '@angular/core';
|
|
2
|
+
import { BarsaApi, FieldBaseComponent, DateService, LogService, getDateService } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@fundamental-ngx/core/form";
|
|
5
|
+
import * as i2 from "barsa-calendar";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
export class UiDateTimeComponent extends FieldBaseComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.valueCaption = '';
|
|
11
|
+
this._ngZone = inject(NgZone);
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
this.GetCaption = () => this.valueCaption;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
super.ngOnInit();
|
|
17
|
+
if (this.parameters?.DateRangeMode && this.parameters?.DateRangeOtherField) {
|
|
18
|
+
const formpanel = BarsaApi.Common.Util.TryGetValue(this.context, 'LayoutControl.config.FormPanelUi', null);
|
|
19
|
+
if (formpanel) {
|
|
20
|
+
formpanel.fireEvent('ChangeFieldVisible', this.parameters.DateRangeOtherField, false);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (typeof this.value === 'string' && this.value) {
|
|
24
|
+
this.value = this.context.value = new Date(this.value);
|
|
25
|
+
}
|
|
26
|
+
this.fullCalendar = this.Setting.ShowTime1 && this.Setting.ShowDate1;
|
|
27
|
+
this._setTimeFormat();
|
|
28
|
+
// this.value$.pipe(takeUntil(this._onDestroy$)).subscribe((value) => {
|
|
29
|
+
// this.value = <Date>value;
|
|
30
|
+
// // this._setValueCaption(value);
|
|
31
|
+
// });
|
|
32
|
+
// // this._setValueCaption(this.value);
|
|
33
|
+
}
|
|
34
|
+
ngAfterViewInit() {
|
|
35
|
+
super.ngAfterViewInit();
|
|
36
|
+
this._setCaption(this.value);
|
|
37
|
+
}
|
|
38
|
+
onDateTimeChange() {
|
|
39
|
+
const datetimePickerControl = this.datetimePickerRef.nativeElement;
|
|
40
|
+
this.value = datetimePickerControl.dateValue;
|
|
41
|
+
this.valueCaption = datetimePickerControl.value;
|
|
42
|
+
this.valueChange.emit(this.value);
|
|
43
|
+
}
|
|
44
|
+
onDateChange() {
|
|
45
|
+
const datePickerControl = this.datePickerRef.nativeElement;
|
|
46
|
+
this._valueDateChange(datePickerControl.dateValue);
|
|
47
|
+
}
|
|
48
|
+
onDateChange2(date) {
|
|
49
|
+
this._valueDateChange(date);
|
|
50
|
+
}
|
|
51
|
+
onDurationChange(e) {
|
|
52
|
+
const { value } = e.detail;
|
|
53
|
+
if (!this.value) {
|
|
54
|
+
this.value = new Date();
|
|
55
|
+
}
|
|
56
|
+
const time = value.split(':');
|
|
57
|
+
this.value.setHours(Number(time[0]), Number(time[1]), Number(time[2]));
|
|
58
|
+
this.valueCaption = this.durationPickerRef.nativeElement.value;
|
|
59
|
+
this.valueChange.emit(this.value);
|
|
60
|
+
}
|
|
61
|
+
onRangeChange(rangeValue) {
|
|
62
|
+
console.log('endDate', rangeValue);
|
|
63
|
+
}
|
|
64
|
+
_setTimeFormat() {
|
|
65
|
+
const timeFormat = this.Setting.TimeFormat?.toLowerCase();
|
|
66
|
+
let timeFormat2 = '';
|
|
67
|
+
if (timeFormat) {
|
|
68
|
+
timeFormat2 = ' ';
|
|
69
|
+
timeFormat.split(':').forEach((val) => {
|
|
70
|
+
switch (val) {
|
|
71
|
+
case 'h':
|
|
72
|
+
timeFormat2 += 'HH';
|
|
73
|
+
break;
|
|
74
|
+
case 'i':
|
|
75
|
+
timeFormat2 += ':mm';
|
|
76
|
+
break;
|
|
77
|
+
case 's':
|
|
78
|
+
timeFormat2 += ':SS';
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
const dateFormat = !this.Setting.ShowDate1 ? '' : 'YYYY/MM/DD';
|
|
84
|
+
const timeFormat3 = !this.Setting.ShowTime1 ? '' : timeFormat2;
|
|
85
|
+
// timeFormat2 += ' A';
|
|
86
|
+
this.formatPattern = `${dateFormat}${timeFormat3}`;
|
|
87
|
+
}
|
|
88
|
+
_configChaned(options) {
|
|
89
|
+
// implemented by child components
|
|
90
|
+
this._setTimeFormat();
|
|
91
|
+
const temp = this.value;
|
|
92
|
+
if (!this.Setting.ShowTime1) {
|
|
93
|
+
if (typeof temp === 'object') {
|
|
94
|
+
temp.setHours(0);
|
|
95
|
+
temp.setMinutes(0);
|
|
96
|
+
temp.setSeconds(0);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (typeof temp === 'object') {
|
|
100
|
+
this._valueDateChange(new Date(temp));
|
|
101
|
+
}
|
|
102
|
+
super._configChaned(options);
|
|
103
|
+
}
|
|
104
|
+
_setValue(value) {
|
|
105
|
+
this._setCaption(value);
|
|
106
|
+
super._setValue(value);
|
|
107
|
+
}
|
|
108
|
+
_valueDateChange(dateValue) {
|
|
109
|
+
this.value = dateValue;
|
|
110
|
+
this.valueCaption = this._setCaption(dateValue); // datePickerControl.value;
|
|
111
|
+
this.valueChange.emit(this.value);
|
|
112
|
+
}
|
|
113
|
+
_setCaption(value) {
|
|
114
|
+
const caption = (this.context.caption =
|
|
115
|
+
this.valueCaption =
|
|
116
|
+
this._dateService.format(value, this.formatPattern));
|
|
117
|
+
this._cdr.detectChanges();
|
|
118
|
+
return caption;
|
|
119
|
+
}
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiDateTimeComponent, selector: "bsu-ui-date-time", inputs: { GetCaption: "GetCaption" }, providers: [
|
|
122
|
+
{
|
|
123
|
+
provide: DateService,
|
|
124
|
+
useFactory: getDateService,
|
|
125
|
+
deps: [LogService]
|
|
126
|
+
}
|
|
127
|
+
], viewQueries: [{ propertyName: "datetimePickerRef", first: true, predicate: ["datetimePicker"], descendants: true }, { propertyName: "datePickerRef", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "durationPickerRef", first: true, predicate: ["durationPicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ((readonly$ | async) === true) {\r\n<input fd-form-control type=\"text\" [attr.readonly]=\"true\" [value]=\"value ? valueCaption : ''\" />\r\n} @else{\r\n<div\r\n [class.disabled]=\"(disable$ | async) === true\"\r\n [style.display]=\"(disableOrReadonly$ | async)!! ? 'hidden' : 'block'\"\r\n [attr.dir]=\"Setting.IsLtr === true ? 'ltr' : 'rtl'\"\r\n>\r\n <bc-date-time-picker\r\n [value]=\"value\"\r\n [buttonMenuMode]=\"parameters?.ButtonMenuMode === true\"\r\n [showDate]=\"Setting.ShowDate1\"\r\n [showTime]=\"Setting.ShowTime1\"\r\n [placeholder]=\"parameters?.ButtonMenuMode === true ? parameters.Placeholder : formatPattern\"\r\n [primaryCalendarType]=\"Setting.CalendarType\"\r\n [formatPattern]=\"formatPattern\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [daterangeMode]=\"parameters?.DateRangeMode === true\"\r\n [inlineMode]=\"parameters?.InlineMode === true\"\r\n [readonly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n (valueChange)=\"onDateChange2($event)\"\r\n (rangeChange)=\"onRangeChange($event)\"\r\n >\r\n </bc-date-time-picker>\r\n</div>\r\n}\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i2.DateTimePickerComponent, selector: "bc-date-time-picker", inputs: ["placeholder", "primaryCalendarType", "formatPattern", "value", "timeValue", "startRangeDate", "endRangeDate", "isRangePicker", "showTime", "showDate", "rtl", "deviceSize", "isMobile", "readonly", "disabled", "buttonMenuMode", "inlineMode", "daterangeMode"], outputs: ["rangeChange", "valueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
128
|
+
}
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiDateTimeComponent, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{ selector: 'bsu-ui-date-time', providers: [
|
|
132
|
+
{
|
|
133
|
+
provide: DateService,
|
|
134
|
+
useFactory: getDateService,
|
|
135
|
+
deps: [LogService]
|
|
136
|
+
}
|
|
137
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if ((readonly$ | async) === true) {\r\n<input fd-form-control type=\"text\" [attr.readonly]=\"true\" [value]=\"value ? valueCaption : ''\" />\r\n} @else{\r\n<div\r\n [class.disabled]=\"(disable$ | async) === true\"\r\n [style.display]=\"(disableOrReadonly$ | async)!! ? 'hidden' : 'block'\"\r\n [attr.dir]=\"Setting.IsLtr === true ? 'ltr' : 'rtl'\"\r\n>\r\n <bc-date-time-picker\r\n [value]=\"value\"\r\n [buttonMenuMode]=\"parameters?.ButtonMenuMode === true\"\r\n [showDate]=\"Setting.ShowDate1\"\r\n [showTime]=\"Setting.ShowTime1\"\r\n [placeholder]=\"parameters?.ButtonMenuMode === true ? parameters.Placeholder : formatPattern\"\r\n [primaryCalendarType]=\"Setting.CalendarType\"\r\n [formatPattern]=\"formatPattern\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [daterangeMode]=\"parameters?.DateRangeMode === true\"\r\n [inlineMode]=\"parameters?.InlineMode === true\"\r\n [readonly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n (valueChange)=\"onDateChange2($event)\"\r\n (rangeChange)=\"onRangeChange($event)\"\r\n >\r\n </bc-date-time-picker>\r\n</div>\r\n}\r\n", styles: [":host{display:block}\n"] }]
|
|
138
|
+
}], propDecorators: { datetimePickerRef: [{
|
|
139
|
+
type: ViewChild,
|
|
140
|
+
args: ['datetimePicker']
|
|
141
|
+
}], datePickerRef: [{
|
|
142
|
+
type: ViewChild,
|
|
143
|
+
args: ['datePicker']
|
|
144
|
+
}], durationPickerRef: [{
|
|
145
|
+
type: ViewChild,
|
|
146
|
+
args: ['durationPicker']
|
|
147
|
+
}], GetCaption: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}] } });
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWRhdGUtdGltZS91aS1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZGF0ZS10aW1lL3VpLWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUdULEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBZ0I5QixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBZDNEOztRQW9CSSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUdWLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFnSGpDLG9CQUFvQjtRQUNYLGVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0tBQ2pEO0lBakhHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDekUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0csSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFT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LE9BQU8sRUFBRSxXQUFXOzRCQUNwQixVQUFVLEVBQUUsY0FBYzs0QkFDMUIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO3lCQUNyQjtxQkFDSixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdZLGlCQUFpQjtzQkFBN0MsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0YsYUFBYTtzQkFBckMsU0FBUzt1QkFBQyxZQUFZO2dCQUNNLGlCQUFpQjtzQkFBN0MsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBdUhsQixVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgT25Jbml0LFxyXG4gICAgSW5wdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIE5nWm9uZSxcclxuICAgIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBCYXJzYUFwaSxcclxuICAgIEZpZWxkQmFzZUNvbXBvbmVudCxcclxuICAgIERhdGVTZXJ2aWNlLFxyXG4gICAgTG9nU2VydmljZSxcclxuICAgIGdldERhdGVTZXJ2aWNlXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1kYXRlLXRpbWUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1kYXRlLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGdldERhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICBkZXBzOiBbTG9nU2VydmljZV1cclxuICAgICAgICB9XHJcbiAgICBdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlEYXRlVGltZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkYXRldGltZVBpY2tlcicpIGRhdGV0aW1lUGlja2VyUmVmOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdkdXJhdGlvblBpY2tlcicpIGR1cmF0aW9uUGlja2VyUmVmOiBFbGVtZW50UmVmO1xyXG4gICAgZnVsbENhbGVuZGFyOiBib29sZWFuO1xyXG4gICAgdmFsdWU6IERhdGU7XHJcbiAgICB2YWx1ZUNhcHRpb24gPSAnJztcclxuICAgIGZvcm1hdFBhdHRlcm46IHN0cmluZztcclxuICAgIHBhcmFtZXRlcnM6IFVpRGF0ZVRpbWVTZXR0aW5nO1xyXG4gICAgcHJpdmF0ZSBfbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcnM/LkRhdGVSYW5nZU1vZGUgJiYgdGhpcy5wYXJhbWV0ZXJzPy5EYXRlUmFuZ2VPdGhlckZpZWxkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1wYW5lbCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ0xheW91dENvbnRyb2wuY29uZmlnLkZvcm1QYW5lbFVpJywgbnVsbCk7XHJcbiAgICAgICAgICAgIGlmIChmb3JtcGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGZvcm1wYW5lbC5maXJlRXZlbnQoJ0NoYW5nZUZpZWxkVmlzaWJsZScsIHRoaXMucGFyYW1ldGVycy5EYXRlUmFuZ2VPdGhlckZpZWxkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvbnRleHQudmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mdWxsQ2FsZW5kYXIgPSB0aGlzLlNldHRpbmcuU2hvd1RpbWUxICYmIHRoaXMuU2V0dGluZy5TaG93RGF0ZTE7XHJcbiAgICAgICAgdGhpcy5fc2V0VGltZUZvcm1hdCgpO1xyXG4gICAgICAgIC8vIHRoaXMudmFsdWUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLnZhbHVlID0gPERhdGU+dmFsdWU7XHJcblxyXG4gICAgICAgIC8vICAgLy8gdGhpcy5fc2V0VmFsdWVDYXB0aW9uKHZhbHVlKTtcclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICAvLyAvLyB0aGlzLl9zZXRWYWx1ZUNhcHRpb24odGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3NldENhcHRpb24odGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkRhdGVUaW1lQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRhdGV0aW1lUGlja2VyQ29udHJvbCA9IHRoaXMuZGF0ZXRpbWVQaWNrZXJSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZXRpbWVQaWNrZXJDb250cm9sLmRhdGVWYWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2FwdGlvbiA9IGRhdGV0aW1lUGlja2VyQ29udHJvbC52YWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkRhdGVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZVBpY2tlckNvbnRyb2wgPSB0aGlzLmRhdGVQaWNrZXJSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLl92YWx1ZURhdGVDaGFuZ2UoZGF0ZVBpY2tlckNvbnRyb2wuZGF0ZVZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uRGF0ZUNoYW5nZTIoZGF0ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlRGF0ZUNoYW5nZShkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkR1cmF0aW9uQ2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBlLmRldGFpbDtcclxuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRpbWUgPSB2YWx1ZS5zcGxpdCgnOicpO1xyXG4gICAgICAgIHRoaXMudmFsdWUuc2V0SG91cnMoTnVtYmVyKHRpbWVbMF0pLCBOdW1iZXIodGltZVsxXSksIE51bWJlcih0aW1lWzJdKSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNhcHRpb24gPSB0aGlzLmR1cmF0aW9uUGlja2VyUmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgb25SYW5nZUNoYW5nZShyYW5nZVZhbHVlOiB7IHN0YXJ0RGF5OiBEYXRlOyBlbmREYXk6IERhdGUgfSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlbmREYXRlJywgcmFuZ2VWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldFRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGltZUZvcm1hdDogc3RyaW5nID0gdGhpcy5TZXR0aW5nLlRpbWVGb3JtYXQ/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgbGV0IHRpbWVGb3JtYXQyID0gJyc7XHJcbiAgICAgICAgaWYgKHRpbWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGltZUZvcm1hdDIgPSAnICc7XHJcbiAgICAgICAgICAgIHRpbWVGb3JtYXQuc3BsaXQoJzonKS5mb3JFYWNoKCh2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQyICs9ICdISCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2knOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0MiArPSAnOm1tJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQyICs9ICc6U1MnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSAhdGhpcy5TZXR0aW5nLlNob3dEYXRlMSA/ICcnIDogJ1lZWVkvTU0vREQnO1xyXG4gICAgICAgIGNvbnN0IHRpbWVGb3JtYXQzID0gIXRoaXMuU2V0dGluZy5TaG93VGltZTEgPyAnJyA6IHRpbWVGb3JtYXQyO1xyXG5cclxuICAgICAgICAvLyB0aW1lRm9ybWF0MiArPSAnIEEnO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0UGF0dGVybiA9IGAke2RhdGVGb3JtYXR9JHt0aW1lRm9ybWF0M31gO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9jb25maWdDaGFuZWQob3B0aW9ucyk6IHZvaWQge1xyXG4gICAgICAgIC8vIGltcGxlbWVudGVkIGJ5IGNoaWxkIGNvbXBvbmVudHNcclxuICAgICAgICB0aGlzLl9zZXRUaW1lRm9ybWF0KCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5TZXR0aW5nLlNob3dUaW1lMSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRlbXAgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICAgICAgdGVtcC5zZXRNaW51dGVzKDApO1xyXG4gICAgICAgICAgICAgICAgdGVtcC5zZXRTZWNvbmRzKDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgdGVtcCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVEYXRlQ2hhbmdlKG5ldyBEYXRlKHRlbXApKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3VwZXIuX2NvbmZpZ0NoYW5lZChvcHRpb25zKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWUodmFsdWU6IERhdGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXRDYXB0aW9uKHZhbHVlKTtcclxuICAgICAgICBzdXBlci5fc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfdmFsdWVEYXRlQ2hhbmdlKGRhdGVWYWx1ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsdWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNhcHRpb24gPSB0aGlzLl9zZXRDYXB0aW9uKGRhdGVWYWx1ZSk7IC8vIGRhdGVQaWNrZXJDb250cm9sLnZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3NldENhcHRpb24odmFsdWU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNhcHRpb24gPVxyXG4gICAgICAgICAgICAodGhpcy5jb250ZXh0LmNhcHRpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2FwdGlvbiA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRlU2VydmljZS5mb3JtYXQodmFsdWUsIHRoaXMuZm9ybWF0UGF0dGVybikpO1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcmV0dXJuIGNhcHRpb247XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgR2V0Q2FwdGlvbiA9ICgpID0+IHRoaXMudmFsdWVDYXB0aW9uO1xyXG59XHJcbmludGVyZmFjZSBVaURhdGVUaW1lU2V0dGluZyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgQnV0dG9uTWVudU1vZGU6IGJvb2xlYW47XHJcbiAgICBQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gICAgSW5saW5lTW9kZTogYm9vbGVhbjtcclxuICAgIERhdGVSYW5nZU1vZGU6IGJvb2xlYW47XHJcbiAgICBEYXRlUmFuZ2VPdGhlckZpZWxkOiBzdHJpbmc7XHJcbn1cclxuIiwiQGlmICgocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlKSB7XHJcbjxpbnB1dCBmZC1mb3JtLWNvbnRyb2wgdHlwZT1cInRleHRcIiBbYXR0ci5yZWFkb25seV09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlID8gdmFsdWVDYXB0aW9uIDogJydcIiAvPlxyXG59IEBlbHNle1xyXG48ZGl2XHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykhISA/ICdoaWRkZW4nIDogJ2Jsb2NrJ1wiXHJcbiAgICBbYXR0ci5kaXJdPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsdHInIDogJ3J0bCdcIlxyXG4+XHJcbiAgICA8YmMtZGF0ZS10aW1lLXBpY2tlclxyXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW2J1dHRvbk1lbnVNb2RlXT1cInBhcmFtZXRlcnM/LkJ1dHRvbk1lbnVNb2RlID09PSB0cnVlXCJcclxuICAgICAgICBbc2hvd0RhdGVdPVwiU2V0dGluZy5TaG93RGF0ZTFcIlxyXG4gICAgICAgIFtzaG93VGltZV09XCJTZXR0aW5nLlNob3dUaW1lMVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBhcmFtZXRlcnM/LkJ1dHRvbk1lbnVNb2RlID09PSB0cnVlID8gcGFyYW1ldGVycy5QbGFjZWhvbGRlciA6IGZvcm1hdFBhdHRlcm5cIlxyXG4gICAgICAgIFtwcmltYXJ5Q2FsZW5kYXJUeXBlXT1cIlNldHRpbmcuQ2FsZW5kYXJUeXBlXCJcclxuICAgICAgICBbZm9ybWF0UGF0dGVybl09XCJmb3JtYXRQYXR0ZXJuXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgICAgICBbZGF0ZXJhbmdlTW9kZV09XCJwYXJhbWV0ZXJzPy5EYXRlUmFuZ2VNb2RlID09PSB0cnVlXCJcclxuICAgICAgICBbaW5saW5lTW9kZV09XCJwYXJhbWV0ZXJzPy5JbmxpbmVNb2RlID09PSB0cnVlXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZTIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJhbmdlQ2hhbmdlKT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICA8L2JjLWRhdGUtdGltZS1waWNrZXI+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { map, takeUntil, tap } from 'rxjs/operators';
|
|
3
|
+
import { createGridEditorFormPanel, FormPanelService } from 'barsa-novin-ray-core';
|
|
4
|
+
import { SapUiReportBaseComponent } from '../sap-ui-report-base.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@fundamental-ngx/core/button";
|
|
8
|
+
import * as i3 from "@fundamental-ngx/core/toolbar";
|
|
9
|
+
import * as i4 from "../ulv-toolbar/ulv-toolbar.component";
|
|
10
|
+
import * as i5 from "../ui-matrix-view/ui-matrix-view.component";
|
|
11
|
+
import * as i6 from "barsa-novin-ray-core";
|
|
12
|
+
export class UiEditableGridComponent extends SapUiReportBaseComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.cellWidth = 100;
|
|
16
|
+
this.cellHeight = 38;
|
|
17
|
+
this.verticalLabelWidth = 100;
|
|
18
|
+
this.minWidth = 100;
|
|
19
|
+
this.minHeight = 22;
|
|
20
|
+
this.enableResizing = true;
|
|
21
|
+
this.rowResizer = true;
|
|
22
|
+
this.widthTypeEnum = WidthTypeEnum;
|
|
23
|
+
this.fitWidth = true;
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
super.ngOnInit();
|
|
27
|
+
this.valueDbName = this.context.Setting.View.ValueDbName;
|
|
28
|
+
this.valueType = this.context.valueFieldType;
|
|
29
|
+
const formSetting = this.context.Setting.FormTemplate;
|
|
30
|
+
// this.formLayout = this.context.Setting.FormTemplate.View.ControlInfo;
|
|
31
|
+
this.horizontalRows = this.context.Setting.View.HorizontalColumn;
|
|
32
|
+
this.valueControlFieldCaption = this.context.Setting.FormTemplate.View.ControlInfo.find((col) => col.ControlName === this.valueDbName).ControlFieldCaption;
|
|
33
|
+
// there is different between ulv modatalist and viewer datalist. in matrixviewer adapter modatalist transformed.
|
|
34
|
+
// so we need tell to ulvmainservice to update modatalist
|
|
35
|
+
this._ulvMainService.reSetMoDataList(this.context.moDataList);
|
|
36
|
+
this.matrixMoList$ = this.moDataList$.pipe(takeUntil(this._onDestroy$), map((moDataList) => this._matrixMoList(moDataList)));
|
|
37
|
+
if (!this.formPanelCtrlr) {
|
|
38
|
+
this.formPanelCtrlr = createGridEditorFormPanel(formSetting, formSetting.Data.Mo, this._typeDefId, null
|
|
39
|
+
// BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation')
|
|
40
|
+
);
|
|
41
|
+
const formPanelCtrlr = this.formPanelCtrlr;
|
|
42
|
+
this.formLayout = formPanelCtrlr.Setting.View.Layout94;
|
|
43
|
+
formPanelCtrlr.on({
|
|
44
|
+
ValueChange: this._cellValueChange.bind(this)
|
|
45
|
+
});
|
|
46
|
+
this.formPanelCtrlr.LoadAndCreate(null, false, false, () => {
|
|
47
|
+
const customFormPanelUi = formPanelCtrlr.Adapter.Control;
|
|
48
|
+
customFormPanelUi.Refresh = () => { };
|
|
49
|
+
this._formpanelService.context = formPanelCtrlr.Adapter.Control;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
onSave() {
|
|
54
|
+
this.context.fireEvent('SaveBatchClicked', this.moDataList.filter((c) => c.$Modified).map((c) => ({ data: c, modified: c.$Modified })));
|
|
55
|
+
}
|
|
56
|
+
onSelectionChange(cellInfo) {
|
|
57
|
+
const { value, index } = cellInfo;
|
|
58
|
+
this.activeCell = index;
|
|
59
|
+
// const newMo = getNewMoGridEditor(this.context.Setting.FormTemplate, this._typeDefId);
|
|
60
|
+
// newMo[this.valueDbName] = value;
|
|
61
|
+
const controlUi = this.formPanelCtrlr.GetFieldlByName(this.valueDbName);
|
|
62
|
+
controlUi.SetValue(value);
|
|
63
|
+
}
|
|
64
|
+
onChangeView(isFit) {
|
|
65
|
+
this.fitWidth = isFit;
|
|
66
|
+
}
|
|
67
|
+
/* eslint-disable */
|
|
68
|
+
_select(mo, index) {
|
|
69
|
+
return mo;
|
|
70
|
+
}
|
|
71
|
+
_matrixMoList(moDataList) {
|
|
72
|
+
moDataList.forEach((mo) => {
|
|
73
|
+
this.horizontalRows.forEach((col) => {
|
|
74
|
+
if (mo[col.Caption] === undefined) {
|
|
75
|
+
mo[col.Caption] = null;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
return moDataList;
|
|
80
|
+
}
|
|
81
|
+
_cellValueChange(sender) {
|
|
82
|
+
const indexI = this.activeCell.i;
|
|
83
|
+
const indexJ = this.activeCell.j;
|
|
84
|
+
this.moDataList$
|
|
85
|
+
.pipe(takeUntil(this._onDestroy$), tap((moDataList) => {
|
|
86
|
+
moDataList[indexI][this.horizontalRows[indexJ].Caption] = sender.Mo[this.valueDbName];
|
|
87
|
+
if (moDataList[indexI].$Modified) {
|
|
88
|
+
moDataList[indexI].$Modified[this.horizontalRows[indexJ].Caption] = 1;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
moDataList[indexI].$Modified = { [this.horizontalRows[indexJ].Caption]: 1 };
|
|
92
|
+
}
|
|
93
|
+
}))
|
|
94
|
+
.subscribe();
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiEditableGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiEditableGridComponent, selector: "bsu-ui-editable-grid", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n matrixTemplate;\r\n context: {\r\n moDataList: matrixMoList$ | async,\r\n columns: horizontalRows,\r\n conditionalFormats: conditionalFormats$ | async,\r\n deviceName: deviceName$ | async,\r\n deviceSize: deviceSize$ | async,\r\n title: title$ | async,\r\n inlineEditMode: inlineEditMode$ | async,\r\n allowInlineEdit: allowInlineEdit$ | async,\r\n hideToolbar: hideToolbar$ | async,\r\n contentDensity: contentDensity$ | async,\r\n activeCell: activeCell,\r\n valueControlFieldCaption: valueControlFieldCaption,\r\n valueType: valueType,\r\n formSetting: context.Setting.FormTemplate,\r\n matrixWidthType: matrixWidthType,\r\n cellWidth: cellWidth,\r\n verticalLabelWidth: verticalLabelWidth,\r\n fitWidth: fitWidth,\r\n access: context.Setting.Extra?.DefaultCommandsAccess,\r\n hasSelected: hasSelected$ | async,\r\n containerWidth: containerWidth$ | async,\r\n formLayout: formLayout\r\n }\r\n \"\r\n></ng-container>\r\n\r\n<ng-template\r\n #matrixTemplate\r\n let-moDataList=\"moDataList\"\r\n let-deviceName=\"deviceName\"\r\n let-deviceSize=\"deviceSize\"\r\n let-title=\"title\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-allowInlineEdit=\"allowInlineEdit\"\r\n let-hideToolbar=\"hideToolbar\"\r\n let-contentDensity=\"contentDensity\"\r\n let-columns=\"columns\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-activeCell=\"activeCell\"\r\n let-valueControlFieldCaption=\"valueControlFieldCaption\"\r\n let-valueType=\"valueType\"\r\n let-formSetting=\"formSetting\"\r\n let-matrixWidthType=\"matrixWidthType\"\r\n let-cellWidth=\"cellWidth\"\r\n let-verticalLabelWidth=\"verticalLabelWidth\"\r\n let-fitWidth=\"fitWidth\"\r\n let-access=\"access\"\r\n let-hasSelected=\"hasSelected\"\r\n let-containerWidth=\"containterWidth\"\r\n let-formLayout=\"formLayout\"\r\n>\r\n <bsu-ulv-toolbar\r\n [hideToolbar]=\"hideToolbar\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"title\"\r\n [hasSelected]=\"hasSelected\"\r\n [access]=\"access\"\r\n [contentDensity]=\"contentDensity\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [moDataListCount]=\"moDataList.length\"\r\n (sortClick)=\"onSortSettings(deviceName)\"\r\n (editModeClick)=\"onEditMode()\"\r\n >\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [fdType]=\"'emphasized'\"\r\n [label]=\"'Save' | bbbTranslate\"\r\n [glyph]=\"'save'\"\r\n (click)=\"onSave()\"\r\n ></button>\r\n <!-- <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(true)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.FitWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(false)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.StaticWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button> -->\r\n\r\n <ng-template #splitBtnTitle>\r\n <span>{{ fitWidth ? widthTypeEnum.FitWidth : widthTypeEnum.StaticWidth }}</span>\r\n </ng-template>\r\n </bsu-ulv-toolbar>\r\n <bsu-ui-matrix-view\r\n [moDataList]=\"moDataList\"\r\n [columns]=\"columns\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [activeCell]=\"activeCell\"\r\n [valueControlFieldCaption]=\"valueControlFieldCaption\"\r\n [valueType]=\"valueType\"\r\n [access]=\"access\"\r\n [formLayout]=\"formLayout\"\r\n [matrixWidthType]=\"matrixWidthType\"\r\n [cellWidth]=\"cellWidth\"\r\n [cellHeight]=\"cellHeight\"\r\n [verticalLabelWidth]=\"verticalLabelWidth\"\r\n [fitWidth]=\"fitWidth\"\r\n [minWidth]=\"minWidth\"\r\n [minHeight]=\"minHeight\"\r\n [rowResizer]=\"rowResizer\"\r\n [enableResizing]=\"enableResizing\"\r\n [containerWidth]=\"containerWidth\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n ></bsu-ui-matrix-view>\r\n</ng-template>\r\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.fd-table__row th.fd-table__cell{background-color:var(--sapList_HeaderBackground, #f2f2f2);color:var(--sapList_HeaderTextColor, #32363a)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i3.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i4.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "icon", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "cls", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i5.UiMatrixViewComponent, selector: "bsu-ui-matrix-view", inputs: ["deviceSize", "deviceName", "moDataList", "columns", "formLayout", "conditionalFormat", "activeCell", "valueControlFieldCaption", "formTemplate", "valueType", "cellWidth", "cellHeight", "verticalLabelWidth", "fitWidth", "minWidth", "minHeight", "rowResizer", "enableResizing"], outputs: ["selectionChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
98
|
+
}
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiEditableGridComponent, decorators: [{
|
|
100
|
+
type: Component,
|
|
101
|
+
args: [{ selector: 'bsu-ui-editable-grid', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], standalone: false, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n matrixTemplate;\r\n context: {\r\n moDataList: matrixMoList$ | async,\r\n columns: horizontalRows,\r\n conditionalFormats: conditionalFormats$ | async,\r\n deviceName: deviceName$ | async,\r\n deviceSize: deviceSize$ | async,\r\n title: title$ | async,\r\n inlineEditMode: inlineEditMode$ | async,\r\n allowInlineEdit: allowInlineEdit$ | async,\r\n hideToolbar: hideToolbar$ | async,\r\n contentDensity: contentDensity$ | async,\r\n activeCell: activeCell,\r\n valueControlFieldCaption: valueControlFieldCaption,\r\n valueType: valueType,\r\n formSetting: context.Setting.FormTemplate,\r\n matrixWidthType: matrixWidthType,\r\n cellWidth: cellWidth,\r\n verticalLabelWidth: verticalLabelWidth,\r\n fitWidth: fitWidth,\r\n access: context.Setting.Extra?.DefaultCommandsAccess,\r\n hasSelected: hasSelected$ | async,\r\n containerWidth: containerWidth$ | async,\r\n formLayout: formLayout\r\n }\r\n \"\r\n></ng-container>\r\n\r\n<ng-template\r\n #matrixTemplate\r\n let-moDataList=\"moDataList\"\r\n let-deviceName=\"deviceName\"\r\n let-deviceSize=\"deviceSize\"\r\n let-title=\"title\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-allowInlineEdit=\"allowInlineEdit\"\r\n let-hideToolbar=\"hideToolbar\"\r\n let-contentDensity=\"contentDensity\"\r\n let-columns=\"columns\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-activeCell=\"activeCell\"\r\n let-valueControlFieldCaption=\"valueControlFieldCaption\"\r\n let-valueType=\"valueType\"\r\n let-formSetting=\"formSetting\"\r\n let-matrixWidthType=\"matrixWidthType\"\r\n let-cellWidth=\"cellWidth\"\r\n let-verticalLabelWidth=\"verticalLabelWidth\"\r\n let-fitWidth=\"fitWidth\"\r\n let-access=\"access\"\r\n let-hasSelected=\"hasSelected\"\r\n let-containerWidth=\"containterWidth\"\r\n let-formLayout=\"formLayout\"\r\n>\r\n <bsu-ulv-toolbar\r\n [hideToolbar]=\"hideToolbar\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"title\"\r\n [hasSelected]=\"hasSelected\"\r\n [access]=\"access\"\r\n [contentDensity]=\"contentDensity\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [moDataListCount]=\"moDataList.length\"\r\n (sortClick)=\"onSortSettings(deviceName)\"\r\n (editModeClick)=\"onEditMode()\"\r\n >\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [fdType]=\"'emphasized'\"\r\n [label]=\"'Save' | bbbTranslate\"\r\n [glyph]=\"'save'\"\r\n (click)=\"onSave()\"\r\n ></button>\r\n <!-- <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(true)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.FitWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(false)\">\r\n <span fd-menu-title>\r\n {{ widthTypeEnum.StaticWidth }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button> -->\r\n\r\n <ng-template #splitBtnTitle>\r\n <span>{{ fitWidth ? widthTypeEnum.FitWidth : widthTypeEnum.StaticWidth }}</span>\r\n </ng-template>\r\n </bsu-ulv-toolbar>\r\n <bsu-ui-matrix-view\r\n [moDataList]=\"moDataList\"\r\n [columns]=\"columns\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [activeCell]=\"activeCell\"\r\n [valueControlFieldCaption]=\"valueControlFieldCaption\"\r\n [valueType]=\"valueType\"\r\n [access]=\"access\"\r\n [formLayout]=\"formLayout\"\r\n [matrixWidthType]=\"matrixWidthType\"\r\n [cellWidth]=\"cellWidth\"\r\n [cellHeight]=\"cellHeight\"\r\n [verticalLabelWidth]=\"verticalLabelWidth\"\r\n [fitWidth]=\"fitWidth\"\r\n [minWidth]=\"minWidth\"\r\n [minHeight]=\"minHeight\"\r\n [rowResizer]=\"rowResizer\"\r\n [enableResizing]=\"enableResizing\"\r\n [containerWidth]=\"containerWidth\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n ></bsu-ui-matrix-view>\r\n</ng-template>\r\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.fd-table__row th.fd-table__cell{background-color:var(--sapList_HeaderBackground, #f2f2f2);color:var(--sapList_HeaderTextColor, #32363a)}\n"] }]
|
|
102
|
+
}] });
|
|
103
|
+
export var WidthTypeEnum;
|
|
104
|
+
(function (WidthTypeEnum) {
|
|
105
|
+
WidthTypeEnum["FitWidth"] = "\u0633\u062A\u0648\u0646 \u0647\u0627\u06CC \u0647\u0645 \u0639\u0631\u0636";
|
|
106
|
+
WidthTypeEnum["StaticWidth"] = "\u0633\u062A\u0648\u0646 \u0647\u0627\u06CC \u0628\u0627 \u0639\u0631\u0636 \u062F\u0644\u062E\u0648\u0627\u0647";
|
|
107
|
+
})(WidthTypeEnum || (WidthTypeEnum = {}));
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1lZGl0YWJsZS1ncmlkL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZWRpdGFibGUtZ3JpZC91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBSW5CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBVzNFLE1BQU0sT0FBTyx1QkFDVCxTQUFRLHdCQUFpRDtJQVQ3RDs7UUFtQkksY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNoQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLHVCQUFrQixHQUFHLEdBQUcsQ0FBQztRQUN6QixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFDOUIsYUFBUSxHQUFHLElBQUksQ0FBQztLQTZGbkI7SUExRkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFD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QUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQy9CLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0EvR1EsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0NBSHJCLENBQUMsZ0JBQWdCLENBQUMsaURDbEJqQyw0NEpBZ0lBOzs0RkQzR2EsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsZ0JBQWdCLENBQUMsY0FDakIsS0FBSzs7QUFtSHJCLE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDckIseUdBQTRCLENBQUE7SUFDNUIsaUpBQXNDLENBQUE7QUFDMUMsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVHcmlkRWRpdG9yRm9ybVBhbmVsLFxyXG4gICAgRm9ybVBhbmVsU2VydmljZSxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmdcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFNhcFVpUmVwb3J0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3NhcC11aS1yZXBvcnQtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWVkaXRhYmxlLWdyaWQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZWRpdGFibGUtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUVkaXRhYmxlR3JpZENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBTYXBVaVJlcG9ydEJhc2VDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XHJcbntcclxuICAgIHZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvbjtcclxuICAgIHZhbHVlRGJOYW1lO1xyXG4gICAgaG9yaXpvbnRhbFJvd3M6IGFueVtdO1xyXG4gICAgYWN0aXZlQ2VsbDtcclxuICAgIHZhbHVlVHlwZTtcclxuICAgIGZvcm1MYXlvdXQ6IExheW91dFNldHRpbmc7XHJcbiAgICBtYXRyaXhXaWR0aFR5cGU7XHJcbiAgICBjZWxsV2lkdGggPSAxMDA7XHJcbiAgICBjZWxsSGVpZ2h0ID0gMzg7XHJcbiAgICB2ZXJ0aWNhbExhYmVsV2lkdGggPSAxMDA7XHJcbiAgICBtaW5XaWR0aCA9IDEwMDtcclxuICAgIG1pbkhlaWdodCA9IDIyO1xyXG4gICAgZW5hYmxlUmVzaXppbmcgPSB0cnVlO1xyXG4gICAgcm93UmVzaXplciA9IHRydWU7XHJcbiAgICB3aWR0aFR5cGVFbnVtID0gV2lkdGhUeXBlRW51bTtcclxuICAgIGZpdFdpZHRoID0gdHJ1ZTtcclxuICAgIG1hdHJpeE1vTGlzdCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPjtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVEYk5hbWUgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5WaWV3LlZhbHVlRGJOYW1lO1xyXG4gICAgICAgIHRoaXMudmFsdWVUeXBlID0gdGhpcy5jb250ZXh0LnZhbHVlRmllbGRUeXBlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nID0gdGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlO1xyXG4gICAgICAgIC8vIHRoaXMuZm9ybUxheW91dCA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkZvcm1UZW1wbGF0ZS5WaWV3LkNvbnRyb2xJbmZvO1xyXG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbFJvd3MgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5WaWV3Lkhvcml6b250YWxDb2x1bW47XHJcbiAgICAgICAgdGhpcy52YWx1ZUNvbnRyb2xGaWVsZENhcHRpb24gPSB0aGlzLmNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUuVmlldy5Db250cm9sSW5mby5maW5kKFxyXG4gICAgICAgICAgICAoY29sKSA9PiBjb2wuQ29udHJvbE5hbWUgPT09IHRoaXMudmFsdWVEYk5hbWVcclxuICAgICAgICApLkNvbnRyb2xGaWVsZENhcHRpb247XHJcbiAgICAgICAgLy8gdGhlcmUgaXMgZGlmZmVyZW50IGJldHdlZW4gdWx2IG1vZGF0YWxpc3QgYW5kIHZpZXdlciBkYXRhbGlzdC4gaW4gbWF0cml4dmlld2VyIGFkYXB0ZXIgbW9kYXRhbGlzdCB0cmFuc2Zvcm1lZC5cclxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRlbGwgdG8gdWx2bWFpbnNlcnZpY2UgdG8gdXBkYXRlIG1vZGF0YWxpc3RcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QodGhpcy5jb250ZXh0Lm1vRGF0YUxpc3QpO1xyXG5cclxuICAgICAgICB0aGlzLm1hdHJpeE1vTGlzdCQgPSB0aGlzLm1vRGF0YUxpc3QkLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgbWFwKChtb0RhdGFMaXN0KSA9PiB0aGlzLl9tYXRyaXhNb0xpc3QobW9EYXRhTGlzdCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1QYW5lbEN0cmxyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIgPSBjcmVhdGVHcmlkRWRpdG9yRm9ybVBhbmVsKFxyXG4gICAgICAgICAgICAgICAgZm9ybVNldHRpbmcsXHJcbiAgICAgICAgICAgICAgICBmb3JtU2V0dGluZy5EYXRhLk1vLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdHlwZURlZklkLFxyXG4gICAgICAgICAgICAgICAgbnVsbFxyXG4gICAgICAgICAgICAgICAgLy8gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LlNldHRpbmcsICdFeHRyYS5SZWxhdGlvbicpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyID0gdGhpcy5mb3JtUGFuZWxDdHJscjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtTGF5b3V0ID0gZm9ybVBhbmVsQ3RybHIuU2V0dGluZy5WaWV3LkxheW91dDk0O1xyXG5cclxuICAgICAgICAgICAgZm9ybVBhbmVsQ3RybHIub24oe1xyXG4gICAgICAgICAgICAgICAgVmFsdWVDaGFuZ2U6IHRoaXMuX2NlbGxWYWx1ZUNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLkxvYWRBbmRDcmVhdGUobnVsbCwgZmFsc2UsIGZhbHNlLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXN0b21Gb3JtUGFuZWxVaSA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcclxuICAgICAgICAgICAgICAgIGN1c3RvbUZvcm1QYW5lbFVpLlJlZnJlc2ggPSAoKSA9PiB7fTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1wYW5lbFNlcnZpY2UuY29udGV4dCA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoXHJcbiAgICAgICAgICAgICdTYXZlQmF0Y2hDbGlja2VkJyxcclxuICAgICAgICAgICAgdGhpcy5tb0RhdGFMaXN0LmZpbHRlcigoYykgPT4gYy4kTW9kaWZpZWQpLm1hcCgoYykgPT4gKHsgZGF0YTogYywgbW9kaWZpZWQ6IGMuJE1vZGlmaWVkIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvblNlbGVjdGlvbkNoYW5nZShjZWxsSW5mbzogeyB2YWx1ZTogYW55OyBpbmRleDogeyBpOiBudW1iZXI7IGo6IG51bWJlciB9IH0pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlLCBpbmRleCB9ID0gY2VsbEluZm87XHJcbiAgICAgICAgdGhpcy5hY3RpdmVDZWxsID0gaW5kZXg7XHJcbiAgICAgICAgLy8gY29uc3QgbmV3TW8gPSBnZXROZXdNb0dyaWRFZGl0b3IodGhpcy5jb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlLCB0aGlzLl90eXBlRGVmSWQpO1xyXG4gICAgICAgIC8vIG5ld01vW3RoaXMudmFsdWVEYk5hbWVdID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xVaSA9IHRoaXMuZm9ybVBhbmVsQ3RybHIuR2V0RmllbGRsQnlOYW1lKHRoaXMudmFsdWVEYk5hbWUpO1xyXG4gICAgICAgIGNvbnRyb2xVaS5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkNoYW5nZVZpZXcoaXNGaXQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpdFdpZHRoID0gaXNGaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIHByb3RlY3RlZCBfc2VsZWN0KG1vLCBpbmRleCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgICAgIHJldHVybiBtbztcclxuICAgIH1cclxuICAgIHByaXZhdGUgX21hdHJpeE1vTGlzdChtb0RhdGFMaXN0KTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbFJvd3MuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobW9bY29sLkNhcHRpb25dID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBtb1tjb2wuQ2FwdGlvbl0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbW9EYXRhTGlzdDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2NlbGxWYWx1ZUNoYW5nZShzZW5kZXIpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbmRleEkgPSB0aGlzLmFjdGl2ZUNlbGwuaTtcclxuICAgICAgICBjb25zdCBpbmRleEogPSB0aGlzLmFjdGl2ZUNlbGwuajtcclxuICAgICAgICB0aGlzLm1vRGF0YUxpc3QkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChtb0RhdGFMaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXSA9IHNlbmRlci5Nb1t0aGlzLnZhbHVlRGJOYW1lXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0W2luZGV4SV0uJE1vZGlmaWVkW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdFtpbmRleEldLiRNb2RpZmllZCA9IHsgW3RoaXMuaG9yaXpvbnRhbFJvd3NbaW5kZXhKXS5DYXB0aW9uXTogMSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBlbnVtIFdpZHRoVHlwZUVudW0ge1xyXG4gICAgRml0V2lkdGggPSAn2LPYqtmI2YYg2YfYp9uMINmH2YUg2LnYsdi2JyxcclxuICAgIFN0YXRpY1dpZHRoID0gJ9iz2KrZiNmGINmH2KfbjCDYqNinINi52LHYtiDYr9mE2K7ZiNin2YcnXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICBtYXRyaXhUZW1wbGF0ZTtcclxuICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIG1vRGF0YUxpc3Q6IG1hdHJpeE1vTGlzdCQgfCBhc3luYyxcclxuICAgICAgICAgICAgY29sdW1uczogaG9yaXpvbnRhbFJvd3MsXHJcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBkZXZpY2VOYW1lOiBkZXZpY2VOYW1lJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSQgfCBhc3luYyxcclxuICAgICAgICAgICAgYWxsb3dJbmxpbmVFZGl0OiBhbGxvd0lubGluZUVkaXQkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgIGhpZGVUb29sYmFyOiBoaWRlVG9vbGJhciQgfCBhc3luYyxcclxuICAgICAgICAgICAgY29udGVudERlbnNpdHk6IGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBhY3RpdmVDZWxsOiBhY3RpdmVDZWxsLFxyXG4gICAgICAgICAgICB2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb246IHZhbHVlQ29udHJvbEZpZWxkQ2FwdGlvbixcclxuICAgICAgICAgICAgdmFsdWVUeXBlOiB2YWx1ZVR5cGUsXHJcbiAgICAgICAgICAgIGZvcm1TZXR0aW5nOiBjb250ZXh0LlNldHRpbmcuRm9ybVRlbXBsYXRlLFxyXG4gICAgICAgICAgICBtYXRyaXhXaWR0aFR5cGU6IG1hdHJpeFdpZHRoVHlwZSxcclxuICAgICAgICAgICAgY2VsbFdpZHRoOiBjZWxsV2lkdGgsXHJcbiAgICAgICAgICAgIHZlcnRpY2FsTGFiZWxXaWR0aDogdmVydGljYWxMYWJlbFdpZHRoLFxyXG4gICAgICAgICAgICBmaXRXaWR0aDogZml0V2lkdGgsXHJcbiAgICAgICAgICAgIGFjY2VzczogY29udGV4dC5TZXR0aW5nLkV4dHJhPy5EZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXHJcbiAgICAgICAgICAgIGhhc1NlbGVjdGVkOiBoYXNTZWxlY3RlZCQgfCBhc3luYyxcclxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvbnRhaW5lcldpZHRoJCB8IGFzeW5jLFxyXG4gICAgICAgICAgICBmb3JtTGF5b3V0OiBmb3JtTGF5b3V0XHJcbiAgICAgICAgfVxyXG4gICAgXCJcclxuPjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjbWF0cml4VGVtcGxhdGVcclxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXHJcbiAgICBsZXQtZGV2aWNlTmFtZT1cImRldmljZU5hbWVcIlxyXG4gICAgbGV0LWRldmljZVNpemU9XCJkZXZpY2VTaXplXCJcclxuICAgIGxldC10aXRsZT1cInRpdGxlXCJcclxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgIGxldC1hbGxvd0lubGluZUVkaXQ9XCJhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgbGV0LWhpZGVUb29sYmFyPVwiaGlkZVRvb2xiYXJcIlxyXG4gICAgbGV0LWNvbnRlbnREZW5zaXR5PVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcclxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgbGV0LWFjdGl2ZUNlbGw9XCJhY3RpdmVDZWxsXCJcclxuICAgIGxldC12YWx1ZUNvbnRyb2xGaWVsZENhcHRpb249XCJ2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb25cIlxyXG4gICAgbGV0LXZhbHVlVHlwZT1cInZhbHVlVHlwZVwiXHJcbiAgICBsZXQtZm9ybVNldHRpbmc9XCJmb3JtU2V0dGluZ1wiXHJcbiAgICBsZXQtbWF0cml4V2lkdGhUeXBlPVwibWF0cml4V2lkdGhUeXBlXCJcclxuICAgIGxldC1jZWxsV2lkdGg9XCJjZWxsV2lkdGhcIlxyXG4gICAgbGV0LXZlcnRpY2FsTGFiZWxXaWR0aD1cInZlcnRpY2FsTGFiZWxXaWR0aFwiXHJcbiAgICBsZXQtZml0V2lkdGg9XCJmaXRXaWR0aFwiXHJcbiAgICBsZXQtYWNjZXNzPVwiYWNjZXNzXCJcclxuICAgIGxldC1oYXNTZWxlY3RlZD1cImhhc1NlbGVjdGVkXCJcclxuICAgIGxldC1jb250YWluZXJXaWR0aD1cImNvbnRhaW50ZXJXaWR0aFwiXHJcbiAgICBsZXQtZm9ybUxheW91dD1cImZvcm1MYXlvdXRcIlxyXG4+XHJcbiAgICA8YnN1LXVsdi10b29sYmFyXHJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cImhpZGVUb29sYmFyXCJcclxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgIFtoYXNTZWxlY3RlZF09XCJoYXNTZWxlY3RlZFwiXHJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxyXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXHJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXHJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Lmxlbmd0aFwiXHJcbiAgICAgICAgKHNvcnRDbGljayk9XCJvblNvcnRTZXR0aW5ncyhkZXZpY2VOYW1lKVwiXHJcbiAgICAgICAgKGVkaXRNb2RlQ2xpY2spPVwib25FZGl0TW9kZSgpXCJcclxuICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgW2ZkVHlwZV09XCInZW1waGFzaXplZCdcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ1NhdmUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgW2dseXBoXT1cIidzYXZlJ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIDwhLS0gPGZkLXNwbGl0LWJ1dHRvblxyXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgW21haW5BY3Rpb25dPVwie1xyXG4gICAgICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtYWluQWN0aW9uVGl0bGU6IHNwbGl0QnRuVGl0bGVcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZmQtbWVudT5cclxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcodHJ1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdpZHRoVHlwZUVudW0uRml0V2lkdGggfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcoZmFsc2UpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3aWR0aFR5cGVFbnVtLlN0YXRpY1dpZHRoIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvZmQtbWVudT5cclxuICAgICAgICA8L2ZkLXNwbGl0LWJ1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5UaXRsZT5cclxuICAgICAgICAgICAgPHNwYW4+e3sgZml0V2lkdGggPyB3aWR0aFR5cGVFbnVtLkZpdFdpZHRoIDogd2lkdGhUeXBlRW51bS5TdGF0aWNXaWR0aCB9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9ic3UtdWx2LXRvb2xiYXI+XHJcbiAgICA8YnN1LXVpLW1hdHJpeC12aWV3XHJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFthY3RpdmVDZWxsXT1cImFjdGl2ZUNlbGxcIlxyXG4gICAgICAgIFt2YWx1ZUNvbnRyb2xGaWVsZENhcHRpb25dPVwidmFsdWVDb250cm9sRmllbGRDYXB0aW9uXCJcclxuICAgICAgICBbdmFsdWVUeXBlXT1cInZhbHVlVHlwZVwiXHJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxyXG4gICAgICAgIFtmb3JtTGF5b3V0XT1cImZvcm1MYXlvdXRcIlxyXG4gICAgICAgIFttYXRyaXhXaWR0aFR5cGVdPVwibWF0cml4V2lkdGhUeXBlXCJcclxuICAgICAgICBbY2VsbFdpZHRoXT1cImNlbGxXaWR0aFwiXHJcbiAgICAgICAgW2NlbGxIZWlnaHRdPVwiY2VsbEhlaWdodFwiXHJcbiAgICAgICAgW3ZlcnRpY2FsTGFiZWxXaWR0aF09XCJ2ZXJ0aWNhbExhYmVsV2lkdGhcIlxyXG4gICAgICAgIFtmaXRXaWR0aF09XCJmaXRXaWR0aFwiXHJcbiAgICAgICAgW21pbldpZHRoXT1cIm1pbldpZHRoXCJcclxuICAgICAgICBbbWluSGVpZ2h0XT1cIm1pbkhlaWdodFwiXHJcbiAgICAgICAgW3Jvd1Jlc2l6ZXJdPVwicm93UmVzaXplclwiXHJcbiAgICAgICAgW2VuYWJsZVJlc2l6aW5nXT1cImVuYWJsZVJlc2l6aW5nXCJcclxuICAgICAgICBbY29udGFpbmVyV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxyXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9ic3UtdWktbWF0cml4LXZpZXc+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
5
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
6
|
+
import * as i3 from "@fundamental-ngx/core/button";
|
|
7
|
+
import * as i4 from "@fundamental-ngx/core/dialog";
|
|
8
|
+
import * as i5 from "@fundamental-ngx/core/title";
|
|
9
|
+
export class UiExceptionFormComponent extends BaseComponent {
|
|
10
|
+
constructor(_dialogService) {
|
|
11
|
+
super();
|
|
12
|
+
this._dialogService = _dialogService;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
super.ngOnInit();
|
|
16
|
+
BarsaApi.Ui.ExceptionForm.IsHandled = true;
|
|
17
|
+
BarsaApi.Ui.ExceptionForm.Show = (text, detail, callback) => {
|
|
18
|
+
this._dialogService.open(this.templateRef, {
|
|
19
|
+
...{ text, detail, callback },
|
|
20
|
+
responsivePadding: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
onClose(dialog, dialogConfig) {
|
|
25
|
+
dialog.close();
|
|
26
|
+
if (dialogConfig.callback) {
|
|
27
|
+
dialogConfig.callback();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
onContinue(dialog, dialogConfig) {
|
|
31
|
+
dialog.close();
|
|
32
|
+
if (dialogConfig.callback) {
|
|
33
|
+
dialogConfig.callback();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
onLogout(dialog, dialogConfig) {
|
|
37
|
+
dialog.close();
|
|
38
|
+
if (dialogConfig.callback) {
|
|
39
|
+
dialogConfig.callback();
|
|
40
|
+
}
|
|
41
|
+
BarsaApi.Bw.Logout();
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiExceptionFormComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiExceptionFormComponent, selector: "bsu-ui-exception-form", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>\n {{ dialogConfig.text }}\n </h1>\n\n <button fd-dialog-close-button (click)=\"onClose(dialog, dialogConfig)\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body style=\"padding: 15px\">\n <div style=\"min-height: 125px\">\n <label fd-label [innerHtml]=\"dialogConfig.detail\"> </label>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"'emphasized'\"\n [label]=\"'Continue' | bbbTranslate\"\n (click)=\"onContinue(dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"'standard'\"\n [label]=\"'Copy' | bbbTranslate\"\n [copy]=\"dialogConfig.detail\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"'negative'\"\n [label]=\"'Logout' | bbbTranslate\"\n (click)=\"onLogout(dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.CopyDirective, selector: "[copy]", inputs: ["copy"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i4.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiExceptionFormComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'bsu-ui-exception-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>\n {{ dialogConfig.text }}\n </h1>\n\n <button fd-dialog-close-button (click)=\"onClose(dialog, dialogConfig)\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body style=\"padding: 15px\">\n <div style=\"min-height: 125px\">\n <label fd-label [innerHtml]=\"dialogConfig.detail\"> </label>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"'emphasized'\"\n [label]=\"'Continue' | bbbTranslate\"\n (click)=\"onContinue(dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"'standard'\"\n [label]=\"'Copy' | bbbTranslate\"\n [copy]=\"dialogConfig.detail\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"'negative'\"\n [label]=\"'Logout' | bbbTranslate\"\n (click)=\"onLogout(dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
|
|
49
|
+
}], ctorParameters: () => [{ type: i1.DialogService }], propDecorators: { templateRef: [{
|
|
50
|
+
type: ViewChild,
|
|
51
|
+
args: ['templateRef']
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZXhjZXB0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZXhjZXB0aW9uLWZvcm0vdWktZXhjZXB0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZXhjZXB0aW9uLWZvcm0vdWktZXhjZXB0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25HLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFRL0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFFdkQsWUFBb0IsY0FBNkI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFEUSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtJQUVqRCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdkMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO2dCQUM3QixpQkFBaUIsRUFBRSxJQUFJO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVk7UUFDeEIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZO1FBQzNCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBWTtRQUN6QixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUNELFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FsQ1Esd0JBQXdCO21HQUF4Qix3QkFBd0IsZ01DWHJDLG15REErQ0E7OzRGRHBDYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7a0ZBR1MsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQmFyc2FBcGkgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktZXhjZXB0aW9uLWZvcm0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWV4Y2VwdGlvbi1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWV4Y2VwdGlvbi1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUV4Y2VwdGlvbkZvcm1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmJykgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIEJhcnNhQXBpLlVpLkV4Y2VwdGlvbkZvcm0uSXNIYW5kbGVkID0gdHJ1ZTtcclxuICAgICAgICBCYXJzYUFwaS5VaS5FeGNlcHRpb25Gb3JtLlNob3cgPSAodGV4dCwgZGV0YWlsLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy50ZW1wbGF0ZVJlZiwge1xyXG4gICAgICAgICAgICAgICAgLi4ueyB0ZXh0LCBkZXRhaWwsIGNhbGxiYWNrIH0sXHJcbiAgICAgICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgb25DbG9zZShkaWFsb2csIGRpYWxvZ0NvbmZpZyk6IHZvaWQge1xyXG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xyXG4gICAgICAgIGlmIChkaWFsb2dDb25maWcuY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25Db250aW51ZShkaWFsb2csIGRpYWxvZ0NvbmZpZyk6IHZvaWQge1xyXG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xyXG4gICAgICAgIGlmIChkaWFsb2dDb25maWcuY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25Mb2dvdXQoZGlhbG9nLCBkaWFsb2dDb25maWcpOiB2b2lkIHtcclxuICAgICAgICBkaWFsb2cuY2xvc2UoKTtcclxuICAgICAgICBpZiAoZGlhbG9nQ29uZmlnLmNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5jYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCYXJzYUFwaS5Cdy5Mb2dvdXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI3RlbXBsYXRlUmVmPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICB7eyBkaWFsb2dDb25maWcudGV4dCB9fVxuICAgICAgICAgICAgPC9oMT5cblxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJvbkNsb3NlKGRpYWxvZywgZGlhbG9nQ29uZmlnKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5IHN0eWxlPVwicGFkZGluZzogMTVweFwiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEyNXB4XCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZkLWxhYmVsIFtpbm5lckh0bWxdPVwiZGlhbG9nQ29uZmlnLmRldGFpbFwiPiA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIidlbXBoYXNpemVkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ29udGludWUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29udGludWUoZGlhbG9nLCBkaWFsb2dDb25maWcpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCInc3RhbmRhcmQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDb3B5JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb3B5XT1cImRpYWxvZ0NvbmZpZy5kZXRhaWxcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIiduZWdhdGl2ZSdcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xvZ291dCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2dvdXQoZGlhbG9nLCBkaWFsb2dDb25maWcpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
|