barsa-sap-ui 2.2.1 → 2.2.3

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.
Files changed (242) hide show
  1. package/esm2022/barsa-sap-ui.mjs +5 -0
  2. package/esm2022/lib/apply-conditional-formmatings.directive.mjs +90 -0
  3. package/esm2022/lib/avatar-size.pipe.mjs +41 -0
  4. package/esm2022/lib/barsa-answer-card/barsa-answer-card.component.mjs +41 -0
  5. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +145 -0
  6. package/esm2022/lib/barsa-bar-download-file/barsa-bar-download-file.component.mjs +23 -0
  7. package/esm2022/lib/barsa-bar-panel/barsa-bar-panel.component.mjs +23 -0
  8. package/esm2022/lib/barsa-base-panel/barsa-base-layout-panel.component.mjs +29 -0
  9. package/esm2022/lib/barsa-breadcrumbs/barsa-breadcrumbs.component.mjs +24 -0
  10. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +24 -0
  11. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +31 -0
  12. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +41 -0
  13. package/esm2022/lib/barsa-cartable-template/barsa-cartable-template.component.mjs +24 -0
  14. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +242 -0
  15. package/esm2022/lib/barsa-chat/chat.model.mjs +8 -0
  16. package/esm2022/lib/barsa-chat-content/barsa-chat-content.component.mjs +13 -0
  17. package/esm2022/lib/barsa-chat-content-toolbar/barsa-chat-content-toolbar.component.mjs +22 -0
  18. package/esm2022/lib/barsa-chat-list/barsa-chat-list.component.mjs +66 -0
  19. package/esm2022/lib/barsa-chat-message/barsa-chat-message.component.mjs +78 -0
  20. package/esm2022/lib/barsa-chat-thread/barsa-chat-thread.component.mjs +22 -0
  21. package/esm2022/lib/barsa-chat-threads-list/barsa-chat-threads-list.component.mjs +13 -0
  22. package/esm2022/lib/barsa-chat-threads-list-toolbar/barsa-chat-threads-list-toolbar.component.mjs +15 -0
  23. package/esm2022/lib/barsa-chip/barsa-chip.component.mjs +72 -0
  24. package/esm2022/lib/barsa-column-indicator/barsa-column-indicator.component.mjs +23 -0
  25. package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +14 -0
  26. package/esm2022/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +14 -0
  27. package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +26 -0
  28. package/esm2022/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
  29. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +40 -0
  30. package/esm2022/lib/barsa-enum-menu-button/barsa-enum-menu-button.component.mjs +61 -0
  31. package/esm2022/lib/barsa-field-key-value/barsa-field-key-value.component.mjs +45 -0
  32. package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +58 -0
  33. package/esm2022/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +27 -0
  34. package/esm2022/lib/barsa-group-cartable/barsa-cartable-group.component.mjs +94 -0
  35. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +22 -0
  36. package/esm2022/lib/barsa-linkable-items-panel/barsa-linkable-items-panel.component.mjs +37 -0
  37. package/esm2022/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +41 -0
  38. package/esm2022/lib/barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component.mjs +29 -0
  39. package/esm2022/lib/barsa-list-layout-panel/barsa-list-layout-panel.component.mjs +23 -0
  40. package/esm2022/lib/barsa-modal/barsa-modal.component.mjs +43 -0
  41. package/esm2022/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +83 -0
  42. package/esm2022/lib/barsa-network-offline/barsa-network-offline.component.mjs +57 -0
  43. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +159 -0
  44. package/esm2022/lib/barsa-question-answer-comments-section/barsa-question-answer-comments-section.component.mjs +17 -0
  45. package/esm2022/lib/barsa-question-answer-content-actions-section/barsa-question-answer-content-actions-section.component.mjs +30 -0
  46. package/esm2022/lib/barsa-question-answer-creator-time-section/barsa-question-answer-creator-time-section.component.mjs +14 -0
  47. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +34 -0
  48. package/esm2022/lib/barsa-question-answer-form-add-comment/barsa-question-answer-form-add-comment.component.mjs +46 -0
  49. package/esm2022/lib/barsa-question-answer-vote-section/barsa-question-answer-vote-section.component.mjs +79 -0
  50. package/esm2022/lib/barsa-question-post/barsa-question-post.component.mjs +30 -0
  51. package/esm2022/lib/barsa-report-card-flex-view/barsa-report-card-flex-view.component.mjs +31 -0
  52. package/esm2022/lib/barsa-report-checkbox-switch-button/barsa-report-checkbox-switch-button.component.mjs +28 -0
  53. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +102 -0
  54. package/esm2022/lib/barsa-row-inline-actionlist/barsa-row-inline-actionlist.component.mjs +26 -0
  55. package/esm2022/lib/barsa-sap-ui-routing.module.mjs +18 -0
  56. package/esm2022/lib/barsa-sap-ui.module.mjs +377 -0
  57. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
  58. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +170 -0
  59. package/esm2022/lib/barsa-tab-route-manager/barsa-tab-route-manager.component.mjs +18 -0
  60. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +29 -0
  61. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +222 -0
  62. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +87 -0
  63. package/esm2022/lib/barsa-tag-categories/barsa-tag-categories.component.mjs +60 -0
  64. package/esm2022/lib/barsa-tag-chip/barsa-tag-chip.component.mjs +26 -0
  65. package/esm2022/lib/barsa-tags-category-row/barsa-tags-category-row.component.mjs +23 -0
  66. package/esm2022/lib/barsa-text-ellipsis/barsa-text-ellipsis.component.mjs +37 -0
  67. package/esm2022/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +418 -0
  68. package/esm2022/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +36 -0
  69. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +153 -0
  70. package/esm2022/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +20 -0
  71. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +216 -0
  72. package/esm2022/lib/blob-viewer/blob-viewer.component.mjs +74 -0
  73. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +50 -0
  74. package/esm2022/lib/captcha-field/captcha-field.component.mjs +28 -0
  75. package/esm2022/lib/card-item/card-item.component.mjs +74 -0
  76. package/esm2022/lib/card-view-content/card-view-content.component.mjs +46 -0
  77. package/esm2022/lib/col-renderer.directive.mjs +47 -0
  78. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
  79. package/esm2022/lib/column-matrix-renderer/matrix-value.pipe.mjs +61 -0
  80. package/esm2022/lib/column-renderer/column-renderer.component.mjs +97 -0
  81. package/esm2022/lib/constants.mjs +450 -0
  82. package/esm2022/lib/custom-date-time/custom-date-time.component.mjs +41 -0
  83. package/esm2022/lib/device-info-field-base.mjs +24 -0
  84. package/esm2022/lib/dialog-handler.directive.mjs +29 -0
  85. package/esm2022/lib/download-files.directive.mjs +34 -0
  86. package/esm2022/lib/dynamic-page-size.pipe.mjs +27 -0
  87. package/esm2022/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
  88. package/esm2022/lib/file-viewer/file-viewer.component.mjs +47 -0
  89. package/esm2022/lib/file-viewer-content/file-viewer-content.component.mjs +71 -0
  90. package/esm2022/lib/file-viewer-popover/file-viewer-popover.component.mjs +37 -0
  91. package/esm2022/lib/form-dialog/form-dialog.component.mjs +171 -0
  92. package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +50 -0
  93. package/esm2022/lib/form-toolbar/form-toolbar.component.mjs +62 -0
  94. package/esm2022/lib/form-toolbar-button/form-toolbar-button.component.mjs +45 -0
  95. package/esm2022/lib/form-wizard/form-wizard.component.mjs +21 -0
  96. package/esm2022/lib/fullscreen-dialog.directive.mjs +60 -0
  97. package/esm2022/lib/fullscreen-files.directive.mjs +43 -0
  98. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +217 -0
  99. package/esm2022/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +215 -0
  100. package/esm2022/lib/global-search/global-search.component.mjs +27 -0
  101. package/esm2022/lib/global-search-module/global-search-module.component.mjs +29 -0
  102. package/esm2022/lib/global-search-panel/global-search-panel.component.mjs +25 -0
  103. package/esm2022/lib/header-avatar/header-avatar.component.mjs +18 -0
  104. package/esm2022/lib/htree-create-new/htree-create-new.component.mjs +48 -0
  105. package/esm2022/lib/hyperlink/hyperlink.component.mjs +23 -0
  106. package/esm2022/lib/index.mjs +549 -0
  107. package/esm2022/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
  108. package/esm2022/lib/layout-actions/layout-actions.component.mjs +70 -0
  109. package/esm2022/lib/layout-control/layout-control.component.mjs +302 -0
  110. package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +180 -0
  111. package/esm2022/lib/list-item/list-item.component.mjs +34 -0
  112. package/esm2022/lib/ly-empty-space/ly-empty-space.component.mjs +42 -0
  113. package/esm2022/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +82 -0
  114. package/esm2022/lib/ly-label/ly-label.component.mjs +37 -0
  115. package/esm2022/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
  116. package/esm2022/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
  117. package/esm2022/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
  118. package/esm2022/lib/ly-layout-panel/ly-layout-panel.component.mjs +83 -0
  119. package/esm2022/lib/ly-line/ly-line.component.mjs +56 -0
  120. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +22 -0
  121. package/esm2022/lib/ly-tab-container/ly-tab-container.component.mjs +44 -0
  122. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +44 -0
  123. package/esm2022/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +51 -0
  124. package/esm2022/lib/manage-filters-report/manage-filters-report.component.mjs +43 -0
  125. package/esm2022/lib/mask/mask.component.mjs +22 -0
  126. package/esm2022/lib/message-strip/message-strip.component.mjs +28 -0
  127. package/esm2022/lib/models/grid-data-provider.mjs +114 -0
  128. package/esm2022/lib/models/grid-view.mjs +2 -0
  129. package/esm2022/lib/models/index.mjs +2 -0
  130. package/esm2022/lib/no-data/no-data.component.mjs +31 -0
  131. package/esm2022/lib/notification-item/notification-item.component.mjs +57 -0
  132. package/esm2022/lib/notification-item-actions/notification-item-actions.component.mjs +79 -0
  133. package/esm2022/lib/notification-popup.service.mjs +92 -0
  134. package/esm2022/lib/object-status-icon.pipe.mjs +27 -0
  135. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +18 -0
  136. package/esm2022/lib/report-navigator/report-navigator.component.mjs +68 -0
  137. package/esm2022/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
  138. package/esm2022/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
  139. package/esm2022/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +97 -0
  140. package/esm2022/lib/report-search-panel-save/report-search-panel-save.component.mjs +88 -0
  141. package/esm2022/lib/report-tree-base.mjs +387 -0
  142. package/esm2022/lib/report-view-renderer.directive.mjs +392 -0
  143. package/esm2022/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
  144. package/esm2022/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
  145. package/esm2022/lib/rich-text-static/rich-text-static.component.mjs +72 -0
  146. package/esm2022/lib/sap-font-class.pipe.mjs +30 -0
  147. package/esm2022/lib/sap-font.pipe.mjs +30 -0
  148. package/esm2022/lib/sap-size.pipe.mjs +28 -0
  149. package/esm2022/lib/sap-ui-report-base.component.mjs +809 -0
  150. package/esm2022/lib/search-panel/search-panel.component.mjs +63 -0
  151. package/esm2022/lib/static-text/static-text.component.mjs +15 -0
  152. package/esm2022/lib/table-th.directive.mjs +87 -0
  153. package/esm2022/lib/title/title.component.mjs +15 -0
  154. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +34 -0
  155. package/esm2022/lib/ui-bpmn-viewer/ui-bpmn-viewer.component.mjs +33 -0
  156. package/esm2022/lib/ui-button/ui-button.component.mjs +32 -0
  157. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +53 -0
  158. package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +58 -0
  159. package/esm2022/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +42 -0
  160. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +39 -0
  161. package/esm2022/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
  162. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +38 -0
  163. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +191 -0
  164. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +150 -0
  165. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +108 -0
  166. package/esm2022/lib/ui-exception-form/ui-exception-form.component.mjs +53 -0
  167. package/esm2022/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +124 -0
  168. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +103 -0
  169. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
  170. package/esm2022/lib/ui-graph/ui-graph.component.mjs +17 -0
  171. package/esm2022/lib/ui-grid/ui-grid.component.mjs +25 -0
  172. package/esm2022/lib/ui-grid-columns/ui-grid-columns.component.mjs +43 -0
  173. package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +66 -0
  174. package/esm2022/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +75 -0
  175. package/esm2022/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +58 -0
  176. package/esm2022/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +123 -0
  177. package/esm2022/lib/ui-html-viewer/ui-html-viewer.component.mjs +16 -0
  178. package/esm2022/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
  179. package/esm2022/lib/ui-label/ui-label.component.mjs +12 -0
  180. package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +379 -0
  181. package/esm2022/lib/ui-list-view/ui-list-view.component.mjs +84 -0
  182. package/esm2022/lib/ui-map/ui-map.component.mjs +68 -0
  183. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +124 -0
  184. package/esm2022/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
  185. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +14 -0
  186. package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +55 -0
  187. package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +429 -0
  188. package/esm2022/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +28 -0
  189. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +37 -0
  190. package/esm2022/lib/ui-multi-select-checkbox/ui-multi-select-checkbox.component.mjs +59 -0
  191. package/esm2022/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +93 -0
  192. package/esm2022/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +36 -0
  193. package/esm2022/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +56 -0
  194. package/esm2022/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +28 -0
  195. package/esm2022/lib/ui-notification-view/ui-notification-view.component.mjs +47 -0
  196. package/esm2022/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +33 -0
  197. package/esm2022/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +27 -0
  198. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
  199. package/esm2022/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +268 -0
  200. package/esm2022/lib/ui-picture-file/ui-picture-file.component.mjs +101 -0
  201. package/esm2022/lib/ui-pictures-info/ui-pictures-info.component.mjs +261 -0
  202. package/esm2022/lib/ui-radio-group/ui-radio-group.component.mjs +48 -0
  203. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +36 -0
  204. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +46 -0
  205. package/esm2022/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
  206. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +55 -0
  207. package/esm2022/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
  208. package/esm2022/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
  209. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +296 -0
  210. package/esm2022/lib/ui-text-area/ui-text-area.component.mjs +49 -0
  211. package/esm2022/lib/ui-text-field/ui-text-field.component.mjs +52 -0
  212. package/esm2022/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +48 -0
  213. package/esm2022/lib/ui-time-span/ui-time-span.component.mjs +24 -0
  214. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
  215. package/esm2022/lib/ui-tree/ui-tree.component.mjs +114 -0
  216. package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +100 -0
  217. package/esm2022/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +23 -0
  218. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +310 -0
  219. package/esm2022/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +25 -0
  220. package/esm2022/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +93 -0
  221. package/esm2022/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +119 -0
  222. package/esm2022/lib/ul-notify-popup/ul-notify-popup.component.mjs +32 -0
  223. package/esm2022/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +48 -0
  224. package/esm2022/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
  225. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +116 -0
  226. package/esm2022/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
  227. package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +196 -0
  228. package/esm2022/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
  229. package/esm2022/lib/ulv-paging/ulv-paging.component.mjs +84 -0
  230. package/esm2022/lib/ulv-selection/ulv-selection.component.mjs +65 -0
  231. package/esm2022/lib/ulv-settings/ulv-settings.component.mjs +116 -0
  232. package/esm2022/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +54 -0
  233. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +177 -0
  234. package/esm2022/lib/upload-file-status.pipe.mjs +29 -0
  235. package/esm2022/lib/util-chat-time-badge.pipe.mjs +18 -0
  236. package/esm2022/lib/util-date-to-hh-mm.pipe.mjs +23 -0
  237. package/esm2022/lib/wizard-layout.directive.mjs +104 -0
  238. package/esm2022/public-api.mjs +236 -0
  239. package/fesm2022/barsa-sap-ui.mjs +6 -13
  240. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  241. package/lib/layout-wizard/layout-wizard.component.d.ts +0 -1
  242. package/package.json +3 -1
@@ -0,0 +1,60 @@
1
+ import { Directive, EventEmitter, HostListener, Input, Output } 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, _el) {
7
+ super(_el);
8
+ this._renderer2 = _renderer2;
9
+ this._portalService = _portalService;
10
+ this._el = _el;
11
+ this.fullscreenChanged = new EventEmitter();
12
+ }
13
+ ngOnInit() {
14
+ super.ngOnInit();
15
+ if (this.fullscreen) {
16
+ this._handleFullscreen();
17
+ }
18
+ }
19
+ onFullscreen() {
20
+ if (!this.fullscreen) {
21
+ this._handleFullscreen();
22
+ }
23
+ else {
24
+ this._handleExitFullscreen();
25
+ }
26
+ }
27
+ _handleExitFullscreen() {
28
+ this.dialogComponent.dialogPaddingSize = 'sm';
29
+ this._renderer2.removeClass(this.dialogComponent.dialogWindow.nativeElement, 'bsu-dialog-fullscreen');
30
+ this._portalService.windowResize();
31
+ this.fullscreenChanged.emit(false);
32
+ }
33
+ _handleFullscreen() {
34
+ this.dialogComponent.dialogPaddingSize = 'lg';
35
+ this._renderer2.addClass(this.dialogComponent.dialogWindow.nativeElement, 'bsu-dialog-fullscreen');
36
+ this._portalService.windowResize();
37
+ this.fullscreenChanged.emit(true);
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FullscreenDialogDirective, deps: [{ token: i0.Renderer2 }, { token: i1.PortalService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: { dialog: "dialog", dialogComponent: "dialogComponent", fullscreen: "fullscreen" }, outputs: { fullscreenChanged: "fullscreenChanged" }, host: { listeners: { "click": "onFullscreen()" } }, usesInheritance: true, ngImport: i0 }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FullscreenDialogDirective, decorators: [{
43
+ type: Directive,
44
+ args: [{
45
+ selector: '[fullscreenDialog]',
46
+ standalone: false
47
+ }]
48
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.PortalService }, { type: i0.ElementRef }], propDecorators: { dialog: [{
49
+ type: Input
50
+ }], dialogComponent: [{
51
+ type: Input
52
+ }], fullscreen: [{
53
+ type: Input
54
+ }], fullscreenChanged: [{
55
+ type: Output
56
+ }], onFullscreen: [{
57
+ type: HostListener,
58
+ args: ['click']
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi1kaWFsb2cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVsbHNjcmVlbi1kaWFsb2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3BILE9BQU8sRUFBRSxhQUFhLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7OztBQU1wRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTtJQU14RCxZQUFvQixVQUFxQixFQUFVLGNBQTZCLEVBQVksR0FBZTtRQUN2RyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFESyxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBRmpHLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFJMUQsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQXBDUSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsS0FBSztpQkFDcEI7bUlBRVksTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBWVAsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZnVsbHNjcmVlbkRpYWxvZ10nLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bGxzY3JlZW5EaWFsb2dEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGRpYWxvZzogYW55O1xyXG4gICAgQElucHV0KCkgZGlhbG9nQ29tcG9uZW50OiBEaWFsb2dDb21wb25lbnQ7XHJcbiAgICBASW5wdXQoKSBmdWxsc2NyZWVuOiBib29sZWFuO1xyXG4gICAgQE91dHB1dCgpIGZ1bGxzY3JlZW5DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLCBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoX2VsKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZnVsbHNjcmVlbikge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVGdWxsc2NyZWVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gICAgb25GdWxsc2NyZWVuKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5mdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUZ1bGxzY3JlZW4oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVFeGl0RnVsbHNjcmVlbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oYW5kbGVFeGl0RnVsbHNjcmVlbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ0NvbXBvbmVudC5kaWFsb2dQYWRkaW5nU2l6ZSA9ICdzbSc7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnJlbW92ZUNsYXNzKHRoaXMuZGlhbG9nQ29tcG9uZW50LmRpYWxvZ1dpbmRvdy5uYXRpdmVFbGVtZW50LCAnYnN1LWRpYWxvZy1mdWxsc2NyZWVuJyk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUoKTtcclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2hhbmRsZUZ1bGxzY3JlZW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dDb21wb25lbnQuZGlhbG9nUGFkZGluZ1NpemUgPSAnbGcnO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLmRpYWxvZ0NvbXBvbmVudC5kaWFsb2dXaW5kb3cubmF0aXZlRWxlbWVudCwgJ2JzdS1kaWFsb2ctZnVsbHNjcmVlbicpO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2Uud2luZG93UmVzaXplKCk7XHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import { FileViewerComponent } from './file-viewer/file-viewer.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@fundamental-ngx/core";
5
+ export class FullscreenFilesDirective {
6
+ constructor(_dialogService) {
7
+ this._dialogService = _dialogService;
8
+ }
9
+ _handleClick() {
10
+ this._dialogService.open(this.component ?? FileViewerComponent, {
11
+ data: {
12
+ isImageGallery: this.isImageGallery,
13
+ files: this.files,
14
+ title: this.title,
15
+ deviceSize: this.deviceSize
16
+ },
17
+ mobile: true
18
+ });
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FullscreenFilesDirective, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: { files: "files", title: "title", deviceSize: "deviceSize", isImageGallery: "isImageGallery", component: "component" }, host: { listeners: { "click": "_handleClick()" } }, ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FullscreenFilesDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: '[fullscreenFiles]',
27
+ standalone: false
28
+ }]
29
+ }], ctorParameters: () => [{ type: i1.DialogService }], propDecorators: { files: [{
30
+ type: Input
31
+ }], title: [{
32
+ type: Input
33
+ }], deviceSize: [{
34
+ type: Input
35
+ }], isImageGallery: [{
36
+ type: Input
37
+ }], component: [{
38
+ type: Input
39
+ }], _handleClick: [{
40
+ type: HostListener,
41
+ args: ['click']
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi1maWxlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9mdWxsc2NyZWVuLWZpbGVzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQU0xRSxNQUFNLE9BQU8sd0JBQXdCO0lBTWpDLFlBQW9CLGNBQTZCO1FBQTdCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO0lBQUcsQ0FBQztJQUM5QixZQUFZO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksbUJBQW1CLEVBQUU7WUFDNUQsSUFBSSxFQUFFO2dCQUNGLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM5QjtZQUNELE1BQU0sRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FqQlEsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCO2tGQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRWlCLFlBQVk7c0JBQWxDLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgRmlsZUF0dGFjaG1lbnRJbmZvLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEZpbGVWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtdmlld2VyL2ZpbGUtdmlld2VyLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2Z1bGxzY3JlZW5GaWxlc10nLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bGxzY3JlZW5GaWxlc0RpcmVjdGl2ZSB7XHJcbiAgICBASW5wdXQoKSBmaWxlczogRmlsZUF0dGFjaG1lbnRJbmZvW107XHJcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgQElucHV0KCkgaXNJbWFnZUdhbGxlcnk6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb21wb25lbnQ6IFR5cGU8YW55PjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHt9XHJcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpIF9oYW5kbGVDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5jb21wb25lbnQgPz8gRmlsZVZpZXdlckNvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBpc0ltYWdlR2FsbGVyeTogdGhpcy5pc0ltYWdlR2FsbGVyeSxcclxuICAgICAgICAgICAgICAgIGZpbGVzOiB0aGlzLmZpbGVzLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXHJcbiAgICAgICAgICAgICAgICBkZXZpY2VTaXplOiB0aGlzLmRldmljZVNpemVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbW9iaWxlOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,217 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { DynamicPageComponent } from '@fundamental-ngx/core';
3
+ import { BaseComponent, isFirefox } from 'barsa-novin-ray-core';
4
+ import { GetFormLayoutGrid } from '../constants';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "barsa-novin-ray-core";
8
+ import * as i3 from "@angular/cdk/scrolling";
9
+ import * as i4 from "@fundamental-ngx/core/avatar";
10
+ import * as i5 from "@fundamental-ngx/core/breadcrumb";
11
+ import * as i6 from "@fundamental-ngx/core/button";
12
+ import * as i7 from "@fundamental-ngx/core/dynamic-page";
13
+ import * as i8 from "@fundamental-ngx/core/facets";
14
+ import * as i9 from "@fundamental-ngx/core/form";
15
+ import * as i10 from "@fundamental-ngx/core/layout-grid";
16
+ import * as i11 from "@fundamental-ngx/core/message-strip";
17
+ import * as i12 from "@fundamental-ngx/core/object-number";
18
+ import * as i13 from "@fundamental-ngx/core/object-status";
19
+ import * as i14 from "@fundamental-ngx/core/rating-indicator";
20
+ import * as i15 from "@fundamental-ngx/core/text";
21
+ import * as i16 from "@fundamental-ngx/core/toolbar";
22
+ import * as i17 from "@fundamental-ngx/core/progress-indicator";
23
+ import * as i18 from "@fundamental-ngx/platform";
24
+ import * as i19 from "../ly-layout-container-of-root/ly-layout-container-of-root.component";
25
+ import * as i20 from "../mask/mask.component";
26
+ import * as i21 from "../ly-tab-page/ly-tab-page.component";
27
+ import * as i22 from "../layout-actions/layout-actions.component";
28
+ import * as i23 from "../breadcrumb/breadcrumb.component";
29
+ import * as i24 from "../form-toolbar/form-toolbar.component";
30
+ export class FundamentalDynamicFormComponent extends BaseComponent {
31
+ constructor(el) {
32
+ super();
33
+ this.el = el;
34
+ this.toolbarClick = new EventEmitter();
35
+ this.workflowChoiceClick = new EventEmitter();
36
+ /* eslint-disable */
37
+ this.close = new EventEmitter();
38
+ this.fullscreenRequest = new EventEmitter();
39
+ this.hideTitle = true;
40
+ this.toolbarShouldOverflow = false;
41
+ this.worfklowButtonsOnFooter = false;
42
+ this.hasLayoutButtons = true;
43
+ }
44
+ ngOnInit() {
45
+ super.ngOnInit();
46
+ this.isFirefox = isFirefox();
47
+ this.facetList ||= [];
48
+ this.workflowInfoText = this.workflowPanelUi?.Setting?.Workflow?.InfoText;
49
+ // const workflowButtons = this.workflowPanelUi?.buttonList ?? [];
50
+ this.workflowButtonsComboMode = this.isMobile;
51
+ this.worfklowButtonsOnFooter = this.parameters?.WorkflowButtonsOnFooter;
52
+ // this.workflowButtons = workflowButtons;
53
+ this.hasLayoutButtons =
54
+ this.layoutActions.length > 0 ||
55
+ (this.workflowButtons.length > 0 && (this.workflowButtonsComboMode || this.worfklowButtonsOnFooter));
56
+ this.canFullscreen = this.parameters?.CanFullscreen === true;
57
+ const toolbarButtonsCount = this.toolbarItems.filter((c) => typeof c !== 'string' && c.text !== '-').length;
58
+ if (this.deviceSize === 's' && toolbarButtonsCount > 1) {
59
+ this.toolbarShouldOverflow = true;
60
+ }
61
+ else {
62
+ if (toolbarButtonsCount > 5) {
63
+ this.toolbarShouldOverflow = true;
64
+ }
65
+ }
66
+ this._hanldeLayout();
67
+ // setTimeout(() => {
68
+ // this._tabListComponent._disableScrollSpy = true;
69
+ // });
70
+ }
71
+ ngOnChanges(changes) {
72
+ const { formVisibilityStatus } = changes;
73
+ if (formVisibilityStatus &&
74
+ !formVisibilityStatus.firstChange &&
75
+ formVisibilityStatus.currentValue === 'Visible') {
76
+ this._dynamicPageComponent?.refreshSize();
77
+ this._toolbarComponent?.updateCollapsibleItems();
78
+ }
79
+ }
80
+ onWfChoiceSelect(wfChoice) {
81
+ this.workflowChoiceClick.emit(wfChoice);
82
+ }
83
+ onTabChanged(tab) {
84
+ this.selectedTab = tab.label;
85
+ }
86
+ getNumber(val) {
87
+ return Number(val);
88
+ }
89
+ onDynamicComponentEvents(e) {
90
+ switch (e.title) {
91
+ case 'toolbarClick':
92
+ this.toolbarClick.emit(e.data);
93
+ break;
94
+ case 'workflowChoiceSelect':
95
+ this.onWfChoiceSelect(e.data);
96
+ break;
97
+ }
98
+ }
99
+ _hanldeLayout() {
100
+ this.layout1 = GetFormLayoutGrid(true, this.colXl, this.colLg, this.colMd);
101
+ this.layout2 = GetFormLayoutGrid(false, this.colXl, this.colLg, this.colMd);
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FundamentalDynamicFormComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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", circleAvatar: "circleAvatar", rtl: "rtl", hideFooter: "hideFooter", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", fullscreen: "fullscreen", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", formVisibilityStatus: "formVisibilityStatus", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", footerDesign: "footerDesign", formContentMaxWidth: "formContentMaxWidth", workflowButtons: "workflowButtons" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close", fullscreenRequest: "fullscreenRequest" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true, static: true }, { propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (mask) {\r\n<div 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\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n breadCrumb.url; let i = $index; let last = $last) {\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 } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\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 @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText)\"\r\n [collapsible]=\"true\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip [type]=\"'warning'\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n }\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet 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 [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\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 } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\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 } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\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 } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status 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 } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\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.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [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 } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\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 | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [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]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo | 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 } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if(!modernTabs.length && !contentIsPage){\r\n <fd-dynamic-page-content [class.limit-content-width]=\"formContentMaxWidth > 0\" cdkScrollable>\r\n <fd-layout-grid style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div style=\"min-height: 100%\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\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 </div>\r\n <div\r\n style=\"padding: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar [stackContent]=\"false\" [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.id\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\" [class.limit-content-width]=\"formContentMaxWidth > 0\">\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if(!hideFooter && hasLayoutButtons){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n@if (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}\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 [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\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 [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\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<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\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}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container,.no-pin ::ng-deep .fd-dynamic-page__collapsible-header{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "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: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i7.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i7.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i7.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i7.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i7.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i7.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i8.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "headingLevel", "id", "alignEnd"] }, { kind: "component", type: i8.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i8.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i11.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i12.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i13.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i14.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["class", "name", "ariaLabel", "ariaLabelledBy", "disabled", "displayMode", "nonInteractive", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator"], outputs: ["ratingChanged"] }, { kind: "component", type: i15.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i16.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i16.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i17.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i18.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i18.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: i19.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i20.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { 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", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i23.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "component", type: i24.FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { 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" }, { kind: "pipe", type: i2.FilterWorkflowInMobilePipe, name: "filterWorkflowInMobile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FundamentalDynamicFormComponent, decorators: [{
107
+ type: Component,
108
+ args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (mask) {\r\n<div 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\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n breadCrumb.url; let i = $index; let last = $last) {\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 } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\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 @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText)\"\r\n [collapsible]=\"true\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip [type]=\"'warning'\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n }\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet 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 [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\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 } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\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 } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\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 } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status 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 } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\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.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [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 } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\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 | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [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]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo | 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 } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if(!modernTabs.length && !contentIsPage){\r\n <fd-dynamic-page-content [class.limit-content-width]=\"formContentMaxWidth > 0\" cdkScrollable>\r\n <fd-layout-grid style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div style=\"min-height: 100%\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\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 </div>\r\n <div\r\n style=\"padding: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar [stackContent]=\"false\" [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.id\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\" [class.limit-content-width]=\"formContentMaxWidth > 0\">\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if(!hideFooter && hasLayoutButtons){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n@if (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}\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 [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\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 [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\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<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\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}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container,.no-pin ::ng-deep .fd-dynamic-page__collapsible-header{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
109
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { _dynamicPageComponent: [{
110
+ type: ViewChild,
111
+ args: [DynamicPageComponent, { static: true }]
112
+ }], _toolbarComponent: [{
113
+ type: ViewChild,
114
+ args: ['formToolbar']
115
+ }], toolbarClick: [{
116
+ type: Output
117
+ }], workflowChoiceClick: [{
118
+ type: Output
119
+ }], close: [{
120
+ type: Output
121
+ }], fullscreenRequest: [{
122
+ type: Output
123
+ }], breadCrumbs: [{
124
+ type: Input
125
+ }], toolbarVisible: [{
126
+ type: Input
127
+ }], toolbarItems: [{
128
+ type: Input
129
+ }], layoutActions: [{
130
+ type: Input
131
+ }], layout94: [{
132
+ type: Input
133
+ }], parameters: [{
134
+ type: Input
135
+ }], workflowPanelUi: [{
136
+ type: Input
137
+ }], context: [{
138
+ type: Input
139
+ }], title: [{
140
+ type: Input
141
+ }], subtitle: [{
142
+ type: Input
143
+ }], description: [{
144
+ type: Input
145
+ }], facetList: [{
146
+ type: Input
147
+ }], fieldDict: [{
148
+ type: Input
149
+ }], removeHeaderBorder: [{
150
+ type: Input
151
+ }], removeContentPadding: [{
152
+ type: Input
153
+ }], isMobile: [{
154
+ type: Input
155
+ }], mo: [{
156
+ type: Input
157
+ }], avatar: [{
158
+ type: Input
159
+ }], circleAvatar: [{
160
+ type: Input
161
+ }], rtl: [{
162
+ type: Input
163
+ }], hideFooter: [{
164
+ type: Input
165
+ }], hideTitle: [{
166
+ type: Input
167
+ }], hideClose: [{
168
+ type: Input
169
+ }], hidePin: [{
170
+ type: Input
171
+ }], fullscreen: [{
172
+ type: Input
173
+ }], mask: [{
174
+ type: Input
175
+ }], canSend: [{
176
+ type: Input
177
+ }], contentIsPage: [{
178
+ type: Input
179
+ }], contentDensity: [{
180
+ type: Input
181
+ }], deviceSize: [{
182
+ type: Input
183
+ }], dirValue: [{
184
+ type: Input
185
+ }], landscape: [{
186
+ type: Input
187
+ }], standalone: [{
188
+ type: Input
189
+ }], modernTabs: [{
190
+ type: Input
191
+ }], formVisibilityStatus: [{
192
+ type: Input
193
+ }], layoutGridCol: [{
194
+ type: Input
195
+ }], colLg: [{
196
+ type: Input
197
+ }], colXl: [{
198
+ type: Input
199
+ }], colMd: [{
200
+ type: Input
201
+ }], footerDesign: [{
202
+ type: Input
203
+ }], formContentMaxWidth: [{
204
+ type: Input
205
+ }], titleRef: [{
206
+ type: ViewChild,
207
+ args: ['titleRef', { read: ViewContainerRef }]
208
+ }], headerAvatarRef: [{
209
+ type: ViewChild,
210
+ args: ['headerAvatar']
211
+ }], closeFormTemplate: [{
212
+ type: ViewChild,
213
+ args: ['closeForm', { static: true }]
214
+ }], workflowButtons: [{
215
+ type: Input
216
+ }] } });
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RixPQUFPLEVBQ0gsYUFBYSxFQUliLFNBQVMsRUFFWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxhQUFhO0lBK0Q5RCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTVEdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQW9CO1FBQ1YsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Isc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXNCeEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQTBCMUIs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b3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXJEZXNpZ25UeXBlLCBDb250ZW50RGVuc2l0eSwgRHluYW1pY1BhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBCcmVhZENydW1iSW5mbyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBMYXlvdXRTZXR0aW5nLFxyXG4gICAgaXNGaXJlZm94LFxyXG4gICAgRm9ybVZpc2liaWxpdHlTdGF0dXNcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS10b29sYmFyL2Zvcm0tdG9vbGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtTGF5b3V0Q29sLCBHZXRGb3JtTGF5b3V0R3JpZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdW5kYW1lbnRhbER5bmFtaWNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBWaWV3Q2hpbGQoRHluYW1pY1BhZ2VDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIF9keW5hbWljUGFnZUNvbXBvbmVudDogRHluYW1pY1BhZ2VDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdmb3JtVG9vbGJhcicpIF90b29sYmFyQ29tcG9uZW50OiBGb3JtVG9vbGJhckNvbXBvbmVudDtcclxuICAgIEBPdXRwdXQoKSB0b29sYmFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSB3b3JrZmxvd0Nob2ljZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGZ1bGxzY3JlZW5SZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW10gfCBudWxsO1xyXG4gICAgQElucHV0KCkgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0b29sYmFySXRlbXM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgbGF5b3V0QWN0aW9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDtcclxuICAgIEBJbnB1dCgpIHBhcmFtZXRlcnM6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSB3b3JrZmxvd1BhbmVsVWk6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGZhY2V0TGlzdDogYW55W107XHJcbiAgICBASW5wdXQoKSBmaWVsZERpY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSByZW1vdmVDb250ZW50UGFkZGluZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSBhdmF0YXI6IGFueTtcclxuICAgIEBJbnB1dCgpIGNpcmNsZUF2YXRhcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVGb290ZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoaWRlVGl0bGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgaGlkZUNsb3NlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVBpbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBtYXNrOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2FuU2VuZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRlbnRJc1BhZ2U6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiAncycgfCAnbScgfCAnbCcgfCAneGwnO1xyXG4gICAgQElucHV0KCkgZGlyVmFsdWU6ICdydGwnIHwgJ2x0cic7XHJcbiAgICBASW5wdXQoKSBsYW5kc2NhcGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW9kZXJuVGFiczogTGF5b3V0U2V0dGluZ1tdO1xyXG4gICAgQElucHV0KCkgZm9ybVZpc2liaWxpdHlTdGF0dXM6IEZvcm1WaXNpYmlsaXR5U3RhdHVzO1xyXG4gICAgQElucHV0KCkgbGF5b3V0R3JpZENvbDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY29sTGc6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIGNvbFhsOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjb2xNZDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgZm9vdGVyRGVzaWduOiBCYXJEZXNpZ25UeXBlO1xyXG4gICAgQElucHV0KCkgZm9ybUNvbnRlbnRNYXhXaWR0aDogbnVtYmVyO1xyXG4gICAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdGl0bGVSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJBdmF0YXInKSBoZWFkZXJBdmF0YXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdjbG9zZUZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBjbG9zZUZvcm1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIHdvcmtmbG93QnV0dG9uczogYW55W107XHJcbiAgICBzZWxlY3RlZFRhYjogYW55O1xyXG4gICAgY2FuRnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICAgIHRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgd29yZmtsb3dCdXR0b25zT25Gb290ZXIgPSBmYWxzZTtcclxuICAgIHdvcmtmbG93SW5mb1RleHQ6IHN0cmluZztcclxuICAgIHdvcmtmbG93QnV0dG9uc0NvbWJvTW9kZTogYm9vbGVhbjtcclxuICAgIGlzRmlyZWZveDogYm9vbGVhbjtcclxuICAgIGxheW91dDE6IEZvcm1MYXlvdXRDb2w7XHJcbiAgICBsYXlvdXQyOiBGb3JtTGF5b3V0Q29sO1xyXG4gICAgaGFzTGF5b3V0QnV0dG9ucyA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNGaXJlZm94ID0gaXNGaXJlZm94KCk7XHJcbiAgICAgICAgdGhpcy5mYWNldExpc3QgfHw9IFtdO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dJbmZvVGV4dCA9IHRoaXMud29ya2Zsb3dQYW5lbFVpPy5TZXR0aW5nPy5Xb3JrZmxvdz8uSW5mb1RleHQ7XHJcbiAgICAgICAgLy8gY29uc3Qgd29ya2Zsb3dCdXR0b25zID0gdGhpcy53b3JrZmxvd1BhbmVsVWk/LmJ1dHRvbkxpc3QgPz8gW107XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgPSB0aGlzLmlzTW9iaWxlO1xyXG4gICAgICAgIHRoaXMud29yZmtsb3dCdXR0b25zT25Gb290ZXIgPSB0aGlzLnBhcmFtZXRlcnM/LldvcmtmbG93QnV0dG9uc09uRm9vdGVyO1xyXG4gICAgICAgIC8vIHRoaXMud29ya2Zsb3dCdXR0b25zID0gd29ya2Zsb3dCdXR0b25zO1xyXG4gICAgICAgIHRoaXMuaGFzTGF5b3V0QnV0dG9ucyA9XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QWN0aW9ucy5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgICAgICh0aGlzLndvcmtmbG93QnV0dG9ucy5sZW5ndGggPiAwICYmICh0aGlzLndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSB8fCB0aGlzLndvcmZrbG93QnV0dG9uc09uRm9vdGVyKSk7XHJcbiAgICAgICAgdGhpcy5jYW5GdWxsc2NyZWVuID0gdGhpcy5wYXJhbWV0ZXJzPy5DYW5GdWxsc2NyZWVuID09PSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IHRvb2xiYXJCdXR0b25zQ291bnQgPSB0aGlzLnRvb2xiYXJJdGVtcy5maWx0ZXIoKGMpID0+IHR5cGVvZiBjICE9PSAnc3RyaW5nJyAmJiBjLnRleHQgIT09ICctJykubGVuZ3RoO1xyXG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJyAmJiB0b29sYmFyQnV0dG9uc0NvdW50ID4gMSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRvb2xiYXJCdXR0b25zQ291bnQgPiA1KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5faGFubGRlTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuX3RhYkxpc3RDb21wb25lbnQuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IGZvcm1WaXNpYmlsaXR5U3RhdHVzIH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgZm9ybVZpc2liaWxpdHlTdGF0dXMgJiZcclxuICAgICAgICAgICAgIWZvcm1WaXNpYmlsaXR5U3RhdHVzLmZpcnN0Q2hhbmdlICYmXHJcbiAgICAgICAgICAgIGZvcm1WaXNpYmlsaXR5U3RhdHVzLmN1cnJlbnRWYWx1ZSA9PT0gJ1Zpc2libGUnXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50Py5yZWZyZXNoU2l6ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLl90b29sYmFyQ29tcG9uZW50Py51cGRhdGVDb2xsYXBzaWJsZUl0ZW1zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uV2ZDaG9pY2VTZWxlY3Qod2ZDaG9pY2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLndvcmtmbG93Q2hvaWNlQ2xpY2suZW1pdCh3ZkNob2ljZSk7XHJcbiAgICB9XHJcbiAgICBvblRhYkNoYW5nZWQodGFiOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWIubGFiZWw7XHJcbiAgICB9XHJcbiAgICBnZXROdW1iZXIodmFsKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyKHZhbCk7XHJcbiAgICB9XHJcbiAgICBvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoZSkge1xyXG4gICAgICAgIHN3aXRjaCAoZS50aXRsZSkge1xyXG4gICAgICAgICAgICBjYXNlICd0b29sYmFyQ2xpY2snOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ2xpY2suZW1pdChlLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3dvcmtmbG93Q2hvaWNlU2VsZWN0JzpcclxuICAgICAgICAgICAgICAgIHRoaXMub25XZkNob2ljZVNlbGVjdChlLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX2hhbmxkZUxheW91dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxheW91dDEgPSBHZXRGb3JtTGF5b3V0R3JpZCh0cnVlLCB0aGlzLmNvbFhsLCB0aGlzLmNvbExnLCB0aGlzLmNvbE1kKTtcclxuICAgICAgICB0aGlzLmxheW91dDIgPSBHZXRGb3JtTGF5b3V0R3JpZChmYWxzZSwgdGhpcy5jb2xYbCwgdGhpcy5jb2xMZywgdGhpcy5jb2xNZCk7XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmIChtYXNrKSB7XHJcbjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJVwiPlxyXG4gICAgPGJzdS1tYXNrIHNpemU9XCJtXCI+PC9ic3UtbWFzaz5cclxuPC9kaXY+XHJcbn1cclxuXHJcbjxmZC1keW5hbWljLXBhZ2VcclxuICAgIFtzaXplXT1cImlzTW9iaWxlID8gJ3NtYWxsJyA6ICdsYXJnZSdcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnZmxvYXRpbmctZm9vdGVyJzogZm9vdGVyRGVzaWduID09PSAnZmxvYXRpbmctZm9vdGVyJyB9XCJcclxuICAgIFtjbGFzcy5oZWFkZXItYm9yZGVyXT1cIiFyZW1vdmVIZWFkZXJCb3JkZXJcIlxyXG4gICAgW2F0dHIuaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgW2F0dHIuY29udGVudElzUGFnZV09XCJjb250ZW50SXNQYWdlXCJcclxuICAgIG1vYmlsZVxyXG4gICAgZm9ybUNsb3NlXHJcbiAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4+XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLWhlYWRlclxyXG4gICAgICAgIFtjbGFzcy5zaW1wbGUtdGl0bGVdPVwiIWRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbdGl0bGVdPVwiKGhpZGVUaXRsZSA9PT0gdHJ1ZSA/ICcnIDogdGl0bGUpIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBbY2xhc3MucC1iMF09XCJyZW1vdmVDb250ZW50UGFkZGluZ1wiXHJcbiAgICAgICAgW2NsYXNzLmhpZGUtdGl0bGVdPVwiaGlkZVRpdGxlID09PSB0cnVlICYmIGhpZGVDbG9zZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgW2NsYXNzLm5vLXRvb2xiYXItaXRlbXNdPVwiISh0b29sYmFySXRlbXMgfCBmaWx0ZXJXb3JrZmxvd0luTW9iaWxlOiB3b3Jma2xvd0J1dHRvbnNPbkZvb3Rlcik/Lmxlbmd0aFwiXHJcbiAgICAgICAgI3RpdGxlUmVmXHJcbiAgICA+XHJcbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1icmVhZGNydW1iIFtjbGFzcy5oaWRlXT1cImlzTW9iaWxlXCI+XHJcbiAgICAgICAgICAgIDxmZC1icmVhZGNydW1iPlxyXG4gICAgICAgICAgICAgICAgQGlmIChicmVhZENydW1icyAmJiAhaXNNb2JpbGUpIHsgQGZvciAoYnJlYWRDcnVtYiBvZiBicmVhZENydW1icyB8IHNsaWNlOiAwOmJyZWFkQ3J1bWJzLmxlbmd0aDsgdHJhY2tcclxuICAgICAgICAgICAgICAgIGJyZWFkQ3J1bWIudXJsOyBsZXQgaSA9ICRpbmRleDsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWItaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJyZWFkY3J1bWJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV4XT1cImlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnJlYWRDcnVtYl09XCJicmVhZENydW1iXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FsbEJyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYnNcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1icmVhZGNydW1iPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iPlxyXG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWJyZWFkY3J1bWI+XHJcbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cclxuICAgICAgICAgICAgPCEtLSBnbG9iYWwgYWN0aW9ucyAtLT5cclxuXHJcbiAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCIgU3R5bGU9XCJkaXNwbGF5Om5vbmVcIj4gPC9mZC10b29sYmFyPlxyXG4gICAgICAgICAgICA8IS0tIGFkZGVkIHRoaXMgYmVjYXVzZSBpbiBtb2JpbGUgbGFuZHNjYXBlIHRvb2xiYXIgZGlzYXBwZXIgLS0+XHJcbiAgICAgICAgICAgIEBpZiAodG9vbGJhclZpc2libGUpIHtcclxuICAgICAgICAgICAgPGJzdS1mb3JtLXRvb2xiYXJcclxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwidG9vbGJhckl0ZW1zIHwgZmlsdGVyV29ya2Zsb3dJbk1vYmlsZTogd29yZmtsb3dCdXR0b25zT25Gb290ZXJcIlxyXG4gICAgICAgICAgICAgICAgW2RpclZhbHVlXT1cImRpclZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtpc0ZpcmVmb3hdPVwiaXNGaXJlZm94XCJcclxuICAgICAgICAgICAgICAgICh0b29sYmFyQ2xpY2spPVwidG9vbGJhckNsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAjZm9ybVRvb2xiYXJcclxuICAgICAgICAgICAgPjwvYnN1LWZvcm0tdG9vbGJhcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxyXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XHJcbiAgICAgICAgICAgIDwhLS0gbGF5b3V0IGFjdGlvbnMgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBbZm9ybUFjdGlvbnNdPVwidGhpcy50b29sYmFyXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICBAaWYgKCFoaWRlQ2xvc2UpIHtcclxuICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChkZXZpY2VTaXplICE9PSAncycpIHtcclxuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvcj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZ1bGxzY3JlZW5Gb3JtXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvc2VGb3JtXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxyXG4gICAgPC9mZC1keW5hbWljLXBhZ2UtaGVhZGVyPlxyXG4gICAgQGlmIChkZXNjcmlwdGlvbiB8fCBmYWNldExpc3QubGVuZ3RoID4gMCB8fCB3b3JrZmxvd0luZm9UZXh0IHx8IGF2YXRhcikge31cclxuICAgIDxmZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyXHJcbiAgICAgICAgW2NsYXNzLmhlYWRlci1uby1kZXNjcmlwdGlvbl09XCIhKGRlc2NyaXB0aW9uIHx8IHdvcmtmbG93SW5mb1RleHQpXCJcclxuICAgICAgICBbY2xhc3Mubm8tcGluXT1cImhpZGVQaW4gfHwgKCFmYWNldExpc3Q/Lmxlbmd0aCAmJiAhd29ya2Zsb3dJbmZvVGV4dClcIlxyXG4gICAgICAgIFtjb2xsYXBzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbcGlubmFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjb2xsYXBzZWRdPVwiIWZhY2V0TGlzdD8ubGVuZ3RoICYmICF3b3JrZmxvd0luZm9UZXh0XCJcclxuICAgID5cclxuICAgICAgICBAaWYgKHdvcmtmbG93SW5mb1RleHQpIHtcclxuICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCBbdHlwZV09XCInd2FybmluZydcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAge3sgd29ya2Zsb3dJbmZvVGV4dCB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGZkLWZhY2V0LWdyb3VwIGFyaWFMYWJlbD1cIkZhY2V0IEdyb3VwXCI+XHJcbiAgICAgICAgICAgIEBpZiAoYXZhdGFyKSB7XHJcbiAgICAgICAgICAgIDxmZC1mYWNldCB0eXBlPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cImF2YXRhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImF2YXRhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIiFhdmF0YXI/LkZpbGVJZCA/IG51bGwgOiAoYXZhdGFyPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiZGV2aWNlU2l6ZSA9PT0gJ3hsJyA/ICdsJyA6IGRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2lyY2xlXT1cImNpcmNsZUF2YXRhclwiXHJcbiAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1hdmF0YXIgZmQtYXZhdGFyLS1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2ZkLWF2YXRhci0tJyArIChkZXZpY2VTaXplID09PSAneGwnID8gJ2wnIDogZGV2aWNlU2l6ZSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiYXZhdGFyXCIgY2xhc3M9XCJmZC1hdmF0YXJfX2ljb25cIiBbY2xhc3NdPVwiYXZhdGFyIHwgc2FwRm9udENsYXNzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPiA8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZmQtZmFjZXQ+XHJcbiAgICAgICAgICAgIH0gQGZvciAoZmFjZXQgb2YgZmFjZXRMaXN0OyB0cmFjayBmYWNldCkge1xyXG4gICAgICAgICAgICA8ZmQtZmFjZXRcclxuICAgICAgICAgICAgICAgIFt0eXBlXT1cImZhY2V0LnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgW2ZhY2V0VGl0bGVdPVwiZmFjZXQubW8uVGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cImZhY2V0Lm1vLlN1YlRpdGxlIHwgZmFjZXRWYWx1ZSB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZmFjZXQubW8uSXRlbUxpc3Q/Lk1vRGF0YUxpc3Q7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIDxmZC1mYWNldC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtjb2xvbl09XCJ0cnVlXCIgZm9yPVwiZm9ybS12YWx1ZS0xMFwiPnt7IGl0ZW0uVGl0bGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC10ZXh0IFt0ZXh0XT1cIml0ZW0uVmFsdWUgfCBmYWNldFZhbHVlXCIgaWQ9XCJmb3JtLXZhbHVlLTEwXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1mYWNldC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgfSBAaWYgKCAhZmFjZXQubW8uSXNOdW1iZXIgJiYgZmFjZXQudHlwZSA9PT0gJ2tleS12YWx1ZScgJiYgIWZhY2V0Lm1vLkNvbXBvbmVudD8uU2VsZWN0b3IpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZhY2V0Lm1vLkNvbXBvbmVudD8uU2VsZWN0b3IgPyAnJyA6IChmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYXJnZV09XCJmYWNldC5tby5Jc0xhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZmFjZXQubW8uSWNvblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtY29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1vYmplY3Qtc3RhdHVzIGZkLW9iamVjdC1zdGF0dXMtLScgKyBmYWNldC5tby5TdGF0dXMgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtb2JqZWN0LXN0YXR1cy0tbGFyZ2VdPVwiZmFjZXQubW8uSXNMYXJnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJmYWNldC5tby5Db21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWNldC5tby5UZXh0XCJcclxuICAgICAgICAgICAgICAgID48L2JucmMtZHluYW1pYy1jb21wb25lbnQ+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoZmFjZXQubW8uSXNOdW1iZXIgJiYgZmFjZXQudHlwZSA9PT0gJ2tleS12YWx1ZScpIHtcclxuICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgW251bWJlcl09XCJmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt1bml0XT1cImZhY2V0Lm1vLlVuaXQgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cImZhY2V0Lm1vLlN0YXR1cyB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZWNpbWFsXT1cImZhY2V0Lm1vLkRlY2ltYWxWYWx1ZSB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtb2JqZWN0LW51bWJlcj5cclxuICAgICAgICAgICAgICAgIH0gQGlmIChmYWNldC50eXBlID09PSAncGxhaW4tdGV4dCcpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgW3N0eWxlLndpZHRoLnB4XT1cImZhY2V0Lm1vLldpZHRoXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm9ybWFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXRleHQgW3RleHRdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIiBoeXBoZW5hdGlvbj1cImF1dG9cIj48L2ZkLXRleHQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH0gQGlmIChmYWNldC50eXBlID09PSAncmF0aW5nLWluZGljYXRvcicpIHtcclxuICAgICAgICAgICAgICAgIDxmZC1mYWNldC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1yYXRpbmctaW5kaWNhdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9pbnRlci1ldmVudHM6IG5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZHluYW1pY1RleHRJbmRpY2F0b3JdPVwiZmFjZXQubW8uRm9vdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlNb2RlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1yYXRpbmctaW5kaWNhdG9yPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1mYWNldC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgfSBAaWYgKGZhY2V0LnR5cGUgPT09ICdwcm9ncmVzcycpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgW3N0eWxlLndpZHRoXT1cIicxMHJlbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGZkLWZvcm0tbGFiZWw+e3sgZmFjZXQubW8uU3VidGl0bGUgfCBmYWNldFZhbHVlIH19PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtcHJvZ3Jlc3MtaW5kaWNhdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwciBlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJmYWNldC5tby5TdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZVRleHRdPVwiKGZhY2V0Lm1vIHwgZmFjZXRWYWx1ZTogZmFjZXQudHlwZSkgKyAnINin2LIgMTAg2YXYsdit2YTZhydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVOb3ddPVwiZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlTWF4XT1cIjEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VuaXRdPVwiJ9mF2LHYrdmE2YcnXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1wcm9ncmVzcy1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dWk1LXByb2dyZXNzLWluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwcmVtXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVTdGF0ZV09XCJmYWNldC5tby5TdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldE51bWJlcihmYWNldC5tby5WYWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICA+PC91aTUtcHJvZ3Jlc3MtaW5kaWNhdG9yPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfSBAaWYgKGZhY2V0LnR5cGUgPT09ICdtaWNyb2NoYXJ0cycpIHtcclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHdyYXA+aW4gcHJvZ3Jlc3MgLi4uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2ZkLWZhY2V0PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1mYWNldC1ncm91cD5cclxuICAgICAgICBAaWYgKGRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgPHNwYW4+e3sgZGVzY3JpcHRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyPlxyXG4gICAgQGlmKCFtb2Rlcm5UYWJzLmxlbmd0aCAmJiAhY29udGVudElzUGFnZSl7XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQgW2NsYXNzLmxpbWl0LWNvbnRlbnQtd2lkdGhdPVwiZm9ybUNvbnRlbnRNYXhXaWR0aCA+IDBcIiBjZGtTY3JvbGxhYmxlPlxyXG4gICAgICAgIDxmZC1sYXlvdXQtZ3JpZCBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMCVcIiBbc3R5bGUubWF4LXdpZHRoLnB4XT1cImZvcm1Db250ZW50TWF4V2lkdGhcIj5cclxuICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZV09XCJsYXlvdXQyLmNvbFhsID09PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmRMYXlvdXRHcmlkQ29sXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xNZF09XCJsYXlvdXQxLmNvbE1kXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sTGddPVwibGF5b3V0MS5jb2xMZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbFhsXT1cImxheW91dDEuY29sWGxcIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMCVcIiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCIgW2NvbE1kXT1cImNvbE1kXCIgW2NvbExnXT1cImNvbExnXCIgW2NvbFhsXT1cImNvbFhsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50ID8gcmVuZGVyTGF5b3V0Q29tcG9uZW50IDogcmVuZGVyRGVmYXVsdExheW91dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0OTRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRlXT1cImxheW91dDIuY29sWGwgPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbE1kXT1cImxheW91dDIuY29sTWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xMZ109XCJsYXlvdXQyLmNvbExnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sWGxdPVwibGF5b3V0Mi5jb2xYbFwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtbGF5b3V0LWdyaWQ+XHJcbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxyXG4gICAgfSBAZWxzZSBpZihtb2Rlcm5UYWJzLmxlbmd0aCAmJiAhY29udGVudElzUGFnZSAmJiAhcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50KXtcclxuICAgIDxmZHAtaWNvbi10YWItYmFyIFtzdGFja0NvbnRlbnRdPVwiZmFsc2VcIiBbY29sbGFwc2VPdmVyZmxvd109XCJ0cnVlXCIgW2V4cGFuZE92ZXJmbG93VGV4dF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIj5cclxuICAgICAgICBAZm9yICh0YWIgb2YgbW9kZXJuVGFiczsgdHJhY2sgdGFiLlRpdGxlOyBsZXQgaSA9ICRpbmRleCkge1xyXG5cclxuICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWJcclxuICAgICAgICAgICAgW2lkXT1cInRhYi5pZFwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1leHBhbmRlZF09XCJzZWxlY3RlZFRhYiA9PT0gdGFiLlRpdGxlXCJcclxuICAgICAgICAgICAgI3RhYmxpc3RcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudCBbaWRdPVwidGFiLmlkXCIgW2NsYXNzLmxpbWl0LWNvbnRlbnQtd2lkdGhdPVwiZm9ybUNvbnRlbnRNYXhXaWR0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxmZC1sYXlvdXQtZ3JpZCBbc3R5bGUubWF4LXdpZHRoLnB4XT1cImZvcm1Db250ZW50TWF4V2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xNZF09XCJsYXlvdXQxLmNvbE1kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xMZ109XCJsYXlvdXQxLmNvbExnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xYbF09XCJsYXlvdXQxLmNvbFhsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTJcIiBbY29sTWRdPVwiY29sTWRcIiBbY29sTGddPVwiY29sTGdcIiBbY29sWGxdPVwiY29sWGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxic3UtbHktdGFiLXBhZ2UgW2NvbmZpZ109XCJ0YWJcIj48L2JzdS1seS10YWItcGFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sTWRdPVwibGF5b3V0Mi5jb2xNZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sTGddPVwibGF5b3V0Mi5jb2xMZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sWGxdPVwibGF5b3V0Mi5jb2xYbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZmQtbGF5b3V0LWdyaWQ+XHJcbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXRhYj5cclxuICAgICAgICB9XHJcbiAgICA8L2ZkcC1pY29uLXRhYi1iYXI+XHJcbiAgICB9IEBpZighaGlkZUZvb3RlciAmJiBoYXNMYXlvdXRCdXR0b25zKXtcclxuICAgIDxmZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYXlvdXRBY3Rpb25zVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWZvb3Rlcj5cclxuICAgIH1cclxuPC9mZC1keW5hbWljLXBhZ2U+XHJcbkBpZiAoY29udGVudElzUGFnZSkge1xyXG48bmctY29udGFpbmVyXHJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgIHJlbmRlckxheW91dENvbXBvbmVudDtcclxuICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICRpbXBsaWNpdDogcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0OTRcclxuICAgICAgICB9XHJcbiAgICBcIlxyXG4+PC9uZy1jb250YWluZXI+XHJcbn1cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJEZWZhdWx0TGF5b3V0IGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCI+XHJcbiAgICA8YnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdFxyXG4gICAgICAgIFtjb25maWddPVwibGF5b3V0OTRcIlxyXG4gICAgICAgIFtpc1BhbmVsXT1cImZhbHNlXCJcclxuICAgICAgICBbaXNSb290XT1cInRydWVcIlxyXG4gICAgPjwvYnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJMYXlvdXRDb21wb25lbnQgbGV0LWNvbXBvbmVudCBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiPlxyXG4gICAgPGJucmMtZHluYW1pYy1mb3JtLWNvbXBvbmVudFxyXG4gICAgICAgIFtjb21wb25lbnRdPVwiY29tcG9uZW50XCJcclxuICAgICAgICBbbGF5b3V0QWN0aW9uc1RlbXBsYXRlUmVmXT1cImxheW91dEFjdGlvbnNUZW1wbGF0ZVJlZlwiXHJcbiAgICAgICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcclxuICAgICAgICBbYnJlYWRDcnVtYnNdPVwiYnJlYWRDcnVtYnNcIlxyXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcclxuICAgICAgICBbc3VidGl0bGVdPVwic3VidGl0bGVcIlxyXG4gICAgICAgIFt0b29sYmFySXRlbXNdPVwidG9vbGJhckl0ZW1zXCJcclxuICAgICAgICBbbGF5b3V0QWN0aW9uc109XCJsYXlvdXRBY3Rpb25zXCJcclxuICAgICAgICBbZm9vdGVyRGVzaWduXT1cImZvb3RlckRlc2lnblwiXHJcbiAgICAgICAgW2ZhY2V0TGlzdF09XCJmYWNldExpc3RcIlxyXG4gICAgICAgIFtzZXR0aW5nc109XCJjb21wb25lbnQuU2V0dGluZ3NcIlxyXG4gICAgICAgIFt3b3JrZmxvd0J1dHRvbnNdPVwid29ya2Zsb3dCdXR0b25zXCJcclxuICAgICAgICBbd29ya2Zsb3dQYW5lbFVpXT1cIndvcmtmbG93UGFuZWxVaVwiXHJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NFwiXHJcbiAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXHJcbiAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgIFtmaWVsZERpY3RdPVwiZmllbGREaWN0XCJcclxuICAgICAgICBbbWFza109XCJtYXNrXCJcclxuICAgICAgICBbZGlyVmFsdWVdPVwiZGlyVmFsdWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXHJcbiAgICAgICAgW21vZGVyblRhYnNdPVwibW9kZXJuVGFic1wiXHJcbiAgICAgICAgW2F2YXRhcl09XCJhdmF0YXJcIlxyXG4gICAgICAgIChldmVudHMpPVwib25EeW5hbWljQ29tcG9uZW50RXZlbnRzKCRldmVudClcIlxyXG4gICAgPjwvYm5yYy1keW5hbWljLWZvcm0tY29tcG9uZW50PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2Nsb3NlRm9ybT5cclxuICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImNsb3NlLmVtaXQoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cclxuICAgICAgICA8aSBbY2xhc3NdPVwiJ3NhcC1pY29uLS0nICsgKGlzTW9iaWxlID8gKHJ0bCA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCcpIDogJ2RlY2xpbmUnKVwiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2Z1bGxzY3JlZW5Gb3JtPlxyXG4gICAgQGlmIChjYW5GdWxsc2NyZWVuKSB7XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZnVsbHNjcmVlbiA/ICdleGl0IGZ1bGxzY3JlZW4nIDogJ2Z1bGxzY3JlZW4nXCJcclxuICAgICAgICAoY2xpY2spPVwiZnVsbHNjcmVlblJlcXVlc3QuZW1pdCgpXCJcclxuICAgICAgICBbdGl0bGVdPVwiZnVsbHNjcmVlbiA/ICdleGl0IGZ1bGxzY3JlZW4nIDogJ2Z1bGxzY3JlZW4nXCJcclxuICAgICAgICBbZ2x5cGhdPVwiZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXHJcbiAgICA+PC9idXR0b24+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjbGF5b3V0QWN0aW9uc1RlbXBsYXRlUmVmPlxyXG4gICAgPGJzdS1sYXlvdXQtYWN0aW9uc1xyXG4gICAgICAgIFtjYW5TZW5kXT1cImNhblNlbmRcIlxyXG4gICAgICAgIFtidXR0b25zXT1cImxheW91dEFjdGlvbnNcIlxyXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXHJcbiAgICAgICAgW2xhbmRzY2FwZV09XCJsYW5kc2NhcGVcIlxyXG4gICAgICAgIFtzdGFuZGFsb25lXT1cInN0YW5kYWxvbmVcIlxyXG4gICAgICAgIFtmb290ZXJEZXNpZ25dPVwiZm9vdGVyRGVzaWduXCJcclxuICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIndvcmtmbG93QnV0dG9uc1wiXHJcbiAgICAgICAgW3dvcmtmbG93QnV0dG9uc0NvbWJvTW9kZV09XCJ3b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgfHwgd29yZmtsb3dCdXR0b25zT25Gb290ZXJcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICAodG9vbENsaWNrKT1cInRvb2xiYXJDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJvbldmQ2hvaWNlU2VsZWN0KCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgPC9ic3UtbGF5b3V0LWFjdGlvbnM+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==