@bizdoc/core 3.2.9 → 3.3.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 (455) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +3 -3
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +8 -8
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo-amber.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/fesm2022/bizdoc-core.mjs +2152 -1924
  10. package/fesm2022/bizdoc-core.mjs.map +1 -1
  11. package/lib/admin/admin-menu.component.d.ts +1 -3
  12. package/lib/admin/architecture/designer.base.d.ts +3 -3
  13. package/lib/admin/architecture/elements/form.component.d.ts +1 -1
  14. package/lib/bizdoc.module.d.ts +6 -7
  15. package/lib/compose/trace/trace.base.d.ts +1 -1
  16. package/lib/core/base.d.ts +5 -0
  17. package/lib/core/configuration.d.ts +3 -0
  18. package/lib/core/fields/options.base.d.ts +2 -2
  19. package/lib/core/functions.d.ts +1 -1
  20. package/lib/core/inputs/combination-picker-body.d.ts +0 -2
  21. package/lib/core/inputs/combination-picker.d.ts +1 -1
  22. package/lib/core/session.service.d.ts +2 -2
  23. package/lib/core/slots/slots.component.d.ts +1 -0
  24. package/lib/core/tagging/edit-input.component.d.ts +7 -3
  25. package/lib/core/tagging/tagging.component-base.d.ts +2 -2
  26. package/lib/core/translate.service.d.ts +2 -2
  27. package/lib/core/window-title.service.d.ts +1 -0
  28. package/lib/cube/matrix/matrix.base.d.ts +1 -1
  29. package/lib/cube/view-base.d.ts +1 -1
  30. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
  31. package/lib/home/home-base.component.d.ts +1 -1
  32. package/lib/home/home.desktop.component.d.ts +5 -3
  33. package/lib/notifications/types/notification-base.d.ts +1 -1
  34. package/lib/reports/cube/usage-base.d.ts +1 -1
  35. package/lib/routes.mobile.d.ts +1 -1
  36. package/lib/views/cube/cube-base.d.ts +1 -1
  37. package/package.json +31 -33
  38. package/esm2022/bizdoc-core.mjs +0 -5
  39. package/esm2022/lib/admin/admin-dismiss.service.mjs +0 -28
  40. package/esm2022/lib/admin/admin-menu.component.mjs +0 -24
  41. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +0 -93
  42. package/esm2022/lib/admin/architecture/declarations.mjs +0 -79
  43. package/esm2022/lib/admin/architecture/designer-element.component.mjs +0 -270
  44. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +0 -96
  45. package/esm2022/lib/admin/architecture/designer.base.mjs +0 -136
  46. package/esm2022/lib/admin/architecture/designer.component.mjs +0 -396
  47. package/esm2022/lib/admin/architecture/elements/action.component.mjs +0 -43
  48. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +0 -50
  49. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +0 -49
  50. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +0 -29
  51. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +0 -35
  52. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +0 -49
  53. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +0 -66
  54. package/esm2022/lib/admin/architecture/elements/control.component.mjs +0 -21
  55. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +0 -32
  56. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +0 -34
  57. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +0 -254
  58. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +0 -40
  59. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +0 -34
  60. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +0 -40
  61. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +0 -35
  62. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +0 -56
  63. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +0 -126
  64. package/esm2022/lib/admin/architecture/elements/form.component.mjs +0 -156
  65. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +0 -53
  66. package/esm2022/lib/admin/architecture/elements/job.component.mjs +0 -57
  67. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +0 -98
  68. package/esm2022/lib/admin/architecture/elements/node.component.mjs +0 -18
  69. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +0 -38
  70. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +0 -32
  71. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +0 -34
  72. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +0 -40
  73. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +0 -18
  74. package/esm2022/lib/admin/architecture/elements/report.component.mjs +0 -29
  75. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +0 -33
  76. package/esm2022/lib/admin/architecture/elements/role.component.mjs +0 -43
  77. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +0 -18
  78. package/esm2022/lib/admin/architecture/elements/source.component.mjs +0 -25
  79. package/esm2022/lib/admin/architecture/elements/state.component.mjs +0 -44
  80. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +0 -38
  81. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +0 -39
  82. package/esm2022/lib/admin/architecture/elements/type.component.mjs +0 -83
  83. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +0 -64
  84. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +0 -18
  85. package/esm2022/lib/admin/architecture/elements/view.component.mjs +0 -18
  86. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +0 -29
  87. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +0 -173
  88. package/esm2022/lib/admin/core/ace.input.mjs +0 -144
  89. package/esm2022/lib/admin/core/color-picker.input.mjs +0 -183
  90. package/esm2022/lib/admin/core/localized-string.component.mjs +0 -129
  91. package/esm2022/lib/admin/core/search.input.mjs +0 -52
  92. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +0 -573
  93. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +0 -537
  94. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +0 -39
  95. package/esm2022/lib/admin/document-trace/timeline.mjs +0 -2
  96. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +0 -125
  97. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +0 -270
  98. package/esm2022/lib/admin/form/designer/declarations.mjs +0 -2
  99. package/esm2022/lib/admin/form/designer/design-control.component.mjs +0 -41
  100. package/esm2022/lib/admin/form/designer/properties.component.mjs +0 -71
  101. package/esm2022/lib/admin/form/designer/section.component.mjs +0 -53
  102. package/esm2022/lib/admin/form/designer/settings.component.mjs +0 -51
  103. package/esm2022/lib/admin/form/form.resolve.service.mjs +0 -18
  104. package/esm2022/lib/admin/form/workflow/node-ref.mjs +0 -8
  105. package/esm2022/lib/admin/form/workflow/node.component.mjs +0 -156
  106. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +0 -88
  107. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +0 -586
  108. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +0 -160
  109. package/esm2022/lib/admin/patterns/patterns.component.mjs +0 -180
  110. package/esm2022/lib/admin/permissions/permissions.component.mjs +0 -98
  111. package/esm2022/lib/admin/positions/positions-popup.component.mjs +0 -75
  112. package/esm2022/lib/admin/positions/positions.component.mjs +0 -463
  113. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +0 -156
  114. package/esm2022/lib/admin/profiler/profiler.component.mjs +0 -284
  115. package/esm2022/lib/admin/system.service.mjs +0 -127
  116. package/esm2022/lib/admin/utility-ref.mjs +0 -39
  117. package/esm2022/lib/admin/utility-wrapper.component.mjs +0 -53
  118. package/esm2022/lib/admin/utility.pane.component.mjs +0 -48
  119. package/esm2022/lib/app.component.mjs +0 -73
  120. package/esm2022/lib/bizdoc.module.mjs +0 -100
  121. package/esm2022/lib/browse/browse-items.component.mjs +0 -496
  122. package/esm2022/lib/browse/browse.mobile.component.mjs +0 -102
  123. package/esm2022/lib/browse/browse.pane.component.mjs +0 -169
  124. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +0 -316
  125. package/esm2022/lib/browse/filter/filter.component.mjs +0 -140
  126. package/esm2022/lib/browse/folders-menu.component.mjs +0 -49
  127. package/esm2022/lib/chat/chat-info.mjs +0 -77
  128. package/esm2022/lib/chat/chat.mobile.component.mjs +0 -24
  129. package/esm2022/lib/chat/chat.service.mjs +0 -122
  130. package/esm2022/lib/chat/contacts.component.mjs +0 -107
  131. package/esm2022/lib/chat/contacts.pane.component.mjs +0 -26
  132. package/esm2022/lib/chat/conversation.component.mjs +0 -196
  133. package/esm2022/lib/chat/conversation.pane.component.mjs +0 -46
  134. package/esm2022/lib/compose/action/action-picker.component.mjs +0 -82
  135. package/esm2022/lib/compose/action/action-ref.mjs +0 -19
  136. package/esm2022/lib/compose/action/action.base.mjs +0 -50
  137. package/esm2022/lib/compose/action/action.dialog.mjs +0 -62
  138. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +0 -68
  139. package/esm2022/lib/compose/action/assign-action.component.mjs +0 -77
  140. package/esm2022/lib/compose/action/moveto-action.component.mjs +0 -90
  141. package/esm2022/lib/compose/action/return-action.component.mjs +0 -51
  142. package/esm2022/lib/compose/attachments/attachments.component.mjs +0 -130
  143. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +0 -157
  144. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +0 -25
  145. package/esm2022/lib/compose/box/box.component.mjs +0 -44
  146. package/esm2022/lib/compose/box/control.component.mjs +0 -50
  147. package/esm2022/lib/compose/box/row.component.mjs +0 -41
  148. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +0 -27
  149. package/esm2022/lib/compose/comments/comment.component.mjs +0 -188
  150. package/esm2022/lib/compose/comments/comments.component.mjs +0 -226
  151. package/esm2022/lib/compose/comments/comments.pane.component.mjs +0 -40
  152. package/esm2022/lib/compose/comments/edit-comment.component.mjs +0 -32
  153. package/esm2022/lib/compose/comments/edits.component.mjs +0 -30
  154. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +0 -64
  155. package/esm2022/lib/compose/comments/votes.component.mjs +0 -42
  156. package/esm2022/lib/compose/compose-resolve.service.mjs +0 -34
  157. package/esm2022/lib/compose/compose.mobile.component.mjs +0 -114
  158. package/esm2022/lib/compose/compose.pane.component.mjs +0 -202
  159. package/esm2022/lib/compose/copy/copy.dialog.mjs +0 -45
  160. package/esm2022/lib/compose/dismiss.service.mjs +0 -25
  161. package/esm2022/lib/compose/document-resolve.service.mjs +0 -33
  162. package/esm2022/lib/compose/document-resolver.service.mjs +0 -17
  163. package/esm2022/lib/compose/document.component.mjs +0 -48
  164. package/esm2022/lib/compose/document.mobile.component.mjs +0 -23
  165. package/esm2022/lib/compose/document.pane.component.mjs +0 -27
  166. package/esm2022/lib/compose/events/events.component.mjs +0 -29
  167. package/esm2022/lib/compose/form-ref.mjs +0 -43
  168. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +0 -57
  169. package/esm2022/lib/compose/form.component.mjs +0 -512
  170. package/esm2022/lib/compose/new-menu.component.mjs +0 -94
  171. package/esm2022/lib/compose/overlay.component.exp.mjs +0 -71
  172. package/esm2022/lib/compose/privilage.directive.mjs +0 -64
  173. package/esm2022/lib/compose/recipient-resolver.service.mjs +0 -18
  174. package/esm2022/lib/compose/state.component.mjs +0 -37
  175. package/esm2022/lib/compose/tag/tags.component.mjs +0 -89
  176. package/esm2022/lib/compose/trace/flow.component.mjs +0 -687
  177. package/esm2022/lib/compose/trace/people.component.mjs +0 -39
  178. package/esm2022/lib/compose/trace/trace.base.mjs +0 -79
  179. package/esm2022/lib/compose/trace/trace.component.mjs +0 -353
  180. package/esm2022/lib/compose/trace/trace.pane.component.mjs +0 -48
  181. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +0 -58
  182. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +0 -345
  183. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +0 -53
  184. package/esm2022/lib/core/account.service.mjs +0 -38
  185. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +0 -17
  186. package/esm2022/lib/core/animations.mjs +0 -168
  187. package/esm2022/lib/core/authentication.mjs +0 -4
  188. package/esm2022/lib/core/avatar/avatar.component.mjs +0 -111
  189. package/esm2022/lib/core/base.mjs +0 -2
  190. package/esm2022/lib/core/checkbox.mjs +0 -38
  191. package/esm2022/lib/core/colors.mjs +0 -322
  192. package/esm2022/lib/core/component-factory-resolver.mjs +0 -48
  193. package/esm2022/lib/core/configuration.mjs +0 -17
  194. package/esm2022/lib/core/datasource.service.mjs +0 -75
  195. package/esm2022/lib/core/decorators.mjs +0 -46
  196. package/esm2022/lib/core/document-factory.service.mjs +0 -156
  197. package/esm2022/lib/core/fields/address.designer.mjs +0 -39
  198. package/esm2022/lib/core/fields/address.field.mjs +0 -65
  199. package/esm2022/lib/core/fields/autocomplete.field.mjs +0 -136
  200. package/esm2022/lib/core/fields/axes-picker.designer.mjs +0 -59
  201. package/esm2022/lib/core/fields/axes-picker.field.mjs +0 -46
  202. package/esm2022/lib/core/fields/checkbox.designer.mjs +0 -38
  203. package/esm2022/lib/core/fields/checkbox.field.mjs +0 -35
  204. package/esm2022/lib/core/fields/checklist.designer.mjs +0 -98
  205. package/esm2022/lib/core/fields/checklist.field.mjs +0 -36
  206. package/esm2022/lib/core/fields/date-range.designer.mjs +0 -43
  207. package/esm2022/lib/core/fields/date-range.field.mjs +0 -46
  208. package/esm2022/lib/core/fields/date.designer.mjs +0 -40
  209. package/esm2022/lib/core/fields/date.field.mjs +0 -40
  210. package/esm2022/lib/core/fields/expression.field.mjs +0 -87
  211. package/esm2022/lib/core/fields/file.designer.mjs +0 -39
  212. package/esm2022/lib/core/fields/file.field.mjs +0 -35
  213. package/esm2022/lib/core/fields/html.designer.mjs +0 -61
  214. package/esm2022/lib/core/fields/html.field.mjs +0 -44
  215. package/esm2022/lib/core/fields/input.designer.mjs +0 -38
  216. package/esm2022/lib/core/fields/input.field.mjs +0 -54
  217. package/esm2022/lib/core/fields/localized-string.field.mjs +0 -49
  218. package/esm2022/lib/core/fields/numeric.designer.mjs +0 -72
  219. package/esm2022/lib/core/fields/numeric.field.mjs +0 -37
  220. package/esm2022/lib/core/fields/options.base.mjs +0 -41
  221. package/esm2022/lib/core/fields/options.component.mjs +0 -58
  222. package/esm2022/lib/core/fields/radio-button.designer.mjs +0 -39
  223. package/esm2022/lib/core/fields/radio-button.field.mjs +0 -33
  224. package/esm2022/lib/core/fields/select.designer.mjs +0 -104
  225. package/esm2022/lib/core/fields/select.field.mjs +0 -36
  226. package/esm2022/lib/core/fields/signature.designer.mjs +0 -37
  227. package/esm2022/lib/core/fields/signature.field.mjs +0 -52
  228. package/esm2022/lib/core/fields/switch.field.mjs +0 -35
  229. package/esm2022/lib/core/fields/tags.designer.mjs +0 -28
  230. package/esm2022/lib/core/fields/tags.field.mjs +0 -51
  231. package/esm2022/lib/core/fields/textarea.designer.mjs +0 -33
  232. package/esm2022/lib/core/fields/textarea.field.mjs +0 -37
  233. package/esm2022/lib/core/fields/time.designer.mjs +0 -41
  234. package/esm2022/lib/core/fields/time.field.mjs +0 -39
  235. package/esm2022/lib/core/fields/timespan.field.mjs +0 -82
  236. package/esm2022/lib/core/fields/yesno.designer.mjs +0 -52
  237. package/esm2022/lib/core/fields/yesno.field.mjs +0 -34
  238. package/esm2022/lib/core/firebase.service.mjs +0 -51
  239. package/esm2022/lib/core/functions.mjs +0 -225
  240. package/esm2022/lib/core/guide/guide.component.mjs +0 -220
  241. package/esm2022/lib/core/guide/guide.service.mjs +0 -124
  242. package/esm2022/lib/core/guide/help-tip.component.mjs +0 -52
  243. package/esm2022/lib/core/http.interceptor.mjs +0 -63
  244. package/esm2022/lib/core/hub.service.mjs +0 -117
  245. package/esm2022/lib/core/identity/identity.component.mjs +0 -66
  246. package/esm2022/lib/core/info/attachment-info.service.mjs +0 -53
  247. package/esm2022/lib/core/info/document-info.service.mjs +0 -21
  248. package/esm2022/lib/core/info/location-info.component.mjs +0 -60
  249. package/esm2022/lib/core/info/map-info.mjs +0 -42
  250. package/esm2022/lib/core/inputs/address.input.mjs +0 -203
  251. package/esm2022/lib/core/inputs/auto-complete.input.mjs +0 -273
  252. package/esm2022/lib/core/inputs/combination-picker-body.mjs +0 -171
  253. package/esm2022/lib/core/inputs/combination-picker.mjs +0 -285
  254. package/esm2022/lib/core/inputs/combination-pool.mjs +0 -105
  255. package/esm2022/lib/core/inputs/file.input.mjs +0 -432
  256. package/esm2022/lib/core/inputs/select.input.mjs +0 -254
  257. package/esm2022/lib/core/inputs/signature.input.mjs +0 -150
  258. package/esm2022/lib/core/inputs/time-picker.mjs +0 -195
  259. package/esm2022/lib/core/inputs/timespan.input.mjs +0 -180
  260. package/esm2022/lib/core/layout.component.mjs +0 -93
  261. package/esm2022/lib/core/lottie-animation.exp.mjs +0 -49
  262. package/esm2022/lib/core/mailbox.service.mjs +0 -445
  263. package/esm2022/lib/core/models.mjs +0 -25
  264. package/esm2022/lib/core/none.component.mjs +0 -37
  265. package/esm2022/lib/core/pipes/action.pipe.mjs +0 -25
  266. package/esm2022/lib/core/pipes/calendar.pipe.mjs +0 -72
  267. package/esm2022/lib/core/pipes/date-format.pipe.mjs +0 -19
  268. package/esm2022/lib/core/pipes/daterange.pipe.mjs +0 -62
  269. package/esm2022/lib/core/pipes/difference.pipe.mjs +0 -15
  270. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +0 -48
  271. package/esm2022/lib/core/pipes/duration.pipe.mjs +0 -19
  272. package/esm2022/lib/core/pipes/filter.pipe.mjs +0 -25
  273. package/esm2022/lib/core/pipes/form.pipe.mjs +0 -25
  274. package/esm2022/lib/core/pipes/join.pipe.mjs +0 -18
  275. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +0 -26
  276. package/esm2022/lib/core/pipes/role.pipe.mjs +0 -25
  277. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +0 -18
  278. package/esm2022/lib/core/pipes/sort.pipe.mjs +0 -42
  279. package/esm2022/lib/core/pipes/state.pipe.mjs +0 -25
  280. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +0 -51
  281. package/esm2022/lib/core/pipes/to-now.pipe.mjs +0 -66
  282. package/esm2022/lib/core/pipes/translate.pipe.mjs +0 -58
  283. package/esm2022/lib/core/pipes/type-value.pipe.mjs +0 -42
  284. package/esm2022/lib/core/pipes/user-name.pipe.mjs +0 -21
  285. package/esm2022/lib/core/popup/popup-ref.mjs +0 -20
  286. package/esm2022/lib/core/popup/popup.component.mjs +0 -36
  287. package/esm2022/lib/core/popup/popup.service.mjs +0 -158
  288. package/esm2022/lib/core/popup/tooltip.directive.mjs +0 -81
  289. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +0 -29
  290. package/esm2022/lib/core/prompt/mask/mask.component.mjs +0 -21
  291. package/esm2022/lib/core/prompt.service.mjs +0 -88
  292. package/esm2022/lib/core/router.mjs +0 -37
  293. package/esm2022/lib/core/save-changes.dialog.mjs +0 -18
  294. package/esm2022/lib/core/session.service.mjs +0 -291
  295. package/esm2022/lib/core/slots/pane-ref.mjs +0 -152
  296. package/esm2022/lib/core/slots/router.directive.mjs +0 -68
  297. package/esm2022/lib/core/slots/router.service.mjs +0 -40
  298. package/esm2022/lib/core/slots/slots.component.mjs +0 -1191
  299. package/esm2022/lib/core/sticky-toolbar.exp.mjs +0 -33
  300. package/esm2022/lib/core/tagging/documents.component.mjs +0 -25
  301. package/esm2022/lib/core/tagging/edit-input.component.mjs +0 -231
  302. package/esm2022/lib/core/tagging/emoji.component.mjs +0 -35
  303. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +0 -39
  304. package/esm2022/lib/core/tagging/tagging.component-base.mjs +0 -29
  305. package/esm2022/lib/core/tagging/tagging.directive.mjs +0 -137
  306. package/esm2022/lib/core/tagging/tagging.pipe.mjs +0 -72
  307. package/esm2022/lib/core/tagging/users.component.mjs +0 -32
  308. package/esm2022/lib/core/translate.service.mjs +0 -125
  309. package/esm2022/lib/core/translations.mjs +0 -1068
  310. package/esm2022/lib/core/virtual-tabs.component.exp.mjs +0 -84
  311. package/esm2022/lib/core/window-title.service.mjs +0 -61
  312. package/esm2022/lib/cube/accum/accum.component.mjs +0 -262
  313. package/esm2022/lib/cube/chart/chart.component.mjs +0 -345
  314. package/esm2022/lib/cube/cube-info.service.mjs +0 -103
  315. package/esm2022/lib/cube/cube-menu.component.mjs +0 -25
  316. package/esm2022/lib/cube/cube-view.component.mjs +0 -186
  317. package/esm2022/lib/cube/cube.service.mjs +0 -446
  318. package/esm2022/lib/cube/declarations.mjs +0 -2
  319. package/esm2022/lib/cube/explore/document-item.component.mjs +0 -38
  320. package/esm2022/lib/cube/explore/explore-item.component.mjs +0 -27
  321. package/esm2022/lib/cube/explore/explore-items.component.mjs +0 -193
  322. package/esm2022/lib/cube/explore/explore.pane.component.mjs +0 -78
  323. package/esm2022/lib/cube/explore/item-resolver.service.mjs +0 -30
  324. package/esm2022/lib/cube/explore/item.pane.component.mjs +0 -21
  325. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +0 -75
  326. package/esm2022/lib/cube/filter/filter.component.mjs +0 -137
  327. package/esm2022/lib/cube/grid/grid.component.mjs +0 -210
  328. package/esm2022/lib/cube/matrix/matrix.base.mjs +0 -124
  329. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +0 -67
  330. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +0 -78
  331. package/esm2022/lib/cube/matrix/popup.component.mjs +0 -70
  332. package/esm2022/lib/cube/matrix/table.component.mjs +0 -512
  333. package/esm2022/lib/cube/parallel/item.mjs +0 -40
  334. package/esm2022/lib/cube/parallel/parallel.component.mjs +0 -162
  335. package/esm2022/lib/cube/pivot/pivot.component.mjs +0 -564
  336. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +0 -382
  337. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +0 -19
  338. package/esm2022/lib/cube/sum/sum.component.mjs +0 -403
  339. package/esm2022/lib/cube/view-base.mjs +0 -74
  340. package/esm2022/lib/cube/view.mobile.component.mjs +0 -121
  341. package/esm2022/lib/cube/view.pane.component.mjs +0 -99
  342. package/esm2022/lib/dashboard/actions/actions.widget.mjs +0 -127
  343. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +0 -151
  344. package/esm2022/lib/dashboard/cube/compare.widget.mjs +0 -216
  345. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +0 -117
  346. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +0 -50
  347. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +0 -146
  348. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +0 -85
  349. package/esm2022/lib/dashboard/cube/documents.widget.mjs +0 -66
  350. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +0 -61
  351. package/esm2022/lib/dashboard/dashboard.component.mjs +0 -67
  352. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +0 -18
  353. package/esm2022/lib/dashboard/recents/recents.widget.mjs +0 -98
  354. package/esm2022/lib/dashboard/score/activity.widget.mjs +0 -177
  355. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +0 -215
  356. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +0 -251
  357. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +0 -59
  358. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +0 -222
  359. package/esm2022/lib/dashboard/widget-item.component.mjs +0 -91
  360. package/esm2022/lib/dashboard/widget-ref.mjs +0 -18
  361. package/esm2022/lib/designer.module.mjs +0 -106
  362. package/esm2022/lib/desktop.module.mjs +0 -140
  363. package/esm2022/lib/home/about/about.dialog.mjs +0 -25
  364. package/esm2022/lib/home/home-base.component.mjs +0 -92
  365. package/esm2022/lib/home/home.desktop.component.mjs +0 -286
  366. package/esm2022/lib/home/home.mobile.component.mjs +0 -131
  367. package/esm2022/lib/home/notifications/notifications.component.mjs +0 -64
  368. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +0 -37
  369. package/esm2022/lib/home/sign/sign.component.mjs +0 -56
  370. package/esm2022/lib/impersonate/impersonate.component.mjs +0 -77
  371. package/esm2022/lib/mobile.module.mjs +0 -61
  372. package/esm2022/lib/modules/chart.module.mjs +0 -44
  373. package/esm2022/lib/modules/circular-gauge.module.mjs +0 -20
  374. package/esm2022/lib/modules/date.adapter.mjs +0 -23
  375. package/esm2022/lib/modules/datepicker.intl.mjs +0 -41
  376. package/esm2022/lib/modules/dayjs.module.mjs +0 -43
  377. package/esm2022/lib/modules/diagram.module.mjs +0 -39
  378. package/esm2022/lib/modules/gantt.module.mjs +0 -22
  379. package/esm2022/lib/modules/grid.module.mjs +0 -26
  380. package/esm2022/lib/modules/linear-gauge.module.mjs +0 -17
  381. package/esm2022/lib/modules/material.module.mjs +0 -182
  382. package/esm2022/lib/modules/paginator.intl.mjs +0 -21
  383. package/esm2022/lib/modules/pivot.module.mjs +0 -24
  384. package/esm2022/lib/modules/schedule.module.mjs +0 -24
  385. package/esm2022/lib/modules/spreadsheet.module.mjs +0 -28
  386. package/esm2022/lib/modules/stepper.intl.mjs +0 -17
  387. package/esm2022/lib/modules/texteditor.module.mjs +0 -26
  388. package/esm2022/lib/notifications/filter.component.mjs +0 -24
  389. package/esm2022/lib/notifications/notifications-table.component.mjs +0 -105
  390. package/esm2022/lib/notifications/notifications.component-base.mjs +0 -50
  391. package/esm2022/lib/notifications/notifications.mobile.component.mjs +0 -20
  392. package/esm2022/lib/notifications/notifications.pane.component.mjs +0 -21
  393. package/esm2022/lib/notifications/notifications.service.mjs +0 -78
  394. package/esm2022/lib/notifications/types/commented.notification.mjs +0 -60
  395. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +0 -58
  396. package/esm2022/lib/notifications/types/escalated.notification.mjs +0 -33
  397. package/esm2022/lib/notifications/types/invite.notification.mjs +0 -45
  398. package/esm2022/lib/notifications/types/liked.notification.mjs +0 -58
  399. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +0 -31
  400. package/esm2022/lib/notifications/types/notification-base.mjs +0 -40
  401. package/esm2022/lib/notifications/types/nudge.notification.mjs +0 -31
  402. package/esm2022/lib/notifications/types/state-changed.notification.mjs +0 -30
  403. package/esm2022/lib/notifications/types/tagged.notification.mjs +0 -43
  404. package/esm2022/lib/notifications/types/text.notification.mjs +0 -23
  405. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +0 -36
  406. package/esm2022/lib/options/options.component.mjs +0 -308
  407. package/esm2022/lib/options/options.desktop.component.mjs +0 -26
  408. package/esm2022/lib/options/options.mobile.component.mjs +0 -23
  409. package/esm2022/lib/reports/arguments-component.mjs +0 -81
  410. package/esm2022/lib/reports/cube/documents.component.mjs +0 -38
  411. package/esm2022/lib/reports/cube/grid-documents.component.mjs +0 -72
  412. package/esm2022/lib/reports/cube/performance-hilo.component.mjs +0 -260
  413. package/esm2022/lib/reports/cube/performance-wind.component.mjs +0 -269
  414. package/esm2022/lib/reports/cube/table-documents.component.mjs +0 -57
  415. package/esm2022/lib/reports/cube/usage-args.component.mjs +0 -62
  416. package/esm2022/lib/reports/cube/usage-base.mjs +0 -79
  417. package/esm2022/lib/reports/cube/usage-chart.component.mjs +0 -354
  418. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +0 -257
  419. package/esm2022/lib/reports/cube/usage.component.mjs +0 -40
  420. package/esm2022/lib/reports/report-ref.mjs +0 -38
  421. package/esm2022/lib/reports/report-viewer.component.mjs +0 -156
  422. package/esm2022/lib/reports/report.mobile.component.mjs +0 -127
  423. package/esm2022/lib/reports/report.pane.component.mjs +0 -109
  424. package/esm2022/lib/reports/reports-menu.component.mjs +0 -24
  425. package/esm2022/lib/reports/substitution/substitution.component.mjs +0 -39
  426. package/esm2022/lib/reports/table/table-view.component.mjs +0 -40
  427. package/esm2022/lib/reports/tasks/tasks.component.mjs +0 -95
  428. package/esm2022/lib/routes.desktop.mjs +0 -209
  429. package/esm2022/lib/routes.mobile.mjs +0 -85
  430. package/esm2022/lib/scheduler/schedule.component.mjs +0 -164
  431. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +0 -37
  432. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +0 -50
  433. package/esm2022/lib/search/cube.component.mjs +0 -47
  434. package/esm2022/lib/search/declarations.mjs +0 -7
  435. package/esm2022/lib/search/document.component.mjs +0 -41
  436. package/esm2022/lib/search/guide.component.mjs +0 -28
  437. package/esm2022/lib/search/path.component.mjs +0 -44
  438. package/esm2022/lib/search/search.service.mjs +0 -155
  439. package/esm2022/lib/shared.module.mjs +0 -622
  440. package/esm2022/lib/system.module.mjs +0 -562
  441. package/esm2022/lib/views/cube/chart.component.mjs +0 -74
  442. package/esm2022/lib/views/cube/cube-base.mjs +0 -101
  443. package/esm2022/lib/views/cube/explore.component.mjs +0 -85
  444. package/esm2022/lib/views/cube/matrix.component.mjs +0 -101
  445. package/esm2022/lib/views/cube/parallel.component.mjs +0 -53
  446. package/esm2022/lib/views/cube/pivot.component.mjs +0 -50
  447. package/esm2022/lib/views/cube/sum.component.mjs +0 -66
  448. package/esm2022/lib/views/cube/view.component.mjs +0 -101
  449. package/esm2022/lib/views/document-view-ref.mjs +0 -27
  450. package/esm2022/lib/views/timeline/timeline.component.mjs +0 -329
  451. package/esm2022/lib/views/view-item.component.mjs +0 -68
  452. package/esm2022/lib/views/views.component.mjs +0 -32
  453. package/esm2022/lib/views/views.mobile.component.mjs +0 -21
  454. package/esm2022/lib/views/views.pane.component.mjs +0 -29
  455. package/esm2022/public-api.mjs +0 -182
@@ -1,270 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, HostListener } from "@angular/core";
3
- import { OpenPolicy } from "../../../core/configuration";
4
- import { BizDoc } from "../../../core/decorators";
5
- import { cleanup } from "../../../core/functions";
6
- import { ControlPropertiesComponent } from "./properties.component";
7
- import { SectionPropertiesComponent } from "./section.component";
8
- import { BoxSettingsComponent } from "./settings.component";
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "../../../core/slots/pane-ref";
12
- import * as i3 from "../../../core/prompt.service";
13
- import * as i4 from "../../system.service";
14
- import * as i5 from "../../../core/translate.service";
15
- import * as i6 from "../../../core/slots/router.service";
16
- import * as i7 from "../../../core/session.service";
17
- import * as i8 from "../../utility-ref";
18
- import * as i9 from "@angular/cdk/drag-drop";
19
- import * as i10 from "@angular/material/toolbar";
20
- import * as i11 from "@angular/material/button";
21
- import * as i12 from "@angular/material/icon";
22
- import * as i13 from "@angular/material/menu";
23
- import * as i14 from "../../../core/popup/tooltip.directive";
24
- import * as i15 from "./design-control.component";
25
- import * as i16 from "../../../core/pipes/localized-string.pipe";
26
- import * as i17 from "../../../core/pipes/translate.pipe";
27
- /** */
28
- let FormDesignerComponent = class FormDesignerComponent {
29
- constructor(_fb, _pane, _cd, _ps, _system, _translate, _router, _session, _el, _ref) {
30
- this._fb = _fb;
31
- this._pane = _pane;
32
- this._cd = _cd;
33
- this._ps = _ps;
34
- this._system = _system;
35
- this._translate = _translate;
36
- this._router = _router;
37
- this._session = _session;
38
- this._el = _el;
39
- this._ref = _ref;
40
- this.loading = true;
41
- this.tools = true;
42
- this.saving = false;
43
- this.history = [];
44
- this.historyIndex = -1;
45
- this.sections = this._fb.array([]);
46
- this.form = this._fb.group({
47
- subject: null,
48
- value: null,
49
- summary: null,
50
- sections: this.sections
51
- });
52
- }
53
- ngOnInit() {
54
- this._pane.queryParamsChange().subscribe(p => {
55
- const { formId } = p;
56
- formId && this._open(formId);
57
- });
58
- this._system.controls().subscribe(c => {
59
- this.controls = c.filter(c => !c.system);
60
- c.forEach(c => this.controls[c.name] = c);
61
- });
62
- }
63
- _open(formId) {
64
- this._ref.populate(formId).subscribe(r => {
65
- this._formId = formId;
66
- this._assign(r);
67
- this.loading = false;
68
- });
69
- }
70
- _assign(model) {
71
- this.model = model || { sections: [] };
72
- this.sections.clear({ emitEvent: false });
73
- this.form.patchValue(this.model, { emitEvent: false });
74
- this.model.sections.forEach(s => this.sections.push(this._sectionform(s), { emitEvent: false }));
75
- }
76
- _sectionform(model) {
77
- const form = this._fb.group({
78
- name: model.name,
79
- title: model.title,
80
- note: model.note,
81
- multiLine: model.multiLine,
82
- rows: this._fb.array(model.rows?.map(r => this._rowform(r)) || [])
83
- });
84
- return form;
85
- }
86
- _rowform(row) {
87
- return this._fb.group({
88
- fields: this._fb.array(row.fields?.map(f => this._fieldform(f)))
89
- });
90
- }
91
- _fieldform(field) {
92
- const form = this._fb.control(field);
93
- return form;
94
- }
95
- addSection(_) {
96
- let n = 0, name, title;
97
- do {
98
- n++;
99
- name = 'section' + '_' + n;
100
- title = this._translate.get('SectionN', n);
101
- } while (this.sections.controls.find(s => s.controls.name.value === name || s.controls.title.value === title));
102
- this._router.navigate(SectionPropertiesComponent, {
103
- policy: OpenPolicy.Dialog | OpenPolicy.Dismissable,
104
- state: {
105
- name,
106
- title,
107
- draft: true,
108
- rows: [{ fields: [] }]
109
- }
110
- }).then(e => e.closed().subscribe(v => {
111
- if (v) {
112
- this._notifyChange();
113
- this.sections.push(this._sectionform(v));
114
- }
115
- }));
116
- }
117
- addRow(section, _) {
118
- this._notifyChange();
119
- section.get('rows').push(this._rowform({
120
- fields: []
121
- }));
122
- this._cd.detectChanges();
123
- this._el.nativeElement.querySelector(`section[data-index='${this.sections.controls.indexOf(section)}'] .designer-row:last-child button`)?.focus();
124
- }
125
- iconOf(type) { return this.controls[type].icon; }
126
- addField(section, row, control, evt) {
127
- let n = 0, name, label;
128
- do {
129
- n++;
130
- name = control.name.replace('-', '_') + '_' + n;
131
- label = control.title + ' ' + n;
132
- } while (section.get('rows').controls.
133
- find(r => r.get('fields').controls.find(f => f.value.name === name || f.value.label === label) != null));
134
- this._router.navigate(ControlPropertiesComponent, {
135
- policy: OpenPolicy.Dialog | OpenPolicy.Dismissable,
136
- icon: control.icon,
137
- state: {
138
- name, label, draft: true,
139
- controlType: control.name
140
- }
141
- }).then(e => e.closed().subscribe(v => {
142
- if (v) {
143
- this._notifyChange();
144
- row.get('fields').push(this._fieldform(v));
145
- }
146
- }));
147
- }
148
- editField(field) {
149
- const model = field.getRawValue(), control = this.controls[model.controlType];
150
- this._router.navigate(ControlPropertiesComponent, {
151
- policy: OpenPolicy.Tab | OpenPolicy.Defer,
152
- icon: control.icon,
153
- state: model
154
- }).then(e => e.closed().subscribe(v => {
155
- if (v) {
156
- this._notifyChange();
157
- field.setValue(v);
158
- }
159
- }));
160
- }
161
- editSection(field) {
162
- this._router.navigate(SectionPropertiesComponent, {
163
- policy: OpenPolicy.Tab | OpenPolicy.Defer,
164
- state: field.getRawValue()
165
- }).then(e => e.closed().subscribe(v => {
166
- if (v) {
167
- this._notifyChange();
168
- field.setValue(v);
169
- }
170
- }));
171
- }
172
- opensettings() {
173
- this._router.navigate(BoxSettingsComponent, {
174
- policy: OpenPolicy.Tab | OpenPolicy.Defer,
175
- state: this.form.getRawValue()
176
- }).then(e => e.closed().subscribe(v => {
177
- this._notifyChange();
178
- this.form.patchValue(v);
179
- }));
180
- }
181
- removeField(row, field) {
182
- this._notifyChange();
183
- row.get('fields').controls.remove(field);
184
- }
185
- removeSection(section) {
186
- this._notifyChange();
187
- this.sections.controls.remove(section);
188
- }
189
- removeRow(section, row) {
190
- this._notifyChange();
191
- section.get('rows').controls.remove(row);
192
- }
193
- _notifyChange() {
194
- this.history.push(JSON.stringify(this.form.value));
195
- this.historyIndex = this.history.length - 1;
196
- this.form.markAsDirty();
197
- }
198
- undo() {
199
- this._restore();
200
- this.historyIndex--;
201
- }
202
- redo() {
203
- this._restore();
204
- this.historyIndex++;
205
- }
206
- _restore() {
207
- this._assign(JSON.parse(this.history[this.historyIndex]));
208
- }
209
- /**
210
- * Ctrl-s save; Ctrl-z undo
211
- * @param event
212
- */
213
- handleKeyboardEvent(event) {
214
- if (event.ctrlKey) {
215
- if (event.key === 'S' || event.key === 's') {
216
- this.form.dirty && this.save();
217
- event.preventDefault();
218
- event.stopPropagation();
219
- }
220
- }
221
- }
222
- drop(event, collection) {
223
- this._notifyChange();
224
- if (event.previousContainer === event.container) {
225
- const element = collection.at(event.previousIndex);
226
- collection.removeAt(event.previousIndex);
227
- collection.insert(event.currentIndex, element);
228
- //moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
229
- }
230
- else {
231
- // transferArrayItem(
232
- // event.previousContainer.data,
233
- // event.container.data,
234
- // event.previousIndex,
235
- // event.currentIndex,
236
- // );
237
- }
238
- }
239
- save() {
240
- this.saving = true;
241
- this.model = this.form.value;
242
- this._ref.execute({ metadata: cleanup(this.model), formId: this._formId }).subscribe({
243
- next: () => {
244
- this._ps.toast('ChangesSaved');
245
- this.form.markAsPristine();
246
- const form = this._session.profile.forms.find(f => f.name == this._formId);
247
- if (form)
248
- form.options = this.model;
249
- this.saving = false;
250
- }, error: () => {
251
- this._ps.error();
252
- this.saving = false;
253
- }
254
- });
255
- }
256
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FormDesignerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PaneRef }, { token: i0.ChangeDetectorRef }, { token: i3.PromptService }, { token: i4.SystemService }, { token: i5.TranslateService }, { token: i6.PanesRouter }, { token: i7.SessionService }, { token: i0.ElementRef }, { token: i8.UtilityRef }], target: i0.ɵɵFactoryTarget.Component }); }
257
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: FormDesignerComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n <button mat-icon-button (click)=\"undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"historyIndex === -1\"><mat-icon class=\"mat-icon-rtl-mirror\">undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"historyIndex === history.length - 1\"><mat-icon class=\"mat-icon-rtl-mirror\">redo</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <!--<button mat-icon-button (click)=\"opensettings()\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>-->\r\n</mat-toolbar>\r\n@if (model) {\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, sections)\">\r\n @for (s of sections.controls; track s; let si = $index) {\r\n <section class=\"column\" cdkDrag [attr.data-index]=\"si\">\r\n <div class=\"row\">\r\n <mat-icon class=\"section-drag\" cdkDragHandle>drag_indicator</mat-icon>\r\n <div class=\"column\" [formGroup]=\"s\">\r\n <h2 class=\"mat-h2\">{{s.controls.title.value|localizedString}}</h2>\r\n @if (s.controls.note.value) {\r\n <p class=\"mat-body-1\">{{s.controls.note.value|localizedString}}</p>\r\n }\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, s.controls.rows)\">\r\n @for (r of s.controls.rows.controls; track r; let ri = $index) {\r\n <div class=\"row designer-row\" cdkDrag [attr.data-index]=\"ri\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event, r.controls.fields)\" class=\"row\">\r\n @for (f of r.controls.fields.controls; track f; let fi = $index) {\r\n <div cdkDrag class=\"designer-field row\" [attr.data-index]=\"fi\">\r\n <!--<mat-icon cdkDragHandle>{{iconOf(f.value.type)}}</mat-icon>-->\r\n <bizdoc-box-control-design [metadata]=\"f.value\"></bizdoc-box-control-design>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeField(r, f)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editField(f)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n <!--<div *cdkDragPlaceholder class=\"drag-placeholder\"></div>-->\r\n </div>\r\n }\r\n </div>\r\n <div class=\"column\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"fieldMenu\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <mat-menu #fieldMenu>\r\n @for (c of controls; track c) {\r\n <button mat-menu-item (click)=\"addField(s, r, c, $event)\">\r\n <mat-icon>{{c.icon}}</mat-icon>\r\n <span>{{c.title}}</span>\r\n </button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeRow(s, r)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tools row\">\r\n <button mat-stroked-button (click)=\"addRow(s, $event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button (click)=\"removeSection(s)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editSection(s)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n </section>\r\n }\r\n <button mat-stroked-button (click)=\"addSection($event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n </form>\r\n}\r\n", styles: ["form{margin:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}section,.designer-row{border:2px solid transparent;border-radius:3px;padding:8px}.designer-field button{opacity:.1}.designer-field:hover button{opacity:1}section:hover,.designer-row:hover{border:2px dotted}section .designer-row{margin:5px 0}section .designer-row .designer-field{flex:1}.drag-placeholder{border:2px dashed}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i9.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i9.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i15.DesignControlComponent, selector: "bizdoc-box-control-design", inputs: ["metadata"] }, { kind: "pipe", type: i16.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }] }); }
258
- };
259
- FormDesignerComponent = __decorate([
260
- BizDoc({ selector: 'bizdoc-form-designer' })
261
- ], FormDesignerComponent);
262
- export { FormDesignerComponent };
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FormDesignerComponent, decorators: [{
264
- type: Component,
265
- args: [{ template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n <button mat-icon-button (click)=\"undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"historyIndex === -1\"><mat-icon class=\"mat-icon-rtl-mirror\">undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"historyIndex === history.length - 1\"><mat-icon class=\"mat-icon-rtl-mirror\">redo</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <!--<button mat-icon-button (click)=\"opensettings()\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>-->\r\n</mat-toolbar>\r\n@if (model) {\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, sections)\">\r\n @for (s of sections.controls; track s; let si = $index) {\r\n <section class=\"column\" cdkDrag [attr.data-index]=\"si\">\r\n <div class=\"row\">\r\n <mat-icon class=\"section-drag\" cdkDragHandle>drag_indicator</mat-icon>\r\n <div class=\"column\" [formGroup]=\"s\">\r\n <h2 class=\"mat-h2\">{{s.controls.title.value|localizedString}}</h2>\r\n @if (s.controls.note.value) {\r\n <p class=\"mat-body-1\">{{s.controls.note.value|localizedString}}</p>\r\n }\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, s.controls.rows)\">\r\n @for (r of s.controls.rows.controls; track r; let ri = $index) {\r\n <div class=\"row designer-row\" cdkDrag [attr.data-index]=\"ri\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event, r.controls.fields)\" class=\"row\">\r\n @for (f of r.controls.fields.controls; track f; let fi = $index) {\r\n <div cdkDrag class=\"designer-field row\" [attr.data-index]=\"fi\">\r\n <!--<mat-icon cdkDragHandle>{{iconOf(f.value.type)}}</mat-icon>-->\r\n <bizdoc-box-control-design [metadata]=\"f.value\"></bizdoc-box-control-design>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeField(r, f)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editField(f)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n <!--<div *cdkDragPlaceholder class=\"drag-placeholder\"></div>-->\r\n </div>\r\n }\r\n </div>\r\n <div class=\"column\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"fieldMenu\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <mat-menu #fieldMenu>\r\n @for (c of controls; track c) {\r\n <button mat-menu-item (click)=\"addField(s, r, c, $event)\">\r\n <mat-icon>{{c.icon}}</mat-icon>\r\n <span>{{c.title}}</span>\r\n </button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeRow(s, r)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tools row\">\r\n <button mat-stroked-button (click)=\"addRow(s, $event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button (click)=\"removeSection(s)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editSection(s)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n </section>\r\n }\r\n <button mat-stroked-button (click)=\"addSection($event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n </form>\r\n}\r\n", styles: ["form{margin:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}section,.designer-row{border:2px solid transparent;border-radius:3px;padding:8px}.designer-field button{opacity:.1}.designer-field:hover button{opacity:1}section:hover,.designer-row:hover{border:2px dotted}section .designer-row{margin:5px 0}section .designer-row .designer-field{flex:1}.drag-placeholder{border:2px dashed}\n"] }]
266
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PaneRef }, { type: i0.ChangeDetectorRef }, { type: i3.PromptService }, { type: i4.SystemService }, { type: i5.TranslateService }, { type: i6.PanesRouter }, { type: i7.SessionService }, { type: i0.ElementRef }, { type: i8.UtilityRef }], propDecorators: { handleKeyboardEvent: [{
267
- type: HostListener,
268
- args: ['document:keydown', ['$event']]
269
- }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWRlc2lnbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL2Rlc2lnbmVyL2JveC1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS9kZXNpZ25lci9ib3gtZGVzaWduZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVVsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RCxNQUFNO0FBTUMsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUEyQmhDLFlBQ1UsR0FBZ0IsRUFDaEIsS0FBbUIsRUFDbkIsR0FBc0IsRUFDdEIsR0FBa0IsRUFDbEIsT0FBc0IsRUFDdEIsVUFBNEIsRUFDNUIsT0FBb0IsRUFDcEIsUUFBd0IsRUFDeEIsR0FBZSxFQUNmLElBQWlHO1FBVGpHLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLFlB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LENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxJQUFJO29CQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBblBVLHFCQUFxQjtrR0FBckIscUJBQXFCLGdJQ3pCbEMsd3lKQW9FQTs7QUQzQ2EscUJBQXFCO0lBRGpDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0dBQ2hDLHFCQUFxQixDQW9QakM7OzJGQXBQWSxxQkFBcUI7a0JBTGpDLFNBQVM7O3NVQWdOUixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IGNsZWFudXAgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgQ3ViZSwgVHlwZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xJbmZvLCBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tIFwiLi4vLi4vdXRpbGl0eS1yZWZcIjtcclxuaW1wb3J0IHsgQm94Rm9ybU1ldGFkYXRhLCBGaWVsZE1vZGVsLCBCb3hSb3dNb2RlbCwgQm94U2VjdGlvbk1vZGVsIH0gZnJvbSBcIi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IENvbnRyb2xQcm9wZXJ0aWVzQ29tcG9uZW50IH0gZnJvbSBcIi4vcHJvcGVydGllcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tIFwiLi9zZWN0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCb3hTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gXCIuL3NldHRpbmdzLmNvbXBvbmVudFwiO1xyXG5cclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnYm94LWRlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnYm94LWRlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2JpemRvYy1mb3JtLWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgRm9ybURlc2lnbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nID0gdHJ1ZTtcclxuICB0b29scyA9IHRydWU7XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgbW9kZWwhOiBCb3hGb3JtTWV0YWRhdGE7XHJcbiAgcmVhZG9ubHkgaGlzdG9yeTogc3RyaW5nW10gPSBbXTtcclxuICBoaXN0b3J5SW5kZXggPSAtMTtcclxuICByZWFkb25seSBkYXRhdHlwZXM6IFR5cGVbXTtcclxuICByZWFkb25seSBjdWJlczogQ3ViZVtdO1xyXG4gIHJlYWRvbmx5IHNlY3Rpb25zID0gdGhpcy5fZmIuYXJyYXk8Rm9ybUdyb3VwPHtcclxuICAgIG5hbWU6IEZvcm1Db250cm9sPHN0cmluZz47XHJcbiAgICB0aXRsZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgICBub3RlOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPjtcclxuICAgIG11bHRpTGluZTogRm9ybUNvbnRyb2w8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcbiAgICBkcmFmdDogRm9ybUNvbnRyb2w8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcbiAgICByb3dzOiBGb3JtQXJyYXk8Rm9ybUdyb3VwPHtcclxuICAgICAgZmllbGRzOiBGb3JtQXJyYXk8Rm9ybUdyb3VwPlxyXG4gICAgfT4+XHJcbiAgfT4+KFtdKTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgc3ViamVjdDogbnVsbCxcclxuICAgIHZhbHVlOiBudWxsLFxyXG4gICAgc3VtbWFyeTogbnVsbCxcclxuICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zXHJcbiAgfSk7XHJcbiAgY29udHJvbHM6IENvbnRyb2xJbmZvW107XHJcbiAgcHJpdmF0ZSBfZm9ybUlkOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9wczogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3N5c3RlbTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBVdGlsaXR5UmVmPGJvb2xlYW4sIHsgbWV0YWRhdGE6IEJveEZvcm1NZXRhZGF0YSwgZm9ybUlkOiBzdHJpbmcgfSwgQm94Rm9ybU1ldGFkYXRhLCBzdHJpbmc+KSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZSgpLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgY29uc3QgeyBmb3JtSWQgfSA9IHA7XHJcbiAgICAgIGZvcm1JZCAmJiB0aGlzLl9vcGVuKGZvcm1JZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3N5c3RlbS5jb250cm9scygpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy5jb250cm9scyA9IGMuZmlsdGVyKGMgPT4gIWMuc3lzdGVtKTtcclxuICAgICAgYy5mb3JFYWNoKGMgPT4gKHRoaXMuY29udHJvbHMgYXMgYW55KVtjLm5hbWVdID0gYyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3Blbihmb3JtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcmVmLnBvcHVsYXRlKGZvcm1JZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9mb3JtSWQgPSBmb3JtSWQ7XHJcbiAgICAgIHRoaXMuX2Fzc2lnbihyKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfYXNzaWduKG1vZGVsOiBCb3hGb3JtTWV0YWRhdGEpIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbCB8fCB7IHNlY3Rpb25zOiBbXSB9O1xyXG4gICAgdGhpcy5zZWN0aW9ucy5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsIGFzIGFueSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5tb2RlbC5zZWN0aW9ucy5mb3JFYWNoKHMgPT4gdGhpcy5zZWN0aW9ucy5wdXNoKHRoaXMuX3NlY3Rpb25mb3JtKHMpIGFzIGFueSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2VjdGlvbmZvcm0obW9kZWw6IEJveFNlY3Rpb25Nb2RlbCkge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwPEJveFNlY3Rpb25Nb2RlbD4oe1xyXG4gICAgICBuYW1lOiBtb2RlbC5uYW1lLFxyXG4gICAgICB0aXRsZTogbW9kZWwudGl0bGUsXHJcbiAgICAgIG5vdGU6IG1vZGVsLm5vdGUsXHJcbiAgICAgIG11bHRpTGluZTogbW9kZWwubXVsdGlMaW5lLFxyXG4gICAgICByb3dzOiB0aGlzLl9mYi5hcnJheTxGb3JtR3JvdXA+KG1vZGVsLnJvd3M/Lm1hcChyID0+IHRoaXMuX3Jvd2Zvcm0ocikpIHx8IFtdKVxyXG4gICAgfSBhcyBhbnkpO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jvd2Zvcm0ocm93OiBCb3hSb3dNb2RlbCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBmaWVsZHM6IHRoaXMuX2ZiLmFycmF5PEZvcm1Hcm91cD4ocm93LmZpZWxkcz8ubWFwKGYgPT4gdGhpcy5fZmllbGRmb3JtKGYpKSlcclxuICAgIH0pXHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpZWxkZm9ybShmaWVsZDogRmllbGRNb2RlbCk6IGFueSB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5fZmIuY29udHJvbChmaWVsZCk7XHJcbiAgICByZXR1cm4gZm9ybTtcclxuICB9XHJcbiAgYWRkU2VjdGlvbihfPzogRXZlbnQpIHtcclxuICAgIGxldCBuID0gMCwgbmFtZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nO1xyXG4gICAgZG8ge1xyXG4gICAgICBuKys7XHJcbiAgICAgIG5hbWUgPSAnc2VjdGlvbicgKyAnXycgKyBuO1xyXG4gICAgICB0aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NlY3Rpb25OJywgbik7XHJcbiAgICB9IHdoaWxlICh0aGlzLnNlY3Rpb25zLmNvbnRyb2xzLmZpbmQocyA9PiBzLmNvbnRyb2xzLm5hbWUudmFsdWUgPT09IG5hbWUgfHwgcy5jb250cm9scy50aXRsZS52YWx1ZSA9PT0gdGl0bGUpKTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShTZWN0aW9uUHJvcGVydGllc0NvbXBvbmVudCwge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nIHwgT3BlblBvbGljeS5EaXNtaXNzYWJsZSxcclxuICAgICAgc3RhdGU6IHtcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIGRyYWZ0OiB0cnVlLFxyXG4gICAgICAgIHJvd3M6IFt7IGZpZWxkczogW10gfV1cclxuICAgICAgfSBhcyBCb3hTZWN0aW9uTW9kZWxcclxuICAgIH0pLnRoZW4oZSA9PiBlLmNsb3NlZCgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgaWYgKHYpIHtcclxuICAgICAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLnNlY3Rpb25zLnB1c2godGhpcy5fc2VjdGlvbmZvcm0odikgYXMgYW55KTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuICBhZGRSb3coc2VjdGlvbjogRm9ybUdyb3VwLCBfPzogRXZlbnQpIHtcclxuICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgKHNlY3Rpb24uZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5KS5wdXNoKHRoaXMuX3Jvd2Zvcm0oe1xyXG4gICAgICBmaWVsZHM6IFtdXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYHNlY3Rpb25bZGF0YS1pbmRleD0nJHt0aGlzLnNlY3Rpb25zLmNvbnRyb2xzLmluZGV4T2Yoc2VjdGlvbiBhcyBhbnkpfSddIC5kZXNpZ25lci1yb3c6bGFzdC1jaGlsZCBidXR0b25gKT8uZm9jdXMoKVxyXG4gIH1cclxuICBpY29uT2YodHlwZTogc3RyaW5nKSB7IHJldHVybiAodGhpcy5jb250cm9scyBhcyBhbnkpW3R5cGVdLmljb24gfVxyXG4gIGFkZEZpZWxkKHNlY3Rpb246IEZvcm1Hcm91cCwgcm93OiBGb3JtR3JvdXAsIGNvbnRyb2w6IENvbnRyb2xJbmZvLCBldnQ/OiBFdmVudCkge1xyXG4gICAgbGV0IG4gPSAwLCBuYW1lOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkbyB7XHJcbiAgICAgIG4rKztcclxuICAgICAgbmFtZSA9IGNvbnRyb2wubmFtZS5yZXBsYWNlKCctJywgJ18nKSArICdfJyArIG47XHJcbiAgICAgIGxhYmVsID0gY29udHJvbC50aXRsZSArICcgJyArIG47XHJcbiAgICB9IHdoaWxlICgoc2VjdGlvbi5nZXQoJ3Jvd3MnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLlxyXG4gICAgICBmaW5kKHIgPT4gKHIuZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLmZpbmQoZiA9PiBmLnZhbHVlLm5hbWUgPT09IG5hbWUgfHwgZi52YWx1ZS5sYWJlbCA9PT0gbGFiZWwpICE9IG51bGwpKTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShDb250cm9sUHJvcGVydGllc0NvbXBvbmVudCwge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nIHwgT3BlblBvbGljeS5EaXNtaXNzYWJsZSxcclxuICAgICAgaWNvbjogY29udHJvbC5pY29uLFxyXG4gICAgICBzdGF0ZToge1xyXG4gICAgICAgIG5hbWUsIGxhYmVsLCBkcmFmdDogdHJ1ZSxcclxuICAgICAgICBjb250cm9sVHlwZTogY29udHJvbC5uYW1lXHJcbiAgICAgIH0gYXMgRmllbGRNb2RlbFxyXG4gICAgfSkudGhlbihlID0+IGUuY2xvc2VkKCkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBpZiAodikge1xyXG4gICAgICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgICAgIChyb3cuZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpLnB1c2godGhpcy5fZmllbGRmb3JtKHYpKTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuICBlZGl0RmllbGQoZmllbGQ6IEZvcm1Hcm91cCkge1xyXG4gICAgY29uc3QgbW9kZWwgPSBmaWVsZC5nZXRSYXdWYWx1ZSgpIGFzIEZpZWxkTW9kZWwsXHJcbiAgICAgIGNvbnRyb2wgPSAodGhpcy5jb250cm9scyBhcyBhbnkpW21vZGVsLmNvbnRyb2xUeXBlXTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShDb250cm9sUHJvcGVydGllc0NvbXBvbmVudCwge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiIHwgT3BlblBvbGljeS5EZWZlcixcclxuICAgICAgaWNvbjogY29udHJvbC5pY29uLFxyXG4gICAgICBzdGF0ZTogbW9kZWxcclxuICAgIH0pLnRoZW4oZSA9PiBlLmNsb3NlZCgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgaWYgKHYpIHtcclxuICAgICAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgICAgICBmaWVsZC5zZXRWYWx1ZSh2KTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbihmaWVsZDogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQsIHtcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuRGVmZXIsXHJcbiAgICAgIHN0YXRlOiBmaWVsZC5nZXRSYXdWYWx1ZSgpXHJcbiAgICB9KS50aGVuKGUgPT4gZS5jbG9zZWQoKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAgICAgZmllbGQuc2V0VmFsdWUodik7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgb3BlbnNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKEJveFNldHRpbmdzQ29tcG9uZW50LCB7XHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWIgfCBPcGVuUG9saWN5LkRlZmVyLFxyXG4gICAgICBzdGF0ZTogdGhpcy5mb3JtLmdldFJhd1ZhbHVlKClcclxuICAgIH0pLnRoZW4oZSA9PiBlLmNsb3NlZCgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHYpXHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIHJlbW92ZUZpZWxkKHJvdzogRm9ybUdyb3VwLCBmaWVsZDogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIChyb3cuZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLnJlbW92ZShmaWVsZCk7XHJcbiAgfVxyXG4gIHJlbW92ZVNlY3Rpb24oc2VjdGlvbjogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIHRoaXMuc2VjdGlvbnMuY29udHJvbHMucmVtb3ZlKHNlY3Rpb24gYXMgYW55KTtcclxuICB9XHJcbiAgcmVtb3ZlUm93KHNlY3Rpb246IEZvcm1Hcm91cCwgcm93OiBGb3JtR3JvdXApIHtcclxuICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgKHNlY3Rpb24uZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5KS5jb250cm9scy5yZW1vdmUocm93KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbm90aWZ5Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5oaXN0b3J5LnB1c2goSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnZhbHVlKSk7XHJcbiAgICB0aGlzLmhpc3RvcnlJbmRleCA9IHRoaXMuaGlzdG9yeS5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgfVxyXG4gIHVuZG8oKSB7XHJcbiAgICB0aGlzLl9yZXN0b3JlKCk7XHJcbiAgICB0aGlzLmhpc3RvcnlJbmRleC0tO1xyXG4gIH1cclxuICByZWRvKCkge1xyXG4gICAgdGhpcy5fcmVzdG9yZSgpO1xyXG4gICAgdGhpcy5oaXN0b3J5SW5kZXgrKztcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzdG9yZSgpIHtcclxuICAgIHRoaXMuX2Fzc2lnbihKU09OLnBhcnNlKHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnlJbmRleF0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmU7IEN0cmwteiB1bmRvXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1MnIHx8IGV2ZW50LmtleSA9PT0gJ3MnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8Rm9ybUdyb3VwPiwgY29sbGVjdGlvbjogRm9ybUFycmF5KSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb2xsZWN0aW9uLmF0KGV2ZW50LnByZXZpb3VzSW5kZXgpO1xyXG4gICAgICBjb2xsZWN0aW9uLnJlbW92ZUF0KGV2ZW50LnByZXZpb3VzSW5kZXgpO1xyXG4gICAgICBjb2xsZWN0aW9uLmluc2VydChldmVudC5jdXJyZW50SW5kZXgsIGVsZW1lbnQpO1xyXG4gICAgICAvL21vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgLy8gICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcclxuICAgICAgLy8gICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXHJcbiAgICAgIC8vICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgIC8vICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcclxuICAgICAgLy8gICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcbiAgICB0aGlzLm1vZGVsID0gdGhpcy5mb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIHRoaXMuX3JlZi5leGVjdXRlKHsgbWV0YWRhdGE6IGNsZWFudXAodGhpcy5tb2RlbCksIGZvcm1JZDogdGhpcy5fZm9ybUlkIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9wcy50b2FzdCgnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09IHRoaXMuX2Zvcm1JZCk7XHJcbiAgICAgICAgaWYgKGZvcm0pIGZvcm0ub3B0aW9ucyA9IHRoaXMubW9kZWw7XHJcbiAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9wcy5lcnJvcigpO1xyXG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0uZGlydHkgfHwgbG9hZGluZyB8fCBzYXZpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2F2ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1bmRvKClcIiBbYml6ZG9jVG9vbHRpcF09XCInVW5kbycgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiaGlzdG9yeUluZGV4ID09PSAtMVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj51bmRvPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVkbygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlZG8nIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cImhpc3RvcnlJbmRleCA9PT0gaGlzdG9yeS5sZW5ndGggLSAxXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnJlZG88L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5zZXR0aW5ncygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj4tLT5cclxuPC9tYXQtdG9vbGJhcj5cclxuQGlmIChtb2RlbCkge1xyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBzZWN0aW9ucylcIj5cclxuICAgICAgQGZvciAocyBvZiBzZWN0aW9ucy5jb250cm9sczsgdHJhY2sgczsgbGV0IHNpID0gJGluZGV4KSB7XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIiBjZGtEcmFnIFthdHRyLmRhdGEtaW5kZXhdPVwic2lcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VjdGlvbi1kcmFnXCIgY2RrRHJhZ0hhbmRsZT5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiBbZm9ybUdyb3VwXT1cInNcIj5cclxuICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJtYXQtaDJcIj57e3MuY29udHJvbHMudGl0bGUudmFsdWV8bG9jYWxpemVkU3RyaW5nfX08L2gyPlxyXG4gICAgICAgICAgICAgIEBpZiAocy5jb250cm9scy5ub3RlLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hdC1ib2R5LTFcIj57e3MuY29udHJvbHMubm90ZS52YWx1ZXxsb2NhbGl6ZWRTdHJpbmd9fTwvcD5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBzLmNvbnRyb2xzLnJvd3MpXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChyIG9mIHMuY29udHJvbHMucm93cy5jb250cm9sczsgdHJhY2sgcjsgbGV0IHJpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZGVzaWduZXItcm93XCIgY2RrRHJhZyBbYXR0ci5kYXRhLWluZGV4XT1cInJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCByLmNvbnRyb2xzLmZpZWxkcylcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoZiBvZiByLmNvbnRyb2xzLmZpZWxkcy5jb250cm9sczsgdHJhY2sgZjsgbGV0IGZpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJhZyBjbGFzcz1cImRlc2lnbmVyLWZpZWxkIHJvd1wiIFthdHRyLmRhdGEtaW5kZXhdPVwiZmlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+e3tpY29uT2YoZi52YWx1ZS50eXBlKX19PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Yml6ZG9jLWJveC1jb250cm9sLWRlc2lnbiBbbWV0YWRhdGFdPVwiZi52YWx1ZVwiPjwvYml6ZG9jLWJveC1jb250cm9sLWRlc2lnbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJyZW1vdmVGaWVsZChyLCBmKVwiIFtiaXpkb2NUb29sdGlwXT1cIidEaXNjYXJkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiZWRpdEZpZWxkKGYpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZmllbGRNZW51XCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FkZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNmaWVsZE1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGMgb2YgY29udHJvbHM7IHRyYWNrIGMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFkZEZpZWxkKHMsIHIsIGMsICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e2MuaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Yy50aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJyZW1vdmVSb3cocywgcilcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xzIHJvd1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkUm93KHMsICRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cInJlbW92ZVNlY3Rpb24ocylcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiZWRpdFNlY3Rpb24ocylcIiBbYml6ZG9jVG9vbHRpcF09XCInU2V0dGluZ3MnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICB9XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJhZGRTZWN0aW9uKCRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export const NAME_PATTERN = /^[A-Za-z]+\w*$/;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvZGVjbGFyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXplZFN0cmluZyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IE5BTUVfUEFUVEVSTiA9IC9eW0EtWmEtel0rXFx3KiQvO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb3hGb3JtTWV0YWRhdGEge1xyXG4gIHNlY3Rpb25zOiBCb3hTZWN0aW9uTW9kZWxbXTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN1bW1hcnk/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiAnU3RhbmRhcmQnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJveFNlY3Rpb25Nb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgbXVsdGlMaW5lPzogYm9vbGVhbjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgcm93czogQm94Um93TW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEJveFJvd01vZGVsIHtcclxuICBmaWVsZHM6IEZpZWxkTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkTW9kZWwge1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBsYWJlbDogTG9jYWxpemVkU3RyaW5nO1xyXG59XHJcblxyXG4iXX0=
@@ -1,41 +0,0 @@
1
- import { Component, Inject, Input } from "@angular/core";
2
- import { BIZDOC_CONFIG } from "../../../core/configuration";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../../core/session.service";
5
- import * as i2 from "../../../core/component-factory-resolver";
6
- export class DesignControlComponent {
7
- constructor(_vcr, _config, _session, _cf) {
8
- this._vcr = _vcr;
9
- this._config = _config;
10
- this._session = _session;
11
- this._cf = _cf;
12
- }
13
- ngOnChanges(changes) {
14
- !changes['metadata'].firstChange && Object.assign(this._instance, this.metadata);
15
- }
16
- ngOnInit() {
17
- const { controls } = this._session.profile, { controlType } = this.metadata, control = controls[controlType] || (controls[controlType] = controls.find(c => c.name === controlType)), selector = control.template;
18
- const comp = this._cf.component(selector);
19
- const compRef = this._vcr.createComponent(comp);
20
- const instance = this._instance = compRef.instance;
21
- Object.assign(instance, this.metadata);
22
- instance.appearance = this._config.appearance || 'outline';
23
- instance.mode = 'compose';
24
- instance.control.disable();
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignControlComponent, deps: [{ token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }, { token: i1.SessionService }, { token: i2.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: DesignControlComponent, selector: "bizdoc-box-control-design", inputs: { metadata: "metadata" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignControlComponent, decorators: [{
30
- type: Component,
31
- args: [{
32
- template: '',
33
- selector: 'bizdoc-box-control-design'
34
- }]
35
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
36
- type: Inject,
37
- args: [BIZDOC_CONFIG]
38
- }] }, { type: i1.SessionService }, { type: i2.BizDocComponentFactoryResolver }], propDecorators: { metadata: [{
39
- type: Input
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvZGVzaWduLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBc0QsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQVExRSxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQ1UsSUFBc0IsRUFDQyxPQUFxQixFQUM1QyxRQUF3QixFQUN4QixHQUFtQztRQUhuQyxTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUNDLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDNUMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBZ0M7SUFBSSxDQUFDO0lBQ2xELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsUUFBUTtRQUNOLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFDeEMsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUMvQixPQUFPLEdBQUksUUFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLFFBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsRUFDekgsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQW1CLElBQUksQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUM7UUFDM0QsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDMUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXZCVSxzQkFBc0Isa0RBS3ZCLGFBQWE7a0dBTFosc0JBQXNCLHdIQUh2QixFQUFFOzsyRkFHRCxzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OzBCQU1JLE1BQU07MkJBQUMsYUFBYTttSEFKZCxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9iYXNlXCI7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyXCI7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRmllbGRNb2RlbCB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJveC1jb250cm9sLWRlc2lnbidcclxufSlcclxuZXhwb3J0IGNsYXNzIERlc2lnbkNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbWV0YWRhdGE6IEZpZWxkTW9kZWw7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U6IENvbnRyb2xDb21wb25lbnQ8YW55PjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NmOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICFjaGFuZ2VzWydtZXRhZGF0YSddLmZpcnN0Q2hhbmdlICYmIE9iamVjdC5hc3NpZ24odGhpcy5faW5zdGFuY2UsIHRoaXMubWV0YWRhdGEpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgY29udHJvbHMgfSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZSxcclxuICAgICAgeyBjb250cm9sVHlwZSB9ID0gdGhpcy5tZXRhZGF0YSxcclxuICAgICAgY29udHJvbCA9IChjb250cm9scyBhcyBhbnkpW2NvbnRyb2xUeXBlXSB8fCAoKGNvbnRyb2xzIGFzIGFueSlbY29udHJvbFR5cGVdID0gY29udHJvbHMuZmluZChjID0+IGMubmFtZSA9PT0gY29udHJvbFR5cGUpKSxcclxuICAgICAgc2VsZWN0b3IgPSBjb250cm9sLnRlbXBsYXRlO1xyXG4gICAgY29uc3QgY29tcCA9IHRoaXMuX2NmLmNvbXBvbmVudChzZWxlY3Rvcik7XHJcbiAgICBjb25zdCBjb21wUmVmID0gdGhpcy5fdmNyLmNyZWF0ZUNvbXBvbmVudDxDb250cm9sQ29tcG9uZW50Pihjb21wKTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5faW5zdGFuY2UgPSBjb21wUmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgdGhpcy5tZXRhZGF0YSk7XHJcbiAgICBpbnN0YW5jZS5hcHBlYXJhbmNlID0gdGhpcy5fY29uZmlnLmFwcGVhcmFuY2UgfHwgJ291dGxpbmUnO1xyXG4gICAgaW5zdGFuY2UubW9kZSA9ICdjb21wb3NlJztcclxuICAgIGluc3RhbmNlLmNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,71 +0,0 @@
1
- import { Component, HostListener, ViewChild, ViewContainerRef } from "@angular/core";
2
- import { Validators } from "@angular/forms";
3
- import { NAME_PATTERN } from "./declarations";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "../../system.service";
7
- import * as i3 from "../../../core/component-factory-resolver";
8
- import * as i4 from "../../../core/slots/pane-ref";
9
- import * as i5 from "@angular/material/toolbar";
10
- import * as i6 from "@angular/material/form-field";
11
- import * as i7 from "@angular/material/button";
12
- import * as i8 from "@angular/material/checkbox";
13
- import * as i9 from "@angular/material/input";
14
- import * as i10 from "@angular/material/icon";
15
- import * as i11 from "../../../core/popup/tooltip.directive";
16
- import * as i12 from "../../../core/pipes/translate.pipe";
17
- export class ControlPropertiesComponent {
18
- constructor(_fb, _system, _cf, _paneRef) {
19
- this._fb = _fb;
20
- this._system = _system;
21
- this._cf = _cf;
22
- this._paneRef = _paneRef;
23
- this.field = _paneRef.data;
24
- }
25
- /**
26
- * Ctrl-s save
27
- * @param event
28
- */
29
- handleKeyboardEvent(event) {
30
- if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
31
- this.form.dirty && this.save();
32
- event.preventDefault();
33
- event.stopPropagation();
34
- }
35
- }
36
- ngOnInit() {
37
- this._system.controls().subscribe(c => {
38
- const comp = this._cf.component(c[this.field.controlType].template);
39
- const compRef = this.design.createComponent(comp);
40
- const instance = compRef.instance;
41
- Object.assign(instance, this.field);
42
- instance.onBind && instance.onBind(this.field);
43
- this.form = instance.form;
44
- this.form.addControl('name', this._fb.control(null, [Validators.required, Validators.pattern(NAME_PATTERN)]));
45
- this.form.addControl('controlType', this._fb.control(null));
46
- this.form.addControl('autofill', this._fb.control(null));
47
- this.form.addControl('required', this._fb.control(null));
48
- //this.form.addControl('help', this._fb.control(null));
49
- this.form.patchValue(this.field);
50
- if (this.field.draft)
51
- this.form.markAsDirty();
52
- });
53
- }
54
- save() { this._paneRef.close(this.form.value); }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ControlPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: i3.BizDocComponentFactoryResolver }, { token: i4.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ControlPropertiesComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "design", first: true, predicate: ["design"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n @if (form.controls['name'].hasError('pattern')) {\r\n <mat-error [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n }\r\n @if (form.controls['name'].hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n }\r\n </mat-form-field>\r\n\r\n <ng-container #design>\r\n </ng-container>\r\n <mat-checkbox formControlName=\"required\">{{'Mandatory'|translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"autofill\">{{'Autofill'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{flex:1;display:flex;-ms-flex-flow:column;-webkit-flex-flow:column;flex-flow:column}form{padding:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ControlPropertiesComponent, decorators: [{
59
- type: Component,
60
- args: [{ template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n @if (form.controls['name'].hasError('pattern')) {\r\n <mat-error [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n }\r\n @if (form.controls['name'].hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n }\r\n </mat-form-field>\r\n\r\n <ng-container #design>\r\n </ng-container>\r\n <mat-checkbox formControlName=\"required\">{{'Mandatory'|translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"autofill\">{{'Autofill'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{flex:1;display:flex;-ms-flex-flow:column;-webkit-flex-flow:column;flex-flow:column}form{padding:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"] }]
61
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i3.BizDocComponentFactoryResolver }, { type: i4.PaneRef }], propDecorators: { design: [{
62
- type: ViewChild,
63
- args: ['design', {
64
- static: true,
65
- read: ViewContainerRef
66
- }]
67
- }], handleKeyboardEvent: [{
68
- type: HostListener,
69
- args: ['document:keydown', ['$event']]
70
- }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS9kZXNpZ25lci9wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL2Rlc2lnbmVyL3Byb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEUsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sMEJBQTBCO0lBT3JDLFlBQ1UsR0FBZ0IsRUFDaEIsT0FBc0IsRUFDdEIsR0FBbUMsRUFDbkMsUUFBeUQ7UUFIekQsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQWdDO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQWlEO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFrQixJQUFJLENBQUMsQ0FBQztZQUNuRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pELHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7OEdBM0NwQywwQkFBMEI7a0dBQTFCLDBCQUEwQiw2TUFJN0IsZ0JBQWdCLDJDQ2hCMUIsMjhCQW9CQTs7MkZEUmEsMEJBQTBCO2tCQUp0QyxTQUFTOzsrS0FTTCxNQUFNO3NCQUhSLFNBQVM7dUJBQUMsUUFBUSxFQUFFO3dCQUNuQixNQUFNLEVBQUUsSUFBSTt3QkFDWixJQUFJLEVBQUUsZ0JBQWdCO3FCQUN2QjtnQkFjRCxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbnRyb2xEZXNpZ25lciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcbmltcG9ydCB7IFN5c3RlbVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRmllbGRNb2RlbCwgTkFNRV9QQVRURVJOIH0gZnJvbSBcIi4vZGVjbGFyYXRpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJ3Byb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydwcm9wZXJ0aWVzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRyb2xQcm9wZXJ0aWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBmaWVsZDogRmllbGRNb2RlbDtcclxuICBAVmlld0NoaWxkKCdkZXNpZ24nLCB7XHJcbiAgICBzdGF0aWM6IHRydWUsXHJcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgfSkgZGVzaWduOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIGZvcm06IEZvcm1Hcm91cDxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX3BhbmVSZWY6IFBhbmVSZWY8Q29udHJvbFByb3BlcnRpZXNDb21wb25lbnQsIEZpZWxkTW9kZWw+KSB7XHJcbiAgICB0aGlzLmZpZWxkID0gX3BhbmVSZWYuZGF0YTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQua2V5ID09PSAncycgfHwgZXZlbnQua2V5ID09PSAnUycpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5kaXJ0eSAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3lzdGVtLmNvbnRyb2xzKCkuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2YuY29tcG9uZW50KChjIGFzIGFueSlbdGhpcy5maWVsZC5jb250cm9sVHlwZV0udGVtcGxhdGUpO1xyXG4gICAgICBjb25zdCBjb21wUmVmID0gdGhpcy5kZXNpZ24uY3JlYXRlQ29tcG9uZW50PENvbnRyb2xEZXNpZ25lcj4oY29tcCk7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY29tcFJlZi5pbnN0YW5jZTtcclxuICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgdGhpcy5maWVsZCk7XHJcbiAgICAgIGluc3RhbmNlLm9uQmluZCAmJiBpbnN0YW5jZS5vbkJpbmQodGhpcy5maWVsZCk7XHJcbiAgICAgIHRoaXMuZm9ybSA9IGluc3RhbmNlLmZvcm07XHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCduYW1lJywgdGhpcy5fZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKE5BTUVfUEFUVEVSTildKSk7XHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdjb250cm9sVHlwZScsIHRoaXMuX2ZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnYXV0b2ZpbGwnLCB0aGlzLl9mYi5jb250cm9sKG51bGwpKTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3JlcXVpcmVkJywgdGhpcy5fZmIuY29udHJvbChudWxsKSk7XHJcbiAgICAgIC8vdGhpcy5mb3JtLmFkZENvbnRyb2woJ2hlbHAnLCB0aGlzLl9mYi5jb250cm9sKG51bGwpKTtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5maWVsZCk7XHJcbiAgICAgIGlmICh0aGlzLmZpZWxkLmRyYWZ0KSB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzYXZlKCkgeyB0aGlzLl9wYW5lUmVmLmNsb3NlKHRoaXMuZm9ybS52YWx1ZSkgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFmb3JtPy5kaXJ0eSB8fCAhZm9ybT8udmFsaWRcIiBbYml6ZG9jVG9vbHRpcF09XCInU2F2ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cclxuICAgIEBpZiAoZm9ybS5jb250cm9sc1snbmFtZSddLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcclxuICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInUHJvZ3JhbVBhdHRlcm5FcnInfHRyYW5zbGF0ZVwiPjwvbWF0LWVycm9yPlxyXG4gICAgfVxyXG4gICAgQGlmIChmb3JtLmNvbnRyb2xzWyduYW1lJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTonRmllbGQnXCI+PC9tYXQtZXJyb3I+XHJcbiAgICB9XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAjZGVzaWduPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwicmVxdWlyZWRcIj57eydNYW5kYXRvcnknfHRyYW5zbGF0ZX19PC9tYXQtY2hlY2tib3g+XHJcbiAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJhdXRvZmlsbFwiPnt7J0F1dG9maWxsJ3x0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PlxyXG48L2Zvcm0+XHJcbiJdfQ==
@@ -1,53 +0,0 @@
1
- import { Component, HostListener } from "@angular/core";
2
- import { Validators } from "@angular/forms";
3
- import { NAME_PATTERN } from "./declarations";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "../../../core/slots/pane-ref";
7
- import * as i3 from "@angular/material/toolbar";
8
- import * as i4 from "@angular/material/form-field";
9
- import * as i5 from "@angular/material/button";
10
- import * as i6 from "@angular/material/input";
11
- import * as i7 from "@angular/material/icon";
12
- import * as i8 from "../../../core/popup/tooltip.directive";
13
- import * as i9 from "../../core/localized-string.component";
14
- import * as i10 from "../../../core/pipes/translate.pipe";
15
- export class SectionPropertiesComponent {
16
- constructor(_fb, _paneRef) {
17
- this._fb = _fb;
18
- this._paneRef = _paneRef;
19
- this.form = this._fb.group({
20
- name: this._fb.control(null, [Validators.required, Validators.pattern(NAME_PATTERN)]),
21
- title: null,
22
- note: null,
23
- multiLine: null,
24
- rows: null,
25
- });
26
- }
27
- /**
28
- * Ctrl-s save
29
- * @param event
30
- */
31
- handleKeyboardEvent(event) {
32
- if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
33
- this.form.dirty && this.save();
34
- event.preventDefault();
35
- event.stopPropagation();
36
- }
37
- }
38
- ngOnInit() {
39
- this.form.patchValue(this._paneRef.data);
40
- this._paneRef.data.draft && this.form.markAsDirty();
41
- }
42
- save() { this._paneRef.close(this.form.value); }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SectionPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SectionPropertiesComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <bizdoc-localized-string [placeholder]=\"'Title'|translate\" formControlName=\"title\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n @if (form.controls.name.hasError('pattern')) {\r\n <mat-error [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-localized-string [placeholder]=\"'Note'|translate\" formControlName=\"note\"></bizdoc-localized-string>\r\n\r\n</form>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i9.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SectionPropertiesComponent, decorators: [{
47
- type: Component,
48
- args: [{ template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <bizdoc-localized-string [placeholder]=\"'Title'|translate\" formControlName=\"title\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n @if (form.controls.name.hasError('pattern')) {\r\n <mat-error [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-localized-string [placeholder]=\"'Note'|translate\" formControlName=\"note\"></bizdoc-localized-string>\r\n\r\n</form>\r\n", styles: ["form{padding:8px}\n"] }]
49
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PaneRef }], propDecorators: { handleKeyboardEvent: [{
50
- type: HostListener,
51
- args: ['document:keydown', ['$event']]
52
- }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS9kZXNpZ25lci9zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL2Rlc2lnbmVyL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sMEJBQTBCO0lBU3JDLFlBQ1UsR0FBZ0IsRUFDaEIsUUFBdUM7UUFEdkMsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUErQjtRQVR4QyxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUNEOzs7T0FHRztJQUVILG1CQUFtQixDQUFDLEtBQW9CO1FBQ3RDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7OEdBN0JwQywwQkFBMEI7a0dBQTFCLDBCQUEwQixnSUNUdkMsbTlCQWtCQTs7MkZEVGEsMEJBQTBCO2tCQUp0QyxTQUFTOztzR0FzQlIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZlwiO1xyXG5pbXBvcnQgeyBOQU1FX1BBVFRFUk4sIEJveFNlY3Rpb25Nb2RlbCB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdzZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFtgZm9ybSB7cGFkZGluZzogOHB4fWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWN0aW9uUHJvcGVydGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbW9kZWw6IEJveFNlY3Rpb25Nb2RlbDtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgbmFtZTogdGhpcy5fZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKE5BTUVfUEFUVEVSTildKSxcclxuICAgIHRpdGxlOiBudWxsLFxyXG4gICAgbm90ZTogbnVsbCxcclxuICAgIG11bHRpTGluZTogbnVsbCxcclxuICAgIHJvd3M6IG51bGwsXHJcbiAgfSk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9wYW5lUmVmOiBQYW5lUmVmPGFueSwgQm94U2VjdGlvbk1vZGVsPikge1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC5rZXkgPT09ICdzJyB8fCBldmVudC5rZXkgPT09ICdTJykpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLl9wYW5lUmVmLmRhdGEgYXMgYW55KTtcclxuICAgIHRoaXMuX3BhbmVSZWYuZGF0YS5kcmFmdCAmJiB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcclxuICB9XHJcbiAgc2F2ZSgpIHsgdGhpcy5fcGFuZVJlZi5jbG9zZSh0aGlzLmZvcm0udmFsdWUpIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybT8uZGlydHkgfHwgIWZvcm0/LnZhbGlkXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NhdmUnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICA8Yml6ZG9jLWxvY2FsaXplZC1zdHJpbmcgW3BsYWNlaG9sZGVyXT1cIidUaXRsZSd8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj48L2JpemRvYy1sb2NhbGl6ZWQtc3RyaW5nPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cclxuICAgIEBpZiAoZm9ybS5jb250cm9scy5uYW1lLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcclxuICAgICAgPG1hdC1lcnJvciBbaW5uZXJIVE1MXT1cIidQcm9ncmFtUGF0dGVybkVycid8dHJhbnNsYXRlXCI+PC9tYXQtZXJyb3I+XHJcbiAgICB9XHJcbiAgICBAaWYgKGZvcm0uY29udHJvbHMubmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6J0ZpZWxkJ1wiPjwvbWF0LWVycm9yPlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGJpemRvYy1sb2NhbGl6ZWQtc3RyaW5nIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcblxyXG48L2Zvcm0+XHJcbiJdfQ==