@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
@@ -0,0 +1,376 @@
1
+ import { Component, HostBinding, Input, ViewChild, ViewChildren } from '@angular/core';
2
+ import { BaseDestroyerDirective, PepScreenSizeType } from '@pepperi-addons/ngx-lib';
3
+ import { PepPaddingSettings } from '@pepperi-addons/ngx-composite-lib/padding-settings';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../layout-builder-internal.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/cdk/drag-drop";
8
+ import * as i4 from "@pepperi-addons/ngx-lib/button";
9
+ import * as i5 from "../section-block/section-block.component";
10
+ import * as i6 from "../hide-in/hide-in.component";
11
+ import * as i7 from "@pepperi-addons/ngx-lib/draggable-items";
12
+ export class SectionComponent extends BaseDestroyerDirective {
13
+ set split(value) {
14
+ this._split = value;
15
+ this.refreshSplit();
16
+ }
17
+ get split() {
18
+ return this._split;
19
+ }
20
+ set height(value) {
21
+ this._height = value;
22
+ this.setStyleHeight();
23
+ }
24
+ get height() {
25
+ return this._height;
26
+ }
27
+ set collapseOnTablet(value) {
28
+ this._collapseOnTablet = value;
29
+ this.pepScreenSizeToFlipToVertical = value ? PepScreenSizeType.MD : PepScreenSizeType.XS;
30
+ this.refreshSplit();
31
+ }
32
+ get collapseOnTablet() {
33
+ return this._collapseOnTablet;
34
+ }
35
+ set padding(value) {
36
+ this._padding = value || new PepPaddingSettings(true, '0');
37
+ }
38
+ get padding() {
39
+ return this._padding;
40
+ }
41
+ set columns(value) {
42
+ this._columns = value || [];
43
+ }
44
+ get columns() {
45
+ return this._columns;
46
+ }
47
+ set hideIn(value) {
48
+ this._hideIn = value;
49
+ this.setIfHideForCurrentScreenType();
50
+ }
51
+ get hideIn() {
52
+ return this._hideIn;
53
+ }
54
+ // private _editable = false;
55
+ // protected set editable(value: boolean) {
56
+ // this._editable = value;
57
+ // this.refreshSplit();
58
+ // }
59
+ get editable() {
60
+ return this.layoutBuilderInternalService.editableState;
61
+ }
62
+ set screenSize(value) {
63
+ this._screenSize = value;
64
+ this.refreshSplit();
65
+ this.setScreenType();
66
+ }
67
+ get screenSize() {
68
+ return this._screenSize;
69
+ }
70
+ constructor(renderer, layoutBuilderInternalService) {
71
+ super();
72
+ this.renderer = renderer;
73
+ this.layoutBuilderInternalService = layoutBuilderInternalService;
74
+ this.key = '';
75
+ this.name = '';
76
+ this._split = undefined;
77
+ this._height = undefined;
78
+ this._collapseOnTablet = false;
79
+ this._padding = new PepPaddingSettings(true, '0');
80
+ this._columns = [];
81
+ this._hideIn = [];
82
+ this.styleMaxHeight = 'unset';
83
+ this.styleHeight = 'unset';
84
+ this.sectionsColumnsDropList = [];
85
+ // PepScreenSizeType = PepScreenSizeType;
86
+ this.sectionColumnKeyPrefix = '';
87
+ this.isMainEditorState = false;
88
+ this.isEditing = false;
89
+ this.selectedSectionKey = '';
90
+ this.selectedBlockKey = '';
91
+ this.containsBlocks = false;
92
+ this.shouldSetDefaultHeight = false;
93
+ this.pepScreenSizeToFlipToVertical = PepScreenSizeType.SM;
94
+ this.hideForCurrentScreenType = false;
95
+ this.draggingBlockKey = '';
96
+ this.draggingSectionKey = '';
97
+ this.hoverState = false;
98
+ this.isHorizontalView = false;
99
+ }
100
+ calculateIfSectionContainsBlocks() {
101
+ this.containsBlocks = this.columns.some(column => column.BlockContainer);
102
+ if (this.editable) {
103
+ this.shouldSetDefaultHeight = !this.containsBlocks;
104
+ }
105
+ }
106
+ setScreenType() {
107
+ this.screenType = this.layoutBuilderInternalService.getScreenType(this.screenSize);
108
+ this.setIfHideForCurrentScreenType();
109
+ this.setStyleHeight();
110
+ }
111
+ setIfHideForCurrentScreenType() {
112
+ this.hideForCurrentScreenType = this.layoutBuilderInternalService.getIsHidden(this.hideIn, this.screenType);
113
+ }
114
+ // private getCssSplitString() {
115
+ // switch (this.split) {
116
+ // case '1/2 1/2':
117
+ // return '1fr 1fr';
118
+ // case '1/2 1/4 1/4':
119
+ // return '2fr 1fr 1fr';
120
+ // case '1/3 1/3 1/3':
121
+ // return '1fr 1fr 1fr';
122
+ // case '1/3 2/3':
123
+ // return '1fr 2fr';
124
+ // case '1/4 1/2 1/4':
125
+ // return '1fr 2fr 1fr';
126
+ // case '1/4 1/4 1/2':
127
+ // return '1fr 1fr 2fr';
128
+ // case '1/4 1/4 1/4 1/4':
129
+ // return '1fr 1fr 1fr 1fr';
130
+ // case '1/4 3/4':
131
+ // return '1fr 3fr';
132
+ // case '2/3 1/3':
133
+ // return '2fr 1fr';
134
+ // case '3/4 1/4':
135
+ // return '3fr 1fr';
136
+ // default: // For one column.
137
+ // return '1fr';
138
+ // }
139
+ // }
140
+ getCssGridColumn(columnIndex) {
141
+ let res = '1/13';
142
+ let gridColumnValueArr = ['1/13'];
143
+ switch (this.split) {
144
+ case '1/2 1/2':
145
+ gridColumnValueArr = ['1/7', '7/13'];
146
+ break;
147
+ case '1/2 1/4 1/4':
148
+ gridColumnValueArr = ['1/7', '7/10', '10/13'];
149
+ break;
150
+ case '1/3 1/3 1/3':
151
+ gridColumnValueArr = ['1/5', '5/9', '9/13'];
152
+ break;
153
+ case '1/3 2/3':
154
+ gridColumnValueArr = ['1/5', '5/13'];
155
+ break;
156
+ case '1/4 1/2 1/4':
157
+ gridColumnValueArr = ['1/4', '4/10', '10/13'];
158
+ break;
159
+ case '1/4 1/4 1/2':
160
+ gridColumnValueArr = ['1/4', '4/7', '7/13'];
161
+ break;
162
+ case '1/4 1/4 1/4 1/4':
163
+ gridColumnValueArr = ['1/4', '4/7', '7/10', '10/13'];
164
+ break;
165
+ case '1/4 3/4':
166
+ gridColumnValueArr = ['1/4', '4/13'];
167
+ break;
168
+ case '2/3 1/3':
169
+ gridColumnValueArr = ['1/9', '9/13'];
170
+ break;
171
+ case '3/4 1/4':
172
+ gridColumnValueArr = ['1/10', '10/13'];
173
+ break;
174
+ }
175
+ if (gridColumnValueArr.length > columnIndex) {
176
+ res = gridColumnValueArr[columnIndex];
177
+ }
178
+ return res;
179
+ }
180
+ setSectionColumnStyle(sectionColumnElement, columnIndex) {
181
+ if (this.isHorizontalView) {
182
+ const gridColumnValue = this.getCssGridColumn(columnIndex);
183
+ this.renderer.setStyle(sectionColumnElement, 'grid-column', gridColumnValue);
184
+ }
185
+ else {
186
+ this.renderer.setStyle(sectionColumnElement, 'grid-column', 'unset');
187
+ }
188
+ }
189
+ refreshSplit() {
190
+ // Horizontal (true) for large screens, false for small screens.
191
+ this.isHorizontalView = this.screenSize < this.pepScreenSizeToFlipToVertical;
192
+ setTimeout(() => {
193
+ if (this.sectionContainerRef) {
194
+ // const cssSplitString = this.getCssSplitString();
195
+ // Go for all the columns in the columnsWrapper
196
+ this.columnsElementRef.toArray().map((section, sectionIndex) => {
197
+ if (this.isHorizontalView) {
198
+ this.renderer.setStyle(section.nativeElement, 'grid-auto-flow', 'column');
199
+ this.renderer.setStyle(section.nativeElement, 'grid-template-rows', 'unset');
200
+ // this.renderer.setStyle(section.nativeElement, 'grid-template-columns', cssSplitString);
201
+ this.renderer.setStyle(section.nativeElement, 'grid-template-columns', 'repeat(12, 1fr)');
202
+ }
203
+ else {
204
+ this.renderer.setStyle(section.nativeElement, 'grid-auto-flow', 'row');
205
+ this.renderer.setStyle(section.nativeElement, 'grid-template-columns', 'unset');
206
+ this.renderer.setStyle(section.nativeElement, 'grid-template-rows', 'unset');
207
+ // In runtime (or preview mode).
208
+ if (!this.editable) {
209
+ // const cssSplitArray = cssSplitString.split(' ');
210
+ // // If there are some hidden columns change the column width to 0 (for cut the spacing in the grid-template-rows).
211
+ // this.columns.forEach((column, index) => {
212
+ // if (!column.BlockContainer) {
213
+ // cssSplitArray[index] = '0';
214
+ // }
215
+ // });
216
+ //this.renderer.setStyle(section.nativeElement, 'grid-template-rows', cssSplitArray.join(' '));
217
+ this.renderer.setStyle(section.nativeElement, 'grid-template-rows', 'auto');
218
+ }
219
+ }
220
+ // Go for all the columns in the section and set there style.
221
+ const sectionColumns = section.nativeElement.querySelectorAll('.section-column');
222
+ for (let columnIndex = 0; columnIndex < sectionColumns.length; columnIndex++) {
223
+ this.setSectionColumnStyle(sectionColumns[columnIndex], columnIndex);
224
+ }
225
+ });
226
+ }
227
+ }, 0);
228
+ }
229
+ setStyleHeight() {
230
+ if (this.height && this.height > 0 && this.screenType !== 'Phablet') {
231
+ this.styleHeight = this.styleMaxHeight = `${this.height}px`;
232
+ }
233
+ else {
234
+ this.styleHeight = this.styleMaxHeight = 'unset';
235
+ }
236
+ }
237
+ getIsDragging() {
238
+ return this.draggingBlockKey.length > 0 && this.draggingSectionKey.length > 0;
239
+ }
240
+ getIsHidden(hideIn, currentScreenType) {
241
+ return this.layoutBuilderInternalService.getIsHidden(hideIn, currentScreenType);
242
+ }
243
+ ngOnInit() {
244
+ this.layoutBuilderInternalService.previewModeChange$.pipe(this.getDestroyer()).subscribe(previewMode => {
245
+ this.refreshSplit();
246
+ });
247
+ // Just to calculate if sections contains blocks
248
+ this.layoutBuilderInternalService.sectionsChange$.pipe(this.getDestroyer()).subscribe(res => {
249
+ this.calculateIfSectionContainsBlocks();
250
+ });
251
+ // this.layoutService.onResize$.pipe(this.getDestroyer()).subscribe((size: any) => {
252
+ // this.screenSize = size;
253
+ // });
254
+ this.layoutBuilderInternalService.screenSizeChange$.pipe(this.getDestroyer()).subscribe((size) => {
255
+ this.screenSize = size;
256
+ });
257
+ if (this.editable) {
258
+ this.layoutBuilderInternalService.sectionsColumnsDropListChange$.pipe(this.getDestroyer()).subscribe((sectionsColumnsDropList) => {
259
+ this.sectionsColumnsDropList = sectionsColumnsDropList;
260
+ });
261
+ this.layoutBuilderInternalService.editorChange$.pipe(this.getDestroyer()).subscribe((editor) => {
262
+ this.isMainEditorState = editor && editor.type === 'layout-builder';
263
+ this.isEditing = editor && editor.type === 'section' && editor.id === this.key;
264
+ this.selectedSectionKey = editor && editor.type === 'section' ? editor.id : '';
265
+ this.selectedBlockKey = editor && editor.type === 'block' ? editor.id : '';
266
+ });
267
+ this.layoutBuilderInternalService.draggingBlockKey.pipe(this.getDestroyer()).subscribe((draggingBlockKey) => {
268
+ this.draggingBlockKey = draggingBlockKey;
269
+ if (draggingBlockKey === '') {
270
+ this.calculateIfSectionContainsBlocks();
271
+ }
272
+ else {
273
+ // If there is only one block in the section and now it's this block that the user is dragging.
274
+ const blocksLength = this.columns.filter(column => column.BlockContainer).length;
275
+ if (blocksLength === 1 && this.columns.find(c => c.BlockContainer?.BlockKey === this.draggingBlockKey)) {
276
+ this.shouldSetDefaultHeight = true;
277
+ }
278
+ }
279
+ });
280
+ this.layoutBuilderInternalService.draggingSectionKey.pipe(this.getDestroyer()).subscribe((draggingSectionKey) => {
281
+ this.draggingSectionKey = draggingSectionKey;
282
+ });
283
+ }
284
+ this.sectionColumnKeyPrefix = this.layoutBuilderInternalService.getSectionColumnKey(this.key);
285
+ }
286
+ onEditSectionClick() {
287
+ this.layoutBuilderInternalService.navigateToEditor('section', this.key);
288
+ }
289
+ onRemoveSectionClick() {
290
+ this.layoutBuilderInternalService.removeSection(this.key);
291
+ }
292
+ onHideSectionChange(hideIn) {
293
+ this.layoutBuilderInternalService.hideSection(this.key, hideIn);
294
+ }
295
+ onHideInMenuOpened() {
296
+ this.hoverState = true;
297
+ }
298
+ onHideInMenuClosed() {
299
+ this.hoverState = false;
300
+ }
301
+ onBlockDropped(event) {
302
+ this.layoutBuilderInternalService.onBlockDropped(event, this.key);
303
+ }
304
+ canDropPredicate(columnIndex) {
305
+ return (drag, drop) => {
306
+ const res = !this.layoutBuilderInternalService.doesColumnContainBlock(this.key, columnIndex);
307
+ return res;
308
+ };
309
+ }
310
+ onDragStart(event) {
311
+ this.layoutBuilderInternalService.onSectionDragStart(event);
312
+ }
313
+ onDragEnd(event) {
314
+ this.layoutBuilderInternalService.onSectionDragEnd(event);
315
+ }
316
+ onSectionBlockDragExited(event) {
317
+ //
318
+ }
319
+ onSectionBlockDragEntered(event) {
320
+ //
321
+ }
322
+ getPadding() {
323
+ // calc buttons bar padding
324
+ let padding = '0rem';
325
+ const paddingObj = this._padding || new PepPaddingSettings();
326
+ if (paddingObj?.IsUniform) {
327
+ padding = paddingObj.PaddingValue + 'rem';
328
+ }
329
+ else {
330
+ const num = paddingObj.PaddingValue.split(',');
331
+ padding = num[0] + 'rem ' + num[1] + 'rem ' + num[2] + 'rem ' + num[3] + 'rem';
332
+ }
333
+ return {
334
+ 'padding': padding
335
+ };
336
+ }
337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LayoutBuilderInternalService }], target: i0.ɵɵFactoryTarget.Component }); }
338
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SectionComponent, selector: "section", inputs: { blockTemplate: "blockTemplate", key: "key", name: "name", split: "split", height: "height", collapseOnTablet: "collapseOnTablet", padding: "padding", columns: "columns", hideIn: "hideIn", columnsGap: "columnsGap" }, host: { properties: { "style.max-height": "this.styleMaxHeight", "style.height": "this.styleHeight" } }, viewQueries: [{ propertyName: "sectionContainerRef", first: true, predicate: ["sectionContainer"], descendants: true }, { propertyName: "columnsElementRef", predicate: ["columnsWrapper"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #sectionContainer *ngIf=\"editable || (containsBlocks && !hideForCurrentScreenType)\" class=\"section-container \"\n [ngStyle]=\"getPadding()\"\n [ngClass]=\"{ \n 'mobile': screenType === 'Phablet',\n 'editable-state': editable, 'main-editor-state': isMainEditorState, 'default-height': shouldSetDefaultHeight, 'active-section': isEditing,\n 'section-hidden-state': hideForCurrentScreenType, 'section-is-dragging': draggingSectionKey !== '', 'show-hover-state': hoverState }\" \n cdkDragBoundary=\".layout-builder-wrapper\" cdkDrag [cdkDragData]=\"key\" [cdkDragDisabled]=\"!editable || selectedSectionKey.length > 0 || selectedBlockKey.length > 0\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\" \n >\n <pep-draggable-item *ngIf=\"editable && isMainEditorState && draggingSectionKey === ''\" cdkDragHandle style=\"cursor: grab;\"\n class=\"section-toolbar\" [ngClass]=\"{ 'hide-toolbar': !hoverState }\" [title]=\"name\">\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveSectionClick();\"></pep-button>\n <hide-in [hideIn]=\"hideIn\" (hideInChange)=\"onHideSectionChange($event)\" (menuClosed)=\"onHideInMenuClosed()\" (menuOpened)=\"onHideInMenuOpened()\"></hide-in>\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditSectionClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n\n <div *ngIf=\"editable\" class=\"section-background\">\n <div class=\"back-template\" *ngFor=\"let number of [0,1,2,3,4,5,6,7,8,9,10,11]\"></div>\n </div>\n <div #columnsWrapper class=\"columns-wrapper gap-{{ columnsGap }}\" \n [ngClass]=\"{ 'mobile': screenType === 'Phablet', 'is-dragging': editable && getIsDragging }\">\n <ng-container *ngFor=\"let column of columns; let i=index;\">\n \n <!-- This is moved to the section-block component cause when we change to work with 'grid-column' style we have to draw the columns.\n *ngIf=\"editable || (column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0 && !getIsHidden(column?.BlockContainer?.Hide, screenType))\" \n -->\n <div *ngIf=\"editable || isHorizontalView || (column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0)\"\n [id]=\"sectionColumnKeyPrefix + i\" \n class=\"section-column {{isHorizontalView ? 'horizontal' : 'vertical'}}\"\n [ngClass]=\"{ 'active-column': selectedBlockKey === column.BlockContainer?.BlockKey, \n 'is-hidden': getIsHidden(column?.BlockContainer?.Hide, screenType),\n 'already-contains-block': editable && column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0 && \n draggingBlockKey && draggingBlockKey.length > 0 && column.BlockContainer.BlockKey !== draggingBlockKey }\"\n cdkDropList\n [cdkDropListData]=\"column\"\n [cdkDropListOrientation]=\"isHorizontalView ? 'horizontal' : 'vertical'\" \n [cdkDropListConnectedTo]=\"sectionsColumnsDropList\"\n (cdkDropListDropped)=\"onBlockDropped($event)\"\n [cdkDropListEnterPredicate]=\"canDropPredicate(i)\"\n >\n <section-block *ngIf=\"column.BlockContainer?.BlockKey\" \n class=\"section-block\" [sectionKey]=\"key\" [blockTemplate]=\"blockTemplate\"\n [blockContainer]=\"column.BlockContainer\" [editable]=\"editable\" [isMainEditorState]=\"isMainEditorState\" [sectionHeight]=\"styleHeight\"\n [active]=\"selectedBlockKey === column.BlockContainer?.BlockKey\" [screenType]=\"screenType\"\n (dragExited)=\"onSectionBlockDragExited($event)\" (dragEntered)=\"onSectionBlockDragEntered($event)\"></section-block>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".section-container{position:relative;display:grid;height:100%;max-height:inherit}.section-container.editable-state{min-height:2.5rem}.section-container.editable-state.default-height{min-height:16rem}.section-container.editable-state.active-section{z-index:11}.section-container.editable-state.active-section .columns-wrapper{z-index:1}.section-container.editable-state.active-section ::ng-deep .block-template-wrapper .block-template{pointer-events:unset!important;opacity:unset!important}.section-container.editable-state.cdk-drag-placeholder{opacity:.5}.section-container.editable-state:not(.cdk-drag-placeholder):hover .section-toolbar,.section-container.editable-state:not(.cdk-drag-placeholder).show-hover-state .section-toolbar{display:block!important}.section-container.editable-state:not(.cdk-drag-preview) .hide-toolbar{display:none}.section-container.editable-state.main-editor-state .mobile .is-hidden{display:none}.section-container.editable-state .mobile .is-hidden{display:block}.section-container.editable-state .section-toolbar{position:absolute;top:0;height:2.625rem;z-index:11}.section-container.editable-state .section-toolbar ::ng-deep .pep-draggable-item-container{border-radius:0 0 var(--pep-border-radius-md, .25rem) 0}.section-container.editable-state .section-background{position:absolute;width:100%;height:100%;z-index:0;display:grid;grid-template-columns:repeat(12,1fr)}.section-container.editable-state .section-background .back-template{opacity:.1}.section-container.editable-state .section-background .back-template:last-of-type{border-right:0 none}.section-container .columns-wrapper{display:grid;grid-auto-flow:column;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper.is-dragging{overflow:unset}.section-container .columns-wrapper.gap-none{gap:0}.section-container .columns-wrapper.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.section-container .columns-wrapper.gap-md{gap:var(--pep-spacing-lg, 1rem)}.section-container .columns-wrapper.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.section-container .columns-wrapper .section-column{position:relative;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper .section-column .section-block{height:inherit;max-height:inherit}\n", ".section-container{background:transparent}.section-container.editable-state.active-section{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.active-section .columns-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.section-container.editable-state.section-hidden-state:not(.active-section){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 .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 .8rem)}.section-container.editable-state.main-editor-state.cdk-drag-preview{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state.cdk-drag-placeholder{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.main-editor-state.cdk-drag-placeholder:hover,.section-container.editable-state.main-editor-state.cdk-drag-placeholder.show-hover-state{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)!important}.section-container.editable-state.main-editor-state:hover:not(.section-is-dragging),.section-container.editable-state.main-editor-state.show-hover-state:not(.section-is-dragging){box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state .section-toolbar ::ng-deep .pep-draggable-item-container{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .section-background .back-template{background-color:#bec3e5;border-right:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column{border:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column.active-column{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.section-container.editable-state .columns-wrapper .section-column.cdk-drop-list-dragging{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state .columns-wrapper .section-column.already-contains-block:hover{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal{border-left:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal.cdk-drop-list-dragging{border-left:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical{border-top:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical.cdk-drop-list-dragging{border-top:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { 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.SectionBlockComponent, selector: "section-block", inputs: ["blockTemplate", "sectionKey", "sectionHeight", "isMainEditorState", "editable", "active", "blockContainer", "screenType"], outputs: ["dragExited", "dragEntered"] }, { kind: "component", type: i6.HideInComponent, selector: "hide-in", inputs: ["hideIn"], outputs: ["hideInChange", "menuOpened", "menuClosed"] }, { kind: "component", type: i7.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] }); }
339
+ }
340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionComponent, decorators: [{
341
+ type: Component,
342
+ args: [{ selector: 'section', template: "<div #sectionContainer *ngIf=\"editable || (containsBlocks && !hideForCurrentScreenType)\" class=\"section-container \"\n [ngStyle]=\"getPadding()\"\n [ngClass]=\"{ \n 'mobile': screenType === 'Phablet',\n 'editable-state': editable, 'main-editor-state': isMainEditorState, 'default-height': shouldSetDefaultHeight, 'active-section': isEditing,\n 'section-hidden-state': hideForCurrentScreenType, 'section-is-dragging': draggingSectionKey !== '', 'show-hover-state': hoverState }\" \n cdkDragBoundary=\".layout-builder-wrapper\" cdkDrag [cdkDragData]=\"key\" [cdkDragDisabled]=\"!editable || selectedSectionKey.length > 0 || selectedBlockKey.length > 0\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\" \n >\n <pep-draggable-item *ngIf=\"editable && isMainEditorState && draggingSectionKey === ''\" cdkDragHandle style=\"cursor: grab;\"\n class=\"section-toolbar\" [ngClass]=\"{ 'hide-toolbar': !hoverState }\" [title]=\"name\">\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveSectionClick();\"></pep-button>\n <hide-in [hideIn]=\"hideIn\" (hideInChange)=\"onHideSectionChange($event)\" (menuClosed)=\"onHideInMenuClosed()\" (menuOpened)=\"onHideInMenuOpened()\"></hide-in>\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditSectionClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n\n <div *ngIf=\"editable\" class=\"section-background\">\n <div class=\"back-template\" *ngFor=\"let number of [0,1,2,3,4,5,6,7,8,9,10,11]\"></div>\n </div>\n <div #columnsWrapper class=\"columns-wrapper gap-{{ columnsGap }}\" \n [ngClass]=\"{ 'mobile': screenType === 'Phablet', 'is-dragging': editable && getIsDragging }\">\n <ng-container *ngFor=\"let column of columns; let i=index;\">\n \n <!-- This is moved to the section-block component cause when we change to work with 'grid-column' style we have to draw the columns.\n *ngIf=\"editable || (column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0 && !getIsHidden(column?.BlockContainer?.Hide, screenType))\" \n -->\n <div *ngIf=\"editable || isHorizontalView || (column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0)\"\n [id]=\"sectionColumnKeyPrefix + i\" \n class=\"section-column {{isHorizontalView ? 'horizontal' : 'vertical'}}\"\n [ngClass]=\"{ 'active-column': selectedBlockKey === column.BlockContainer?.BlockKey, \n 'is-hidden': getIsHidden(column?.BlockContainer?.Hide, screenType),\n 'already-contains-block': editable && column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0 && \n draggingBlockKey && draggingBlockKey.length > 0 && column.BlockContainer.BlockKey !== draggingBlockKey }\"\n cdkDropList\n [cdkDropListData]=\"column\"\n [cdkDropListOrientation]=\"isHorizontalView ? 'horizontal' : 'vertical'\" \n [cdkDropListConnectedTo]=\"sectionsColumnsDropList\"\n (cdkDropListDropped)=\"onBlockDropped($event)\"\n [cdkDropListEnterPredicate]=\"canDropPredicate(i)\"\n >\n <section-block *ngIf=\"column.BlockContainer?.BlockKey\" \n class=\"section-block\" [sectionKey]=\"key\" [blockTemplate]=\"blockTemplate\"\n [blockContainer]=\"column.BlockContainer\" [editable]=\"editable\" [isMainEditorState]=\"isMainEditorState\" [sectionHeight]=\"styleHeight\"\n [active]=\"selectedBlockKey === column.BlockContainer?.BlockKey\" [screenType]=\"screenType\"\n (dragExited)=\"onSectionBlockDragExited($event)\" (dragEntered)=\"onSectionBlockDragEntered($event)\"></section-block>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".section-container{position:relative;display:grid;height:100%;max-height:inherit}.section-container.editable-state{min-height:2.5rem}.section-container.editable-state.default-height{min-height:16rem}.section-container.editable-state.active-section{z-index:11}.section-container.editable-state.active-section .columns-wrapper{z-index:1}.section-container.editable-state.active-section ::ng-deep .block-template-wrapper .block-template{pointer-events:unset!important;opacity:unset!important}.section-container.editable-state.cdk-drag-placeholder{opacity:.5}.section-container.editable-state:not(.cdk-drag-placeholder):hover .section-toolbar,.section-container.editable-state:not(.cdk-drag-placeholder).show-hover-state .section-toolbar{display:block!important}.section-container.editable-state:not(.cdk-drag-preview) .hide-toolbar{display:none}.section-container.editable-state.main-editor-state .mobile .is-hidden{display:none}.section-container.editable-state .mobile .is-hidden{display:block}.section-container.editable-state .section-toolbar{position:absolute;top:0;height:2.625rem;z-index:11}.section-container.editable-state .section-toolbar ::ng-deep .pep-draggable-item-container{border-radius:0 0 var(--pep-border-radius-md, .25rem) 0}.section-container.editable-state .section-background{position:absolute;width:100%;height:100%;z-index:0;display:grid;grid-template-columns:repeat(12,1fr)}.section-container.editable-state .section-background .back-template{opacity:.1}.section-container.editable-state .section-background .back-template:last-of-type{border-right:0 none}.section-container .columns-wrapper{display:grid;grid-auto-flow:column;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper.is-dragging{overflow:unset}.section-container .columns-wrapper.gap-none{gap:0}.section-container .columns-wrapper.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.section-container .columns-wrapper.gap-md{gap:var(--pep-spacing-lg, 1rem)}.section-container .columns-wrapper.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.section-container .columns-wrapper .section-column{position:relative;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper .section-column .section-block{height:inherit;max-height:inherit}\n", ".section-container{background:transparent}.section-container.editable-state.active-section{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.active-section .columns-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.section-container.editable-state.section-hidden-state:not(.active-section){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 .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 .8rem)}.section-container.editable-state.main-editor-state.cdk-drag-preview{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state.cdk-drag-placeholder{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.main-editor-state.cdk-drag-placeholder:hover,.section-container.editable-state.main-editor-state.cdk-drag-placeholder.show-hover-state{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)!important}.section-container.editable-state.main-editor-state:hover:not(.section-is-dragging),.section-container.editable-state.main-editor-state.show-hover-state:not(.section-is-dragging){box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state .section-toolbar ::ng-deep .pep-draggable-item-container{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .section-background .back-template{background-color:#bec3e5;border-right:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column{border:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column.active-column{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.section-container.editable-state .columns-wrapper .section-column.cdk-drop-list-dragging{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state .columns-wrapper .section-column.already-contains-block:hover{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal{border-left:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal.cdk-drop-list-dragging{border-left:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical{border-top:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical.cdk-drop-list-dragging{border-top:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}\n"] }]
343
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LayoutBuilderInternalService }]; }, propDecorators: { sectionContainerRef: [{
344
+ type: ViewChild,
345
+ args: ['sectionContainer']
346
+ }], columnsElementRef: [{
347
+ type: ViewChildren,
348
+ args: ['columnsWrapper']
349
+ }], blockTemplate: [{
350
+ type: Input
351
+ }], key: [{
352
+ type: Input
353
+ }], name: [{
354
+ type: Input
355
+ }], split: [{
356
+ type: Input
357
+ }], height: [{
358
+ type: Input
359
+ }], collapseOnTablet: [{
360
+ type: Input
361
+ }], padding: [{
362
+ type: Input
363
+ }], columns: [{
364
+ type: Input
365
+ }], hideIn: [{
366
+ type: Input
367
+ }], columnsGap: [{
368
+ type: Input
369
+ }], styleMaxHeight: [{
370
+ type: HostBinding,
371
+ args: ['style.max-height']
372
+ }], styleHeight: [{
373
+ type: HostBinding,
374
+ args: ['style.height']
375
+ }] } });
376
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFnQixLQUFLLEVBQXVFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEwsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7QUFPeEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHNCQUFzQjtJQVV4RCxJQUNJLEtBQUssQ0FBQyxLQUE0QjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBR0QsSUFDSSxNQUFNLENBQUMsS0FBeUI7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUdELElBQ0ksZ0JBQWdCLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FB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QWtCO2dCQUkvQixXQUFXO3NCQURWLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VuZCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcm9wTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplLCBTcGxpdFR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGsnO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSwgUGVwTGF5b3V0U2VydmljZSwgUGVwU2NyZWVuU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgUGVwTGF5b3V0U2l6ZVR5cGUgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBQZXBQYWRkaW5nU2V0dGluZ3MgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWNvbXBvc2l0ZS1saWIvcGFkZGluZy1zZXR0aW5ncyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24uY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25Db250YWluZXInKSBzZWN0aW9uQ29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkcmVuKCdjb2x1bW5zV3JhcHBlcicpIGNvbHVtbnNFbGVtZW50UmVmITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcblxuICAgIHByaXZhdGUgX3NwbGl0OiBTcGxpdFR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgc3BsaXQodmFsdWU6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCApIHtcbiAgICAgICAgdGhpcy5fc3BsaXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICB9XG4gICAgZ2V0IHNwbGl0KCk6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoZWlnaHQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VPblRhYmxldCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlT25UYWJsZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VPblRhYmxldCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID0gdmFsdWUgPyBQZXBTY3JlZW5TaXplVHlwZS5NRCA6IFBlcFNjcmVlblNpemVUeXBlLlhTO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgIH1cbiAgICBnZXQgY29sbGFwc2VPblRhYmxldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlT25UYWJsZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGFkZGluZyA9IG5ldyBQZXBQYWRkaW5nU2V0dGluZ3ModHJ1ZSwgJzAnKTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBwYWRkaW5nKHZhbHVlOiBQZXBQYWRkaW5nU2V0dGluZ3MgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fcGFkZGluZyA9IHZhbHVlIHx8IG5ldyBQZXBQYWRkaW5nU2V0dGluZ3ModHJ1ZSwgJzAnKTtcbiAgICB9XG4gICAgZ2V0IHBhZGRpbmcoKTogUGVwUGFkZGluZ1NldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZGRpbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB9XG4gICAgZ2V0IGNvbHVtbnMoKTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgX2hpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRlSW4odmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMuX2hpZGVJbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlSW4oKTogRGF0YVZpZXdTY3JlZW5TaXplW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUluO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbHVtbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICAgICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgICBzdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHN0eWxlSGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICBcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBwcml2YXRlIF9lZGl0YWJsZSA9IGZhbHNlO1xuICAgIC8vIHByb3RlY3RlZCBzZXQgZWRpdGFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvLyAgICAgdGhpcy5fZWRpdGFibGUgPSB2YWx1ZTtcbiAgICAvLyAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAvLyB9XG4gICAgcHJvdGVjdGVkIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0YWJsZVN0YXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NjcmVlblNpemUhOiBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgc2V0IHNjcmVlblNpemUodmFsdWU6IFBlcFNjcmVlblNpemVUeXBlKSB7XG4gICAgICAgIHRoaXMuX3NjcmVlblNpemUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAgICAgdGhpcy5zZXRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXQgc2NyZWVuU2l6ZSgpOiBQZXBTY3JlZW5TaXplVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JlZW5TaXplO1xuICAgIH1cblxuICAgIC8vIFBlcFNjcmVlblNpemVUeXBlID0gUGVwU2NyZWVuU2l6ZVR5cGU7XG4gICAgcHJvdGVjdGVkIHNlY3Rpb25Db2x1bW5LZXlQcmVmaXggPSAnJztcbiAgICBcbiAgICBwcm90ZWN0ZWQgaXNNYWluRWRpdG9yU3RhdGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkU2VjdGlvbktleSA9ICcnO1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZEJsb2NrS2V5ID0gJyc7XG4gICAgXG4gICAgcHJvdGVjdGVkIGNvbnRhaW5zQmxvY2tzID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNob3VsZFNldERlZmF1bHRIZWlnaHQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgcGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWwgPSBQZXBTY3JlZW5TaXplVHlwZS5TTTtcbiAgICBwcm90ZWN0ZWQgc2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcbiAgICBwcm90ZWN0ZWQgaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGRyYWdnaW5nQmxvY2tLZXkgPSAnJztcbiAgICBwcm90ZWN0ZWQgZHJhZ2dpbmdTZWN0aW9uS2V5ID0gJyc7XG4gICAgcHJvdGVjdGVkIGhvdmVyU3RhdGUgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBpc0hvcml6b250YWxWaWV3ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2U6IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UsXG4gICAgICAgIC8vIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICApIHsgXG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVJZlNlY3Rpb25Db250YWluc0Jsb2NrcygpIHtcbiAgICAgICAgdGhpcy5jb250YWluc0Jsb2NrcyA9IHRoaXMuY29sdW1ucy5zb21lKGNvbHVtbiA9PiBjb2x1bW4uQmxvY2tDb250YWluZXIpO1xuXG4gICAgICAgIGlmICh0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnNob3VsZFNldERlZmF1bHRIZWlnaHQgPSAhdGhpcy5jb250YWluc0Jsb2NrcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2NyZWVuVHlwZSgpIHtcbiAgICAgICAgdGhpcy5zY3JlZW5UeXBlID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldFNjcmVlblR5cGUodGhpcy5zY3JlZW5TaXplKTtcbiAgICAgICAgdGhpcy5zZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpO1xuICAgICAgICB0aGlzLnNldFN0eWxlSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4odGhpcy5oaWRlSW4sIHRoaXMuc2NyZWVuVHlwZSk7XG4gICAgfVxuICAgIFxuICAgIC8vIHByaXZhdGUgZ2V0Q3NzU3BsaXRTdHJpbmcoKSB7XG4gICAgLy8gICAgIHN3aXRjaCAodGhpcy5zcGxpdCkge1xuICAgIC8vICAgICAgICAgY2FzZSAnMS8yIDEvMic6XG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyJztcbiAgICAvLyAgICAgICAgIGNhc2UgJzEvMiAxLzQgMS80JzpcbiAgICAvLyAgICAgICAgICAgICByZXR1cm4gJzJmciAxZnIgMWZyJztcbiAgICAvLyAgICAgICAgIGNhc2UgJzEvMyAxLzMgMS8zJzpcbiAgICAvLyAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnIgMWZyJztcbiAgICAvLyAgICAgICAgIGNhc2UgJzEvMyAyLzMnOlxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnMWZyIDJmcic7XG4gICAgLy8gICAgICAgICBjYXNlICcxLzQgMS8yIDEvNCc6XG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICcxZnIgMmZyIDFmcic7XG4gICAgLy8gICAgICAgICBjYXNlICcxLzQgMS80IDEvMic6XG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyIDJmcic7XG4gICAgLy8gICAgICAgICBjYXNlICcxLzQgMS80IDEvNCAxLzQnOlxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmciAxZnIgMWZyJztcbiAgICAvLyAgICAgICAgIGNhc2UgJzEvNCAzLzQnOlxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnMWZyIDNmcic7XG4gICAgLy8gICAgICAgICBjYXNlICcyLzMgMS8zJzpcbiAgICAvLyAgICAgICAgICAgICByZXR1cm4gJzJmciAxZnInO1xuICAgIC8vICAgICAgICAgY2FzZSAnMy80IDEvNCc6XG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICczZnIgMWZyJztcbiAgICAvLyAgICAgICAgIGRlZmF1bHQ6IC8vIEZvciBvbmUgY29sdW1uLlxuICAgIC8vICAgICAgICAgICAgIHJldHVybiAnMWZyJztcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIHByaXZhdGUgZ2V0Q3NzR3JpZENvbHVtbihjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGxldCByZXMgPSAnMS8xMyc7XG4gICAgICAgIGxldCBncmlkQ29sdW1uVmFsdWVBcnIgPSBbJzEvMTMnXTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuc3BsaXQpIHtcbiAgICAgICAgICAgIGNhc2UgJzEvMiAxLzInOlxuICAgICAgICAgICAgICAgIGdyaWRDb2x1bW5WYWx1ZUFyciA9IFsnMS83JywgJzcvMTMnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzEvMiAxLzQgMS80JzpcbiAgICAgICAgICAgICAgICBncmlkQ29sdW1uVmFsdWVBcnIgPSBbJzEvNycsICc3LzEwJywgJzEwLzEzJ107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcxLzMgMS8zIDEvMyc6XG4gICAgICAgICAgICAgICAgZ3JpZENvbHVtblZhbHVlQXJyID0gWycxLzUnLCAnNS85JywgJzkvMTMnXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDIvMyc6XG4gICAgICAgICAgICAgICAgZ3JpZENvbHVtblZhbHVlQXJyID0gWycxLzUnLCAnNS8xMyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMS80IDEvMiAxLzQnOlxuICAgICAgICAgICAgICAgIGdyaWRDb2x1bW5WYWx1ZUFyciA9IFsnMS80JywgJzQvMTAnLCAnMTAvMTMnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS8yJzpcbiAgICAgICAgICAgICAgICBncmlkQ29sdW1uVmFsdWVBcnIgPSBbJzEvNCcsICc0LzcnLCAnNy8xMyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMS80IDEvNCAxLzQgMS80JzpcbiAgICAgICAgICAgICAgICBncmlkQ29sdW1uVmFsdWVBcnIgPSBbJzEvNCcsICc0LzcnLCAnNy8xMCcsICcxMC8xMyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMS80IDMvNCc6XG4gICAgICAgICAgICAgICAgZ3JpZENvbHVtblZhbHVlQXJyID0gWycxLzQnLCAnNC8xMyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMi8zIDEvMyc6XG4gICAgICAgICAgICAgICAgZ3JpZENvbHVtblZhbHVlQXJyID0gWycxLzknLCAnOS8xMyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMy80IDEvNCc6XG4gICAgICAgICAgICAgICAgZ3JpZENvbHVtblZhbHVlQXJyID0gWycxLzEwJywgJzEwLzEzJ107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JpZENvbHVtblZhbHVlQXJyLmxlbmd0aCA+IGNvbHVtbkluZGV4KSB7XG4gICAgICAgICAgICByZXMgPSBncmlkQ29sdW1uVmFsdWVBcnJbY29sdW1uSW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlY3Rpb25Db2x1bW5TdHlsZShzZWN0aW9uQ29sdW1uRWxlbWVudDogYW55LCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbFZpZXcpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyaWRDb2x1bW5WYWx1ZSA9IHRoaXMuZ2V0Q3NzR3JpZENvbHVtbihjb2x1bW5JbmRleCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb25Db2x1bW5FbGVtZW50LCAnZ3JpZC1jb2x1bW4nLCBncmlkQ29sdW1uVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uQ29sdW1uRWxlbWVudCwgJ2dyaWQtY29sdW1uJywgJ3Vuc2V0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hTcGxpdCgpIHtcbiAgICAgICAgLy8gSG9yaXpvbnRhbCAodHJ1ZSkgZm9yIGxhcmdlIHNjcmVlbnMsIGZhbHNlIGZvciBzbWFsbCBzY3JlZW5zLlxuICAgICAgICB0aGlzLmlzSG9yaXpvbnRhbFZpZXcgPSB0aGlzLnNjcmVlblNpemUgPCB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsO1xuICAgICAgICBcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWN0aW9uQ29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgY3NzU3BsaXRTdHJpbmcgPSB0aGlzLmdldENzc1NwbGl0U3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gR28gZm9yIGFsbCB0aGUgY29sdW1ucyBpbiB0aGUgY29sdW1uc1dyYXBwZXJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnNFbGVtZW50UmVmLnRvQXJyYXkoKS5tYXAoKHNlY3Rpb24sIHNlY3Rpb25JbmRleCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbFZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC1hdXRvLWZsb3cnLCAnY29sdW1uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsICd1bnNldCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLCBjc3NTcGxpdFN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsICdyZXBlYXQoMTIsIDFmciknKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC1hdXRvLWZsb3cnLCAncm93Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsICd1bnNldCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAndW5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gcnVudGltZSAob3IgcHJldmlldyBtb2RlKS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGNzc1NwbGl0QXJyYXkgPSBjc3NTcGxpdFN0cmluZy5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC8vIElmIHRoZXJlIGFyZSBzb21lIGhpZGRlbiBjb2x1bW5zIGNoYW5nZSB0aGUgY29sdW1uIHdpZHRoIHRvIDAgKGZvciBjdXQgdGhlIHNwYWNpbmcgaW4gdGhlIGdyaWQtdGVtcGxhdGUtcm93cykuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaWYgKCFjb2x1bW4uQmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGNzc1NwbGl0QXJyYXlbaW5kZXhdID0gJzAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsIGNzc1NwbGl0QXJyYXkuam9pbignICcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsICdhdXRvJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBHbyBmb3IgYWxsIHRoZSBjb2x1bW5zIGluIHRoZSBzZWN0aW9uIGFuZCBzZXQgdGhlcmUgc3R5bGUuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25Db2x1bW5zID0gc2VjdGlvbi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZWN0aW9uLWNvbHVtbicpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IHNlY3Rpb25Db2x1bW5zLmxlbmd0aDsgY29sdW1uSW5kZXgrKykgeyBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2VjdGlvbkNvbHVtblN0eWxlKHNlY3Rpb25Db2x1bW5zW2NvbHVtbkluZGV4XSwgY29sdW1uSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3R5bGVIZWlnaHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmhlaWdodCAmJiB0aGlzLmhlaWdodCA+IDAgJiYgdGhpcy5zY3JlZW5UeXBlICE9PSAnUGhhYmxldCcpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVIZWlnaHQgPSB0aGlzLnN0eWxlTWF4SGVpZ2h0ID0gYCR7dGhpcy5oZWlnaHR9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdHlsZUhlaWdodCA9IHRoaXMuc3R5bGVNYXhIZWlnaHQgPSAndW5zZXQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SXNEcmFnZ2luZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhZ2dpbmdCbG9ja0tleS5sZW5ndGggPiAwICYmIHRoaXMuZHJhZ2dpbmdTZWN0aW9uS2V5Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0SXNIaWRkZW4oaGlkZUluOiBEYXRhVmlld1NjcmVlblNpemVbXSB8IHVuZGVmaW5lZCwgY3VycmVudFNjcmVlblR5cGU6IERhdGFWaWV3U2NyZWVuU2l6ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldElzSGlkZGVuKGhpZGVJbiwgY3VycmVudFNjcmVlblR5cGUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucHJldmlld01vZGVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKHByZXZpZXdNb2RlID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFNwbGl0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEp1c3QgdG8gY2FsY3VsYXRlIGlmIHNlY3Rpb25zIGNvbnRhaW5zIGJsb2Nrc1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2VjdGlvbnNDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUlmU2VjdGlvbkNvbnRhaW5zQmxvY2tzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5vblJlc2l6ZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAvLyAgICAgdGhpcy5zY3JlZW5TaXplID0gc2l6ZTtcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNjcmVlblNpemVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuU2l6ZSA9IHNpemU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2VjdGlvbnNDb2x1bW5zRHJvcExpc3RDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uc0NvbHVtbnNEcm9wTGlzdCA9IHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0b3JDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChlZGl0b3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNYWluRWRpdG9yU3RhdGUgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcic7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdzZWN0aW9uJyAmJiBlZGl0b3IuaWQgPT09IHRoaXMua2V5O1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uS2V5ID0gZWRpdG9yICYmIGVkaXRvci50eXBlID09PSAnc2VjdGlvbicgPyBlZGl0b3IuaWQgOiAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQmxvY2tLZXkgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdibG9jaycgPyBlZGl0b3IuaWQgOiAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZHJhZ2dpbmdCbG9ja0tleS5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZHJhZ2dpbmdCbG9ja0tleTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5ID0gZHJhZ2dpbmdCbG9ja0tleTtcblxuICAgICAgICAgICAgICAgIGlmIChkcmFnZ2luZ0Jsb2NrS2V5ID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUlmU2VjdGlvbkNvbnRhaW5zQmxvY2tzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgb25seSBvbmUgYmxvY2sgaW4gdGhlIHNlY3Rpb24gYW5kIG5vdyBpdCdzIHRoaXMgYmxvY2sgdGhhdCB0aGUgdXNlciBpcyBkcmFnZ2luZy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tzTGVuZ3RoID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLkJsb2NrQ29udGFpbmVyKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9ja3NMZW5ndGggPT09IDEgJiYgdGhpcy5jb2x1bW5zLmZpbmQoYyA9PiBjLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSA9PT0gdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG91bGRTZXREZWZhdWx0SGVpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5kcmFnZ2luZ1NlY3Rpb25LZXkucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGRyYWdnaW5nU2VjdGlvbktleTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ1NlY3Rpb25LZXkgPSBkcmFnZ2luZ1NlY3Rpb25LZXk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VjdGlvbkNvbHVtbktleVByZWZpeCA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRTZWN0aW9uQ29sdW1uS2V5KHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBvbkVkaXRTZWN0aW9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5uYXZpZ2F0ZVRvRWRpdG9yKCdzZWN0aW9uJywgdGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlU2VjdGlvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucmVtb3ZlU2VjdGlvbih0aGlzLmtleSk7XG4gICAgfVxuXG4gICAgb25IaWRlU2VjdGlvbkNoYW5nZShoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5oaWRlU2VjdGlvbih0aGlzLmtleSwgaGlkZUluKTtcbiAgICB9XG5cbiAgICBvbkhpZGVJbk1lbnVPcGVuZWQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJTdGF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25IaWRlSW5NZW51Q2xvc2VkKCkge1xuICAgICAgICB0aGlzLmhvdmVyU3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkJsb2NrRHJvcHBlZChldmVudDogQ2RrRHJhZ0Ryb3A8SVBlcExheW91dFNlY3Rpb25Db2x1bW4sIGFueSwgYW55Pikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25CbG9ja0Ryb3BwZWQoZXZlbnQsIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBjYW5Ecm9wUHJlZGljYXRlKGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIChkcmFnOiBDZGtEcmFnLCBkcm9wOiBDZGtEcm9wTGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gIXRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5kb2VzQ29sdW1uQ29udGFpbkJsb2NrKHRoaXMua2V5LCBjb2x1bW5JbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBDZGtEcmFnU3RhcnQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uU2VjdGlvbkRyYWdTdGFydChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vblNlY3Rpb25EcmFnRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblNlY3Rpb25CbG9ja0RyYWdFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0KSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgb25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZChldmVudDogQ2RrRHJhZ0VudGVyKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgZ2V0UGFkZGluZygpe1xuICAgICAgICAvLyBjYWxjIGJ1dHRvbnMgYmFyIHBhZGRpbmdcbiAgICAgICAgIGxldCBwYWRkaW5nID0gJzByZW0nO1xuICAgICAgICAgY29uc3QgcGFkZGluZ09iaiA9IHRoaXMuX3BhZGRpbmcgIHx8IG5ldyBQZXBQYWRkaW5nU2V0dGluZ3MoKTtcbiAgICAgICAgIGlmKHBhZGRpbmdPYmo/LklzVW5pZm9ybSl7XG4gICAgICAgICAgICAgcGFkZGluZyA9IHBhZGRpbmdPYmouUGFkZGluZ1ZhbHVlICsgJ3JlbSc7IFxuICAgICAgICAgfVxuICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICBjb25zdCBudW0gPSBwYWRkaW5nT2JqLlBhZGRpbmdWYWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgIHBhZGRpbmcgPSAgbnVtWzBdICsgJ3JlbSAnICsgbnVtWzFdICsgJ3JlbSAnICsgbnVtWzJdICsgJ3JlbSAnICsgbnVtWzNdICsgJ3JlbSc7XG4gICAgICAgICB9XG4gICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICdwYWRkaW5nJzogcGFkZGluZ1xuICAgICAgICAgfTtcbiB9XG59XG4iLCI8ZGl2ICNzZWN0aW9uQ29udGFpbmVyICpuZ0lmPVwiZWRpdGFibGUgfHwgKGNvbnRhaW5zQmxvY2tzICYmICFoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUpXCIgY2xhc3M9XCJzZWN0aW9uLWNvbnRhaW5lciBcIlxuICAgIFtuZ1N0eWxlXT1cImdldFBhZGRpbmcoKVwiXG4gICAgW25nQ2xhc3NdPVwieyBcbiAgICAgICAgJ21vYmlsZSc6IHNjcmVlblR5cGUgPT09ICdQaGFibGV0JyxcbiAgICAgICAgJ2VkaXRhYmxlLXN0YXRlJzogZWRpdGFibGUsICdtYWluLWVkaXRvci1zdGF0ZSc6IGlzTWFpbkVkaXRvclN0YXRlLCAnZGVmYXVsdC1oZWlnaHQnOiBzaG91bGRTZXREZWZhdWx0SGVpZ2h0LCAnYWN0aXZlLXNlY3Rpb24nOiBpc0VkaXRpbmcsXG4gICAgICAgICdzZWN0aW9uLWhpZGRlbi1zdGF0ZSc6IGhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSwgJ3NlY3Rpb24taXMtZHJhZ2dpbmcnOiBkcmFnZ2luZ1NlY3Rpb25LZXkgIT09ICcnLCAnc2hvdy1ob3Zlci1zdGF0ZSc6IGhvdmVyU3RhdGUgfVwiIFxuICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIubGF5b3V0LWJ1aWxkZXItd3JhcHBlclwiIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImtleVwiIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IHNlbGVjdGVkU2VjdGlvbktleS5sZW5ndGggPiAwIHx8IHNlbGVjdGVkQmxvY2tLZXkubGVuZ3RoID4gMFwiIChjZGtEcmFnU3RhcnRlZCk9XCJvbkRyYWdTdGFydCgkZXZlbnQpXCIgKGNka0RyYWdFbmRlZCk9XCJvbkRyYWdFbmQoJGV2ZW50KVwiIFxuICAgID5cbiAgICA8cGVwLWRyYWdnYWJsZS1pdGVtICpuZ0lmPVwiZWRpdGFibGUgJiYgaXNNYWluRWRpdG9yU3RhdGUgJiYgZHJhZ2dpbmdTZWN0aW9uS2V5ID09PSAnJ1wiIGNka0RyYWdIYW5kbGUgc3R5bGU9XCJjdXJzb3I6IGdyYWI7XCJcbiAgICAgICAgY2xhc3M9XCJzZWN0aW9uLXRvb2xiYXJcIiBbbmdDbGFzc109XCJ7ICdoaWRlLXRvb2xiYXInOiAhaG92ZXJTdGF0ZSB9XCIgW3RpdGxlXT1cIm5hbWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBwZXAtYWN0aW9ucz5cbiAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzTmFtZXM9XCJjYXV0aW9uXCIgc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2JpblwiIChidXR0b25DbGljayk9XCJvblJlbW92ZVNlY3Rpb25DbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgICAgIDxoaWRlLWluIFtoaWRlSW5dPVwiaGlkZUluXCIgKGhpZGVJbkNoYW5nZSk9XCJvbkhpZGVTZWN0aW9uQ2hhbmdlKCRldmVudClcIiAobWVudUNsb3NlZCk9XCJvbkhpZGVJbk1lbnVDbG9zZWQoKVwiIChtZW51T3BlbmVkKT1cIm9uSGlkZUluTWVudU9wZW5lZCgpXCI+PC9oaWRlLWluPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2VkaXRcIiAoYnV0dG9uQ2xpY2spPVwib25FZGl0U2VjdGlvbkNsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3BlcC1kcmFnZ2FibGUtaXRlbT5cblxuICAgIDxkaXYgKm5nSWY9XCJlZGl0YWJsZVwiIGNsYXNzPVwic2VjdGlvbi1iYWNrZ3JvdW5kXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLXRlbXBsYXRlXCIgKm5nRm9yPVwibGV0IG51bWJlciBvZiBbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMV1cIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNjb2x1bW5zV3JhcHBlciBjbGFzcz1cImNvbHVtbnMtd3JhcHBlciBnYXAte3sgY29sdW1uc0dhcCB9fVwiIFxuICAgICAgICBbbmdDbGFzc109XCJ7ICdtb2JpbGUnOiBzY3JlZW5UeXBlID09PSAnUGhhYmxldCcsICdpcy1kcmFnZ2luZyc6IGVkaXRhYmxlICYmIGdldElzRHJhZ2dpbmcgfVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGk9aW5kZXg7XCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gVGhpcyBpcyBtb3ZlZCB0byB0aGUgc2VjdGlvbi1ibG9jayBjb21wb25lbnQgY2F1c2Ugd2hlbiB3ZSBjaGFuZ2UgdG8gd29yayB3aXRoICdncmlkLWNvbHVtbicgc3R5bGUgd2UgaGF2ZSB0byBkcmF3IHRoZSBjb2x1bW5zLlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWRpdGFibGUgfHwgKGNvbHVtbi5CbG9ja0NvbnRhaW5lciAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgIWdldElzSGlkZGVuKGNvbHVtbj8uQmxvY2tDb250YWluZXI/LkhpZGUsIHNjcmVlblR5cGUpKVwiICBcbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVkaXRhYmxlIHx8IGlzSG9yaXpvbnRhbFZpZXcgfHwgKGNvbHVtbi5CbG9ja0NvbnRhaW5lciAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5Lmxlbmd0aCA+IDApXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwic2VjdGlvbkNvbHVtbktleVByZWZpeCArIGlcIiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlY3Rpb24tY29sdW1uIHt7aXNIb3Jpem9udGFsVmlldyA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9fVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLWNvbHVtbic6IHNlbGVjdGVkQmxvY2tLZXkgPT09IGNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXksIFxuICAgICAgICAgICAgICAgICAgICAnaXMtaGlkZGVuJzogZ2V0SXNIaWRkZW4oY29sdW1uPy5CbG9ja0NvbnRhaW5lcj8uSGlkZSwgc2NyZWVuVHlwZSksXG4gICAgICAgICAgICAgICAgICAgICdhbHJlYWR5LWNvbnRhaW5zLWJsb2NrJzogZWRpdGFibGUgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkubGVuZ3RoID4gMCAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nQmxvY2tLZXkgJiYgZHJhZ2dpbmdCbG9ja0tleS5sZW5ndGggPiAwICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAhPT0gZHJhZ2dpbmdCbG9ja0tleSB9XCJcbiAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJpc0hvcml6b250YWxWaWV3ID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJ1wiIFxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cInNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0XCJcbiAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uQmxvY2tEcm9wcGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BQcmVkaWNhdGUoaSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzZWN0aW9uLWJsb2NrICpuZ0lmPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleVwiIFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlY3Rpb24tYmxvY2tcIiBbc2VjdGlvbktleV09XCJrZXlcIiBbYmxvY2tUZW1wbGF0ZV09XCJibG9ja1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Jsb2NrQ29udGFpbmVyXT1cImNvbHVtbi5CbG9ja0NvbnRhaW5lclwiIFtlZGl0YWJsZV09XCJlZGl0YWJsZVwiIFtpc01haW5FZGl0b3JTdGF0ZV09XCJpc01haW5FZGl0b3JTdGF0ZVwiIFtzZWN0aW9uSGVpZ2h0XT1cInN0eWxlSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJzZWxlY3RlZEJsb2NrS2V5ID09PSBjb2x1bW4uQmxvY2tDb250YWluZXI/LkJsb2NrS2V5XCIgW3NjcmVlblR5cGVdPVwic2NyZWVuVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIChkcmFnRXhpdGVkKT1cIm9uU2VjdGlvbkJsb2NrRHJhZ0V4aXRlZCgkZXZlbnQpXCIgKGRyYWdFbnRlcmVkKT1cIm9uU2VjdGlvbkJsb2NrRHJhZ0VudGVyZWQoJGV2ZW50KVwiPjwvc2VjdGlvbi1ibG9jaz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -10,22 +10,22 @@ import { HideInModule } from '../hide-in/hide-in.module';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ngx-translate/core";
12
12
  export class SectionModule {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SectionModule, declarations: [SectionComponent], imports: [CommonModule,
15
+ DragDropModule,
16
+ PepButtonModule,
17
+ SectionBlockModule,
18
+ HideInModule,
19
+ PepDraggableItemsModule, i1.TranslateModule], exports: [SectionComponent] }); }
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionModule, imports: [CommonModule,
21
+ DragDropModule,
22
+ PepButtonModule,
23
+ SectionBlockModule,
24
+ HideInModule,
25
+ PepDraggableItemsModule,
26
+ TranslateModule.forChild()] }); }
13
27
  }
14
- SectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- SectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, declarations: [SectionComponent], imports: [CommonModule,
16
- DragDropModule,
17
- PepButtonModule,
18
- SectionBlockModule,
19
- HideInModule,
20
- PepDraggableItemsModule, i1.TranslateModule], exports: [SectionComponent] });
21
- SectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, imports: [CommonModule,
22
- DragDropModule,
23
- PepButtonModule,
24
- SectionBlockModule,
25
- HideInModule,
26
- PepDraggableItemsModule,
27
- TranslateModule.forChild()] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  declarations: [SectionComponent],
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
41
41
  exports: [SectionComponent]
42
42
  }]
43
43
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBZ0J6RCxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQVpQLGdCQUFnQixhQUUzQixZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsWUFBWTtRQUNaLHVCQUF1QixpQ0FHakIsZ0JBQWdCOzJHQUVqQixhQUFhLFlBVmxCLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixZQUFZO1FBQ1osdUJBQXVCO1FBQ3ZCLGVBQWUsQ0FBQyxRQUFRLEVBQUU7MkZBSXJCLGFBQWE7a0JBYnpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwRHJhZ2dhYmxlSXRlbXNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuXG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWN0aW9uQmxvY2tNb2R1bGUgfSBmcm9tICcuLi9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2subW9kdWxlJztcbmltcG9ydCB7IEhpZGVJbk1vZHVsZSB9IGZyb20gJy4uL2hpZGUtaW4vaGlkZS1pbi5tb2R1bGUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbU2VjdGlvbkNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFNlY3Rpb25CbG9ja01vZHVsZSxcbiAgICAgICAgSGlkZUluTW9kdWxlLFxuICAgICAgICBQZXBEcmFnZ2FibGVJdGVtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtTZWN0aW9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uTW9kdWxlIHsgfVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBZ0J6RCxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsaUJBWlAsZ0JBQWdCLGFBRTNCLFlBQVk7WUFDWixjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixZQUFZO1lBQ1osdUJBQXVCLGlDQUdqQixnQkFBZ0I7Z0hBRWpCLGFBQWEsWUFWbEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLFlBQVk7WUFDWix1QkFBdUI7WUFDdkIsZUFBZSxDQUFDLFFBQVEsRUFBRTs7NEZBSXJCLGFBQWE7a0JBYnpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwRHJhZ2dhYmxlSXRlbXNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuXG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWN0aW9uQmxvY2tNb2R1bGUgfSBmcm9tICcuLi9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2subW9kdWxlJztcbmltcG9ydCB7IEhpZGVJbk1vZHVsZSB9IGZyb20gJy4uL2hpZGUtaW4vaGlkZS1pbi5tb2R1bGUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbU2VjdGlvbkNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFNlY3Rpb25CbG9ja01vZHVsZSxcbiAgICAgICAgSGlkZUluTW9kdWxlLFxuICAgICAgICBQZXBEcmFnZ2FibGVJdGVtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtTZWN0aW9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uTW9kdWxlIHsgfVxuIl19