barsa-sap-ui 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/esm2020/barsa-sap-ui.mjs +5 -0
- package/esm2020/lib/apply-conditional-formmatings.directive.mjs +84 -0
- package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +109 -0
- package/esm2020/lib/barsa-base-layout/barsa-base-layout.component.mjs +34 -0
- package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
- package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +28 -0
- package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +77 -0
- package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +45 -0
- package/esm2020/lib/barsa-sap-ui-routing.module.mjs +17 -0
- package/esm2020/lib/barsa-sap-ui.module.mjs +277 -0
- package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +122 -0
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +57 -0
- package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +334 -0
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +120 -0
- package/esm2020/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +19 -0
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +156 -0
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +45 -0
- package/esm2020/lib/captcha-field/captcha-field.component.mjs +28 -0
- package/esm2020/lib/card-item/card-item.component.mjs +60 -0
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +23 -0
- package/esm2020/lib/col-renderer.directive.mjs +50 -0
- package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
- package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +60 -0
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +84 -0
- package/esm2020/lib/constants.mjs +413 -0
- package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +41 -0
- package/esm2020/lib/device-info-field-base.mjs +23 -0
- package/esm2020/lib/dynamic-page-size.pipe.mjs +26 -0
- package/esm2020/lib/empty-page/empty-page.component.mjs +38 -0
- package/esm2020/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +125 -0
- package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +38 -0
- package/esm2020/lib/form-page/form-page.component.mjs +51 -0
- package/esm2020/lib/form-page-base.mjs +129 -0
- package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +44 -0
- package/esm2020/lib/form-wizard/form-wizard.component.mjs +21 -0
- package/esm2020/lib/fullscreen-dialog.directive.mjs +40 -0
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +152 -0
- package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +203 -0
- package/esm2020/lib/global-search/global-search.component.mjs +26 -0
- package/esm2020/lib/global-search-module/global-search-module.component.mjs +30 -0
- package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +30 -0
- package/esm2020/lib/header-avatar/header-avatar.component.mjs +19 -0
- package/esm2020/lib/header-facet-form/header-facet-form.component.mjs +22 -0
- package/esm2020/lib/header-facet-key-value/header-facet-key-value.component.mjs +31 -0
- package/esm2020/lib/header-facet-microchart/header-facet-microchart.component.mjs +21 -0
- package/esm2020/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +28 -0
- package/esm2020/lib/header-facet-progress/header-facet-progress.component.mjs +26 -0
- package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +26 -0
- package/esm2020/lib/htree-create-new/htree-create-new.component.mjs +49 -0
- package/esm2020/lib/hyperlink/hyperlink.component.mjs +19 -0
- package/esm2020/lib/index.mjs +412 -0
- package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +65 -0
- package/esm2020/lib/layout-control/layout-control.component.mjs +214 -0
- package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +133 -0
- package/esm2020/lib/list-item/list-item.component.mjs +30 -0
- package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +37 -0
- package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +70 -0
- package/esm2020/lib/ly-label/ly-label.component.mjs +31 -0
- package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
- package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
- package/esm2020/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
- package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +64 -0
- package/esm2020/lib/ly-line/ly-line.component.mjs +56 -0
- package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +27 -0
- package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +43 -0
- package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +35 -0
- package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +49 -0
- package/esm2020/lib/manage-filters-report/manage-filters-report.component.mjs +45 -0
- package/esm2020/lib/mask/mask.component.mjs +22 -0
- package/esm2020/lib/message-strip/message-strip.component.mjs +28 -0
- package/esm2020/lib/models/grid-data-provider.mjs +219 -0
- package/esm2020/lib/models/grid-view.mjs +2 -0
- package/esm2020/lib/models/index.mjs +2 -0
- package/esm2020/lib/no-data/no-data.component.mjs +20 -0
- package/esm2020/lib/page-with-form-handler-base.mjs +42 -0
- package/esm2020/lib/page-with-header/page-with-header.component.mjs +76 -0
- package/esm2020/lib/progress-indicator/progress-indicator.component.mjs +18 -0
- package/esm2020/lib/report-navigator/report-navigator.component.mjs +62 -0
- package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
- package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +99 -0
- package/esm2020/lib/report-search-panel-save/report-search-panel-save.component.mjs +90 -0
- package/esm2020/lib/report-tree-base.mjs +405 -0
- package/esm2020/lib/report-view-renderer.directive.mjs +248 -0
- package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
- package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
- package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +35 -0
- package/esm2020/lib/sap-font-class.pipe.mjs +29 -0
- package/esm2020/lib/sap-font.pipe.mjs +29 -0
- package/esm2020/lib/sap-ui-report-base.component.mjs +689 -0
- package/esm2020/lib/search-panel/search-panel.component.mjs +40 -0
- package/esm2020/lib/static-text/static-text.component.mjs +15 -0
- package/esm2020/lib/title/title.component.mjs +15 -0
- package/esm2020/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +14 -0
- package/esm2020/lib/ui-button/ui-button.component.mjs +31 -0
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +46 -0
- package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +60 -0
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +27 -0
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +29 -0
- package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
- package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +34 -0
- package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +194 -0
- package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +116 -0
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +110 -0
- package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +61 -0
- package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +181 -0
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +43 -0
- package/esm2020/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.mjs +26 -0
- package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
- package/esm2020/lib/ui-graph/ui-graph.component.mjs +16 -0
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +25 -0
- package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +44 -0
- package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +67 -0
- package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +76 -0
- package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +59 -0
- package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +156 -0
- package/esm2020/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
- package/esm2020/lib/ui-label/ui-label.component.mjs +12 -0
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +299 -0
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +44 -0
- package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +125 -0
- package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
- package/esm2020/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +13 -0
- package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +46 -0
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +335 -0
- package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +18 -0
- package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +83 -0
- package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +24 -0
- package/esm2020/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
- package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +216 -0
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +95 -0
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +215 -0
- package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +24 -0
- package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +29 -0
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +46 -0
- package/esm2020/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
- package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +29 -0
- package/esm2020/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
- package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +106 -0
- package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +44 -0
- package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +47 -0
- package/esm2020/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +47 -0
- package/esm2020/lib/ui-time-span/ui-time-span.component.mjs +24 -0
- package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +69 -0
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +75 -0
- package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +24 -0
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +276 -0
- package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +26 -0
- package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +86 -0
- package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +117 -0
- package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +114 -0
- package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +44 -0
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
- package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +74 -0
- package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +183 -0
- package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
- package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +73 -0
- package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +66 -0
- package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +117 -0
- package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +44 -0
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +110 -0
- package/esm2020/lib/upload-file-status.pipe.mjs +28 -0
- package/esm2020/lib/wizard-layout.directive.mjs +102 -0
- package/esm2020/public-api.mjs +170 -0
- package/fesm2015/barsa-sap-ui.mjs +11437 -0
- package/fesm2015/barsa-sap-ui.mjs.map +1 -0
- package/fesm2020/barsa-sap-ui.mjs +11427 -0
- package/fesm2020/barsa-sap-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/apply-conditional-formmatings.directive.d.ts +25 -0
- package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +26 -0
- package/lib/barsa-base-layout/barsa-base-layout.component.d.ts +18 -0
- package/lib/barsa-date-time-picker/barsa-date-time-picker.component.d.ts +18 -0
- package/lib/barsa-list-file-linear/barsa-list-file-linear.component.d.ts +8 -0
- package/lib/barsa-monaco-editor/barsa-monaco-editor.component.d.ts +18 -0
- package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +13 -0
- package/lib/barsa-sap-ui-routing.module.d.ts +7 -0
- package/lib/barsa-sap-ui.module.d.ts +181 -0
- package/lib/barsa-search-form/barsa-search-form.component.d.ts +8 -0
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +37 -0
- package/lib/barsa-table-row/barsa-table-row.component.d.ts +20 -0
- package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +43 -0
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +48 -0
- package/lib/barsa-tree-item/node-has-one-depth-level.pipe.d.ts +8 -0
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +52 -0
- package/lib/breadcrumb/breadcrumb.component.d.ts +17 -0
- package/lib/captcha-field/captcha-field.component.d.ts +10 -0
- package/lib/card-item/card-item.component.d.ts +17 -0
- package/lib/card-view-content/card-view-content.component.d.ts +8 -0
- package/lib/col-renderer.directive.d.ts +12 -0
- package/lib/column-matrix-renderer/column-matrix-renderer.component.d.ts +23 -0
- package/lib/column-matrix-renderer/matrix-value.pipe.d.ts +8 -0
- package/lib/column-renderer/column-renderer.component.d.ts +29 -0
- package/lib/constants.d.ts +6 -0
- package/lib/custom-date-time/custom-date-time.component.d.ts +26 -0
- package/lib/device-info-field-base.d.ts +12 -0
- package/lib/dynamic-page-size.pipe.d.ts +8 -0
- package/lib/empty-page/empty-page.component.d.ts +11 -0
- package/lib/file-in-dialog/file-in-dialog.component.d.ts +16 -0
- package/lib/form-dialog/form-dialog.component.d.ts +40 -0
- package/lib/form-dialog-less/form-dialog-less.component.d.ts +27 -0
- package/lib/form-page/form-page.component.d.ts +17 -0
- package/lib/form-page-base.d.ts +26 -0
- package/lib/form-toolbar-button/form-toolbar-button.component.d.ts +18 -0
- package/lib/form-wizard/form-wizard.component.d.ts +8 -0
- package/lib/fullscreen-dialog.directive.d.ts +14 -0
- package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +58 -0
- package/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.d.ts +18 -0
- package/lib/global-search/global-search.component.d.ts +12 -0
- package/lib/global-search-module/global-search-module.component.d.ts +18 -0
- package/lib/global-search-panel/global-search-panel.component.d.ts +11 -0
- package/lib/header-avatar/header-avatar.component.d.ts +8 -0
- package/lib/header-facet-form/header-facet-form.component.d.ts +9 -0
- package/lib/header-facet-key-value/header-facet-key-value.component.d.ts +11 -0
- package/lib/header-facet-microchart/header-facet-microchart.component.d.ts +8 -0
- package/lib/header-facet-plain-text/header-facet-plain-text.component.d.ts +11 -0
- package/lib/header-facet-progress/header-facet-progress.component.d.ts +11 -0
- package/lib/header-facet-rate/header-facet-rate.component.d.ts +11 -0
- package/lib/htree-create-new/htree-create-new.component.d.ts +13 -0
- package/lib/hyperlink/hyperlink.component.d.ts +7 -0
- package/lib/index.d.ts +85 -0
- package/lib/inline-save-and-cancel/inline-save-and-cancel.component.d.ts +11 -0
- package/lib/layout-actions/layout-actions.component.d.ts +23 -0
- package/lib/layout-control/layout-control.component.d.ts +65 -0
- package/lib/layout-wizard/layout-wizard.component.d.ts +27 -0
- package/lib/list-item/list-item.component.d.ts +13 -0
- package/lib/ly-empty-space/ly-empty-space.component.d.ts +14 -0
- package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +22 -0
- package/lib/ly-label/ly-label.component.d.ts +15 -0
- package/lib/ly-layout-container/ly-layout-container.component.d.ts +26 -0
- package/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.d.ts +8 -0
- package/lib/ly-layout-field-label/ly-layout-field-label.component.d.ts +13 -0
- package/lib/ly-layout-panel/ly-layout-panel.component.d.ts +25 -0
- package/lib/ly-line/ly-line.component.d.ts +17 -0
- package/lib/ly-simple-label/ly-simple-label.component.d.ts +11 -0
- package/lib/ly-tab-container/ly-tab-container.component.d.ts +16 -0
- package/lib/ly-tab-page/ly-tab-page.component.d.ts +18 -0
- package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +18 -0
- package/lib/manage-filters-report/manage-filters-report.component.d.ts +24 -0
- package/lib/mask/mask.component.d.ts +9 -0
- package/lib/message-strip/message-strip.component.d.ts +11 -0
- package/lib/models/grid-data-provider.d.ts +26 -0
- package/lib/models/grid-view.d.ts +64 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/no-data/no-data.component.d.ts +8 -0
- package/lib/page-with-form-handler-base.d.ts +10 -0
- package/lib/page-with-header/page-with-header.component.d.ts +29 -0
- package/lib/progress-indicator/progress-indicator.component.d.ts +8 -0
- package/lib/report-navigator/report-navigator.component.d.ts +21 -0
- package/lib/report-new-top-form/report-new-top-form.component.d.ts +18 -0
- package/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.d.ts +14 -0
- package/lib/report-search-fields-manage/report-search-fields-manage.component.d.ts +20 -0
- package/lib/report-search-panel-save/report-search-panel-save.component.d.ts +27 -0
- package/lib/report-tree-base.d.ts +61 -0
- package/lib/report-view-renderer.directive.d.ts +82 -0
- package/lib/responsive-toolbar/responsive-toolbar.component.d.ts +19 -0
- package/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.d.ts +24 -0
- package/lib/rich-text-static/rich-text-static.component.d.ts +24 -0
- package/lib/sap-font-class.pipe.d.ts +8 -0
- package/lib/sap-font.pipe.d.ts +9 -0
- package/lib/sap-ui-report-base.component.d.ts +133 -0
- package/lib/search-panel/search-panel.component.d.ts +13 -0
- package/lib/static-text/static-text.component.d.ts +7 -0
- package/lib/title/title.component.d.ts +7 -0
- package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +7 -0
- package/lib/ui-button/ui-button.component.d.ts +11 -0
- package/lib/ui-calendar/ui-calendar.component.d.ts +16 -0
- package/lib/ui-card-view/ui-card-view.component.d.ts +16 -0
- package/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.d.ts +9 -0
- package/lib/ui-check-box/ui-check-box.component.d.ts +12 -0
- package/lib/ui-color-ui/ui-color-ui.component.d.ts +16 -0
- package/lib/ui-container-with-button/ui-container-with-button.component.d.ts +11 -0
- package/lib/ui-date-range-ex/ui-date-range-ex.component.d.ts +36 -0
- package/lib/ui-date-time/ui-date-time.component.d.ts +24 -0
- package/lib/ui-editable-grid/ui-editable-grid.component.d.ts +43 -0
- package/lib/ui-exception-form/ui-exception-form.component.d.ts +16 -0
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +51 -0
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +24 -0
- package/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.d.ts +13 -0
- package/lib/ui-gantt-chart/ui-gantt-chart.component.d.ts +15 -0
- package/lib/ui-graph/ui-graph.component.d.ts +9 -0
- package/lib/ui-grid/ui-grid.component.d.ts +12 -0
- package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +14 -0
- package/lib/ui-grid-filter-item/ui-grid-filter-item.component.d.ts +19 -0
- package/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.d.ts +24 -0
- package/lib/ui-grid-sort-item/ui-grid-sort-item.component.d.ts +25 -0
- package/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.d.ts +28 -0
- package/lib/ui-info-bar-panel/ui-info-bar-panel.component.d.ts +5 -0
- package/lib/ui-label/ui-label.component.d.ts +6 -0
- package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +62 -0
- package/lib/ui-list-view/ui-list-view.component.d.ts +15 -0
- package/lib/ui-matrix-view/ui-matrix-view.component.d.ts +45 -0
- package/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.d.ts +7 -0
- package/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.d.ts +6 -0
- package/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.d.ts +13 -0
- package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +78 -0
- package/lib/ui-monaco-editor/ui-monaco-editor.component.d.ts +7 -0
- package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +21 -0
- package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +11 -0
- package/lib/ui-num-int-ui/ui-num-int-ui.component.d.ts +10 -0
- package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +63 -0
- package/lib/ui-picture-file/ui-picture-file.component.d.ts +27 -0
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +68 -0
- package/lib/ui-radio-group/ui-radio-group.component.d.ts +9 -0
- package/lib/ui-read-only-field/ui-read-only-field.component.d.ts +11 -0
- package/lib/ui-report-container/ui-report-container.component.d.ts +17 -0
- package/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.d.ts +9 -0
- package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +13 -0
- package/lib/ui-single-picture/ui-single-picture.component.d.ts +13 -0
- package/lib/ui-switch-button/ui-switch-button.component.d.ts +11 -0
- package/lib/ui-table-view/ui-table-view.component.d.ts +29 -0
- package/lib/ui-text-area/ui-text-area.component.d.ts +15 -0
- package/lib/ui-text-field/ui-text-field.component.d.ts +14 -0
- package/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.d.ts +13 -0
- package/lib/ui-time-span/ui-time-span.component.d.ts +10 -0
- package/lib/ui-tinymce/ui-tinymce.component.d.ts +17 -0
- package/lib/ui-tree/ui-tree.component.d.ts +32 -0
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +41 -0
- package/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.d.ts +9 -0
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +67 -0
- package/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.d.ts +16 -0
- package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +20 -0
- package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +48 -0
- package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +41 -0
- package/lib/ul-toast-adapter/ul-toast-adapter.component.d.ts +13 -0
- package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +19 -0
- package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +24 -0
- package/lib/ulv-filter-settings/ulv-filter-settings.component.d.ts +19 -0
- package/lib/ulv-form-multi-select/ulv-form-multi-select.component.d.ts +26 -0
- package/lib/ulv-groupby-settings/ulv-groupby-settings.component.d.ts +16 -0
- package/lib/ulv-paging/ulv-paging.component.d.ts +27 -0
- package/lib/ulv-selection/ulv-selection.component.d.ts +43 -0
- package/lib/ulv-settings/ulv-settings.component.d.ts +43 -0
- package/lib/ulv-sort-settings/ulv-sort-settings.component.d.ts +16 -0
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +47 -0
- package/lib/upload-file-status.pipe.d.ts +9 -0
- package/lib/wizard-layout.directive.d.ts +39 -0
- package/package.json +31 -0
- package/public-api.d.ts +166 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { BaseDirective } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
+
export class FullscreenDialogDirective extends BaseDirective {
|
|
6
|
+
constructor(_renderer2, _portalService) {
|
|
7
|
+
super();
|
|
8
|
+
this._renderer2 = _renderer2;
|
|
9
|
+
this._portalService = _portalService;
|
|
10
|
+
}
|
|
11
|
+
onFullscreen() {
|
|
12
|
+
const dialogRef = this.dialog;
|
|
13
|
+
const dialogComponent = this.dialogComponent;
|
|
14
|
+
dialogRef.data.fullscreen = !dialogRef.data.fullscreen;
|
|
15
|
+
if (dialogRef.data.fullscreen) {
|
|
16
|
+
this._renderer2.addClass(dialogComponent.dialogWindow.nativeElement, 'bsu-dialog-fullscreen');
|
|
17
|
+
this._portalService.windowResize();
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this._renderer2.removeClass(dialogComponent.dialogWindow.nativeElement, 'bsu-dialog-fullscreen');
|
|
21
|
+
this._portalService.windowResize();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
FullscreenDialogDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FullscreenDialogDirective, deps: [{ token: i0.Renderer2 }, { token: i1.PortalService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
+
FullscreenDialogDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: { dialog: "dialog", dialogComponent: "dialogComponent" }, host: { listeners: { "click": "onFullscreen()" } }, usesInheritance: true, ngImport: i0 });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FullscreenDialogDirective, decorators: [{
|
|
28
|
+
type: Directive,
|
|
29
|
+
args: [{
|
|
30
|
+
selector: '[fullscreenDialog]'
|
|
31
|
+
}]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.PortalService }]; }, propDecorators: { dialog: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], dialogComponent: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], onFullscreen: [{
|
|
37
|
+
type: HostListener,
|
|
38
|
+
args: ['click']
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi1kaWFsb2cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVsbHNjcmVlbi1kaWFsb2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUcxRSxPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7QUFLcEUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGFBQWE7SUFJeEQsWUFBb0IsVUFBcUIsRUFBVSxjQUE2QjtRQUM1RSxLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQVc7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtJQUVoRixDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdEM7SUFDTCxDQUFDOztzSEFuQlEseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQzs0SEFFWSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFNTixZQUFZO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmdWxsc2NyZWVuRGlhbG9nXSdcbn0pXG5leHBvcnQgY2xhc3MgRnVsbHNjcmVlbkRpYWxvZ0RpcmVjdGl2ZSBleHRlbmRzIEJhc2VEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIGRpYWxvZzogYW55O1xuICAgIEBJbnB1dCgpIGRpYWxvZ0NvbXBvbmVudDogRGlhbG9nQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uRnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0NvbXBvbmVudCA9IHRoaXMuZGlhbG9nQ29tcG9uZW50O1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS5mdWxsc2NyZWVuID0gIWRpYWxvZ1JlZi5kYXRhLmZ1bGxzY3JlZW47XG4gICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS5mdWxsc2NyZWVuKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYWRkQ2xhc3MoZGlhbG9nQ29tcG9uZW50LmRpYWxvZ1dpbmRvdy5uYXRpdmVFbGVtZW50LCAnYnN1LWRpYWxvZy1mdWxsc2NyZWVuJyk7XG4gICAgICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnJlbW92ZUNsYXNzKGRpYWxvZ0NvbXBvbmVudC5kaWFsb2dXaW5kb3cubmF0aXZlRWxlbWVudCwgJ2JzdS1kaWFsb2ctZnVsbHNjcmVlbicpO1xuICAgICAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { DynamicPageComponent } from '@fundamental-ngx/core';
|
|
3
|
+
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
7
|
+
import * as i3 from "@fundamental-ngx/core/avatar";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/breadcrumb";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/button";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/core/dynamic-page";
|
|
11
|
+
import * as i7 from "@fundamental-ngx/core/facets";
|
|
12
|
+
import * as i8 from "@fundamental-ngx/core/form";
|
|
13
|
+
import * as i9 from "@fundamental-ngx/core/menu";
|
|
14
|
+
import * as i10 from "@fundamental-ngx/core/message-strip";
|
|
15
|
+
import * as i11 from "@fundamental-ngx/core/object-number";
|
|
16
|
+
import * as i12 from "@fundamental-ngx/core/object-status";
|
|
17
|
+
import * as i13 from "@fundamental-ngx/core/rating-indicator";
|
|
18
|
+
import * as i14 from "@fundamental-ngx/core/split-button";
|
|
19
|
+
import * as i15 from "@fundamental-ngx/core/tabs";
|
|
20
|
+
import * as i16 from "@fundamental-ngx/core/text";
|
|
21
|
+
import * as i17 from "@fundamental-ngx/core/toolbar";
|
|
22
|
+
import * as i18 from "@fundamental-ngx/core/progress-indicator";
|
|
23
|
+
import * as i19 from "../ly-layout-container-of-root/ly-layout-container-of-root.component";
|
|
24
|
+
import * as i20 from "../mask/mask.component";
|
|
25
|
+
import * as i21 from "../ly-tab-page/ly-tab-page.component";
|
|
26
|
+
import * as i22 from "../layout-actions/layout-actions.component";
|
|
27
|
+
import * as i23 from "../breadcrumb/breadcrumb.component";
|
|
28
|
+
export class FundamentalDynamicFormComponent extends BaseComponent {
|
|
29
|
+
constructor(el) {
|
|
30
|
+
super();
|
|
31
|
+
this.el = el;
|
|
32
|
+
this.toolbarClick = new EventEmitter();
|
|
33
|
+
this.workflowChoiceClick = new EventEmitter();
|
|
34
|
+
/* eslint-disable */
|
|
35
|
+
this.close = new EventEmitter();
|
|
36
|
+
this.hideTitle = true;
|
|
37
|
+
this.toolbarShouldOverflow = false;
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
super.ngOnInit();
|
|
41
|
+
this.facetList || (this.facetList = []);
|
|
42
|
+
this.workflowInfoText = this.workflowPanelUi?.Setting?.Workflow?.InfoText;
|
|
43
|
+
const workflowButtons = this.workflowPanelUi?.buttonList ?? [];
|
|
44
|
+
this.workflowButtonsComboMode = this.workflowPanelUi?.Setting?.Workflow?.ButtonsComboMode;
|
|
45
|
+
this.workflowButtons = workflowButtons;
|
|
46
|
+
const toolbarButtonsCount = this.toolbarItems.filter((c) => typeof c !== 'string' && c.text !== '-').length;
|
|
47
|
+
if (this.deviceSize === 's' && toolbarButtonsCount > 1) {
|
|
48
|
+
this.toolbarShouldOverflow = true;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
if (toolbarButtonsCount > 5) {
|
|
52
|
+
this.toolbarShouldOverflow = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
onToolbarClick(btn, menu = null) {
|
|
57
|
+
if (menu) {
|
|
58
|
+
menu.close();
|
|
59
|
+
}
|
|
60
|
+
this.toolbarClick.emit(btn);
|
|
61
|
+
}
|
|
62
|
+
onWfChoiceSelect(wfChoice) {
|
|
63
|
+
this.workflowChoiceClick.emit(wfChoice);
|
|
64
|
+
}
|
|
65
|
+
onTabChanged(tab) {
|
|
66
|
+
this.selectedTab = tab.title;
|
|
67
|
+
}
|
|
68
|
+
getNumber(val) {
|
|
69
|
+
return Number(val);
|
|
70
|
+
}
|
|
71
|
+
onDynamicComponentEvents(e) { }
|
|
72
|
+
}
|
|
73
|
+
FundamentalDynamicFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FundamentalDynamicFormComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
+
FundamentalDynamicFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", modernTabs: "modernTabs" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mask\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [subtitle]=\"subtitle | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n #titleRef\r\n >\r\n <fd-breadcrumb>\r\n <ng-container *ngIf=\"breadCrumbs\">\r\n <ng-container\r\n *ngFor=\"let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; let i = index; let last = last\"\r\n >\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n </ng-container>\r\n </ng-container>\r\n </fd-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n <fd-toolbar\r\n *ngIf=\"toolbarVisible\"\r\n fdType=\"transparent\"\r\n [clearBorder]=\"true\"\r\n [shouldOverflow]=\"deviceSize === 's'\"\r\n >\r\n <ng-container *ngFor=\"let btn of toolbarItems; let i = index; let last = last; let first = first\">\r\n <fd-toolbar-separator\r\n [attr.i]=\"i\"\r\n [attr.last]=\"last\"\r\n [attr.first]=\"first\"\r\n *ngIf=\"(btn === '-' || btn.text === '-') && !last && !first\"\r\n ></fd-toolbar-separator>\r\n <ng-container *ngIf=\"btn.IAmMenu; else simpleButton\">\r\n <fd-split-button\r\n [dir]=\"dirValue\"\r\n [compact]=\"contentDensity === 'compact' ? true : false\"\r\n fd-toolbar-item\r\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [glyph]=\"(btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon) || 'slim-arrow-down'\"\r\n (click)=\"menu.open()\"\r\n >\r\n <fd-menu #menu>\r\n <li\r\n fd-menu-item\r\n *ngFor=\"let menuItem of btn.menu.items\"\r\n [disabled]=\"menuItem.disabled\"\r\n (click)=\"onToolbarClick(menuItem, menu)\"\r\n >\r\n <div fd-menu-interactive>\r\n <fd-menu-addon\r\n position=\"before\"\r\n [glyph]=\"\r\n menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\r\n \"\r\n >\r\n </fd-menu-addon>\r\n <img class=\"mr8\" *ngIf=\"menuItem.icon\" [src]=\"menuItem.icon\" />\r\n <span fd-menu-title>{{ menuItem.text }}</span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button>\r\n </ng-container>\r\n <ng-template #simpleButton>\r\n <ng-container *ngIf=\"!(btn === '-' || btn.text === '-')\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\r\n context: { $implicit: btn }\r\n \"\r\n ></ng-container>\r\n <ng-template #btnTemplate let-btn>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [disabled]=\"btn.disabled\"\r\n [buttonType]=\"\r\n btn.isWorkflow\r\n ? 'positive'\r\n : btn.design\r\n ? btn.design\r\n : btn.Data?.JsonExtraProp?.Design\r\n \"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolbarClick(btn)\"\r\n >\r\n <img\r\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\r\n width=\"16\"\r\n [src]=\"btn.icon\"\r\n />\r\n <span>{{ btn.text }}</span>\r\n </button>\r\n </ng-template>\r\n <ng-template #dynamicBtnTemplate let-btn>\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [component]=\"btn.Data.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n (btnClick)=\"onToolbarClick(btn)\"\r\n ></bnrc-dynamic-form-toolbaritem>\r\n </ng-template>\r\n </ng-container>\r\n <!-- <button\r\n *ngIf=\"!(btn === '-' || btn.text === '-')\"\r\n fd-toolbar-item\r\n fd-button\r\n [buttonType]=\"\r\n btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\r\n \"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolbarClick(btn)\"\r\n >\r\n <img\r\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\r\n width=\"16\"\r\n [src]=\"btn.icon\"\r\n />\r\n <span>{{ btn.text }}</span>\r\n </button> -->\r\n </ng-template>\r\n </ng-container>\r\n </fd-toolbar>\r\n <!-- <bsu-ui-form-panel-toolbar\r\n [buttons]=\"toolbarItems | tlbButtons: 'inFooter':false\"\r\n [size]=\"size\"\r\n [deviceSize]=\"deviceSize$ | async\"\r\n [visible]=\"toolbarVisible\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n ></bsu-ui-form-panel-toolbar> -->\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n <fd-toolbar *ngIf=\"!hideClose\" fdType=\"transparent\" [clearBorder]=\"true\">\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i class=\"sap-icon--decline\"></i>\r\n </button>\r\n </fd-toolbar>\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n <fd-dynamic-page-subheader\r\n *ngIf=\"description || facetList.length > 0 || workflowInfoText\"\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin\"\r\n [collapsible]=\"!!workflowInfoText || (facetList && facetList.length > 0)\"\r\n [pinnable]=\"true\"\r\n [collapsed]=\"(!facetList || facetList.length === 0) && !workflowInfoText\"\r\n >\r\n <fd-message-strip [type]=\"'warning'\" *ngIf=\"workflowInfoText\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n <fd-facet *ngIf=\"avatar\" type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n <fd-facet\r\n *ngFor=\"let facet of facetList\"\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n <fd-facet-content *ngFor=\"let item of facet.mo.ItemList?.MoDataList\">\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\r\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n <span\r\n *ngIf=\"\r\n !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector;\r\n else dynamicComponentTpl\r\n \"\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue\"\r\n [aria-label]=\"facet.mo.Text | facetValue\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n <ng-template #dynamicComponentTpl>\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text\"\r\n ></bnrc-dynamic-component>\r\n </ng-template>\r\n <fd-object-number\r\n *ngIf=\"facet.mo.IsNumber && facet.type === 'key-value'\"\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.Decimal | facetValue\"\r\n ></fd-object-number>\r\n\r\n <div *ngIf=\"facet.type === 'plain-text'\" [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n\r\n <fd-facet-content *ngIf=\"facet.type === 'rating-indicator'\">\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo.Value | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n <div *ngIf=\"facet.type === 'progress'\" [style.width]=\"'10rem'\">\r\n <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span>\r\n <fd-progress-indicator\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"'1 \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo.Value | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n <div *ngIf=\"facet.type === 'microcharts'\">\r\n <label wrap>in progress ...</label>\r\n </div>\r\n </fd-facet>\r\n </fd-facet-group>\r\n <span *ngIf=\"description\">{{ description }}</span>\r\n </fd-dynamic-page-subheader>\r\n\r\n <fd-tab-list\r\n (selectedTabChange)=\"onTabChanged($event)\"\r\n *ngIf=\"!contentIsPage && modernTabs && modernTabs.length > 0 && !parameters?.LayoutComponent; else renderLayout\"\r\n [collapseOverflow]=\"true\"\r\n [stackContent]=\"false\"\r\n maxContentHeight=\"auto\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n #tablist\r\n >\r\n <fd-tab\r\n *ngFor=\"let tab of modernTabs; let i = index\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [selected]=\"true\"\r\n style=\"height: 100%\"\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\">\r\n <bsu-ly-tab-page [config]=\"tab\" [tablist]=\"tablist\"></bsu-ly-tab-page>\r\n </fd-dynamic-page-content>\r\n </fd-tab>\r\n </fd-tab-list>\r\n <ng-template #renderLayout>\r\n <fd-dynamic-page-content [class.no-padding]=\"removeContentPadding\" *ngIf=\"!contentIsPage\">\r\n <!-- <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root> -->\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-dynamic-page-content>\r\n </ng-template>\r\n <fd-dynamic-page-footer>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n </fd-dynamic-page-footer>\r\n</fd-dynamic-page>\r\n<ng-container *ngIf=\"contentIsPage\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-container>\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "value"], outputs: ["events"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i6.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "id", "alignEnd"] }, { kind: "component", type: i7.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i7.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i8.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i9.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i9.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i9.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i9.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i9.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i10.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "component", type: i11.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i12.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i13.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["class", "name", "ariaLabel", "ariaLabelledBy", "disabled", "displayMode", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator"], outputs: ["ratingChanged"] }, { kind: "component", type: i14.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "directive", type: i14.DeprecatedSplitButtonCompactDirective, selector: "fd-split-button[compact]" }, { kind: "component", type: i15.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i15.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "component", type: i16.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "moreLabel", "lessLabel", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i17.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i17.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i17.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i18.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i19.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i20.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i21.LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "component", type: i22.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i23.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FundamentalDynamicFormComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mask\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [subtitle]=\"subtitle | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n #titleRef\r\n >\r\n <fd-breadcrumb>\r\n <ng-container *ngIf=\"breadCrumbs\">\r\n <ng-container\r\n *ngFor=\"let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; let i = index; let last = last\"\r\n >\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n </ng-container>\r\n </ng-container>\r\n </fd-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n <fd-toolbar\r\n *ngIf=\"toolbarVisible\"\r\n fdType=\"transparent\"\r\n [clearBorder]=\"true\"\r\n [shouldOverflow]=\"deviceSize === 's'\"\r\n >\r\n <ng-container *ngFor=\"let btn of toolbarItems; let i = index; let last = last; let first = first\">\r\n <fd-toolbar-separator\r\n [attr.i]=\"i\"\r\n [attr.last]=\"last\"\r\n [attr.first]=\"first\"\r\n *ngIf=\"(btn === '-' || btn.text === '-') && !last && !first\"\r\n ></fd-toolbar-separator>\r\n <ng-container *ngIf=\"btn.IAmMenu; else simpleButton\">\r\n <fd-split-button\r\n [dir]=\"dirValue\"\r\n [compact]=\"contentDensity === 'compact' ? true : false\"\r\n fd-toolbar-item\r\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [glyph]=\"(btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon) || 'slim-arrow-down'\"\r\n (click)=\"menu.open()\"\r\n >\r\n <fd-menu #menu>\r\n <li\r\n fd-menu-item\r\n *ngFor=\"let menuItem of btn.menu.items\"\r\n [disabled]=\"menuItem.disabled\"\r\n (click)=\"onToolbarClick(menuItem, menu)\"\r\n >\r\n <div fd-menu-interactive>\r\n <fd-menu-addon\r\n position=\"before\"\r\n [glyph]=\"\r\n menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\r\n \"\r\n >\r\n </fd-menu-addon>\r\n <img class=\"mr8\" *ngIf=\"menuItem.icon\" [src]=\"menuItem.icon\" />\r\n <span fd-menu-title>{{ menuItem.text }}</span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button>\r\n </ng-container>\r\n <ng-template #simpleButton>\r\n <ng-container *ngIf=\"!(btn === '-' || btn.text === '-')\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\r\n context: { $implicit: btn }\r\n \"\r\n ></ng-container>\r\n <ng-template #btnTemplate let-btn>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [disabled]=\"btn.disabled\"\r\n [buttonType]=\"\r\n btn.isWorkflow\r\n ? 'positive'\r\n : btn.design\r\n ? btn.design\r\n : btn.Data?.JsonExtraProp?.Design\r\n \"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolbarClick(btn)\"\r\n >\r\n <img\r\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\r\n width=\"16\"\r\n [src]=\"btn.icon\"\r\n />\r\n <span>{{ btn.text }}</span>\r\n </button>\r\n </ng-template>\r\n <ng-template #dynamicBtnTemplate let-btn>\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [component]=\"btn.Data.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n (btnClick)=\"onToolbarClick(btn)\"\r\n ></bnrc-dynamic-form-toolbaritem>\r\n </ng-template>\r\n </ng-container>\r\n <!-- <button\r\n *ngIf=\"!(btn === '-' || btn.text === '-')\"\r\n fd-toolbar-item\r\n fd-button\r\n [buttonType]=\"\r\n btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\r\n \"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolbarClick(btn)\"\r\n >\r\n <img\r\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\r\n width=\"16\"\r\n [src]=\"btn.icon\"\r\n />\r\n <span>{{ btn.text }}</span>\r\n </button> -->\r\n </ng-template>\r\n </ng-container>\r\n </fd-toolbar>\r\n <!-- <bsu-ui-form-panel-toolbar\r\n [buttons]=\"toolbarItems | tlbButtons: 'inFooter':false\"\r\n [size]=\"size\"\r\n [deviceSize]=\"deviceSize$ | async\"\r\n [visible]=\"toolbarVisible\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n ></bsu-ui-form-panel-toolbar> -->\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n <fd-toolbar *ngIf=\"!hideClose\" fdType=\"transparent\" [clearBorder]=\"true\">\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i class=\"sap-icon--decline\"></i>\r\n </button>\r\n </fd-toolbar>\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n <fd-dynamic-page-subheader\r\n *ngIf=\"description || facetList.length > 0 || workflowInfoText\"\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin\"\r\n [collapsible]=\"!!workflowInfoText || (facetList && facetList.length > 0)\"\r\n [pinnable]=\"true\"\r\n [collapsed]=\"(!facetList || facetList.length === 0) && !workflowInfoText\"\r\n >\r\n <fd-message-strip [type]=\"'warning'\" *ngIf=\"workflowInfoText\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n <fd-facet *ngIf=\"avatar\" type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n <fd-facet\r\n *ngFor=\"let facet of facetList\"\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n <fd-facet-content *ngFor=\"let item of facet.mo.ItemList?.MoDataList\">\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\r\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n <span\r\n *ngIf=\"\r\n !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector;\r\n else dynamicComponentTpl\r\n \"\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue\"\r\n [aria-label]=\"facet.mo.Text | facetValue\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n <ng-template #dynamicComponentTpl>\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text\"\r\n ></bnrc-dynamic-component>\r\n </ng-template>\r\n <fd-object-number\r\n *ngIf=\"facet.mo.IsNumber && facet.type === 'key-value'\"\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.Decimal | facetValue\"\r\n ></fd-object-number>\r\n\r\n <div *ngIf=\"facet.type === 'plain-text'\" [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n\r\n <fd-facet-content *ngIf=\"facet.type === 'rating-indicator'\">\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo.Value | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n <div *ngIf=\"facet.type === 'progress'\" [style.width]=\"'10rem'\">\r\n <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span>\r\n <fd-progress-indicator\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"'1 \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo.Value | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n <div *ngIf=\"facet.type === 'microcharts'\">\r\n <label wrap>in progress ...</label>\r\n </div>\r\n </fd-facet>\r\n </fd-facet-group>\r\n <span *ngIf=\"description\">{{ description }}</span>\r\n </fd-dynamic-page-subheader>\r\n\r\n <fd-tab-list\r\n (selectedTabChange)=\"onTabChanged($event)\"\r\n *ngIf=\"!contentIsPage && modernTabs && modernTabs.length > 0 && !parameters?.LayoutComponent; else renderLayout\"\r\n [collapseOverflow]=\"true\"\r\n [stackContent]=\"false\"\r\n maxContentHeight=\"auto\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n #tablist\r\n >\r\n <fd-tab\r\n *ngFor=\"let tab of modernTabs; let i = index\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [selected]=\"true\"\r\n style=\"height: 100%\"\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\">\r\n <bsu-ly-tab-page [config]=\"tab\" [tablist]=\"tablist\"></bsu-ly-tab-page>\r\n </fd-dynamic-page-content>\r\n </fd-tab>\r\n </fd-tab-list>\r\n <ng-template #renderLayout>\r\n <fd-dynamic-page-content [class.no-padding]=\"removeContentPadding\" *ngIf=\"!contentIsPage\">\r\n <!-- <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root> -->\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-dynamic-page-content>\r\n </ng-template>\r\n <fd-dynamic-page-footer>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n </fd-dynamic-page-footer>\r\n</fd-dynamic-page>\r\n<ng-container *ngIf=\"contentIsPage\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-container>\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}\n"] }]
|
|
78
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _dynamicPageComponent: [{
|
|
79
|
+
type: ViewChild,
|
|
80
|
+
args: [DynamicPageComponent]
|
|
81
|
+
}], toolbarClick: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], workflowChoiceClick: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], close: [{
|
|
86
|
+
type: Output
|
|
87
|
+
}], breadCrumbs: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], toolbarVisible: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], toolbarItems: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], layoutActions: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], layout94: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], parameters: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], workflowPanelUi: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], context: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], title: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], subtitle: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], description: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], facetList: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], fieldDict: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], removeHeaderBorder: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], removeContentPadding: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], isMobile: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], mo: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], avatar: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], rtl: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], hideTitle: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], hideClose: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], hidePin: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], mask: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], canSend: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], contentIsPage: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], contentDensity: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], deviceSize: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], dirValue: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], modernTabs: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], titleRef: [{
|
|
146
|
+
type: ViewChild,
|
|
147
|
+
args: ['titleRef', { read: ViewContainerRef }]
|
|
148
|
+
}], headerAvatarRef: [{
|
|
149
|
+
type: ViewChild,
|
|
150
|
+
args: ['headerAvatar']
|
|
151
|
+
}] } });
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0Isb0JBQW9CLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBc0QsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsYUFBYTtJQTRDOUQsWUFBbUIsRUFBYztRQUM3QixLQUFLLEVBQUUsQ0FBQztRQURPLE9BQUUsR0FBRixFQUFFLENBQVk7UUExQ3ZCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN2Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3hELG9CQUFvQjtRQUNWLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBb0I1QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBZTFCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQU05QixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxLQUFkLElBQUksQ0FBQyxTQUFTLEdBQUssRUFBRSxFQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQzFFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDO1FBQzFGLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXZDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO2FBQU07WUFDSCxJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQzthQUNyQztTQUNKO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBWSxJQUFJO1FBQ2hDLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGdCQUFnQixDQUFDLFFBQVE7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQXNCO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQUc7UUFDVCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsQ0FBQyxJQUFHLENBQUM7OzRIQWhGckIsK0JBQStCO2dIQUEvQiwrQkFBK0IsNDhCQUM3QixvQkFBb0Isa0hBa0NBLGdCQUFnQixzSkN4RG5ELGtqa0JBeVdBOzJGRHBWYSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNO2lHQUdkLHFCQUFxQjtzQkFBckQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ3JCLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDNkMsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3RCLGVBQWU7c0JBQXpDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgRHluYW1pY1BhZ2VDb21wb25lbnQsIFRhYlBhbmVsQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJyZWFkQ3J1bWJJbmZvLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBMYXlvdXRTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWZ1bmRhbWVudGFsLWR5bmFtaWMtZm9ybScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bmRhbWVudGFsRHluYW1pY0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoRHluYW1pY1BhZ2VDb21wb25lbnQpIF9keW5hbWljUGFnZUNvbXBvbmVudDogRHluYW1pY1BhZ2VDb21wb25lbnQ7XHJcbiAgICBAT3V0cHV0KCkgdG9vbGJhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgd29ya2Zsb3dDaG9pY2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBJbnB1dCgpIGJyZWFkQ3J1bWJzOiBCcmVhZENydW1iSW5mb1tdIHwgbnVsbDtcclxuICAgIEBJbnB1dCgpIHRvb2xiYXJWaXNpYmxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdG9vbGJhckl0ZW1zOiBhbnlbXTtcclxuICAgIEBJbnB1dCgpIGxheW91dEFjdGlvbnM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgbGF5b3V0OTQ7XHJcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgd29ya2Zsb3dQYW5lbFVpOiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XHJcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBmYWNldExpc3Q6IGFueVtdO1xyXG4gICAgQElucHV0KCkgZmllbGREaWN0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgcmVtb3ZlSGVhZGVyQm9yZGVyOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcmVtb3ZlQ29udGVudFBhZGRpbmc6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpc01vYmlsZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgYXZhdGFyOiBhbnk7XHJcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoaWRlVGl0bGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgaGlkZUNsb3NlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVBpbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG1hc2s6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5TZW5kOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29udGVudElzUGFnZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCc7XHJcbiAgICBASW5wdXQoKSBkaXJWYWx1ZTogJ3J0bCcgfCAnbHRyJztcclxuICAgIEBJbnB1dCgpIG1vZGVyblRhYnM6IExheW91dFNldHRpbmdbXTtcclxuICAgIEBWaWV3Q2hpbGQoJ3RpdGxlUmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHRpdGxlUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQXZhdGFyJykgaGVhZGVyQXZhdGFyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgd29ya2Zsb3dCdXR0b25zOiBhbnlbXTtcclxuICAgIHNlbGVjdGVkVGFiOiBhbnk7XHJcblxyXG4gICAgdG9vbGJhclNob3VsZE92ZXJmbG93ID0gZmFsc2U7XHJcbiAgICB3b3JrZmxvd0luZm9UZXh0OiBzdHJpbmc7XHJcbiAgICB3b3JrZmxvd0J1dHRvbnNDb21ib01vZGU6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZmFjZXRMaXN0IHx8PSBbXTtcclxuICAgICAgICB0aGlzLndvcmtmbG93SW5mb1RleHQgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uU2V0dGluZz8uV29ya2Zsb3c/LkluZm9UZXh0O1xyXG4gICAgICAgIGNvbnN0IHdvcmtmbG93QnV0dG9ucyA9IHRoaXMud29ya2Zsb3dQYW5lbFVpPy5idXR0b25MaXN0ID8/IFtdO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlID0gdGhpcy53b3JrZmxvd1BhbmVsVWk/LlNldHRpbmc/LldvcmtmbG93Py5CdXR0b25zQ29tYm9Nb2RlO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zID0gd29ya2Zsb3dCdXR0b25zO1xyXG5cclxuICAgICAgICBjb25zdCB0b29sYmFyQnV0dG9uc0NvdW50ID0gdGhpcy50b29sYmFySXRlbXMuZmlsdGVyKChjKSA9PiB0eXBlb2YgYyAhPT0gJ3N0cmluZycgJiYgYy50ZXh0ICE9PSAnLScpLmxlbmd0aDtcclxuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycgJiYgdG9vbGJhckJ1dHRvbnNDb3VudCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0b29sYmFyQnV0dG9uc0NvdW50ID4gNSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25Ub29sYmFyQ2xpY2soYnRuLCBtZW51OiBhbnkgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKG1lbnUpIHtcclxuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRvb2xiYXJDbGljay5lbWl0KGJ0bik7XHJcbiAgICB9XHJcbiAgICBvbldmQ2hvaWNlU2VsZWN0KHdmQ2hvaWNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nob2ljZUNsaWNrLmVtaXQod2ZDaG9pY2UpO1xyXG4gICAgfVxyXG4gICAgb25UYWJDaGFuZ2VkKHRhYjogVGFiUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgZ2V0TnVtYmVyKHZhbCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWwpO1xyXG4gICAgfVxyXG4gICAgb25EeW5hbWljQ29tcG9uZW50RXZlbnRzKGUpIHt9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIm1hc2tcIiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICA8YnN1LW1hc2sgc2l6ZT1cIm1cIj48L2JzdS1tYXNrPlxyXG48L2Rpdj5cclxuXHJcbjxmZC1keW5hbWljLXBhZ2VcclxuICAgIFtzaXplXT1cImlzTW9iaWxlID8gJ3NtYWxsJyA6ICdsYXJnZSdcIlxyXG4gICAgW2NsYXNzLmhlYWRlci1ib3JkZXJdPVwiIXJlbW92ZUhlYWRlckJvcmRlclwiXHJcbiAgICBbYXR0ci5jb250ZW50SXNQYWdlXT1cImNvbnRlbnRJc1BhZ2VcIlxyXG4+XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLWhlYWRlclxyXG4gICAgICAgIFtjbGFzcy5zaW1wbGUtdGl0bGVdPVwiIWRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbdGl0bGVdPVwiKGhpZGVUaXRsZSA9PT0gdHJ1ZSA/ICcnIDogdGl0bGUpIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBbc3VidGl0bGVdPVwic3VidGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIFtjbGFzcy5wLWIwXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcclxuICAgICAgICBbY2xhc3MuaGlkZS10aXRsZV09XCJoaWRlVGl0bGUgPT09IHRydWUgJiYgaGlkZUNsb3NlID09PSB0cnVlXCJcclxuICAgICAgICAjdGl0bGVSZWZcclxuICAgID5cclxuICAgICAgICA8ZmQtYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkQ3J1bWJzXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgfCBzbGljZTogMDpicmVhZENydW1icy5sZW5ndGg7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWItaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1icmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsQnJlYWRDcnVtYl09XCJicmVhZENydW1ic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2JzdS1icmVhZGNydW1iPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cclxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxyXG4gICAgICAgICAgICA8IS0tIGdsb2JhbCBhY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICA8ZmQtdG9vbGJhclxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyVmlzaWJsZVwiXHJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvdWxkT3ZlcmZsb3ddPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIHRvb2xiYXJJdGVtczsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgZmlyc3QgPSBmaXJzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5pXT1cImlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5sYXN0XT1cImxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5maXJzdF09XCJmaXJzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKGJ0biA9PT0gJy0nIHx8IGJ0bi50ZXh0ID09PSAnLScpICYmICFsYXN0ICYmICFmaXJzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ0bi5JQW1NZW51OyBlbHNlIHNpbXBsZUJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc3BsaXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlyXT1cImRpclZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wYWN0XT1cImNvbnRlbnREZW5zaXR5ID09PSAnY29tcGFjdCcgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkFjdGlvbl09XCJ7IG1haW5BY3Rpb25UaXRsZTogYnRuLnRleHQsIGtlZXBNYWluQWN0aW9uOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJidG4uZGVzaWduID8gYnRuLmRlc2lnbiA6IGJ0bi5EYXRhPy5Kc29uRXh0cmFQcm9wPy5EZXNpZ25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIihidG4ubmV3SWNvbiA/IGJ0bi5uZXdJY29uIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24pIHx8ICdzbGltLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtZW51Lm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51ICNtZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1lbnVJdGVtIG9mIGJ0bi5tZW51Lml0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1lbnVJdGVtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKG1lbnVJdGVtLCBtZW51KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYmVmb3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtLm5ld0ljb24gPyBtZW51SXRlbS5uZXdJY29uIDogbWVudUl0ZW0uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLW1lbnUtYWRkb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXI4XCIgKm5nSWY9XCJtZW51SXRlbS5pY29uXCIgW3NyY109XCJtZW51SXRlbS5pY29uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgbWVudUl0ZW0udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1zcGxpdC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGJ0biA9PT0gJy0nIHx8IGJ0bi50ZXh0ID09PSAnLScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuLkRhdGE/LkN1c3RvbVVpPy5TZWxlY3RvciA/IGR5bmFtaWNCdG5UZW1wbGF0ZSA6IGJ0blRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogYnRuIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNidG5UZW1wbGF0ZSBsZXQtYnRuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG4uaXNXb3JrZmxvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3Bvc2l0aXZlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYnRuLmRlc2lnblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYnRuLmRlc2lnblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYnRuLm5ld0ljb24gPyBidG4ubmV3SWNvbiA6IGJ0bi5EYXRhPy5Kc29uRXh0cmFQcm9wPy5JY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKGJ0bilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5uZXdJY29uICYmIGJ0bi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJidG4uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi50ZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0J0blRlbXBsYXRlIGxldC1idG4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImJ0bi5EYXRhLkN1c3RvbVVpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRW5hYmxlXT1cImJ0bi5Db21tYW5kPy5faXNFbmFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnRuQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soYnRuKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEoYnRuID09PSAnLScgfHwgYnRuLnRleHQgPT09ICctJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0bi5pc1dvcmtmbG93ID8gJ3Bvc2l0aXZlJyA6IGJ0bi5kZXNpZ24gPyBidG4uZGVzaWduIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJidG4ubmV3SWNvbiA/IGJ0bi5uZXdJY29uIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKGJ0bilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5uZXdJY29uICYmIGJ0bi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImJ0bi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBidG4udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9mZC10b29sYmFyPlxyXG4gICAgICAgICAgICA8IS0tIDxic3UtdWktZm9ybS1wYW5lbC10b29sYmFyXHJcbiAgICAgICAgW2J1dHRvbnNdPVwidG9vbGJhckl0ZW1zIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzpmYWxzZVwiXHJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZSQgfCBhc3luY1wiXHJcbiAgICAgICAgW3Zpc2libGVdPVwidG9vbGJhclZpc2libGVcIlxyXG4gICAgICAgICh0b29sQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgID48L2JzdS11aS1mb3JtLXBhbmVsLXRvb2xiYXI+IC0tPlxyXG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxyXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XHJcbiAgICAgICAgICAgIDwhLS0gbGF5b3V0IGFjdGlvbnMgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBbZm9ybUFjdGlvbnNdPVwidGhpcy50b29sYmFyXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZmQtdG9vbGJhciAqbmdJZj1cIiFoaWRlQ2xvc2VcIiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZS5lbWl0KClcIiB0aXRsZT1cIkNsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzYXAtaWNvbi0tZGVjbGluZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XHJcbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1oZWFkZXI+XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlclxyXG4gICAgICAgICpuZ0lmPVwiZGVzY3JpcHRpb24gfHwgZmFjZXRMaXN0Lmxlbmd0aCA+IDAgfHwgd29ya2Zsb3dJbmZvVGV4dFwiXHJcbiAgICAgICAgW2NsYXNzLmhlYWRlci1uby1kZXNjcmlwdGlvbl09XCIhKGRlc2NyaXB0aW9uIHx8IHdvcmtmbG93SW5mb1RleHQpXCJcclxuICAgICAgICBbY2xhc3Mubm8tcGluXT1cImhpZGVQaW5cIlxyXG4gICAgICAgIFtjb2xsYXBzaWJsZV09XCIhIXdvcmtmbG93SW5mb1RleHQgfHwgKGZhY2V0TGlzdCAmJiBmYWNldExpc3QubGVuZ3RoID4gMClcIlxyXG4gICAgICAgIFtwaW5uYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbY29sbGFwc2VkXT1cIighZmFjZXRMaXN0IHx8IGZhY2V0TGlzdC5sZW5ndGggPT09IDApICYmICF3b3JrZmxvd0luZm9UZXh0XCJcclxuICAgID5cclxuICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCBbdHlwZV09XCInd2FybmluZydcIiAqbmdJZj1cIndvcmtmbG93SW5mb1RleHRcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAge3sgd29ya2Zsb3dJbmZvVGV4dCB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cclxuICAgICAgICA8ZmQtZmFjZXQtZ3JvdXAgYXJpYUxhYmVsPVwiRmFjZXQgR3JvdXBcIj5cclxuICAgICAgICAgICAgPGZkLWZhY2V0ICpuZ0lmPVwiYXZhdGFyXCIgdHlwZT1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJhdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCIhYXZhdGFyPy5GaWxlSWQgPyBudWxsIDogKGF2YXRhcj8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6bnVsbClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImRldmljZVNpemUgPT09ICd4bCcgPyAnbCcgOiBkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYXZhdGFyIGZkLWF2YXRhci0tY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2ZkLWF2YXRhci0tJyArIChkZXZpY2VTaXplID09PSAneGwnID8gJ2wnIDogZGV2aWNlU2l6ZSlcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiYXZhdGFyXCIgY2xhc3M9XCJmZC1hdmF0YXJfX2ljb25cIiBbY2xhc3NdPVwiYXZhdGFyIHwgc2FwRm9udENsYXNzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPiA8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZmQtZmFjZXQ+XHJcbiAgICAgICAgICAgIDxmZC1mYWNldFxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhY2V0IG9mIGZhY2V0TGlzdFwiXHJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJmYWNldC50eXBlXCJcclxuICAgICAgICAgICAgICAgIFtmYWNldFRpdGxlXT1cImZhY2V0Lm1vLlRpdGxlIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJmYWNldC5tby5TdWJUaXRsZSB8IGZhY2V0VmFsdWUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZmQtZmFjZXQtY29udGVudCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmYWNldC5tby5JdGVtTGlzdD8uTW9EYXRhTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtjb2xvbl09XCJ0cnVlXCIgZm9yPVwiZm9ybS12YWx1ZS0xMFwiPnt7IGl0ZW0uVGl0bGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC10ZXh0IFt0ZXh0XT1cIml0ZW0uVmFsdWUgfCBmYWNldFZhbHVlXCIgaWQ9XCJmb3JtLXZhbHVlLTEwXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1mYWNldC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhZmFjZXQubW8uSXNOdW1iZXIgJiYgZmFjZXQudHlwZSA9PT0gJ2tleS12YWx1ZScgJiYgIWZhY2V0Lm1vLkNvbXBvbmVudD8uU2VsZWN0b3I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZHluYW1pY0NvbXBvbmVudFRwbFxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZhY2V0Lm1vLkNvbXBvbmVudD8uU2VsZWN0b3IgPyAnJyA6IChmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYXJnZV09XCJmYWNldC5tby5Jc0xhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZmFjZXQubW8uSWNvblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2R5bmFtaWNDb21wb25lbnRUcGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJucmMtZHluYW1pYy1jb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1vYmplY3Qtc3RhdHVzLS0nICsgZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1vYmplY3Qtc3RhdHVzLS1sYXJnZV09XCJmYWNldC5tby5Jc0xhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJmYWNldC5tby5Db21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFjZXQubW8uVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWNvbXBvbmVudD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZmQtb2JqZWN0LW51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmFjZXQubW8uSXNOdW1iZXIgJiYgZmFjZXQudHlwZSA9PT0gJ2tleS12YWx1ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYXJnZV09XCJmYWNldC5tby5Jc0xhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCJmYWNldC5tby5Vbml0IHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmYWNldC5tby5TdGF0dXMgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGVjaW1hbF09XCJmYWNldC5tby5EZWNpbWFsIHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA+PC9mZC1vYmplY3QtbnVtYmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmYWNldC50eXBlID09PSAncGxhaW4tdGV4dCdcIiBbc3R5bGUud2lkdGgucHhdPVwiZmFjZXQubW8uV2lkdGhcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3JtYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtdGV4dCBbdGV4dF09XCJmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZVwiIGh5cGhlbmF0aW9uPVwiYXV0b1wiPjwvZmQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxmZC1mYWNldC1jb250ZW50ICpuZ0lmPVwiZmFjZXQudHlwZSA9PT0gJ3JhdGluZy1pbmRpY2F0b3InXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXJhdGluZy1pbmRpY2F0b3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwb2ludGVyLWV2ZW50czogbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkeW5hbWljVGV4dEluZGljYXRvcl09XCJmYWNldC5tby5Gb290ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheU1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWNldC5tby5WYWx1ZSB8IGZhY2V0VmFsdWU6IGZhY2V0LnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLXJhdGluZy1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWZhY2V0LWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmFjZXQudHlwZSA9PT0gJ3Byb2dyZXNzJ1wiIFtzdHlsZS53aWR0aF09XCInMTByZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtZm9ybS1sYWJlbD57eyBmYWNldC5tby5TdWJ0aXRsZSB8IGZhY2V0VmFsdWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXByb2dyZXNzLWluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMHIgZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiZmFjZXQubW8uU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVUZXh0XT1cIicxINin2LIgMTAg2YXYsdit2YTZhydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVOb3ddPVwiZmFjZXQubW8uVmFsdWUgfCBmYWNldFZhbHVlOiBmYWNldC50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlTWF4XT1cIjEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VuaXRdPVwiJ9mF2LHYrdmE2YcnXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1wcm9ncmVzcy1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dWk1LXByb2dyZXNzLWluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMHJlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZVN0YXRlXT1cImZhY2V0Lm1vLlN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldE51bWJlcihmYWNldC5tby5WYWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3VpNS1wcm9ncmVzcy1pbmRpY2F0b3I+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmFjZXQudHlwZSA9PT0gJ21pY3JvY2hhcnRzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCB3cmFwPmluIHByb2dyZXNzIC4uLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mZC1mYWNldD5cclxuICAgICAgICA8L2ZkLWZhY2V0LWdyb3VwPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgIDwvZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlcj5cclxuXHJcbiAgICA8ZmQtdGFiLWxpc3RcclxuICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25UYWJDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICpuZ0lmPVwiIWNvbnRlbnRJc1BhZ2UgJiYgbW9kZXJuVGFicyAmJiBtb2Rlcm5UYWJzLmxlbmd0aCA+IDAgJiYgIXBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudDsgZWxzZSByZW5kZXJMYXlvdXRcIlxyXG4gICAgICAgIFtjb2xsYXBzZU92ZXJmbG93XT1cInRydWVcIlxyXG4gICAgICAgIFtzdGFja0NvbnRlbnRdPVwiZmFsc2VcIlxyXG4gICAgICAgIG1heENvbnRlbnRIZWlnaHQ9XCJhdXRvXCJcclxuICAgICAgICBbZXhwYW5kT3ZlcmZsb3dUZXh0XT1cIidNb3JlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgI3RhYmxpc3RcclxuICAgID5cclxuICAgICAgICA8ZmQtdGFiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgbW9kZXJuVGFiczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtpZF09XCJ0YWIuaWRcIj5cclxuICAgICAgICAgICAgICAgIDxic3UtbHktdGFiLXBhZ2UgW2NvbmZpZ109XCJ0YWJcIiBbdGFibGlzdF09XCJ0YWJsaXN0XCI+PC9ic3UtbHktdGFiLXBhZ2U+XHJcbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9mZC10YWI+XHJcbiAgICA8L2ZkLXRhYi1saXN0PlxyXG4gICAgPG5nLXRlbXBsYXRlICNyZW5kZXJMYXlvdXQ+XHJcbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtjbGFzcy5uby1wYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCIgKm5nSWY9XCIhY29udGVudElzUGFnZVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290XHJcbiAgICAgICAgICAgIFtjb25maWddPVwibGF5b3V0OTRcIlxyXG4gICAgICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtpc1Jvb3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgPjwvYnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdD4gLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50ID8gcmVuZGVyTGF5b3V0Q29tcG9uZW50IDogcmVuZGVyRGVmYXVsdExheW91dDtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0OTRcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLWZvb3Rlcj5cclxuICAgICAgICA8YnN1LWxheW91dC1hY3Rpb25zXHJcbiAgICAgICAgICAgIFtjYW5TZW5kXT1cImNhblNlbmRcIlxyXG4gICAgICAgICAgICBbYnV0dG9uc109XCJsYXlvdXRBY3Rpb25zXCJcclxuICAgICAgICAgICAgW3dvcmtmbG93QnV0dG9uc109XCJ3b3JrZmxvd0J1dHRvbnNcIlxyXG4gICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXT1cIndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgICAgICh0b29sQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJvbldmQ2hvaWNlU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2JzdS1sYXlvdXQtYWN0aW9ucz5cclxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWZvb3Rlcj5cclxuPC9mZC1keW5hbWljLXBhZ2U+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50SXNQYWdlXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgcmVuZGVyTGF5b3V0Q29tcG9uZW50O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyRGVmYXVsdExheW91dCBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiPlxyXG4gICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcclxuICAgICAgICBbY29uZmlnXT1cImxheW91dDk0XCJcclxuICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcclxuICAgID48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3Q+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyTGF5b3V0Q29tcG9uZW50IGxldC1jb21wb25lbnQgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIj5cclxuICAgIDxibnJjLWR5bmFtaWMtZm9ybS1jb21wb25lbnRcclxuICAgICAgICBbY29tcG9uZW50XT1cImNvbXBvbmVudFwiXHJcbiAgICAgICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcclxuICAgICAgICBbYnJlYWRDcnVtYnNdPVwiYnJlYWRDcnVtYnNcIlxyXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcclxuICAgICAgICBbc3VidGl0bGVdPVwic3VidGl0bGVcIlxyXG4gICAgICAgIFt0b29sYmFySXRlbXNdPVwidG9vbGJhckl0ZW1zXCJcclxuICAgICAgICBbbGF5b3V0QWN0aW9uc109XCJsYXlvdXRBY3Rpb25zXCJcclxuICAgICAgICBbZmFjZXRMaXN0XT1cImZhY2V0TGlzdFwiXHJcbiAgICAgICAgW3NldHRpbmdzXT1cImNvbXBvbmVudC5TZXR0aW5nc1wiXHJcbiAgICAgICAgW3dvcmtmbG93UGFuZWxVaV09XCJ3b3JrZmxvd1BhbmVsVWlcIlxyXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXHJcbiAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICBbbGF5b3V0OTRdPVwibGF5b3V0OTRcIlxyXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICBbZmllbGREaWN0XT1cImZpZWxkRGljdFwiXHJcbiAgICAgICAgW21hc2tdPVwibWFza1wiXHJcbiAgICAgICAgW2RpclZhbHVlXT1cImRpclZhbHVlXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgICAgIFttb2Rlcm5UYWJzXT1cIm1vZGVyblRhYnNcIlxyXG4gICAgICAgIFthdmF0YXJdPVwiYXZhdGFyXCJcclxuICAgICAgICAoZXZlbnRzKT1cIm9uRHluYW1pY0NvbXBvbmVudEV2ZW50cygkZXZlbnQpXCJcclxuICAgID48L2JucmMtZHluYW1pYy1mb3JtLWNvbXBvbmVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|