barsa-sap-ui 1.0.456 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/barsa-sap-ui.mjs +4 -4
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +89 -0
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +127 -0
- package/{esm2020 → esm2022}/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -23
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +30 -0
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -24
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +260 -0
- package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +56 -0
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +77 -0
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
- package/{esm2020 → esm2022}/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -23
- package/{esm2020 → esm2022}/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +15 -15
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +41 -0
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +37 -0
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +53 -0
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -28
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +98 -0
- package/{esm2020 → esm2022}/lib/barsa-sap-ui-routing.module.mjs +18 -18
- package/esm2022/lib/barsa-sap-ui.module.mjs +360 -0
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +168 -0
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +27 -0
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +198 -0
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +61 -0
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +417 -0
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +129 -0
- package/{esm2020 → esm2022}/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +19 -19
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +208 -0
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +78 -0
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +44 -0
- package/{esm2020 → esm2022}/lib/captcha-field/captcha-field.component.mjs +28 -28
- package/esm2022/lib/card-item/card-item.component.mjs +76 -0
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
- package/esm2022/lib/col-renderer.directive.mjs +46 -0
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +60 -0
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +85 -0
- package/esm2022/lib/constants.mjs +421 -0
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/device-info-field-base.mjs +23 -23
- package/{esm2020 → esm2022}/lib/dialog-handler.directive.mjs +28 -28
- package/esm2022/lib/download-files.directive.mjs +33 -0
- package/esm2022/lib/dynamic-page-size.pipe.mjs +26 -0
- package/{esm2020 → esm2022}/lib/file-in-dialog/file-in-dialog.component.mjs +44 -44
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/file-viewer-content/file-viewer-content.component.mjs +53 -53
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +41 -0
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +142 -0
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +44 -0
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +43 -0
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
- package/esm2022/lib/fullscreen-dialog.directive.mjs +59 -0
- package/esm2022/lib/fullscreen-files.directive.mjs +42 -0
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +188 -0
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +203 -0
- package/{esm2020 → esm2022}/lib/global-search/global-search.component.mjs +27 -27
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
- package/{esm2020 → esm2022}/lib/header-facet-form/header-facet-form.component.mjs +22 -22
- package/{esm2020 → esm2022}/lib/header-facet-key-value/header-facet-key-value.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/header-facet-microchart/header-facet-microchart.component.mjs +21 -21
- package/{esm2020 → esm2022}/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +28 -28
- package/esm2022/lib/header-facet-progress/header-facet-progress.component.mjs +25 -0
- package/esm2022/lib/header-facet-rate/header-facet-rate.component.mjs +25 -0
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
- package/esm2022/lib/index.mjs +564 -0
- package/{esm2020 → esm2022}/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -32
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +68 -0
- package/esm2022/lib/layout-control/layout-control.component.mjs +234 -0
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +154 -0
- package/esm2022/lib/list-item/list-item.component.mjs +34 -0
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +71 -0
- package/esm2022/lib/ly-label/ly-label.component.mjs +34 -0
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
- package/{esm2020 → esm2022}/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -24
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +73 -0
- package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +52 -0
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +50 -0
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/mask/mask.component.mjs +22 -22
- package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
- package/esm2022/lib/models/grid-data-provider.mjs +83 -0
- package/esm2022/lib/models/grid-view.mjs +2 -0
- package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
- package/esm2022/lib/no-data/no-data.component.mjs +31 -0
- package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
- package/esm2022/lib/notification-popup.service.mjs +92 -0
- package/{esm2020 → esm2022}/lib/progress-indicator/progress-indicator.component.mjs +18 -18
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +63 -0
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
- package/esm2022/lib/report-tree-base.mjs +408 -0
- package/esm2022/lib/report-view-renderer.directive.mjs +366 -0
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
- package/esm2022/lib/sap-font-class.pipe.mjs +29 -0
- package/esm2022/lib/sap-font.pipe.mjs +29 -0
- package/esm2022/lib/sap-size.pipe.mjs +27 -0
- package/esm2022/lib/sap-ui-report-base.component.mjs +765 -0
- package/esm2022/lib/search-panel/search-panel.component.mjs +42 -0
- package/{esm2020 → esm2022}/lib/static-text/static-text.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/title/title.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +18 -18
- package/esm2022/lib/ui-button/ui-button.component.mjs +31 -0
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +59 -0
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +34 -0
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +34 -0
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +149 -0
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +110 -0
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +121 -0
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +92 -0
- package/{esm2020 → esm2022}/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -32
- package/{esm2020 → esm2022}/lib/ui-graph/ui-graph.component.mjs +17 -17
- package/{esm2020 → esm2022}/lib/ui-grid/ui-grid.component.mjs +25 -25
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +155 -0
- package/{esm2020 → esm2022}/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -16
- package/{esm2020 → esm2022}/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/ui-label/ui-label.component.mjs +12 -12
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +349 -0
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +75 -0
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
- package/{esm2020 → esm2022}/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -14
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +430 -0
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +24 -0
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
- package/{esm2020 → esm2022}/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -21
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +261 -0
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +98 -0
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +223 -0
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -24
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +37 -0
- package/{esm2020 → esm2022}/lib/ui-single-picture/ui-single-picture.component.mjs +36 -36
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +155 -0
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/ui-time-span/ui-time-span.component.mjs +24 -24
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +92 -0
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +80 -0
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +289 -0
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +117 -0
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +60 -0
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +87 -0
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +184 -0
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +44 -0
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +115 -0
- package/esm2022/lib/upload-file-status.pipe.mjs +28 -0
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
- package/{esm2020 → esm2022}/lib/wizard-layout.directive.mjs +103 -103
- package/{esm2020 → esm2022}/public-api.mjs +230 -222
- package/fesm2022/barsa-sap-ui.mjs +14745 -0
- package/fesm2022/barsa-sap-ui.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/apply-conditional-formmatings.directive.d.ts +25 -25
- package/lib/barsa-answer-card/barsa-answer-card.component.d.ts +12 -12
- package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +29 -29
- package/lib/barsa-bar-panel/barsa-bar-panel.component.d.ts +9 -9
- package/lib/barsa-base-panel/barsa-base-layout-panel.component.d.ts +12 -12
- package/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.d.ts +15 -15
- package/lib/barsa-card-row-payam/barsa-card-row-payam.component.d.ts +20 -20
- package/lib/barsa-cartable-form/barsa-cartable-form.component.d.ts +10 -10
- package/lib/barsa-cartable-template/barsa-cartable-template.component.d.ts +14 -14
- package/lib/barsa-chat/barsa-chat.component.d.ts +48 -0
- package/lib/barsa-chat/chat.model.d.ts +43 -0
- package/lib/barsa-chat-content/barsa-chat-content.component.d.ts +5 -0
- package/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.d.ts +9 -0
- package/lib/barsa-chat-list/barsa-chat-list.component.d.ts +16 -0
- package/lib/barsa-chat-message/barsa-chat-message.component.d.ts +16 -0
- package/lib/barsa-chat-thread/barsa-chat-thread.component.d.ts +6 -0
- package/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.d.ts +5 -0
- package/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.d.ts +5 -0
- package/lib/barsa-chip/barsa-chip.component.d.ts +20 -20
- package/lib/barsa-column-indicator/barsa-column-indicator.component.d.ts +11 -11
- package/lib/barsa-column-rownumber/barsa-column-rownumber.component.d.ts +8 -8
- package/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.d.ts +6 -6
- package/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.d.ts +10 -10
- package/lib/barsa-date-time-picker/barsa-date-time-picker.component.d.ts +18 -18
- package/lib/barsa-dynamic-field/barsa-dynamic-field.component.d.ts +16 -16
- package/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.d.ts +23 -23
- package/lib/barsa-field-key-value/barsa-field-key-value.component.d.ts +26 -26
- package/lib/barsa-form-side-content/barsa-form-side-content.component.d.ts +25 -23
- package/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.d.ts +16 -16
- package/lib/barsa-group-cartable/barsa-cartable-group.component.d.ts +26 -26
- package/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.d.ts +14 -14
- package/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.d.ts +12 -12
- package/lib/barsa-list-file-linear/barsa-list-file-linear.component.d.ts +17 -17
- package/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.d.ts +8 -8
- package/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.d.ts +9 -9
- package/lib/barsa-monaco-editor/barsa-monaco-editor.component.d.ts +23 -23
- package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +14 -14
- package/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.d.ts +79 -79
- package/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.d.ts +7 -7
- package/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.d.ts +13 -13
- package/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.d.ts +7 -7
- package/lib/barsa-question-answer-form/barsa-question-answer-form.component.d.ts +10 -10
- package/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.d.ts +13 -13
- package/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.d.ts +14 -14
- package/lib/barsa-question-post/barsa-question-post.component.d.ts +10 -10
- package/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.d.ts +9 -9
- package/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.d.ts +15 -15
- package/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.d.ts +31 -31
- package/lib/barsa-sap-ui-routing.module.d.ts +7 -7
- package/lib/barsa-sap-ui.module.d.ts +245 -234
- package/lib/barsa-search-form/barsa-search-form.component.d.ts +8 -8
- package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +73 -73
- package/lib/barsa-table-column/barsa-table-column.component.d.ts +8 -8
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +59 -59
- package/lib/barsa-table-row/barsa-table-row.component.d.ts +18 -18
- package/lib/barsa-tag-categories/barsa-tag-categories.component.d.ts +11 -11
- package/lib/barsa-tag-chip/barsa-tag-chip.component.d.ts +10 -10
- package/lib/barsa-tags-category-row/barsa-tags-category-row.component.d.ts +9 -9
- package/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.d.ts +18 -18
- package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +54 -54
- package/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.d.ts +12 -12
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +54 -54
- package/lib/barsa-tree-item/node-has-one-depth-level.pipe.d.ts +8 -8
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +72 -72
- package/lib/blob-viewer/blob-viewer.component.d.ts +24 -24
- package/lib/breadcrumb/breadcrumb.component.d.ts +17 -17
- package/lib/captcha-field/captcha-field.component.d.ts +10 -10
- package/lib/card-item/card-item.component.d.ts +20 -20
- package/lib/card-view-content/card-view-content.component.d.ts +14 -14
- package/lib/col-renderer.directive.d.ts +10 -10
- package/lib/column-matrix-renderer/column-matrix-renderer.component.d.ts +23 -23
- package/lib/column-matrix-renderer/matrix-value.pipe.d.ts +8 -8
- package/lib/column-renderer/column-renderer.component.d.ts +33 -33
- package/lib/constants.d.ts +12 -12
- package/lib/custom-date-time/custom-date-time.component.d.ts +26 -26
- package/lib/device-info-field-base.d.ts +12 -12
- package/lib/dialog-handler.directive.d.ts +12 -12
- package/lib/download-files.directive.d.ts +9 -9
- package/lib/dynamic-page-size.pipe.d.ts +8 -8
- package/lib/file-in-dialog/file-in-dialog.component.d.ts +16 -16
- package/lib/file-viewer/file-viewer.component.d.ts +21 -21
- package/lib/file-viewer-content/file-viewer-content.component.d.ts +20 -20
- package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +17 -17
- package/lib/form-dialog/form-dialog.component.d.ts +45 -45
- package/lib/form-dialog-less/form-dialog-less.component.d.ts +29 -29
- package/lib/form-toolbar/form-toolbar.component.d.ts +14 -14
- package/lib/form-toolbar-button/form-toolbar-button.component.d.ts +20 -20
- package/lib/form-wizard/form-wizard.component.d.ts +8 -8
- package/lib/fullscreen-dialog.directive.d.ts +20 -20
- package/lib/fullscreen-files.directive.d.ts +16 -16
- package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +76 -76
- package/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.d.ts +18 -18
- package/lib/global-search/global-search.component.d.ts +11 -11
- package/lib/global-search-module/global-search-module.component.d.ts +18 -18
- package/lib/global-search-panel/global-search-panel.component.d.ts +9 -9
- package/lib/header-avatar/header-avatar.component.d.ts +8 -8
- package/lib/header-facet-form/header-facet-form.component.d.ts +9 -9
- package/lib/header-facet-key-value/header-facet-key-value.component.d.ts +11 -11
- package/lib/header-facet-microchart/header-facet-microchart.component.d.ts +8 -8
- package/lib/header-facet-plain-text/header-facet-plain-text.component.d.ts +11 -11
- package/lib/header-facet-progress/header-facet-progress.component.d.ts +11 -11
- package/lib/header-facet-rate/header-facet-rate.component.d.ts +11 -11
- package/lib/htree-create-new/htree-create-new.component.d.ts +13 -13
- package/lib/hyperlink/hyperlink.component.d.ts +7 -7
- package/lib/index.d.ts +102 -100
- package/lib/inline-save-and-cancel/inline-save-and-cancel.component.d.ts +11 -11
- package/lib/layout-actions/layout-actions.component.d.ts +25 -25
- package/lib/layout-control/layout-control.component.d.ts +67 -67
- package/lib/layout-wizard/layout-wizard.component.d.ts +28 -28
- package/lib/list-item/list-item.component.d.ts +14 -14
- package/lib/ly-empty-space/ly-empty-space.component.d.ts +13 -13
- package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +23 -23
- package/lib/ly-label/ly-label.component.d.ts +16 -16
- package/lib/ly-layout-container/ly-layout-container.component.d.ts +26 -26
- package/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.d.ts +8 -8
- package/lib/ly-layout-field-label/ly-layout-field-label.component.d.ts +13 -13
- package/lib/ly-layout-panel/ly-layout-panel.component.d.ts +26 -26
- package/lib/ly-line/ly-line.component.d.ts +17 -17
- package/lib/ly-simple-label/ly-simple-label.component.d.ts +9 -9
- package/lib/ly-tab-container/ly-tab-container.component.d.ts +19 -19
- package/lib/ly-tab-page/ly-tab-page.component.d.ts +20 -20
- package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +19 -19
- package/lib/manage-filters-report/manage-filters-report.component.d.ts +24 -24
- package/lib/mask/mask.component.d.ts +9 -9
- package/lib/message-strip/message-strip.component.d.ts +11 -11
- package/lib/models/grid-data-provider.d.ts +22 -22
- package/lib/models/grid-view.d.ts +61 -61
- package/lib/models/index.d.ts +1 -1
- package/lib/no-data/no-data.component.d.ts +11 -9
- package/lib/notification-item/notification-item.component.d.ts +43 -43
- package/lib/notification-popup.service.d.ts +17 -17
- package/lib/progress-indicator/progress-indicator.component.d.ts +8 -8
- package/lib/report-navigator/report-navigator.component.d.ts +21 -21
- package/lib/report-new-top-form/report-new-top-form.component.d.ts +18 -18
- package/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.d.ts +14 -14
- package/lib/report-search-fields-manage/report-search-fields-manage.component.d.ts +20 -20
- package/lib/report-search-panel-save/report-search-panel-save.component.d.ts +27 -27
- package/lib/report-tree-base.d.ts +62 -62
- package/lib/report-view-renderer.directive.d.ts +117 -117
- package/lib/responsive-toolbar/responsive-toolbar.component.d.ts +19 -19
- package/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.d.ts +24 -24
- package/lib/rich-text-static/rich-text-static.component.d.ts +28 -28
- package/lib/sap-font-class.pipe.d.ts +8 -8
- package/lib/sap-font.pipe.d.ts +9 -9
- package/lib/sap-size.pipe.d.ts +8 -8
- package/lib/sap-ui-report-base.component.d.ts +154 -154
- package/lib/search-panel/search-panel.component.d.ts +14 -14
- package/lib/static-text/static-text.component.d.ts +7 -7
- package/lib/title/title.component.d.ts +7 -7
- package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +9 -9
- package/lib/ui-button/ui-button.component.d.ts +11 -11
- package/lib/ui-calendar/ui-calendar.component.d.ts +19 -19
- package/lib/ui-card-view/ui-card-view.component.d.ts +16 -16
- package/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.d.ts +12 -12
- package/lib/ui-check-box/ui-check-box.component.d.ts +14 -14
- package/lib/ui-color-ui/ui-color-ui.component.d.ts +16 -16
- package/lib/ui-container-with-button/ui-container-with-button.component.d.ts +11 -11
- package/lib/ui-date-range-ex/ui-date-range-ex.component.d.ts +35 -36
- package/lib/ui-date-time/ui-date-time.component.d.ts +39 -40
- package/lib/ui-editable-grid/ui-editable-grid.component.d.ts +43 -43
- package/lib/ui-exception-form/ui-exception-form.component.d.ts +15 -15
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +50 -50
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +53 -53
- package/lib/ui-gantt-chart/ui-gantt-chart.component.d.ts +15 -15
- package/lib/ui-graph/ui-graph.component.d.ts +9 -9
- package/lib/ui-grid/ui-grid.component.d.ts +12 -12
- package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +14 -14
- package/lib/ui-grid-filter-item/ui-grid-filter-item.component.d.ts +19 -19
- package/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.d.ts +24 -24
- package/lib/ui-grid-sort-item/ui-grid-sort-item.component.d.ts +25 -25
- package/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.d.ts +28 -28
- package/lib/ui-html-viewer/ui-html-viewer.component.d.ts +9 -9
- package/lib/ui-info-bar-panel/ui-info-bar-panel.component.d.ts +5 -5
- package/lib/ui-label/ui-label.component.d.ts +6 -6
- package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +73 -73
- package/lib/ui-list-view/ui-list-view.component.d.ts +29 -29
- package/lib/ui-matrix-view/ui-matrix-view.component.d.ts +45 -45
- package/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.d.ts +7 -7
- package/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.d.ts +6 -6
- package/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.d.ts +15 -15
- package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +90 -90
- package/lib/ui-monaco-editor/ui-monaco-editor.component.d.ts +10 -7
- package/lib/ui-multi-select-card/ui-multi-select-card.component.d.ts +17 -17
- package/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.d.ts +19 -19
- package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +27 -27
- package/lib/ui-multi-select-radio/ui-multi-select-radio.component.d.ts +17 -17
- package/lib/ui-multi-select-slider/ui-multi-select-slider.component.d.ts +24 -24
- package/lib/ui-multi-select-smile/ui-multi-select-smile.component.d.ts +23 -23
- package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +11 -11
- package/lib/ui-num-int-slider/ui-num-int-slider.component.d.ts +18 -18
- package/lib/ui-num-int-ui/ui-num-int-ui.component.d.ts +10 -10
- package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +79 -79
- package/lib/ui-picture-file/ui-picture-file.component.d.ts +26 -25
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +80 -69
- package/lib/ui-radio-group/ui-radio-group.component.d.ts +20 -20
- package/lib/ui-read-only-field/ui-read-only-field.component.d.ts +21 -21
- package/lib/ui-report-container/ui-report-container.component.d.ts +17 -17
- package/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.d.ts +9 -9
- package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +16 -16
- package/lib/ui-single-picture/ui-single-picture.component.d.ts +13 -13
- package/lib/ui-switch-button/ui-switch-button.component.d.ts +11 -11
- package/lib/ui-table-view/ui-table-view.component.d.ts +39 -39
- package/lib/ui-text-area/ui-text-area.component.d.ts +23 -23
- package/lib/ui-text-field/ui-text-field.component.d.ts +23 -23
- package/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.d.ts +13 -13
- package/lib/ui-time-span/ui-time-span.component.d.ts +10 -10
- package/lib/ui-tinymce/ui-tinymce.component.d.ts +22 -22
- package/lib/ui-tree/ui-tree.component.d.ts +37 -37
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +47 -47
- package/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.d.ts +9 -9
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +74 -74
- package/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.d.ts +16 -16
- package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +21 -21
- package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +48 -48
- package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +21 -21
- package/lib/ul-toast-adapter/ul-toast-adapter.component.d.ts +13 -13
- package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +20 -20
- package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +31 -31
- package/lib/ulv-filter-settings/ulv-filter-settings.component.d.ts +19 -19
- package/lib/ulv-form-multi-select/ulv-form-multi-select.component.d.ts +26 -26
- package/lib/ulv-groupby-settings/ulv-groupby-settings.component.d.ts +16 -16
- package/lib/ulv-paging/ulv-paging.component.d.ts +28 -28
- package/lib/ulv-selection/ulv-selection.component.d.ts +43 -43
- package/lib/ulv-settings/ulv-settings.component.d.ts +43 -43
- package/lib/ulv-sort-settings/ulv-sort-settings.component.d.ts +16 -16
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +49 -49
- package/lib/upload-file-status.pipe.d.ts +9 -9
- package/lib/util-chat-time-badge.pipe.d.ts +7 -0
- package/lib/util-date-to-hh-mm.pipe.d.ts +7 -0
- package/lib/wizard-layout.directive.d.ts +40 -40
- package/package.json +7 -13
- package/public-api.d.ts +226 -218
- package/esm2020/lib/apply-conditional-formmatings.directive.mjs +0 -89
- package/esm2020/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
- package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -127
- package/esm2020/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
- package/esm2020/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -25
- package/esm2020/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -30
- package/esm2020/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
- package/esm2020/lib/barsa-chip/barsa-chip.component.mjs +0 -72
- package/esm2020/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -15
- package/esm2020/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
- package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
- package/esm2020/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -42
- package/esm2020/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
- package/esm2020/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
- package/esm2020/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -37
- package/esm2020/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
- package/esm2020/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
- package/esm2020/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
- package/esm2020/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
- package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
- package/esm2020/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
- package/esm2020/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
- package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
- package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -53
- package/esm2020/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
- package/esm2020/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
- package/esm2020/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -31
- package/esm2020/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
- package/esm2020/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -35
- package/esm2020/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -47
- package/esm2020/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -78
- package/esm2020/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
- package/esm2020/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
- package/esm2020/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -98
- package/esm2020/lib/barsa-sap-ui.module.mjs +0 -332
- package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
- package/esm2020/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -168
- package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +0 -28
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +0 -198
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +0 -61
- package/esm2020/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
- package/esm2020/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
- package/esm2020/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
- package/esm2020/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -38
- package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -417
- package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -130
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -209
- package/esm2020/lib/blob-viewer/blob-viewer.component.mjs +0 -78
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -45
- package/esm2020/lib/card-item/card-item.component.mjs +0 -76
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +0 -46
- package/esm2020/lib/col-renderer.directive.mjs +0 -46
- package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
- package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +0 -85
- package/esm2020/lib/constants.mjs +0 -421
- package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +0 -41
- package/esm2020/lib/download-files.directive.mjs +0 -33
- package/esm2020/lib/dynamic-page-size.pipe.mjs +0 -26
- package/esm2020/lib/file-viewer/file-viewer.component.mjs +0 -47
- package/esm2020/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -41
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +0 -143
- package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +0 -45
- package/esm2020/lib/form-toolbar/form-toolbar.component.mjs +0 -42
- package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -46
- package/esm2020/lib/form-wizard/form-wizard.component.mjs +0 -21
- package/esm2020/lib/fullscreen-dialog.directive.mjs +0 -59
- package/esm2020/lib/fullscreen-files.directive.mjs +0 -42
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -188
- package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -203
- package/esm2020/lib/global-search-module/global-search-module.component.mjs +0 -30
- package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +0 -25
- package/esm2020/lib/header-avatar/header-avatar.component.mjs +0 -19
- package/esm2020/lib/header-facet-progress/header-facet-progress.component.mjs +0 -26
- package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +0 -26
- package/esm2020/lib/htree-create-new/htree-create-new.component.mjs +0 -49
- package/esm2020/lib/hyperlink/hyperlink.component.mjs +0 -23
- package/esm2020/lib/index.mjs +0 -529
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +0 -68
- package/esm2020/lib/layout-control/layout-control.component.mjs +0 -234
- package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +0 -155
- package/esm2020/lib/list-item/list-item.component.mjs +0 -33
- package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
- package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -71
- package/esm2020/lib/ly-label/ly-label.component.mjs +0 -35
- package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
- package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
- package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -73
- package/esm2020/lib/ly-line/ly-line.component.mjs +0 -56
- package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +0 -23
- package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +0 -52
- package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
- package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -50
- package/esm2020/lib/manage-filters-report/manage-filters-report.component.mjs +0 -45
- package/esm2020/lib/message-strip/message-strip.component.mjs +0 -28
- package/esm2020/lib/models/grid-data-provider.mjs +0 -83
- package/esm2020/lib/models/grid-view.mjs +0 -2
- package/esm2020/lib/no-data/no-data.component.mjs +0 -23
- package/esm2020/lib/notification-item/notification-item.component.mjs +0 -57
- package/esm2020/lib/notification-popup.service.mjs +0 -88
- package/esm2020/lib/report-navigator/report-navigator.component.mjs +0 -63
- package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
- package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -98
- package/esm2020/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -90
- package/esm2020/lib/report-tree-base.mjs +0 -408
- package/esm2020/lib/report-view-renderer.directive.mjs +0 -366
- package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
- package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
- package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +0 -72
- package/esm2020/lib/sap-font-class.pipe.mjs +0 -29
- package/esm2020/lib/sap-font.pipe.mjs +0 -29
- package/esm2020/lib/sap-size.pipe.mjs +0 -27
- package/esm2020/lib/sap-ui-report-base.component.mjs +0 -766
- package/esm2020/lib/search-panel/search-panel.component.mjs +0 -43
- package/esm2020/lib/ui-button/ui-button.component.mjs +0 -31
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +0 -53
- package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +0 -60
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -43
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +0 -34
- package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
- package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -34
- package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -194
- package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +0 -150
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
- package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
- package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +0 -92
- package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -44
- package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -67
- package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -76
- package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -59
- package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -156
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -349
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +0 -75
- package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -125
- package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
- package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -56
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -430
- package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -18
- package/esm2020/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
- package/esm2020/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
- package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
- package/esm2020/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
- package/esm2020/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
- package/esm2020/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
- package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -24
- package/esm2020/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
- package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -262
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +0 -91
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -223
- package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
- package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +0 -46
- package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -37
- package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +0 -151
- package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +0 -49
- package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +0 -52
- package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +0 -92
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +0 -81
- package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -24
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -289
- package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -26
- package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -91
- package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -117
- package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
- package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -44
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -60
- package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -87
- package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -185
- package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
- package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +0 -84
- package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +0 -66
- package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +0 -117
- package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -44
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -115
- package/esm2020/lib/upload-file-status.pipe.mjs +0 -28
- package/fesm2015/barsa-sap-ui.mjs +0 -14233
- package/fesm2015/barsa-sap-ui.mjs.map +0 -1
- package/fesm2020/barsa-sap-ui.mjs +0 -14203
- package/fesm2020/barsa-sap-ui.mjs.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
|
|
2
|
+
import { FormBaseComponent, FormPanelService } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../layout-control/layout-control.component";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "barsa-novin-ray-core";
|
|
7
|
+
export class BarsaCartableFormComponent extends FormBaseComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._isSmallDevice = false;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this._isSmallDevice = this._isSmalDeviceSize(this._portalService.deviceSize);
|
|
14
|
+
super.ngOnInit();
|
|
15
|
+
this._portalService.deviceSize$.subscribe((c) => {
|
|
16
|
+
const isSmallDevice = this._isSmalDeviceSize(c);
|
|
17
|
+
isSmallDevice !== this._isSmallDevice && (this._isSmallDevice = isSmallDevice) && this._cdr.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
_isSmalDeviceSize(deviceSize) {
|
|
21
|
+
const isSmallDevice = deviceSize === 's' || deviceSize === 'm' ? true : false;
|
|
22
|
+
const dom = this._el.nativeElement;
|
|
23
|
+
if (isSmallDevice) {
|
|
24
|
+
dom.parentElement?.classList.remove('h_100');
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
dom.parentElement?.classList.add('h_100');
|
|
28
|
+
}
|
|
29
|
+
return isSmallDevice;
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCartableFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaCartableFormComponent, selector: "bsu-barsa-cartable-form", host: { properties: { "class.smallDevice": "this._isSmallDevice" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "@if (layout94$ | async; as layout94) {\n<div class=\"groups-wrapper\">\n @if ('\u062C\u0633\u062A\u062C\u0648 \u06AF\u0631\u0648\u0647' | controlUi: layout94; as configUi) {\n <bsu-layout-control\n class=\"search-group\"\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\n [config]=\"configUi\"\n [showLabel]=\"false\"\n ></bsu-layout-control>\n } @if ('\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644 \u06A9\u0627\u0631\u0628\u0631' | controlUi: layout94; as configUi) {\n <bsu-layout-control\n class=\"cartable-groups\"\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\n [config]=\"configUi\"\n [showLabel]=\"false\"\n ></bsu-layout-control>\n }\n</div>\n@if ('\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644' | controlUi: layout94; as configUi) {\n<bsu-layout-control\n class=\"cartable-radif\"\n [caption]=\"'\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\n [config]=\"configUi\"\n [showLabel]=\"false\"\n></bsu-layout-control>\n} }\n", styles: [":host{display:flex;width:100%;height:100%;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);background-color:var(--sapBaseColor)}:host.smallDevice{flex-direction:column;min-height:100vh}:host.smallDevice ::ng-deep bnrc-field-ui{margin:unset!important}:host .groups-wrapper{display:flex;flex-direction:column;min-width:280px;max-width:280px;border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host .cartable-groups{flex:1}:host.smallDevice .groups-wrapper{flex:unset;width:100%;min-width:100%;max-width:100%}:host.smallDevice .search-group{display:none}:host.smallDevice .cartable-groups{flex:unset}div{flex:1}:host ::ng-deep .viewer-container{min-height:100%!important}:host ::ng-deep .viewer-container fd-layout-panel{box-shadow:none}:host ::ng-deep tbody{border:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}\n"], dependencies: [{ kind: "component", type: i1.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCartableFormComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'bsu-barsa-cartable-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "@if (layout94$ | async; as layout94) {\n<div class=\"groups-wrapper\">\n @if ('\u062C\u0633\u062A\u062C\u0648 \u06AF\u0631\u0648\u0647' | controlUi: layout94; as configUi) {\n <bsu-layout-control\n class=\"search-group\"\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\n [config]=\"configUi\"\n [showLabel]=\"false\"\n ></bsu-layout-control>\n } @if ('\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644 \u06A9\u0627\u0631\u0628\u0631' | controlUi: layout94; as configUi) {\n <bsu-layout-control\n class=\"cartable-groups\"\n [caption]=\"'\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\n [config]=\"configUi\"\n [showLabel]=\"false\"\n ></bsu-layout-control>\n }\n</div>\n@if ('\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644' | controlUi: layout94; as configUi) {\n<bsu-layout-control\n class=\"cartable-radif\"\n [caption]=\"'\u0631\u062F\u06CC\u0641\u0647\u0627\u06CC \u06A9\u0627\u0631\u062A\u0627\u0628\u0644'\"\n [config]=\"configUi\"\n [showLabel]=\"false\"\n></bsu-layout-control>\n} }\n", styles: [":host{display:flex;width:100%;height:100%;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);background-color:var(--sapBaseColor)}:host.smallDevice{flex-direction:column;min-height:100vh}:host.smallDevice ::ng-deep bnrc-field-ui{margin:unset!important}:host .groups-wrapper{display:flex;flex-direction:column;min-width:280px;max-width:280px;border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host .cartable-groups{flex:1}:host.smallDevice .groups-wrapper{flex:unset;width:100%;min-width:100%;max-width:100%}:host.smallDevice .search-group{display:none}:host.smallDevice .cartable-groups{flex:unset}div{flex:1}:host ::ng-deep .viewer-container{min-height:100%!important}:host ::ng-deep .viewer-container fd-layout-panel{box-shadow:none}:host ::ng-deep tbody{border:none!important}:host ::ng-deep bnrc-field-ui{padding:0!important}\n"] }]
|
|
37
|
+
}], propDecorators: { _isSmallDevice: [{
|
|
38
|
+
type: HostBinding,
|
|
39
|
+
args: ['class.smallDevice']
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jYXJ0YWJsZS1mb3JtL2JhcnNhLWNhcnRhYmxlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FydGFibGUtZm9ybS9iYXJzYS1jYXJ0YWJsZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFTbEcsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQVBqRTs7UUFRc0MsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FvQjVEO0lBbEJHLFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUF3QixFQUFFLEVBQUU7WUFDbkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELGFBQWEsS0FBSyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNTLGlCQUFpQixDQUFDLFVBQWlDO1FBQ3pELE1BQU0sYUFBYSxHQUFHLFVBQVUsS0FBSyxHQUFHLElBQUksVUFBVSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUE0QixDQUFDO1FBQ2xELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ0osR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDOzhHQXBCUSwwQkFBMEI7a0dBQTFCLDBCQUEwQix3SEFGeEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENSakMsd3VDQTBCQTs7MkZEaEJhLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQzs4QkFHSyxjQUFjO3NCQUEvQyxXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CYXNlQ29tcG9uZW50LCBGb3JtUGFuZWxTZXJ2aWNlLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNhcnRhYmxlLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1jYXJ0YWJsZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJ0YWJsZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FDYXJ0YWJsZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBGb3JtQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbERldmljZScpIF9pc1NtYWxsRGV2aWNlID0gZmFsc2U7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNTbWFsbERldmljZSA9IHRoaXMuX2lzU21hbERldmljZVNpemUodGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplKTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5zdWJzY3JpYmUoKGM6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNTbWFsbERldmljZSA9IHRoaXMuX2lzU21hbERldmljZVNpemUoYyk7XG4gICAgICAgICAgICBpc1NtYWxsRGV2aWNlICE9PSB0aGlzLl9pc1NtYWxsRGV2aWNlICYmICh0aGlzLl9pc1NtYWxsRGV2aWNlID0gaXNTbWFsbERldmljZSkgJiYgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNTbWFsRGV2aWNlU2l6ZShkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaXNTbWFsbERldmljZSA9IGRldmljZVNpemUgPT09ICdzJyB8fCBkZXZpY2VTaXplID09PSAnbScgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIGNvbnN0IGRvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChpc1NtYWxsRGV2aWNlKSB7XG4gICAgICAgICAgICBkb20ucGFyZW50RWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnaF8xMDAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvbS5wYXJlbnRFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdoXzEwMCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1NtYWxsRGV2aWNlO1xuICAgIH1cbn1cbiIsIkBpZiAobGF5b3V0OTQkIHwgYXN5bmM7IGFzIGxheW91dDk0KSB7XG48ZGl2IGNsYXNzPVwiZ3JvdXBzLXdyYXBwZXJcIj5cbiAgICBAaWYgKCfYrNiz2KrYrNmIINqv2LHZiNmHJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIGNvbmZpZ1VpKSB7XG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxuICAgICAgICBjbGFzcz1cInNlYXJjaC1ncm91cFwiXG4gICAgICAgIFtjYXB0aW9uXT1cIifar9ix2YjZh9mH2KfbjCDaqdin2LHYqtin2KjZhCdcIlxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1VpXCJcbiAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXG4gICAgPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgIH0gQGlmICgn2q/YsdmI2YfZh9in24wg2qnYp9ix2KrYp9io2YQg2qnYp9ix2KjYsScgfCBjb250cm9sVWk6IGxheW91dDk0OyBhcyBjb25maWdVaSkge1xuICAgIDxic3UtbGF5b3V0LWNvbnRyb2xcbiAgICAgICAgY2xhc3M9XCJjYXJ0YWJsZS1ncm91cHNcIlxuICAgICAgICBbY2FwdGlvbl09XCIn2q/YsdmI2YfZh9in24wg2qnYp9ix2KrYp9io2YQnXCJcbiAgICAgICAgW2NvbmZpZ109XCJjb25maWdVaVwiXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICB9XG48L2Rpdj5cbkBpZiAoJ9ix2K/bjNmB2YfYp9uMINqp2KfYsdiq2KfYqNmEJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQ7IGFzIGNvbmZpZ1VpKSB7XG48YnN1LWxheW91dC1jb250cm9sXG4gICAgY2xhc3M9XCJjYXJ0YWJsZS1yYWRpZlwiXG4gICAgW2NhcHRpb25dPVwiJ9ix2K/bjNmB2YfYp9uMINqp2KfYsdiq2KfYqNmEJ1wiXG4gICAgW2NvbmZpZ109XCJjb25maWdVaVwiXG4gICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXG4+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XG59IH1cbiJdfQ==
|
package/{esm2020 → esm2022}/lib/barsa-cartable-template/barsa-cartable-template.component.mjs
RENAMED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { BarsaApi } from 'barsa-novin-ray-core';
|
|
3
|
-
import { RichTextStaticComponent } from '../rich-text-static/rich-text-static.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class BarsaCartableTemplateComponent extends RichTextStaticComponent {
|
|
6
|
-
ngOnInit() {
|
|
7
|
-
this.relatedMo = BarsaApi.Ext.decode(this.mo.SerializedRelatedMo);
|
|
8
|
-
super.ngOnInit();
|
|
9
|
-
}
|
|
10
|
-
get moContext() {
|
|
11
|
-
return this.relatedMo;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'bsu-barsa-cartable-template', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [innerHtml]=\"text\"></div>\n" }]
|
|
19
|
-
}], propDecorators: { parameters: [{
|
|
20
|
-
type: Input
|
|
21
|
-
}], mo: [{
|
|
22
|
-
type: Input
|
|
23
|
-
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { BarsaApi } from 'barsa-novin-ray-core';
|
|
3
|
+
import { RichTextStaticComponent } from '../rich-text-static/rich-text-static.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BarsaCartableTemplateComponent extends RichTextStaticComponent {
|
|
6
|
+
ngOnInit() {
|
|
7
|
+
this.relatedMo = BarsaApi.Ext.decode(this.mo.SerializedRelatedMo);
|
|
8
|
+
super.ngOnInit();
|
|
9
|
+
}
|
|
10
|
+
get moContext() {
|
|
11
|
+
return this.relatedMo;
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCartableTemplateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: BarsaCartableTemplateComponent, selector: "bsu-barsa-cartable-template", inputs: { parameters: "parameters", mo: "mo" }, usesInheritance: true, ngImport: i0, template: "<div [innerHtml]=\"text\"></div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaCartableTemplateComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'bsu-barsa-cartable-template', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [innerHtml]=\"text\"></div>\n" }]
|
|
19
|
+
}], propDecorators: { parameters: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], mo: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}] } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFRekYsTUFBTSxPQUFPLDhCQUErQixTQUFRLHVCQUF1QjtJQUt2RSxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFjLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7OEdBWFEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMElDWDNDLG9DQUNBOzsyRkRVYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0ksNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFyc2FBcGksIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBSaWNoVGV4dFN0YXRpY0NvbXBvbmVudCB9IGZyb20gJy4uL3JpY2gtdGV4dC1zdGF0aWMvcmljaC10ZXh0LXN0YXRpYy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1jYXJ0YWJsZS10ZW1wbGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNhcnRhYmxlLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJ0YWJsZS10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhQ2FydGFibGVUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIFJpY2hUZXh0U3RhdGljQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICByZWxhdGVkTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVsYXRlZE1vID0gQmFyc2FBcGkuRXh0LmRlY29kZSh0aGlzLm1vLlNlcmlhbGl6ZWRSZWxhdGVkTW8pO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0IG1vQ29udGV4dCgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVsYXRlZE1vO1xuICAgIH1cbn1cbiIsIjxkaXYgW2lubmVySHRtbF09XCJ0ZXh0XCI+PC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { Component, ElementRef, Input, signal, ViewChild } from '@angular/core';
|
|
2
|
+
import jmoment from 'moment-jalaali';
|
|
3
|
+
import { animate, style, transition, trigger } from '@angular/animations';
|
|
4
|
+
import { FormBaseComponent, FormPanelService } from 'barsa-novin-ray-core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "barsa-novin-ray-core";
|
|
9
|
+
import * as i4 from "@fundamental-ngx/core/button";
|
|
10
|
+
import * as i5 from "@fundamental-ngx/core/icon";
|
|
11
|
+
import * as i6 from "@fundamental-ngx/core/popover";
|
|
12
|
+
import * as i7 from "../layout-control/layout-control.component";
|
|
13
|
+
import * as i8 from "../barsa-chat-content/barsa-chat-content.component";
|
|
14
|
+
import * as i9 from "../barsa-chat-thread/barsa-chat-thread.component";
|
|
15
|
+
import * as i10 from "../barsa-chat-threads-list/barsa-chat-threads-list.component";
|
|
16
|
+
import * as i11 from "../barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component";
|
|
17
|
+
import * as i12 from "../barsa-chat-content-toolbar/barsa-chat-content-toolbar.component";
|
|
18
|
+
export class BarsaChatComponent extends FormBaseComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.simple = true;
|
|
22
|
+
this.randomNameArr = 'علی حسن حسین تقی نقی محمد مهدی جاوید محمدرضا کریم هوشنگ پیمان'.split(' ');
|
|
23
|
+
this.randomFamilyArr = 'کریمی حسینی زارعی تقوی کاظمی قنبری نبویان افشار رادمند محمدی'.split(' ');
|
|
24
|
+
this.randomTextArr = ('لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان' +
|
|
25
|
+
' گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط' +
|
|
26
|
+
' فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای' +
|
|
27
|
+
' زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با' +
|
|
28
|
+
' نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو' +
|
|
29
|
+
' در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه' +
|
|
30
|
+
' راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی،' +
|
|
31
|
+
' و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.').split(' ');
|
|
32
|
+
this.threads = Array(20)
|
|
33
|
+
.fill(null)
|
|
34
|
+
.map((t) => ({
|
|
35
|
+
id: Math.random() * 1000,
|
|
36
|
+
title: this.randomNameArr[Math.floor(this.randomNameArr.length * Math.random())] +
|
|
37
|
+
' ' +
|
|
38
|
+
this.randomFamilyArr[Math.floor(this.randomFamilyArr.length * Math.random())],
|
|
39
|
+
avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
|
|
40
|
+
status: Math.floor(Math.random() * 4),
|
|
41
|
+
lastActivity: this.randomDate(new Date('2024-03-03'), new Date()),
|
|
42
|
+
unreadCount: Math.round(Math.random()) ? 1 + Math.floor(Math.random() * 20) : 0,
|
|
43
|
+
pinned: !!Math.round(Math.random()),
|
|
44
|
+
muted: !!Math.round(Math.random()),
|
|
45
|
+
lastMessage: {
|
|
46
|
+
id: Math.random() * 1000,
|
|
47
|
+
owner: {
|
|
48
|
+
id: 1234,
|
|
49
|
+
avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
|
|
50
|
+
name: 'مهدی زارعی'
|
|
51
|
+
},
|
|
52
|
+
text: this.shuffle(this.randomTextArr.slice(0, 1 + Math.floor(this.randomTextArr.length * Math.random()))).join(' '),
|
|
53
|
+
createdAt: new Date()
|
|
54
|
+
.toTimeString()
|
|
55
|
+
.split(' ')[0]
|
|
56
|
+
.split(':')
|
|
57
|
+
.slice(0, 2)
|
|
58
|
+
.map((s) => s.padStart(2, '0'))
|
|
59
|
+
.join(':'),
|
|
60
|
+
deliveredAt: new Date()
|
|
61
|
+
.toTimeString()
|
|
62
|
+
.split(' ')[0]
|
|
63
|
+
.split(':')
|
|
64
|
+
.slice(0, 2)
|
|
65
|
+
.map((s) => s.padStart(2, '0'))
|
|
66
|
+
.join(':'),
|
|
67
|
+
readAt: new Date()
|
|
68
|
+
.toTimeString()
|
|
69
|
+
.split(' ')[0]
|
|
70
|
+
.split(':')
|
|
71
|
+
.slice(0, 2)
|
|
72
|
+
.map((s) => s.padStart(2, '0'))
|
|
73
|
+
.join(':')
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
this.moment = jmoment;
|
|
77
|
+
this.selectedThread = signal(null);
|
|
78
|
+
this.messages = signal(null);
|
|
79
|
+
this.replyingMessage = signal(null);
|
|
80
|
+
this.messageText = '';
|
|
81
|
+
}
|
|
82
|
+
ngOnInit() {
|
|
83
|
+
super.ngOnInit();
|
|
84
|
+
document.body.classList.add('chat-mode');
|
|
85
|
+
this.selectThread(this.threads[0]);
|
|
86
|
+
}
|
|
87
|
+
ngOnDestroy() {
|
|
88
|
+
document.body.classList.remove('chat-mode');
|
|
89
|
+
}
|
|
90
|
+
scrollToBottom(force = false, instant = false) {
|
|
91
|
+
const container = this.chatContentElement?.nativeElement;
|
|
92
|
+
if (force || (container && container.scrollTopMax - container.scrollTop < 300)) {
|
|
93
|
+
setTimeout(() => container.scrollTo({
|
|
94
|
+
top: container.scrollHeight,
|
|
95
|
+
behavior: instant ? 'instant' : 'smooth'
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async checkInput(event) {
|
|
100
|
+
this.messageText = event.target.innerText;
|
|
101
|
+
}
|
|
102
|
+
sendMessage() {
|
|
103
|
+
if (this.messageText?.trim().length) {
|
|
104
|
+
this.messages?.set([
|
|
105
|
+
...this.messages(),
|
|
106
|
+
{
|
|
107
|
+
id: Math.random() * 1000,
|
|
108
|
+
owner: {
|
|
109
|
+
id: 1234,
|
|
110
|
+
avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
|
|
111
|
+
name: 'مهدی زارعی'
|
|
112
|
+
},
|
|
113
|
+
text: this.messageText,
|
|
114
|
+
createdAt: new Date(),
|
|
115
|
+
deliveredAt: new Date(),
|
|
116
|
+
readAt: new Date()
|
|
117
|
+
}
|
|
118
|
+
]);
|
|
119
|
+
this.messageText = '';
|
|
120
|
+
const inputMessage = document.getElementById('chat-textarea');
|
|
121
|
+
if (inputMessage) {
|
|
122
|
+
inputMessage.focus();
|
|
123
|
+
inputMessage.innerText = '';
|
|
124
|
+
}
|
|
125
|
+
this.scrollToBottom(true);
|
|
126
|
+
setTimeout(() => {
|
|
127
|
+
this.messages?.set([
|
|
128
|
+
...this.messages(),
|
|
129
|
+
{
|
|
130
|
+
id: Math.random() * 1000,
|
|
131
|
+
owner: {
|
|
132
|
+
id: 4321,
|
|
133
|
+
avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
|
|
134
|
+
name: this.selectedThread().title
|
|
135
|
+
},
|
|
136
|
+
text: this.shuffle(this.randomTextArr.slice(0, 1 + Math.floor(this.randomTextArr.length * Math.random()))).join(' '),
|
|
137
|
+
createdAt: new Date(),
|
|
138
|
+
deliveredAt: new Date(),
|
|
139
|
+
readAt: new Date()
|
|
140
|
+
}
|
|
141
|
+
]);
|
|
142
|
+
this.scrollToBottom(true);
|
|
143
|
+
}, 2000);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
addAttachment() { }
|
|
147
|
+
selectThread(thread) {
|
|
148
|
+
this.selectedThread.set(thread);
|
|
149
|
+
this.messages.set(Array(40)
|
|
150
|
+
.fill(null)
|
|
151
|
+
.map((t) => {
|
|
152
|
+
const ownerUser = Math.round(Math.random());
|
|
153
|
+
const messageType = Math.random();
|
|
154
|
+
const hasText = Math.round(Math.random());
|
|
155
|
+
const imgOriginalWidth = Math.floor(Math.random() * 200) + 200;
|
|
156
|
+
const imgOriginalHeight = Math.floor(Math.random() * 200) + 200;
|
|
157
|
+
return {
|
|
158
|
+
id: Math.random() * 1000,
|
|
159
|
+
owner: {
|
|
160
|
+
id: ownerUser ? 1234 : 4321,
|
|
161
|
+
avatar: 'https://picsum.photos/100?workAround=' + Math.floor(Math.random() * 100),
|
|
162
|
+
name: ownerUser ? 'مهدی زارعی' : thread.title
|
|
163
|
+
},
|
|
164
|
+
text: (messageType > 0.5 && hasText) || messageType <= 0.5
|
|
165
|
+
? this.shuffle(this.randomTextArr.slice(0, 1 +
|
|
166
|
+
Math.floor((messageType > 0.5 ? 30 : this.randomTextArr.length) * Math.random()))).join(' ')
|
|
167
|
+
: undefined,
|
|
168
|
+
file: messageType > 0.85
|
|
169
|
+
? {
|
|
170
|
+
name: 'یک عدد فایل',
|
|
171
|
+
ext: ['png', 'jpg', 'pdf', 'docs', 'csv'][Math.floor(Math.random() * 5)],
|
|
172
|
+
size: Math.round(Math.random() * 100) +
|
|
173
|
+
' ' +
|
|
174
|
+
['بایت', 'کیلوبایت', 'مگابایت'][Math.floor(Math.random() * 3)]
|
|
175
|
+
}
|
|
176
|
+
: undefined,
|
|
177
|
+
image: messageType <= 0.85 && messageType > 0.5
|
|
178
|
+
? {
|
|
179
|
+
name: 'یک عدد عکس',
|
|
180
|
+
url: `https://picsum.photos/${Math.floor(Math.random() * 2000)}/${Math.floor(Math.random() * 2000)}?workAround=${Math.floor(Math.random() * 100)}`,
|
|
181
|
+
originalWidth: imgOriginalWidth,
|
|
182
|
+
originalHeight: imgOriginalHeight
|
|
183
|
+
}
|
|
184
|
+
: undefined,
|
|
185
|
+
createdAt: this.randomDate(new Date('2024-03-03'), new Date()),
|
|
186
|
+
deliveredAt: new Date(),
|
|
187
|
+
readAt: new Date()
|
|
188
|
+
};
|
|
189
|
+
})
|
|
190
|
+
.sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime()));
|
|
191
|
+
setTimeout(() => this.scrollToBottom(true, true));
|
|
192
|
+
}
|
|
193
|
+
randomDate(start, end) {
|
|
194
|
+
return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
|
|
195
|
+
}
|
|
196
|
+
shuffle(array) {
|
|
197
|
+
let currentIndex = array.length;
|
|
198
|
+
let randomIndex = 1;
|
|
199
|
+
while (currentIndex > 0) {
|
|
200
|
+
randomIndex = Math.floor(Math.random() * currentIndex);
|
|
201
|
+
currentIndex--;
|
|
202
|
+
[array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
|
|
203
|
+
}
|
|
204
|
+
return array;
|
|
205
|
+
}
|
|
206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatComponent, selector: "bsu-barsa-chat", inputs: { simple: "simple" }, providers: [FormPanelService], viewQueries: [{ propertyName: "chatContentElement", first: true, predicate: ["chatContentElement"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"tw-flex tw-w-full tw-bg-gradient-to-r tw-from-[#5d6e7f] tw-to-[#354a5f] dark:tw-from-[#253443] dark:tw-to-[#10161c]\"\n fillEmptySpace\n [class.tw-h-screen]=\"!simple\"\n [class.tw-justify-center]=\"simple\"\n>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n <div\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\n [ngClass]=\"{\n 'tw-grow 2xl:tw-grow-0': !simple,\n 'tw-w-full': simple\n }\"\n >\n @if (!simple) {\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\n <div\n class=\"tw-flex tw-flex-col tw-w-full tw-h-full tw-overflow-hidden tw-border-l tw-border-l-gray-300 md:tw-rounded-2xl md:tw-border md:tw-border-l-gray-300 md:tw-border-gray-300 dark:tw-border-l-gray-600 md:dark:tw-border-l-gray-600 md:dark:tw-border-gray-600\"\n >\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\n <bsu-barsa-chat-threads-list>\n @for (thread of threads; track thread.id) {\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\n }\n </bsu-barsa-chat-threads-list>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-0 tw-left-0 tw-w-full tw-h-full tw-bg-[url('assets/chat-bg.png')] tw-bg-fixed tw-opacity-25\"\n ></div>\n }\n <div\n class=\"tw-grow tw-shrink tw-relative\"\n [ngClass]=\"{\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\n 'tw-flex': simple\n }\"\n >\n @if (selectedThread()) {\n <div\n @inContentAnimation\n class=\"tw-h-full tw-w-full tw-flex tw-flex-col tw-relative md:tw-border-gray-300 md:dark:tw-border-gray-600 tw-overflow-hidden\"\n [ngClass]=\"{\n 'md:tw-border md:tw-rounded-2xl': !simple\n }\"\n >\n <bsu-barsa-chat-content-toolbar\n [title]=\"selectedThread().title\"\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\n [avatar]=\"selectedThread().avatar\"\n [status]=\"selectedThread().status\"\n ></bsu-barsa-chat-content-toolbar>\n <bsu-barsa-chat-content id=\"chat-container\">\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\n } }\n </bsu-barsa-chat-content>\n <div\n class=\"tw-w-full\"\n [ngClass]=\"{\n 'tw-relative': !simple,\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\n }\"\n >\n @if (replyingMessage()) {\n <div\n @inOutReplyingMessage\n class=\"tw-w-full tw-px-2 tw-py-1 tw-border-r-4 tw-border-r-bubble-mine tw-flex tw-gap-2 te-items-center tw-absolute tw-z-0 tw-bg-default tw-right-0 -tw-top-14\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"tw-grow-0 tw-shrink-0\"\n (click)=\"replyingMessage.set(null)\"\n ></button>\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\n <span class=\"tw-truncate\">{{\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\n }}</span>\n </div>\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\n </div>\n }\n <div\n class=\"tw-w-full tw-p-2 tw-flex tw-gap-2 tw-border-t tw-border-t-gray-300 dark:tw-border-t-gray-600 tw-bg-default tw-items-end tw-z-10\"\n >\n <fd-popover placement=\"top-start\" title=\"top-start\">\n <fd-popover-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"attachment\"\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\n (click)=\"addAttachment()\"\n ></button>\n </fd-popover-control>\n <fd-popover-body minWidth=\"10rem\">\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"camera\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"add-document\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\n </label>\n </div>\n </fd-popover-body>\n </fd-popover>\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\n @if (!messageText.length) {\n <span\n class=\"tw-absolute tw-right-4 tw-top-4 -tw-translate-y-1/2 tw-text-gray-500 dark:tw-text-gray-500\"\n >\n \u0645\u062A\u0646 \u067E\u06CC\u0627\u0645...\n </span>\n }\n <div\n id=\"chat-textarea\"\n class=\"tw-inline-block tw-w-full tw-w-full tw-whitespace-pre-line tw-rounded-3xl tw-border tw-border-gray-300 dark:tw-border-gray-600 tw-px-4 tw-py-2 tw-max-h-32 tw-overflow-auto tw-resize tw-text-base\"\n role=\"textbox\"\n contenteditable\n ngDefaultControl\n (keydown.enter)=\"sendMessage()\"\n (input)=\"checkInput($event)\"\n ></div>\n </div>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"arrow-left\"\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\n (click)=\"sendMessage()\"\n ></button>\n </div>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-flex tw-flex-col tw-gap-8 tw-items-center\"\n >\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\n <!-- \u0628\u0631\u0627\u06CC \u0634\u0631\u0648\u0639 \u06CC\u06A9 \u0686\u062A \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F-->\n <!-- </span>-->\n </div>\n }\n </div>\n </div>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i7.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i8.BarsaChatContentComponent, selector: "bsu-barsa-chat-content" }, { kind: "component", type: i9.BarsaChatThreadComponent, selector: "bsu-barsa-chat-thread", inputs: ["thread"] }, { kind: "component", type: i10.BarsaChatThreadsListComponent, selector: "bsu-barsa-chat-threads-list" }, { kind: "component", type: i11.BarsaChatThreadsListToolbarComponent, selector: "bsu-barsa-chat-threads-list-toolbar" }, { kind: "component", type: i12.BarsaChatContentToolbarComponent, selector: "bsu-barsa-chat-content-toolbar", inputs: ["avatar", "title", "subtitle", "status"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], animations: [
|
|
208
|
+
trigger('inContentAnimation', [
|
|
209
|
+
transition(':enter', [
|
|
210
|
+
style({ opacity: 0, transform: 'scale(50%, 50%)' }),
|
|
211
|
+
animate('300ms ease-out', style({ opacity: 1, transform: 'scale(100%, 100%)' }))
|
|
212
|
+
]),
|
|
213
|
+
transition(':leave', [
|
|
214
|
+
style({ opacity: 1, transform: 'scale(100%, 100%)' }),
|
|
215
|
+
animate('300ms ease-in', style({ opacity: 0, transform: 'scale(50%, 50%)' }))
|
|
216
|
+
])
|
|
217
|
+
]),
|
|
218
|
+
trigger('inOutReplyingMessage', [
|
|
219
|
+
transition(':enter', [
|
|
220
|
+
style({ opacity: 0, transform: 'translateY(50%)' }),
|
|
221
|
+
animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))
|
|
222
|
+
]),
|
|
223
|
+
transition(':leave', [
|
|
224
|
+
style({ opacity: 1, transform: 'translateY(0)' }),
|
|
225
|
+
animate('300ms ease-in', style({ opacity: 0, transform: 'translateY(50%)' }))
|
|
226
|
+
])
|
|
227
|
+
])
|
|
228
|
+
] }); }
|
|
229
|
+
}
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatComponent, decorators: [{
|
|
231
|
+
type: Component,
|
|
232
|
+
args: [{ selector: 'bsu-barsa-chat', providers: [FormPanelService], animations: [
|
|
233
|
+
trigger('inContentAnimation', [
|
|
234
|
+
transition(':enter', [
|
|
235
|
+
style({ opacity: 0, transform: 'scale(50%, 50%)' }),
|
|
236
|
+
animate('300ms ease-out', style({ opacity: 1, transform: 'scale(100%, 100%)' }))
|
|
237
|
+
]),
|
|
238
|
+
transition(':leave', [
|
|
239
|
+
style({ opacity: 1, transform: 'scale(100%, 100%)' }),
|
|
240
|
+
animate('300ms ease-in', style({ opacity: 0, transform: 'scale(50%, 50%)' }))
|
|
241
|
+
])
|
|
242
|
+
]),
|
|
243
|
+
trigger('inOutReplyingMessage', [
|
|
244
|
+
transition(':enter', [
|
|
245
|
+
style({ opacity: 0, transform: 'translateY(50%)' }),
|
|
246
|
+
animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))
|
|
247
|
+
]),
|
|
248
|
+
transition(':leave', [
|
|
249
|
+
style({ opacity: 1, transform: 'translateY(0)' }),
|
|
250
|
+
animate('300ms ease-in', style({ opacity: 0, transform: 'translateY(50%)' }))
|
|
251
|
+
])
|
|
252
|
+
])
|
|
253
|
+
], template: "<div\n class=\"tw-flex tw-w-full tw-bg-gradient-to-r tw-from-[#5d6e7f] tw-to-[#354a5f] dark:tw-from-[#253443] dark:tw-to-[#10161c]\"\n fillEmptySpace\n [class.tw-h-screen]=\"!simple\"\n [class.tw-justify-center]=\"simple\"\n>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n <div\n class=\"tw-h-full tw-flex 2xl:tw-container max-w-[80rem] tw-shrink-0 tw-relative\"\n [ngClass]=\"{\n 'tw-grow 2xl:tw-grow-0': !simple,\n 'tw-w-full': simple\n }\"\n >\n @if (!simple) {\n <div class=\"tw-grow-0 tw-shrink-0 tw-w-full md:tw-w-96 tw-p-0 md:tw-p-6\">\n <div\n class=\"tw-flex tw-flex-col tw-w-full tw-h-full tw-overflow-hidden tw-border-l tw-border-l-gray-300 md:tw-rounded-2xl md:tw-border md:tw-border-l-gray-300 md:tw-border-gray-300 dark:tw-border-l-gray-600 md:dark:tw-border-l-gray-600 md:dark:tw-border-gray-600\"\n >\n <bsu-barsa-chat-threads-list-toolbar></bsu-barsa-chat-threads-list-toolbar>\n <bsu-barsa-chat-threads-list>\n @for (thread of threads; track thread.id) {\n <bsu-barsa-chat-thread [thread]=\"thread\" (click)=\"selectThread(thread)\"></bsu-barsa-chat-thread>\n }\n </bsu-barsa-chat-threads-list>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-0 tw-left-0 tw-w-full tw-h-full tw-bg-[url('assets/chat-bg.png')] tw-bg-fixed tw-opacity-25\"\n ></div>\n }\n <div\n class=\"tw-grow tw-shrink tw-relative\"\n [ngClass]=\"{\n 'md:tw-py-6 md:tw-pl-6 tw-hidden md:tw-flex': !simple,\n 'tw-flex': simple\n }\"\n >\n @if (selectedThread()) {\n <div\n @inContentAnimation\n class=\"tw-h-full tw-w-full tw-flex tw-flex-col tw-relative md:tw-border-gray-300 md:dark:tw-border-gray-600 tw-overflow-hidden\"\n [ngClass]=\"{\n 'md:tw-border md:tw-rounded-2xl': !simple\n }\"\n >\n <bsu-barsa-chat-content-toolbar\n [title]=\"selectedThread().title\"\n [subtitle]=\"'\u0645\u062D\u0645\u062F \u0645\u062D\u0645\u062F\u06CC'\"\n [avatar]=\"selectedThread().avatar\"\n [status]=\"selectedThread().status\"\n ></bsu-barsa-chat-content-toolbar>\n <bsu-barsa-chat-content id=\"chat-container\">\n @if(layout94$ | async;as layout94){ @if ('\u0644\u06CC\u0633\u062A \u06AF\u0641\u062A\u06AF\u0648' | controlUi: layout94; as configUi) {\n <bsu-layout-control [config]=\"configUi\"></bsu-layout-control>\n } }\n </bsu-barsa-chat-content>\n <div\n class=\"tw-w-full\"\n [ngClass]=\"{\n 'tw-relative': !simple,\n '2xl:tw-rounded-t-xl tw-grow-0 tw-shrink-0': simple\n }\"\n >\n @if (replyingMessage()) {\n <div\n @inOutReplyingMessage\n class=\"tw-w-full tw-px-2 tw-py-1 tw-border-r-4 tw-border-r-bubble-mine tw-flex tw-gap-2 te-items-center tw-absolute tw-z-0 tw-bg-default tw-right-0 -tw-top-14\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"tw-grow-0 tw-shrink-0\"\n (click)=\"replyingMessage.set(null)\"\n ></button>\n <div class=\"tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-hidden\">\n <span class=\"tw-font-bold\">{{ replyingMessage().owner.name }}</span>\n <span class=\"tw-truncate\">{{\n replyingMessage().text ?? replyingMessage().file?.name ?? replyingMessage().image?.name\n }}</span>\n </div>\n <div class=\"tw-w-8 tw-shrink-0 tw-grow-0\"></div>\n </div>\n }\n <div\n class=\"tw-w-full tw-p-2 tw-flex tw-gap-2 tw-border-t tw-border-t-gray-300 dark:tw-border-t-gray-600 tw-bg-default tw-items-end tw-z-10\"\n >\n <fd-popover placement=\"top-start\" title=\"top-start\">\n <fd-popover-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"attachment\"\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\n (click)=\"addAttachment()\"\n ></button>\n </fd-popover-control>\n <fd-popover-body minWidth=\"10rem\">\n <div class=\"tw-flex tw-flex-col tw-bg-default tw-w-full\" bodyClick>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"camera\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0639\u06A9\u0633</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"img\" name=\"img\" accept=\"image/*\" />\n </label>\n <label\n class=\"tw-px-4 tw-py-2 tw-flex tw-gap-2 tw-w-full hover:tw-bg-base/[.1] tw-transition-all tw-cursor-pointer\"\n >\n <fd-icon class=\"!tw-text-base !tw-text-3xl\" glyph=\"add-document\"></fd-icon>\n <span class=\"!tw-text-base\">\u0627\u0631\u0633\u0627\u0644 \u0641\u0627\u06CC\u0644</span>\n <input class=\"tw-hidden\" type=\"file\" id=\"file\" name=\"file\" accept=\"file/*\" />\n </label>\n </div>\n </fd-popover-body>\n </fd-popover>\n <div class=\"tw-inline-flex tw-relative tw-grow tw-shrink\">\n @if (!messageText.length) {\n <span\n class=\"tw-absolute tw-right-4 tw-top-4 -tw-translate-y-1/2 tw-text-gray-500 dark:tw-text-gray-500\"\n >\n \u0645\u062A\u0646 \u067E\u06CC\u0627\u0645...\n </span>\n }\n <div\n id=\"chat-textarea\"\n class=\"tw-inline-block tw-w-full tw-w-full tw-whitespace-pre-line tw-rounded-3xl tw-border tw-border-gray-300 dark:tw-border-gray-600 tw-px-4 tw-py-2 tw-max-h-32 tw-overflow-auto tw-resize tw-text-base\"\n role=\"textbox\"\n contenteditable\n ngDefaultControl\n (keydown.enter)=\"sendMessage()\"\n (input)=\"checkInput($event)\"\n ></div>\n </div>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"arrow-left\"\n class=\"!tw-rounded-full tw-shrink-0 tw-grow-0 !tw-size-10 !tw-min-h-10 !tw-max-h-10 !tw-min-w-10 !tw-max-w-10\"\n (click)=\"sendMessage()\"\n ></button>\n </div>\n </div>\n </div>\n } @else {\n <div\n class=\"tw-absolute tw-top-1/2 -tw-translate-y-1/2 tw-left-1/2 -tw-translate-x-1/2 tw-flex tw-flex-col tw-gap-8 tw-items-center\"\n >\n <img src=\"assets/not-selected-chat.png\" class=\"tw-w-64 tw-opacity-25\" />\n <!-- <span class=\"tw-text-xl tw-font-bold tw-text-gray-400 dark:tw-text-gray-500\">-->\n <!-- \u0628\u0631\u0627\u06CC \u0634\u0631\u0648\u0639 \u06CC\u06A9 \u0686\u062A \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F-->\n <!-- </span>-->\n </div>\n }\n </div>\n </div>\n @if (!simple) {\n <div class=\"tw-bg-black/[.3] 2xl:tw-grow tw-shrink tw-h-full\"></div>\n }\n</div>\n" }]
|
|
254
|
+
}], propDecorators: { simple: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], chatContentElement: [{
|
|
257
|
+
type: ViewChild,
|
|
258
|
+
args: ['chatContentElement', { read: ElementRef }]
|
|
259
|
+
}] } });
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1jaGF0L2JhcnNhLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQThCM0UsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQTVCekQ7O1FBNkJhLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFFdkIsa0JBQWEsR0FBRywrREFBK0QsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0Ysb0JBQWUsR0FBRyw4REFBOEQsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUYsa0JBQWEsR0FBRyxDQUNaLG1GQUFtRjtZQUNuRiwrRkFBK0Y7WUFDL0YsNEZBQTRGO1lBQzVGLDJGQUEyRjtZQUMzRiwyRkFBMkY7WUFDM0YseUZBQXlGO1lBQ3pGLDBGQUEwRjtZQUMxRiw4RUFBOEUsQ0FDakYsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNkLElBQUks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QUFFOzRCQUM1QixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO2dDQUNuRCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs2QkFDL0UsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQztnQ0FDakQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hGLENBQUM7eUJBQ0wsQ0FBQztxQkFDTDs4QkFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ2lELGtCQUFrQjtzQkFBeEUsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgc2lnbmFsLCBWaWV3Q2hpbGQsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgam1vbWVudCBmcm9tICdtb21lbnQtamFsYWFsaSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1jaGF0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFyc2EtY2hhdC5jb21wb25lbnQuY3NzJyxcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2luQ29udGVudEFuaW1hdGlvbicsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDUwJSwgNTAlKScgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEwMCUsIDEwMCUpJyB9KSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMTAwJSwgMTAwJSknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDUwJSwgNTAlKScgfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcignaW5PdXRSZXBseWluZ01lc3NhZ2UnLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDUwJSknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJyB9KSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYUNoYXRDb21wb25lbnQgZXh0ZW5kcyBGb3JtQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBzaW1wbGUgPSB0cnVlO1xuICAgIEBWaWV3Q2hpbGQoJ2NoYXRDb250ZW50RWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjaGF0Q29udGVudEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gICAgcmFuZG9tTmFtZUFyciA9ICfYudmE24wg2K3Ys9mGINit2LPbjNmGINiq2YLbjCDZhtmC24wg2YXYrdmF2K8g2YXZh9iv24wg2KzYp9mI24zYryDZhdit2YXYr9ix2LbYpyDaqdix24zZhSDZh9mI2LTZhtqvINm+24zZhdin2YYnLnNwbGl0KCcgJyk7XG4gICAgcmFuZG9tRmFtaWx5QXJyID0gJ9qp2LHbjNmF24wg2K3Ys9uM2YbbjCDYstin2LHYuduMINiq2YLZiNuMINqp2KfYuNmF24wg2YLZhtio2LHbjCDZhtio2YjbjNin2YYg2KfZgdi02KfYsSDYsdin2K/ZhdmG2K8g2YXYrdmF2K/bjCcuc3BsaXQoJyAnKTtcbiAgICByYW5kb21UZXh0QXJyID0gKFxuICAgICAgICAn2YTZiNix2YUg2KfbjNm+2LPZiNmFINmF2KrZhiDYs9in2K7Yqtqv24wg2KjYpyDYqtmI2YTbjNivINiz2KfYr9qv24wg2YbYp9mF2YHZh9mI2YUg2KfYsiDYtdmG2LnYqiDahtin2b7YjCDZiCDYqNinINin2LPYqtmB2KfYr9mHINin2LIg2LfYsdin2K3Yp9mGJyArXG4gICAgICAgICcg2q/Ysdin2YHbjNqpINin2LPYqtiMINqG2KfZvtqv2LHZh9inINmIINmF2KrZiNmGINio2YTaqdmHINix2YjYstmG2KfZhdmHINmIINmF2KzZhNmHINiv2LEg2LPYqtmI2YYg2Ygg2LPYt9ix2KLZhtqG2YbYp9mGINqp2Ycg2YTYp9iy2YUg2KfYs9iq2Iwg2Ygg2KjYsdin24wg2LTYsdin24zYtycgK1xuICAgICAgICAnINmB2LnZhNuMINiq2qnZhtmI2YTZiNqY24wg2YXZiNix2K8g2YbbjNin2LLYjCDZiCDaqdin2LHYqNix2K/Zh9in24wg2YXYqtmG2YjYuSDYqNinINmH2K/ZgSDYqNmH2KjZiNivINin2KjYstin2LHZh9in24wg2qnYp9ix2KjYsdiv24wg2YXbjCDYqNin2LTYr9iMINqp2KrYp9io2YfYp9uMJyArXG4gICAgICAgICcg2LLbjNin2K/bjCDYr9ixINi02LXYqiDZiCDYs9mHINiv2LHYtdivINqv2LDYtNiq2Ycg2K3Yp9mEINmIINii24zZhtiv2YfYjCDYtNmG2KfYrtiqINmB2LHYp9mI2KfZhiDYrNin2YXYudmHINmIINmF2KrYrti12LXYp9mGINix2Kcg2YXbjCDYt9mE2KjYr9iMINiq2Kcg2KjYpycgK1xuICAgICAgICAnINmG2LHZhSDYp9mB2LLYp9ix2YfYpyDYtNmG2KfYrtiqINio24zYtNiq2LHbjCDYsdinINio2LHYp9uMINi32LHYp9it2KfZhiDYsdin24zYp9mG2Ycg2KfbjCDYudmE24wg2KfZhNiu2LXZiNi1INi32LHYp9it2KfZhiDYrtmE2KfZgtuM2Iwg2Ygg2YHYsdmH2YbaryDZvtuM2LTYsdmIJyArXG4gICAgICAgICcg2K/YsSDYstio2KfZhiDZgdin2LHYs9uMINin24zYrNin2K8g2qnYsdiv2Iwg2K/YsSDYp9uM2YYg2LXZiNix2Kog2YXbjCDYqtmI2KfZhiDYp9mF24zYryDYr9in2LTYqiDaqdmHINiq2YXYp9mFINmIINiv2LTZiNin2LHbjCDZhdmI2KzZiNivINiv2LEg2KfYsdin2KbZhycgK1xuICAgICAgICAnINix2KfZh9qp2KfYsdmH2KfYjCDZiCDYtNix2KfbjNi3INiz2K7YqiDYqtin24zZviDYqNmHINm+2KfbjNin2YYg2LHYs9ivINmIINiy2YXYp9mGINmF2YjYsdivINmG24zYp9iyINi02KfZhdmEINit2LHZiNmB2obbjNmG24wg2K/Ys9iq2KfZiNix2K/Zh9in24wg2KfYtdmE24zYjCcgK1xuICAgICAgICAnINmIINis2YjYp9io2q/ZiNuMINiz2YjYp9mE2KfYqiDZvtuM2YjYs9iq2Ycg2KfZh9mEINiv2YbbjNin24wg2YXZiNis2YjYryDYt9ix2KfYrduMINin2LPYp9iz2Kcg2YXZiNix2K8g2KfYs9iq2YHYp9iv2Ycg2YLYsdin2LEg2q/bjNix2K8uJ1xuICAgICkuc3BsaXQoJyAnKTtcbiAgICB0aHJlYWRzID0gQXJyYXkoMjApXG4gICAgICAgIC5maWxsKG51bGwpXG4gICAgICAgIC5tYXAoKHQpID0+ICh7XG4gICAgICAgICAgICBpZDogTWF0aC5yYW5kb20oKSAqIDEwMDAsXG4gICAgICAgICAgICB0aXRsZTpcbiAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbU5hbWVBcnJbTWF0aC5mbG9vcih0aGlzLnJhbmRvbU5hbWVBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSldICtcbiAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tRmFtaWx5QXJyW01hdGguZmxvb3IodGhpcy5yYW5kb21GYW1pbHlBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSldLFxuICAgICAgICAgICAgYXZhdGFyOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMD93b3JrQXJvdW5kPScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLFxuICAgICAgICAgICAgc3RhdHVzOiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA0KSxcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogdGhpcy5yYW5kb21EYXRlKG5ldyBEYXRlKCcyMDI0LTAzLTAzJyksIG5ldyBEYXRlKCkpLFxuICAgICAgICAgICAgdW5yZWFkQ291bnQ6IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSkgPyAxICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApIDogMCxcbiAgICAgICAgICAgIHBpbm5lZDogISFNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkpLFxuICAgICAgICAgICAgbXV0ZWQ6ICEhTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKSxcbiAgICAgICAgICAgIGxhc3RNZXNzYWdlOiB7XG4gICAgICAgICAgICAgICAgaWQ6IE1hdGgucmFuZG9tKCkgKiAxMDAwLFxuICAgICAgICAgICAgICAgIG93bmVyOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAxMjM0LFxuICAgICAgICAgICAgICAgICAgICBhdmF0YXI6ICdodHRwczovL3BpY3N1bS5waG90b3MvMTAwP3dvcmtBcm91bmQ9JyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5zaHVmZmxlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmRvbVRleHRBcnIuc2xpY2UoMCwgMSArIE1hdGguZmxvb3IodGhpcy5yYW5kb21UZXh0QXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpKVxuICAgICAgICAgICAgICAgICkuam9pbignICcpLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKVxuICAgICAgICAgICAgICAgICAgICAudG9UaW1lU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcgJylbMF1cbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDIpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHMpID0+IHMucGFkU3RhcnQoMiwgJzAnKSlcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKSxcbiAgICAgICAgICAgICAgICBkZWxpdmVyZWRBdDogbmV3IERhdGUoKVxuICAgICAgICAgICAgICAgICAgICAudG9UaW1lU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcgJylbMF1cbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc6JylcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDIpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHMpID0+IHMucGFkU3RhcnQoMiwgJzAnKSlcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzonKSxcbiAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOicpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAyKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCc6JylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgIG1vbWVudCA9IGptb21lbnQ7XG4gICAgc2VsZWN0ZWRUaHJlYWQ6IFdyaXRhYmxlU2lnbmFsPGFueSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuICAgIG1lc3NhZ2VzOiBXcml0YWJsZVNpZ25hbDxhbnlbXSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuICAgIHJlcGx5aW5nTWVzc2FnZTogV3JpdGFibGVTaWduYWw8YW55IHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XG4gICAgbWVzc2FnZVRleHQgPSAnJztcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjaGF0LW1vZGUnKTtcbiAgICAgICAgdGhpcy5zZWxlY3RUaHJlYWQodGhpcy50aHJlYWRzWzBdKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnY2hhdC1tb2RlJyk7XG4gICAgfVxuICAgIHNjcm9sbFRvQm90dG9tKGZvcmNlID0gZmFsc2UsIGluc3RhbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNoYXRDb250ZW50RWxlbWVudD8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGZvcmNlIHx8IChjb250YWluZXIgJiYgY29udGFpbmVyLnNjcm9sbFRvcE1heCAtIGNvbnRhaW5lci5zY3JvbGxUb3AgPCAzMDApKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXIuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBiZWhhdmlvcjogaW5zdGFudCA/ICdpbnN0YW50JyA6ICdzbW9vdGgnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgY2hlY2tJbnB1dChldmVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMubWVzc2FnZVRleHQgPSBldmVudC50YXJnZXQuaW5uZXJUZXh0O1xuICAgIH1cbiAgICBzZW5kTWVzc2FnZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZVRleHQ/LnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXM/LnNldChbXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMubWVzc2FnZXMoKSBhcyBhbnlbXSksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogTWF0aC5yYW5kb20oKSAqIDEwMDAsXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogMTIzNCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfZhdmH2K/bjCDYstin2LHYuduMJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLm1lc3NhZ2VUZXh0LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVRleHQgPSAnJztcbiAgICAgICAgICAgIGNvbnN0IGlucHV0TWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0LXRleHRhcmVhJyk7XG4gICAgICAgICAgICBpZiAoaW5wdXRNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRNZXNzYWdlLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgaW5wdXRNZXNzYWdlLmlubmVyVGV4dCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSh0cnVlKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXM/LnNldChbXG4gICAgICAgICAgICAgICAgICAgIC4uLih0aGlzLm1lc3NhZ2VzKCkgYXMgYW55W10pLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogTWF0aC5yYW5kb20oKSAqIDEwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiA0MzIxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkVGhyZWFkKCkudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLnNodWZmbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5kb21UZXh0QXJyLnNsaWNlKDAsIDEgKyBNYXRoLmZsb29yKHRoaXMucmFuZG9tVGV4dEFyci5sZW5ndGggKiBNYXRoLnJhbmRvbSgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICkuam9pbignICcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcmVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkQXQ6IG5ldyBEYXRlKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20odHJ1ZSk7XG4gICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGRBdHRhY2htZW50KCk6IHZvaWQge31cbiAgICBzZWxlY3RUaHJlYWQodGhyZWFkOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRocmVhZC5zZXQodGhyZWFkKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoXG4gICAgICAgICAgICBBcnJheSg0MClcbiAgICAgICAgICAgICAgICAuZmlsbChudWxsKVxuICAgICAgICAgICAgICAgIC5tYXAoKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3duZXJVc2VyID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZVR5cGUgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUZXh0ID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1nT3JpZ2luYWxXaWR0aCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwMCkgKyAyMDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGltZ09yaWdpbmFsSGVpZ2h0ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwKSArIDIwMDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBNYXRoLnJhbmRvbSgpICogMTAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG93bmVyVXNlciA/IDEyMzQgOiA0MzIxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDA/d29ya0Fyb3VuZD0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBvd25lclVzZXIgPyAn2YXZh9iv24wg2LLYp9ix2LnbjCcgOiB0aHJlYWQudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlVHlwZSA+IDAuNSAmJiBoYXNUZXh0KSB8fCBtZXNzYWdlVHlwZSA8PSAwLjVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNodWZmbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmFuZG9tVGV4dEFyci5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZVR5cGUgPiAwLjUgPyAzMCA6IHRoaXMucmFuZG9tVGV4dEFyci5sZW5ndGgpICogTWF0aC5yYW5kb20oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuam9pbignICcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZSA+IDAuODVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICfbjNqpINi52K/YryDZgdin24zZhCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dDogWydwbmcnLCAnanBnJywgJ3BkZicsICdkb2NzJywgJ2NzdiddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn2KjYp9uM2KonLCAn2qnbjNmE2YjYqNin24zYqicsICfZhdqv2KfYqNin24zYqiddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMpXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZSA8PSAwLjg1ICYmIG1lc3NhZ2VUeXBlID4gMC41XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAn24zaqSDYudiv2K8g2LnaqdizJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9waWNzdW0ucGhvdG9zLyR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjAwMCl9LyR7TWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucmFuZG9tKCkgKiAyMDAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9P3dvcmtBcm91bmQ9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsV2lkdGg6IGltZ09yaWdpbmFsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsSGVpZ2h0OiBpbWdPcmlnaW5hbEhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IHRoaXMucmFuZG9tRGF0ZShuZXcgRGF0ZSgnMjAyNC0wMy0wMycpLCBuZXcgRGF0ZSgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZEF0OiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5jcmVhdGVkQXQuZ2V0VGltZSgpIC0gYi5jcmVhdGVkQXQuZ2V0VGltZSgpKVxuICAgICAgICApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2Nyb2xsVG9Cb3R0b20odHJ1ZSwgdHJ1ZSkpO1xuICAgIH1cbiAgICByYW5kb21EYXRlKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHN0YXJ0LmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkgKiAoZW5kLmdldFRpbWUoKSAtIHN0YXJ0LmdldFRpbWUoKSkpO1xuICAgIH1cbiAgICBzaHVmZmxlKGFycmF5OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgbGV0IHJhbmRvbUluZGV4ID0gMTtcbiAgICAgICAgd2hpbGUgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY3VycmVudEluZGV4KTtcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleC0tO1xuICAgICAgICAgICAgW2FycmF5W2N1cnJlbnRJbmRleF0sIGFycmF5W3JhbmRvbUluZGV4XV0gPSBbYXJyYXlbcmFuZG9tSW5kZXhdLCBhcnJheVtjdXJyZW50SW5kZXhdXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidHctZmxleCB0dy13LWZ1bGwgdHctYmctZ3JhZGllbnQtdG8tciB0dy1mcm9tLVsjNWQ2ZTdmXSB0dy10by1bIzM1NGE1Zl0gZGFyazp0dy1mcm9tLVsjMjUzNDQzXSBkYXJrOnR3LXRvLVsjMTAxNjFjXVwiXG4gICAgZmlsbEVtcHR5U3BhY2VcbiAgICBbY2xhc3MudHctaC1zY3JlZW5dPVwiIXNpbXBsZVwiXG4gICAgW2NsYXNzLnR3LWp1c3RpZnktY2VudGVyXT1cInNpbXBsZVwiXG4+XG4gICAgQGlmICghc2ltcGxlKSB7XG4gICAgPGRpdiBjbGFzcz1cInR3LWJnLWJsYWNrL1suM10gMnhsOnR3LWdyb3cgdHctc2hyaW5rIHR3LWgtZnVsbFwiPjwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidHctaC1mdWxsIHR3LWZsZXggMnhsOnR3LWNvbnRhaW5lciBtYXgtdy1bODByZW1dIHR3LXNocmluay0wIHR3LXJlbGF0aXZlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3R3LWdyb3cgMnhsOnR3LWdyb3ctMCc6ICFzaW1wbGUsXG4gICAgICAgICAgICAndHctdy1mdWxsJzogc2ltcGxlXG4gICAgICAgIH1cIlxuICAgID5cbiAgICAgICAgQGlmICghc2ltcGxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTAgdHctdy1mdWxsIG1kOnR3LXctOTYgdHctcC0wIG1kOnR3LXAtNlwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy13LWZ1bGwgdHctaC1mdWxsIHR3LW92ZXJmbG93LWhpZGRlbiB0dy1ib3JkZXItbCB0dy1ib3JkZXItbC1ncmF5LTMwMCBtZDp0dy1yb3VuZGVkLTJ4bCBtZDp0dy1ib3JkZXIgbWQ6dHctYm9yZGVyLWwtZ3JheS0zMDAgbWQ6dHctYm9yZGVyLWdyYXktMzAwIGRhcms6dHctYm9yZGVyLWwtZ3JheS02MDAgbWQ6ZGFyazp0dy1ib3JkZXItbC1ncmF5LTYwMCBtZDpkYXJrOnR3LWJvcmRlci1ncmF5LTYwMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LXRocmVhZHMtbGlzdC10b29sYmFyPjwvYnN1LWJhcnNhLWNoYXQtdGhyZWFkcy1saXN0LXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1jaGF0LXRocmVhZHMtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAodGhyZWFkIG9mIHRocmVhZHM7IHRyYWNrIHRocmVhZC5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtdGhyZWFkIFt0aHJlYWRdPVwidGhyZWFkXCIgKGNsaWNrKT1cInNlbGVjdFRocmVhZCh0aHJlYWQpXCI+PC9ic3UtYmFyc2EtY2hhdC10aHJlYWQ+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2JzdS1iYXJzYS1jaGF0LXRocmVhZHMtbGlzdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidHctYWJzb2x1dGUgdHctdG9wLTAgdHctbGVmdC0wIHR3LXctZnVsbCB0dy1oLWZ1bGwgdHctYmctW3VybCgnYXNzZXRzL2NoYXQtYmcucG5nJyldIHR3LWJnLWZpeGVkIHR3LW9wYWNpdHktMjVcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1ncm93IHR3LXNocmluayB0dy1yZWxhdGl2ZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ21kOnR3LXB5LTYgbWQ6dHctcGwtNiB0dy1oaWRkZW4gbWQ6dHctZmxleCc6ICFzaW1wbGUsXG4gICAgICAgICAgICAgICAgJ3R3LWZsZXgnOiBzaW1wbGVcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHNlbGVjdGVkVGhyZWFkKCkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBAaW5Db250ZW50QW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1oLWZ1bGwgdHctdy1mdWxsIHR3LWZsZXggdHctZmxleC1jb2wgdHctcmVsYXRpdmUgbWQ6dHctYm9yZGVyLWdyYXktMzAwIG1kOmRhcms6dHctYm9yZGVyLWdyYXktNjAwIHR3LW92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnbWQ6dHctYm9yZGVyIG1kOnR3LXJvdW5kZWQtMnhsJzogIXNpbXBsZVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkVGhyZWFkKCkudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwiJ9mF2K3ZhdivINmF2K3Zhdiv24wnXCJcbiAgICAgICAgICAgICAgICAgICAgW2F2YXRhcl09XCJzZWxlY3RlZFRocmVhZCgpLmF2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwic2VsZWN0ZWRUaHJlYWQoKS5zdGF0dXNcIlxuICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1jaGF0LWNvbnRlbnQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICA8YnN1LWJhcnNhLWNoYXQtY29udGVudCBpZD1cImNoYXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZihsYXlvdXQ5NCQgfCBhc3luYzthcyBsYXlvdXQ5NCl7IEBpZiAoJ9mE24zYs9iqINqv2YHYqtqv2YgnIHwgY29udHJvbFVpOiBsYXlvdXQ5NDsgYXMgY29uZmlnVWkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cImNvbmZpZ1VpXCI+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIH0gfVxuICAgICAgICAgICAgICAgIDwvYnN1LWJhcnNhLWNoYXQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3R3LXJlbGF0aXZlJzogIXNpbXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcyeGw6dHctcm91bmRlZC10LXhsIHR3LWdyb3ctMCB0dy1zaHJpbmstMCc6IHNpbXBsZVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAocmVwbHlpbmdNZXNzYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgQGluT3V0UmVwbHlpbmdNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXctZnVsbCB0dy1weC0yIHR3LXB5LTEgdHctYm9yZGVyLXItNCB0dy1ib3JkZXItci1idWJibGUtbWluZSB0dy1mbGV4IHR3LWdhcC0yIHRlLWl0ZW1zLWNlbnRlciB0dy1hYnNvbHV0ZSB0dy16LTAgdHctYmctZGVmYXVsdCB0dy1yaWdodC0wIC10dy10b3AtMTRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1ncm93LTAgdHctc2hyaW5rLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXBseWluZ01lc3NhZ2Uuc2V0KG51bGwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWdyb3cgdHctc2hyaW5rIHR3LW92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1ib2xkXCI+e3sgcmVwbHlpbmdNZXNzYWdlKCkub3duZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR3LXRydW5jYXRlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlpbmdNZXNzYWdlKCkudGV4dCA/PyByZXBseWluZ01lc3NhZ2UoKS5maWxlPy5uYW1lID8/IHJlcGx5aW5nTWVzc2FnZSgpLmltYWdlPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy13LTggdHctc2hyaW5rLTAgdHctZ3Jvdy0wXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdy1mdWxsIHR3LXAtMiB0dy1mbGV4IHR3LWdhcC0yIHR3LWJvcmRlci10IHR3LWJvcmRlci10LWdyYXktMzAwIGRhcms6dHctYm9yZGVyLXQtZ3JheS02MDAgdHctYmctZGVmYXVsdCB0dy1pdGVtcy1lbmQgdHctei0xMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyIHBsYWNlbWVudD1cInRvcC1zdGFydFwiIHRpdGxlPVwidG9wLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhdHctcm91bmRlZC1mdWxsIHR3LXNocmluay0wIHR3LWdyb3ctMCAhdHctc2l6ZS0xMCAhdHctbWluLWgtMTAgIXR3LW1heC1oLTEwICF0dy1taW4tdy0xMCAhdHctbWF4LXctMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEF0dGFjaG1lbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IG1pbldpZHRoPVwiMTByZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctYmctZGVmYXVsdCB0dy13LWZ1bGxcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LXB4LTQgdHctcHktMiB0dy1mbGV4IHR3LWdhcC0yIHR3LXctZnVsbCBob3Zlcjp0dy1iZy1iYXNlL1suMV0gdHctdHJhbnNpdGlvbi1hbGwgdHctY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGNsYXNzPVwiIXR3LXRleHQtYmFzZSAhdHctdGV4dC0zeGxcIiBnbHlwaD1cImNhbWVyYVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiF0dy10ZXh0LWJhc2VcIj7Yp9ix2LPYp9mEINi52qnYszwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0dy1oaWRkZW5cIiB0eXBlPVwiZmlsZVwiIGlkPVwiaW1nXCIgbmFtZT1cImltZ1wiIGFjY2VwdD1cImltYWdlLypcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctcHgtNCB0dy1weS0yIHR3LWZsZXggdHctZ2FwLTIgdHctdy1mdWxsIGhvdmVyOnR3LWJnLWJhc2UvWy4xXSB0dy10cmFuc2l0aW9uLWFsbCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCIhdHctdGV4dC1iYXNlICF0dy10ZXh0LTN4bFwiIGdseXBoPVwiYWRkLWRvY3VtZW50XCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIXR3LXRleHQtYmFzZVwiPtin2LHYs9in2YQg2YHYp9uM2YQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidHctaGlkZGVuXCIgdHlwZT1cImZpbGVcIiBpZD1cImZpbGVcIiBuYW1lPVwiZmlsZVwiIGFjY2VwdD1cImZpbGUvKlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1pbmxpbmUtZmxleCB0dy1yZWxhdGl2ZSB0dy1ncm93IHR3LXNocmlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIW1lc3NhZ2VUZXh0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHctYWJzb2x1dGUgdHctcmlnaHQtNCB0dy10b3AtNCAtdHctdHJhbnNsYXRlLXktMS8yIHR3LXRleHQtZ3JheS01MDAgZGFyazp0dy10ZXh0LWdyYXktNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINmF2KrZhiDZvtuM2KfZhS4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNoYXQtdGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWlubGluZS1ibG9jayB0dy13LWZ1bGwgdHctdy1mdWxsIHR3LXdoaXRlc3BhY2UtcHJlLWxpbmUgdHctcm91bmRlZC0zeGwgdHctYm9yZGVyIHR3LWJvcmRlci1ncmF5LTMwMCBkYXJrOnR3LWJvcmRlci1ncmF5LTYwMCB0dy1weC00IHR3LXB5LTIgdHctbWF4LWgtMzIgdHctb3ZlcmZsb3ctYXV0byB0dy1yZXNpemUgdHctdGV4dC1iYXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRleHRib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImNoZWNrSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXJyb3ctbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhdHctcm91bmRlZC1mdWxsIHR3LXNocmluay0wIHR3LWdyb3ctMCAhdHctc2l6ZS0xMCAhdHctbWluLWgtMTAgIXR3LW1heC1oLTEwICF0dy1taW4tdy0xMCAhdHctbWF4LXctMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctYWJzb2x1dGUgdHctdG9wLTEvMiAtdHctdHJhbnNsYXRlLXktMS8yIHR3LWxlZnQtMS8yIC10dy10cmFuc2xhdGUteC0xLzIgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1nYXAtOCB0dy1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL25vdC1zZWxlY3RlZC1jaGF0LnBuZ1wiIGNsYXNzPVwidHctdy02NCB0dy1vcGFjaXR5LTI1XCIgLz5cbiAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy10ZXh0LXhsIHR3LWZvbnQtYm9sZCB0dy10ZXh0LWdyYXktNDAwIGRhcms6dHctdGV4dC1ncmF5LTUwMFwiPi0tPlxuICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAg2KjYsdin24wg2LTYsdmI2Lkg24zaqSDahtiqINix2Kcg2KfZhtiq2K7Yp9ioINqp2YbbjNivLS0+XG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDwvc3Bhbj4tLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFzaW1wbGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHctYmctYmxhY2svWy4zXSAyeGw6dHctZ3JvdyB0dy1zaHJpbmsgdHctaC1mdWxsXCI+PC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var ThreadStatus;
|
|
2
|
+
(function (ThreadStatus) {
|
|
3
|
+
ThreadStatus[ThreadStatus["LastSeen"] = 0] = "LastSeen";
|
|
4
|
+
ThreadStatus[ThreadStatus["Offline"] = 1] = "Offline";
|
|
5
|
+
ThreadStatus[ThreadStatus["Online"] = 2] = "Online";
|
|
6
|
+
ThreadStatus[ThreadStatus["Busy"] = 3] = "Busy";
|
|
7
|
+
})(ThreadStatus || (ThreadStatus = {}));
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWNoYXQvY2hhdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QkEsTUFBTSxDQUFOLElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUNwQix1REFBUSxDQUFBO0lBQ1IscURBQU8sQ0FBQTtJQUNQLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0FBQ1IsQ0FBQyxFQUxXLFlBQVksS0FBWixZQUFZLFFBS3ZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGhyZWFkID0ge1xuICAgIGlkOiBudW1iZXI7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBhdmF0YXI6IHN0cmluZztcbiAgICBzdGF0dXM6IFRocmVhZFN0YXR1cztcbiAgICBsYXN0QWN0aXZpdHk6IERhdGU7XG4gICAgdW5yZWFkQ291bnQ6IG51bWJlcjtcbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgbXV0ZWQ6IGJvb2xlYW47XG4gICAgbGFzdE1lc3NhZ2U6IE1lc3NhZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlID0ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgb3duZXI6IFVzZXI7XG4gICAgdGV4dD86IHN0cmluZztcbiAgICBmaWxlPzogTWVzc2FnZUZpbGU7XG4gICAgaW1hZ2U/OiBNZXNzYWdlSW1hZ2U7XG4gICAgY3JlYXRlZEF0OiBEYXRlO1xuICAgIGRlbGl2ZXJlZEF0OiBEYXRlO1xuICAgIHJlYWRBdDogRGF0ZTtcbn07XG5cbmV4cG9ydCBlbnVtIFRocmVhZFN0YXR1cyB7XG4gICAgTGFzdFNlZW4sXG4gICAgT2ZmbGluZSxcbiAgICBPbmxpbmUsXG4gICAgQnVzeVxufVxuXG5leHBvcnQgdHlwZSBVc2VyID0ge1xuICAgIGlkOiBudW1iZXI7XG4gICAgYXZhdGFyOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUZpbGUgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGV4dDogc3RyaW5nO1xuICAgIHNpemU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VJbWFnZSA9IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgb3JpZ2luYWxXaWR0aDogbnVtYmVyO1xuICAgIG9yaWdpbmFsSGVpZ2h0OiBudW1iZXI7XG59O1xuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BarsaChatContentComponent {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: BarsaChatContentComponent, selector: "bsu-barsa-chat-content", host: { classAttribute: "tw-w-full tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-auto" }, ngImport: i0, template: "<div class=\"tw-flex tw-flex-col tw-justify-end tw-w-full tw-h-full\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [""] }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatContentComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{ selector: 'bsu-barsa-chat-content', host: {
|
|
10
|
+
class: 'tw-w-full tw-flex tw-flex-col tw-grow tw-shrink tw-overflow-auto'
|
|
11
|
+
}, template: "<div class=\"tw-flex tw-flex-col tw-justify-end tw-w-full tw-h-full\">\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
|
|
12
|
+
}] });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLWNoYXQtY29udGVudC9iYXJzYS1jaGF0LWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC1jb250ZW50L2JhcnNhLWNoYXQtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVUxQyxNQUFNLE9BQU8seUJBQXlCOzhHQUF6Qix5QkFBeUI7a0dBQXpCLHlCQUF5Qiw0SkNWdEMsdUhBR0E7OzJGRE9hLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDSSx3QkFBd0IsUUFHNUI7d0JBQ0YsS0FBSyxFQUFFLGtFQUFrRTtxQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtY2hhdC1jb250ZW50JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1jaGF0LWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2JhcnNhLWNoYXQtY29udGVudC5jb21wb25lbnQuY3NzJyxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICBjbGFzczogJ3R3LXctZnVsbCB0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWdyb3cgdHctc2hyaW5rIHR3LW92ZXJmbG93LWF1dG8nXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUNoYXRDb250ZW50Q29tcG9uZW50IHt9XHJcbiIsIjxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWp1c3RpZnktZW5kIHR3LXctZnVsbCB0dy1oLWZ1bGxcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BarsaChatContentToolbarComponent {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatContentToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaChatContentToolbarComponent, selector: "bsu-barsa-chat-content-toolbar", inputs: { avatar: "avatar", title: "title", subtitle: "subtitle", status: "status" }, host: { classAttribute: "tw-shrink-0 tw-grow-0 tw-flex tw-gap-2 tw-justify-between tw-items-center tw-px-4 tw-right-0 tw-w-full tw-h-16 tw-flex tw-bg-zinc-200/[.7] dark:tw-bg-zinc-700/[.7] tw-backdrop-blur-lg tw-z-10" }, ngImport: i0, template: "@if (title) { @if (avatar) {\n<img [src]=\"avatar\" class=\"tw-size-12 tw-rounded-full\" />\n}\n<div class=\"tw-flex tw-grow tw-shrink tw-flex-col tw-items-start tw-justify-between\">\n <span class=\"tw-text-lg tw-font-bold tw-text-base\">{{ title }}</span>\n <span class=\"tw-text-sm tw-text-base\">\n @if (status === 2) {\n <span class=\"tw-relative tw-inline-flex tw-size-2.5 tw-me-1.5\">\n <!-- <span-->\n <!-- class=\"tw-animate-ping tw-absolute tw-inline-flex tw-h-full tw-w-full tw-rounded-full tw-opacity-75\"-->\n <!-- [ngClass]=\"{-->\n <!-- 'tw-bg-gray-300': status === 0,-->\n <!-- 'tw-bg-gray-700': status === 1,-->\n <!-- 'tw-bg-green-600 tw-animate-ping': status === 2,-->\n <!-- 'tw-bg-red-600': status === 3,-->\n <!-- }\"-->\n <!-- ></span>-->\n <!-- <span-->\n <!-- class=\"tw-inline-flex tw-rounded-full tw-size-2.5\"-->\n <!-- [ngClass]=\"{-->\n <!-- 'tw-bg-gray-300': status === 0,-->\n <!-- 'tw-bg-gray-700': status === 1,-->\n <!-- 'tw-bg-green-600': status === 2,-->\n <!-- 'tw-bg-red-600': status === 3,-->\n <!-- }\"-->\n <!-- >-->\n <!-- </span>-->\n <span\n class=\"tw-animate-ping tw-absolute tw-inline-flex tw-h-full tw-w-full tw-rounded-full tw-opacity-75 tw-bg-green-600 tw-animate-ping\"\n ></span>\n <span class=\"tw-inline-flex tw-rounded-full tw-size-2.5 tw-bg-green-600\"> </span>\n </span>\n {{ subtitle }}\n }\n </span>\n</div>\n}\n", styles: [""] }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaChatContentToolbarComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{ selector: 'bsu-barsa-chat-content-toolbar', host: {
|
|
10
|
+
class: 'tw-shrink-0 tw-grow-0 tw-flex tw-gap-2 tw-justify-between tw-items-center tw-px-4 tw-right-0 tw-w-full ' +
|
|
11
|
+
'tw-h-16 tw-flex tw-bg-zinc-200/[.7] dark:tw-bg-zinc-700/[.7] tw-backdrop-blur-lg tw-z-10'
|
|
12
|
+
}, template: "@if (title) { @if (avatar) {\n<img [src]=\"avatar\" class=\"tw-size-12 tw-rounded-full\" />\n}\n<div class=\"tw-flex tw-grow tw-shrink tw-flex-col tw-items-start tw-justify-between\">\n <span class=\"tw-text-lg tw-font-bold tw-text-base\">{{ title }}</span>\n <span class=\"tw-text-sm tw-text-base\">\n @if (status === 2) {\n <span class=\"tw-relative tw-inline-flex tw-size-2.5 tw-me-1.5\">\n <!-- <span-->\n <!-- class=\"tw-animate-ping tw-absolute tw-inline-flex tw-h-full tw-w-full tw-rounded-full tw-opacity-75\"-->\n <!-- [ngClass]=\"{-->\n <!-- 'tw-bg-gray-300': status === 0,-->\n <!-- 'tw-bg-gray-700': status === 1,-->\n <!-- 'tw-bg-green-600 tw-animate-ping': status === 2,-->\n <!-- 'tw-bg-red-600': status === 3,-->\n <!-- }\"-->\n <!-- ></span>-->\n <!-- <span-->\n <!-- class=\"tw-inline-flex tw-rounded-full tw-size-2.5\"-->\n <!-- [ngClass]=\"{-->\n <!-- 'tw-bg-gray-300': status === 0,-->\n <!-- 'tw-bg-gray-700': status === 1,-->\n <!-- 'tw-bg-green-600': status === 2,-->\n <!-- 'tw-bg-red-600': status === 3,-->\n <!-- }\"-->\n <!-- >-->\n <!-- </span>-->\n <span\n class=\"tw-animate-ping tw-absolute tw-inline-flex tw-h-full tw-w-full tw-rounded-full tw-opacity-75 tw-bg-green-600 tw-animate-ping\"\n ></span>\n <span class=\"tw-inline-flex tw-rounded-full tw-size-2.5 tw-bg-green-600\"> </span>\n </span>\n {{ subtitle }}\n }\n </span>\n</div>\n}\n" }]
|
|
13
|
+
}], propDecorators: { avatar: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}], title: [{
|
|
16
|
+
type: Input
|
|
17
|
+
}], subtitle: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], status: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXIvYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXIvYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWWpELE1BQU0sT0FBTyxnQ0FBZ0M7OEdBQWhDLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHlYQ1o3QyxrN0RBcUNBOzsyRkR6QmEsZ0NBQWdDO2tCQVY1QyxTQUFTOytCQUNJLGdDQUFnQyxRQUdwQzt3QkFDRixLQUFLLEVBQ0QseUdBQXlHOzRCQUN6RywwRkFBMEY7cUJBQ2pHOzhCQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWNoYXQtY29udGVudC10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtY2hhdC1jb250ZW50LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9iYXJzYS1jaGF0LWNvbnRlbnQtdG9vbGJhci5jb21wb25lbnQuY3NzJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgJ3R3LXNocmluay0wIHR3LWdyb3ctMCB0dy1mbGV4IHR3LWdhcC0yIHR3LWp1c3RpZnktYmV0d2VlbiB0dy1pdGVtcy1jZW50ZXIgdHctcHgtNCB0dy1yaWdodC0wIHR3LXctZnVsbCAnICtcbiAgICAgICAgICAgICd0dy1oLTE2IHR3LWZsZXggdHctYmctemluYy0yMDAvWy43XSBkYXJrOnR3LWJnLXppbmMtNzAwL1suN10gdHctYmFja2Ryb3AtYmx1ci1sZyB0dy16LTEwJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FDaGF0Q29udGVudFRvb2xiYXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGF2YXRhcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdGF0dXM6IG51bWJlcjtcbn1cbiIsIkBpZiAodGl0bGUpIHsgQGlmIChhdmF0YXIpIHtcbjxpbWcgW3NyY109XCJhdmF0YXJcIiBjbGFzcz1cInR3LXNpemUtMTIgdHctcm91bmRlZC1mdWxsXCIgLz5cbn1cbjxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWdyb3cgdHctc2hyaW5rIHR3LWZsZXgtY29sIHR3LWl0ZW1zLXN0YXJ0IHR3LWp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxzcGFuIGNsYXNzPVwidHctdGV4dC1sZyB0dy1mb250LWJvbGQgdHctdGV4dC1iYXNlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJ0dy10ZXh0LXNtIHR3LXRleHQtYmFzZVwiPlxuICAgICAgICBAaWYgKHN0YXR1cyA9PT0gMikge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInR3LXJlbGF0aXZlIHR3LWlubGluZS1mbGV4IHR3LXNpemUtMi41IHR3LW1lLTEuNVwiPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDxzcGFuLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgIGNsYXNzPVwidHctYW5pbWF0ZS1waW5nIHR3LWFic29sdXRlIHR3LWlubGluZS1mbGV4IHR3LWgtZnVsbCB0dy13LWZ1bGwgdHctcm91bmRlZC1mdWxsIHR3LW9wYWNpdHktNzVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICd0dy1iZy1ncmF5LTMwMCc6IHN0YXR1cyA9PT0gMCwtLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgJ3R3LWJnLWdyYXktNzAwJzogc3RhdHVzID09PSAxLC0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAndHctYmctZ3JlZW4tNjAwIHR3LWFuaW1hdGUtcGluZyc6IHN0YXR1cyA9PT0gMiwtLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgJ3R3LWJnLXJlZC02MDAnOiBzdGF0dXMgPT09IDMsLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgIH1cIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgID48L3NwYW4+LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgPHNwYW4tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1pbmxpbmUtZmxleCB0dy1yb3VuZGVkLWZ1bGwgdHctc2l6ZS0yLjVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICd0dy1iZy1ncmF5LTMwMCc6IHN0YXR1cyA9PT0gMCwtLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgJ3R3LWJnLWdyYXktNzAwJzogc3RhdHVzID09PSAxLC0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAndHctYmctZ3JlZW4tNjAwJzogc3RhdHVzID09PSAyLC0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAndHctYmctcmVkLTYwMCc6IHN0YXR1cyA9PT0gMywtLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgfVwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgPi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIDwvc3Bhbj4tLT5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1hbmltYXRlLXBpbmcgdHctYWJzb2x1dGUgdHctaW5saW5lLWZsZXggdHctaC1mdWxsIHR3LXctZnVsbCB0dy1yb3VuZGVkLWZ1bGwgdHctb3BhY2l0eS03NSB0dy1iZy1ncmVlbi02MDAgdHctYW5pbWF0ZS1waW5nXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LXJvdW5kZWQtZnVsbCB0dy1zaXplLTIuNSB0dy1iZy1ncmVlbi02MDBcIj4gPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIHt7IHN1YnRpdGxlIH19XG4gICAgICAgIH1cbiAgICA8L3NwYW4+XG48L2Rpdj5cbn1cbiJdfQ==
|