barsa-sap-ui 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/README.md +25 -0
  2. package/esm2020/barsa-sap-ui.mjs +5 -0
  3. package/esm2020/lib/apply-conditional-formmatings.directive.mjs +84 -0
  4. package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +109 -0
  5. package/esm2020/lib/barsa-base-layout/barsa-base-layout.component.mjs +34 -0
  6. package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +71 -0
  7. package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +28 -0
  8. package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +77 -0
  9. package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +45 -0
  10. package/esm2020/lib/barsa-sap-ui-routing.module.mjs +17 -0
  11. package/esm2020/lib/barsa-sap-ui.module.mjs +277 -0
  12. package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +29 -0
  13. package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +122 -0
  14. package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +57 -0
  15. package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +334 -0
  16. package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +120 -0
  17. package/esm2020/lib/barsa-tree-item/node-has-one-depth-level.pipe.mjs +19 -0
  18. package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +156 -0
  19. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +45 -0
  20. package/esm2020/lib/captcha-field/captcha-field.component.mjs +28 -0
  21. package/esm2020/lib/card-item/card-item.component.mjs +60 -0
  22. package/esm2020/lib/card-view-content/card-view-content.component.mjs +23 -0
  23. package/esm2020/lib/col-renderer.directive.mjs +50 -0
  24. package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +56 -0
  25. package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +60 -0
  26. package/esm2020/lib/column-renderer/column-renderer.component.mjs +84 -0
  27. package/esm2020/lib/constants.mjs +413 -0
  28. package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +41 -0
  29. package/esm2020/lib/device-info-field-base.mjs +23 -0
  30. package/esm2020/lib/dynamic-page-size.pipe.mjs +26 -0
  31. package/esm2020/lib/empty-page/empty-page.component.mjs +38 -0
  32. package/esm2020/lib/file-in-dialog/file-in-dialog.component.mjs +44 -0
  33. package/esm2020/lib/form-dialog/form-dialog.component.mjs +125 -0
  34. package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +38 -0
  35. package/esm2020/lib/form-page/form-page.component.mjs +51 -0
  36. package/esm2020/lib/form-page-base.mjs +129 -0
  37. package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +44 -0
  38. package/esm2020/lib/form-wizard/form-wizard.component.mjs +21 -0
  39. package/esm2020/lib/fullscreen-dialog.directive.mjs +40 -0
  40. package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +152 -0
  41. package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +203 -0
  42. package/esm2020/lib/global-search/global-search.component.mjs +26 -0
  43. package/esm2020/lib/global-search-module/global-search-module.component.mjs +30 -0
  44. package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +30 -0
  45. package/esm2020/lib/header-avatar/header-avatar.component.mjs +19 -0
  46. package/esm2020/lib/header-facet-form/header-facet-form.component.mjs +22 -0
  47. package/esm2020/lib/header-facet-key-value/header-facet-key-value.component.mjs +31 -0
  48. package/esm2020/lib/header-facet-microchart/header-facet-microchart.component.mjs +21 -0
  49. package/esm2020/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +28 -0
  50. package/esm2020/lib/header-facet-progress/header-facet-progress.component.mjs +26 -0
  51. package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +26 -0
  52. package/esm2020/lib/htree-create-new/htree-create-new.component.mjs +49 -0
  53. package/esm2020/lib/hyperlink/hyperlink.component.mjs +19 -0
  54. package/esm2020/lib/index.mjs +412 -0
  55. package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +32 -0
  56. package/esm2020/lib/layout-actions/layout-actions.component.mjs +65 -0
  57. package/esm2020/lib/layout-control/layout-control.component.mjs +214 -0
  58. package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +133 -0
  59. package/esm2020/lib/list-item/list-item.component.mjs +30 -0
  60. package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +37 -0
  61. package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +70 -0
  62. package/esm2020/lib/ly-label/ly-label.component.mjs +31 -0
  63. package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +83 -0
  64. package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +17 -0
  65. package/esm2020/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +24 -0
  66. package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +64 -0
  67. package/esm2020/lib/ly-line/ly-line.component.mjs +56 -0
  68. package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +27 -0
  69. package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +43 -0
  70. package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +35 -0
  71. package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +49 -0
  72. package/esm2020/lib/manage-filters-report/manage-filters-report.component.mjs +45 -0
  73. package/esm2020/lib/mask/mask.component.mjs +22 -0
  74. package/esm2020/lib/message-strip/message-strip.component.mjs +28 -0
  75. package/esm2020/lib/models/grid-data-provider.mjs +219 -0
  76. package/esm2020/lib/models/grid-view.mjs +2 -0
  77. package/esm2020/lib/models/index.mjs +2 -0
  78. package/esm2020/lib/no-data/no-data.component.mjs +20 -0
  79. package/esm2020/lib/page-with-form-handler-base.mjs +42 -0
  80. package/esm2020/lib/page-with-header/page-with-header.component.mjs +76 -0
  81. package/esm2020/lib/progress-indicator/progress-indicator.component.mjs +18 -0
  82. package/esm2020/lib/report-navigator/report-navigator.component.mjs +62 -0
  83. package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +60 -0
  84. package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +35 -0
  85. package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +99 -0
  86. package/esm2020/lib/report-search-panel-save/report-search-panel-save.component.mjs +90 -0
  87. package/esm2020/lib/report-tree-base.mjs +405 -0
  88. package/esm2020/lib/report-view-renderer.directive.mjs +248 -0
  89. package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +50 -0
  90. package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +84 -0
  91. package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +35 -0
  92. package/esm2020/lib/sap-font-class.pipe.mjs +29 -0
  93. package/esm2020/lib/sap-font.pipe.mjs +29 -0
  94. package/esm2020/lib/sap-ui-report-base.component.mjs +689 -0
  95. package/esm2020/lib/search-panel/search-panel.component.mjs +40 -0
  96. package/esm2020/lib/static-text/static-text.component.mjs +15 -0
  97. package/esm2020/lib/title/title.component.mjs +15 -0
  98. package/esm2020/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +14 -0
  99. package/esm2020/lib/ui-button/ui-button.component.mjs +31 -0
  100. package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +46 -0
  101. package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +60 -0
  102. package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +27 -0
  103. package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +29 -0
  104. package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +50 -0
  105. package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +34 -0
  106. package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +194 -0
  107. package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +116 -0
  108. package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +110 -0
  109. package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +61 -0
  110. package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +181 -0
  111. package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +43 -0
  112. package/esm2020/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.mjs +26 -0
  113. package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +32 -0
  114. package/esm2020/lib/ui-graph/ui-graph.component.mjs +16 -0
  115. package/esm2020/lib/ui-grid/ui-grid.component.mjs +25 -0
  116. package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +44 -0
  117. package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +67 -0
  118. package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +76 -0
  119. package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +59 -0
  120. package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +156 -0
  121. package/esm2020/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +11 -0
  122. package/esm2020/lib/ui-label/ui-label.component.mjs +12 -0
  123. package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +299 -0
  124. package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +44 -0
  125. package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +125 -0
  126. package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +19 -0
  127. package/esm2020/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +13 -0
  128. package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +46 -0
  129. package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +335 -0
  130. package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +18 -0
  131. package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +83 -0
  132. package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +24 -0
  133. package/esm2020/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +21 -0
  134. package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +216 -0
  135. package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +95 -0
  136. package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +215 -0
  137. package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +24 -0
  138. package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +29 -0
  139. package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +46 -0
  140. package/esm2020/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +24 -0
  141. package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +29 -0
  142. package/esm2020/lib/ui-single-picture/ui-single-picture.component.mjs +36 -0
  143. package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +20 -0
  144. package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +106 -0
  145. package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +44 -0
  146. package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +47 -0
  147. package/esm2020/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +47 -0
  148. package/esm2020/lib/ui-time-span/ui-time-span.component.mjs +24 -0
  149. package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +53 -0
  150. package/esm2020/lib/ui-tree/ui-tree.component.mjs +69 -0
  151. package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +75 -0
  152. package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +24 -0
  153. package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +276 -0
  154. package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +26 -0
  155. package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +86 -0
  156. package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +117 -0
  157. package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +114 -0
  158. package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +44 -0
  159. package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +53 -0
  160. package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +74 -0
  161. package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +43 -0
  162. package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +183 -0
  163. package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +44 -0
  164. package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +73 -0
  165. package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +66 -0
  166. package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +117 -0
  167. package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +44 -0
  168. package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +110 -0
  169. package/esm2020/lib/upload-file-status.pipe.mjs +28 -0
  170. package/esm2020/lib/wizard-layout.directive.mjs +102 -0
  171. package/esm2020/public-api.mjs +170 -0
  172. package/fesm2015/barsa-sap-ui.mjs +11437 -0
  173. package/fesm2015/barsa-sap-ui.mjs.map +1 -0
  174. package/fesm2020/barsa-sap-ui.mjs +11427 -0
  175. package/fesm2020/barsa-sap-ui.mjs.map +1 -0
  176. package/index.d.ts +5 -0
  177. package/lib/apply-conditional-formmatings.directive.d.ts +25 -0
  178. package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +26 -0
  179. package/lib/barsa-base-layout/barsa-base-layout.component.d.ts +18 -0
  180. package/lib/barsa-date-time-picker/barsa-date-time-picker.component.d.ts +18 -0
  181. package/lib/barsa-list-file-linear/barsa-list-file-linear.component.d.ts +8 -0
  182. package/lib/barsa-monaco-editor/barsa-monaco-editor.component.d.ts +18 -0
  183. package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +13 -0
  184. package/lib/barsa-sap-ui-routing.module.d.ts +7 -0
  185. package/lib/barsa-sap-ui.module.d.ts +181 -0
  186. package/lib/barsa-search-form/barsa-search-form.component.d.ts +8 -0
  187. package/lib/barsa-table-header/barsa-table-header.component.d.ts +37 -0
  188. package/lib/barsa-table-row/barsa-table-row.component.d.ts +20 -0
  189. package/lib/barsa-tinyemce/barsa-tinyemce.component.d.ts +43 -0
  190. package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +48 -0
  191. package/lib/barsa-tree-item/node-has-one-depth-level.pipe.d.ts +8 -0
  192. package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +52 -0
  193. package/lib/breadcrumb/breadcrumb.component.d.ts +17 -0
  194. package/lib/captcha-field/captcha-field.component.d.ts +10 -0
  195. package/lib/card-item/card-item.component.d.ts +17 -0
  196. package/lib/card-view-content/card-view-content.component.d.ts +8 -0
  197. package/lib/col-renderer.directive.d.ts +12 -0
  198. package/lib/column-matrix-renderer/column-matrix-renderer.component.d.ts +23 -0
  199. package/lib/column-matrix-renderer/matrix-value.pipe.d.ts +8 -0
  200. package/lib/column-renderer/column-renderer.component.d.ts +29 -0
  201. package/lib/constants.d.ts +6 -0
  202. package/lib/custom-date-time/custom-date-time.component.d.ts +26 -0
  203. package/lib/device-info-field-base.d.ts +12 -0
  204. package/lib/dynamic-page-size.pipe.d.ts +8 -0
  205. package/lib/empty-page/empty-page.component.d.ts +11 -0
  206. package/lib/file-in-dialog/file-in-dialog.component.d.ts +16 -0
  207. package/lib/form-dialog/form-dialog.component.d.ts +40 -0
  208. package/lib/form-dialog-less/form-dialog-less.component.d.ts +27 -0
  209. package/lib/form-page/form-page.component.d.ts +17 -0
  210. package/lib/form-page-base.d.ts +26 -0
  211. package/lib/form-toolbar-button/form-toolbar-button.component.d.ts +18 -0
  212. package/lib/form-wizard/form-wizard.component.d.ts +8 -0
  213. package/lib/fullscreen-dialog.directive.d.ts +14 -0
  214. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +58 -0
  215. package/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.d.ts +18 -0
  216. package/lib/global-search/global-search.component.d.ts +12 -0
  217. package/lib/global-search-module/global-search-module.component.d.ts +18 -0
  218. package/lib/global-search-panel/global-search-panel.component.d.ts +11 -0
  219. package/lib/header-avatar/header-avatar.component.d.ts +8 -0
  220. package/lib/header-facet-form/header-facet-form.component.d.ts +9 -0
  221. package/lib/header-facet-key-value/header-facet-key-value.component.d.ts +11 -0
  222. package/lib/header-facet-microchart/header-facet-microchart.component.d.ts +8 -0
  223. package/lib/header-facet-plain-text/header-facet-plain-text.component.d.ts +11 -0
  224. package/lib/header-facet-progress/header-facet-progress.component.d.ts +11 -0
  225. package/lib/header-facet-rate/header-facet-rate.component.d.ts +11 -0
  226. package/lib/htree-create-new/htree-create-new.component.d.ts +13 -0
  227. package/lib/hyperlink/hyperlink.component.d.ts +7 -0
  228. package/lib/index.d.ts +85 -0
  229. package/lib/inline-save-and-cancel/inline-save-and-cancel.component.d.ts +11 -0
  230. package/lib/layout-actions/layout-actions.component.d.ts +23 -0
  231. package/lib/layout-control/layout-control.component.d.ts +65 -0
  232. package/lib/layout-wizard/layout-wizard.component.d.ts +27 -0
  233. package/lib/list-item/list-item.component.d.ts +13 -0
  234. package/lib/ly-empty-space/ly-empty-space.component.d.ts +14 -0
  235. package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +22 -0
  236. package/lib/ly-label/ly-label.component.d.ts +15 -0
  237. package/lib/ly-layout-container/ly-layout-container.component.d.ts +26 -0
  238. package/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.d.ts +8 -0
  239. package/lib/ly-layout-field-label/ly-layout-field-label.component.d.ts +13 -0
  240. package/lib/ly-layout-panel/ly-layout-panel.component.d.ts +25 -0
  241. package/lib/ly-line/ly-line.component.d.ts +17 -0
  242. package/lib/ly-simple-label/ly-simple-label.component.d.ts +11 -0
  243. package/lib/ly-tab-container/ly-tab-container.component.d.ts +16 -0
  244. package/lib/ly-tab-page/ly-tab-page.component.d.ts +18 -0
  245. package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +18 -0
  246. package/lib/manage-filters-report/manage-filters-report.component.d.ts +24 -0
  247. package/lib/mask/mask.component.d.ts +9 -0
  248. package/lib/message-strip/message-strip.component.d.ts +11 -0
  249. package/lib/models/grid-data-provider.d.ts +26 -0
  250. package/lib/models/grid-view.d.ts +64 -0
  251. package/lib/models/index.d.ts +1 -0
  252. package/lib/no-data/no-data.component.d.ts +8 -0
  253. package/lib/page-with-form-handler-base.d.ts +10 -0
  254. package/lib/page-with-header/page-with-header.component.d.ts +29 -0
  255. package/lib/progress-indicator/progress-indicator.component.d.ts +8 -0
  256. package/lib/report-navigator/report-navigator.component.d.ts +21 -0
  257. package/lib/report-new-top-form/report-new-top-form.component.d.ts +18 -0
  258. package/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.d.ts +14 -0
  259. package/lib/report-search-fields-manage/report-search-fields-manage.component.d.ts +20 -0
  260. package/lib/report-search-panel-save/report-search-panel-save.component.d.ts +27 -0
  261. package/lib/report-tree-base.d.ts +61 -0
  262. package/lib/report-view-renderer.directive.d.ts +82 -0
  263. package/lib/responsive-toolbar/responsive-toolbar.component.d.ts +19 -0
  264. package/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.d.ts +24 -0
  265. package/lib/rich-text-static/rich-text-static.component.d.ts +24 -0
  266. package/lib/sap-font-class.pipe.d.ts +8 -0
  267. package/lib/sap-font.pipe.d.ts +9 -0
  268. package/lib/sap-ui-report-base.component.d.ts +133 -0
  269. package/lib/search-panel/search-panel.component.d.ts +13 -0
  270. package/lib/static-text/static-text.component.d.ts +7 -0
  271. package/lib/title/title.component.d.ts +7 -0
  272. package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +7 -0
  273. package/lib/ui-button/ui-button.component.d.ts +11 -0
  274. package/lib/ui-calendar/ui-calendar.component.d.ts +16 -0
  275. package/lib/ui-card-view/ui-card-view.component.d.ts +16 -0
  276. package/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.d.ts +9 -0
  277. package/lib/ui-check-box/ui-check-box.component.d.ts +12 -0
  278. package/lib/ui-color-ui/ui-color-ui.component.d.ts +16 -0
  279. package/lib/ui-container-with-button/ui-container-with-button.component.d.ts +11 -0
  280. package/lib/ui-date-range-ex/ui-date-range-ex.component.d.ts +36 -0
  281. package/lib/ui-date-time/ui-date-time.component.d.ts +24 -0
  282. package/lib/ui-editable-grid/ui-editable-grid.component.d.ts +43 -0
  283. package/lib/ui-exception-form/ui-exception-form.component.d.ts +16 -0
  284. package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +51 -0
  285. package/lib/ui-form-panel/ui-form-panel.component.d.ts +24 -0
  286. package/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.d.ts +13 -0
  287. package/lib/ui-gantt-chart/ui-gantt-chart.component.d.ts +15 -0
  288. package/lib/ui-graph/ui-graph.component.d.ts +9 -0
  289. package/lib/ui-grid/ui-grid.component.d.ts +12 -0
  290. package/lib/ui-grid-columns/ui-grid-columns.component.d.ts +14 -0
  291. package/lib/ui-grid-filter-item/ui-grid-filter-item.component.d.ts +19 -0
  292. package/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.d.ts +24 -0
  293. package/lib/ui-grid-sort-item/ui-grid-sort-item.component.d.ts +25 -0
  294. package/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.d.ts +28 -0
  295. package/lib/ui-info-bar-panel/ui-info-bar-panel.component.d.ts +5 -0
  296. package/lib/ui-label/ui-label.component.d.ts +6 -0
  297. package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +62 -0
  298. package/lib/ui-list-view/ui-list-view.component.d.ts +15 -0
  299. package/lib/ui-matrix-view/ui-matrix-view.component.d.ts +45 -0
  300. package/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.d.ts +7 -0
  301. package/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.d.ts +6 -0
  302. package/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.d.ts +13 -0
  303. package/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.d.ts +78 -0
  304. package/lib/ui-monaco-editor/ui-monaco-editor.component.d.ts +7 -0
  305. package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +21 -0
  306. package/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.d.ts +11 -0
  307. package/lib/ui-num-int-ui/ui-num-int-ui.component.d.ts +10 -0
  308. package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +63 -0
  309. package/lib/ui-picture-file/ui-picture-file.component.d.ts +27 -0
  310. package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +68 -0
  311. package/lib/ui-radio-group/ui-radio-group.component.d.ts +9 -0
  312. package/lib/ui-read-only-field/ui-read-only-field.component.d.ts +11 -0
  313. package/lib/ui-report-container/ui-report-container.component.d.ts +17 -0
  314. package/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.d.ts +9 -0
  315. package/lib/ui-simple-combo/ui-simple-combo.component.d.ts +13 -0
  316. package/lib/ui-single-picture/ui-single-picture.component.d.ts +13 -0
  317. package/lib/ui-switch-button/ui-switch-button.component.d.ts +11 -0
  318. package/lib/ui-table-view/ui-table-view.component.d.ts +29 -0
  319. package/lib/ui-text-area/ui-text-area.component.d.ts +15 -0
  320. package/lib/ui-text-field/ui-text-field.component.d.ts +14 -0
  321. package/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.d.ts +13 -0
  322. package/lib/ui-time-span/ui-time-span.component.d.ts +10 -0
  323. package/lib/ui-tinymce/ui-tinymce.component.d.ts +17 -0
  324. package/lib/ui-tree/ui-tree.component.d.ts +32 -0
  325. package/lib/ui-tree-view/ui-tree-view.component.d.ts +41 -0
  326. package/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.d.ts +9 -0
  327. package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +67 -0
  328. package/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.d.ts +16 -0
  329. package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +20 -0
  330. package/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.d.ts +48 -0
  331. package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +41 -0
  332. package/lib/ul-toast-adapter/ul-toast-adapter.component.d.ts +13 -0
  333. package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +19 -0
  334. package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +24 -0
  335. package/lib/ulv-filter-settings/ulv-filter-settings.component.d.ts +19 -0
  336. package/lib/ulv-form-multi-select/ulv-form-multi-select.component.d.ts +26 -0
  337. package/lib/ulv-groupby-settings/ulv-groupby-settings.component.d.ts +16 -0
  338. package/lib/ulv-paging/ulv-paging.component.d.ts +27 -0
  339. package/lib/ulv-selection/ulv-selection.component.d.ts +43 -0
  340. package/lib/ulv-settings/ulv-settings.component.d.ts +43 -0
  341. package/lib/ulv-sort-settings/ulv-sort-settings.component.d.ts +16 -0
  342. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +47 -0
  343. package/lib/upload-file-status.pipe.d.ts +9 -0
  344. package/lib/wizard-layout.directive.d.ts +39 -0
  345. package/package.json +31 -0
  346. package/public-api.d.ts +166 -0
@@ -0,0 +1,32 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
2
+ import { BaseComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@fundamental-ngx/platform/button";
5
+ export class InlineSaveAndCancelComponent extends BaseComponent {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.save = new EventEmitter();
9
+ this.cancel = new EventEmitter();
10
+ }
11
+ onSave(e) {
12
+ this.save.emit();
13
+ e.stopPropagation();
14
+ e.preventDefault();
15
+ }
16
+ onCancel(e) {
17
+ this.cancel.emit();
18
+ e.stopPropagation();
19
+ e.preventDefault();
20
+ }
21
+ }
22
+ InlineSaveAndCancelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: InlineSaveAndCancelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
23
+ InlineSaveAndCancelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: InlineSaveAndCancelComponent, selector: "bsu-inline-save-and-cancel,[inlineSaveAndCancel]", outputs: { save: "save", cancel: "cancel" }, usesInheritance: true, ngImport: i0, template: "<fdp-button glyph=\"accept\" role=\"save\" (click)=\"onSave($event)\"></fdp-button>\r\n<fdp-button buttonType=\"negative\" glyph=\"decline\" role=\"canecl form\" (click)=\"onCancel($event)\"></fdp-button>\r\n", styles: [":host{display:flex;justify-content:space-evenly;align-items:center;width:100%}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: InlineSaveAndCancelComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'bsu-inline-save-and-cancel,[inlineSaveAndCancel]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fdp-button glyph=\"accept\" role=\"save\" (click)=\"onSave($event)\"></fdp-button>\r\n<fdp-button buttonType=\"negative\" glyph=\"decline\" role=\"canecl form\" (click)=\"onCancel($event)\"></fdp-button>\r\n", styles: [":host{display:flex;justify-content:space-evenly;align-items:center;width:100%}\n"] }]
27
+ }], propDecorators: { save: [{
28
+ type: Output
29
+ }], cancel: [{
30
+ type: Output
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXNhdmUtYW5kLWNhbmNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsL2lubGluZS1zYXZlLWFuZC1jYW5jZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvaW5saW5lLXNhdmUtYW5kLWNhbmNlbC9pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU9yRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsYUFBYTtJQU4vRDs7UUFPYyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQVl6QztJQVZHLE1BQU0sQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDOzt5SEFiUSw0QkFBNEI7NkdBQTVCLDRCQUE0Qiw0SkNUekMsa05BRUE7MkZET2EsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNJLGtEQUFrRCxtQkFHM0MsdUJBQXVCLENBQUMsTUFBTTs4QkFHckMsSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsLFtpbmxpbmVTYXZlQW5kQ2FuY2VsXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lubGluZS1zYXZlLWFuZC1jYW5jZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1zYXZlLWFuZC1jYW5jZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBJbmxpbmVTYXZlQW5kQ2FuY2VsQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIG9uU2F2ZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZS5lbWl0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgb25DYW5jZWwoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8ZmRwLWJ1dHRvbiBnbHlwaD1cImFjY2VwdFwiIHJvbGU9XCJzYXZlXCIgKGNsaWNrKT1cIm9uU2F2ZSgkZXZlbnQpXCI+PC9mZHAtYnV0dG9uPlxyXG48ZmRwLWJ1dHRvbiBidXR0b25UeXBlPVwibmVnYXRpdmVcIiBnbHlwaD1cImRlY2xpbmVcIiByb2xlPVwiY2FuZWNsIGZvcm1cIiAoY2xpY2spPVwib25DYW5jZWwoJGV2ZW50KVwiPjwvZmRwLWJ1dHRvbj5cclxuIl19
@@ -0,0 +1,65 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormToolbarBaseComponent, getDeviceIsMobile } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/overlay";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "barsa-novin-ray-core";
7
+ import * as i4 from "@fundamental-ngx/core/bar";
8
+ import * as i5 from "@fundamental-ngx/core/button";
9
+ import * as i6 from "@fundamental-ngx/core/menu";
10
+ import * as i7 from "@fundamental-ngx/core/popover";
11
+ import * as i8 from "@fundamental-ngx/core/split-button";
12
+ export class LayoutActionsComponent extends FormToolbarBaseComponent {
13
+ constructor(_overlay) {
14
+ super();
15
+ this._overlay = _overlay;
16
+ this.workflowChoiceSelect = new EventEmitter();
17
+ this.autoClose = false;
18
+ this.scrollThrottle = 0;
19
+ }
20
+ ngOnInit() {
21
+ super.ngOnInit();
22
+ this.repositionScrollStrategy = this._overlay.scrollStrategies.reposition({
23
+ autoClose: this.autoClose,
24
+ scrollThrottle: this.scrollThrottle
25
+ });
26
+ this.isMobile = getDeviceIsMobile();
27
+ const workflowButtons = this.workflowButtons;
28
+ // this.workflowButtonsComboMode = true;
29
+ if (workflowButtons.length > 0) {
30
+ this.buttons.forEach((c) => {
31
+ if (typeof c === 'object') {
32
+ c.design = 'standard';
33
+ }
34
+ });
35
+ const lastButton = workflowButtons[workflowButtons.length - 1];
36
+ if (lastButton.Choice) {
37
+ lastButton.design = 'emphasized';
38
+ }
39
+ }
40
+ }
41
+ onAcceptWorkflow() {
42
+ this.onToolClick(this.selectedWorkflowButton);
43
+ }
44
+ onWorkflowButtonSelected(workflowButton) {
45
+ this.selectedWorkflowButton = workflowButton;
46
+ this.workflowChoiceSelect.emit(workflowButton.Choice);
47
+ }
48
+ }
49
+ LayoutActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutActionsComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
50
+ LayoutActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LayoutActionsComponent, selector: "bsu-layout-actions", inputs: { workflowButtons: "workflowButtons", workflowButtonsComboMode: "workflowButtonsComboMode", canSend: "canSend", simple: "simple" }, outputs: { workflowChoiceSelect: "workflowChoiceSelect" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"simple ? buttonsMode : defaultTemplate\"> </ng-container>\r\n<ng-template #defaultTemplate>\r\n <ng-container *ngIf=\"visible\">\r\n <div fd-bar barDesign=\"footer\" [inPage]=\"true\" *ngIf=\"buttons.length || workflowButtons?.length\">\r\n <div fd-bar-left *ngIf=\"canSend && false\">\r\n <fd-bar-element class=\"forward\">\r\n <fd-popover\r\n [focusTrapped]=\"true\"\r\n [focusAutoCapture]=\"true\"\r\n [closeOnOutsideClick]=\"false\"\r\n [scrollStrategy]=\"repositionScrollStrategy\"\r\n #forwardPopover\r\n >\r\n <fd-popover-control class=\"forward\">\r\n <button fd-button [fdType]=\"'standard'\" [label]=\"'Forward' | bbbTranslate\"></button>\r\n </fd-popover-control>\r\n <fd-popover-body style=\"min-width: 30vw; max-width: 30vw; min-height: 30vh\">\r\n <div fd-popover-body-header>\r\n <div fd-bar barDesign=\"header\" [cozy]=\"true\">\r\n <div fd-bar-right>\r\n <fd-bar-element\r\n ><button\r\n fd-button\r\n (click)=\"forwardPopover.close()\"\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"'decline'\"\r\n ></button>\r\n </fd-bar-element>\r\n <div fd-bar-left>\r\n <fd-bar-element>\u0627\u0631\u062C\u0627\u0639 \u0641\u0631\u0645 \u0628\u0647 \u0634\u062E\u0635 \u062F\u06CC\u06AF\u0631 </fd-bar-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <bnrc-form-new\r\n class=\"form-erja\"\r\n [settings]=\"{\r\n MetaTypeDef: { Id: '', $Caption: '' },\r\n MetaView: { Id: '', $Caption: '' },\r\n DisableGenerateId: true\r\n }\"\r\n ></bnrc-form-new>\r\n <div fd-popover-body-footer>\r\n <div fd-bar barDesign=\"footer\" [cozy]=\"true\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n [label]=\"'Send' | bbbTranslate\"\r\n fdType=\"emphasized\"\r\n ></fd-button-bar>\r\n <fd-button-bar\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"forwardPopover.close()\"\r\n ></fd-button-bar>\r\n </div>\r\n </div>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <ng-container *ngIf=\"workflowButtonsComboMode && workflowButtons.length > 0; else buttonsMode\">\r\n <fd-split-button\r\n [fixedWidth]=\"false\"\r\n fdType=\"emphasized\"\r\n [mainAction]=\"{ mainActionTitle: 'Select' | bbbTranslate }\"\r\n >\r\n <fd-menu>\r\n <li\r\n fd-menu-item\r\n *ngFor=\"let btn of workflowButtons\"\r\n (click)=\"onWorkflowButtonSelected(btn)\"\r\n >\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btn.text }}</span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button>\r\n <fd-button-bar\r\n [fdType]=\"'positive'\"\r\n [label]=\"'Send' | bbbTranslate\"\r\n [disabled]=\"!selectedWorkflowButton\"\r\n [glyph]=\"'accept'\"\r\n (click)=\"onAcceptWorkflow()\"\r\n ></fd-button-bar>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of buttons; let i = index\">\r\n <fd-button-bar\r\n *ngIf=\"btn !== '-'\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolClick(btn)\"\r\n ></fd-button-bar>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"isMobile\" style=\"background-color: transparent; height: 4rem\"></div>\r\n</ng-template>\r\n<ng-template #buttonsMode>\r\n <ng-container *ngFor=\"let btn of workflowButtons; let i = index\">\r\n <fd-button-bar\r\n *ngIf=\"btn !== '-'\"\r\n [attr.workflowButton]=\"true\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolClick(btn)\"\r\n ></fd-button-bar>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [":host[rtl=true] fd-split-button{margin-left:.5rem}:host[rtl=false] fd-split-button{margin-right:.5rem}.forward button{min-width:6rem}.form-erja{padding-top:1rem;padding-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FormNewComponent, selector: "bnrc-form-new", inputs: ["settings"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i4.DeprecatedBarContentDensityDirective, selector: "[fd-bar][cozy]" }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i6.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i7.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i7.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutActionsComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'bsu-layout-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngTemplateOutlet=\"simple ? buttonsMode : defaultTemplate\"> </ng-container>\r\n<ng-template #defaultTemplate>\r\n <ng-container *ngIf=\"visible\">\r\n <div fd-bar barDesign=\"footer\" [inPage]=\"true\" *ngIf=\"buttons.length || workflowButtons?.length\">\r\n <div fd-bar-left *ngIf=\"canSend && false\">\r\n <fd-bar-element class=\"forward\">\r\n <fd-popover\r\n [focusTrapped]=\"true\"\r\n [focusAutoCapture]=\"true\"\r\n [closeOnOutsideClick]=\"false\"\r\n [scrollStrategy]=\"repositionScrollStrategy\"\r\n #forwardPopover\r\n >\r\n <fd-popover-control class=\"forward\">\r\n <button fd-button [fdType]=\"'standard'\" [label]=\"'Forward' | bbbTranslate\"></button>\r\n </fd-popover-control>\r\n <fd-popover-body style=\"min-width: 30vw; max-width: 30vw; min-height: 30vh\">\r\n <div fd-popover-body-header>\r\n <div fd-bar barDesign=\"header\" [cozy]=\"true\">\r\n <div fd-bar-right>\r\n <fd-bar-element\r\n ><button\r\n fd-button\r\n (click)=\"forwardPopover.close()\"\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"'decline'\"\r\n ></button>\r\n </fd-bar-element>\r\n <div fd-bar-left>\r\n <fd-bar-element>\u0627\u0631\u062C\u0627\u0639 \u0641\u0631\u0645 \u0628\u0647 \u0634\u062E\u0635 \u062F\u06CC\u06AF\u0631 </fd-bar-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <bnrc-form-new\r\n class=\"form-erja\"\r\n [settings]=\"{\r\n MetaTypeDef: { Id: '', $Caption: '' },\r\n MetaView: { Id: '', $Caption: '' },\r\n DisableGenerateId: true\r\n }\"\r\n ></bnrc-form-new>\r\n <div fd-popover-body-footer>\r\n <div fd-bar barDesign=\"footer\" [cozy]=\"true\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n [label]=\"'Send' | bbbTranslate\"\r\n fdType=\"emphasized\"\r\n ></fd-button-bar>\r\n <fd-button-bar\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"forwardPopover.close()\"\r\n ></fd-button-bar>\r\n </div>\r\n </div>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <ng-container *ngIf=\"workflowButtonsComboMode && workflowButtons.length > 0; else buttonsMode\">\r\n <fd-split-button\r\n [fixedWidth]=\"false\"\r\n fdType=\"emphasized\"\r\n [mainAction]=\"{ mainActionTitle: 'Select' | bbbTranslate }\"\r\n >\r\n <fd-menu>\r\n <li\r\n fd-menu-item\r\n *ngFor=\"let btn of workflowButtons\"\r\n (click)=\"onWorkflowButtonSelected(btn)\"\r\n >\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btn.text }}</span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n </fd-split-button>\r\n <fd-button-bar\r\n [fdType]=\"'positive'\"\r\n [label]=\"'Send' | bbbTranslate\"\r\n [disabled]=\"!selectedWorkflowButton\"\r\n [glyph]=\"'accept'\"\r\n (click)=\"onAcceptWorkflow()\"\r\n ></fd-button-bar>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of buttons; let i = index\">\r\n <fd-button-bar\r\n *ngIf=\"btn !== '-'\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolClick(btn)\"\r\n ></fd-button-bar>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"isMobile\" style=\"background-color: transparent; height: 4rem\"></div>\r\n</ng-template>\r\n<ng-template #buttonsMode>\r\n <ng-container *ngFor=\"let btn of workflowButtons; let i = index\">\r\n <fd-button-bar\r\n *ngIf=\"btn !== '-'\"\r\n [attr.workflowButton]=\"true\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolClick(btn)\"\r\n ></fd-button-bar>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [":host[rtl=true] fd-split-button{margin-left:.5rem}:host[rtl=false] fd-split-button{margin-right:.5rem}.forward button{min-width:6rem}.form-erja{padding-top:1rem;padding-bottom:1rem}\n"] }]
54
+ }], ctorParameters: function () { return [{ type: i1.Overlay }]; }, propDecorators: { workflowButtons: [{
55
+ type: Input
56
+ }], workflowButtonsComboMode: [{
57
+ type: Input
58
+ }], canSend: [{
59
+ type: Input
60
+ }], simple: [{
61
+ type: Input
62
+ }], workflowChoiceSelect: [{
63
+ type: Output
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWFjdGlvbnMvbGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWFjdGlvbnMvbGF5b3V0LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQU9uRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsd0JBQXdCO0lBWWhFLFlBQXNCLFFBQWlCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQVA3Qix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSXpELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7SUFHbkIsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1lBQ3RFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDN0Msd0NBQXdDO1FBQ3hDLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQ3ZCLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO2lCQUN6QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUNuQixVQUFVLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQzthQUNwQztTQUNKO0lBQ0wsQ0FBQztJQUNELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELHdCQUF3QixDQUFDLGNBQWM7UUFDbkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDOzttSEExQ1Esc0JBQXNCO3VHQUF0QixzQkFBc0Isd1JDVm5DLHN6TUFtSEE7MkZEekdhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs4RkFHdEMsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1Ub29sYmFyQmFzZUNvbXBvbmVudCwgZ2V0RGV2aWNlSXNNb2JpbGUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1sYXlvdXQtYWN0aW9ucycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExheW91dEFjdGlvbnNDb21wb25lbnQgZXh0ZW5kcyBGb3JtVG9vbGJhckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHdvcmtmbG93QnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNhblNlbmQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2ltcGxlOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSB3b3JrZmxvd0Nob2ljZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIHNlbGVjdGVkV29ya2Zsb3dCdXR0b246IGFueTtcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcbiAgICByZXBvc2l0aW9uU2Nyb2xsU3RyYXRlZ3k6IFNjcm9sbFN0cmF0ZWd5O1xuICAgIGF1dG9DbG9zZSA9IGZhbHNlO1xuXG4gICAgc2Nyb2xsVGhyb3R0bGUgPSAwO1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfb3ZlcmxheTogT3ZlcmxheSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uU2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7XG4gICAgICAgICAgICBhdXRvQ2xvc2U6IHRoaXMuYXV0b0Nsb3NlLFxuICAgICAgICAgICAgc2Nyb2xsVGhyb3R0bGU6IHRoaXMuc2Nyb2xsVGhyb3R0bGVcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICBjb25zdCB3b3JrZmxvd0J1dHRvbnMgPSB0aGlzLndvcmtmbG93QnV0dG9ucztcbiAgICAgICAgLy8gdGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgPSB0cnVlO1xuICAgICAgICBpZiAod29ya2Zsb3dCdXR0b25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBjLmRlc2lnbiA9ICdzdGFuZGFyZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBsYXN0QnV0dG9uID0gd29ya2Zsb3dCdXR0b25zW3dvcmtmbG93QnV0dG9ucy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChsYXN0QnV0dG9uLkNob2ljZSkge1xuICAgICAgICAgICAgICAgIGxhc3RCdXR0b24uZGVzaWduID0gJ2VtcGhhc2l6ZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uQWNjZXB0V29ya2Zsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub29sQ2xpY2sodGhpcy5zZWxlY3RlZFdvcmtmbG93QnV0dG9uKTtcbiAgICB9XG4gICAgb25Xb3JrZmxvd0J1dHRvblNlbGVjdGVkKHdvcmtmbG93QnV0dG9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvd0J1dHRvbiA9IHdvcmtmbG93QnV0dG9uO1xuICAgICAgICB0aGlzLndvcmtmbG93Q2hvaWNlU2VsZWN0LmVtaXQod29ya2Zsb3dCdXR0b24uQ2hvaWNlKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2ltcGxlID8gYnV0dG9uc01vZGUgOiBkZWZhdWx0VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpc2libGVcIj5cclxuICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIiBbaW5QYWdlXT1cInRydWVcIiAqbmdJZj1cImJ1dHRvbnMubGVuZ3RoIHx8IHdvcmtmbG93QnV0dG9ucz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQgKm5nSWY9XCJjYW5TZW5kICYmIGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQgY2xhc3M9XCJmb3J3YXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Njcm9sbFN0cmF0ZWd5XT1cInJlcG9zaXRpb25TY3JvbGxTdHJhdGVneVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNmb3J3YXJkUG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbCBjbGFzcz1cImZvcndhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3N0YW5kYXJkJ1wiIFtsYWJlbF09XCInRm9yd2FyZCcgfCBiYmJUcmFuc2xhdGVcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgc3R5bGU9XCJtaW4td2lkdGg6IDMwdnc7IG1heC13aWR0aDogMzB2dzsgbWluLWhlaWdodDogMzB2aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImhlYWRlclwiIFtjb3p5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZvcndhcmRQb3BvdmVyLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ2RlY2xpbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+2KfYsdis2KfYuSDZgdix2YUg2KjZhyDYtNiu2LUg2K/bjNqv2LEgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJucmMtZm9ybS1uZXdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZXJqYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NldHRpbmdzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0YVR5cGVEZWY6IHsgSWQ6ICcnLCAkQ2FwdGlvbjogJycgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0YVZpZXc6IHsgSWQ6ICcnLCAkQ2FwdGlvbjogJycgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzYWJsZUdlbmVyYXRlSWQ6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2JucmMtZm9ybS1uZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgYmFyRGVzaWduPVwiZm9vdGVyXCIgW2NvenldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZW5kJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZvcndhcmRQb3BvdmVyLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSAmJiB3b3JrZmxvd0J1dHRvbnMubGVuZ3RoID4gMDsgZWxzZSBidXR0b25zTW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1zcGxpdC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpeGVkV2lkdGhdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW21haW5BY3Rpb25dPVwieyBtYWluQWN0aW9uVGl0bGU6ICdTZWxlY3QnIHwgYmJiVHJhbnNsYXRlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIHdvcmtmbG93QnV0dG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uV29ya2Zsb3dCdXR0b25TZWxlY3RlZChidG4pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgYnRuLnRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1zcGxpdC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIncG9zaXRpdmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZW5kJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRXb3JrZmxvd0J1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCInYWNjZXB0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjY2VwdFdvcmtmbG93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYnV0dG9uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYnRuICE9PSAnLSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImJ0bi5kZXNpZ24gPyBidG4uZGVzaWduIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJidG4udGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJidG4ubmV3SWNvbiA/IGJ0bi5uZXdJY29uIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub29sQ2xpY2soYnRuKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgaGVpZ2h0OiA0cmVtXCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc01vZGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2Ygd29ya2Zsb3dCdXR0b25zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgKm5nSWY9XCJidG4gIT09ICctJ1wiXHJcbiAgICAgICAgICAgIFthdHRyLndvcmtmbG93QnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZmRUeXBlXT1cImJ0bi5kZXNpZ24gPyBidG4uZGVzaWduIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4udGV4dFwiXHJcbiAgICAgICAgICAgIFtnbHlwaF09XCJidG4ubmV3SWNvbiA/IGJ0bi5uZXdJY29uIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ub29sQ2xpY2soYnRuKVwiXHJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,214 @@
1
+ import { Component, ElementRef, HostBinding, Input, ViewChild, ChangeDetectionStrategy } from '@angular/core';
2
+ import { BarsaApi, LayoutItemBaseComponent, LayoutService, getDeviceIsMobile } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "barsa-novin-ray-core";
5
+ import * as i2 from "@fundamental-ngx/core";
6
+ import * as i3 from "@angular/platform-browser";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "../ly-label/ly-label.component";
9
+ export class LayoutControlComponent extends LayoutItemBaseComponent {
10
+ constructor(formPanelService, el, _contentDensityService, domSanitizer, _cdr, _ngZone, _renderer2, _bbbTranslate) {
11
+ super(formPanelService);
12
+ this.formPanelService = formPanelService;
13
+ this.el = el;
14
+ this.domSanitizer = domSanitizer;
15
+ this._cdr = _cdr;
16
+ this._ngZone = _ngZone;
17
+ this._renderer2 = _renderer2;
18
+ this._bbbTranslate = _bbbTranslate;
19
+ this.layoutControlClass = true;
20
+ this.isContainer = true;
21
+ this.minHeight = '2.25rem';
22
+ this.hide = true;
23
+ this.emptyText = this.domSanitizer.bypassSecurityTrustHtml('&#8203;');
24
+ /* eslint-disable */
25
+ this.RefreshLabel = () => { };
26
+ /* eslint-disable */
27
+ this.SetVisible = (visible, refresh) => {
28
+ this._ngZone.run(() => {
29
+ this._setHide(!visible);
30
+ this._cdr.detectChanges();
31
+ });
32
+ };
33
+ if (this.contentDensity === 'compact') {
34
+ this.minHeight = '2rem';
35
+ }
36
+ }
37
+ ngOnInit() {
38
+ super.ngOnInit();
39
+ if (this.inlineEdit) {
40
+ this.minHeight = 'auto';
41
+ }
42
+ this.layoutControlWidth = this.el.nativeElement.clientWidth;
43
+ const config = this.config;
44
+ if (config.FieldUi.originalXtype === 'Ui.UlvMainUi') {
45
+ this.isUlv = true;
46
+ }
47
+ this.attrCaption = config.Caption.replace(':', '');
48
+ this.attrControlId = config.ControlId;
49
+ this.isButton = config.FieldUi.originalXtype === 'Ui.Button';
50
+ let labelCaption = config.Caption;
51
+ if (config.FieldUi.Setting?.IsMandatory) {
52
+ if (labelCaption.indexOf('*') < 0) {
53
+ labelCaption = labelCaption + ' *';
54
+ }
55
+ }
56
+ else {
57
+ labelCaption = labelCaption.replace('*', '');
58
+ }
59
+ this.isCheckbox = config.FieldUi.originalXtype === 'Ui.CheckBox';
60
+ this.isSinglePicture = config.FieldUi.originalXtype === 'Ui.SinglePicture';
61
+ this.labelCaption = this.domSanitizer.bypassSecurityTrustHtml(this._bbbTranslate.transform(labelCaption));
62
+ this.labelVisible = config.TextVisible && this.showLabel !== false;
63
+ this.isRowDirection = config.TextLocation === 'Right' || config.TextLocation === 'Default';
64
+ this.isRowReverseDirection = config.TextLocation === 'Left';
65
+ this.isColumnDirection = config.TextLocation === 'Top' || this.isSearchPanel;
66
+ this.isColumnReverseDirection = config.TextLocation === 'Bottom';
67
+ config.FieldUi.LayoutControl = this;
68
+ this._setHide(config.FieldUi.Setting.IsVisible === false ? true : false);
69
+ this.isMandatory = config.FieldUi.Setting?.IsMandatory;
70
+ this.fieldIcon = config.FieldUi.Setting.FieldIcon;
71
+ this.originalXtype = config.FieldUi.originalXtype;
72
+ this.textVisible = config.TextVisible;
73
+ if (config.FieldUi.originalXtype === 'Ui.SearchCommandInfoUi') {
74
+ this.labelCaption = '&#8203;';
75
+ this.labelVisible = true;
76
+ this.textVisible = true;
77
+ }
78
+ this.prepareMinAndMaxSize();
79
+ }
80
+ _resizeUlvByDevice(device) {
81
+ if (!this.isUlv) {
82
+ return;
83
+ }
84
+ let deviceHeight = 'DesktopHeight';
85
+ switch (device) {
86
+ case 's':
87
+ deviceHeight = 'MobileHeight';
88
+ break;
89
+ case 'm':
90
+ deviceHeight = 'TabletHeight';
91
+ break;
92
+ }
93
+ this.height = BarsaApi.Common.Util.TryGetValue(this.config, 'FieldUi.Setting.ClassNames.CustomUi.Parameters.' + deviceHeight, 'auto');
94
+ this._cdr.detectChanges();
95
+ }
96
+ prepareMinAndMaxSize() {
97
+ const config = this.config;
98
+ const layoutInfo = config;
99
+ const isButton = this.isButton;
100
+ const isSinglePicture = this.isSinglePicture;
101
+ const isCheckbox = this.isCheckbox;
102
+ if (!this.inlineEdit && layoutInfo && (isButton || isCheckbox || isSinglePicture)) {
103
+ this.attrMinWidth = config.Bounds.width;
104
+ let extraVal = 0;
105
+ if (((isButton || isCheckbox) && layoutInfo.FieldUi.Setting?.FieldIcon) ||
106
+ layoutInfo.FieldUi.Setting.JsonExtraProp?.Glyph) {
107
+ extraVal = 18;
108
+ }
109
+ const { MaxSize, MinSize } = layoutInfo;
110
+ if (MaxSize?.width > 0 && !this.isCheckbox) {
111
+ this.maxWidth = MaxSize.width + extraVal + 'px';
112
+ }
113
+ if (MinSize?.width > 0) {
114
+ this.minWidth = MinSize.width + extraVal + 'px';
115
+ }
116
+ }
117
+ if (this.isSearchPanel) {
118
+ this.attrMinWidth = this.maxLabelWidth + 200;
119
+ this.maxWidth = '320px';
120
+ }
121
+ if (getDeviceIsMobile()) {
122
+ this.minWidth = null;
123
+ }
124
+ }
125
+ _setHide(hide) {
126
+ hide = this.config.FieldUi.Setting.HideSearchCommandInfoUi === true ? true : hide; // hide default buttons of search panel
127
+ this.hide = hide;
128
+ if (hide) {
129
+ this._renderer2.addClass(this.el.nativeElement, 'hide-form-item');
130
+ }
131
+ else {
132
+ this._renderer2.removeClass(this.el.nativeElement, 'hide-form-item');
133
+ }
134
+ }
135
+ }
136
+ LayoutControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutControlComponent, deps: [{ token: i1.FormPanelService }, { token: i0.ElementRef }, { token: i2.ContentDensityService }, { token: i3.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
137
+ LayoutControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isChekbox": "this.isCheckbox", "attr.isButton": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption" } }, providers: [LayoutService], viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, static: true }, { propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!hide\">\n <ng-container *ngIf=\"labelVisible && !isCheckbox\">\n <bsu-ly-label\n [attr.labelWidth]=\"labelWidth\"\n [attr.canvasWidth]=\"canvasWidth\"\n [attrRtl]\n [class.no-padding]=\"config.Padding[0] === 0\"\n [config]=\"config\"\n [caption]=\"labelCaption\"\n [originalWidth]=\"labelWidth\"\n [style.min-width]=\"\n isCheckbox ? 'auto' : isColumnDirection || isColumnReverseDirection ? '100%' : maxLabelWidth + 'px'\n \"\n [style.width]=\"\n isCheckbox ? 'auto' : isColumnDirection || isColumnReverseDirection ? '100%' : maxLabelWidth + 'px'\n \"\n [isMandatory]=\"isMandatory\"\n [fieldIcon]=\"fieldIcon\"\n [originalXtype]=\"originalXtype\"\n [textVisible]=\"textVisible\"\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\n ></bsu-ly-label>\n </ng-container>\n <label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\n <bnrc-field-ui\n [attr.xtype]=\"config.FieldUi.originalXtype\"\n [attr.fieldWidth]=\"layoutControlWidth\"\n [attr.isCheckbox]=\"isCheckbox\"\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\n [class.no-padding]=\"config.Padding[0] === 0\"\n [customField]=\"config.FieldUi\"\n [layoutInfo]=\"config\"\n [inlineEdit]=\"inlineEdit\"\n [focusControl]=\"focusControl\"\n [isSearchPanel]=\"isSearchPanel\"\n [style.height]=\"isUlv ? '100%' : 'auto'\"\n [attr.isulv]=\"isUlv\"\n ></bnrc-field-ui>\n</ng-container>\n", styles: [":host{width:100%;display:flex}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bnrc-field-ui{padding:0 5px;margin:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}bnrc-field-ui{height:auto}}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "layoutInfo", "inlineEdit", "focusControl"] }, { kind: "directive", type: i1.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: i5.LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "caption", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "textVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutControlComponent, decorators: [{
139
+ type: Component,
140
+ args: [{ selector: 'bsu-layout-control', providers: [LayoutService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!hide\">\n <ng-container *ngIf=\"labelVisible && !isCheckbox\">\n <bsu-ly-label\n [attr.labelWidth]=\"labelWidth\"\n [attr.canvasWidth]=\"canvasWidth\"\n [attrRtl]\n [class.no-padding]=\"config.Padding[0] === 0\"\n [config]=\"config\"\n [caption]=\"labelCaption\"\n [originalWidth]=\"labelWidth\"\n [style.min-width]=\"\n isCheckbox ? 'auto' : isColumnDirection || isColumnReverseDirection ? '100%' : maxLabelWidth + 'px'\n \"\n [style.width]=\"\n isCheckbox ? 'auto' : isColumnDirection || isColumnReverseDirection ? '100%' : maxLabelWidth + 'px'\n \"\n [isMandatory]=\"isMandatory\"\n [fieldIcon]=\"fieldIcon\"\n [originalXtype]=\"originalXtype\"\n [textVisible]=\"textVisible\"\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\n ></bsu-ly-label>\n </ng-container>\n <label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\n <bnrc-field-ui\n [attr.xtype]=\"config.FieldUi.originalXtype\"\n [attr.fieldWidth]=\"layoutControlWidth\"\n [attr.isCheckbox]=\"isCheckbox\"\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\n [class.no-padding]=\"config.Padding[0] === 0\"\n [customField]=\"config.FieldUi\"\n [layoutInfo]=\"config\"\n [inlineEdit]=\"inlineEdit\"\n [focusControl]=\"focusControl\"\n [isSearchPanel]=\"isSearchPanel\"\n [style.height]=\"isUlv ? '100%' : 'auto'\"\n [attr.isulv]=\"isUlv\"\n ></bnrc-field-ui>\n</ng-container>\n", styles: [":host{width:100%;display:flex}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bnrc-field-ui{padding:0 5px;margin:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}bnrc-field-ui{height:auto}}\n"] }]
141
+ }], ctorParameters: function () { return [{ type: i1.FormPanelService }, { type: i0.ElementRef }, { type: i2.ContentDensityService }, { type: i3.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.BbbTranslatePipe }]; }, propDecorators: { canvasRef: [{
142
+ type: ViewChild,
143
+ args: ['canvas', { static: true }]
144
+ }], tempLabelRef: [{
145
+ type: ViewChild,
146
+ args: ['tempLabelRef', { read: ElementRef, static: true }]
147
+ }], layoutControlClass: [{
148
+ type: HostBinding,
149
+ args: ['class.layout-control']
150
+ }], isRowDirection: [{
151
+ type: HostBinding,
152
+ args: ['class.row-direction']
153
+ }], isRowReverseDirection: [{
154
+ type: HostBinding,
155
+ args: ['class.row-reverse-direction']
156
+ }], isColumnDirection: [{
157
+ type: HostBinding,
158
+ args: ['class.column-direction']
159
+ }], isColumnReverseDirection: [{
160
+ type: HostBinding,
161
+ args: ['class.column-reverse-direction']
162
+ }], isContainer: [{
163
+ type: HostBinding,
164
+ args: ['class.container-field']
165
+ }], maxWidth: [{
166
+ type: HostBinding,
167
+ args: ['style.max-width']
168
+ }], minWidth: [{
169
+ type: HostBinding,
170
+ args: ['style.min-width']
171
+ }], minHeight: [{
172
+ type: HostBinding,
173
+ args: ['style.min-height']
174
+ }], height: [{
175
+ type: HostBinding,
176
+ args: ['style.height']
177
+ }], isCheckbox: [{
178
+ type: HostBinding,
179
+ args: ['attr.isChekbox']
180
+ }], isButton: [{
181
+ type: HostBinding,
182
+ args: ['attr.isButton']
183
+ }], isSinglePicture: [{
184
+ type: HostBinding,
185
+ args: ['attr.isButton']
186
+ }], attrMinWidth: [{
187
+ type: HostBinding,
188
+ args: ['attr.minWidth']
189
+ }], attrControlId: [{
190
+ type: HostBinding,
191
+ args: ['attr.controlId']
192
+ }], attrCaption: [{
193
+ type: HostBinding,
194
+ args: ['attr.caption']
195
+ }], inlineEdit: [{
196
+ type: Input
197
+ }], caption: [{
198
+ type: Input
199
+ }], focusControl: [{
200
+ type: Input
201
+ }], showLabel: [{
202
+ type: Input
203
+ }], maxLabelWidth: [{
204
+ type: Input
205
+ }], hasHorizontalText: [{
206
+ type: Input
207
+ }], contentDensity: [{
208
+ type: Input
209
+ }], RefreshLabel: [{
210
+ type: Input
211
+ }], SetVisible: [{
212
+ type: Input
213
+ }] } });
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBSzFCLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixpQkFBaUIsRUFFcEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVM5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBOEMvRCxZQUNjLGdCQUFrQyxFQUNyQyxFQUFjLEVBQ3JCLHNCQUE2QyxFQUNyQyxZQUEwQixFQUMxQixJQUF1QixFQUN2QixPQUFlLEVBQ2YsVUFBcUIsRUFDckIsYUFBK0I7UUFFdkMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFUZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFYixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFoRE4sdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBS3pCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBSXhCLGNBQVMsR0FBRyxTQUFTLENBQUM7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RyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhcnNhQXBpLFxuICAgIExheW91dEl0ZW1CYXNlQ29tcG9uZW50LFxuICAgIExheW91dFNlcnZpY2UsXG4gICAgRm9ybVBhbmVsU2VydmljZSxcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBCYmJUcmFuc2xhdGVQaXBlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtbGF5b3V0LWNvbnRyb2wnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb250cm9sQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0SXRlbUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2NhbnZhcycsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY2FudmFzUmVmOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3RlbXBMYWJlbFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgdGVtcExhYmVsUmVmOiBFbGVtZW50UmVmO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYXlvdXQtY29udHJvbCcpIGxheW91dENvbnRyb2xDbGFzcyA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb3ctZGlyZWN0aW9uJykgaXNSb3dEaXJlY3Rpb247XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb3ctcmV2ZXJzZS1kaXJlY3Rpb24nKSBpc1Jvd1JldmVyc2VEaXJlY3Rpb247XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2x1bW4tZGlyZWN0aW9uJykgaXNDb2x1bW5EaXJlY3Rpb247XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2x1bW4tcmV2ZXJzZS1kaXJlY3Rpb24nKSBpc0NvbHVtblJldmVyc2VEaXJlY3Rpb247XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250YWluZXItZmllbGQnKSBpc0NvbnRhaW5lciA9IHRydWU7XG4gICAgLy8gQEhvc3RCaW5kaW5nKCdzdHlsZS52aXNpYmlsaXR5JykgdmlzaWJpbGl0eTogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJykgbWF4V2lkdGg7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKSBtaW5XaWR0aDtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi1oZWlnaHQnKSBtaW5IZWlnaHQgPSAnMi4yNXJlbSc7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKSBoZWlnaHQ7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzQ2hla2JveCcpIGlzQ2hlY2tib3g7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzQnV0dG9uJykgaXNCdXR0b247XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzQnV0dG9uJykgaXNTaW5nbGVQaWN0dXJlO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5taW5XaWR0aCcpIGF0dHJNaW5XaWR0aDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY29udHJvbElkJykgYXR0ckNvbnRyb2xJZDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY2FwdGlvbicpIGF0dHJDYXB0aW9uO1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2FwdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZvY3VzQ29udHJvbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWF4TGFiZWxXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGhhc0hvcml6b250YWxUZXh0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcbiAgICBoaWRlID0gdHJ1ZTtcbiAgICBsYXlvdXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICB3cmFwQ29udGVudDogYm9vbGVhbjtcbiAgICBsYWJlbFdpZHRoOiBudW1iZXI7XG4gICAgbGFiZWxDYXB0aW9uOiBzdHJpbmcgfCBTYWZlSHRtbDtcbiAgICBsYWJlbFZpc2libGU/OiBib29sZWFuO1xuICAgIGxheW91dFNldFNpemU6IGJvb2xlYW47XG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBpc1VsdjogYm9vbGVhbjtcbiAgICBjYW52YXNXaWR0aDogbnVtYmVyO1xuICAgIGlzTWFuZGF0b3J5OiBib29sZWFuO1xuICAgIGZpZWxkSWNvbjogc3RyaW5nO1xuICAgIG9yaWdpbmFsWHR5cGU6IHN0cmluZztcbiAgICB0ZXh0VmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBlbXB0eVRleHQgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCgnJiM4MjAzOycpO1xuICAgIGxheW91dENvbnRyb2xXaWR0aDogbnVtYmVyO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfYmJiVHJhbnNsYXRlOiBCYmJUcmFuc2xhdGVQaXBlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1QYW5lbFNlcnZpY2UpO1xuICAgICAgICBpZiAodGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnKSB7XG4gICAgICAgICAgICB0aGlzLm1pbkhlaWdodCA9ICcycmVtJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5pbmxpbmVFZGl0KSB7XG4gICAgICAgICAgICB0aGlzLm1pbkhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxheW91dENvbnRyb2xXaWR0aCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgaWYgKGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5VbHZNYWluVWknKSB7XG4gICAgICAgICAgICB0aGlzLmlzVWx2ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF0dHJDYXB0aW9uID0gY29uZmlnLkNhcHRpb24ucmVwbGFjZSgnOicsICcnKTtcbiAgICAgICAgdGhpcy5hdHRyQ29udHJvbElkID0gY29uZmlnLkNvbnRyb2xJZDtcbiAgICAgICAgdGhpcy5pc0J1dHRvbiA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5CdXR0b24nO1xuICAgICAgICBsZXQgbGFiZWxDYXB0aW9uID0gY29uZmlnLkNhcHRpb247XG4gICAgICAgIGlmIChjb25maWcuRmllbGRVaS5TZXR0aW5nPy5Jc01hbmRhdG9yeSkge1xuICAgICAgICAgICAgaWYgKGxhYmVsQ2FwdGlvbi5pbmRleE9mKCcqJykgPCAwKSB7XG4gICAgICAgICAgICAgICAgbGFiZWxDYXB0aW9uID0gbGFiZWxDYXB0aW9uICsgJyAqJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsQ2FwdGlvbiA9IGxhYmVsQ2FwdGlvbi5yZXBsYWNlKCcqJywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0NoZWNrYm94ID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLkNoZWNrQm94JztcbiAgICAgICAgdGhpcy5pc1NpbmdsZVBpY3R1cmUgPSBjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuU2luZ2xlUGljdHVyZSc7XG4gICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybShsYWJlbENhcHRpb24pKTtcbiAgICAgICAgdGhpcy5sYWJlbFZpc2libGUgPSBjb25maWcuVGV4dFZpc2libGUgJiYgdGhpcy5zaG93TGFiZWwgIT09IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuaXNSb3dEaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnUmlnaHQnIHx8IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdEZWZhdWx0JztcbiAgICAgICAgdGhpcy5pc1Jvd1JldmVyc2VEaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnTGVmdCc7XG4gICAgICAgIHRoaXMuaXNDb2x1bW5EaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnVG9wJyB8fCB0aGlzLmlzU2VhcmNoUGFuZWw7XG4gICAgICAgIHRoaXMuaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0JvdHRvbSc7XG5cbiAgICAgICAgY29uZmlnLkZpZWxkVWkuTGF5b3V0Q29udHJvbCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5fc2V0SGlkZShjb25maWcuRmllbGRVaS5TZXR0aW5nLklzVmlzaWJsZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2UpO1xuICAgICAgICB0aGlzLmlzTWFuZGF0b3J5ID0gY29uZmlnLkZpZWxkVWkuU2V0dGluZz8uSXNNYW5kYXRvcnk7XG4gICAgICAgIHRoaXMuZmllbGRJY29uID0gY29uZmlnLkZpZWxkVWkuU2V0dGluZy5GaWVsZEljb247XG4gICAgICAgIHRoaXMub3JpZ2luYWxYdHlwZSA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGU7XG4gICAgICAgIHRoaXMudGV4dFZpc2libGUgPSBjb25maWcuVGV4dFZpc2libGU7XG4gICAgICAgIGlmIChjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuU2VhcmNoQ29tbWFuZEluZm9VaScpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gJyYjODIwMzsnO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50ZXh0VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmVwYXJlTWluQW5kTWF4U2l6ZSgpO1xuICAgIH1cbiAgICBfcmVzaXplVWx2QnlEZXZpY2UoZGV2aWNlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1Vsdikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBkZXZpY2VIZWlnaHQgPSAnRGVza3RvcEhlaWdodCc7XG4gICAgICAgIHN3aXRjaCAoZGV2aWNlKSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICBkZXZpY2VIZWlnaHQgPSAnTW9iaWxlSGVpZ2h0JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIGRldmljZUhlaWdodCA9ICdUYWJsZXRIZWlnaHQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgICdGaWVsZFVpLlNldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLicgKyBkZXZpY2VIZWlnaHQsXG4gICAgICAgICAgICAnYXV0bydcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJlcGFyZU1pbkFuZE1heFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb25zdCBsYXlvdXRJbmZvID0gY29uZmlnO1xuICAgICAgICBjb25zdCBpc0J1dHRvbiA9IHRoaXMuaXNCdXR0b247XG4gICAgICAgIGNvbnN0IGlzU2luZ2xlUGljdHVyZSA9IHRoaXMuaXNTaW5nbGVQaWN0dXJlO1xuICAgICAgICBjb25zdCBpc0NoZWNrYm94ID0gdGhpcy5pc0NoZWNrYm94O1xuICAgICAgICBpZiAoIXRoaXMuaW5saW5lRWRpdCAmJiBsYXlvdXRJbmZvICYmIChpc0J1dHRvbiB8fCBpc0NoZWNrYm94IHx8IGlzU2luZ2xlUGljdHVyZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0ck1pbldpZHRoID0gY29uZmlnLkJvdW5kcy53aWR0aDtcbiAgICAgICAgICAgIGxldCBleHRyYVZhbCA9IDA7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKChpc0J1dHRvbiB8fCBpc0NoZWNrYm94KSAmJiBsYXlvdXRJbmZvLkZpZWxkVWkuU2V0dGluZz8uRmllbGRJY29uKSB8fFxuICAgICAgICAgICAgICAgIGxheW91dEluZm8uRmllbGRVaS5TZXR0aW5nLkpzb25FeHRyYVByb3A/LkdseXBoXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBleHRyYVZhbCA9IDE4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBNYXhTaXplLCBNaW5TaXplIH0gPSBsYXlvdXRJbmZvO1xuICAgICAgICAgICAgaWYgKE1heFNpemU/LndpZHRoID4gMCAmJiAhdGhpcy5pc0NoZWNrYm94KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IE1heFNpemUud2lkdGggKyBleHRyYVZhbCArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoTWluU2l6ZT8ud2lkdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9IE1pblNpemUud2lkdGggKyBleHRyYVZhbCArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2hQYW5lbCkge1xuICAgICAgICAgICAgdGhpcy5hdHRyTWluV2lkdGggPSB0aGlzLm1heExhYmVsV2lkdGggKyAyMDA7XG5cbiAgICAgICAgICAgIHRoaXMubWF4V2lkdGggPSAnMzIwcHgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChnZXREZXZpY2VJc01vYmlsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIFJlZnJlc2hMYWJlbCA9ICgpID0+IHt9O1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgU2V0VmlzaWJsZSA9ICh2aXNpYmxlLCByZWZyZXNoKSA9PiB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0SGlkZSghdmlzaWJsZSk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHByaXZhdGUgX3NldEhpZGUoaGlkZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBoaWRlID0gdGhpcy5jb25maWcuRmllbGRVaS5TZXR0aW5nLkhpZGVTZWFyY2hDb21tYW5kSW5mb1VpID09PSB0cnVlID8gdHJ1ZSA6IGhpZGU7IC8vIGhpZGUgZGVmYXVsdCBidXR0b25zIG9mIHNlYXJjaCBwYW5lbFxuICAgICAgICB0aGlzLmhpZGUgPSBoaWRlO1xuICAgICAgICBpZiAoaGlkZSkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hpZGUtZm9ybS1pdGVtJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaGlkZS1mb3JtLWl0ZW0nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFZpc2libGUgJiYgIWlzQ2hlY2tib3hcIj5cbiAgICAgICAgPGJzdS1seS1sYWJlbFxuICAgICAgICAgICAgW2F0dHIubGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmNhbnZhc1dpZHRoXT1cImNhbnZhc1dpZHRoXCJcbiAgICAgICAgICAgIFthdHRyUnRsXVxuICAgICAgICAgICAgW2NsYXNzLm5vLXBhZGRpbmddPVwiY29uZmlnLlBhZGRpbmdbMF0gPT09IDBcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2NhcHRpb25dPVwibGFiZWxDYXB0aW9uXCJcbiAgICAgICAgICAgIFtvcmlnaW5hbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJcbiAgICAgICAgICAgICAgICBpc0NoZWNrYm94ID8gJ2F1dG8nIDogaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uID8gJzEwMCUnIDogbWF4TGFiZWxXaWR0aCArICdweCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiXG4gICAgICAgICAgICAgICAgaXNDaGVja2JveCA/ICdhdXRvJyA6IGlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvbiA/ICcxMDAlJyA6IG1heExhYmVsV2lkdGggKyAncHgnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2lzTWFuZGF0b3J5XT1cImlzTWFuZGF0b3J5XCJcbiAgICAgICAgICAgIFtmaWVsZEljb25dPVwiZmllbGRJY29uXCJcbiAgICAgICAgICAgIFtvcmlnaW5hbFh0eXBlXT1cIm9yaWdpbmFsWHR5cGVcIlxuICAgICAgICAgICAgW3RleHRWaXNpYmxlXT1cInRleHRWaXNpYmxlXCJcbiAgICAgICAgICAgIFtpc0NvbHVtbl09XCJpc0NvbHVtbkRpcmVjdGlvbiB8fCBpc0NvbHVtblJldmVyc2VEaXJlY3Rpb25cIlxuICAgICAgICA+PC9ic3UtbHktbGFiZWw+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxhYmVsIFthdHRyLnZpc2libGVdPVwibGFiZWxWaXNpYmxlXCIgY2xhc3M9XCJob3Jpem9udGFsLWxhYmVsXCIgW2lubmVySHRtbF09XCJlbXB0eVRleHRcIj48L2xhYmVsPlxuICAgIDxibnJjLWZpZWxkLXVpXG4gICAgICAgIFthdHRyLnh0eXBlXT1cImNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGVcIlxuICAgICAgICBbYXR0ci5maWVsZFdpZHRoXT1cImxheW91dENvbnRyb2xXaWR0aFwiXG4gICAgICAgIFthdHRyLmlzQ2hlY2tib3hdPVwiaXNDaGVja2JveFwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWdyb3ddPVwiaXNDaGVja2JveCA/IDEgOiAwXCJcbiAgICAgICAgW2NsYXNzLm5vLXBhZGRpbmddPVwiY29uZmlnLlBhZGRpbmdbMF0gPT09IDBcIlxuICAgICAgICBbY3VzdG9tRmllbGRdPVwiY29uZmlnLkZpZWxkVWlcIlxuICAgICAgICBbbGF5b3V0SW5mb109XCJjb25maWdcIlxuICAgICAgICBbaW5saW5lRWRpdF09XCJpbmxpbmVFZGl0XCJcbiAgICAgICAgW2ZvY3VzQ29udHJvbF09XCJmb2N1c0NvbnRyb2xcIlxuICAgICAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpc1VsdiA/ICcxMDAlJyA6ICdhdXRvJ1wiXG4gICAgICAgIFthdHRyLmlzdWx2XT1cImlzVWx2XCJcbiAgICA+PC9ibnJjLWZpZWxkLXVpPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,133 @@
1
+ import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewChildren } from '@angular/core';
2
+ import { WizardComponent, WizardStepComponent } from '@fundamental-ngx/core';
3
+ import { takeUntil } from 'rxjs';
4
+ import { FormPropsBaseComponent } from 'barsa-novin-ray-core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@fundamental-ngx/core/wizard";
8
+ import * as i3 from "../ly-layout-container-of-root/ly-layout-container-of-root.component";
9
+ import * as i4 from "barsa-novin-ray-core";
10
+ export class LayoutWizardComponent extends FormPropsBaseComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.selectedIndex = 0;
14
+ this.maxContentWidth = 0;
15
+ this.minTabHeight = 0;
16
+ this.arrStatus = [];
17
+ }
18
+ ngOnInit() {
19
+ super.ngOnInit();
20
+ this._formPanelService.wizardNextStep$.pipe(takeUntil(this._onDestroy$)).subscribe(() => {
21
+ this._nextStep();
22
+ });
23
+ switch (this.deviceSize) {
24
+ case 's':
25
+ case 'm':
26
+ this.wizardSize = 'sm';
27
+ break;
28
+ case 'l':
29
+ case 'xl':
30
+ this.wizardSize = 'md';
31
+ break;
32
+ default:
33
+ this.wizardSize = 'sm';
34
+ break;
35
+ }
36
+ this.modernTabs.forEach((c, i) => this.arrStatus.push(i === 0 ? 'current' : 'upcoming'));
37
+ if (this.settings) {
38
+ this.minTabHeight = this.settings.MinTabHeight;
39
+ this.maxContentWidth = this.settings.MaxContentWidth;
40
+ }
41
+ }
42
+ ngAfterViewInit() {
43
+ super.ngAfterViewInit();
44
+ setTimeout(() => {
45
+ this.setHeightOfFormContent();
46
+ }, 0);
47
+ }
48
+ resizeWorks() {
49
+ setTimeout(() => {
50
+ // this.setHeightOfFormContent();
51
+ const rootHeight = this.containerRootRef?.nativeElement?.offsetHeight;
52
+ if (this.minTabHeight && rootHeight > this.minTabHeight) {
53
+ this.minTabHeight = rootHeight + 20;
54
+ }
55
+ this._cdr.detectChanges();
56
+ }, 0);
57
+ }
58
+ onStatusChange(i, e) {
59
+ this.arrStatus[i] = e;
60
+ this.refreshLayout();
61
+ setTimeout(() => {
62
+ if (this.wizardStepComponents) {
63
+ const currentStepCmp = this.wizardStepComponents.toArray()[i];
64
+ if (e !== 'current') {
65
+ currentStepCmp.status = e;
66
+ currentStepCmp.completed = false;
67
+ currentStepCmp.visited = false;
68
+ currentStepCmp.branching = false;
69
+ }
70
+ }
71
+ this.setHeightOfFormContent();
72
+ }, 10);
73
+ }
74
+ onStepClick(i, e) {
75
+ if (i > this.selectedIndex) {
76
+ e.stopPropagation();
77
+ }
78
+ }
79
+ refreshLayout() {
80
+ this.selectedIndex = this.arrStatus.findIndex((c) => c === 'current');
81
+ const arrWizardStep = this.wizardStepComponents?.toArray();
82
+ if (arrWizardStep) {
83
+ arrWizardStep[this.selectedIndex].visited = false;
84
+ arrWizardStep[this.selectedIndex].completed = false;
85
+ arrWizardStep[this.selectedIndex].status = 'current';
86
+ }
87
+ this.resizeWorks();
88
+ }
89
+ _nextStep() {
90
+ // this.selectedIndex++;
91
+ const currId = this.arrStatus.findIndex((c) => c === 'current');
92
+ this.arrStatus[currId] = 'completed';
93
+ this.arrStatus[currId + 1] = 'current';
94
+ this.refreshLayout();
95
+ }
96
+ setHeightOfFormContent() {
97
+ const wizardEl = this.wizardComponent.nativeElement;
98
+ const formContentEl = wizardEl.querySelector('.fix-form-content');
99
+ const bound = formContentEl?.getBoundingClientRect();
100
+ if (bound) {
101
+ this._renderer2.setStyle(formContentEl, 'height', `calc(100vh - ${Math.round(bound.top)}px)`);
102
+ }
103
+ }
104
+ }
105
+ LayoutWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutWizardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
106
+ LayoutWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LayoutWizardComponent, selector: "bsu-layout-wizard", inputs: { root: "root", parentContentRef: "parentContentRef", selectedIndex: "selectedIndex", maxContentWidth: "maxContentWidth", minTabHeight: "minTabHeight" }, viewQueries: [{ propertyName: "layoutRef", first: true, predicate: ["layoutRef"], descendants: true }, { propertyName: "containerRootRef", first: true, predicate: ["containerRootRef"], descendants: true, read: ElementRef }, { propertyName: "wizardComponent", first: true, predicate: WizardComponent, descendants: true, read: ElementRef }, { propertyName: "wizardStepComponents", predicate: WizardStepComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-wizard [appendToWizard]=\"false\">\r\n <fd-wizard-navigation>\r\n <ul fd-wizard-progress-bar [size]=\"wizardSize\" role=\"list\" aria-label=\"Wizard Steps\">\r\n <li\r\n *ngFor=\"let step of modernTabs; let i = index\"\r\n fd-wizard-step\r\n [status]=\"arrStatus[i]\"\r\n (statusChange)=\"onStatusChange(i, $event)\"\r\n [label]=\"step.Title || '' | bbbTranslate\"\r\n (click)=\"onStepClick(i, $event)\"\r\n >\r\n <fd-wizard-step-indicator>{{ i + 1 }}</fd-wizard-step-indicator>\r\n <fd-wizard-content>\r\n <div class=\"fix-form-content\">\r\n <div\r\n #layoutRef\r\n [style.max-width]=\"maxContentWidth ? maxContentWidth + 'px' : 'auto'\"\r\n [style.min-height.px]=\"minTabHeight ? minTabHeight : 400\"\r\n >\r\n <bsu-ly-layout-container-of-root\r\n #containerRootRef\r\n class=\"content-wizard\"\r\n *ngIf=\"i === selectedIndex\"\r\n [config]=\"step\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n </div>\r\n </div>\r\n </fd-wizard-content>\r\n </li>\r\n </ul>\r\n </fd-wizard-navigation>\r\n</fd-wizard>\r\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .fd-wizard-container-wrapper{background:var(--fdWizard_Content_Default_Background)}:host ::ng-deep fd-dynamic-page-content{padding:0!important}.fd-wizard__progress-bar{border-bottom:1px solid #e4e4e4;box-shadow:none}.fix-form-content{display:flex;justify-content:center;align-items:start;overflow-y:auto}.fix-form-content>div{flex-grow:1;position:relative}.content-wizard{position:absolute}@media (max-width: 767px){.content-wizard{padding:0 10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WizardComponent, selector: "fd-wizard", inputs: ["appendToWizard", "contentHeight", "responsivePaddings", "displaySummaryStep", "ariaLabel"] }, { kind: "component", type: i2.WizardNavigationComponent, selector: "fd-wizard-navigation", inputs: ["ariaLabel"] }, { kind: "directive", type: i2.WizardProgressBarDirective, selector: "[fd-wizard-progress-bar]", inputs: ["size"] }, { kind: "component", type: i2.WizardStepComponent, selector: "[fd-wizard-step]", inputs: ["ariaLabel", "ariaRoleDecription", "status", "branching", "label", "optionalText", "isSummary", "stepClickValidator"], outputs: ["statusChange", "stepClicked", "stepIndicatorItemClicked"] }, { kind: "component", type: i2.WizardStepIndicatorComponent, selector: "fd-wizard-step-indicator", inputs: ["glyph"], outputs: ["stepIndicatorItemClicked"] }, { kind: "component", type: i2.WizardContentComponent, selector: "fd-wizard-content", inputs: ["contentBackground", "size"] }, { kind: "component", type: i3.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutWizardComponent, decorators: [{
108
+ type: Component,
109
+ args: [{ selector: 'bsu-layout-wizard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-wizard [appendToWizard]=\"false\">\r\n <fd-wizard-navigation>\r\n <ul fd-wizard-progress-bar [size]=\"wizardSize\" role=\"list\" aria-label=\"Wizard Steps\">\r\n <li\r\n *ngFor=\"let step of modernTabs; let i = index\"\r\n fd-wizard-step\r\n [status]=\"arrStatus[i]\"\r\n (statusChange)=\"onStatusChange(i, $event)\"\r\n [label]=\"step.Title || '' | bbbTranslate\"\r\n (click)=\"onStepClick(i, $event)\"\r\n >\r\n <fd-wizard-step-indicator>{{ i + 1 }}</fd-wizard-step-indicator>\r\n <fd-wizard-content>\r\n <div class=\"fix-form-content\">\r\n <div\r\n #layoutRef\r\n [style.max-width]=\"maxContentWidth ? maxContentWidth + 'px' : 'auto'\"\r\n [style.min-height.px]=\"minTabHeight ? minTabHeight : 400\"\r\n >\r\n <bsu-ly-layout-container-of-root\r\n #containerRootRef\r\n class=\"content-wizard\"\r\n *ngIf=\"i === selectedIndex\"\r\n [config]=\"step\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n </div>\r\n </div>\r\n </fd-wizard-content>\r\n </li>\r\n </ul>\r\n </fd-wizard-navigation>\r\n</fd-wizard>\r\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .fd-wizard-container-wrapper{background:var(--fdWizard_Content_Default_Background)}:host ::ng-deep fd-dynamic-page-content{padding:0!important}.fd-wizard__progress-bar{border-bottom:1px solid #e4e4e4;box-shadow:none}.fix-form-content{display:flex;justify-content:center;align-items:start;overflow-y:auto}.fix-form-content>div{flex-grow:1;position:relative}.content-wizard{position:absolute}@media (max-width: 767px){.content-wizard{padding:0 10px}}\n"] }]
110
+ }], propDecorators: { layoutRef: [{
111
+ type: ViewChild,
112
+ args: ['layoutRef']
113
+ }], containerRootRef: [{
114
+ type: ViewChild,
115
+ args: ['containerRootRef', { read: ElementRef }]
116
+ }], root: [{
117
+ type: Input
118
+ }], parentContentRef: [{
119
+ type: Input
120
+ }], selectedIndex: [{
121
+ type: Input
122
+ }], maxContentWidth: [{
123
+ type: Input
124
+ }], minTabHeight: [{
125
+ type: Input
126
+ }], wizardStepComponents: [{
127
+ type: ViewChildren,
128
+ args: [WizardStepComponent]
129
+ }], wizardComponent: [{
130
+ type: ViewChild,
131
+ args: [WizardComponent, { read: ElementRef }]
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9sYXlvdXQtd2l6YXJkL2xheW91dC13aXphcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LXdpemFyZC9sYXlvdXQtd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLG1CQUFtQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFPN0UsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHNCQUFzQjtJQU5qRTs7UUFZYSxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUsxQixjQUFTLEdBQXVCLEVBQUUsQ0FBQztLQTJGdEM7SUF4RkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxRQUFRLElBQUksQ0FBQyxVQUFV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QUFlLDJCQUFVLFVBQVUsdURBRmhDLG1CQUFtQix1RUM5QnJDLDRvREFrQ0E7MkZEYmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd2QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRXRCLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFFMUMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTixvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsbUJBQW1CO2dCQUdqQyxlQUFlO3NCQURkLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdpemFyZENvbXBvbmVudCwgV2l6YXJkU2l6ZSwgV2l6YXJkU3RlcENvbXBvbmVudCwgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRm9ybVByb3BzQmFzZUNvbXBvbmVudCwgTGF5b3V0U2V0dGluZyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC13aXphcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sYXlvdXQtd2l6YXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0V2l6YXJkQ29tcG9uZW50IGV4dGVuZHMgRm9ybVByb3BzQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnbGF5b3V0UmVmJykgbGF5b3V0UmVmOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lclJvb3RSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBjb250YWluZXJSb290UmVmOiBFbGVtZW50UmVmO1xuICAgIEBJbnB1dCgpIHJvb3Q6IExheW91dFNldHRpbmc7XG4gICAgQElucHV0KCkgcGFyZW50Q29udGVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XG4gICAgQElucHV0KCkgc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgQElucHV0KCkgbWF4Q29udGVudFdpZHRoID0gMDtcbiAgICBASW5wdXQoKSBtaW5UYWJIZWlnaHQgPSAwO1xuICAgIEBWaWV3Q2hpbGRyZW4oV2l6YXJkU3RlcENvbXBvbmVudClcbiAgICB3aXphcmRTdGVwQ29tcG9uZW50czogUXVlcnlMaXN0PFdpemFyZFN0ZXBDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoV2l6YXJkQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICB3aXphcmRDb21wb25lbnQ6IEVsZW1lbnRSZWY7XG4gICAgYXJyU3RhdHVzOiBXaXphcmRTdGVwU3RhdHVzW10gPSBbXTtcbiAgICB3aXphcmRTaXplOiBXaXphcmRTaXplO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud2l6YXJkTmV4dFN0ZXAkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXAoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5kZXZpY2VTaXplKSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHRoaXMud2l6YXJkU2l6ZSA9ICdzbSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsJzpcbiAgICAgICAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgICAgICAgICB0aGlzLndpemFyZFNpemUgPSAnbWQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLndpemFyZFNpemUgPSAnc20nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9kZXJuVGFicy5mb3JFYWNoKChjLCBpKSA9PiB0aGlzLmFyclN0YXR1cy5wdXNoKGkgPT09IDAgPyAnY3VycmVudCcgOiAndXBjb21pbmcnKSk7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLm1pblRhYkhlaWdodCA9IHRoaXMuc2V0dGluZ3MuTWluVGFiSGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5tYXhDb250ZW50V2lkdGggPSB0aGlzLnNldHRpbmdzLk1heENvbnRlbnRXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0SGVpZ2h0T2ZGb3JtQ29udGVudCgpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICByZXNpemVXb3JrcygpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyB0aGlzLnNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RIZWlnaHQgPSB0aGlzLmNvbnRhaW5lclJvb3RSZWY/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIGlmICh0aGlzLm1pblRhYkhlaWdodCAmJiByb290SGVpZ2h0ID4gdGhpcy5taW5UYWJIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1pblRhYkhlaWdodCA9IHJvb3RIZWlnaHQgKyAyMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIG9uU3RhdHVzQ2hhbmdlKGksIGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcnJTdGF0dXNbaV0gPSBlO1xuICAgICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy53aXphcmRTdGVwQ29tcG9uZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwQ21wID0gdGhpcy53aXphcmRTdGVwQ29tcG9uZW50cy50b0FycmF5KClbaV07XG4gICAgICAgICAgICAgICAgaWYgKGUgIT09ICdjdXJyZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcENtcC5zdGF0dXMgPSBlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcENtcC5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXBDbXAudmlzaXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcENtcC5icmFuY2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTtcbiAgICAgICAgfSwgMTApO1xuICAgIH1cbiAgICBvblN0ZXBDbGljayhpLCBlKTogdm9pZCB7XG4gICAgICAgIGlmIChpID4gdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuYXJyU3RhdHVzLmZpbmRJbmRleCgoYykgPT4gYyA9PT0gJ2N1cnJlbnQnKTtcbiAgICAgICAgY29uc3QgYXJyV2l6YXJkU3RlcCA9IHRoaXMud2l6YXJkU3RlcENvbXBvbmVudHM/LnRvQXJyYXkoKTtcbiAgICAgICAgaWYgKGFycldpemFyZFN0ZXApIHtcbiAgICAgICAgICAgIGFycldpemFyZFN0ZXBbdGhpcy5zZWxlY3RlZEluZGV4XS52aXNpdGVkID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJXaXphcmRTdGVwW3RoaXMuc2VsZWN0ZWRJbmRleF0uY29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJXaXphcmRTdGVwW3RoaXMuc2VsZWN0ZWRJbmRleF0uc3RhdHVzID0gJ2N1cnJlbnQnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzaXplV29ya3MoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbmV4dFN0ZXAoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRJbmRleCsrO1xuICAgICAgICBjb25zdCBjdXJySWQgPSB0aGlzLmFyclN0YXR1cy5maW5kSW5kZXgoKGMpID0+IGMgPT09ICdjdXJyZW50Jyk7XG4gICAgICAgIHRoaXMuYXJyU3RhdHVzW2N1cnJJZF0gPSAnY29tcGxldGVkJztcbiAgICAgICAgdGhpcy5hcnJTdGF0dXNbY3VycklkICsgMV0gPSAnY3VycmVudCc7XG4gICAgICAgIHRoaXMucmVmcmVzaExheW91dCgpO1xuICAgIH1cbiAgICBwcml2YXRlIHNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdpemFyZEVsID0gdGhpcy53aXphcmRDb21wb25lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgZm9ybUNvbnRlbnRFbCA9IHdpemFyZEVsLnF1ZXJ5U2VsZWN0b3IoJy5maXgtZm9ybS1jb250ZW50Jyk7XG4gICAgICAgIGNvbnN0IGJvdW5kID0gZm9ybUNvbnRlbnRFbD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChib3VuZCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGZvcm1Db250ZW50RWwsICdoZWlnaHQnLCBgY2FsYygxMDB2aCAtICR7TWF0aC5yb3VuZChib3VuZC50b3ApfXB4KWApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLXdpemFyZCBbYXBwZW5kVG9XaXphcmRdPVwiZmFsc2VcIj5cclxuICAgIDxmZC13aXphcmQtbmF2aWdhdGlvbj5cclxuICAgICAgICA8dWwgZmQtd2l6YXJkLXByb2dyZXNzLWJhciBbc2l6ZV09XCJ3aXphcmRTaXplXCIgcm9sZT1cImxpc3RcIiBhcmlhLWxhYmVsPVwiV2l6YXJkIFN0ZXBzXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0ZXAgb2YgbW9kZXJuVGFiczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICBmZC13aXphcmQtc3RlcFxyXG4gICAgICAgICAgICAgICAgW3N0YXR1c109XCJhcnJTdGF0dXNbaV1cIlxyXG4gICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJvblN0YXR1c0NoYW5nZShpLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzdGVwLlRpdGxlIHx8ICcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN0ZXBDbGljayhpLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGZkLXdpemFyZC1zdGVwLWluZGljYXRvcj57eyBpICsgMSB9fTwvZmQtd2l6YXJkLXN0ZXAtaW5kaWNhdG9yPlxyXG4gICAgICAgICAgICAgICAgPGZkLXdpemFyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaXgtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNsYXlvdXRSZWZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwibWF4Q29udGVudFdpZHRoID8gbWF4Q29udGVudFdpZHRoICsgJ3B4JyA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJtaW5UYWJIZWlnaHQgPyBtaW5UYWJIZWlnaHQgOiA0MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjb250YWluZXJSb290UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LXdpemFyZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpID09PSBzZWxlY3RlZEluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cInN0ZXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc1BhbmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNSb290XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLXdpemFyZC1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2ZkLXdpemFyZC1uYXZpZ2F0aW9uPlxyXG48L2ZkLXdpemFyZD5cclxuIl19