@pepperi-addons/ngx-composite-lib 0.4.2-beta.99 → 0.5.0-ng16.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 (271) hide show
  1. package/color-settings/color-settings.component.d.ts +1 -1
  2. package/core/common/directives/reset-configuration-field.directive.d.ts +1 -1
  3. package/data-view-builder/data-view-builder.component.d.ts +1 -1
  4. package/data-view-builder/data-view-builder.model.d.ts +1 -1
  5. package/data-view-builder/menu-data-view/menu-data-view.component.d.ts +1 -1
  6. package/esm2022/color-settings/color-settings.component.mjs +90 -0
  7. package/{esm2020 → esm2022}/color-settings/color-settings.module.mjs +13 -13
  8. package/esm2022/core/common/directives/reset-configuration-field.directive.mjs +154 -0
  9. package/{esm2020 → esm2022}/core/common/services/dimx.service.mjs +4 -4
  10. package/{esm2020 → esm2022}/core/common/services/utilities.service.mjs +4 -4
  11. package/esm2022/data-view-builder/data-view-builder.component.mjs +126 -0
  12. package/{esm2020 → esm2022}/data-view-builder/data-view-builder.module.mjs +27 -27
  13. package/{esm2020 → esm2022}/data-view-builder/data-view-builder.service.mjs +7 -7
  14. package/{esm2020 → esm2022}/data-view-builder/menu-data-view/menu-data-view.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/file-status-panel/file-status-panel.component.mjs +4 -4
  16. package/esm2022/file-status-panel/file-status-panel.module.mjs +74 -0
  17. package/esm2022/flow-picker-button/flow-picker-button.component.mjs +94 -0
  18. package/{esm2020 → esm2022}/flow-picker-button/flow-picker-button.module.mjs +11 -11
  19. package/{esm2020 → esm2022}/flow-picker-button/flow-picker-button.service.mjs +4 -4
  20. package/esm2022/generic-fields-builder/field-container/field-container.component.mjs +18 -0
  21. package/esm2022/generic-fields-builder/generic-fields-builder.component.mjs +119 -0
  22. package/esm2022/generic-fields-builder/generic-fields-builder.module.mjs +82 -0
  23. package/esm2022/generic-fields-builder/generic-fields-builder.service.mjs +39 -0
  24. package/esm2022/generic-fields-builder/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +5 -0
  25. package/esm2022/generic-fields-builder/public-api.mjs +6 -0
  26. package/esm2022/generic-form/generic-form.component.mjs +194 -0
  27. package/{esm2020 → esm2022}/generic-form/generic-form.module.mjs +23 -23
  28. package/{esm2020 → esm2022}/generic-form/generic-form.service.mjs +4 -4
  29. package/esm2022/generic-list/generic-list.component.mjs +583 -0
  30. package/esm2022/generic-list/generic-list.module.mjs +114 -0
  31. package/esm2022/generic-list/generic-list.service.mjs +171 -0
  32. package/esm2022/group-buttons-settings/group-buttons-settings.component.mjs +157 -0
  33. package/{esm2020 → esm2022}/group-buttons-settings/group-buttons-settings.module.mjs +13 -13
  34. package/{esm2020 → esm2022}/icon-picker/icon-picker.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/icon-picker/icon-picker.module.mjs +15 -15
  36. package/{esm2020 → esm2022}/icon-picker/icon-picker.service.mjs +4 -4
  37. package/{esm2020 → esm2022}/layout-builder/hide-in/hide-in.component.mjs +5 -5
  38. package/{esm2020 → esm2022}/layout-builder/hide-in/hide-in.module.mjs +31 -31
  39. package/esm2022/layout-builder/layout/layout.component.mjs +229 -0
  40. package/esm2022/layout-builder/layout/layout.module.mjs +56 -0
  41. package/{esm2020 → esm2022}/layout-builder/layout-builder-editor/layout-builder-editor.component.mjs +4 -4
  42. package/{esm2020 → esm2022}/layout-builder/layout-builder-editor/layout-builder-editor.module.mjs +14 -14
  43. package/esm2022/layout-builder/layout-builder-internal.service.mjs +628 -0
  44. package/esm2022/layout-builder/layout-builder.component.mjs +232 -0
  45. package/esm2022/layout-builder/layout-builder.model.mjs +2 -0
  46. package/{esm2020 → esm2022}/layout-builder/layout-builder.module.mjs +61 -61
  47. package/esm2022/layout-builder/layout-builder.service.mjs +49 -0
  48. package/esm2022/layout-builder/main-editor/main-editor.component.mjs +141 -0
  49. package/{esm2020 → esm2022}/layout-builder/main-editor/main-editor.module.mjs +40 -40
  50. package/esm2022/layout-builder/section/section.component.mjs +376 -0
  51. package/{esm2020 → esm2022}/layout-builder/section/section.module.mjs +16 -16
  52. package/esm2022/layout-builder/section-block/section-block.component.mjs +113 -0
  53. package/{esm2020 → esm2022}/layout-builder/section-block/section-block.module.mjs +11 -11
  54. package/esm2022/layout-builder/section-editor/section-editor.component.mjs +201 -0
  55. package/esm2022/layout-builder/section-editor/section-editor.module.mjs +48 -0
  56. package/esm2022/manage-parameters/manage-parameter/manage-parameter.component.mjs +86 -0
  57. package/esm2022/manage-parameters/manage-parameters.component.mjs +189 -0
  58. package/{esm2020 → esm2022}/manage-parameters/manage-parameters.model.mjs +1 -1
  59. package/{esm2020 → esm2022}/manage-parameters/manage-parameters.module.mjs +15 -15
  60. package/esm2022/manage-parameters/manage-parameters.service.mjs +149 -0
  61. package/esm2022/mapping-parameters/mapping-parameters.component.mjs +44 -0
  62. package/esm2022/mapping-parameters/mapping-parameters.model.mjs +6 -0
  63. package/esm2022/mapping-parameters/mapping-parameters.module.mjs +59 -0
  64. package/esm2022/mapping-parameters/mapping-parameters.service.mjs +37 -0
  65. package/esm2022/mapping-parameters/param-map/param-map.component.mjs +73 -0
  66. package/esm2022/mapping-parameters/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +5 -0
  67. package/esm2022/mapping-parameters/public-api.mjs +4 -0
  68. package/{esm2020 → esm2022}/ngx-composite-lib.module.mjs +12 -12
  69. package/esm2022/padding-settings/padding-settings.component.mjs +90 -0
  70. package/{esm2020 → esm2022}/padding-settings/padding-settings.model.mjs +3 -3
  71. package/{esm2020 → esm2022}/padding-settings/padding-settings.module.mjs +17 -17
  72. package/esm2022/rich-text/rich-text.component.mjs +154 -0
  73. package/{esm2020 → esm2022}/rich-text/rich-text.module.mjs +15 -15
  74. package/{esm2020 → esm2022}/rich-text/rich-text.service.mjs +4 -4
  75. package/esm2022/shadow-settings/shadow-settings.component.mjs +72 -0
  76. package/{esm2020 → esm2022}/shadow-settings/shadow-settings.module.mjs +15 -15
  77. package/{esm2020 → esm2022}/show-if-badge/show-if-badge.component.mjs +5 -5
  78. package/{esm2020 → esm2022}/show-if-badge/show-if-badge.module.mjs +14 -14
  79. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-color-settings.mjs +24 -24
  80. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
  81. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +53 -53
  82. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +1 -1
  83. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +28 -28
  84. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
  85. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +28 -28
  86. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -1
  87. package/fesm2022/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +254 -0
  88. package/fesm2022/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-generic-form.mjs +37 -37
  90. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +1 -1
  91. package/fesm2022/pepperi-addons-ngx-composite-lib-generic-list.mjs +866 -0
  92. package/fesm2022/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -0
  93. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +26 -26
  94. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  95. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-icon-picker.mjs +20 -20
  96. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -1
  97. package/fesm2022/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2439 -0
  98. package/fesm2022/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +91 -43
  100. package/fesm2022/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
  101. package/fesm2022/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +209 -0
  102. package/fesm2022/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs.map +1 -0
  103. package/fesm2022/pepperi-addons-ngx-composite-lib-padding-settings.mjs +150 -0
  104. package/fesm2022/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +1 -0
  105. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-rich-text.mjs +28 -28
  106. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -1
  107. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +25 -25
  108. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
  109. package/fesm2022/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
  110. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -1
  111. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib.mjs +40 -40
  112. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
  113. package/file-status-panel/file-status-panel.component.d.ts +1 -1
  114. package/file-status-panel/file-status-panel.model.d.ts +1 -1
  115. package/flow-picker-button/flow-picker-button.component.d.ts +1 -1
  116. package/generic-fields-builder/field-container/field-container.component.d.ts +10 -0
  117. package/generic-fields-builder/generic-fields-builder.component.d.ts +46 -0
  118. package/generic-fields-builder/generic-fields-builder.module.d.ts +23 -0
  119. package/generic-fields-builder/generic-fields-builder.service.d.ts +14 -0
  120. package/generic-fields-builder/index.d.ts +5 -0
  121. package/generic-fields-builder/public-api.d.ts +2 -0
  122. package/generic-form/generic-form.component.d.ts +1 -1
  123. package/generic-list/generic-list.component.d.ts +25 -9
  124. package/generic-list/generic-list.module.d.ts +13 -11
  125. package/generic-list/generic-list.service.d.ts +3 -1
  126. package/group-buttons-settings/group-buttons-settings.component.d.ts +1 -1
  127. package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
  128. package/icon-picker/icon-picker.component.d.ts +1 -1
  129. package/layout-builder/hide-in/hide-in.component.d.ts +1 -1
  130. package/layout-builder/hide-in/hide-in.component.theme.scss +1 -1
  131. package/layout-builder/layout/layout.component.d.ts +12 -8
  132. package/layout-builder/layout-builder-editor/layout-builder-editor.component.d.ts +1 -1
  133. package/layout-builder/layout-builder-internal.service.d.ts +5 -10
  134. package/layout-builder/layout-builder.component.d.ts +11 -4
  135. package/layout-builder/layout-builder.component.theme.scss +1 -1
  136. package/layout-builder/layout-builder.model.d.ts +3 -3
  137. package/layout-builder/layout-builder.service.d.ts +15 -6
  138. package/layout-builder/main-editor/main-editor.component.d.ts +7 -5
  139. package/layout-builder/section/section.component.d.ts +8 -1
  140. package/layout-builder/section-block/section-block.component.d.ts +1 -1
  141. package/layout-builder/section-editor/section-editor.component.d.ts +4 -1
  142. package/layout-builder/section-editor/section-editor.module.d.ts +3 -2
  143. package/manage-parameters/manage-parameter/manage-parameter.component.d.ts +3 -1
  144. package/manage-parameters/manage-parameters.component.d.ts +10 -3
  145. package/manage-parameters/manage-parameters.model.d.ts +4 -1
  146. package/manage-parameters/manage-parameters.service.d.ts +2 -2
  147. package/mapping-parameters/index.d.ts +5 -0
  148. package/mapping-parameters/mapping-parameters.component.d.ts +19 -0
  149. package/mapping-parameters/mapping-parameters.model.d.ts +8 -0
  150. package/mapping-parameters/mapping-parameters.module.d.ts +18 -0
  151. package/mapping-parameters/mapping-parameters.service.d.ts +12 -0
  152. package/mapping-parameters/param-map/param-map.component.d.ts +27 -0
  153. package/mapping-parameters/public-api.d.ts +3 -0
  154. package/package.json +80 -101
  155. package/padding-settings/padding-settings.component.d.ts +1 -1
  156. package/padding-settings/padding-settings.model.d.ts +2 -2
  157. package/rich-text/rich-text.component.d.ts +1 -1
  158. package/shadow-settings/shadow-settings.component.d.ts +1 -1
  159. package/shadow-settings/shadow-settings.model.d.ts +1 -1
  160. package/show-if-badge/show-if-badge.component.d.ts +1 -1
  161. package/src/assets/i18n/en.ngx-composite-lib.json +22 -2
  162. package/esm2020/color-settings/color-settings.component.mjs +0 -90
  163. package/esm2020/core/common/directives/reset-configuration-field.directive.mjs +0 -154
  164. package/esm2020/data-view-builder/data-view-builder.component.mjs +0 -126
  165. package/esm2020/file-status-panel/file-status-panel.module.mjs +0 -74
  166. package/esm2020/flow-picker-button/flow-picker-button.component.mjs +0 -94
  167. package/esm2020/generic-form/generic-form.component.mjs +0 -194
  168. package/esm2020/generic-list/generic-list.component.mjs +0 -530
  169. package/esm2020/generic-list/generic-list.module.mjs +0 -106
  170. package/esm2020/generic-list/generic-list.service.mjs +0 -146
  171. package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +0 -157
  172. package/esm2020/layout-builder/layout/layout.component.mjs +0 -204
  173. package/esm2020/layout-builder/layout/layout.module.mjs +0 -54
  174. package/esm2020/layout-builder/layout-builder-internal.service.mjs +0 -628
  175. package/esm2020/layout-builder/layout-builder.component.mjs +0 -201
  176. package/esm2020/layout-builder/layout-builder.model.mjs +0 -2
  177. package/esm2020/layout-builder/layout-builder.service.mjs +0 -36
  178. package/esm2020/layout-builder/main-editor/main-editor.component.mjs +0 -130
  179. package/esm2020/layout-builder/section/section.component.mjs +0 -351
  180. package/esm2020/layout-builder/section-block/section-block.component.mjs +0 -113
  181. package/esm2020/layout-builder/section-editor/section-editor.component.mjs +0 -192
  182. package/esm2020/layout-builder/section-editor/section-editor.module.mjs +0 -44
  183. package/esm2020/manage-parameters/manage-parameter/manage-parameter.component.mjs +0 -82
  184. package/esm2020/manage-parameters/manage-parameters.component.mjs +0 -153
  185. package/esm2020/manage-parameters/manage-parameters.service.mjs +0 -142
  186. package/esm2020/padding-settings/padding-settings.component.mjs +0 -80
  187. package/esm2020/rich-text/rich-text.component.mjs +0 -154
  188. package/esm2020/shadow-settings/shadow-settings.component.mjs +0 -72
  189. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs +0 -144
  190. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +0 -1
  191. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +0 -378
  192. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +0 -1
  193. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +0 -126
  194. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +0 -1
  195. package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +0 -161
  196. package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +0 -1
  197. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs +0 -317
  198. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +0 -1
  199. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +0 -801
  200. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +0 -1
  201. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +0 -216
  202. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +0 -1
  203. package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs +0 -146
  204. package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +0 -1
  205. package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +0 -2345
  206. package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +0 -1
  207. package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +0 -441
  208. package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +0 -1
  209. package/fesm2015/pepperi-addons-ngx-composite-lib-padding-settings.mjs +0 -140
  210. package/fesm2015/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +0 -1
  211. package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs +0 -234
  212. package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +0 -1
  213. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +0 -129
  214. package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +0 -100
  215. package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +0 -1
  216. package/fesm2015/pepperi-addons-ngx-composite-lib.mjs +0 -329
  217. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +0 -780
  218. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +0 -1
  219. package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +0 -2322
  220. package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +0 -1
  221. package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +0 -1
  222. package/fesm2020/pepperi-addons-ngx-composite-lib-padding-settings.mjs +0 -140
  223. package/fesm2020/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +0 -1
  224. package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +0 -1
  225. package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +0 -100
  226. package/fesm2020/pepperi-addons-ngx-composite-lib.mjs.map +0 -1
  227. /package/{esm2020 → esm2022}/color-settings/color-settings.model.mjs +0 -0
  228. /package/{esm2020 → esm2022}/color-settings/pepperi-addons-ngx-composite-lib-color-settings.mjs +0 -0
  229. /package/{esm2020 → esm2022}/color-settings/public-api.mjs +0 -0
  230. /package/{esm2020 → esm2022}/core/common/directives/index.mjs +0 -0
  231. /package/{esm2020 → esm2022}/core/common/directives/public-api.mjs +0 -0
  232. /package/{esm2020 → esm2022}/core/common/index.mjs +0 -0
  233. /package/{esm2020 → esm2022}/core/common/public-api.mjs +0 -0
  234. /package/{esm2020 → esm2022}/core/common/services/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/core/common/services/public-api.mjs +0 -0
  236. /package/{esm2020 → esm2022}/core/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/core/public-api.mjs +0 -0
  238. /package/{esm2020 → esm2022}/data-view-builder/data-view-builder.model.mjs +0 -0
  239. /package/{esm2020 → esm2022}/data-view-builder/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +0 -0
  240. /package/{esm2020 → esm2022}/data-view-builder/public-api.mjs +0 -0
  241. /package/{esm2020 → esm2022}/file-status-panel/file-status-panel.model.mjs +0 -0
  242. /package/{esm2020 → esm2022}/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +0 -0
  243. /package/{esm2020 → esm2022}/file-status-panel/public-api.mjs +0 -0
  244. /package/{esm2020 → esm2022}/flow-picker-button/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +0 -0
  245. /package/{esm2020 → esm2022}/flow-picker-button/public-api.mjs +0 -0
  246. /package/{esm2020 → esm2022}/generic-form/generic-form.model.mjs +0 -0
  247. /package/{esm2020 → esm2022}/generic-form/pepperi-addons-ngx-composite-lib-generic-form.mjs +0 -0
  248. /package/{esm2020 → esm2022}/generic-form/public-api.mjs +0 -0
  249. /package/{esm2020 → esm2022}/generic-list/generic-list.model.mjs +0 -0
  250. /package/{esm2020 → esm2022}/generic-list/pepperi-addons-ngx-composite-lib-generic-list.mjs +0 -0
  251. /package/{esm2020 → esm2022}/generic-list/public-api.mjs +0 -0
  252. /package/{esm2020 → esm2022}/group-buttons-settings/group-buttons-settings.model.mjs +0 -0
  253. /package/{esm2020 → esm2022}/group-buttons-settings/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +0 -0
  254. /package/{esm2020 → esm2022}/group-buttons-settings/public-api.mjs +0 -0
  255. /package/{esm2020 → esm2022}/icon-picker/pepperi-addons-ngx-composite-lib-icon-picker.mjs +0 -0
  256. /package/{esm2020 → esm2022}/icon-picker/public-api.mjs +0 -0
  257. /package/{esm2020 → esm2022}/layout-builder/pepperi-addons-ngx-composite-lib-layout-builder.mjs +0 -0
  258. /package/{esm2020 → esm2022}/layout-builder/public-api.mjs +0 -0
  259. /package/{esm2020 → esm2022}/manage-parameters/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +0 -0
  260. /package/{esm2020 → esm2022}/manage-parameters/public-api.mjs +0 -0
  261. /package/{esm2020 → esm2022}/padding-settings/pepperi-addons-ngx-composite-lib-padding-settings.mjs +0 -0
  262. /package/{esm2020 → esm2022}/padding-settings/public-api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/pepperi-addons-ngx-composite-lib.mjs +0 -0
  264. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  265. /package/{esm2020 → esm2022}/rich-text/pepperi-addons-ngx-composite-lib-rich-text.mjs +0 -0
  266. /package/{esm2020 → esm2022}/rich-text/public-api.mjs +0 -0
  267. /package/{esm2020 → esm2022}/shadow-settings/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +0 -0
  268. /package/{esm2020 → esm2022}/shadow-settings/public-api.mjs +0 -0
  269. /package/{esm2020 → esm2022}/shadow-settings/shadow-settings.model.mjs +0 -0
  270. /package/{esm2020 → esm2022}/show-if-badge/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +0 -0
  271. /package/{esm2020 → esm2022}/show-if-badge/public-api.mjs +0 -0
@@ -1,113 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../layout-builder-internal.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/cdk/drag-drop";
7
- import * as i4 from "@pepperi-addons/ngx-lib/button";
8
- import * as i5 from "@pepperi-addons/ngx-lib/draggable-items";
9
- export class SectionBlockComponent extends BaseDestroyerDirective {
10
- constructor(layoutBuilderInternalService) {
11
- super();
12
- this.layoutBuilderInternalService = layoutBuilderInternalService;
13
- this.sectionKey = '';
14
- this.sectionHeight = '';
15
- this.isMainEditorState = false;
16
- this.editable = false;
17
- this.active = false;
18
- this.dragExited = new EventEmitter();
19
- this.dragEntered = new EventEmitter();
20
- this.hideForCurrentScreenType = false;
21
- // protected remoteLoaderOptions: PepRemoteLoaderOptions;
22
- // protected availableBlock: IPepDraggableItem | undefined;
23
- this.blockTitle = '';
24
- }
25
- set blockContainer(value) {
26
- this._blockContainer = value;
27
- // if (this._blockContainer) {
28
- // this.availableBlock = this.layoutBuilderInternalService.availableBlocksForDragMap?.get(this._blockContainer?.DraggableItemKey);
29
- // }
30
- this.setIfHideForCurrentScreenType();
31
- }
32
- get blockContainer() {
33
- return this._blockContainer;
34
- }
35
- set screenType(value) {
36
- this._screenType = value;
37
- this.setIfHideForCurrentScreenType();
38
- }
39
- get screenType() {
40
- return this._screenType;
41
- }
42
- setIfHideForCurrentScreenType() {
43
- this.hideForCurrentScreenType = this.blockContainer ?
44
- this.layoutBuilderInternalService.getIsHidden(this.blockContainer.Hide, this.screenType) : false;
45
- }
46
- ngOnInit() {
47
- this.blockTitle = this.layoutBuilderInternalService.getBlockTitle(this.blockContainer?.BlockKey || '');
48
- //
49
- // this.layoutBuilderInternalService.availableBlocksForDragMapChange$.pipe(this.getDestroyer()).subscribe((availableBlocksForDragMap) => {
50
- // if (availableBlocksForDragMap && this.blockContainer) {
51
- // this.availableBlock = (availableBlocksForDragMap as ReadonlyMap<string, IPepDraggableItem>).get(this.blockContainer.DraggableItemKey);
52
- // }
53
- // });
54
- }
55
- onEditBlockClick() {
56
- if (this.blockContainer?.BlockKey) {
57
- this.layoutBuilderInternalService.navigateToEditor('block', this.blockContainer.BlockKey, this.blockTitle);
58
- }
59
- }
60
- onRemoveBlockClick() {
61
- if (this.blockContainer?.BlockKey) {
62
- this.layoutBuilderInternalService.removeBlockFromSection(this.blockContainer.BlockKey);
63
- }
64
- }
65
- onHideBlockChange(hideIn) {
66
- if (this.blockContainer?.BlockKey) {
67
- this.layoutBuilderInternalService.hideBlock(this.sectionKey, this.blockContainer.BlockKey, hideIn);
68
- this.setIfHideForCurrentScreenType();
69
- }
70
- }
71
- // onBlockLoad(event: any) {
72
- // this.layoutBuilderService.updateBlockLoaded(this.blockContainer.BlockKey);
73
- // }
74
- onDragStart(event) {
75
- this.layoutBuilderInternalService.onBlockDragStart(event);
76
- }
77
- onDragEnd(event) {
78
- this.layoutBuilderInternalService.onBlockDragEnd(event);
79
- }
80
- onDragExited(event) {
81
- this.dragExited.emit(event);
82
- }
83
- onDragEntered(event) {
84
- this.dragEntered.emit(event);
85
- }
86
- }
87
- SectionBlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, deps: [{ token: i1.LayoutBuilderInternalService }], target: i0.ɵɵFactoryTarget.Component });
88
- SectionBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionBlockComponent, selector: "section-block", inputs: { blockTemplate: "blockTemplate", sectionKey: "sectionKey", sectionHeight: "sectionHeight", isMainEditorState: "isMainEditorState", editable: "editable", active: "active", blockContainer: "blockContainer", screenType: "screenType" }, outputs: { dragExited: "dragExited", dragEntered: "dragEntered" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"blockTitle\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey }\">\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, decorators: [{
90
- type: Component,
91
- args: [{ selector: 'section-block', template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"blockTitle\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey }\">\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"] }]
92
- }], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }]; }, propDecorators: { blockTemplate: [{
93
- type: Input
94
- }], sectionKey: [{
95
- type: Input
96
- }], sectionHeight: [{
97
- type: Input
98
- }], isMainEditorState: [{
99
- type: Input
100
- }], editable: [{
101
- type: Input
102
- }], active: [{
103
- type: Input
104
- }], blockContainer: [{
105
- type: Input
106
- }], screenType: [{
107
- type: Input
108
- }], dragExited: [{
109
- type: Output
110
- }], dragEntered: [{
111
- type: Output
112
- }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1ibG9jay9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSXZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBV2pFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUF5QzdELFlBQ1ksNEJBQTBEO1FBRWxFLEtBQUssRUFBRSxDQUFDO1FBRkEsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQXZDN0QsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBMEJkLGVBQVUsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxnQkFBVyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUMzQyx5REFBeUQ7UUFDekQsMkRBQTJEO1FBQ2pELGVBQVUsR0FBRyxFQUFFLENBQUM7SUFNMUIsQ0FBQztJQW5DRCxJQUNJLGNBQWMsQ0FBQyxLQUEyQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3Qiw4QkFBOEI7UUFDOUIsc0lBQXNJO1FBQ3RJLElBQUk7UUFFSixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUNJLFVBQVUsQ0FBQyxLQUF5QjtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFnQk8sNkJBQTZCO1FBQ2pDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6RyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RyxHQUFHO1FBQ0gsMElBQTBJO1FBQzFJLDhEQUE4RDtRQUM5RCxpSkFBaUo7UUFDakosUUFBUTtRQUNSLE1BQU07SUFDVixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRTtZQUMvQixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5RztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFO1lBQy9CLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFGO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQTRCO1FBQzFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUU7WUFDL0IsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25HLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixpRkFBaUY7SUFDakYsSUFBSTtJQUVKLFdBQVcsQ0FBQyxLQUFtQjtRQUMzQixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsNEJBQTRCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBa0I7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFtQjtRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOztrSEFuR1EscUJBQXFCO3NHQUFyQixxQkFBcUIsaVlDZmxDLCsrQ0FzQkE7MkZEUGEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLGVBQWU7bUhBTWhCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJRixjQUFjO3NCQURqQixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnRW5kLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBJUGVwRHJhZ2dhYmxlSXRlbSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RyYWdnYWJsZS1pdGVtcyc7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcmVtb3RlLWxvYWRlcic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbi1ibG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkJsb2NrQ29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBzZWN0aW9uS2V5ID0gJyc7XG4gICAgQElucHV0KCkgc2VjdGlvbkhlaWdodCA9ICcnO1xuICAgIEBJbnB1dCgpIGlzTWFpbkVkaXRvclN0YXRlID0gZmFsc2U7XG4gICAgQElucHV0KCkgZWRpdGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcbiAgICBcbiAgICBwcml2YXRlIF9ibG9ja0NvbnRhaW5lcjogSVBlcExheW91dEJsb2NrQ29udGFpbmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJsb2NrQ29udGFpbmVyKHZhbHVlOiBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fYmxvY2tDb250YWluZXIgPSB2YWx1ZTtcbiAgICAgICAgLy8gaWYgKHRoaXMuX2Jsb2NrQ29udGFpbmVyKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmF2YWlsYWJsZUJsb2NrID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXA/LmdldCh0aGlzLl9ibG9ja0NvbnRhaW5lcj8uRHJhZ2dhYmxlSXRlbUtleSk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgZ2V0IGJsb2NrQ29udGFpbmVyKCk6IElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibG9ja0NvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JlZW5UeXBlITogRGF0YVZpZXdTY3JlZW5TaXplO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNjcmVlblR5cGUodmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZSkge1xuICAgICAgICB0aGlzLl9zY3JlZW5UeXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgZ2V0IHNjcmVlblR5cGUoKTogRGF0YVZpZXdTY3JlZW5TaXplIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmVlblR5cGU7XG4gICAgfVxuICAgIFxuICAgIEBPdXRwdXQoKSBkcmFnRXhpdGVkOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0V4aXQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkcmFnRW50ZXJlZDogRXZlbnRFbWl0dGVyPENka0RyYWdFbnRlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gZmFsc2U7XG4gICAgLy8gcHJvdGVjdGVkIHJlbW90ZUxvYWRlck9wdGlvbnM6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnM7XG4gICAgLy8gcHJvdGVjdGVkIGF2YWlsYWJsZUJsb2NrOiBJUGVwRHJhZ2dhYmxlSXRlbSB8IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgYmxvY2tUaXRsZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSB0aGlzLmJsb2NrQ29udGFpbmVyID8gXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4odGhpcy5ibG9ja0NvbnRhaW5lci5IaWRlLCB0aGlzLnNjcmVlblR5cGUpIDogZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJsb2NrVGl0bGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0QmxvY2tUaXRsZSh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSB8fCAnJyk7XG4gICAgICAgIC8vIFxuICAgICAgICAvLyB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXApID0+IHtcbiAgICAgICAgLy8gICAgIGlmIChhdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwICYmIHRoaXMuYmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmF2YWlsYWJsZUJsb2NrID0gKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXAgYXMgUmVhZG9ubHlNYXA8c3RyaW5nLCBJUGVwRHJhZ2dhYmxlSXRlbT4pLmdldCh0aGlzLmJsb2NrQ29udGFpbmVyLkRyYWdnYWJsZUl0ZW1LZXkpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBvbkVkaXRCbG9ja0NsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5ibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5uYXZpZ2F0ZVRvRWRpdG9yKCdibG9jaycsIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIHRoaXMuYmxvY2tUaXRsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlbW92ZUJsb2NrQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnJlbW92ZUJsb2NrRnJvbVNlY3Rpb24odGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhpZGVCbG9ja0NoYW5nZShoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmhpZGVCbG9jayh0aGlzLnNlY3Rpb25LZXksIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIGhpZGVJbik7XG4gICAgICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvbkJsb2NrTG9hZChldmVudDogYW55KSB7XG4gICAgLy8gICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlQmxvY2tMb2FkZWQodGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgLy8gfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25CbG9ja0RyYWdTdGFydChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vbkJsb2NrRHJhZ0VuZChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRXhpdGVkKGV2ZW50OiBDZGtEcmFnRXhpdCkge1xuICAgICAgICB0aGlzLmRyYWdFeGl0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW50ZXJlZChldmVudDogQ2RrRHJhZ0VudGVyKSB7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSAmJiAoZWRpdGFibGUgfHwgIWhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSlcIiBcbiAgICBjbGFzcz1cInNlY3Rpb24tYmxvY2stY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdlZGl0YWJsZS1zdGF0ZSc6IGVkaXRhYmxlLCAnYmxvY2staGlkZGVuLXN0YXRlJzogaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlLCAnYWN0aXZlLWJsb2NrJzogYWN0aXZlIH1cIlxuICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImJsb2NrQ29udGFpbmVyXCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgIWlzTWFpbkVkaXRvclN0YXRlXCIgXG4gICAgKGNka0RyYWdTdGFydGVkKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIiAoY2RrRHJhZ0VuZGVkKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCJcbiAgICAoY2RrRHJhZ0V4aXRlZCk9XCJvbkRyYWdFeGl0ZWQoJGV2ZW50KVwiIChjZGtEcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlcmVkKCRldmVudClcIj5cbiAgIFxuICAgIDxwZXAtZHJhZ2dhYmxlLWl0ZW0gKm5nSWY9XCJlZGl0YWJsZSAmJiBpc01haW5FZGl0b3JTdGF0ZVwiIGNka0RyYWdIYW5kbGUgc3R5bGU9XCJjdXJzb3I6IGdyYWI7XCJcbiAgICAgICAgY2xhc3M9XCJibG9jay10b29sYmFyXCIgW3RpdGxlXT1cImJsb2NrVGl0bGVcIiA+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWFjdGlvbnM+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzc05hbWVzPVwiY2F1dGlvblwiIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiAoYnV0dG9uQ2xpY2spPVwib25SZW1vdmVCbG9ja0NsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgPCEtLSA8aGlkZS1pbiBbaGlkZUluXT1cImJsb2NrQ29udGFpbmVyLkhpZGVcIiAoaGlkZUluQ2hhbmdlKT1cIm9uSGlkZUJsb2NrQ2hhbmdlKCRldmVudClcIj48L2hpZGUtaW4+IC0tPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2VkaXRcIiAoYnV0dG9uQ2xpY2spPVwib25FZGl0QmxvY2tDbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLXRlbXBsYXRlLXdyYXBwZXJcIiBbbmdTdHlsZV09XCJ7ICdvdmVyZmxvdyc6IChzZWN0aW9uSGVpZ2h0ID09PSAndW5zZXQnID8gJ3Vuc2V0JyA6ICdhdXRvJykgfVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tUZW1wbGF0ZVwiIGNsYXNzPVwiYmxvY2stdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJibG9ja1RlbXBsYXRlOyBjb250ZXh0OiB7IGJsb2NrS2V5OiBibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,192 +0,0 @@
1
- import { coerceNumberProperty } from '@angular/cdk/coercion';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { PepDialogActionButton, PepDialogData } from '@pepperi-addons/ngx-lib/dialog';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- import * as i2 from "@pepperi-addons/ngx-lib/dialog";
7
- import * as i3 from "@pepperi-addons/ngx-lib/textbox";
8
- import * as i4 from "@pepperi-addons/ngx-lib/select";
9
- import * as i5 from "@pepperi-addons/ngx-lib/checkbox";
10
- import * as i6 from "../layout-builder-editor/layout-builder-editor.component";
11
- export class SectionEditorComponent {
12
- constructor(translate, dialog) {
13
- this.translate = translate;
14
- this.dialog = dialog;
15
- this.MIN_HEIGHT = 40;
16
- this.sectionName = '';
17
- this.isAutoHeight = true;
18
- this.height = this.MIN_HEIGHT;
19
- this.hostObjectChange = new EventEmitter();
20
- this.collapseOnTablet = false;
21
- this.fillHeight = false;
22
- this.subSections = false;
23
- this.partsNumber = "2";
24
- this.partsNumberOptions = Array();
25
- this.splitOptions = Array();
26
- this.allSplitOptions = Array();
27
- this.initData();
28
- }
29
- set hostObject(value) {
30
- this._hostObject = value;
31
- this.sectionName = value.sectionName;
32
- this.split = value.split;
33
- this.isAutoHeight = !value.height || value.height === 0;
34
- this.height = this.isAutoHeight ? this.MIN_HEIGHT : value.height;
35
- this.collapseOnTablet = value.collapseOnTablet ?? false;
36
- this.fillHeight = value.fillHeight ?? false;
37
- }
38
- get hostObject() {
39
- return this._hostObject;
40
- }
41
- set split(value) {
42
- this._split = value;
43
- this.subSections = (this._split && this._split.length > 0) ? true : false;
44
- // Check how many parts we have.
45
- const arr = value?.split(' ');
46
- if (arr && arr.length > 1 && arr.length <= 4) {
47
- this.partsNumber = arr.length.toString();
48
- }
49
- else {
50
- this.partsNumber = "2";
51
- }
52
- this.loadSplitOptions();
53
- }
54
- get split() {
55
- return this._split;
56
- }
57
- initData() {
58
- this.partsNumberOptions = [
59
- { 'key': '2', 'value': '2 Parts' },
60
- { 'key': '3', 'value': '3 Parts' },
61
- { 'key': '4', 'value': '4 Parts' }
62
- ];
63
- this.allSplitOptions = [
64
- { 'key': '2', 'value': [
65
- { 'key': '1/4 3/4', 'value': '1/4-3/4' },
66
- { 'key': '1/3 2/3', 'value': '1/3-2/3' },
67
- { 'key': '1/2 1/2', 'value': '1/2-1/2' },
68
- { 'key': '2/3 1/3', 'value': '2/3-1/3' },
69
- { 'key': '3/4 1/4', 'value': '3/4-1/4' },
70
- ] },
71
- { 'key': '3', 'value': [
72
- { 'key': '1/3 1/3 1/3', 'value': '1/3-1/3-1/3' },
73
- { 'key': '1/2 1/4 1/4', 'value': '1/2-1/4-1/4' },
74
- { 'key': '1/4 1/2 1/4', 'value': '1/4-1/2-1/4' },
75
- { 'key': '1/4 1/4 1/2', 'value': '1/4-1/4-1/2' },
76
- ] },
77
- { 'key': '4', 'value': [
78
- { 'key': '1/4 1/4 1/4 1/4', 'value': '1/4-1/4-1/4-1/4' },
79
- ] }
80
- ];
81
- }
82
- loadSplitOptions() {
83
- const splitOptions = this.allSplitOptions.find((option) => option.key === this.partsNumber);
84
- if (splitOptions) {
85
- this.splitOptions = splitOptions.value;
86
- }
87
- else {
88
- this.splitOptions = this.allSplitOptions[0].value;
89
- }
90
- if (!this._split) {
91
- this._split = this.splitOptions[0].key;
92
- }
93
- }
94
- updateHostObject() {
95
- this._hostObject.sectionName = this.sectionName;
96
- this._hostObject.split = this.subSections ? this.split : undefined;
97
- this._hostObject.height = this.isAutoHeight ? 0 : this.height;
98
- this._hostObject.collapseOnTablet = this.collapseOnTablet;
99
- this._hostObject.fillHeight = this.fillHeight;
100
- this.hostObjectChange.emit(this.hostObject);
101
- }
102
- ngOnInit() {
103
- this.loadSplitOptions();
104
- }
105
- isAutoHeightChange(isChecked) {
106
- this.isAutoHeight = isChecked;
107
- this.updateHostObject();
108
- }
109
- onHeightChange(height) {
110
- if (height >= this.MIN_HEIGHT) {
111
- this.height = coerceNumberProperty(height, this.height);
112
- this.updateHostObject();
113
- }
114
- }
115
- onSectionNameChange(value) {
116
- this.sectionName = value;
117
- this.updateHostObject();
118
- }
119
- onCollapseOnTabletChange(value) {
120
- this.collapseOnTablet = value;
121
- this.updateHostObject();
122
- }
123
- onFillHeightChange(value) {
124
- this.fillHeight = value;
125
- this.updateHostObject();
126
- }
127
- onSubSectionsChange(value) {
128
- const oldValue = this.subSections;
129
- // Check if cancel the sub sections ( change from any -> 1 section ), if true need to show confirm message
130
- if (value === false) {
131
- this.subSections = value;
132
- this.showDeleteSectionMsg(() => {
133
- this.updateHostObject();
134
- }, () => {
135
- this.subSections = oldValue;
136
- });
137
- }
138
- else {
139
- this.subSections = value;
140
- this.updateHostObject();
141
- }
142
- }
143
- onPartsNumberChange(key) {
144
- const oldKey = this.partsNumber;
145
- // Check if decrease on sub sections number, if true need to show confirm message
146
- if (key && parseInt(key) < parseInt(this.partsNumber)) {
147
- this.partsNumber = key;
148
- this.showDeleteSectionMsg(() => {
149
- this.loadSplitOptions();
150
- this._split = this.splitOptions[0].key;
151
- this.updateHostObject();
152
- }, () => {
153
- this.partsNumber = oldKey;
154
- });
155
- }
156
- else {
157
- this.partsNumber = key;
158
- this.loadSplitOptions();
159
- this._split = this.splitOptions[0].key;
160
- this.updateHostObject();
161
- }
162
- }
163
- showDeleteSectionMsg(continueCB, cancelCB) {
164
- const actionButtons = [
165
- new PepDialogActionButton(this.translate.instant('ACTIONS.CANCEL'), '', () => {
166
- cancelCB();
167
- }),
168
- new PepDialogActionButton(this.translate.instant('ACTIONS.CONTINUE'), 'strong caution', () => {
169
- continueCB();
170
- })
171
- ];
172
- const content = this.translate.instant('LAYOUT_BUILDER.DELETE_SECTION_MSG');
173
- const title = this.translate.instant('LAYOUT_BUILDER.DELETE_SECTION_TITLE');
174
- const dataMsg = new PepDialogData({ title, actionsType: 'custom', content, actionButtons });
175
- this.dialog.openDefaultDialog(dataMsg);
176
- }
177
- onSplitChange(key) {
178
- this._split = key;
179
- this.updateHostObject();
180
- }
181
- }
182
- SectionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorComponent, deps: [{ token: i1.TranslateService }, { token: i2.PepDialogService }], target: i0.ɵɵFactoryTarget.Component });
183
- SectionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionEditorComponent, selector: "section-editor", inputs: { hostObject: "hostObject" }, outputs: { hostObjectChange: "hostObjectChange" }, ngImport: i0, template: "<pep-layout-builder-editor class=\"section-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <!-- \n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"isAutoHeight\" [label]=\"'LAYOUT_BUILDER.AUTO_HEIGHT_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"isAutoHeightChange($event)\"></pep-checkbox>\n <pep-textbox [label]=\"'LAYOUT_BUILDER.HEIGHT_TITLE' | translate\" type=\"int\" [minValue]=\"MIN_HEIGHT\" [disabled]=\"isAutoHeight\" [value]=\"height\" (valueChange)=\"onHeightChange($event)\"></pep-textbox> \n </div>\n -->\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</pep-layout-builder-editor>\n\n<!-- <div class=\"section-editor-container layout-builder-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</div> -->\n", styles: [".section-editor-container .split-area{display:grid;grid-template-columns:1fr 1fr;gap:var(--pep-spacing-lg, 1rem)}\n"], dependencies: [{ kind: "component", type: i3.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "minFractionDigits", "maxFractionDigits", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey", "regex", "regexError", "isInFocus"], outputs: ["valueChange", "keyup"] }, { kind: "component", type: i4.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "placeholder", "placeholderWhenDisabled", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval", "addValueToOptionsIfNotExist"], outputs: ["valueChange"] }, { kind: "component", type: i5.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepLayoutBuilderEditorComponent, selector: "pep-layout-builder-editor", inputs: ["editorTabs"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorComponent, decorators: [{
185
- type: Component,
186
- args: [{ selector: 'section-editor', template: "<pep-layout-builder-editor class=\"section-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <!-- \n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"isAutoHeight\" [label]=\"'LAYOUT_BUILDER.AUTO_HEIGHT_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"isAutoHeightChange($event)\"></pep-checkbox>\n <pep-textbox [label]=\"'LAYOUT_BUILDER.HEIGHT_TITLE' | translate\" type=\"int\" [minValue]=\"MIN_HEIGHT\" [disabled]=\"isAutoHeight\" [value]=\"height\" (valueChange)=\"onHeightChange($event)\"></pep-textbox> \n </div>\n -->\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</pep-layout-builder-editor>\n\n<!-- <div class=\"section-editor-container layout-builder-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</div> -->\n", styles: [".section-editor-container .split-area{display:grid;grid-template-columns:1fr 1fr;gap:var(--pep-spacing-lg, 1rem)}\n"] }]
187
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.PepDialogService }]; }, propDecorators: { hostObject: [{
188
- type: Input
189
- }], hostObjectChange: [{
190
- type: Output
191
- }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1lZGl0b3Ivc2VjdGlvbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1lZGl0b3Ivc2VjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFvQixNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztBQWlCeEcsTUFBTSxPQUFPLHNCQUFzQjtJQXNEL0IsWUFBb0IsU0FBMkIsRUFBVSxNQUF3QjtRQUE3RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBckR4RSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBa0J6QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQXNCakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsV0FBTSxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFdkIscUJBQWdCLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRTFHLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLHVCQUFrQixHQUFHLEtBQUssRUFBYyxDQUFDO1FBQ3pDLGlC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LENBQUM7O21IQTVNUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwrSUN0Qm5DLHkxSUF5REE7MkZEbkNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxnQkFBZ0I7c0lBU3RCLFVBQVU7c0JBRGIsS0FBSztnQkF3Q0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSVBlcE9wdGlvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFNwbGl0VHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBQZXBEaWFsb2dBY3Rpb25CdXR0b24sIFBlcERpYWxvZ0RhdGEsIFBlcERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuaW1wb3J0IHsgSUxheW91dFNlY3Rpb25FZGl0b3IgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3BsaXRPcHRpb24ge1xuICAgIGtleTogU3BsaXRUeXBlOyBcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJQWxsU3BsaXRPcHRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBBcnJheTxJU3BsaXRPcHRpb24+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NlY3Rpb24tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgTUlOX0hFSUdIVCA9IDQwO1xuICAgIFxuICAgIHByaXZhdGUgX2hvc3RPYmplY3QhOiBJTGF5b3V0U2VjdGlvbkVkaXRvcjtcbiAgICBASW5wdXQoKVxuICAgIHNldCBob3N0T2JqZWN0KHZhbHVlOiBJTGF5b3V0U2VjdGlvbkVkaXRvcikge1xuICAgICAgICB0aGlzLl9ob3N0T2JqZWN0ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zZWN0aW9uTmFtZSA9IHZhbHVlLnNlY3Rpb25OYW1lO1xuICAgICAgICB0aGlzLnNwbGl0ID0gdmFsdWUuc3BsaXQ7XG4gICAgICAgIHRoaXMuaXNBdXRvSGVpZ2h0ID0gIXZhbHVlLmhlaWdodCB8fCB2YWx1ZS5oZWlnaHQgPT09IDA7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5pc0F1dG9IZWlnaHQgPyB0aGlzLk1JTl9IRUlHSFQgOiB2YWx1ZS5oZWlnaHQ7XG4gICAgICAgIHRoaXMuY29sbGFwc2VPblRhYmxldCA9IHZhbHVlLmNvbGxhcHNlT25UYWJsZXQgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMuZmlsbEhlaWdodCA9IHZhbHVlLmZpbGxIZWlnaHQgPz8gZmFsc2U7XG4gICAgfVxuICAgIGdldCBob3N0T2JqZWN0KCk6IElMYXlvdXRTZWN0aW9uRWRpdG9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3RPYmplY3Q7XG4gICAgfVxuXG4gICAgc2VjdGlvbk5hbWUgPSAnJztcbiAgICBcbiAgICBwcml2YXRlIF9zcGxpdDogU3BsaXRUeXBlIHwgdW5kZWZpbmVkO1xuICAgIHNldCBzcGxpdCh2YWx1ZTogU3BsaXRUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3NwbGl0ID0gdmFsdWU7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnN1YlNlY3Rpb25zID0gKHRoaXMuX3NwbGl0ICYmIHRoaXMuX3NwbGl0Lmxlbmd0aCA+IDApID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIC8vIENoZWNrIGhvdyBtYW55IHBhcnRzIHdlIGhhdmUuXG4gICAgICAgIGNvbnN0IGFyciA9IHZhbHVlPy5zcGxpdCgnICcpO1xuICAgICAgICBpZiAoYXJyICYmIGFyci5sZW5ndGggPiAxICYmIGFyci5sZW5ndGggPD0gNCkge1xuICAgICAgICAgICAgdGhpcy5wYXJ0c051bWJlciA9IGFyci5sZW5ndGgudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFydHNOdW1iZXIgPSBcIjJcIjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5sb2FkU3BsaXRPcHRpb25zKCk7XG4gICAgfVxuICAgIGdldCBzcGxpdCgpOiBTcGxpdFR5cGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXQ7XG4gICAgfVxuICAgIFxuICAgIGlzQXV0b0hlaWdodCA9IHRydWU7XG4gICAgaGVpZ2h0OiBudW1iZXIgPSB0aGlzLk1JTl9IRUlHSFQ7XG5cbiAgICBAT3V0cHV0KCkgaG9zdE9iamVjdENoYW5nZTogRXZlbnRFbWl0dGVyPElMYXlvdXRTZWN0aW9uRWRpdG9yPiA9IG5ldyBFdmVudEVtaXR0ZXI8SUxheW91dFNlY3Rpb25FZGl0b3I+KCk7XG4gICAgXG4gICAgY29sbGFwc2VPblRhYmxldCA9IGZhbHNlO1xuICAgIGZpbGxIZWlnaHQgPSBmYWxzZTtcbiAgICBzdWJTZWN0aW9ucyA9IGZhbHNlO1xuICAgIHBhcnRzTnVtYmVyID0gXCIyXCI7XG4gICAgcGFydHNOdW1iZXJPcHRpb25zID0gQXJyYXk8SVBlcE9wdGlvbj4oKTtcbiAgICBzcGxpdE9wdGlvbnMgPSBBcnJheTxJU3BsaXRPcHRpb24+KCk7XG4gICAgYWxsU3BsaXRPcHRpb25zID0gQXJyYXk8SUFsbFNwbGl0T3B0aW9uPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBQZXBEaWFsb2dTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuaW5pdERhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXREYXRhKCkge1xuICAgICAgICB0aGlzLnBhcnRzTnVtYmVyT3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHsgJ2tleSc6ICcyJywgJ3ZhbHVlJzogJzIgUGFydHMnIH0sIFxuICAgICAgICAgICAgeyAna2V5JzogJzMnLCAndmFsdWUnOiAnMyBQYXJ0cycgfSxcbiAgICAgICAgICAgIHsgJ2tleSc6ICc0JywgJ3ZhbHVlJzogJzQgUGFydHMnIH1cbiAgICAgICAgXTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuYWxsU3BsaXRPcHRpb25zID0gW1xuICAgICAgICAgICAgeyAna2V5JzogJzInLCAndmFsdWUnOiBbXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzEvNCAzLzQnLCAndmFsdWUnOiAnMS80LTMvNCcgfSxcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMS8zIDIvMycsICd2YWx1ZSc6ICcxLzMtMi8zJyB9LFxuICAgICAgICAgICAgICAgIHsgJ2tleSc6ICcxLzIgMS8yJywgJ3ZhbHVlJzogJzEvMi0xLzInIH0sXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzIvMyAxLzMnLCAndmFsdWUnOiAnMi8zLTEvMycgfSxcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMy80IDEvNCcsICd2YWx1ZSc6ICczLzQtMS80JyB9LFxuICAgICAgICAgICAgXX0sIFxuICAgICAgICAgICAgeyAna2V5JzogJzMnLCAndmFsdWUnOiBbXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzEvMyAxLzMgMS8zJywgJ3ZhbHVlJzogJzEvMy0xLzMtMS8zJyB9LFxuICAgICAgICAgICAgICAgIHsgJ2tleSc6ICcxLzIgMS80IDEvNCcsICd2YWx1ZSc6ICcxLzItMS80LTEvNCcgfSxcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMS80IDEvMiAxLzQnLCAndmFsdWUnOiAnMS80LTEvMi0xLzQnIH0sXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzEvNCAxLzQgMS8yJywgJ3ZhbHVlJzogJzEvNC0xLzQtMS8yJyB9LFxuICAgICAgICAgICAgXX0sXG4gICAgICAgICAgICB7ICdrZXknOiAnNCcsICd2YWx1ZSc6IFtcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMS80IDEvNCAxLzQgMS80JywgJ3ZhbHVlJzogJzEvNC0xLzQtMS80LTEvNCcgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkU3BsaXRPcHRpb25zKCkge1xuICAgICAgICBjb25zdCBzcGxpdE9wdGlvbnMgPSB0aGlzLmFsbFNwbGl0T3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHRoaXMucGFydHNOdW1iZXIpO1xuICAgICAgICBpZiAoc3BsaXRPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnNwbGl0T3B0aW9ucyA9IHNwbGl0T3B0aW9ucy52YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3BsaXRPcHRpb25zID0gdGhpcy5hbGxTcGxpdE9wdGlvbnNbMF0udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3NwbGl0KSB7XG4gICAgICAgICAgICB0aGlzLl9zcGxpdCA9IHRoaXMuc3BsaXRPcHRpb25zWzBdLmtleTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSG9zdE9iamVjdCgpIHtcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdC5zZWN0aW9uTmFtZSA9IHRoaXMuc2VjdGlvbk5hbWU7XG4gICAgICAgIHRoaXMuX2hvc3RPYmplY3Quc3BsaXQgPSB0aGlzLnN1YlNlY3Rpb25zID8gdGhpcy5zcGxpdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdC5oZWlnaHQgPSB0aGlzLmlzQXV0b0hlaWdodCA/IDAgOiB0aGlzLmhlaWdodDtcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdC5jb2xsYXBzZU9uVGFibGV0ID0gdGhpcy5jb2xsYXBzZU9uVGFibGV0O1xuICAgICAgICB0aGlzLl9ob3N0T2JqZWN0LmZpbGxIZWlnaHQgPSB0aGlzLmZpbGxIZWlnaHQ7XG5cbiAgICAgICAgdGhpcy5ob3N0T2JqZWN0Q2hhbmdlLmVtaXQodGhpcy5ob3N0T2JqZWN0KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkU3BsaXRPcHRpb25zKCk7XG4gICAgfVxuICAgIFxuICAgIGlzQXV0b0hlaWdodENoYW5nZShpc0NoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0F1dG9IZWlnaHQgPSBpc0NoZWNrZWQ7XG4gICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgIH1cblxuICAgIG9uSGVpZ2h0Q2hhbmdlKGhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChoZWlnaHQgPj0gdGhpcy5NSU5fSEVJR0hUKSB7XG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IGNvZXJjZU51bWJlclByb3BlcnR5KGhlaWdodCwgdGhpcy5oZWlnaHQpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIb3N0T2JqZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgb25TZWN0aW9uTmFtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VjdGlvbk5hbWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVIb3N0T2JqZWN0KCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZU9uVGFibGV0Q2hhbmdlKHZhbHVlOiBib29sZWFuKXtcbiAgICAgICAgdGhpcy5jb2xsYXBzZU9uVGFibGV0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgIH1cblxuICAgIG9uRmlsbEhlaWdodENoYW5nZSh2YWx1ZTogYm9vbGVhbil7XG4gICAgICAgIHRoaXMuZmlsbEhlaWdodCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZUhvc3RPYmplY3QoKTtcbiAgICB9XG5cbiAgICBvblN1YlNlY3Rpb25zQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5zdWJTZWN0aW9ucztcbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FuY2VsIHRoZSBzdWIgc2VjdGlvbnMgKCBjaGFuZ2UgZnJvbSBhbnkgLT4gMSBzZWN0aW9uICksIGlmIHRydWUgbmVlZCB0byBzaG93IGNvbmZpcm0gbWVzc2FnZVxuICAgICAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnN1YlNlY3Rpb25zID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNob3dEZWxldGVTZWN0aW9uTXNnKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUhvc3RPYmplY3QoKTtcbiAgICAgICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YlNlY3Rpb25zID0gb2xkVmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3ViU2VjdGlvbnMgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICBcbiAgICBvblBhcnRzTnVtYmVyQ2hhbmdlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG9sZEtleSA9IHRoaXMucGFydHNOdW1iZXI7XG4gICAgICAgIC8vIENoZWNrIGlmIGRlY3JlYXNlIG9uIHN1YiBzZWN0aW9ucyBudW1iZXIsIGlmIHRydWUgbmVlZCB0byBzaG93IGNvbmZpcm0gbWVzc2FnZVxuICAgICAgICBpZiAoa2V5ICYmIHBhcnNlSW50KGtleSkgPCBwYXJzZUludCh0aGlzLnBhcnRzTnVtYmVyKSkge1xuICAgICAgICAgICAgdGhpcy5wYXJ0c051bWJlciA9IGtleTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RlbGV0ZVNlY3Rpb25Nc2coKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZFNwbGl0T3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NwbGl0ID0gdGhpcy5zcGxpdE9wdGlvbnNbMF0ua2V5O1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgICAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGFydHNOdW1iZXIgPSBvbGRLZXk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXJ0c051bWJlciA9IGtleTtcbiAgICAgICAgICAgIHRoaXMubG9hZFNwbGl0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5fc3BsaXQgPSB0aGlzLnNwbGl0T3B0aW9uc1swXS5rZXk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUhvc3RPYmplY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dEZWxldGVTZWN0aW9uTXNnKGNvbnRpbnVlQ0I6ICgpID0+IHZvaWQsIGNhbmNlbENCOiAoKSA9PiB2b2lkKXtcbiAgICAgICAgY29uc3QgYWN0aW9uQnV0dG9ucyA9IFtcbiAgICAgICAgICAgIG5ldyBQZXBEaWFsb2dBY3Rpb25CdXR0b24oXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQUNUSU9OUy5DQU5DRUwnKSxcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbENCKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBQZXBEaWFsb2dBY3Rpb25CdXR0b24oXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQUNUSU9OUy5DT05USU5VRScpLFxuICAgICAgICAgICAgICAgICdzdHJvbmcgY2F1dGlvbicsXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZUNCKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICBdO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLkRFTEVURV9TRUNUSU9OX01TRycpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLkRFTEVURV9TRUNUSU9OX1RJVExFJyk7XG4gICAgICAgIGNvbnN0IGRhdGFNc2cgPSBuZXcgUGVwRGlhbG9nRGF0YSh7dGl0bGUsIGFjdGlvbnNUeXBlOiAnY3VzdG9tJywgY29udGVudCwgYWN0aW9uQnV0dG9uc30pO1xuXG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW5EZWZhdWx0RGlhbG9nKGRhdGFNc2cpO1xuICAgIH1cblxuXG4gICAgb25TcGxpdENoYW5nZShrZXk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zcGxpdCA9IGtleSBhcyBTcGxpdFR5cGU7XG4gICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgIH1cbn1cbiIsIjxwZXAtbGF5b3V0LWJ1aWxkZXItZWRpdG9yIGNsYXNzPVwic2VjdGlvbi1lZGl0b3ItY29udGFpbmVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC10ZXh0Ym94IFt2YWx1ZV09XCJzZWN0aW9uTmFtZVwiIFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuU0VDVElPTl9OQU1FX1RJVExFJyB8IHRyYW5zbGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJvblNlY3Rpb25OYW1lQ2hhbmdlKCRldmVudClcIj48L3BlcC10ZXh0Ym94PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gXG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cImlzQXV0b0hlaWdodFwiIFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuQVVUT19IRUlHSFRfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cImlzQXV0b0hlaWdodENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxwZXAtdGV4dGJveCBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLkhFSUdIVF9USVRMRScgfCB0cmFuc2xhdGVcIiB0eXBlPVwiaW50XCIgW21pblZhbHVlXT1cIk1JTl9IRUlHSFRcIiBbZGlzYWJsZWRdPVwiaXNBdXRvSGVpZ2h0XCIgW3ZhbHVlXT1cImhlaWdodFwiICh2YWx1ZUNoYW5nZSk9XCJvbkhlaWdodENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtdGV4dGJveD4gXG4gICAgPC9kaXY+XG4gICAgLS0+XG4gICAgPGRpdiBjbGFzcz1cImVkaXRvci1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8cGVwLWNoZWNrYm94IGNsYXNzPVwiY2hlY2tib3gtYXMtdGl0bGVcIiBbdmFsdWVdPVwic3ViU2VjdGlvbnNcIiBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLlNVQl9TRUNUSU9OX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiICh2YWx1ZUNoYW5nZSk9XCJvblN1YlNlY3Rpb25zQ2hhbmdlKCRldmVudClcIj48L3BlcC1jaGVja2JveD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwbGl0LWFyZWFcIj5cbiAgICAgICAgICAgIDxwZXAtc2VsZWN0IFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuU0VDVElPTlNfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3ZhbHVlXT1cInBhcnRzTnVtYmVyXCIgW29wdGlvbnNdPVwicGFydHNOdW1iZXJPcHRpb25zXCIgXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGFydHNOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiIFtlbXB0eU9wdGlvbl09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCIhc3ViU2VjdGlvbnNcIj48L3BlcC1zZWxlY3Q+XG4gICAgICAgICAgICA8cGVwLXNlbGVjdCBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLlNQTElUX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFt2YWx1ZV09XCJzcGxpdCB8fCAnJ1wiIFtvcHRpb25zXT1cInNwbGl0T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uU3BsaXRDaGFuZ2UoJGV2ZW50KVwiIFtlbXB0eU9wdGlvbl09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCIhc3ViU2VjdGlvbnNcIj48L3BlcC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cImNvbGxhcHNlT25UYWJsZXRcIiBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLkNPTExBUFNFX09OX1RBQkxFVF9USVRMRScgfCB0cmFuc2xhdGVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIiAodmFsdWVDaGFuZ2UpPVwib25Db2xsYXBzZU9uVGFibGV0Q2hhbmdlKCRldmVudClcIj48L3BlcC1jaGVja2JveD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItdGl0bGUgYm9keS14c1wiPnt7KCdMQVlPVVRfQlVJTERFUi5DT0xMQVBTRV9PTl9UQUJMRVRfREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cImZpbGxIZWlnaHRcIiBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLkZJTExfSEVJR0hUX1NFQ1RJT05fVElUTEUnIHwgdHJhbnNsYXRlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uRmlsbEhlaWdodENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlIGJvZHkteHNcIj57eygnTEFZT1VUX0JVSUxERVIuRklMTF9IRUlHSFRfU0VDVElPTl9ERVNDUklQVElPTicgfCB0cmFuc2xhdGUpfX08L3NwYW4+XG4gICAgPC9kaXY+XG48L3BlcC1sYXlvdXQtYnVpbGRlci1lZGl0b3I+XG5cbjwhLS0gPGRpdiBjbGFzcz1cInNlY3Rpb24tZWRpdG9yLWNvbnRhaW5lciBsYXlvdXQtYnVpbGRlci1lZGl0b3ItY29udGFpbmVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC10ZXh0Ym94IFt2YWx1ZV09XCJzZWN0aW9uTmFtZVwiIFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuU0VDVElPTl9OQU1FX1RJVExFJyB8IHRyYW5zbGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJvblNlY3Rpb25OYW1lQ2hhbmdlKCRldmVudClcIj48L3BlcC10ZXh0Ym94PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cInN1YlNlY3Rpb25zXCIgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5TVUJfU0VDVElPTl9USVRMRScgfCB0cmFuc2xhdGVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIiAodmFsdWVDaGFuZ2UpPVwib25TdWJTZWN0aW9uc0NoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGxpdC1hcmVhXCI+XG4gICAgICAgICAgICA8cGVwLXNlbGVjdCBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLlNFQ1RJT05TX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFt2YWx1ZV09XCJwYXJ0c051bWJlclwiIFtvcHRpb25zXT1cInBhcnRzTnVtYmVyT3B0aW9uc1wiIFxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblBhcnRzTnVtYmVyQ2hhbmdlKCRldmVudClcIiBbZW1wdHlPcHRpb25dPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiIXN1YlNlY3Rpb25zXCI+PC9wZXAtc2VsZWN0PlxuICAgICAgICAgICAgPHBlcC1zZWxlY3QgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5TUExJVF9USVRMRScgfCB0cmFuc2xhdGVcIiBbdmFsdWVdPVwic3BsaXQgfHwgJydcIiBbb3B0aW9uc109XCJzcGxpdE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblNwbGl0Q2hhbmdlKCRldmVudClcIiBbZW1wdHlPcHRpb25dPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiIXN1YlNlY3Rpb25zXCI+PC9wZXAtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxwZXAtY2hlY2tib3ggY2xhc3M9XCJjaGVja2JveC1hcy10aXRsZVwiIFt2YWx1ZV09XCJjb2xsYXBzZU9uVGFibGV0XCIgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5DT0xMQVBTRV9PTl9UQUJMRVRfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ29sbGFwc2VPblRhYmxldENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlIGJvZHkteHNcIj57eygnTEFZT1VUX0JVSUxERVIuQ09MTEFQU0VfT05fVEFCTEVUX0RFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZSl9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxwZXAtY2hlY2tib3ggY2xhc3M9XCJjaGVja2JveC1hcy10aXRsZVwiIFt2YWx1ZV09XCJmaWxsSGVpZ2h0XCIgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5GSUxMX0hFSUdIVF9TRUNUSU9OX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiICh2YWx1ZUNoYW5nZSk9XCJvbkZpbGxIZWlnaHRDaGFuZ2UoJGV2ZW50KVwiPjwvcGVwLWNoZWNrYm94PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci10aXRsZSBib2R5LXhzXCI+e3soJ0xBWU9VVF9CVUlMREVSLkZJTExfSEVJR0hUX1NFQ1RJT05fREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+IC0tPlxuIl19
@@ -1,44 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SectionEditorComponent } from './section-editor.component';
4
- import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
5
- import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';
6
- import { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';
7
- import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
8
- import { TranslateModule } from '@ngx-translate/core';
9
- import { PepLayoutBuilderEditorModule } from '../layout-builder-editor/layout-builder-editor.module';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@ngx-translate/core";
12
- export class SectionEditorModule {
13
- }
14
- SectionEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- SectionEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, declarations: [SectionEditorComponent], imports: [CommonModule,
16
- PepButtonModule,
17
- PepTextboxModule,
18
- PepSelectModule,
19
- PepCheckboxModule,
20
- PepLayoutBuilderEditorModule, i1.TranslateModule], exports: [SectionEditorComponent] });
21
- SectionEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, imports: [CommonModule,
22
- PepButtonModule,
23
- PepTextboxModule,
24
- PepSelectModule,
25
- PepCheckboxModule,
26
- PepLayoutBuilderEditorModule,
27
- TranslateModule.forChild()] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, decorators: [{
29
- type: NgModule,
30
- args: [{
31
- declarations: [SectionEditorComponent],
32
- imports: [
33
- CommonModule,
34
- PepButtonModule,
35
- PepTextboxModule,
36
- PepSelectModule,
37
- PepCheckboxModule,
38
- PepLayoutBuilderEditorModule,
39
- TranslateModule.forChild()
40
- ],
41
- exports: [SectionEditorComponent]
42
- }]
43
- }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1lZGl0b3Ivc2VjdGlvbi1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFlckcsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVpiLHNCQUFzQixhQUVqQyxZQUFZO1FBQ1osZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLDRCQUE0QixpQ0FHdEIsc0JBQXNCO2lIQUV2QixtQkFBbUIsWUFWeEIsWUFBWTtRQUNaLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsZUFBZSxDQUFDLFFBQVEsRUFBRTsyRkFJckIsbUJBQW1CO2tCQWIvQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIsZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWN0aW9uRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLWVkaXRvci5jb21wb25lbnQnXG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwVGV4dGJveE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3RleHRib3gnO1xuaW1wb3J0IHsgUGVwQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9jaGVja2JveCc7XG5pbXBvcnQgeyBQZXBTZWxlY3RNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQZXBMYXlvdXRCdWlsZGVyRWRpdG9yTW9kdWxlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItZWRpdG9yL2xheW91dC1idWlsZGVyLWVkaXRvci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NlY3Rpb25FZGl0b3JDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFBlcFRleHRib3hNb2R1bGUsXG4gICAgICAgIFBlcFNlbGVjdE1vZHVsZSxcbiAgICAgICAgUGVwQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFBlcExheW91dEJ1aWxkZXJFZGl0b3JNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpXG4gICAgXSxcbiAgICBleHBvcnRzOiBbU2VjdGlvbkVkaXRvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkVkaXRvck1vZHVsZSB7IH1cbiJdfQ==
@@ -1,82 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/dialog";
5
- import * as i2 from "../manage-parameters.service";
6
- import * as i3 from "@ngx-translate/core";
7
- import * as i4 from "@pepperi-addons/ngx-lib/dialog";
8
- import * as i5 from "@pepperi-addons/ngx-lib/button";
9
- import * as i6 from "@pepperi-addons/ngx-composite-lib/generic-form";
10
- export class ManageParameterComponent {
11
- constructor(dialogRef, manageParametersService, translate, incoming) {
12
- this.dialogRef = dialogRef;
13
- this.manageParametersService = manageParametersService;
14
- this.translate = translate;
15
- this.incoming = incoming;
16
- this.parameter = undefined;
17
- this.showType = false;
18
- this.showAccessibility = false;
19
- this.isValid = true;
20
- }
21
- loadDataView(paramType) {
22
- this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility);
23
- }
24
- ngOnInit() {
25
- this.parameter = this.getParameter(this.incoming.Parameter);
26
- this.showType = this.incoming.ShowType ?? false;
27
- this.showAccessibility = this.incoming.ShowAccessibility ?? false;
28
- this.loadDataView(this.parameter?.Type);
29
- }
30
- saveParameter() {
31
- // before updating the parameter, remove redundant properties
32
- if (this.parameter && this.showAccessibility) {
33
- delete this.parameter['Accessibility'];
34
- delete this.parameter['Accessibility_Description'];
35
- }
36
- this.close(this.parameter);
37
- }
38
- close(parameter = undefined) {
39
- this.dialogRef.close(parameter || null);
40
- }
41
- getParameter(parameter) {
42
- const ret = JSON.parse(JSON.stringify(parameter));
43
- Object.keys(parameter || {}).forEach(prop => {
44
- if (typeof (parameter[prop]) != 'boolean') {
45
- // if the value is null/undefined, don't copy it
46
- if (parameter[prop]) {
47
- ret[prop] = parameter[prop].toString();
48
- }
49
- }
50
- else if (prop === 'Internal' && this.showAccessibility) {
51
- ret['Accessibility'] = parameter[prop] ? 'Internal' : 'External';
52
- }
53
- else {
54
- ret[prop] = parameter[prop];
55
- }
56
- });
57
- if (this.showAccessibility) {
58
- ret['Accessibility_Description'] = this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION');
59
- }
60
- return ret;
61
- }
62
- onValueChanged(event) {
63
- if (event.ApiName === 'Type' && this.showType) {
64
- this.loadDataView(event.Value);
65
- }
66
- else if (event.ApiName === 'Accessibility' && this.showAccessibility) {
67
- if (this.parameter) {
68
- this.parameter['Internal'] = event.Value === 'Internal';
69
- }
70
- }
71
- }
72
- }
73
- ManageParameterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParameterComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.ManageParametersService }, { token: i3.TranslateService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
74
- ManageParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ManageParameterComponent, selector: "manage-parameter", ngImport: i0, template: "<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>", styles: [""], dependencies: [{ kind: "component", type: i4.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: i5.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i6.GenericFormComponent, selector: "pep-generic-form", inputs: ["dataSource", "dataView", "isLocked", "inline", "showTopBar", "addPadding"], outputs: ["valueChange", "fieldClick", "formValidationChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParameterComponent, decorators: [{
76
- type: Component,
77
- args: [{ selector: 'manage-parameter', template: "<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>" }]
78
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.ManageParametersService }, { type: i3.TranslateService }, { type: undefined, decorators: [{
79
- type: Inject,
80
- args: [MAT_DIALOG_DATA]
81
- }] }]; } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9tYW5hZ2UtcGFyYW1ldGVycy9tYW5hZ2UtcGFyYW1ldGVyL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbWFuYWdlLXBhcmFtZXRlcnMvbWFuYWdlLXBhcmFtZXRlci9tYW5hZ2UtcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQWN6RSxNQUFNLE9BQU8sd0JBQXdCO0lBZWpDLFlBQXNCLFNBQWlELEVBQzNELHVCQUFnRCxFQUNoRCxTQUEyQixFQUNILFFBQTRCO1FBSDFDLGNBQVMsR0FBVCxTQUFTLENBQXdDO1FBQzNELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDSCxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQVRoRSxjQUFTLEdBQTZCLFNBQVMsQ0FBQztRQUNoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBT2YsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUEwQjtRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUosQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUM7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxhQUFhO1FBQ1QsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFzQyxTQUFTO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXVCO1FBQ2hDLE1BQU0sR0FBRyxHQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxPQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFO2dCQUN0QyxnREFBZ0Q7Z0JBQ2hELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNqQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUMxQzthQUNKO2lCQUFNLElBQUksSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3RELEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBO2FBQ25FO2lCQUFNO2dCQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0I7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7U0FDdkc7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBaUM7UUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDO2FBQzNEO1NBQ0o7SUFDTCxDQUFDOztxSEE3RVEsd0JBQXdCLHFIQWtCckIsZUFBZTt5R0FsQmxCLHdCQUF3Qix3RENmckMsK3JDQXlCYTsyRkRWQSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksa0JBQWtCOzswQkFzQnZCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBHZW5lcmljRm9ybUNvbXBvbmVudCwgSVBlcEdlbmVyaWNGb3JtRGF0YVZpZXcsIElQZXBHZW5lcmljRm9ybVZhbHVlQ2hhbmdlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtZm9ybSc7XG5pbXBvcnQgeyBJUGFyYW1lbWV0ZXIsIElQYXJhbWV0ZXJGb3JtRGF0YSB9IGZyb20gJy4uL21hbmFnZS1wYXJhbWV0ZXJzLm1vZGVsJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9tYW5hZ2UtcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFNjaGVtZUZpZWxkVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWFuYWdlLXBhcmFtZXRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VQYXJhbWV0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgLy8gQFZpZXdDaGlsZCgnZmxvd3NMaXN0Jywge3JlYWQ6IEdlbmVyaWNGb3JtQ29tcG9uZW50fSkgc2V0IGdlbmVyaWNGb3JtU2V0dGVyKGluRm9ybTogR2VuZXJpY0Zvcm1Db21wb25lbnQpIHtcbiAgICAvLyAgICAgaWYgKGluRm9ybSkge1xuICAgIC8vICAgICAgICAgdGhpcy5mb3JtID0gaW5Gb3JtO1xuICAgIC8vICAgICB9XG4gICAgLy8gfTtcbiAgICBcbiAgICBmb3JtITogR2VuZXJpY0Zvcm1Db21wb25lbnQ7XG4gICAgcGFyYW1ldGVyOiBJUGFyYW1lbWV0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgc2hvd1R5cGUgPSBmYWxzZTtcbiAgICBzaG93QWNjZXNzaWJpbGl0eSA9IGZhbHNlO1xuICAgIGRhdGFWaWV3ITogSVBlcEdlbmVyaWNGb3JtRGF0YVZpZXc7XG4gICAgaXNWYWxpZCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvciAoIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TWFuYWdlUGFyYW1ldGVyQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBtYW5hZ2VQYXJhbWV0ZXJzU2VydmljZTogTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGluY29taW5nOiBJUGFyYW1ldGVyRm9ybURhdGEpIHtcblxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZERhdGFWaWV3KHBhcmFtVHlwZTogU2NoZW1lRmllbGRUeXBlKSB7XG4gICAgICAgIHRoaXMuZGF0YVZpZXcgPSB0aGlzLm1hbmFnZVBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlckZvcm1EYXRhVmlldyh0aGlzLmluY29taW5nLk1vZGUsIHBhcmFtVHlwZSB8fCAnU3RyaW5nJywgdGhpcy5zaG93VHlwZSwgdGhpcy5zaG93QWNjZXNzaWJpbGl0eSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyYW1ldGVyID0gdGhpcy5nZXRQYXJhbWV0ZXIodGhpcy5pbmNvbWluZy5QYXJhbWV0ZXIpO1xuICAgICAgICB0aGlzLnNob3dUeXBlID0gdGhpcy5pbmNvbWluZy5TaG93VHlwZSA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93QWNjZXNzaWJpbGl0eSA9IHRoaXMuaW5jb21pbmcuU2hvd0FjY2Vzc2liaWxpdHkgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZERhdGFWaWV3KHRoaXMucGFyYW1ldGVyPy5UeXBlKTtcbiAgICB9XG5cbiAgICBzYXZlUGFyYW1ldGVyKCkge1xuICAgICAgICAvLyBiZWZvcmUgdXBkYXRpbmcgdGhlIHBhcmFtZXRlciwgcmVtb3ZlIHJlZHVuZGFudCBwcm9wZXJ0aWVzXG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlciAmJiB0aGlzLnNob3dBY2Nlc3NpYmlsaXR5KSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5wYXJhbWV0ZXJbJ0FjY2Vzc2liaWxpdHknXTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhcmFtZXRlclsnQWNjZXNzaWJpbGl0eV9EZXNjcmlwdGlvbiddO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZSh0aGlzLnBhcmFtZXRlcik7XG4gICAgfVxuXG4gICAgY2xvc2UocGFyYW1ldGVyOiBJUGFyYW1lbWV0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocGFyYW1ldGVyIHx8IG51bGwpO1xuICAgIH1cblxuICAgIGdldFBhcmFtZXRlcihwYXJhbWV0ZXI6IElQYXJhbWVtZXRlcik6IElQYXJhbWVtZXRlciB7XG4gICAgICAgIGNvbnN0IHJldDogSVBhcmFtZW1ldGVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXIpKTtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1ldGVyIHx8IHt9KS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZihwYXJhbWV0ZXJbcHJvcF0pICE9ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBudWxsL3VuZGVmaW5lZCwgZG9uJ3QgY29weSBpdFxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJbcHJvcF0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0W3Byb3BdID0gcGFyYW1ldGVyW3Byb3BdLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wID09PSAnSW50ZXJuYWwnICYmIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICByZXRbJ0FjY2Vzc2liaWxpdHknXSA9IHBhcmFtZXRlcltwcm9wXSA/ICdJbnRlcm5hbCcgOiAnRXh0ZXJuYWwnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldFtwcm9wXSA9IHBhcmFtZXRlcltwcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5zaG93QWNjZXNzaWJpbGl0eSkge1xuICAgICAgICAgICAgcmV0WydBY2Nlc3NpYmlsaXR5X0Rlc2NyaXB0aW9uJ10gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5JTlRFUk5BTF9ERVNDUklQVElPTicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlZChldmVudDogSVBlcEdlbmVyaWNGb3JtVmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LkFwaU5hbWUgPT09ICdUeXBlJyAmJiB0aGlzLnNob3dUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWREYXRhVmlldyhldmVudC5WYWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuQXBpTmFtZSA9PT0gJ0FjY2Vzc2liaWxpdHknICYmIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVyWydJbnRlcm5hbCddID0gZXZlbnQuVmFsdWUgPT09ICdJbnRlcm5hbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCI8cGVwLWRpYWxvZyBbdGl0bGVdPVwiKGluY29taW5nLk1vZGUgPT09ICdlZGl0JyA/ICdNQU5BR0VfUEFSQU1FVEVSUy5FRElUX0ZPUk1fVElUTEUnIDogJ01BTkFHRV9QQVJBTUVURVJTLkFERF9GT1JNX1RJVExFJykgfCB0cmFuc2xhdGVcIj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgPHBlcC1nZW5lcmljLWZvcm0gI2FkZEZvcm0gW2RhdGFTb3VyY2VdPVwicGFyYW1ldGVyXCIgW2RhdGFWaWV3XT1cImRhdGFWaWV3XCIgKGZvcm1WYWxpZGF0aW9uQ2hhbmdlKT1cImlzVmFsaWQgPSAkZXZlbnRcIiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgIDwvcGVwLWdlbmVyaWMtZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnQtbmVnYXRpdmVcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+ICAgICAgICAgXG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplVHlwZV09XCInbWQnXCIgXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidDYW5jZWwnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgICAgICAgW3N0eWxlVHlwZV09XCInd2VhaydcIiBcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgID48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplVHlwZV09XCInbWQnXCIgXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIihpbmNvbWluZy5Nb2RlID09PSAnZWRpdCcgPyAnVXBkYXRlJyA6ICdTYXZlJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZVR5cGVdPVwiJ3N0cm9uZydcIiBcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwic2F2ZVBhcmFtZXRlcigpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWRcIlxuICAgICAgICAgICAgPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3BlcC1kaWFsb2c+Il19