@bizdoc/core 1.16.17 → 1.16.22

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 (352) hide show
  1. package/assets/bizdoc-schema.json +15 -0
  2. package/assets/themes/brown.min.css +2 -2
  3. package/assets/themes/dark.min.css +2 -2
  4. package/assets/themes/deep-purple-light-blue.min.css +3 -3
  5. package/assets/themes/deep-purple-teal.min.css +3 -3
  6. package/assets/themes/default.min.css +3 -3
  7. package/assets/themes/green.min.css +2 -2
  8. package/assets/themes/indigo.min.css +2 -2
  9. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  10. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  11. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +3 -3
  12. package/esm2020/lib/admin/configuration-designer/declarations.mjs +1 -1
  13. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +54 -54
  14. package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +3 -3
  15. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +9 -9
  16. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +18 -14
  17. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +3 -3
  18. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +3 -3
  19. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +3 -3
  20. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +3 -3
  21. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +3 -3
  22. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +3 -3
  23. package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +3 -3
  24. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +3 -3
  25. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +37 -29
  26. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +3 -3
  27. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +3 -3
  28. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +3 -3
  29. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
  30. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +3 -3
  31. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +3 -3
  32. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +3 -3
  33. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +3 -3
  34. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +3 -3
  35. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +3 -3
  36. package/esm2020/lib/admin/configuration-designer/elements/policy.component.mjs +17 -0
  37. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +3 -3
  38. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +3 -3
  39. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +3 -3
  40. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +5 -5
  41. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +3 -3
  42. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +3 -3
  43. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +3 -3
  44. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +3 -3
  45. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +3 -3
  46. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +3 -3
  47. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +3 -3
  48. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +3 -3
  49. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +3 -3
  50. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  51. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  52. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  53. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
  54. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
  55. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  56. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  57. package/esm2020/lib/admin/form/designer/designer.component.mjs +3 -3
  58. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  59. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  60. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  61. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  62. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  63. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  64. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  65. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  66. package/esm2020/lib/admin/positions/positions.component.mjs +3 -3
  67. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +3 -3
  68. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  69. package/esm2020/lib/admin/system.service.mjs +4 -4
  70. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  71. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  72. package/esm2020/lib/app.component.mjs +6 -6
  73. package/esm2020/lib/bizdoc.module.mjs +4 -4
  74. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  75. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  76. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  77. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  78. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  79. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  80. package/esm2020/lib/chat/chat-info.mjs +3 -3
  81. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  82. package/esm2020/lib/chat/chat.service.mjs +3 -3
  83. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  84. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  85. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  86. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  87. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  88. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  89. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  90. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  91. package/esm2020/lib/compose/action/moveto-action.component.mjs +3 -3
  92. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  93. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  94. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  95. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  96. package/esm2020/lib/compose/box/box.component.mjs +3 -3
  97. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  98. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  99. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  100. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  101. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  102. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  103. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  104. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  105. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  106. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  107. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  108. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  109. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  110. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  111. package/esm2020/lib/compose/document.component.mjs +3 -3
  112. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  113. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  114. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  115. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  116. package/esm2020/lib/compose/form.component.mjs +3 -3
  117. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  118. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  119. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  120. package/esm2020/lib/compose/state.component.mjs +3 -3
  121. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  122. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  123. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  124. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  125. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  126. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  127. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  128. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  129. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  130. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  131. package/esm2020/lib/core/account.service.mjs +3 -3
  132. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  133. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  134. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  135. package/esm2020/lib/core/controls/address.input.mjs +3 -3
  136. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  137. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  138. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  139. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  140. package/esm2020/lib/core/controls/file.input.mjs +3 -3
  141. package/esm2020/lib/core/controls/select.input.mjs +3 -3
  142. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  143. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  144. package/esm2020/lib/core/datasource.service.mjs +3 -3
  145. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  146. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  147. package/esm2020/lib/core/guide/help-tip.component.mjs +3 -3
  148. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  149. package/esm2020/lib/core/hub.service.mjs +3 -3
  150. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  151. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  152. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  153. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  154. package/esm2020/lib/core/info/map-info.mjs +3 -3
  155. package/esm2020/lib/core/layout/autocomplete.field.mjs +6 -5
  156. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  157. package/esm2020/lib/core/layout/checkbox.mjs +5 -5
  158. package/esm2020/lib/core/layout/date-range.field.mjs +6 -5
  159. package/esm2020/lib/core/layout/date.field.mjs +6 -5
  160. package/esm2020/lib/core/layout/expression.field.mjs +6 -5
  161. package/esm2020/lib/core/layout/file.field.mjs +3 -3
  162. package/esm2020/lib/core/layout/html.field.mjs +6 -5
  163. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  164. package/esm2020/lib/core/layout/input.field.mjs +6 -5
  165. package/esm2020/lib/core/layout/layout.component.mjs +4 -4
  166. package/esm2020/lib/core/layout/numeric.field.mjs +6 -5
  167. package/esm2020/lib/core/layout/select.field.mjs +23 -16
  168. package/esm2020/lib/core/layout/switch.field.mjs +6 -5
  169. package/esm2020/lib/core/layout/textarea.field.mjs +6 -5
  170. package/esm2020/lib/core/layout/timespan.field.mjs +6 -5
  171. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  172. package/esm2020/lib/core/mailbox.service.mjs +3 -3
  173. package/esm2020/lib/core/none.component.mjs +3 -3
  174. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  175. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  176. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  177. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  178. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  179. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  180. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  181. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  182. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  183. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  184. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  185. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  186. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  187. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +50 -4
  188. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  189. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  190. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  191. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  192. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  193. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  194. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  195. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  196. package/esm2020/lib/core/prompt.service.mjs +3 -3
  197. package/esm2020/lib/core/router.mjs +6 -6
  198. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  199. package/esm2020/lib/core/session.service.mjs +3 -3
  200. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  201. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  202. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  203. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  204. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  205. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  206. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  207. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  208. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  209. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  210. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  211. package/esm2020/lib/core/translate.service.mjs +3 -3
  212. package/esm2020/lib/core/translations.mjs +3 -1
  213. package/esm2020/lib/core/window-title.service.mjs +3 -3
  214. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  215. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  216. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  217. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  218. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  219. package/esm2020/lib/cube/cube.service.mjs +3 -3
  220. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  221. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  222. package/esm2020/lib/cube/explore/explore-items.component.mjs +3 -3
  223. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  224. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  225. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  226. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  227. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  228. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  229. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +3 -3
  230. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  231. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  232. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  233. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  234. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  235. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  236. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  237. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  238. package/esm2020/lib/cube/view-base.mjs +3 -3
  239. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  240. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  241. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  242. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  243. package/esm2020/lib/dashboard/cube/compare.widget.mjs +3 -3
  244. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  245. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  246. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  247. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  248. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  249. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  250. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  251. package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
  252. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  253. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  254. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  255. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  256. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  257. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  258. package/esm2020/lib/desktop.module.mjs +4 -4
  259. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  260. package/esm2020/lib/home/home-base.component.mjs +3 -3
  261. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  262. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  263. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  264. package/esm2020/lib/home/options/options.component.mjs +3 -3
  265. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  266. package/esm2020/lib/home/search.service.mjs +3 -3
  267. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  268. package/esm2020/lib/home/tools.component.mjs +3 -3
  269. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  270. package/esm2020/lib/mobile.module.mjs +4 -4
  271. package/esm2020/lib/modules/chart.module.mjs +4 -4
  272. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  273. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  274. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  275. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  276. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  277. package/esm2020/lib/modules/grid.module.mjs +4 -4
  278. package/esm2020/lib/modules/material.module.mjs +4 -4
  279. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  280. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  281. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  282. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  283. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  284. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  285. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  286. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  287. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  288. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  289. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  290. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  291. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  292. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  293. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  294. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  295. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  296. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  297. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  298. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  299. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  300. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  301. package/esm2020/lib/options/options.component.mjs +3 -3
  302. package/esm2020/lib/options/options.service.mjs +3 -3
  303. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  304. package/esm2020/lib/reports/cube/documents.component.mjs +3 -3
  305. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  306. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  307. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  308. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  309. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  310. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  311. package/esm2020/lib/reports/cube/usage.component.mjs +3 -3
  312. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  313. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  314. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  315. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  316. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  317. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  318. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  319. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  320. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  321. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  322. package/esm2020/lib/shared.module.mjs +10 -10
  323. package/esm2020/lib/system.module.mjs +15 -9
  324. package/esm2020/lib/views/cube/chart.component.mjs +3 -3
  325. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  326. package/esm2020/lib/views/cube/explore.component.mjs +3 -3
  327. package/esm2020/lib/views/cube/matrix.component.mjs +3 -3
  328. package/esm2020/lib/views/cube/parallel.component.mjs +3 -3
  329. package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
  330. package/esm2020/lib/views/cube/sum.component.mjs +3 -3
  331. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  332. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  333. package/esm2020/lib/views/view-item.component.mjs +3 -3
  334. package/esm2020/lib/views/views.component.mjs +3 -3
  335. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  336. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  337. package/esm2020/public-api.mjs +2 -2
  338. package/fesm2015/bizdoc-core.mjs +1219 -1128
  339. package/fesm2015/bizdoc-core.mjs.map +1 -1
  340. package/fesm2020/bizdoc-core.mjs +1219 -1128
  341. package/fesm2020/bizdoc-core.mjs.map +1 -1
  342. package/lib/admin/configuration-designer/declarations.d.ts +3 -0
  343. package/lib/admin/configuration-designer/designer-element.component.d.ts +3 -5
  344. package/lib/admin/configuration-designer/elements/cube.component.d.ts +17 -11
  345. package/lib/admin/configuration-designer/elements/policy.component.d.ts +8 -0
  346. package/lib/admin/system.service.d.ts +5 -0
  347. package/lib/core/pipes/time-ago.pipe.d.ts +13 -0
  348. package/lib/core/translations.d.ts +2 -0
  349. package/lib/shared.module.d.ts +1 -1
  350. package/lib/system.module.d.ts +63 -62
  351. package/package.json +14 -14
  352. package/public-api.d.ts +1 -1
@@ -5,30 +5,29 @@ import { Subject, takeUntil } from "rxjs";
5
5
  import { DesignerRef, programName, FAMILY_SVG } from "./declarations";
6
6
  import { LayoutComponent } from "../../core/layout/layout.component";
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../system.service";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "../../core/slots/pane-ref";
11
- import * as i4 from "../../core/component-factory-resolver";
12
- import * as i5 from "@angular/common";
13
- import * as i6 from "@angular/cdk/portal";
14
- import * as i7 from "@angular/material/toolbar";
15
- import * as i8 from "@angular/material/form-field";
16
- import * as i9 from "@angular/material/button";
17
- import * as i10 from "@angular/material/input";
18
- import * as i11 from "@angular/material/icon";
19
- import * as i12 from "../../core/popup/tooltip.directive";
20
- import * as i13 from "./designer-privileges.component";
21
- import * as i14 from "../../core/pipes/sanitize-html.pipe";
22
- import * as i15 from "../../core/pipes/translate.pipe";
23
- import * as i16 from "./declarations";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "../../core/slots/pane-ref";
10
+ import * as i3 from "../../core/component-factory-resolver";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "@angular/cdk/portal";
13
+ import * as i6 from "@angular/material/toolbar";
14
+ import * as i7 from "@angular/material/form-field";
15
+ import * as i8 from "@angular/material/button";
16
+ import * as i9 from "@angular/material/input";
17
+ import * as i10 from "@angular/material/icon";
18
+ import * as i11 from "../../core/popup/tooltip.directive";
19
+ import * as i12 from "./designer-privileges.component";
20
+ import * as i13 from "../../core/pipes/sanitize-html.pipe";
21
+ import * as i14 from "../../core/pipes/translate.pipe";
22
+ import * as i15 from "./declarations";
24
23
  export class EditContentDirective {
25
24
  constructor(templateRef) {
26
25
  this.templateRef = templateRef;
27
26
  }
28
27
  }
29
- EditContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EditContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
30
- EditContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: EditContentDirective, selector: "[bizdocEditContent]", ngImport: i0 });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EditContentDirective, decorators: [{
28
+ EditContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EditContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
29
+ EditContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: EditContentDirective, selector: "[bizdocEditContent]", ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EditContentDirective, decorators: [{
32
31
  type: Directive,
33
32
  args: [{
34
33
  selector: '[bizdocEditContent]'
@@ -39,9 +38,9 @@ export class WidgetContentDirective {
39
38
  this.templateRef = templateRef;
40
39
  }
41
40
  }
42
- WidgetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
43
- WidgetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: WidgetContentDirective, selector: "[bizdocContent]", ngImport: i0 });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetContentDirective, decorators: [{
41
+ WidgetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WidgetContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
42
+ WidgetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: WidgetContentDirective, selector: "[bizdocContent]", ngImport: i0 });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WidgetContentDirective, decorators: [{
45
44
  type: Directive,
46
45
  args: [{
47
46
  selector: '[bizdocContent]'
@@ -52,9 +51,9 @@ export class AddContentDirective {
52
51
  this.templateRef = templateRef;
53
52
  }
54
53
  }
55
- AddContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AddContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
56
- AddContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: AddContentDirective, selector: "[bizdocAddContent]", ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AddContentDirective, decorators: [{
54
+ AddContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AddContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
55
+ AddContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: AddContentDirective, selector: "[bizdocAddContent]", ngImport: i0 });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AddContentDirective, decorators: [{
58
57
  type: Directive,
59
58
  args: [{
60
59
  selector: '[bizdocAddContent]'
@@ -63,9 +62,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
63
62
  /**
64
63
  */
65
64
  export class DesignerItemComponent {
66
- constructor(_element, _service, _fb, _pane, _ref, _cfr) {
65
+ constructor(_element, _fb, _pane, _ref, _cfr) {
67
66
  this._element = _element;
68
- this._service = _service;
69
67
  this._fb = _fb;
70
68
  this._pane = _pane;
71
69
  this._ref = _ref;
@@ -80,16 +78,18 @@ export class DesignerItemComponent {
80
78
  }
81
79
  optionsattached(componentRef) {
82
80
  const { instance } = componentRef;
83
- this._options = instance;
81
+ this._customDesignerInstance = instance;
84
82
  instance.model = this.model;
85
- if (this.mode === 'add' && !this._options.onContinue) {
83
+ if (this.mode === 'add' && !this._customDesignerInstance.onContinue) {
86
84
  this.mode = 'edit';
87
85
  this._addEditControls();
88
86
  this.onContinue.emit();
89
87
  }
90
- this._options.mode = this.mode;
91
- this.mode !== 'widget' &&
88
+ this._customDesignerInstance.mode = this.mode;
89
+ if (this.mode !== 'widget') {
92
90
  this.form.addControl('options', instance.form, { emitEvent: false });
91
+ instance.form.patchValue(this.model.options, { emitEvent: false });
92
+ }
93
93
  }
94
94
  argumentsattached(componentRef) {
95
95
  const { instance } = componentRef;
@@ -100,6 +100,10 @@ export class DesignerItemComponent {
100
100
  this.form.addControl('options', instance.form, { emitEvent: false });
101
101
  }
102
102
  ngOnInit() {
103
+ if (this.mode == 'add') {
104
+ this.form.markAsDirty();
105
+ this.form.patchValue({});
106
+ }
103
107
  if (this.model.template) {
104
108
  const comp = this._cfr.component(this.model.template);
105
109
  this.options = new ComponentPortal(comp);
@@ -108,14 +112,8 @@ export class DesignerItemComponent {
108
112
  this.arguments = new ComponentPortal(LayoutComponent);
109
113
  else if (this.mode === 'add')
110
114
  this.mode = 'edit';
111
- switch (this.mode) {
112
- case 'add':
113
- this.form.patchValue({});
114
- break;
115
- case 'edit':
116
- this._addEditControls();
117
- break;
118
- }
115
+ this.mode === 'edit' &&
116
+ this._addEditControls();
119
117
  this.mode !== 'widget' &&
120
118
  this._ref._state$.pipe(takeUntil(this._destroy)).subscribe(v => this.optionsstate = v);
121
119
  }
@@ -137,9 +135,8 @@ export class DesignerItemComponent {
137
135
  this.form.patchValue(this.model, { emitEvent: !this.model.draft });
138
136
  }
139
137
  ngAfterViewInit() {
140
- if (this.mode !== 'widget') {
138
+ this.mode !== 'widget' &&
141
139
  setTimeout(() => this._element.nativeElement.querySelector('input')?.focus());
142
- }
143
140
  }
144
141
  unlock(evt) {
145
142
  if (evt.srcElement.tagName !== 'A')
@@ -149,16 +146,19 @@ export class DesignerItemComponent {
149
146
  this._ref._unlock$.next(false);
150
147
  }
151
148
  continue() {
152
- this._options?.onContinue && this._options.onContinue();
149
+ if (this._customDesignerInstance?.onContinue) {
150
+ this._customDesignerInstance.onContinue();
151
+ Object.assign(this.options, this._customDesignerInstance.form.getRawValue());
152
+ }
153
153
  this.onContinue.emit();
154
154
  this._addEditControls();
155
- if (this._options)
156
- this._options.mode = 'edit';
155
+ if (this._customDesignerInstance)
156
+ this._customDesignerInstance.mode = 'edit';
157
157
  this.mode = 'edit';
158
158
  }
159
159
  save() {
160
- Object.assign(this.model, this.form.value);
161
- this._options?.onFinish && this._options.onFinish();
160
+ Object.assign(this.model, this.form.getRawValue());
161
+ this._customDesignerInstance?.onFinish && this._customDesignerInstance.onFinish();
162
162
  this.onSave.emit(this.model);
163
163
  this._pane.close();
164
164
  }
@@ -177,17 +177,17 @@ export class DesignerItemComponent {
177
177
  this._destroy?.complete();
178
178
  }
179
179
  }
180
- DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.SystemService }, { token: i2.FormBuilder }, { token: i3.PaneRef, optional: true }, { token: DesignerRef }, { token: i4.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
181
- DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"!optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}.actions{margin:8px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i10.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: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i13.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "pipe", type: i14.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] });
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerItemComponent, decorators: [{
180
+ DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormBuilder }, { token: i2.PaneRef, optional: true }, { token: DesignerRef }, { token: i3.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
181
+ DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <form autocomplete=\"off\" class=\"column\" *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </form>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <ng-container *ngIf=\"!optionsstate\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { 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: "component", type: i12.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "pipe", type: i13.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerItemComponent, decorators: [{
183
183
  type: Component,
184
- args: [{ selector: 'bizdoc-designer-element', template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"!optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}.actions{margin:8px}\n"] }]
185
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SystemService }, { type: i2.FormBuilder }, { type: i3.PaneRef, decorators: [{
184
+ args: [{ selector: 'bizdoc-designer-element', template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <form autocomplete=\"off\" class=\"column\" *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </form>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <ng-container *ngIf=\"!optionsstate\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"] }]
185
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.PaneRef, decorators: [{
186
186
  type: Optional
187
- }] }, { type: i16.DesignerRef, decorators: [{
187
+ }] }, { type: i15.DesignerRef, decorators: [{
188
188
  type: Inject,
189
189
  args: [DesignerRef]
190
- }] }, { type: i4.BizDocComponentFactoryResolver }]; }, propDecorators: { form: [{
190
+ }] }, { type: i3.BizDocComponentFactoryResolver }]; }, propDecorators: { form: [{
191
191
  type: Input
192
192
  }], onContinue: [{
193
193
  type: Output,
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
202
202
  type: ContentChild,
203
203
  args: [WidgetContentDirective]
204
204
  }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFBbUIsV0FBaUM7UUFBakMsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO0lBQUksQ0FBQzs7aUhBRDlDLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7O0FBT0QsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixX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S0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7O2tIQWpJSyxxQkFBcUIsMklBc0JqQixXQUFXO3NHQXRCZixxQkFBcUIsdUxBT2Isb0JBQW9CLGdGQUNwQixzQkFBc0IsZ0RDOUN0Qyx5bkdBdURBOzJGRGpCUSxxQkFBcUI7a0JBTjVCLFNBQVM7K0JBQ0UseUJBQXlCOzswQkEwQmhDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsV0FBVzt5RkFwQlosSUFBSTtzQkFBWixLQUFLO2dCQUN1QixVQUFVO3NCQUF0QyxNQUFNO3VCQUFDLFVBQVU7Z0JBQ08sTUFBTTtzQkFBOUIsTUFBTTt1QkFBQyxNQUFNO2dCQUdzQixXQUFXO3NCQUE5QyxZQUFZO3VCQUFDLG9CQUFvQjtnQkFDSSxhQUFhO3NCQUFsRCxZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIEVsZW1lbnRNb2RlbCwgcHJvZ3JhbU5hbWUsIERlc2lnbk1vZGUsIEZBTUlMWV9TVkcsIERlc2lnbmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JpemRvY0VkaXRDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JpemRvY0FkZENvbnRlbnRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkQ29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuXHJcbi8qKlxyXG4qL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1lbGVtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJ2Rlc2lnbmVyLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIERlc2lnbmVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgc3ZnID0gRkFNSUxZX1NWRztcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAT3V0cHV0KCdjb250aW51ZScpIHJlYWRvbmx5IG9uQ29udGludWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgnc2F2ZScpIHJlYWRvbmx5IG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudE1vZGVsPigpO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgZnJvbGVzOiBSb2xlW107XHJcbiAgQENvbnRlbnRDaGlsZChFZGl0Q29udGVudERpcmVjdGl2ZSkgZWRpdENvbnRlbnQ6IEVkaXRDb250ZW50RGlyZWN0aXZlO1xyXG4gIEBDb250ZW50Q2hpbGQoV2lkZ2V0Q29udGVudERpcmVjdGl2ZSkgd2lkZ2V0Q29udGVudDogV2lkZ2V0Q29udGVudERpcmVjdGl2ZTtcclxuICBvcHRpb25zOiBQb3J0YWw8YW55PjtcclxuICBhcmd1bWVudHM6IFBvcnRhbDxhbnk+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgbW9kZWw6IEVsZW1lbnRNb2RlbDxhbnk+O1xyXG4gIHJvbGVzZmlsdGVyOiBGb3JtQ29udHJvbDtcclxuICBwcml2YXRlIF9vcHRpb25zOiBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55PjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBvcHRpb25zc3RhdGU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhbmU6IFBhbmVSZWYsXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9jZnI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICApIHtcclxuICAgIHRoaXMubW9kZSA9IF9yZWYubW9kZTtcclxuICAgIHRoaXMubW9kZWwgPSBfcmVmLm1vZGVsIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbiAgb3B0aW9uc2F0dGFjaGVkKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgdGhpcy5fb3B0aW9ucyA9IGluc3RhbmNlIGFzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+O1xyXG4gICAgaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FkZCcgJiYgIXRoaXMuX29wdGlvbnMub25Db250aW51ZSkge1xyXG4gICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3B0aW9ucy5tb2RlID0gdGhpcy5tb2RlO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgYXJndW1lbnRzYXR0YWNoZWQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TGF5b3V0Q29tcG9uZW50Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgaW5zdGFuY2UuZmllbGRzID0gdGhpcy5tb2RlbC5hcmd1bWVudHM7XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWwub3B0aW9ucztcclxuICAgIGluc3RhbmNlLmxheW91dCgpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlbC50ZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2ZyLmNvbXBvbmVudCh0aGlzLm1vZGVsLnRlbXBsYXRlKTtcclxuICAgICAgdGhpcy5vcHRpb25zID0gbmV3IENvbXBvbmVudFBvcnRhbDxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4oY29tcCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmIHRoaXMubW9kZWwuYXJndW1lbnRzPy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuYXJndW1lbnRzID0gbmV3IENvbXBvbmVudFBvcnRhbChMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnYWRkJylcclxuICAgICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XHJcbiAgICAgIGNhc2UgJ2FkZCc6XHJcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICB0aGlzLl9hZGRFZGl0Q29udHJvbHMoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiZcclxuICAgICAgdGhpcy5fcmVmLl9zdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+XHJcbiAgICAgICAgdGhpcy5vcHRpb25zc3RhdGUgPSB2KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfYWRkRWRpdENvbnRyb2xzKCkge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHRpdGxlID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMubW9kZWwucmVzb3VyY2UgJiYgdGl0bGUuZGlzYWJsZSgpO1xyXG4gICAgaWYgKHRoaXMubW9kZWwuZHJhZnQpIHRpdGxlLnZhbHVlQ2hhbmdlcy5cclxuICAgICAgcGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgodDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHQgJiYgbmFtZS5zZXRWYWx1ZShwcm9ncmFtTmFtZSh0KSlcclxuICAgICAgKTtcclxuICAgIGVsc2VcclxuICAgICAgbmFtZS5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnbmFtZScsIG5hbWUpO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3RpdGxlJywgdGl0bGUpO1xyXG4gICAgdGhpcy5tb2RlbC5wcml2aWxlZ2VzICYmXHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwcml2aWxlZ2VzJyxcclxuICAgICAgICB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgICAgICBydWxlOiBudWxsLFxyXG4gICAgICAgICAgcm9sZXM6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nW10+KG51bGwpLFxyXG4gICAgICAgIH0pLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLCB7IGVtaXRFdmVudDogIXRoaXMubW9kZWwuZHJhZnQgfSk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgIT09ICd3aWRnZXQnKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bmxvY2soZXZ0OiBFdmVudCkge1xyXG4gICAgaWYgKChldnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSAhPT0gJ0EnKSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGVsLnJlc291cmNlID0gbnVsbDtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3RpdGxlJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLl9yZWYuX3VubG9jayQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIGNvbnRpbnVlKCkge1xyXG4gICAgdGhpcy5fb3B0aW9ucz8ub25Db250aW51ZSAmJiB0aGlzLl9vcHRpb25zLm9uQ29udGludWUoKTtcclxuICAgIHRoaXMub25Db250aW51ZS5lbWl0KCk7XHJcbiAgICB0aGlzLl9hZGRFZGl0Q29udHJvbHMoKTtcclxuICAgIGlmICh0aGlzLl9vcHRpb25zKVxyXG4gICAgICB0aGlzLl9vcHRpb25zLm1vZGUgPSAnZWRpdCc7XHJcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgICB0aGlzLl9vcHRpb25zPy5vbkZpbmlzaCAmJiB0aGlzLl9vcHRpb25zLm9uRmluaXNoKCk7XHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fcGFuZS5jbG9zZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy5mb3JtLnZhbGlkICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3k/Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3k/LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb25hdGluZXIgW25nU3dpdGNoXT1cIm1vZGVcIj5cclxuICA8IS0tYWRkIG1vZGUtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYWRkJ1wiPlxyXG4gICAgPCEtLWFyZ3VtZW50cy0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFyZ3VtZW50c1wiIChhdHRhY2hlZCk9XCJhcmd1bWVudHNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJhcmd1bWVudHNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uc1wiIChhdHRhY2hlZCk9XCJvcHRpb25zYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwib3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBhY3Rpb25zXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkXCIgKGNsaWNrKT1cImNvbnRpbnVlKClcIj57eydDb250aW51ZSd8dHJhbnNsYXRlfX0mbmJzcDs8bWF0LWljb24+ZG91YmxlX2Fycm93PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS1lZGl0IG1vZGUtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZWRpdCdcIj5cclxuICAgIDxtYXQtdG9vbGJhcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCAhZm9ybS5kaXJ0eVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LXRvb2xiYXI+XHJcbiAgICA8cCBjbGFzcz1cImhlbHBcIj57e21vZGVsLmhlbHB9fTwvcD5cclxuICAgIDxwICpuZ0lmPVwibW9kZWwucmVzb3VyY2VcIiBjbGFzcz1cIm1lc3NhZ2VcIiAoY2xpY2spPVwidW5sb2NrKCRldmVudClcIiBbaW5uZXJIVE1MXT1cIidVbmxvY2tNdWx0aWxhbmcnfHRyYW5zbGF0ZVwiPjwvcD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCJcclxuICAgICAgICAgIChkb2N1bWVudDprZXlkb3duKT1cImhhbmRsZUtleWJvYXJkRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhb3B0aW9uc3N0YXRlXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkICN0aXRsZSAvPlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCd0aXRsZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFyZ3VtZW50c1wiIChhdHRhY2hlZCk9XCJhcmd1bWVudHNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJhcmd1bWVudHNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPCEtLW9wdGlvbnMtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdENvbnRlbnQ/LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8Yml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXMgKm5nSWY9XCJmb3JtLmNvbnRhaW5zKCdwcml2aWxlZ2VzJykgJiYgIW9wdGlvbnNzdGF0ZVwiIFtmb3JtXT1cImZvcm0uZ2V0KCdwcml2aWxlZ2VzJylcIj48L2JpemRvYy1kZXNpZ25lci1wcml2aWxlZ2VzPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS13aWRnZXQgbW9kZSAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwuZmFtaWx5XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdmdbbW9kZWwuZmFtaWx5XVwiIFtpbm5lckhUTUxdPVwic3ZnW21vZGVsLmZhbWlseV18c2FuaXRpemVIdG1sXCIgW2JpemRvY1Rvb2x0aXBdPVwibW9kZWwuZmFtaWx5XCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhc3ZnW21vZGVsLmZhbWlseV1cIj57e21vZGVsLmZhbWlseX19PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2lkZ2V0Q29udGVudD8udGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uc1wiIChhdHRhY2hlZCk9XCJvcHRpb25zYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwib3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbmF0aW5lcj5cclxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBSSxDQUFDOztpSEFEOUMsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFPRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdB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bXBvbmVudCwgQ29tcG9uZW50UmVmLCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwsIHByb2dyYW1OYW1lLCBEZXNpZ25Nb2RlLCBGQU1JTFlfU1ZHLCBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvbGF5b3V0L2xheW91dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NFZGl0Q29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0Q29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jQ29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NBZGRDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcblxyXG4vKipcclxuKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZGVzaWduZXItZWxlbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBEZXNpZ25lckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHN2ZyA9IEZBTUlMWV9TVkc7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQE91dHB1dCgnY29udGludWUnKSByZWFkb25seSBvbkNvbnRpbnVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoJ3NhdmUnKSByZWFkb25seSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRNb2RlbD4oKTtcclxuICByb2xlczogUm9sZVtdO1xyXG4gIGZyb2xlczogUm9sZVtdO1xyXG4gIEBDb250ZW50Q2hpbGQoRWRpdENvbnRlbnREaXJlY3RpdmUpIGVkaXRDb250ZW50OiBFZGl0Q29udGVudERpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKFdpZGdldENvbnRlbnREaXJlY3RpdmUpIHdpZGdldENvbnRlbnQ6IFdpZGdldENvbnRlbnREaXJlY3RpdmU7XHJcbiAgb3B0aW9uczogUG9ydGFsPGFueT47XHJcbiAgYXJndW1lbnRzOiBQb3J0YWw8YW55PjtcclxuICBtb2RlOiBEZXNpZ25Nb2RlO1xyXG4gIG1vZGVsOiBFbGVtZW50TW9kZWw8YW55PjtcclxuICByb2xlc2ZpbHRlcjogRm9ybUNvbnRyb2w7XHJcbiAgcHJpdmF0ZSBfY3VzdG9tRGVzaWduZXJJbnN0YW5jZTogRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgb3B0aW9uc3N0YXRlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhbmU6IFBhbmVSZWYsXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9jZnI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICApIHtcclxuICAgIHRoaXMubW9kZSA9IF9yZWYubW9kZTtcclxuICAgIHRoaXMubW9kZWwgPSBfcmVmLm1vZGVsIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbiAgb3B0aW9uc2F0dGFjaGVkKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZSA9IGluc3RhbmNlIGFzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+O1xyXG4gICAgaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FkZCcgJiYgIXRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25Db250aW51ZSkge1xyXG4gICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlO1xyXG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ3dpZGdldCcpIHtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBpbnN0YW5jZS5mb3JtLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIGluc3RhbmNlLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLm9wdGlvbnMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgYXJndW1lbnRzYXR0YWNoZWQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TGF5b3V0Q29tcG9uZW50Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgaW5zdGFuY2UuZmllbGRzID0gdGhpcy5tb2RlbC5hcmd1bWVudHM7XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWwub3B0aW9ucztcclxuICAgIGluc3RhbmNlLmxheW91dCgpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdhZGQnKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbC50ZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2ZyLmNvbXBvbmVudCh0aGlzLm1vZGVsLnRlbXBsYXRlKTtcclxuICAgICAgdGhpcy5vcHRpb25zID0gbmV3IENvbXBvbmVudFBvcnRhbDxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4oY29tcCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmIHRoaXMubW9kZWwuYXJndW1lbnRzPy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuYXJndW1lbnRzID0gbmV3IENvbXBvbmVudFBvcnRhbChMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnYWRkJylcclxuICAgICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG5cclxuICAgIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmXHJcbiAgICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLl9yZWYuX3N0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICB0aGlzLm9wdGlvbnNzdGF0ZSA9IHYpO1xyXG4gIH1cclxuICBwcml2YXRlIF9hZGRFZGl0Q29udHJvbHMoKSB7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdGl0bGUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSAmJiB0aXRsZS5kaXNhYmxlKCk7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5kcmFmdCkgdGl0bGUudmFsdWVDaGFuZ2VzLlxyXG4gICAgICBwaXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCh0OiBzdHJpbmcpID0+XHJcbiAgICAgICAgdCAmJiBuYW1lLnNldFZhbHVlKHByb2dyYW1OYW1lKHQpKVxyXG4gICAgICApO1xyXG4gICAgZWxzZVxyXG4gICAgICBuYW1lLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCduYW1lJywgbmFtZSk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgndGl0bGUnLCB0aXRsZSk7XHJcbiAgICB0aGlzLm1vZGVsLnByaXZpbGVnZXMgJiZcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3ByaXZpbGVnZXMnLFxyXG4gICAgICAgIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgICAgIHJ1bGU6IG51bGwsXHJcbiAgICAgICAgICByb2xlczogdGhpcy5fZmIuY29udHJvbDxzdHJpbmdbXT4obnVsbCksXHJcbiAgICAgICAgfSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwsIHsgZW1pdEV2ZW50OiAhdGhpcy5tb2RlbC5kcmFmdCB9KTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpKTtcclxuICB9XHJcbiAgdW5sb2NrKGV2dDogRXZlbnQpIHtcclxuICAgIGlmICgoZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgIT09ICdBJykgcmV0dXJuO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSA9IG51bGw7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCd0aXRsZScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5fcmVmLl91bmxvY2skLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBjb250aW51ZSgpIHtcclxuICAgIGlmICh0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlPy5vbkNvbnRpbnVlKSB7XHJcbiAgICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25Db250aW51ZSgpO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5mb3JtLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNvbnRpbnVlLmVtaXQoKTtcclxuICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgaWYgKHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UpXHJcbiAgICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UubW9kZSA9ICdlZGl0JztcclxuICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZT8ub25GaW5pc2ggJiYgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5vbkZpbmlzaCgpO1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQud2hpY2ggPT09IDgzIHx8IGV2ZW50LndoaWNoID09PSAxMTUpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS52YWxpZCAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29uYXRpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPCEtLWFkZCBtb2RlLS0+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJjb2x1bW5cIiAqbmdTd2l0Y2hDYXNlPVwiJ2FkZCdcIj5cclxuICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcmd1bWVudHNcIiAoYXR0YWNoZWQpPVwiYXJndW1lbnRzYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiYXJndW1lbnRzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tb3B0aW9ucy0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWN0aW9uc1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiIChjbGljayk9XCJjb250aW51ZSgpXCI+e3snQ29udGludWUnfHRyYW5zbGF0ZX19Jm5ic3A7PG1hdC1pY29uPmRvdWJsZV9hcnJvdzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbiAgPCEtLWVkaXQgbW9kZS0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlZGl0J1wiPlxyXG4gICAgPG1hdC10b29sYmFyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8ICFmb3JtLmRpcnR5XCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtdG9vbGJhcj5cclxuICAgIDxwIGNsYXNzPVwiaGVscFwiPnt7bW9kZWwuaGVscH19PC9wPlxyXG4gICAgPHAgKm5nSWY9XCJtb2RlbC5yZXNvdXJjZVwiIGNsYXNzPVwibWVzc2FnZVwiIChjbGljayk9XCJ1bmxvY2soJGV2ZW50KVwiIFtpbm5lckhUTUxdPVwiJ1VubG9ja011bHRpbGFuZyd8dHJhbnNsYXRlXCI+PC9wPlxyXG4gICAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgKGRvY3VtZW50OmtleWRvd24pPVwiaGFuZGxlS2V5Ym9hcmRFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uc3N0YXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAjdGl0bGUgLz5cclxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCd0aXRsZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJndW1lbnRzXCIgKGF0dGFjaGVkKT1cImFyZ3VtZW50c2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cImFyZ3VtZW50c1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdENvbnRlbnQ/LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS1wcml2aWxlZ2VzLS0+XHJcbiAgICAgIDxiaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcyAqbmdJZj1cImZvcm0uY29udGFpbnMoJ3ByaXZpbGVnZXMnKSAmJiAhb3B0aW9uc3N0YXRlXCIgW2Zvcm1dPVwiZm9ybS5nZXQoJ3ByaXZpbGVnZXMnKVwiPjwvYml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXM+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPCEtLXdpZGdldCBtb2RlIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5mYW1pbHlcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cInN2Z1ttb2RlbC5mYW1pbHldXCIgW2lubmVySFRNTF09XCJzdmdbbW9kZWwuZmFtaWx5XXxzYW5pdGl6ZUh0bWxcIiBbYml6ZG9jVG9vbHRpcF09XCJtb2RlbC5mYW1pbHlcIj48L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFzdmdbbW9kZWwuZmFtaWx5XVwiPnt7bW9kZWwuZmFtaWx5fX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ3aWRnZXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLW9wdGlvbnMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29uYXRpbmVyPlxyXG4iXX0=
@@ -79,9 +79,9 @@ export class DesignerPrivilegesComponent {
79
79
  this.form.patchValue({});
80
80
  }
81
81
  }
82
- DesignerPrivilegesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerPrivilegesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
83
- DesignerPrivilegesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: { form: "form" }, ngImport: i0, template: " <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <div [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"add(inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <!--<mat-selection-list formControlName=\"roles\" *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title||r.name}}</mat-list-option>\r\n </mat-selection-list>-->\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: i4.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerPrivilegesComponent, decorators: [{
82
+ DesignerPrivilegesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerPrivilegesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
83
+ DesignerPrivilegesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: { form: "form" }, ngImport: i0, template: " <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <div [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"add(inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <!--<mat-selection-list formControlName=\"roles\" *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title||r.name}}</mat-list-option>\r\n </mat-selection-list>-->\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: i4.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerPrivilegesComponent, decorators: [{
85
85
  type: Component,
86
86
  args: [{ selector: 'bizdoc-designer-privileges', template: " <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <div [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"add(inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <!--<mat-selection-list formControlName=\"roles\" *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title||r.name}}</mat-list-option>\r\n </mat-selection-list>-->\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n" }]
87
87
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i11.DesignerRef, decorators: [{
@@ -52,9 +52,9 @@ export class DesignerElementComponentBase {
52
52
  setTimeout(() => this._element.nativeElement.querySelector('input')?.focus());
53
53
  }
54
54
  }
55
- DesignerElementComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerElementComponentBase, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
56
- DesignerElementComponentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: DesignerElementComponentBase, ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerElementComponentBase, decorators: [{
55
+ DesignerElementComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerElementComponentBase, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
56
+ DesignerElementComponentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: DesignerElementComponentBase, ngImport: i0 });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerElementComponentBase, decorators: [{
58
58
  type: Directive
59
59
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ElementRef }, { type: i2.DesignerRef, decorators: [{
60
60
  type: Inject,
@@ -69,9 +69,9 @@ export class DesignerTypeElementComponent extends DesignerElementComponentBase {
69
69
  this.model = _ref.model;
70
70
  }
71
71
  }
72
- DesignerTypeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerTypeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
73
- DesignerTypeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: DesignerTypeElementComponent, viewQueries: [{ propertyName: "designer", first: true, predicate: DesignerItemComponent, descendants: true }], usesInheritance: true, ngImport: i0 });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerTypeElementComponent, decorators: [{
72
+ DesignerTypeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerTypeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
73
+ DesignerTypeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: DesignerTypeElementComponent, viewQueries: [{ propertyName: "designer", first: true, predicate: DesignerItemComponent, descendants: true }], usesInheritance: true, ngImport: i0 });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerTypeElementComponent, decorators: [{
75
75
  type: Directive
76
76
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ElementRef }, { type: i2.DesignerRef, decorators: [{
77
77
  type: Inject,
@@ -105,9 +105,9 @@ export class DesignerCubeElementComponent extends DesignerElementComponentBase {
105
105
  // }
106
106
  }
107
107
  }
108
- DesignerCubeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerCubeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
109
- DesignerCubeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: DesignerCubeElementComponent, usesInheritance: true, ngImport: i0 });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerCubeElementComponent, decorators: [{
108
+ DesignerCubeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerCubeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
109
+ DesignerCubeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: DesignerCubeElementComponent, usesInheritance: true, ngImport: i0 });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerCubeElementComponent, decorators: [{
111
111
  type: Directive
112
112
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ElementRef }, { type: i2.DesignerRef, decorators: [{
113
113
  type: Inject,