barsa-sap-ui 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/barsa-sap-ui.mjs +289 -257
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/ui-map/ui-map.component.d.ts +2 -0
- package/package.json +3 -5
- package/esm2022/barsa-sap-ui.mjs +0 -5
- package/esm2022/lib/apply-conditional-formmatings.directive.mjs +0 -89
- package/esm2022/lib/avatar-size.pipe.mjs +0 -40
- package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +0 -41
- package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +0 -145
- package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +0 -23
- package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +0 -29
- package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +0 -24
- package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +0 -24
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +0 -31
- package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +0 -41
- package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +0 -24
- package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +0 -242
- package/esm2022/lib/barsa-chat/chat.model.mjs +0 -8
- package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +0 -13
- package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +0 -22
- package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +0 -66
- package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +0 -78
- package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +0 -22
- package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +0 -13
- package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +0 -15
- package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +0 -72
- package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +0 -23
- package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +0 -14
- package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +0 -14
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +0 -26
- package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +0 -71
- package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +0 -40
- package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +0 -61
- package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +0 -45
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +0 -58
- package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +0 -27
- package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +0 -94
- package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +0 -22
- package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +0 -37
- package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +0 -41
- package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +0 -29
- package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +0 -23
- package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +0 -43
- package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +0 -83
- package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +0 -57
- package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +0 -159
- package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +0 -17
- package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +0 -30
- package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +0 -14
- package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +0 -34
- package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +0 -46
- package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +0 -79
- package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +0 -30
- package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +0 -31
- package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +0 -28
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +0 -102
- package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +0 -26
- package/esm2022/lib/barsa-sap-ui-routing.module.mjs +0 -18
- package/esm2022/lib/barsa-sap-ui.module.mjs +0 -374
- package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +0 -29
- package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +0 -170
- package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +0 -18
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +0 -29
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +0 -222
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +0 -87
- package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +0 -60
- package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +0 -26
- package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +0 -23
- package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +0 -37
- package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +0 -418
- package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +0 -36
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +0 -153
- package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +0 -19
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +0 -216
- package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +0 -74
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -50
- package/esm2022/lib/captcha-field/captcha-field.component.mjs +0 -28
- package/esm2022/lib/card-item/card-item.component.mjs +0 -64
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +0 -46
- package/esm2022/lib/col-renderer.directive.mjs +0 -46
- package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +0 -56
- package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +0 -60
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +0 -88
- package/esm2022/lib/constants.mjs +0 -425
- package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +0 -41
- package/esm2022/lib/device-info-field-base.mjs +0 -23
- package/esm2022/lib/dialog-handler.directive.mjs +0 -28
- package/esm2022/lib/download-files.directive.mjs +0 -33
- package/esm2022/lib/dynamic-page-size.pipe.mjs +0 -26
- package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +0 -44
- package/esm2022/lib/file-viewer/file-viewer.component.mjs +0 -47
- package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +0 -71
- package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +0 -39
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -171
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +0 -50
- package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +0 -62
- package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +0 -45
- package/esm2022/lib/form-wizard/form-wizard.component.mjs +0 -21
- package/esm2022/lib/fullscreen-dialog.directive.mjs +0 -59
- package/esm2022/lib/fullscreen-files.directive.mjs +0 -42
- package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +0 -213
- package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +0 -215
- package/esm2022/lib/global-search/global-search.component.mjs +0 -27
- package/esm2022/lib/global-search-module/global-search-module.component.mjs +0 -29
- package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +0 -25
- package/esm2022/lib/header-avatar/header-avatar.component.mjs +0 -18
- package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +0 -48
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -23
- package/esm2022/lib/index.mjs +0 -543
- package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +0 -32
- package/esm2022/lib/layout-actions/layout-actions.component.mjs +0 -70
- package/esm2022/lib/layout-control/layout-control.component.mjs +0 -302
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +0 -183
- package/esm2022/lib/list-item/list-item.component.mjs +0 -34
- package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +0 -42
- package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +0 -82
- package/esm2022/lib/ly-label/ly-label.component.mjs +0 -37
- package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +0 -83
- package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +0 -17
- package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +0 -24
- package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +0 -83
- package/esm2022/lib/ly-line/ly-line.component.mjs +0 -56
- package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +0 -22
- package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +0 -45
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +0 -44
- package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +0 -51
- package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +0 -43
- package/esm2022/lib/mask/mask.component.mjs +0 -22
- package/esm2022/lib/message-strip/message-strip.component.mjs +0 -28
- package/esm2022/lib/models/grid-data-provider.mjs +0 -114
- package/esm2022/lib/models/grid-view.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -2
- package/esm2022/lib/no-data/no-data.component.mjs +0 -31
- package/esm2022/lib/notification-item/notification-item.component.mjs +0 -57
- package/esm2022/lib/notification-popup.service.mjs +0 -92
- package/esm2022/lib/object-status-icon.pipe.mjs +0 -26
- package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +0 -18
- package/esm2022/lib/report-navigator/report-navigator.component.mjs +0 -68
- package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +0 -60
- package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +0 -35
- package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +0 -97
- package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +0 -88
- package/esm2022/lib/report-tree-base.mjs +0 -386
- package/esm2022/lib/report-view-renderer.directive.mjs +0 -385
- package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +0 -50
- package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +0 -84
- package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +0 -72
- package/esm2022/lib/sap-font-class.pipe.mjs +0 -29
- package/esm2022/lib/sap-font.pipe.mjs +0 -29
- package/esm2022/lib/sap-size.pipe.mjs +0 -27
- package/esm2022/lib/sap-ui-report-base.component.mjs +0 -805
- package/esm2022/lib/search-panel/search-panel.component.mjs +0 -63
- package/esm2022/lib/static-text/static-text.component.mjs +0 -15
- package/esm2022/lib/table-th.directive.mjs +0 -86
- package/esm2022/lib/title/title.component.mjs +0 -15
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +0 -34
- package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +0 -33
- package/esm2022/lib/ui-button/ui-button.component.mjs +0 -32
- package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +0 -53
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +0 -57
- package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +0 -42
- package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +0 -39
- package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +0 -50
- package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +0 -38
- package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +0 -191
- package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +0 -150
- package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +0 -110
- package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +0 -53
- package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +0 -121
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +0 -100
- package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +0 -32
- package/esm2022/lib/ui-graph/ui-graph.component.mjs +0 -17
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +0 -25
- package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +0 -43
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +0 -66
- package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +0 -75
- package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +0 -58
- package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +0 -123
- package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +0 -16
- package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +0 -11
- package/esm2022/lib/ui-label/ui-label.component.mjs +0 -12
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +0 -379
- package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +0 -84
- package/esm2022/lib/ui-map/ui-map.component.mjs +0 -58
- package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +0 -124
- package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +0 -19
- package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +0 -14
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +0 -55
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +0 -429
- package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +0 -28
- package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +0 -37
- package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +0 -59
- package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +0 -93
- package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +0 -36
- package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +0 -56
- package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +0 -28
- package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +0 -33
- package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +0 -27
- package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +0 -21
- package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +0 -268
- package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +0 -101
- package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +0 -261
- package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +0 -48
- package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +0 -36
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +0 -46
- package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +0 -24
- package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +0 -55
- package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +0 -36
- package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +0 -20
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +0 -289
- package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +0 -49
- package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +0 -52
- package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +0 -48
- package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +0 -24
- package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +0 -53
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +0 -114
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +0 -100
- package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +0 -23
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +0 -306
- package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +0 -25
- package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +0 -93
- package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +0 -119
- package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +0 -32
- package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +0 -48
- package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +0 -53
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +0 -114
- package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +0 -43
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +0 -196
- package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +0 -44
- package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +0 -84
- package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +0 -65
- package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +0 -116
- package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +0 -54
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +0 -174
- package/esm2022/lib/upload-file-status.pipe.mjs +0 -28
- package/esm2022/lib/util-chat-time-badge.pipe.mjs +0 -18
- package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +0 -23
- package/esm2022/lib/wizard-layout.directive.mjs +0 -103
- package/esm2022/public-api.mjs +0 -233
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@fundamental-ngx/core/button";
|
|
5
|
-
export class InlineSaveAndCancelComponent extends BaseComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.save = new EventEmitter();
|
|
9
|
-
this.cancel = new EventEmitter();
|
|
10
|
-
}
|
|
11
|
-
onSave(e) {
|
|
12
|
-
this.save.emit();
|
|
13
|
-
e.stopPropagation();
|
|
14
|
-
e.preventDefault();
|
|
15
|
-
}
|
|
16
|
-
onCancel(e) {
|
|
17
|
-
this.cancel.emit();
|
|
18
|
-
e.stopPropagation();
|
|
19
|
-
e.preventDefault();
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InlineSaveAndCancelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InlineSaveAndCancelComponent, selector: "bsu-inline-save-and-cancel,[inlineSaveAndCancel]", outputs: { save: "save", cancel: "cancel" }, usesInheritance: true, ngImport: i0, template: "<button fd-button glyph=\"accept\" role=\"save\" (click)=\"onSave($event)\"></button>\n<button fd-button fdType=\"negative\" glyph=\"decline\" role=\"canecl form\" (click)=\"onCancel($event)\"></button>\n", styles: [":host{display:flex;justify-content:space-evenly;align-items:center;width:100%}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InlineSaveAndCancelComponent, decorators: [{
|
|
25
|
-
type: Component,
|
|
26
|
-
args: [{ selector: 'bsu-inline-save-and-cancel,[inlineSaveAndCancel]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button fd-button glyph=\"accept\" role=\"save\" (click)=\"onSave($event)\"></button>\n<button fd-button fdType=\"negative\" glyph=\"decline\" role=\"canecl form\" (click)=\"onCancel($event)\"></button>\n", styles: [":host{display:flex;justify-content:space-evenly;align-items:center;width:100%}\n"] }]
|
|
27
|
-
}], propDecorators: { save: [{
|
|
28
|
-
type: Output
|
|
29
|
-
}], cancel: [{
|
|
30
|
-
type: Output
|
|
31
|
-
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXNhdmUtYW5kLWNhbmNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsL2lubGluZS1zYXZlLWFuZC1jYW5jZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvaW5saW5lLXNhdmUtYW5kLWNhbmNlbC9pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU9yRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsYUFBYTtJQU4vRDs7UUFPYyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQVl6QztJQVZHLE1BQU0sQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQWJRLDRCQUE0QjttR0FBNUIsNEJBQTRCLDRKQ1R6Qyw4TUFFQTs7NEZET2EsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNJLGtEQUFrRCxtQkFHM0MsdUJBQXVCLENBQUMsTUFBTTs4QkFHckMsSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWlubGluZS1zYXZlLWFuZC1jYW5jZWwsW2lubGluZVNhdmVBbmRDYW5jZWxdJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1zYXZlLWFuZC1jYW5jZWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmxpbmVTYXZlQW5kQ2FuY2VsQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgb25TYXZlKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNhdmUuZW1pdCgpO1xyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgb25DYW5jZWwoZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImFjY2VwdFwiIHJvbGU9XCJzYXZlXCIgKGNsaWNrKT1cIm9uU2F2ZSgkZXZlbnQpXCI+PC9idXR0b24+XG48YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJuZWdhdGl2ZVwiIGdseXBoPVwiZGVjbGluZVwiIHJvbGU9XCJjYW5lY2wgZm9ybVwiIChjbGljayk9XCJvbkNhbmNlbCgkZXZlbnQpXCI+PC9idXR0b24+XG4iXX0=
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { FormToolbarBaseComponent, getDeviceIsMobile } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "barsa-novin-ray-core";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/bar";
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/button";
|
|
9
|
-
import * as i6 from "@fundamental-ngx/core/menu";
|
|
10
|
-
import * as i7 from "@fundamental-ngx/core/popover";
|
|
11
|
-
export class LayoutActionsComponent extends FormToolbarBaseComponent {
|
|
12
|
-
constructor(_overlay) {
|
|
13
|
-
super();
|
|
14
|
-
this._overlay = _overlay;
|
|
15
|
-
this.workflowChoiceSelect = new EventEmitter();
|
|
16
|
-
this.autoClose = false;
|
|
17
|
-
this.mobileBottomBar = false;
|
|
18
|
-
this.hasButtons = false;
|
|
19
|
-
this.scrollThrottle = 0;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
super.ngOnInit();
|
|
23
|
-
this.hasButtons = this.workflowButtons.length > 0 || this.buttons.length > 0;
|
|
24
|
-
this.isMobile = getDeviceIsMobile();
|
|
25
|
-
this.mobileBottomBar = this.isMobile && !this.standalone && this.hasButtons;
|
|
26
|
-
this.repositionScrollStrategy = this._overlay.scrollStrategies.reposition({
|
|
27
|
-
autoClose: this.autoClose,
|
|
28
|
-
scrollThrottle: this.scrollThrottle
|
|
29
|
-
});
|
|
30
|
-
const workflowButtons = this.workflowButtons;
|
|
31
|
-
// this.workflowButtonsComboMode = true;
|
|
32
|
-
if (workflowButtons.length > 0) {
|
|
33
|
-
this.buttons.forEach((c) => {
|
|
34
|
-
if (typeof c === 'object') {
|
|
35
|
-
c.design = 'standard';
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
const lastButton = workflowButtons[workflowButtons.length - 1];
|
|
39
|
-
if (lastButton.Choice) {
|
|
40
|
-
lastButton.design = 'emphasized';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
onAcceptWorkflow() {
|
|
45
|
-
this.onToolClick(this.selectedWorkflowButton);
|
|
46
|
-
}
|
|
47
|
-
onWorkflowButtonSelected(workflowButton) {
|
|
48
|
-
this.selectedWorkflowButton = workflowButton;
|
|
49
|
-
this.workflowChoiceSelect.emit(workflowButton.Data);
|
|
50
|
-
}
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutActionsComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LayoutActionsComponent, selector: "bsu-layout-actions", inputs: { workflowButtons: "workflowButtons", workflowButtonsComboMode: "workflowButtonsComboMode", canSend: "canSend", simple: "simple", footerDesign: "footerDesign" }, outputs: { workflowChoiceSelect: "workflowChoiceSelect" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"simple ? buttonsMode : defaultTemplate\"> </ng-container>\n<ng-template #defaultTemplate>\n @if (visible) { @if (hasButtons) {\n <div fd-bar [barDesign]=\"footerDesign ? footerDesign : 'footer'\" [inPage]=\"true\">\n @if (canSend && false) {\n <div fd-bar-left>\n <fd-bar-element class=\"forward\">\n <fd-popover\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [closeOnOutsideClick]=\"false\"\n [scrollStrategy]=\"repositionScrollStrategy\"\n #forwardPopover\n >\n <fd-popover-control class=\"forward\">\n <button fd-button [fdType]=\"'standard'\" [label]=\"'Forward' | bbbTranslate\"></button>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 30vw; max-width: 30vw; min-height: 30vh\">\n <div fd-popover-body-header>\n <div fd-bar barDesign=\"header\" [cozy]=\"true\">\n <div fd-bar-right>\n <fd-bar-element\n ><button\n fd-button\n (click)=\"forwardPopover.close()\"\n [fdType]=\"'transparent'\"\n [glyph]=\"'decline'\"\n ></button>\n </fd-bar-element>\n <div fd-bar-left>\n <fd-bar-element>\u0627\u0631\u062C\u0627\u0639 \u0641\u0631\u0645 \u0628\u0647 \u0634\u062E\u0635 \u062F\u06CC\u06AF\u0631 </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n <bnrc-form-new\n class=\"form-erja\"\n [settings]=\"{\n MetaTypeDef: { Id: '', $Caption: '' },\n MetaView: { Id: '', $Caption: '' },\n DisableGenerateId: true\n }\"\n ></bnrc-form-new>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\" [cozy]=\"true\">\n <div fd-bar-right>\n <fd-button-bar [label]=\"'Send' | bbbTranslate\" fdType=\"emphasized\"></fd-button-bar>\n <fd-button-bar\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"forwardPopover.close()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n </fd-bar-element>\n </div>\n }\n <div fd-bar-right>\n @if (workflowButtonsComboMode && workflowButtons.length > 0) {\n <button\n fd-button\n [fdMenu]=\"true\"\n fdType=\"emphasized\"\n [label]=\"selectedWorkflowButton?.text || 'Select' | bbbTranslate\"\n [ariaLabel]=\"selectedWorkflowButton?.text || 'Select' | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n ></button>\n <fd-menu #menu>\n @for (btn of workflowButtons; track btn) {\n <li fd-menu-item (click)=\"menu.close(); onWorkflowButtonSelected(btn)\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btn.text }}</span>\n </div>\n </li>\n }\n </fd-menu>\n <fd-button-bar\n [fdType]=\"'positive'\"\n [label]=\"'Send' | bbbTranslate\"\n [disabled]=\"!selectedWorkflowButton\"\n [glyph]=\"'accept'\"\n (click)=\"onAcceptWorkflow()\"\n ></fd-button-bar>\n } @for (btn of buttons; track btn; let i = $index) { @if (btn.Data?.CustomUi?.Selector) {\n <bnrc-dynamic-form-toolbaritem\n class=\"fd-bar__element\"\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n } @if (btn !== '-' && !btn.Data?.CustomUi?.Selector) {\n <fd-button-bar\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolClick(btn)\"\n ></fd-button-bar>\n } }\n </div>\n </div>\n } } @if (mobileBottomBar) {\n <div style=\"background-color: transparent; height: 4rem\"></div>\n }\n</ng-template>\n<ng-template #buttonsMode>\n @for (btn of workflowButtons; track btn; let i = $index) { @if (btn !== '-') {\n <fd-button-bar\n [attr.workflowButton]=\"true\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolClick(btn)\"\n ></fd-button-bar>\n } }\n</ng-template>\n", styles: [":host[rtl=true] fd-split-button{margin-left:.5rem}:host[rtl=false] fd-split-button{margin-right:.5rem}.forward button{min-width:6rem}.form-erja{padding-top:1rem;padding-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FormNewComponent, selector: "bnrc-form-new", inputs: ["settings"] }, { kind: "component", type: i3.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i6.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i6.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i7.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i7.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
53
|
-
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutActionsComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{ selector: 'bsu-layout-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngTemplateOutlet=\"simple ? buttonsMode : defaultTemplate\"> </ng-container>\n<ng-template #defaultTemplate>\n @if (visible) { @if (hasButtons) {\n <div fd-bar [barDesign]=\"footerDesign ? footerDesign : 'footer'\" [inPage]=\"true\">\n @if (canSend && false) {\n <div fd-bar-left>\n <fd-bar-element class=\"forward\">\n <fd-popover\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [closeOnOutsideClick]=\"false\"\n [scrollStrategy]=\"repositionScrollStrategy\"\n #forwardPopover\n >\n <fd-popover-control class=\"forward\">\n <button fd-button [fdType]=\"'standard'\" [label]=\"'Forward' | bbbTranslate\"></button>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 30vw; max-width: 30vw; min-height: 30vh\">\n <div fd-popover-body-header>\n <div fd-bar barDesign=\"header\" [cozy]=\"true\">\n <div fd-bar-right>\n <fd-bar-element\n ><button\n fd-button\n (click)=\"forwardPopover.close()\"\n [fdType]=\"'transparent'\"\n [glyph]=\"'decline'\"\n ></button>\n </fd-bar-element>\n <div fd-bar-left>\n <fd-bar-element>\u0627\u0631\u062C\u0627\u0639 \u0641\u0631\u0645 \u0628\u0647 \u0634\u062E\u0635 \u062F\u06CC\u06AF\u0631 </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n <bnrc-form-new\n class=\"form-erja\"\n [settings]=\"{\n MetaTypeDef: { Id: '', $Caption: '' },\n MetaView: { Id: '', $Caption: '' },\n DisableGenerateId: true\n }\"\n ></bnrc-form-new>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\" [cozy]=\"true\">\n <div fd-bar-right>\n <fd-button-bar [label]=\"'Send' | bbbTranslate\" fdType=\"emphasized\"></fd-button-bar>\n <fd-button-bar\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"forwardPopover.close()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n </fd-bar-element>\n </div>\n }\n <div fd-bar-right>\n @if (workflowButtonsComboMode && workflowButtons.length > 0) {\n <button\n fd-button\n [fdMenu]=\"true\"\n fdType=\"emphasized\"\n [label]=\"selectedWorkflowButton?.text || 'Select' | bbbTranslate\"\n [ariaLabel]=\"selectedWorkflowButton?.text || 'Select' | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n ></button>\n <fd-menu #menu>\n @for (btn of workflowButtons; track btn) {\n <li fd-menu-item (click)=\"menu.close(); onWorkflowButtonSelected(btn)\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btn.text }}</span>\n </div>\n </li>\n }\n </fd-menu>\n <fd-button-bar\n [fdType]=\"'positive'\"\n [label]=\"'Send' | bbbTranslate\"\n [disabled]=\"!selectedWorkflowButton\"\n [glyph]=\"'accept'\"\n (click)=\"onAcceptWorkflow()\"\n ></fd-button-bar>\n } @for (btn of buttons; track btn; let i = $index) { @if (btn.Data?.CustomUi?.Selector) {\n <bnrc-dynamic-form-toolbaritem\n class=\"fd-bar__element\"\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n } @if (btn !== '-' && !btn.Data?.CustomUi?.Selector) {\n <fd-button-bar\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolClick(btn)\"\n ></fd-button-bar>\n } }\n </div>\n </div>\n } } @if (mobileBottomBar) {\n <div style=\"background-color: transparent; height: 4rem\"></div>\n }\n</ng-template>\n<ng-template #buttonsMode>\n @for (btn of workflowButtons; track btn; let i = $index) { @if (btn !== '-') {\n <fd-button-bar\n [attr.workflowButton]=\"true\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolClick(btn)\"\n ></fd-button-bar>\n } }\n</ng-template>\n", styles: [":host[rtl=true] fd-split-button{margin-left:.5rem}:host[rtl=false] fd-split-button{margin-right:.5rem}.forward button{min-width:6rem}.form-erja{padding-top:1rem;padding-bottom:1rem}\n"] }]
|
|
57
|
-
}], ctorParameters: () => [{ type: i1.Overlay }], propDecorators: { workflowButtons: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], workflowButtonsComboMode: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], canSend: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], simple: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], footerDesign: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], workflowChoiceSelect: [{
|
|
68
|
-
type: Output
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWFjdGlvbnMvbGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWFjdGlvbnMvbGF5b3V0LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBT25GLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFjaEUsWUFBc0IsUUFBaUI7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBUjdCLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJekQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO0lBR25CLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzVFLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUN0RSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3RDLENBQUMsQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDN0Msd0NBQXdDO1FBQ3hDLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN2QixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN4QixDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztnQkFDMUIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELHdCQUF3QixDQUFDLGNBQWM7UUFDbkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQTlDUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixzVENYbkMsNHlMQXVIQTs7NEZENUdhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs0RUFHdEMsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhckRlc2lnblR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBGb3JtVG9vbGJhckJhc2VDb21wb25lbnQsIGdldERldmljZUlzTW9iaWxlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtbGF5b3V0LWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgRm9ybVRvb2xiYXJCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB3b3JrZmxvd0J1dHRvbnM6IGFueVtdO1xuICAgIEBJbnB1dCgpIHdvcmtmbG93QnV0dG9uc0NvbWJvTW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjYW5TZW5kOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNpbXBsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBmb290ZXJEZXNpZ246IEJhckRlc2lnblR5cGU7XG4gICAgQE91dHB1dCgpIHdvcmtmbG93Q2hvaWNlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgc2VsZWN0ZWRXb3JrZmxvd0J1dHRvbjogYW55O1xuICAgIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIHJlcG9zaXRpb25TY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3k7XG4gICAgYXV0b0Nsb3NlID0gZmFsc2U7XG4gICAgbW9iaWxlQm90dG9tQmFyID0gZmFsc2U7XG4gICAgaGFzQnV0dG9ucyA9IGZhbHNlO1xuICAgIHNjcm9sbFRocm90dGxlID0gMDtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX292ZXJsYXk6IE92ZXJsYXkpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaGFzQnV0dG9ucyA9IHRoaXMud29ya2Zsb3dCdXR0b25zLmxlbmd0aCA+IDAgfHwgdGhpcy5idXR0b25zLmxlbmd0aCA+IDA7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICB0aGlzLm1vYmlsZUJvdHRvbUJhciA9IHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuc3RhbmRhbG9uZSAmJiB0aGlzLmhhc0J1dHRvbnM7XG4gICAgICAgIHRoaXMucmVwb3NpdGlvblNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oe1xuICAgICAgICAgICAgYXV0b0Nsb3NlOiB0aGlzLmF1dG9DbG9zZSxcbiAgICAgICAgICAgIHNjcm9sbFRocm90dGxlOiB0aGlzLnNjcm9sbFRocm90dGxlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB3b3JrZmxvd0J1dHRvbnMgPSB0aGlzLndvcmtmbG93QnV0dG9ucztcbiAgICAgICAgLy8gdGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgPSB0cnVlO1xuICAgICAgICBpZiAod29ya2Zsb3dCdXR0b25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBjLmRlc2lnbiA9ICdzdGFuZGFyZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBsYXN0QnV0dG9uID0gd29ya2Zsb3dCdXR0b25zW3dvcmtmbG93QnV0dG9ucy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChsYXN0QnV0dG9uLkNob2ljZSkge1xuICAgICAgICAgICAgICAgIGxhc3RCdXR0b24uZGVzaWduID0gJ2VtcGhhc2l6ZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uQWNjZXB0V29ya2Zsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub29sQ2xpY2sodGhpcy5zZWxlY3RlZFdvcmtmbG93QnV0dG9uKTtcbiAgICB9XG4gICAgb25Xb3JrZmxvd0J1dHRvblNlbGVjdGVkKHdvcmtmbG93QnV0dG9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvd0J1dHRvbiA9IHdvcmtmbG93QnV0dG9uO1xuICAgICAgICB0aGlzLndvcmtmbG93Q2hvaWNlU2VsZWN0LmVtaXQod29ya2Zsb3dCdXR0b24uRGF0YSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpbXBsZSA/IGJ1dHRvbnNNb2RlIDogZGVmYXVsdFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgQGlmICh2aXNpYmxlKSB7IEBpZiAoaGFzQnV0dG9ucykge1xuICAgIDxkaXYgZmQtYmFyIFtiYXJEZXNpZ25dPVwiZm9vdGVyRGVzaWduID8gZm9vdGVyRGVzaWduIDogJ2Zvb3RlcidcIiBbaW5QYWdlXT1cInRydWVcIj5cbiAgICAgICAgQGlmIChjYW5TZW5kICYmIGZhbHNlKSB7XG4gICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQgY2xhc3M9XCJmb3J3YXJkXCI+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Njcm9sbFN0cmF0ZWd5XT1cInJlcG9zaXRpb25TY3JvbGxTdHJhdGVneVwiXG4gICAgICAgICAgICAgICAgICAgICNmb3J3YXJkUG9wb3ZlclxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbCBjbGFzcz1cImZvcndhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3N0YW5kYXJkJ1wiIFtsYWJlbF09XCInRm9yd2FyZCcgfCBiYmJUcmFuc2xhdGVcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgc3R5bGU9XCJtaW4td2lkdGg6IDMwdnc7IG1heC13aWR0aDogMzB2dzsgbWluLWhlaWdodDogMzB2aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImhlYWRlclwiIFtjb3p5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZvcndhcmRQb3BvdmVyLmNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ2RlY2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+2KfYsdis2KfYuSDZgdix2YUg2KjZhyDYtNiu2LUg2K/bjNqv2LEgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJucmMtZm9ybS1uZXdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZXJqYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NldHRpbmdzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0YVR5cGVEZWY6IHsgSWQ6ICcnLCAkQ2FwdGlvbjogJycgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0YVZpZXc6IHsgSWQ6ICcnLCAkQ2FwdGlvbjogJycgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzYWJsZUdlbmVyYXRlSWQ6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2JucmMtZm9ybS1uZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgYmFyRGVzaWduPVwiZm9vdGVyXCIgW2NvenldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIFtsYWJlbF09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIiBmZFR5cGU9XCJlbXBoYXNpemVkXCI+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZvcndhcmRQb3BvdmVyLmNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICBAaWYgKHdvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSAmJiB3b3JrZmxvd0J1dHRvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkV29ya2Zsb3dCdXR0b24/LnRleHQgfHwgJ1NlbGVjdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwic2VsZWN0ZWRXb3JrZmxvd0J1dHRvbj8udGV4dCB8fCAnU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8ZmQtbWVudSAjbWVudT5cbiAgICAgICAgICAgICAgICBAZm9yIChidG4gb2Ygd29ya2Zsb3dCdXR0b25zOyB0cmFjayBidG4pIHtcbiAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uV29ya2Zsb3dCdXR0b25TZWxlY3RlZChidG4pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgYnRuLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZC1tZW51PlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIidwb3NpdGl2ZSdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU2VuZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRXb3JrZmxvd0J1dHRvblwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIidhY2NlcHQnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY2NlcHRXb3JrZmxvdygpXCJcbiAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICB9IEBmb3IgKGJ0biBvZiBidXR0b25zOyB0cmFjayBidG47IGxldCBpID0gJGluZGV4KSB7IEBpZiAoYnRuLkRhdGE/LkN1c3RvbVVpPy5TZWxlY3Rvcikge1xuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYnRuLkRhdGEuQ3VzdG9tVWlcIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImJ0blwiXG4gICAgICAgICAgICAgICAgW2lzRW5hYmxlXT1cImJ0bi5Db21tYW5kPy5faXNFbmFibGVcIlxuICAgICAgICAgICAgICAgIChidG5DbGljayk9XCJvblRvb2xDbGljayhidG4pXCJcbiAgICAgICAgICAgID48L2JucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtPlxuICAgICAgICAgICAgfSBAaWYgKGJ0biAhPT0gJy0nICYmICFidG4uRGF0YT8uQ3VzdG9tVWk/LlNlbGVjdG9yKSB7XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiYnRuLmRlc2lnbiA/IGJ0bi5kZXNpZ24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uRGVzaWduXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJidG4ubmV3SWNvbiA/IGJ0bi5uZXdJY29uIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvb2xDbGljayhidG4pXCJcbiAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICB9IH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgfSB9IEBpZiAobW9iaWxlQm90dG9tQmFyKSB7XG4gICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBoZWlnaHQ6IDRyZW1cIj48L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNidXR0b25zTW9kZT5cbiAgICBAZm9yIChidG4gb2Ygd29ya2Zsb3dCdXR0b25zOyB0cmFjayBidG47IGxldCBpID0gJGluZGV4KSB7IEBpZiAoYnRuICE9PSAnLScpIHtcbiAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICBbYXR0ci53b3JrZmxvd0J1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgW2ZkVHlwZV09XCJidG4uZGVzaWduID8gYnRuLmRlc2lnbiA6IGJ0bi5EYXRhPy5Kc29uRXh0cmFQcm9wPy5EZXNpZ25cIlxuICAgICAgICBbbGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBbZ2x5cGhdPVwiYnRuLm5ld0ljb24gPyBidG4ubmV3SWNvbiA6IGJ0bi5EYXRhPy5Kc29uRXh0cmFQcm9wPy5JY29uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uVG9vbENsaWNrKGJ0bilcIlxuICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgfSB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
import { Component, ElementRef, HostBinding, Input, ViewChild, ChangeDetectionStrategy, SkipSelf, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { BarsaApi, LayoutItemBaseComponent, LayoutService, getDeviceIsMobile, measureText, getLabelWidth } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
-
import * as i2 from "@fundamental-ngx/core";
|
|
6
|
-
import * as i3 from "@angular/platform-browser";
|
|
7
|
-
import * as i4 from "../ly-label/ly-label.component";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
export class LayoutControlComponent extends LayoutItemBaseComponent {
|
|
10
|
-
constructor(formPanelService, el, _contentDensityService, domSanitizer, _cdr, _ngZone, _renderer2, _bbbTranslate, _parentLayoutService) {
|
|
11
|
-
super(formPanelService, _cdr);
|
|
12
|
-
this.formPanelService = formPanelService;
|
|
13
|
-
this.el = el;
|
|
14
|
-
this.domSanitizer = domSanitizer;
|
|
15
|
-
this._cdr = _cdr;
|
|
16
|
-
this._ngZone = _ngZone;
|
|
17
|
-
this._renderer2 = _renderer2;
|
|
18
|
-
this._bbbTranslate = _bbbTranslate;
|
|
19
|
-
this._parentLayoutService = _parentLayoutService;
|
|
20
|
-
this.layoutControlClass = true;
|
|
21
|
-
this.isContainer = true;
|
|
22
|
-
this.minHeight = '2.25rem';
|
|
23
|
-
this.controlIsReadonly = false;
|
|
24
|
-
this.isMobile = getDeviceIsMobile();
|
|
25
|
-
this.events = new EventEmitter();
|
|
26
|
-
this.hide = true;
|
|
27
|
-
this.emptyText = this.domSanitizer.bypassSecurityTrustHtml('​');
|
|
28
|
-
this.checkboxWidth = 'fit-content';
|
|
29
|
-
/* eslint-disable */
|
|
30
|
-
this.RefreshLabel = () => {
|
|
31
|
-
this._refreshLabel();
|
|
32
|
-
this.events.emit({ title: 'refreshLabel', data: this.config });
|
|
33
|
-
this._cdr.markForCheck();
|
|
34
|
-
};
|
|
35
|
-
/* eslint-disable */
|
|
36
|
-
this.SetVisible = (visible, refresh) => {
|
|
37
|
-
this._ngZone.run(() => {
|
|
38
|
-
this.config.FieldUi.Setting.IsVisible = visible;
|
|
39
|
-
this._setHide(!visible);
|
|
40
|
-
// this.config.FieldUi.Setting.$BRuleHide = !visible;
|
|
41
|
-
this._cdr.detectChanges();
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
if (this.contentDensity === 'compact') {
|
|
45
|
-
this.minHeight = '2rem';
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
ngOnChanges(changes) {
|
|
49
|
-
super.ngOnChanges(changes);
|
|
50
|
-
const { flex, maxLabelWidth } = changes;
|
|
51
|
-
if (flex) {
|
|
52
|
-
this._setFlex(flex.currentValue);
|
|
53
|
-
}
|
|
54
|
-
if (maxLabelWidth && !maxLabelWidth.firstChange) {
|
|
55
|
-
this._setLabelWidth(maxLabelWidth.currentValue);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
ngOnInit() {
|
|
59
|
-
super.ngOnInit();
|
|
60
|
-
this.formHeight$ = this.formPanelService.formHeight$;
|
|
61
|
-
this._setFlex(this.flex);
|
|
62
|
-
this.layoutControlWidth = this.el.nativeElement.clientWidth;
|
|
63
|
-
const config = this.config;
|
|
64
|
-
const minHeightAuto = BarsaApi.Common.Util.TryGetValue(config, 'FieldUi.Setting.CustomUi.Parameters.MinHeightAuto', false);
|
|
65
|
-
if (this.inlineEdit || minHeightAuto || this.isMobile) {
|
|
66
|
-
this.minHeight = 'auto';
|
|
67
|
-
}
|
|
68
|
-
if (config.FieldUi.originalXtype === 'Ui.UlvMainUi') {
|
|
69
|
-
this.isUlv = true;
|
|
70
|
-
this._renderer2.addClass(this.el.nativeElement, 'isUlv');
|
|
71
|
-
}
|
|
72
|
-
this.attrCaption = config.Caption.replace(':', '');
|
|
73
|
-
this.attrControlId = config.ControlId;
|
|
74
|
-
this.isButton = config.FieldUi.originalXtype === 'Ui.Button';
|
|
75
|
-
this._refreshLabel();
|
|
76
|
-
this.isRowDirection = config.TextLocation === 'Right' || config.TextLocation === 'Default';
|
|
77
|
-
this.isRowReverseDirection = config.TextLocation === 'Left';
|
|
78
|
-
this.isColumnDirection = config.TextLocation === 'Top' || this.isSearchPanel;
|
|
79
|
-
this.isColumnReverseDirection = config.TextLocation === 'Bottom';
|
|
80
|
-
config.FieldUi.LayoutControl = this;
|
|
81
|
-
this.helpDescription = BarsaApi.Common.Util.TryGetValue(config.FieldUi, 'Setting.HelpDescription', '');
|
|
82
|
-
this.fieldIcon = config.FieldUi.Setting.FieldIcon;
|
|
83
|
-
this.controlIsReadonly = config.FieldUi.Setting.ControlIsReadOnly;
|
|
84
|
-
this.controlIsReadonly =
|
|
85
|
-
this.controlIsReadonly ||
|
|
86
|
-
config.FieldUi.Setting.InnerCtrlr?.IsReadOnly ||
|
|
87
|
-
config.FieldUi.Setting.InnerCtrlr?.xtype === 'Ul.ReadOnlyFieldCtrlr';
|
|
88
|
-
this.originalXtype = config.FieldUi.originalXtype;
|
|
89
|
-
this.textVisible = config.TextVisible;
|
|
90
|
-
if (config.FieldUi.originalXtype === 'Ui.SearchCommandInfoUi') {
|
|
91
|
-
this.labelCaption = '​';
|
|
92
|
-
this.labelVisible = true;
|
|
93
|
-
this.textVisible = true;
|
|
94
|
-
}
|
|
95
|
-
this.prepareMinAndMaxSize();
|
|
96
|
-
this._setLabelWidth(this.maxLabelWidth);
|
|
97
|
-
}
|
|
98
|
-
_refreshLabel() {
|
|
99
|
-
const config = this.config;
|
|
100
|
-
const labelCaption = config.Caption;
|
|
101
|
-
// if (config.FieldUi.Setting?.IsMandatory) {
|
|
102
|
-
// if (labelCaption.indexOf('*') < 0) {
|
|
103
|
-
// labelCaption = labelCaption + ' *';
|
|
104
|
-
// }
|
|
105
|
-
// } else {
|
|
106
|
-
// labelCaption = labelCaption.replace('*', '');
|
|
107
|
-
// }
|
|
108
|
-
this.isCheckbox = config.FieldUi.originalXtype === 'Ui.CheckBox';
|
|
109
|
-
if (this.isCheckbox) {
|
|
110
|
-
const x = measureText(labelCaption);
|
|
111
|
-
if (x < this.maxLabelWidth && !this.isMobile) {
|
|
112
|
-
this.checkboxWidth = `${this.maxLabelWidth}px`;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
this.isSinglePicture = config.FieldUi.originalXtype === 'Ui.SinglePicture';
|
|
116
|
-
const colonLabel = this.formPanelService.ColonInLabel ? ':' : '';
|
|
117
|
-
let translateCaption = `${this._bbbTranslate.transform(labelCaption)}${this.isSearchPanel || labelCaption === '‌' ? '' : colonLabel}`;
|
|
118
|
-
this.isMandatory = config.FieldUi.Setting?.IsMandatory;
|
|
119
|
-
if (this.isMandatory) {
|
|
120
|
-
translateCaption = translateCaption.replace('*', '');
|
|
121
|
-
translateCaption += `<strong class="field-mandatory">*</strong>`;
|
|
122
|
-
}
|
|
123
|
-
this.labelCaption = this.domSanitizer.bypassSecurityTrustHtml(translateCaption);
|
|
124
|
-
this.labelVisible = config.TextVisible && this.showLabel !== false;
|
|
125
|
-
const controlWidth = getLabelWidth(this.config);
|
|
126
|
-
if (controlWidth && controlWidth > this.maxLabelWidth) {
|
|
127
|
-
this._parentLayoutService.setMaxWidth(controlWidth);
|
|
128
|
-
}
|
|
129
|
-
this._setHide(config.FieldUi.Setting.IsVisible === false ? true : false);
|
|
130
|
-
}
|
|
131
|
-
_setLabelWidth(maxLabelWidth) {
|
|
132
|
-
if (!this.tempLabelRef) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const val = this.config.CaptionSetting?.AlignMode === 'AutoSize' ||
|
|
136
|
-
(this.isMobile && (this.isCheckbox || this.controlIsReadonly))
|
|
137
|
-
? 'auto'
|
|
138
|
-
: this.isColumnDirection || this.isColumnReverseDirection
|
|
139
|
-
? '100%'
|
|
140
|
-
: maxLabelWidth + 'px';
|
|
141
|
-
this._renderer2.setStyle(this.tempLabelRef.nativeElement, 'width', val);
|
|
142
|
-
const minWidth = this.isCheckbox
|
|
143
|
-
? this.checkboxWidth
|
|
144
|
-
: this.config.CaptionSetting?.AlignMode === 'AutoSize' || (this.isMobile && this.controlIsReadonly)
|
|
145
|
-
? 'fit-content'
|
|
146
|
-
: this.isColumnDirection || this.isColumnReverseDirection
|
|
147
|
-
? '100%'
|
|
148
|
-
: maxLabelWidth + 'px';
|
|
149
|
-
this._renderer2.setStyle(this.tempLabelRef.nativeElement, 'min-width', minWidth);
|
|
150
|
-
}
|
|
151
|
-
_resizeUlvByDevice(device) {
|
|
152
|
-
if (!this.isUlv) {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
let deviceHeight = 'DesktopHeight';
|
|
156
|
-
switch (device) {
|
|
157
|
-
case 's':
|
|
158
|
-
deviceHeight = 'MobileHeight';
|
|
159
|
-
break;
|
|
160
|
-
case 'm':
|
|
161
|
-
deviceHeight = 'TabletHeight';
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
this.height = BarsaApi.Common.Util.TryGetValue(this.config, 'FieldUi.Setting.ClassNames.CustomUi.Parameters.' + deviceHeight, 'auto');
|
|
165
|
-
this._cdr.detectChanges();
|
|
166
|
-
}
|
|
167
|
-
prepareMinAndMaxSize() {
|
|
168
|
-
const config = this.config;
|
|
169
|
-
const layoutInfo = config;
|
|
170
|
-
const isButton = this.isButton;
|
|
171
|
-
const isSinglePicture = this.isSinglePicture;
|
|
172
|
-
const isCheckbox = this.isCheckbox;
|
|
173
|
-
if (!this.inlineEdit && layoutInfo && (isButton || isCheckbox || isSinglePicture)) {
|
|
174
|
-
this.attrMinWidth = config.Bounds.width;
|
|
175
|
-
let extraVal = 0;
|
|
176
|
-
if (((isButton || isCheckbox) && layoutInfo.FieldUi.Setting?.FieldIcon) ||
|
|
177
|
-
layoutInfo.FieldUi.Setting.JsonExtraProp?.Glyph) {
|
|
178
|
-
extraVal = 18;
|
|
179
|
-
}
|
|
180
|
-
const { MaxSize, MinSize } = layoutInfo;
|
|
181
|
-
if (MaxSize?.width > 0 && !this.isCheckbox) {
|
|
182
|
-
this.maxWidth = MaxSize.width + extraVal + 'px';
|
|
183
|
-
}
|
|
184
|
-
if (MinSize?.width > 0) {
|
|
185
|
-
this.minWidth = MinSize.width + extraVal + 'px';
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (this.isSearchPanel) {
|
|
189
|
-
this.attrMinWidth = this.maxLabelWidth + 200;
|
|
190
|
-
if (!this.isSearcPanelInSideContent) {
|
|
191
|
-
this.maxWidth = '320px';
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
if (this.isMobile) {
|
|
195
|
-
this.minWidth = null;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
_setHide(hide) {
|
|
199
|
-
hide = this.config.FieldUi.Setting.HideSearchCommandInfoUi === true ? true : hide; // hide default buttons of search panel
|
|
200
|
-
this.hide = hide;
|
|
201
|
-
if (hide) {
|
|
202
|
-
this._renderer2.addClass(this.el.nativeElement, 'hide-form-item');
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
this._renderer2.removeClass(this.el.nativeElement, 'hide-form-item');
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
_setFlex(flex) {
|
|
209
|
-
if (typeof flex !== 'undefined') {
|
|
210
|
-
if (!this.isMobile || this.config.FieldUi.originalXtype !== 'Ui.TextArea')
|
|
211
|
-
this._renderer2.setStyle(this.el.nativeElement, 'flex', flex);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutControlComponent, deps: [{ token: i1.FormPanelService }, { token: i0.ElementRef }, { token: i2.ContentDensityService }, { token: i3.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.BbbTranslatePipe }, { token: i1.LayoutService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
215
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.controlIsReadonly": "this.controlIsReadonly", "attr.isButton": "this.isButton", "attr.issinglepicture": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.ismobile": "this.isMobile", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\n<bsu-ly-label\n [attr.labelWidth]=\"labelWidth\"\n [attrRtl]\n #tempLabelRef\n [class.no-padding]=\"config.Padding[0] === 0\"\n [config]=\"config\"\n [caption]=\"labelCaption\"\n [originalWidth]=\"labelWidth\"\n [style.min-width]=\"\n isCheckbox\n ? checkboxWidth\n : config.CaptionSetting?.AlignMode === 'AutoSize' || (isMobile && controlIsReadonly)\n ? 'fit-content'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [style.width]=\"\n config.CaptionSetting?.AlignMode === 'AutoSize' || (isMobile && (isCheckbox || controlIsReadonly))\n ? 'auto'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [isMandatory]=\"isMandatory\"\n [fieldIcon]=\"fieldIcon\"\n [helpDescription]=\"helpDescription\"\n [originalXtype]=\"originalXtype\"\n [textVisible]=\"textVisible\"\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\n></bsu-ly-label>\n}\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\n<bnrc-field-ui\n [attr.xtype]=\"config.FieldUi.originalXtype\"\n [attr.fieldWidth]=\"layoutControlWidth\"\n [attr.isCheckbox]=\"isCheckbox\"\n [attr.isbutton]=\"isButton\"\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\n [class.no-padding]=\"config.Padding[0] === 0\"\n [customField]=\"config.FieldUi\"\n [layoutInfo]=\"config\"\n [inlineEdit]=\"inlineEdit\"\n [formHeight]=\"(formHeight$ | async)!!\"\n [focusControl]=\"focusControl\"\n [isSearchPanel]=\"isSearchPanel\"\n [style.height]=\"isUlv ? '100%' : 'auto'\"\n [attr.isulv]=\"isUlv\"\n></bnrc-field-ui>\n}\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bnrc-field-ui{padding:0 5px;margin:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true]){height:auto!important}}\n"], dependencies: [{ kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "formHeight"] }, { kind: "directive", type: i1.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: i4.LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "caption", "captionIcon", "helpDescription", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "textVisible"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
216
|
-
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutControlComponent, decorators: [{
|
|
218
|
-
type: Component,
|
|
219
|
-
args: [{ selector: 'bsu-layout-control', providers: [LayoutService], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hide) { @if (labelVisible) {\n<bsu-ly-label\n [attr.labelWidth]=\"labelWidth\"\n [attrRtl]\n #tempLabelRef\n [class.no-padding]=\"config.Padding[0] === 0\"\n [config]=\"config\"\n [caption]=\"labelCaption\"\n [originalWidth]=\"labelWidth\"\n [style.min-width]=\"\n isCheckbox\n ? checkboxWidth\n : config.CaptionSetting?.AlignMode === 'AutoSize' || (isMobile && controlIsReadonly)\n ? 'fit-content'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [style.width]=\"\n config.CaptionSetting?.AlignMode === 'AutoSize' || (isMobile && (isCheckbox || controlIsReadonly))\n ? 'auto'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [isMandatory]=\"isMandatory\"\n [fieldIcon]=\"fieldIcon\"\n [helpDescription]=\"helpDescription\"\n [originalXtype]=\"originalXtype\"\n [textVisible]=\"textVisible\"\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\n></bsu-ly-label>\n}\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\n<bnrc-field-ui\n [attr.xtype]=\"config.FieldUi.originalXtype\"\n [attr.fieldWidth]=\"layoutControlWidth\"\n [attr.isCheckbox]=\"isCheckbox\"\n [attr.isbutton]=\"isButton\"\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\n [class.no-padding]=\"config.Padding[0] === 0\"\n [customField]=\"config.FieldUi\"\n [layoutInfo]=\"config\"\n [inlineEdit]=\"inlineEdit\"\n [formHeight]=\"(formHeight$ | async)!!\"\n [focusControl]=\"focusControl\"\n [isSearchPanel]=\"isSearchPanel\"\n [style.height]=\"isUlv ? '100%' : 'auto'\"\n [attr.isulv]=\"isUlv\"\n></bnrc-field-ui>\n}\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bnrc-field-ui{padding:0 5px;margin:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true]){height:auto!important}}\n"] }]
|
|
220
|
-
}], ctorParameters: () => [{ type: i1.FormPanelService }, { type: i0.ElementRef }, { type: i2.ContentDensityService }, { type: i3.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.BbbTranslatePipe }, { type: i1.LayoutService, decorators: [{
|
|
221
|
-
type: SkipSelf
|
|
222
|
-
}] }], propDecorators: { tempLabelRef: [{
|
|
223
|
-
type: ViewChild,
|
|
224
|
-
args: ['tempLabelRef', { read: ElementRef }]
|
|
225
|
-
}], layoutControlClass: [{
|
|
226
|
-
type: HostBinding,
|
|
227
|
-
args: ['class.layout-control']
|
|
228
|
-
}], isRowDirection: [{
|
|
229
|
-
type: HostBinding,
|
|
230
|
-
args: ['class.row-direction']
|
|
231
|
-
}], isRowReverseDirection: [{
|
|
232
|
-
type: HostBinding,
|
|
233
|
-
args: ['class.row-reverse-direction']
|
|
234
|
-
}], isColumnDirection: [{
|
|
235
|
-
type: HostBinding,
|
|
236
|
-
args: ['class.column-direction']
|
|
237
|
-
}], isColumnReverseDirection: [{
|
|
238
|
-
type: HostBinding,
|
|
239
|
-
args: ['class.column-reverse-direction']
|
|
240
|
-
}], isContainer: [{
|
|
241
|
-
type: HostBinding,
|
|
242
|
-
args: ['class.container-field']
|
|
243
|
-
}], maxWidth: [{
|
|
244
|
-
type: HostBinding,
|
|
245
|
-
args: ['style.max-width']
|
|
246
|
-
}], minWidth: [{
|
|
247
|
-
type: HostBinding,
|
|
248
|
-
args: ['style.min-width']
|
|
249
|
-
}], minHeight: [{
|
|
250
|
-
type: HostBinding,
|
|
251
|
-
args: ['style.min-height']
|
|
252
|
-
}], height: [{
|
|
253
|
-
type: HostBinding,
|
|
254
|
-
args: ['style.height']
|
|
255
|
-
}], isCheckbox: [{
|
|
256
|
-
type: HostBinding,
|
|
257
|
-
args: ['attr.isCheckbox']
|
|
258
|
-
}], controlIsReadonly: [{
|
|
259
|
-
type: HostBinding,
|
|
260
|
-
args: ['attr.controlIsReadonly']
|
|
261
|
-
}], isButton: [{
|
|
262
|
-
type: HostBinding,
|
|
263
|
-
args: ['attr.isButton']
|
|
264
|
-
}], isSinglePicture: [{
|
|
265
|
-
type: HostBinding,
|
|
266
|
-
args: ['attr.issinglepicture']
|
|
267
|
-
}], attrMinWidth: [{
|
|
268
|
-
type: HostBinding,
|
|
269
|
-
args: ['attr.minWidth']
|
|
270
|
-
}], isMobile: [{
|
|
271
|
-
type: HostBinding,
|
|
272
|
-
args: ['attr.ismobile']
|
|
273
|
-
}], attrControlId: [{
|
|
274
|
-
type: HostBinding,
|
|
275
|
-
args: ['attr.controlId']
|
|
276
|
-
}], attrCaption: [{
|
|
277
|
-
type: HostBinding,
|
|
278
|
-
args: ['attr.caption']
|
|
279
|
-
}], inlineEdit: [{
|
|
280
|
-
type: Input
|
|
281
|
-
}], caption: [{
|
|
282
|
-
type: Input
|
|
283
|
-
}], focusControl: [{
|
|
284
|
-
type: Input
|
|
285
|
-
}], showLabel: [{
|
|
286
|
-
type: Input
|
|
287
|
-
}], maxLabelWidth: [{
|
|
288
|
-
type: Input
|
|
289
|
-
}], hasHorizontalText: [{
|
|
290
|
-
type: Input
|
|
291
|
-
}], contentDensity: [{
|
|
292
|
-
type: Input
|
|
293
|
-
}], flex: [{
|
|
294
|
-
type: Input
|
|
295
|
-
}], events: [{
|
|
296
|
-
type: Output
|
|
297
|
-
}], RefreshLabel: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], SetVisible: [{
|
|
300
|
-
type: Input
|
|
301
|
-
}] } });
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBTXZCLFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixpQkFBaUIsRUFFakIsV0FBVyxFQUNYLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVM5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBbUQvRCxZQUNjLGdCQUFrQyxFQUNyQyxFQUFjLEVBQ3JCLHNCQUE2QyxFQUNuQyxZQUEwQixFQUMxQixJQUF1QixFQUN2QixPQUFlLEVBQ2YsVUFBcUIsRUFDckIsYUFBK0IsRUFDbkIsb0JBQW1DO1FBRXpELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQVZwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDbkIs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QkFBcEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBMYXlvdXRJdGVtQmFzZUNvbXBvbmVudCxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICBtZWFzdXJlVGV4dCxcbiAgICBnZXRMYWJlbFdpZHRoXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtbGF5b3V0LWNvbnRyb2wnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb250cm9sQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0SXRlbUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RlbXBMYWJlbFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHRlbXBMYWJlbFJlZjogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGF5b3V0LWNvbnRyb2wnKSBsYXlvdXRDb250cm9sQ2xhc3MgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LWRpcmVjdGlvbicpIGlzUm93RGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LXJldmVyc2UtZGlyZWN0aW9uJykgaXNSb3dSZXZlcnNlRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLWRpcmVjdGlvbicpIGlzQ29sdW1uRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLXJldmVyc2UtZGlyZWN0aW9uJykgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udGFpbmVyLWZpZWxkJykgaXNDb250YWluZXIgPSB0cnVlO1xuICAgIC8vIEBIb3N0QmluZGluZygnc3R5bGUudmlzaWJpbGl0eScpIHZpc2liaWxpdHk6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aCcpIG1heFdpZHRoO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJykgbWluV2lkdGg7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JykgbWluSGVpZ2h0ID0gJzIuMjVyZW0nO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgaGVpZ2h0O1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0NoZWNrYm94JykgaXNDaGVja2JveDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY29udHJvbElzUmVhZG9ubHknKSBjb250cm9sSXNSZWFkb25seSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0J1dHRvbicpIGlzQnV0dG9uO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc3NpbmdsZXBpY3R1cmUnKSBpc1NpbmdsZVBpY3R1cmU7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm1pbldpZHRoJykgYXR0ck1pbldpZHRoO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc21vYmlsZScpIGlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY29udHJvbElkJykgYXR0ckNvbnRyb2xJZDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY2FwdGlvbicpIGF0dHJDYXB0aW9uO1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2FwdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZvY3VzQ29udHJvbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWF4TGFiZWxXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGhhc0hvcml6b250YWxUZXh0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcbiAgICBASW5wdXQoKSBmbGV4OiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0aXRsZTogc3RyaW5nOyBkYXRhPzogYW55IH0+KCk7XG5cbiAgICBoaWRlID0gdHJ1ZTtcbiAgICBsYXlvdXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICB3cmFwQ29udGVudDogYm9vbGVhbjtcbiAgICBsYWJlbFdpZHRoOiBudW1iZXI7XG4gICAgbGFiZWxDYXB0aW9uOiBzdHJpbmcgfCBTYWZlSHRtbDtcbiAgICBsYWJlbFZpc2libGU/OiBib29sZWFuO1xuICAgIGxheW91dFNldFNpemU6IGJvb2xlYW47XG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBpc1VsdjogYm9vbGVhbjtcbiAgICBpc01hbmRhdG9yeTogYm9vbGVhbjtcbiAgICBmaWVsZEljb246IHN0cmluZztcbiAgICBvcmlnaW5hbFh0eXBlOiBzdHJpbmc7XG4gICAgdGV4dFZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgZW1wdHlUZXh0ID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoJyYjODIwMzsnKTtcbiAgICBsYXlvdXRDb250cm9sV2lkdGg6IG51bWJlcjtcbiAgICBmb3JtSGVpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIGNoZWNrYm94V2lkdGggPSAnZml0LWNvbnRlbnQnO1xuICAgIGhlbHBEZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgICAgICBwcm90ZWN0ZWQgX2JiYlRyYW5zbGF0ZTogQmJiVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgQFNraXBTZWxmKCkgcHJvdGVjdGVkIF9wYXJlbnRMYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1QYW5lbFNlcnZpY2UsIF9jZHIpO1xuICAgICAgICBpZiAodGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnKSB7XG4gICAgICAgICAgICB0aGlzLm1pbkhlaWdodCA9ICcycmVtJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGZsZXgsIG1heExhYmVsV2lkdGggfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChmbGV4KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRGbGV4KGZsZXguY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4TGFiZWxXaWR0aCAmJiAhbWF4TGFiZWxXaWR0aC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0TGFiZWxXaWR0aChtYXhMYWJlbFdpZHRoLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuZm9ybUhlaWdodCQgPSB0aGlzLmZvcm1QYW5lbFNlcnZpY2UuZm9ybUhlaWdodCQ7XG4gICAgICAgIHRoaXMuX3NldEZsZXgodGhpcy5mbGV4KTtcblxuICAgICAgICB0aGlzLmxheW91dENvbnRyb2xXaWR0aCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uc3QgbWluSGVpZ2h0QXV0byA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgJ0ZpZWxkVWkuU2V0dGluZy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1pbkhlaWdodEF1dG8nLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuaW5saW5lRWRpdCB8fCBtaW5IZWlnaHRBdXRvIHx8IHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMubWluSGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuVWx2TWFpblVpJykge1xuICAgICAgICAgICAgdGhpcy5pc1VsdiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaXNVbHYnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF0dHJDYXB0aW9uID0gY29uZmlnLkNhcHRpb24ucmVwbGFjZSgnOicsICcnKTtcbiAgICAgICAgdGhpcy5hdHRyQ29udHJvbElkID0gY29uZmlnLkNvbnRyb2xJZDtcbiAgICAgICAgdGhpcy5pc0J1dHRvbiA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5CdXR0b24nO1xuICAgICAgICB0aGlzLl9yZWZyZXNoTGFiZWwoKTtcblxuICAgICAgICB0aGlzLmlzUm93RGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ1JpZ2h0JyB8fCBjb25maWcuVGV4dExvY2F0aW9uID09PSAnRGVmYXVsdCc7XG4gICAgICAgIHRoaXMuaXNSb3dSZXZlcnNlRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0xlZnQnO1xuICAgICAgICB0aGlzLmlzQ29sdW1uRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ1RvcCcgfHwgdGhpcy5pc1NlYXJjaFBhbmVsO1xuICAgICAgICB0aGlzLmlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvbiA9IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdCb3R0b20nO1xuXG4gICAgICAgIGNvbmZpZy5GaWVsZFVpLkxheW91dENvbnRyb2wgPSB0aGlzO1xuICAgICAgICB0aGlzLmhlbHBEZXNjcmlwdGlvbiA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbmZpZy5GaWVsZFVpLCAnU2V0dGluZy5IZWxwRGVzY3JpcHRpb24nLCAnJyk7XG5cbiAgICAgICAgdGhpcy5maWVsZEljb24gPSBjb25maWcuRmllbGRVaS5TZXR0aW5nLkZpZWxkSWNvbjtcbiAgICAgICAgdGhpcy5jb250cm9sSXNSZWFkb25seSA9IGNvbmZpZy5GaWVsZFVpLlNldHRpbmcuQ29udHJvbElzUmVhZE9ubHk7XG4gICAgICAgIHRoaXMuY29udHJvbElzUmVhZG9ubHkgPVxuICAgICAgICAgICAgdGhpcy5jb250cm9sSXNSZWFkb25seSB8fFxuICAgICAgICAgICAgY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Jbm5lckN0cmxyPy5Jc1JlYWRPbmx5IHx8XG4gICAgICAgICAgICBjb25maWcuRmllbGRVaS5TZXR0aW5nLklubmVyQ3RybHI/Lnh0eXBlID09PSAnVWwuUmVhZE9ubHlGaWVsZEN0cmxyJztcbiAgICAgICAgdGhpcy5vcmlnaW5hbFh0eXBlID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZTtcbiAgICAgICAgdGhpcy50ZXh0VmlzaWJsZSA9IGNvbmZpZy5UZXh0VmlzaWJsZTtcbiAgICAgICAgaWYgKGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJykge1xuICAgICAgICAgICAgdGhpcy5sYWJlbENhcHRpb24gPSAnJiM4MjAzOyc7XG4gICAgICAgICAgICB0aGlzLmxhYmVsVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRleHRWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXBhcmVNaW5BbmRNYXhTaXplKCk7XG4gICAgICAgIHRoaXMuX3NldExhYmVsV2lkdGgodGhpcy5tYXhMYWJlbFdpZHRoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVmcmVzaExhYmVsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uc3QgbGFiZWxDYXB0aW9uID0gY29uZmlnLkNhcHRpb247XG4gICAgICAgIC8vIGlmIChjb25maWcuRmllbGRVaS5TZXR0aW5nPy5Jc01hbmRhdG9yeSkge1xuICAgICAgICAvLyAgICAgaWYgKGxhYmVsQ2FwdGlvbi5pbmRleE9mKCcqJykgPCAwKSB7XG4gICAgICAgIC8vICAgICAgICAgbGFiZWxDYXB0aW9uID0gbGFiZWxDYXB0aW9uICsgJyAqJztcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIGxhYmVsQ2FwdGlvbiA9IGxhYmVsQ2FwdGlvbi5yZXBsYWNlKCcqJywgJycpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgdGhpcy5pc0NoZWNrYm94ID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLkNoZWNrQm94JztcbiAgICAgICAgaWYgKHRoaXMuaXNDaGVja2JveCkge1xuICAgICAgICAgICAgY29uc3QgeCA9IG1lYXN1cmVUZXh0KGxhYmVsQ2FwdGlvbik7XG4gICAgICAgICAgICBpZiAoeCA8IHRoaXMubWF4TGFiZWxXaWR0aCAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hXaWR0aCA9IGAke3RoaXMubWF4TGFiZWxXaWR0aH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzU2luZ2xlUGljdHVyZSA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TaW5nbGVQaWN0dXJlJztcbiAgICAgICAgY29uc3QgY29sb25MYWJlbCA9IHRoaXMuZm9ybVBhbmVsU2VydmljZS5Db2xvbkluTGFiZWwgPyAnOicgOiAnJztcbiAgICAgICAgbGV0IHRyYW5zbGF0ZUNhcHRpb24gPSBgJHt0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKGxhYmVsQ2FwdGlvbil9JHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbCB8fCBsYWJlbENhcHRpb24gPT09ICcmenduajsnID8gJycgOiBjb2xvbkxhYmVsXG4gICAgICAgIH1gO1xuICAgICAgICB0aGlzLmlzTWFuZGF0b3J5ID0gY29uZmlnLkZpZWxkVWkuU2V0dGluZz8uSXNNYW5kYXRvcnk7XG4gICAgICAgIGlmICh0aGlzLmlzTWFuZGF0b3J5KSB7XG4gICAgICAgICAgICB0cmFuc2xhdGVDYXB0aW9uID0gdHJhbnNsYXRlQ2FwdGlvbi5yZXBsYWNlKCcqJywgJycpO1xuICAgICAgICAgICAgdHJhbnNsYXRlQ2FwdGlvbiArPSBgPHN0cm9uZyBjbGFzcz1cImZpZWxkLW1hbmRhdG9yeVwiPio8L3N0cm9uZz5gO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodHJhbnNsYXRlQ2FwdGlvbik7XG4gICAgICAgIHRoaXMubGFiZWxWaXNpYmxlID0gY29uZmlnLlRleHRWaXNpYmxlICYmIHRoaXMuc2hvd0xhYmVsICE9PSBmYWxzZTtcbiAgICAgICAgY29uc3QgY29udHJvbFdpZHRoID0gZ2V0TGFiZWxXaWR0aCh0aGlzLmNvbmZpZyk7XG4gICAgICAgIGlmIChjb250cm9sV2lkdGggJiYgY29udHJvbFdpZHRoID4gdGhpcy5tYXhMYWJlbFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXJlbnRMYXlvdXRTZXJ2aWNlLnNldE1heFdpZHRoKGNvbnRyb2xXaWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0SGlkZShjb25maWcuRmllbGRVaS5TZXR0aW5nLklzVmlzaWJsZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2UpO1xuICAgIH1cbiAgICBfc2V0TGFiZWxXaWR0aChtYXhMYWJlbFdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRlbXBMYWJlbFJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbCA9XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5DYXB0aW9uU2V0dGluZz8uQWxpZ25Nb2RlID09PSAnQXV0b1NpemUnIHx8XG4gICAgICAgICAgICAodGhpcy5pc01vYmlsZSAmJiAodGhpcy5pc0NoZWNrYm94IHx8IHRoaXMuY29udHJvbElzUmVhZG9ubHkpKVxuICAgICAgICAgICAgICAgID8gJ2F1dG8nXG4gICAgICAgICAgICAgICAgOiB0aGlzLmlzQ29sdW1uRGlyZWN0aW9uIHx8IHRoaXMuaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXG4gICAgICAgICAgICAgICAgPyAnMTAwJSdcbiAgICAgICAgICAgICAgICA6IG1heExhYmVsV2lkdGggKyAncHgnO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy50ZW1wTGFiZWxSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgdmFsKTtcblxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHRoaXMuaXNDaGVja2JveFxuICAgICAgICAgICAgPyB0aGlzLmNoZWNrYm94V2lkdGhcbiAgICAgICAgICAgIDogdGhpcy5jb25maWcuQ2FwdGlvblNldHRpbmc/LkFsaWduTW9kZSA9PT0gJ0F1dG9TaXplJyB8fCAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmNvbnRyb2xJc1JlYWRvbmx5KVxuICAgICAgICAgICAgPyAnZml0LWNvbnRlbnQnXG4gICAgICAgICAgICA6IHRoaXMuaXNDb2x1bW5EaXJlY3Rpb24gfHwgdGhpcy5pc0NvbHVtblJldmVyc2VEaXJlY3Rpb25cbiAgICAgICAgICAgID8gJzEwMCUnXG4gICAgICAgICAgICA6IG1heExhYmVsV2lkdGggKyAncHgnO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy50ZW1wTGFiZWxSZWYubmF0aXZlRWxlbWVudCwgJ21pbi13aWR0aCcsIG1pbldpZHRoKTtcbiAgICB9XG4gICAgX3Jlc2l6ZVVsdkJ5RGV2aWNlKGRldmljZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNVbHYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGV2aWNlSGVpZ2h0ID0gJ0Rlc2t0b3BIZWlnaHQnO1xuICAgICAgICBzd2l0Y2ggKGRldmljZSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgZGV2aWNlSGVpZ2h0ID0gJ01vYmlsZUhlaWdodCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICBkZXZpY2VIZWlnaHQgPSAnVGFibGV0SGVpZ2h0JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhlaWdodCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5jb25maWcsXG4gICAgICAgICAgICAnRmllbGRVaS5TZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy4nICsgZGV2aWNlSGVpZ2h0LFxuICAgICAgICAgICAgJ2F1dG8nXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByZXBhcmVNaW5BbmRNYXhTaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uc3QgbGF5b3V0SW5mbyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgaXNCdXR0b24gPSB0aGlzLmlzQnV0dG9uO1xuICAgICAgICBjb25zdCBpc1NpbmdsZVBpY3R1cmUgPSB0aGlzLmlzU2luZ2xlUGljdHVyZTtcbiAgICAgICAgY29uc3QgaXNDaGVja2JveCA9IHRoaXMuaXNDaGVja2JveDtcbiAgICAgICAgaWYgKCF0aGlzLmlubGluZUVkaXQgJiYgbGF5b3V0SW5mbyAmJiAoaXNCdXR0b24gfHwgaXNDaGVja2JveCB8fCBpc1NpbmdsZVBpY3R1cmUpKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJNaW5XaWR0aCA9IGNvbmZpZy5Cb3VuZHMud2lkdGg7XG4gICAgICAgICAgICBsZXQgZXh0cmFWYWwgPSAwO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgoaXNCdXR0b24gfHwgaXNDaGVja2JveCkgJiYgbGF5b3V0SW5mby5GaWVsZFVpLlNldHRpbmc/LkZpZWxkSWNvbikgfHxcbiAgICAgICAgICAgICAgICBsYXlvdXRJbmZvLkZpZWxkVWkuU2V0dGluZy5Kc29uRXh0cmFQcm9wPy5HbHlwaFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZXh0cmFWYWwgPSAxODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgTWF4U2l6ZSwgTWluU2l6ZSB9ID0gbGF5b3V0SW5mbztcbiAgICAgICAgICAgIGlmIChNYXhTaXplPy53aWR0aCA+IDAgJiYgIXRoaXMuaXNDaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWF4V2lkdGggPSBNYXhTaXplLndpZHRoICsgZXh0cmFWYWwgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE1pblNpemU/LndpZHRoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWluV2lkdGggPSBNaW5TaXplLndpZHRoICsgZXh0cmFWYWwgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzU2VhcmNoUGFuZWwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0ck1pbldpZHRoID0gdGhpcy5tYXhMYWJlbFdpZHRoICsgMjAwO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWF4V2lkdGggPSAnMzIwcHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIFJlZnJlc2hMYWJlbCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaExhYmVsKCk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoeyB0aXRsZTogJ3JlZnJlc2hMYWJlbCcsIGRhdGE6IHRoaXMuY29uZmlnIH0pO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIFNldFZpc2libGUgPSAodmlzaWJsZSwgcmVmcmVzaCkgPT4ge1xuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Jc1Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICAgICAgdGhpcy5fc2V0SGlkZSghdmlzaWJsZSk7XG4gICAgICAgICAgICAvLyB0aGlzLmNvbmZpZy5GaWVsZFVpLlNldHRpbmcuJEJSdWxlSGlkZSA9ICF2aXNpYmxlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBwcml2YXRlIF9zZXRIaWRlKGhpZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaGlkZSA9IHRoaXMuY29uZmlnLkZpZWxkVWkuU2V0dGluZy5IaWRlU2VhcmNoQ29tbWFuZEluZm9VaSA9PT0gdHJ1ZSA/IHRydWUgOiBoaWRlOyAvLyBoaWRlIGRlZmF1bHQgYnV0dG9ucyBvZiBzZWFyY2ggcGFuZWxcbiAgICAgICAgdGhpcy5oaWRlID0gaGlkZTtcbiAgICAgICAgaWYgKGhpZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdoaWRlLWZvcm0taXRlbScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hpZGUtZm9ybS1pdGVtJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0RmxleChmbGV4OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbGV4ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlIHx8IHRoaXMuY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSAhPT0gJ1VpLlRleHRBcmVhJylcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZmxleCcsIGZsZXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICghaGlkZSkgeyBAaWYgKGxhYmVsVmlzaWJsZSkge1xuPGJzdS1seS1sYWJlbFxuICAgIFthdHRyLmxhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXG4gICAgW2F0dHJSdGxdXG4gICAgI3RlbXBMYWJlbFJlZlxuICAgIFtjbGFzcy5uby1wYWRkaW5nXT1cImNvbmZpZy5QYWRkaW5nWzBdID09PSAwXCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgW2NhcHRpb25dPVwibGFiZWxDYXB0aW9uXCJcbiAgICBbb3JpZ2luYWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcbiAgICBbc3R5bGUubWluLXdpZHRoXT1cIlxuICAgICAgICBpc0NoZWNrYm94XG4gICAgICAgICAgICA/IGNoZWNrYm94V2lkdGhcbiAgICAgICAgICAgIDogY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPT09ICdBdXRvU2l6ZScgfHwgKGlzTW9iaWxlICYmIGNvbnRyb2xJc1JlYWRvbmx5KVxuICAgICAgICAgICAgPyAnZml0LWNvbnRlbnQnXG4gICAgICAgICAgICA6IGlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblxuICAgICAgICAgICAgPyAnMTAwJSdcbiAgICAgICAgICAgIDogbWF4TGFiZWxXaWR0aCArICdweCdcbiAgICBcIlxuICAgIFtzdHlsZS53aWR0aF09XCJcbiAgICAgICAgY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPT09ICdBdXRvU2l6ZScgfHwgKGlzTW9iaWxlICYmIChpc0NoZWNrYm94IHx8IGNvbnRyb2xJc1JlYWRvbmx5KSlcbiAgICAgICAgICAgID8gJ2F1dG8nXG4gICAgICAgICAgICA6IGlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblxuICAgICAgICAgICAgPyAnMTAwJSdcbiAgICAgICAgICAgIDogbWF4TGFiZWxXaWR0aCArICdweCdcbiAgICBcIlxuICAgIFtpc01hbmRhdG9yeV09XCJpc01hbmRhdG9yeVwiXG4gICAgW2ZpZWxkSWNvbl09XCJmaWVsZEljb25cIlxuICAgIFtoZWxwRGVzY3JpcHRpb25dPVwiaGVscERlc2NyaXB0aW9uXCJcbiAgICBbb3JpZ2luYWxYdHlwZV09XCJvcmlnaW5hbFh0eXBlXCJcbiAgICBbdGV4dFZpc2libGVdPVwidGV4dFZpc2libGVcIlxuICAgIFtpc0NvbHVtbl09XCJpc0NvbHVtbkRpcmVjdGlvbiB8fCBpc0NvbHVtblJldmVyc2VEaXJlY3Rpb25cIlxuPjwvYnN1LWx5LWxhYmVsPlxufVxuPGxhYmVsIFthdHRyLnZpc2libGVdPVwibGFiZWxWaXNpYmxlXCIgY2xhc3M9XCJob3Jpem9udGFsLWxhYmVsXCIgW2lubmVySHRtbF09XCJlbXB0eVRleHRcIj48L2xhYmVsPlxuPGJucmMtZmllbGQtdWlcbiAgICBbYXR0ci54dHlwZV09XCJjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlXCJcbiAgICBbYXR0ci5maWVsZFdpZHRoXT1cImxheW91dENvbnRyb2xXaWR0aFwiXG4gICAgW2F0dHIuaXNDaGVja2JveF09XCJpc0NoZWNrYm94XCJcbiAgICBbYXR0ci5pc2J1dHRvbl09XCJpc0J1dHRvblwiXG4gICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJpc0NoZWNrYm94ID8gMSA6IDBcIlxuICAgIFtjbGFzcy5uby1wYWRkaW5nXT1cImNvbmZpZy5QYWRkaW5nWzBdID09PSAwXCJcbiAgICBbY3VzdG9tRmllbGRdPVwiY29uZmlnLkZpZWxkVWlcIlxuICAgIFtsYXlvdXRJbmZvXT1cImNvbmZpZ1wiXG4gICAgW2lubGluZUVkaXRdPVwiaW5saW5lRWRpdFwiXG4gICAgW2Zvcm1IZWlnaHRdPVwiKGZvcm1IZWlnaHQkIHwgYXN5bmMpISFcIlxuICAgIFtmb2N1c0NvbnRyb2xdPVwiZm9jdXNDb250cm9sXCJcbiAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cImlzVWx2ID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICBbYXR0ci5pc3Vsdl09XCJpc1VsdlwiXG4+PC9ibnJjLWZpZWxkLXVpPlxufVxuIl19
|