@ajf/material 13.0.0-next.0

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 (350) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +6 -0
  3. package/barcode/_barcode.scss +0 -0
  4. package/barcode/barcode-module.d.ts +23 -0
  5. package/barcode/barcode.d.ts +30 -0
  6. package/barcode/index.d.ts +4 -0
  7. package/barcode/index.metadata.json +1 -0
  8. package/barcode/package.json +9 -0
  9. package/barcode/public-api.d.ts +23 -0
  10. package/bundles/material-barcode.umd.js +433 -0
  11. package/bundles/material-barcode.umd.js.map +1 -0
  12. package/bundles/material-calendar.umd.js +435 -0
  13. package/bundles/material-calendar.umd.js.map +1 -0
  14. package/bundles/material-checkbox-group.umd.js +432 -0
  15. package/bundles/material-checkbox-group.umd.js.map +1 -0
  16. package/bundles/material-form-builder.umd.js +3558 -0
  17. package/bundles/material-form-builder.umd.js.map +1 -0
  18. package/bundles/material-forms.umd.js +968 -0
  19. package/bundles/material-forms.umd.js.map +1 -0
  20. package/bundles/material-image.umd.js +420 -0
  21. package/bundles/material-image.umd.js.map +1 -0
  22. package/bundles/material-monaco-editor.umd.js +755 -0
  23. package/bundles/material-monaco-editor.umd.js.map +1 -0
  24. package/bundles/material-node-icon.umd.js +415 -0
  25. package/bundles/material-node-icon.umd.js.map +1 -0
  26. package/bundles/material-page-slider.umd.js +424 -0
  27. package/bundles/material-page-slider.umd.js.map +1 -0
  28. package/bundles/material-report-builder.umd.js +5814 -0
  29. package/bundles/material-report-builder.umd.js.map +1 -0
  30. package/bundles/material-reports.umd.js +731 -0
  31. package/bundles/material-reports.umd.js.map +1 -0
  32. package/bundles/material-time.umd.js +424 -0
  33. package/bundles/material-time.umd.js.map +1 -0
  34. package/bundles/material.umd.js +40 -0
  35. package/bundles/material.umd.js.map +1 -0
  36. package/calendar/_calendar.scss +0 -0
  37. package/calendar/calendar-module.d.ts +23 -0
  38. package/calendar/calendar.d.ts +30 -0
  39. package/calendar/index.d.ts +4 -0
  40. package/calendar/index.metadata.json +1 -0
  41. package/calendar/package.json +9 -0
  42. package/calendar/public-api.d.ts +23 -0
  43. package/checkbox-group/_checkbox-group.scss +0 -0
  44. package/checkbox-group/checkbox-group-item.d.ts +25 -0
  45. package/checkbox-group/checkbox-group-module.d.ts +23 -0
  46. package/checkbox-group/index.d.ts +4 -0
  47. package/checkbox-group/index.metadata.json +1 -0
  48. package/checkbox-group/package.json +9 -0
  49. package/checkbox-group/public-api.d.ts +23 -0
  50. package/esm2015/barcode/barcode-module.js +50 -0
  51. package/esm2015/barcode/barcode.externs.js +6 -0
  52. package/esm2015/barcode/barcode.js +52 -0
  53. package/esm2015/barcode/index.js +5 -0
  54. package/esm2015/barcode/public-api.js +24 -0
  55. package/esm2015/calendar/calendar-module.js +48 -0
  56. package/esm2015/calendar/calendar.externs.js +6 -0
  57. package/esm2015/calendar/calendar.js +55 -0
  58. package/esm2015/calendar/index.js +5 -0
  59. package/esm2015/calendar/public-api.js +24 -0
  60. package/esm2015/checkbox-group/checkbox-group-item.js +51 -0
  61. package/esm2015/checkbox-group/checkbox-group-module.js +47 -0
  62. package/esm2015/checkbox-group/checkbox-group.externs.js +6 -0
  63. package/esm2015/checkbox-group/index.js +5 -0
  64. package/esm2015/checkbox-group/public-api.js +24 -0
  65. package/esm2015/form-builder/branch-line.js +73 -0
  66. package/esm2015/form-builder/choices-origin-data-source.js +38 -0
  67. package/esm2015/form-builder/choices-origin-editor-dialog.js +57 -0
  68. package/esm2015/form-builder/choices-origin-editor.js +78 -0
  69. package/esm2015/form-builder/condition-editor-dialog.js +59 -0
  70. package/esm2015/form-builder/condition-editor.js +143 -0
  71. package/esm2015/form-builder/form-builder-module.js +96 -0
  72. package/esm2015/form-builder/form-builder-service.js +764 -0
  73. package/esm2015/form-builder/form-builder-utils.js +63 -0
  74. package/esm2015/form-builder/form-builder.externs.js +6 -0
  75. package/esm2015/form-builder/form-builder.js +187 -0
  76. package/esm2015/form-builder/index.js +16 -0
  77. package/esm2015/form-builder/node-entry.js +245 -0
  78. package/esm2015/form-builder/node-properties.js +968 -0
  79. package/esm2015/form-builder/node-type-entry.js +50 -0
  80. package/esm2015/form-builder/operations.js +23 -0
  81. package/esm2015/form-builder/public-api.js +26 -0
  82. package/esm2015/form-builder/string-identifier-dialog.js +94 -0
  83. package/esm2015/form-builder/validation-condition-editor-dialog.js +59 -0
  84. package/esm2015/form-builder/warning-condition-editor-dialog.js +59 -0
  85. package/esm2015/forms/barcode-field.js +43 -0
  86. package/esm2015/forms/boolean-field.js +43 -0
  87. package/esm2015/forms/date-field.js +43 -0
  88. package/esm2015/forms/date-input-field.js +65 -0
  89. package/esm2015/forms/empty-field.js +43 -0
  90. package/esm2015/forms/field-service.js +115 -0
  91. package/esm2015/forms/field-warning-dialog.js +32 -0
  92. package/esm2015/forms/field.js +45 -0
  93. package/esm2015/forms/form.js +46 -0
  94. package/esm2015/forms/forms-module.js +107 -0
  95. package/esm2015/forms/forms.externs.js +6 -0
  96. package/esm2015/forms/index.js +9 -0
  97. package/esm2015/forms/input-field.js +43 -0
  98. package/esm2015/forms/multiple-choice-field.js +44 -0
  99. package/esm2015/forms/public-api.js +37 -0
  100. package/esm2015/forms/range-field.js +45 -0
  101. package/esm2015/forms/single-choice-field.js +44 -0
  102. package/esm2015/forms/table-field.js +43 -0
  103. package/esm2015/forms/text-field.js +43 -0
  104. package/esm2015/forms/time-field.js +43 -0
  105. package/esm2015/forms/video-url-field.js +47 -0
  106. package/esm2015/forms/warning-alert-service.js +42 -0
  107. package/esm2015/image/image-module.js +42 -0
  108. package/esm2015/image/image.externs.js +6 -0
  109. package/esm2015/image/image.js +44 -0
  110. package/esm2015/image/index.js +5 -0
  111. package/esm2015/image/public-api.js +24 -0
  112. package/esm2015/index.js +28 -0
  113. package/esm2015/material.externs.js +0 -0
  114. package/esm2015/monaco-editor/auto-complete-item-model.js +44 -0
  115. package/esm2015/monaco-editor/autocomplete-singleton-model.js +134 -0
  116. package/esm2015/monaco-editor/editor-language-model.js +60 -0
  117. package/esm2015/monaco-editor/editor-options-model.js +27 -0
  118. package/esm2015/monaco-editor/editor-scrollbar-options.js +23 -0
  119. package/esm2015/monaco-editor/editor-theme.js +30 -0
  120. package/esm2015/monaco-editor/index.js +5 -0
  121. package/esm2015/monaco-editor/monaco-editor-module.js +36 -0
  122. package/esm2015/monaco-editor/monaco-editor.externs.js +6 -0
  123. package/esm2015/monaco-editor/monaco-editor.js +389 -0
  124. package/esm2015/monaco-editor/public-api.js +24 -0
  125. package/esm2015/node-icon/index.js +5 -0
  126. package/esm2015/node-icon/node-icon-module.js +42 -0
  127. package/esm2015/node-icon/node-icon.externs.js +6 -0
  128. package/esm2015/node-icon/node-icon.js +35 -0
  129. package/esm2015/node-icon/public-api.js +24 -0
  130. package/esm2015/page-slider/index.js +5 -0
  131. package/esm2015/page-slider/page-slider-module.js +49 -0
  132. package/esm2015/page-slider/page-slider.externs.js +6 -0
  133. package/esm2015/page-slider/page-slider.js +44 -0
  134. package/esm2015/page-slider/public-api.js +24 -0
  135. package/esm2015/report-builder/column.js +97 -0
  136. package/esm2015/report-builder/condition-editor.js +159 -0
  137. package/esm2015/report-builder/content.js +255 -0
  138. package/esm2015/report-builder/custom-widget-dialog.js +51 -0
  139. package/esm2015/report-builder/custom-widget-toolbar-button.js +70 -0
  140. package/esm2015/report-builder/custom-widgets-toolbar.js +124 -0
  141. package/esm2015/report-builder/forms-analyzer-dialog.js +315 -0
  142. package/esm2015/report-builder/forms-analyzer.js +264 -0
  143. package/esm2015/report-builder/image-filter.js +32 -0
  144. package/esm2015/report-builder/image-group.js +106 -0
  145. package/esm2015/report-builder/index.js +25 -0
  146. package/esm2015/report-builder/models.js +23 -0
  147. package/esm2015/report-builder/operations.js +23 -0
  148. package/esm2015/report-builder/properties.js +765 -0
  149. package/esm2015/report-builder/public-api.js +26 -0
  150. package/esm2015/report-builder/quill-editor.js +299 -0
  151. package/esm2015/report-builder/renderer-widget.js +238 -0
  152. package/esm2015/report-builder/report-builder-drag-data.js +23 -0
  153. package/esm2015/report-builder/report-builder-module.js +114 -0
  154. package/esm2015/report-builder/report-builder-service.js +1685 -0
  155. package/esm2015/report-builder/report-builder.externs.js +6 -0
  156. package/esm2015/report-builder/report-builder.js +69 -0
  157. package/esm2015/report-builder/theme-color-dialog.js +90 -0
  158. package/esm2015/report-builder/theme-color.js +215 -0
  159. package/esm2015/report-builder/tokens.js +24 -0
  160. package/esm2015/report-builder/toolbar-dialog.js +56 -0
  161. package/esm2015/report-builder/toolbar.js +90 -0
  162. package/esm2015/report-builder/utils.js +48 -0
  163. package/esm2015/report-builder/widget-toolbar-button.js +47 -0
  164. package/esm2015/report-builder/widgets-row-buttons.js +133 -0
  165. package/esm2015/report-builder/widgets-toolbar.js +79 -0
  166. package/esm2015/reports/chart-widget.js +41 -0
  167. package/esm2015/reports/formula-widget.js +41 -0
  168. package/esm2015/reports/image-container-widget.js +43 -0
  169. package/esm2015/reports/image-widget.js +41 -0
  170. package/esm2015/reports/index.js +5 -0
  171. package/esm2015/reports/layout-widget.js +22 -0
  172. package/esm2015/reports/map-widget.js +41 -0
  173. package/esm2015/reports/page-break-widget.js +41 -0
  174. package/esm2015/reports/public-api.js +33 -0
  175. package/esm2015/reports/report.js +41 -0
  176. package/esm2015/reports/reports-module.js +79 -0
  177. package/esm2015/reports/reports.externs.js +6 -0
  178. package/esm2015/reports/table-widget.js +41 -0
  179. package/esm2015/reports/text-widget.js +41 -0
  180. package/esm2015/reports/widget.js +120 -0
  181. package/esm2015/time/index.js +5 -0
  182. package/esm2015/time/public-api.js +24 -0
  183. package/esm2015/time/time-module.js +44 -0
  184. package/esm2015/time/time.externs.js +6 -0
  185. package/esm2015/time/time.js +46 -0
  186. package/fesm2015/barcode.js +129 -0
  187. package/fesm2015/barcode.js.map +1 -0
  188. package/fesm2015/calendar.js +128 -0
  189. package/fesm2015/calendar.js.map +1 -0
  190. package/fesm2015/checkbox-group.js +124 -0
  191. package/fesm2015/checkbox-group.js.map +1 -0
  192. package/fesm2015/form-builder.js +2987 -0
  193. package/fesm2015/form-builder.js.map +1 -0
  194. package/fesm2015/forms.js +923 -0
  195. package/fesm2015/forms.js.map +1 -0
  196. package/fesm2015/image.js +113 -0
  197. package/fesm2015/image.js.map +1 -0
  198. package/fesm2015/material.js +30 -0
  199. package/fesm2015/material.js.map +1 -0
  200. package/fesm2015/monaco-editor.js +741 -0
  201. package/fesm2015/monaco-editor.js.map +1 -0
  202. package/fesm2015/node-icon.js +104 -0
  203. package/fesm2015/node-icon.js.map +1 -0
  204. package/fesm2015/page-slider.js +119 -0
  205. package/fesm2015/page-slider.js.map +1 -0
  206. package/fesm2015/report-builder.js +5332 -0
  207. package/fesm2015/report-builder.js.map +1 -0
  208. package/fesm2015/reports.js +560 -0
  209. package/fesm2015/reports.js.map +1 -0
  210. package/fesm2015/time.js +116 -0
  211. package/fesm2015/time.js.map +1 -0
  212. package/form-builder/_form-builder.scss +0 -0
  213. package/form-builder/branch-line.d.ts +36 -0
  214. package/form-builder/choices-origin-data-source.d.ts +35 -0
  215. package/form-builder/choices-origin-editor-dialog.d.ts +34 -0
  216. package/form-builder/choices-origin-editor.d.ts +43 -0
  217. package/form-builder/condition-editor-dialog.d.ts +35 -0
  218. package/form-builder/condition-editor.d.ts +37 -0
  219. package/form-builder/form-builder-module.d.ts +23 -0
  220. package/form-builder/form-builder-service.d.ts +191 -0
  221. package/form-builder/form-builder-utils.d.ts +41 -0
  222. package/form-builder/form-builder.d.ts +78 -0
  223. package/form-builder/index.d.ts +15 -0
  224. package/form-builder/index.metadata.json +1 -0
  225. package/form-builder/node-entry.d.ts +93 -0
  226. package/form-builder/node-properties.d.ts +184 -0
  227. package/form-builder/node-type-entry.d.ts +30 -0
  228. package/form-builder/operations.d.ts +31 -0
  229. package/form-builder/package.json +9 -0
  230. package/form-builder/public-api.d.ts +25 -0
  231. package/form-builder/string-identifier-dialog.d.ts +45 -0
  232. package/form-builder/validation-condition-editor-dialog.d.ts +36 -0
  233. package/form-builder/warning-condition-editor-dialog.d.ts +36 -0
  234. package/forms/_forms.scss +0 -0
  235. package/forms/barcode-field.d.ts +27 -0
  236. package/forms/boolean-field.d.ts +27 -0
  237. package/forms/date-field.d.ts +27 -0
  238. package/forms/date-input-field.d.ts +34 -0
  239. package/forms/empty-field.d.ts +27 -0
  240. package/forms/field-service.d.ts +25 -0
  241. package/forms/field-warning-dialog.d.ts +24 -0
  242. package/forms/field.d.ts +30 -0
  243. package/forms/form.d.ts +36 -0
  244. package/forms/forms-module.d.ts +25 -0
  245. package/forms/index.d.ts +8 -0
  246. package/forms/index.metadata.json +1 -0
  247. package/forms/input-field.d.ts +27 -0
  248. package/forms/multiple-choice-field.d.ts +27 -0
  249. package/forms/package.json +9 -0
  250. package/forms/public-api.d.ts +36 -0
  251. package/forms/range-field.d.ts +28 -0
  252. package/forms/single-choice-field.d.ts +27 -0
  253. package/forms/table-field.d.ts +27 -0
  254. package/forms/text-field.d.ts +27 -0
  255. package/forms/time-field.d.ts +27 -0
  256. package/forms/video-url-field.d.ts +29 -0
  257. package/forms/warning-alert-service.d.ts +29 -0
  258. package/image/_image.scss +0 -0
  259. package/image/image-module.d.ts +23 -0
  260. package/image/image.d.ts +27 -0
  261. package/image/index.d.ts +4 -0
  262. package/image/index.metadata.json +1 -0
  263. package/image/package.json +9 -0
  264. package/image/public-api.d.ts +23 -0
  265. package/index.d.ts +22 -0
  266. package/monaco-editor/_monaco-editor.scss +0 -0
  267. package/monaco-editor/auto-complete-item-model.d.ts +35 -0
  268. package/monaco-editor/autocomplete-singleton-model.d.ts +55 -0
  269. package/monaco-editor/editor-language-model.d.ts +59 -0
  270. package/monaco-editor/editor-options-model.d.ts +334 -0
  271. package/monaco-editor/editor-scrollbar-options.d.ts +83 -0
  272. package/monaco-editor/editor-theme.d.ts +29 -0
  273. package/monaco-editor/index.d.ts +4 -0
  274. package/monaco-editor/index.metadata.json +1 -0
  275. package/monaco-editor/monaco-editor-module.d.ts +23 -0
  276. package/monaco-editor/monaco-editor.d.ts +152 -0
  277. package/monaco-editor/package.json +9 -0
  278. package/monaco-editor/public-api.d.ts +23 -0
  279. package/node-icon/_node-icon.scss +0 -0
  280. package/node-icon/index.d.ts +4 -0
  281. package/node-icon/index.metadata.json +1 -0
  282. package/node-icon/node-icon-module.d.ts +23 -0
  283. package/node-icon/node-icon.d.ts +24 -0
  284. package/node-icon/package.json +9 -0
  285. package/node-icon/public-api.d.ts +23 -0
  286. package/package.json +38 -0
  287. package/page-slider/_page-slider.scss +0 -0
  288. package/page-slider/index.d.ts +4 -0
  289. package/page-slider/index.metadata.json +1 -0
  290. package/page-slider/package.json +9 -0
  291. package/page-slider/page-slider-module.d.ts +23 -0
  292. package/page-slider/page-slider.d.ts +30 -0
  293. package/page-slider/public-api.d.ts +23 -0
  294. package/report-builder/_report-builder.scss +0 -0
  295. package/report-builder/column.d.ts +63 -0
  296. package/report-builder/condition-editor.d.ts +67 -0
  297. package/report-builder/content.d.ts +142 -0
  298. package/report-builder/custom-widget-dialog.d.ts +31 -0
  299. package/report-builder/custom-widget-toolbar-button.d.ts +45 -0
  300. package/report-builder/custom-widgets-toolbar.d.ts +71 -0
  301. package/report-builder/forms-analyzer-dialog.d.ts +91 -0
  302. package/report-builder/forms-analyzer.d.ts +102 -0
  303. package/report-builder/image-filter.d.ts +25 -0
  304. package/report-builder/image-group.d.ts +69 -0
  305. package/report-builder/index.d.ts +24 -0
  306. package/report-builder/index.metadata.json +1 -0
  307. package/report-builder/models.d.ts +43 -0
  308. package/report-builder/operations.d.ts +45 -0
  309. package/report-builder/package.json +9 -0
  310. package/report-builder/properties.d.ts +365 -0
  311. package/report-builder/public-api.d.ts +26 -0
  312. package/report-builder/quill-editor.d.ts +113 -0
  313. package/report-builder/renderer-widget.d.ts +80 -0
  314. package/report-builder/report-builder-drag-data.d.ts +32 -0
  315. package/report-builder/report-builder-module.d.ts +23 -0
  316. package/report-builder/report-builder-service.d.ts +722 -0
  317. package/report-builder/report-builder.d.ts +36 -0
  318. package/report-builder/theme-color-dialog.d.ts +42 -0
  319. package/report-builder/theme-color.d.ts +108 -0
  320. package/report-builder/tokens.d.ts +24 -0
  321. package/report-builder/toolbar-dialog.d.ts +30 -0
  322. package/report-builder/toolbar.d.ts +48 -0
  323. package/report-builder/utils.d.ts +29 -0
  324. package/report-builder/widget-toolbar-button.d.ts +28 -0
  325. package/report-builder/widgets-row-buttons.d.ts +57 -0
  326. package/report-builder/widgets-toolbar.d.ts +44 -0
  327. package/reports/_reports.scss +0 -0
  328. package/reports/chart-widget.d.ts +26 -0
  329. package/reports/formula-widget.d.ts +26 -0
  330. package/reports/image-container-widget.d.ts +28 -0
  331. package/reports/image-widget.d.ts +26 -0
  332. package/reports/index.d.ts +4 -0
  333. package/reports/index.metadata.json +1 -0
  334. package/reports/layout-widget.d.ts +21 -0
  335. package/reports/map-widget.d.ts +26 -0
  336. package/reports/package.json +9 -0
  337. package/reports/page-break-widget.d.ts +26 -0
  338. package/reports/public-api.d.ts +32 -0
  339. package/reports/report.d.ts +26 -0
  340. package/reports/reports-module.d.ts +23 -0
  341. package/reports/table-widget.d.ts +26 -0
  342. package/reports/text-widget.d.ts +26 -0
  343. package/reports/widget.d.ts +40 -0
  344. package/time/_time.scss +0 -0
  345. package/time/index.d.ts +4 -0
  346. package/time/index.metadata.json +1 -0
  347. package/time/package.json +9 -0
  348. package/time/public-api.d.ts +23 -0
  349. package/time/time-module.d.ts +23 -0
  350. package/time/time.d.ts +28 -0
@@ -0,0 +1,238 @@
1
+ /**
2
+ * @license
3
+ * Copyright (C) Gnucoop soc. coop.
4
+ *
5
+ * This file is part of the Advanced JSON forms (ajf).
6
+ *
7
+ * Advanced JSON forms (ajf) is free software: you can redistribute it and/or
8
+ * modify it under the terms of the GNU Affero General Public License as
9
+ * published by the Free Software Foundation, either version 3 of the License,
10
+ * or (at your option) any later version.
11
+ *
12
+ * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
15
+ * General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Affero General Public License
18
+ * along with Advanced JSON forms (ajf).
19
+ * If not, see http://www.gnu.org/licenses/.
20
+ *
21
+ */
22
+ import { AjfImageType } from '@ajf/core/image';
23
+ import { evaluateExpression } from '@ajf/core/models';
24
+ import { AjfWidgetType } from '@ajf/core/reports';
25
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
26
+ import { Subscription, timer } from 'rxjs';
27
+ import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
28
+ import { AjfReportBuilderService } from './report-builder-service';
29
+ export class AjfReportBuilderRendererWidget {
30
+ constructor(_service) {
31
+ this._service = _service;
32
+ // this boolean sign if is dragged a widget
33
+ this.onDragged = false;
34
+ this.currentContentWidget = null;
35
+ this._onDraggedSub = Subscription.EMPTY;
36
+ }
37
+ get widgetTypes() {
38
+ return AjfWidgetType;
39
+ }
40
+ get layoutWidget() {
41
+ return this.widget;
42
+ }
43
+ canDropPredicate(item) {
44
+ for (let i = 0; i < item.data.dropZones.length; i++) {
45
+ if (['header', 'widget'].indexOf(item.data.dropZones[i]) > -1) {
46
+ return true;
47
+ }
48
+ }
49
+ return false;
50
+ }
51
+ /**
52
+ * sign the start of mouse drag with 200 ms of delay
53
+ *
54
+ * @memberOf AjfReportBuilderContent
55
+ */
56
+ onDragStartHandler() {
57
+ let s = timer(200).subscribe(() => {
58
+ s.unsubscribe();
59
+ this._service.dragStarted();
60
+ });
61
+ }
62
+ /**
63
+ * sign the end of mouse drag
64
+ *
65
+ * @memberOf AjfReportBuilderContent
66
+ */
67
+ onDragEndHandler() {
68
+ this._service.dragEnded();
69
+ }
70
+ getColumnContent() {
71
+ const myObj = this.widget;
72
+ return myObj.content;
73
+ }
74
+ getIcon() {
75
+ const defVal = { fontSet: '', fontIcon: '' };
76
+ const myObj = this.widget;
77
+ if (myObj.icon == null) {
78
+ return null;
79
+ }
80
+ return evaluateExpression(myObj.icon.formula) || defVal;
81
+ }
82
+ getFlag() {
83
+ const defVal = 'ch';
84
+ const myObj = this.widget;
85
+ if (myObj.flag == null) {
86
+ return null;
87
+ }
88
+ return evaluateExpression(myObj.flag.formula) || defVal;
89
+ }
90
+ getPercent(index) {
91
+ const myObj = this.widget;
92
+ const percent = myObj.columns[index] * 100;
93
+ return `${percent.toString()}%`;
94
+ }
95
+ getImageUrl() {
96
+ const defVal = '';
97
+ const myObj = this.widget;
98
+ if (myObj.url == null) {
99
+ return null;
100
+ }
101
+ return evaluateExpression(myObj.url.formula) || defVal;
102
+ }
103
+ getImageType() {
104
+ return this.widget != null ? this.widget.imageType : AjfImageType.Image;
105
+ }
106
+ getHtmlText() {
107
+ const myObj = this.widget;
108
+ if (myObj.htmlText === '') {
109
+ return '...';
110
+ }
111
+ else {
112
+ return myObj.htmlText;
113
+ }
114
+ }
115
+ getCoordinate() {
116
+ const myObj = this.widget;
117
+ if (myObj.coordinate == null) {
118
+ return [51.505, -0.09, 13];
119
+ }
120
+ else {
121
+ return myObj.coordinate;
122
+ }
123
+ }
124
+ getTileLayer() {
125
+ const myObj = this.widget;
126
+ if (myObj.tileLayer === '') {
127
+ return 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
128
+ }
129
+ else {
130
+ return myObj.tileLayer;
131
+ }
132
+ }
133
+ getAttribution() {
134
+ let myObj;
135
+ myObj = this.widget;
136
+ if (myObj.attribution === '') {
137
+ return '&copy; <a href=\'http://osm.org/copyright\'>O</a> contributors';
138
+ }
139
+ else {
140
+ return myObj.attribution;
141
+ }
142
+ }
143
+ addToList(event, toColumn) {
144
+ this.onDragEndHandler();
145
+ this._service.addToColumn(event, toColumn);
146
+ }
147
+ ngOnInit() {
148
+ this._onDraggedSub = this._service.onDragged.subscribe(x => {
149
+ this.onDragged = x;
150
+ });
151
+ this.getChartType = this._service.currentWidget.pipe(map((widget) => {
152
+ if (widget == null) {
153
+ return 0;
154
+ }
155
+ const myObj = this.widget;
156
+ return (myObj.chartType);
157
+ }), distinctUntilChanged(), startWith(0));
158
+ this.getDataset = this._service.currentWidget.pipe(map((widget) => {
159
+ if (widget != null && widget.dataset != null) {
160
+ const myObj = this.widget;
161
+ return myObj.dataset;
162
+ }
163
+ else {
164
+ return [];
165
+ }
166
+ }), distinctUntilChanged());
167
+ this.getTableTitles = this._service.currentWidget.pipe(map((widget) => {
168
+ if (widget == null) {
169
+ return [];
170
+ }
171
+ const myObj = this.widget;
172
+ if (myObj.dataset != null) {
173
+ let tableTitle = [];
174
+ for (let i = 0; i < myObj.dataset.length; i++) {
175
+ if (myObj.dataset[i][0] != null) {
176
+ tableTitle.push(myObj.dataset[i][0].label || '');
177
+ }
178
+ }
179
+ return tableTitle;
180
+ }
181
+ else {
182
+ return [];
183
+ }
184
+ }));
185
+ this.getTableContent = this._service.currentWidget.pipe(map((widget) => {
186
+ if (widget == null) {
187
+ return [];
188
+ }
189
+ const myObj = this.widget;
190
+ if (myObj.dataset != null) {
191
+ let tableContent = [];
192
+ for (let i = 0; i < myObj.dataset.length; i++) {
193
+ for (let j = 0; j < myObj.dataset[i].length; j++) {
194
+ if ((myObj.dataset[i] != null) && (myObj.dataset[i][j + 1] != null)) {
195
+ if (tableContent[j] == null) {
196
+ tableContent[j] = [];
197
+ }
198
+ if (tableContent[j][i] == null) {
199
+ tableContent[j][i] = ' ';
200
+ }
201
+ tableContent[j].splice(i, 1, myObj.dataset[i][j + 1].label || '');
202
+ }
203
+ }
204
+ }
205
+ return tableContent;
206
+ }
207
+ return [];
208
+ }));
209
+ this._service.updateCurrentWidget(this.widget);
210
+ }
211
+ ngOnChanges(changes) {
212
+ const widget = changes['widget'];
213
+ if (widget && widget.currentValue != null) {
214
+ this.widget = widget.currentValue;
215
+ }
216
+ }
217
+ ngOnDestroy() {
218
+ this._onDraggedSub.unsubscribe();
219
+ }
220
+ }
221
+ AjfReportBuilderRendererWidget.decorators = [
222
+ { type: Component, args: [{
223
+ selector: 'ajf-report-builder-renderer-widget',
224
+ template: "<div class=\"ajf-container\"\n [ngSwitch]=\"widget?.widgetType\"\n [ngClass]=\"{'ajf-drag-mode': (onDragged || fixedZoom)}\">\n <div *ngSwitchCase=\"widgetTypes.Layout\" class=\"ajf-row ajf-layout\"\n [applyStyles]=\"widget.styles\">\n <div class=\"ajf-columns\">\n <ng-template ngFor let-clm [ngForOf]=\"getColumnContent()\" let-idx=\"index\">\n <div class=\"ajf-column\"\n [ngClass]=\"{'ajf-fixed': layoutWidget.columns[idx] == -1}\"\n [style.width]=getPercent(idx)\n [applyStyles]=\"layoutWidget.content[idx].styles\">\n <ajf-report-builder-widgets-row-buttons\n [from]=\"'layout'\"\n [fromWidget]=\"widget\"\n [widget]=\"clm\"\n [position]=\"idx\"\n (onDragStart)=\"onDragStartHandler();\"\n (onDragEnd)=\"onDragEndHandler();\"\n [child]=\"true\">\n </ajf-report-builder-widgets-row-buttons>\n <!-- temporarily disabled for ivy partial build -->\n <!-- <ajf-column\n [column]=\"clm\"\n [applyStyles]=\"widget.styles\">\n </ajf-column> -->\n <ng-template [ngIf]=\"onDragged === true\">\n <div cdkDropList\n [cdkDropListEnterPredicate]=\"canDropPredicate\"\n [style.display]=\"onDragged ? 'block' : 'none'\"\n (cdkDropListDropped)=\"addToList($event, clm)\"\n class=\"ajf-column-drop-zone\"\n (dragover)=\"layoutShow = true;\"\n (dragleave)=\"layoutShow = false;\">\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n <div *ngSwitchCase=\"widgetTypes.Image\" class=\"ajf-row\">\n <ajf-image\n [applyStyles]=\"widget.styles\"\n [type]=\"getImageType()\"\n [imageUrl]=\"getImageUrl()\"\n [icon]=\"getIcon()\"\n [flag]=\"getFlag()\">\n </ajf-image>\n </div>\n <div *ngSwitchCase=\"widgetTypes.Text\" class=\"ajf-row ajf-text\">\n <ajf-text [htmlText]=\"getHtmlText() | transloco\" [applyStyles]=\"widget.styles\"></ajf-text>\n </div>\n <div *ngSwitchCase=\"widgetTypes.Chart\" class=\"ajf-row\" [applyStyles]=\"widget.styles\">\n </div>\n <!-- <div *ngSwitchCase=\"widgetTypes.Table\" class=\"ajf-row\" [applyStyles]=\"widget.styles\">\n <ajf-table *ngIf=\"getTableContent|async as tc\" [data]=\"tc!\" ></ajf-table>\n </div> -->\n <div *ngSwitchCase=\"widgetTypes.Map\" class=\"ajf-row\" [applyStyles]=\"widget.styles\">\n <ajf-map [coordinate]=\"getCoordinate()\" [tileLayer]=\"getTileLayer()\" [attribution]=\"getAttribution()\">\n </ajf-map>\n </div>\n</div>\n",
225
+ encapsulation: ViewEncapsulation.None,
226
+ changeDetection: ChangeDetectionStrategy.OnPush,
227
+ styles: ["ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-layout{border:none !important}ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-row{border:9px solid blue;border-radius:36px;height:100%}ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-row .ajf-columns{border:9px solid red !important;height:100%;margin-bottom:20px;padding-bottom:20px;padding-top:20px}ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-row .ajf-columns .ajf-fixed{border:9px solid #ff0 !important}ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-row .ajf-columns .ajf-column{border:9px solid #9acd32;margin-left:10px;margin-right:10px;border-radius:36px;height:100%}ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-row .ajf-columns .ajf-column ajf-report-builder-widgets-row-buttons{visibility:visible !important;display:block !important}ajf-report-builder-renderer-widget .ajf-drag-mode .ajf-row .ajf-columns .ajf-column .ajf-container{min-height:50px}ajf-report-builder-renderer-widget .ajf-container{height:inherit;display:block;min-height:50px}ajf-report-builder-renderer-widget .ajf-row-button{width:100%}ajf-report-builder-renderer-widget .ajf-container:hover{border:3px dotted blue;border-radius:16px;opacity:1;min-height:50px}ajf-report-builder-renderer-widget .ajf-on-dragged{border:23px dotted blue}ajf-report-builder-renderer-widget .ajf-selected{background-color:red}ajf-report-builder-renderer-widget .ajf-show,ajf-report-builder-renderer-widget .ajf-on-drag-over{border:33px dotted blue;opacity:1 !important;z-index:10}ajf-report-builder-renderer-widget .ajf-no-obj{max-width:200px;max-height:200px;width:auto;height:auto}ajf-report-builder-renderer-widget .ajf-row{display:flex;flex-direction:column;height:100%}ajf-report-builder-renderer-widget .ajf-columns{display:flex;flex-direction:row}ajf-report-builder-renderer-widget .ajf-column{min-height:50px}ajf-report-builder-renderer-widget .ajf-column ajf-report-builder-widgets-row-buttons{visibility:hidden !important;display:none !important}ajf-report-builder-renderer-widget .ajf-column:hover{border:3px dashed #9acd32;border-radius:16px}ajf-report-builder-renderer-widget .ajf-column:hover ajf-report-builder-widgets-row-buttons{visibility:visible !important;display:block !important}ajf-report-builder-renderer-widget .ajf-column:hover .ajf-container{min-height:50px}ajf-report-builder-renderer-widget .ajf-fixed:hover{border:3px dashed red !important}ajf-report-builder-renderer-widget .ajf-fixed{min-width:100px}ajf-report-builder-renderer-widget .ajf-column-drop-zone{margin:10%;height:50px;background-color:#fff;border:9px solid rgba(66,134,244,.6);border-radius:16px}ajf-report-builder-renderer-widget .ajf-text{min-height:20px}ajf-report-builder-renderer-widget ajf-map{z-index:30}ajf-report-builder-renderer-widget ajf-column{width:100%}ajf-report-builder-renderer-widget button{width:100%}ajf-report-builder-renderer-widget mat-list{height:100%;padding:0}ajf-report-builder-renderer-widget .ajf-ui.ajf-fluid.ajf-image{max-width:100%;height:auto}ajf-report-builder-renderer-widget .ajf-column-right{float:right;width:33%;background-color:#8b4513}ajf-report-builder-renderer-widget .ajf-column-center{display:inline-block;width:33%;background-color:olive}\n"]
228
+ },] }
229
+ ];
230
+ AjfReportBuilderRendererWidget.ctorParameters = () => [
231
+ { type: AjfReportBuilderService }
232
+ ];
233
+ AjfReportBuilderRendererWidget.propDecorators = {
234
+ widget: [{ type: Input }],
235
+ position: [{ type: Input }],
236
+ section: [{ type: Input }]
237
+ };
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXItd2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3JlcG9ydC1idWlsZGVyL3JlbmRlcmVyLXdpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQVVMLGFBQWEsRUFDZCxNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFLTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFhLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQVNqRSxNQUFNLE9BQU8sOEJBQThCO0lBbUN6QyxZQUFvQixRQUFpQztRQUFqQyxhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQXBCckQsMkNBQTJDO1FBQzNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIseUJBQW9CLEdBQW1CLElBQUksQ0FBQztRQWVwQyxrQkFBYSxHQUFpQixZQUFZLENBQUMsS0FBSyxDQUFDO0lBRUQsQ0FBQztJQWxDekQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUlELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQXlCLENBQUM7SUFDeEMsQ0FBQztJQTRCRCxnQkFBZ0IsQ0FBQyxJQUF1QztRQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENB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LElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBUk8sdUJBQXVCOzs7cUJBYzVCLEtBQUs7dUJBTUwsS0FBSztzQkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge0FqZkltYWdlVHlwZX0gZnJvbSAnQGFqZi9jb3JlL2ltYWdlJztcbmltcG9ydCB7ZXZhbHVhdGVFeHByZXNzaW9ufSBmcm9tICdAYWpmL2NvcmUvbW9kZWxzJztcbmltcG9ydCB7XG4gIEFqZkNoYXJ0V2lkZ2V0LFxuICBBamZDb2x1bW5XaWRnZXQsXG4gIEFqZkRhdGFzZXQsXG4gIEFqZkltYWdlV2lkZ2V0LFxuICBBamZMYXlvdXRXaWRnZXQsXG4gIEFqZk1hcFdpZGdldCxcbiAgQWpmVGFibGVXaWRnZXQsXG4gIEFqZlRleHRXaWRnZXQsXG4gIEFqZldpZGdldCxcbiAgQWpmV2lkZ2V0VHlwZVxufSBmcm9tICdAYWpmL2NvcmUvcmVwb3J0cyc7XG5pbXBvcnQge0Nka0RyYWcsIENka0RyYWdEcm9wfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJEcmFnRGF0YX0gZnJvbSAnLi9yZXBvcnQtYnVpbGRlci1kcmFnLWRhdGEnO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyU2VydmljZX0gZnJvbSAnLi9yZXBvcnQtYnVpbGRlci1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWpmLXJlcG9ydC1idWlsZGVyLXJlbmRlcmVyLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAncmVuZGVyZXItd2lkZ2V0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncmVuZGVyZXItd2lkZ2V0LmNzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBamZSZXBvcnRCdWlsZGVyUmVuZGVyZXJXaWRnZXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgZ2V0IHdpZGdldFR5cGVzKCkge1xuICAgIHJldHVybiBBamZXaWRnZXRUeXBlO1xuICB9XG5cbiAgQElucHV0KCkgd2lkZ2V0OiBBamZXaWRnZXQ7XG5cbiAgZ2V0IGxheW91dFdpZGdldCgpOiBBamZMYXlvdXRXaWRnZXQge1xuICAgIHJldHVybiB0aGlzLndpZGdldCBhcyBBamZMYXlvdXRXaWRnZXQ7XG4gIH1cblxuICBASW5wdXQoKSBwb3NpdGlvbjogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHNlY3Rpb246IHN0cmluZztcblxuICAvLyB0aGlzIGJvb2xlYW4gc2lnbiBpZiBpcyBkcmFnZ2VkIGEgd2lkZ2V0XG4gIG9uRHJhZ2dlZCA9IGZhbHNlO1xuXG4gIGN1cnJlbnRDb250ZW50V2lkZ2V0OiBBamZXaWRnZXR8bnVsbCA9IG51bGw7XG4gIG9iajogYW55O1xuICBmaXhlZFpvb206IGFueTtcblxuICBnZXRUYWJsZVRpdGxlczogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGdldFRhYmxlQ29udGVudDogT2JzZXJ2YWJsZTxzdHJpbmdbXVtdfHVuZGVmaW5lZD47XG5cbiAgZ2V0Q2hhcnRUeXBlOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIGdldERhdGFzZXQ6IE9ic2VydmFibGU8QWpmRGF0YXNldFtdW10+O1xuICBnZXRDaGFydEJhY2tncm91bmRDb2xvcjogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGdldENoYXJ0Qm9yZGVyQ29sb3I6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBnZXRDaGFydEJvcmRlcldpZHRoOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgbGF5b3V0U2hvdzogYm9vbGVhbjtcblxuICBwcml2YXRlIF9vbkRyYWdnZWRTdWI6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlOiBBamZSZXBvcnRCdWlsZGVyU2VydmljZSkge31cblxuICBjYW5Ecm9wUHJlZGljYXRlKGl0ZW06IENka0RyYWc8QWpmUmVwb3J0QnVpbGRlckRyYWdEYXRhPik6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbS5kYXRhLmRyb3Bab25lcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKFsnaGVhZGVyJywgJ3dpZGdldCddLmluZGV4T2YoaXRlbS5kYXRhLmRyb3Bab25lc1tpXSkgPiAtMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqICBzaWduIHRoZSBzdGFydCBvZiBtb3VzZSBkcmFnIHdpdGggMjAwIG1zIG9mIGRlbGF5XG4gICAqXG4gICAqIEBtZW1iZXJPZiBBamZSZXBvcnRCdWlsZGVyQ29udGVudFxuICAgKi9cbiAgb25EcmFnU3RhcnRIYW5kbGVyKCk6IHZvaWQge1xuICAgIGxldCBzID0gdGltZXIoMjAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgcy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fc2VydmljZS5kcmFnU3RhcnRlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNpZ24gdGhlIGVuZCBvZiBtb3VzZSBkcmFnXG4gICAqXG4gICAqIEBtZW1iZXJPZiBBamZSZXBvcnRCdWlsZGVyQ29udGVudFxuICAgKi9cbiAgb25EcmFnRW5kSGFuZGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXJ2aWNlLmRyYWdFbmRlZCgpO1xuICB9XG5cbiAgZ2V0Q29sdW1uQ29udGVudCgpOiBBamZDb2x1bW5XaWRnZXRbXSB7XG4gICAgY29uc3QgbXlPYmo6IEFqZkxheW91dFdpZGdldCA9IDxBamZMYXlvdXRXaWRnZXQ+dGhpcy53aWRnZXQ7XG5cbiAgICByZXR1cm4gPEFqZkNvbHVtbldpZGdldFtdPm15T2JqLmNvbnRlbnQ7XG4gIH1cblxuICBnZXRJY29uKCk6IHtmb250U2V0OiBzdHJpbmcsIGZvbnRJY29uOiBzdHJpbmd9fG51bGwge1xuICAgIGNvbnN0IGRlZlZhbCA9IHtmb250U2V0OiAnJywgZm9udEljb246ICcnfTtcbiAgICBjb25zdCBteU9iajogQWpmSW1hZ2VXaWRnZXQgPSA8QWpmSW1hZ2VXaWRnZXQ+dGhpcy53aWRnZXQ7XG4gICAgaWYgKG15T2JqLmljb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBldmFsdWF0ZUV4cHJlc3Npb24obXlPYmouaWNvbi5mb3JtdWxhKSB8fCBkZWZWYWw7XG4gIH1cblxuICBnZXRGbGFnKCk6IHN0cmluZ3xudWxsIHtcbiAgICBjb25zdCBkZWZWYWwgPSAnY2gnO1xuICAgIGNvbnN0IG15T2JqOiBBamZJbWFnZVdpZGdldCA9IDxBamZJbWFnZVdpZGdldD50aGlzLndpZGdldDtcbiAgICBpZiAobXlPYmouZmxhZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGV2YWx1YXRlRXhwcmVzc2lvbihteU9iai5mbGFnLmZvcm11bGEpIHx8IGRlZlZhbDtcbiAgfVxuXG4gIGdldFBlcmNlbnQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgbXlPYmo6IEFqZkxheW91dFdpZGdldCA9IDxBamZMYXlvdXRXaWRnZXQ+dGhpcy53aWRnZXQ7XG4gICAgY29uc3QgcGVyY2VudCA9IG15T2JqLmNvbHVtbnNbaW5kZXhdICogMTAwO1xuXG4gICAgcmV0dXJuIGAke3BlcmNlbnQudG9TdHJpbmcoKX0lYDtcbiAgfVxuXG4gIGdldEltYWdlVXJsKCk6IHN0cmluZ3xudWxsIHtcbiAgICBjb25zdCBkZWZWYWwgPSAnJztcbiAgICBjb25zdCBteU9iajogQWpmSW1hZ2VXaWRnZXQgPSA8QWpmSW1hZ2VXaWRnZXQ+dGhpcy53aWRnZXQ7XG4gICAgaWYgKG15T2JqLnVybCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGV2YWx1YXRlRXhwcmVzc2lvbihteU9iai51cmwuZm9ybXVsYSkgfHwgZGVmVmFsO1xuICB9XG5cbiAgZ2V0SW1hZ2VUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLndpZGdldCAhPSBudWxsID8gKDxBamZJbWFnZVdpZGdldD50aGlzLndpZGdldCkuaW1hZ2VUeXBlIDogQWpmSW1hZ2VUeXBlLkltYWdlO1xuICB9XG5cbiAgZ2V0SHRtbFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBteU9iajogQWpmVGV4dFdpZGdldCA9IHRoaXMud2lkZ2V0IGFzIEFqZlRleHRXaWRnZXQ7XG4gICAgaWYgKG15T2JqLmh0bWxUZXh0ID09PSAnJykge1xuICAgICAgcmV0dXJuICcuLi4nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbXlPYmouaHRtbFRleHQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29vcmRpbmF0ZSgpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgbXlPYmo6IEFqZk1hcFdpZGdldCA9IHRoaXMud2lkZ2V0IGFzIEFqZk1hcFdpZGdldDtcbiAgICBpZiAobXlPYmouY29vcmRpbmF0ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gWzUxLjUwNSwgLTAuMDksIDEzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG15T2JqLmNvb3JkaW5hdGUgYXMgYW55O1xuICAgIH1cbiAgfVxuXG4gIGdldFRpbGVMYXllcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IG15T2JqOiBBamZNYXBXaWRnZXQgPSB0aGlzLndpZGdldCBhcyBBamZNYXBXaWRnZXQ7XG4gICAgaWYgKG15T2JqLnRpbGVMYXllciA9PT0gJycpIHtcbiAgICAgIHJldHVybiAnaHR0cDovL3tzfS50aWxlLm9zbS5vcmcve3p9L3t4fS97eX0ucG5nJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG15T2JqLnRpbGVMYXllcjtcbiAgICB9XG4gIH1cblxuICBnZXRBdHRyaWJ1dGlvbigpOiBzdHJpbmcge1xuICAgIGxldCBteU9iajogQWpmTWFwV2lkZ2V0O1xuICAgIG15T2JqID0gPEFqZk1hcFdpZGdldD50aGlzLndpZGdldDtcbiAgICBpZiAobXlPYmouYXR0cmlidXRpb24gPT09ICcnKSB7XG4gICAgICByZXR1cm4gJyZjb3B5OyA8YSBocmVmPVxcJ2h0dHA6Ly9vc20ub3JnL2NvcHlyaWdodFxcJz5PPC9hPiBjb250cmlidXRvcnMnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbXlPYmouYXR0cmlidXRpb247XG4gICAgfVxuICB9XG5cbiAgYWRkVG9MaXN0KGV2ZW50OiBDZGtEcmFnRHJvcDxBamZSZXBvcnRCdWlsZGVyRHJhZ0RhdGE+LCB0b0NvbHVtbjogQWpmQ29sdW1uV2lkZ2V0KTogdm9pZCB7XG4gICAgdGhpcy5vbkRyYWdFbmRIYW5kbGVyKCk7XG4gICAgdGhpcy5fc2VydmljZS5hZGRUb0NvbHVtbihldmVudCwgdG9Db2x1bW4pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fb25EcmFnZ2VkU3ViID0gdGhpcy5fc2VydmljZS5vbkRyYWdnZWQuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgdGhpcy5vbkRyYWdnZWQgPSB4O1xuICAgIH0pO1xuXG4gICAgdGhpcy5nZXRDaGFydFR5cGUgPSB0aGlzLl9zZXJ2aWNlLmN1cnJlbnRXaWRnZXQucGlwZShcbiAgICAgICAgbWFwKCh3aWRnZXQ6IEFqZldpZGdldHxudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKHdpZGdldCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbXlPYmogPSA8QWpmQ2hhcnRXaWRnZXQ+dGhpcy53aWRnZXQ7XG4gICAgICAgICAgcmV0dXJuIDxudW1iZXI+KG15T2JqLmNoYXJ0VHlwZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzdGFydFdpdGgoMCkpO1xuXG4gICAgdGhpcy5nZXREYXRhc2V0ID0gdGhpcy5fc2VydmljZS5jdXJyZW50V2lkZ2V0LnBpcGUoXG4gICAgICAgIG1hcCgod2lkZ2V0OiBBamZXaWRnZXR8bnVsbCkgPT4ge1xuICAgICAgICAgIGlmICh3aWRnZXQgIT0gbnVsbCAmJiAod2lkZ2V0IGFzIEFqZkNoYXJ0V2lkZ2V0KS5kYXRhc2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG15T2JqID0gPEFqZkNoYXJ0V2lkZ2V0PnRoaXMud2lkZ2V0O1xuICAgICAgICAgICAgcmV0dXJuIDxhbnk+bXlPYmouZGF0YXNldDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gICAgdGhpcy5nZXRUYWJsZVRpdGxlcyA9IHRoaXMuX3NlcnZpY2UuY3VycmVudFdpZGdldC5waXBlKG1hcCgod2lkZ2V0OiBBamZXaWRnZXR8bnVsbCkgPT4ge1xuICAgICAgaWYgKHdpZGdldCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbXlPYmogPSB0aGlzLndpZGdldCBhcyBBamZUYWJsZVdpZGdldDtcblxuICAgICAgaWYgKG15T2JqLmRhdGFzZXQgIT0gbnVsbCkge1xuICAgICAgICBsZXQgdGFibGVUaXRsZTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG15T2JqLmRhdGFzZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAobXlPYmouZGF0YXNldFtpXVswXSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0YWJsZVRpdGxlLnB1c2gobXlPYmouZGF0YXNldFtpXVswXS5sYWJlbCB8fCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YWJsZVRpdGxlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMuZ2V0VGFibGVDb250ZW50ID0gdGhpcy5fc2VydmljZS5jdXJyZW50V2lkZ2V0LnBpcGUobWFwKCh3aWRnZXQ6IEFqZldpZGdldHxudWxsKSA9PiB7XG4gICAgICBpZiAod2lkZ2V0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBteU9iaiA9IDxBamZUYWJsZVdpZGdldD50aGlzLndpZGdldDtcblxuICAgICAgaWYgKG15T2JqLmRhdGFzZXQgIT0gbnVsbCkge1xuICAgICAgICBsZXQgdGFibGVDb250ZW50OiBzdHJpbmdbXVtdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBteU9iai5kYXRhc2V0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBteU9iai5kYXRhc2V0W2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoKG15T2JqLmRhdGFzZXRbaV0gIT0gbnVsbCkgJiYgKG15T2JqLmRhdGFzZXRbaV1baiArIDFdICE9IG51bGwpKSB7XG4gICAgICAgICAgICAgIGlmICh0YWJsZUNvbnRlbnRbal0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRhYmxlQ29udGVudFtqXSA9IFtdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICh0YWJsZUNvbnRlbnRbal1baV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRhYmxlQ29udGVudFtqXVtpXSA9ICcgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0YWJsZUNvbnRlbnRbal0uc3BsaWNlKGksIDEsIG15T2JqLmRhdGFzZXRbaV1baiArIDFdLmxhYmVsIHx8ICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhYmxlQ29udGVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9KSk7XG5cbiAgICB0aGlzLl9zZXJ2aWNlLnVwZGF0ZUN1cnJlbnRXaWRnZXQodGhpcy53aWRnZXQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHdpZGdldCA9IGNoYW5nZXNbJ3dpZGdldCddO1xuICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LmN1cnJlbnRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLndpZGdldCA9IHdpZGdldC5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb25EcmFnZ2VkU3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright (C) Gnucoop soc. coop.
4
+ *
5
+ * This file is part of the Advanced JSON forms (ajf).
6
+ *
7
+ * Advanced JSON forms (ajf) is free software: you can redistribute it and/or
8
+ * modify it under the terms of the GNU Affero General Public License as
9
+ * published by the Free Software Foundation, either version 3 of the License,
10
+ * or (at your option) any later version.
11
+ *
12
+ * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
15
+ * General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Affero General Public License
18
+ * along with Advanced JSON forms (ajf).
19
+ * If not, see http://www.gnu.org/licenses/.
20
+ *
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJ1aWxkZXItZHJhZy1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3JlcG9ydC1idWlsZGVyL3JlcG9ydC1idWlsZGVyLWRyYWctZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7QWpmQ29sdW1uV2lkZ2V0LCBBamZXaWRnZXR9IGZyb20gJ0BhamYvY29yZS9yZXBvcnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBBamZSZXBvcnRCdWlsZGVyRHJhZ0RhdGEge1xuICB3aWRnZXRUeXBlOiBzdHJpbmc7XG4gIHdpZGdldD86IEFqZldpZGdldDtcbiAgZnJvbUluZGV4PzogbnVtYmVyO1xuICBmcm9tQ29sdW1uPzogQWpmQ29sdW1uV2lkZ2V0O1xuICBmcm9tPzogbnVtYmVyO1xuICBqc29uPzogYW55O1xuICBhcnJheUZyb20/OiAnaGVhZGVyJ3wnY29udGVudCd8J2Zvb3Rlcic7XG4gIGRyb3Bab25lczogc3RyaW5nW107XG59XG4iXX0=
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @license
3
+ * Copyright (C) Gnucoop soc. coop.
4
+ *
5
+ * This file is part of the Advanced JSON forms (ajf).
6
+ *
7
+ * Advanced JSON forms (ajf) is free software: you can redistribute it and/or
8
+ * modify it under the terms of the GNU Affero General Public License as
9
+ * published by the Free Software Foundation, either version 3 of the License,
10
+ * or (at your option) any later version.
11
+ *
12
+ * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
15
+ * General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Affero General Public License
18
+ * along with Advanced JSON forms (ajf).
19
+ * If not, see http://www.gnu.org/licenses/.
20
+ *
21
+ */
22
+ import { AjfCommonModule } from '@ajf/core/common';
23
+ import { AjfMapModule } from '@ajf/core/map';
24
+ import { AjfTableModule } from '@ajf/core/table';
25
+ import { AjfTextModule } from '@ajf/core/text';
26
+ import { AjfTranslocoModule } from '@ajf/core/transloco';
27
+ import { AjfImageModule } from '@ajf/material/image';
28
+ import { AjfMonacoEditorModule } from '@ajf/material/monaco-editor';
29
+ import { DragDropModule } from '@angular/cdk/drag-drop';
30
+ import { CommonModule } from '@angular/common';
31
+ import { NgModule } from '@angular/core';
32
+ import { FormsModule } from '@angular/forms';
33
+ import { MatButtonModule } from '@angular/material/button';
34
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
35
+ import { MatCardModule } from '@angular/material/card';
36
+ import { MatDialogModule } from '@angular/material/dialog';
37
+ import { MatGridListModule } from '@angular/material/grid-list';
38
+ import { MatIconModule } from '@angular/material/icon';
39
+ import { MatListModule } from '@angular/material/list';
40
+ import { MatSelectModule } from '@angular/material/select';
41
+ import { MatSidenavModule } from '@angular/material/sidenav';
42
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
43
+ import { MatSliderModule } from '@angular/material/slider';
44
+ import { MatTabsModule } from '@angular/material/tabs';
45
+ import { MatToolbarModule } from '@angular/material/toolbar';
46
+ import { MatTooltipModule } from '@angular/material/tooltip';
47
+ import { ColorPickerModule } from 'ngx-color-picker';
48
+ import { AjfReportBuilderColumn } from './column';
49
+ import { AjfReportBuilderConditionEditor } from './condition-editor';
50
+ import { AjfReportBuilderContent } from './content';
51
+ import { AjfReportBuilderCustomWidgetDialog } from './custom-widget-dialog';
52
+ import { AjfReportBuilderCustomWidgetToolbarButton } from './custom-widget-toolbar-button';
53
+ import { AjfReportBuilderCustomWidgetsToolbar } from './custom-widgets-toolbar';
54
+ import { AjfReportBuilderFormsAnalyzer } from './forms-analyzer';
55
+ import { AjfReportBuilderFormsAnalyzerDialog } from './forms-analyzer-dialog';
56
+ import { AjfImageFilterPipe } from './image-filter';
57
+ import { AjfReportBuilderImageGroup } from './image-group';
58
+ import { AjfReportBuilderProperties } from './properties';
59
+ import { AjfQuillEditor } from './quill-editor';
60
+ import { AjfReportBuilderRendererWidget } from './renderer-widget';
61
+ import { AjfReportBuilder } from './report-builder';
62
+ import { AjfReportBuilderService } from './report-builder-service';
63
+ import { AjfReportBuilderThemeColor } from './theme-color';
64
+ import { AjfReportBuilderThemeColorDialog } from './theme-color-dialog';
65
+ import { AjfReportBuilderToolbar } from './toolbar';
66
+ import { AjfReportBuilderToolbarDialog } from './toolbar-dialog';
67
+ import { AjfReportBuilderWidgetToolbarButton } from './widget-toolbar-button';
68
+ import { AjfReportBuilderWidgetsRowButtons } from './widgets-row-buttons';
69
+ import { AjfReportBuilderWidgetsToolbar } from './widgets-toolbar';
70
+ export class AjfReportBuilderModule {
71
+ }
72
+ AjfReportBuilderModule.decorators = [
73
+ { type: NgModule, args: [{
74
+ imports: [
75
+ AjfCommonModule, AjfImageModule, AjfMapModule, AjfMonacoEditorModule,
76
+ AjfTableModule, AjfTextModule, ColorPickerModule, CommonModule,
77
+ DragDropModule, FormsModule, MatButtonModule, MatButtonToggleModule,
78
+ MatCardModule, MatDialogModule, MatGridListModule, MatIconModule,
79
+ MatListModule, MatSelectModule, MatSidenavModule, MatSlideToggleModule,
80
+ MatSliderModule, MatTabsModule, MatToolbarModule, MatTooltipModule,
81
+ AjfTranslocoModule,
82
+ ],
83
+ declarations: [
84
+ AjfImageFilterPipe,
85
+ AjfQuillEditor,
86
+ AjfReportBuilderColumn,
87
+ AjfReportBuilderConditionEditor,
88
+ AjfReportBuilderContent,
89
+ AjfReportBuilderCustomWidgetDialog,
90
+ AjfReportBuilderCustomWidgetsToolbar,
91
+ AjfReportBuilderCustomWidgetToolbarButton,
92
+ AjfReportBuilderFormsAnalyzer,
93
+ AjfReportBuilderFormsAnalyzerDialog,
94
+ AjfReportBuilderImageGroup,
95
+ AjfReportBuilderProperties,
96
+ AjfReportBuilderRendererWidget,
97
+ AjfReportBuilderThemeColor,
98
+ AjfReportBuilderThemeColorDialog,
99
+ AjfReportBuilderToolbar,
100
+ AjfReportBuilderToolbarDialog,
101
+ AjfReportBuilderWidgetsRowButtons,
102
+ AjfReportBuilderWidgetsToolbar,
103
+ AjfReportBuilderWidgetToolbarButton,
104
+ AjfReportBuilder,
105
+ ],
106
+ exports: [
107
+ AjfReportBuilder,
108
+ ],
109
+ providers: [
110
+ AjfReportBuilderService,
111
+ ],
112
+ },] }
113
+ ];
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJ1aWxkZXItbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3JlcG9ydC1idWlsZGVyL3JlcG9ydC1idWlsZGVyLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25FLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMseUNBQXlDLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBMENqRSxNQUFNLE9BQU8sc0JBQXNCOzs7WUF4Q2xDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsZUFBZSxFQUFLLGNBQWMsRUFBRyxZQUFZLEVBQU8scUJBQXFCO29CQUM3RSxjQUFjLEVBQU0sYUFBYSxFQUFJLGlCQUFpQixFQUFFLFlBQVk7b0JBQ3BFLGNBQWMsRUFBTSxXQUFXLEVBQU0sZUFBZSxFQUFJLHFCQUFxQjtvQkFDN0UsYUFBYSxFQUFPLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhO29CQUNyRSxhQUFhLEVBQU8sZUFBZSxFQUFFLGdCQUFnQixFQUFHLG9CQUFvQjtvQkFDNUUsZUFBZSxFQUFLLGFBQWEsRUFBSSxnQkFBZ0IsRUFBRyxnQkFBZ0I7b0JBQ3hFLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxzQkFBc0I7b0JBQ3RCLCtCQUErQjtvQkFDL0IsdUJBQXVCO29CQUN2QixrQ0FBa0M7b0JBQ2xDLG9DQUFvQztvQkFDcEMseUNBQXlDO29CQUN6Qyw2QkFBNkI7b0JBQzdCLG1DQUFtQztvQkFDbkMsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLDhCQUE4QjtvQkFDOUIsMEJBQTBCO29CQUMxQixnQ0FBZ0M7b0JBQ2hDLHVCQUF1QjtvQkFDdkIsNkJBQTZCO29CQUM3QixpQ0FBaUM7b0JBQ2pDLDhCQUE4QjtvQkFDOUIsbUNBQW1DO29CQUNuQyxnQkFBZ0I7aUJBQ2pCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxnQkFBZ0I7aUJBQ2pCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCx1QkFBdUI7aUJBQ3hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7QWpmQ29tbW9uTW9kdWxlfSBmcm9tICdAYWpmL2NvcmUvY29tbW9uJztcbmltcG9ydCB7QWpmTWFwTW9kdWxlfSBmcm9tICdAYWpmL2NvcmUvbWFwJztcbmltcG9ydCB7QWpmVGFibGVNb2R1bGV9IGZyb20gJ0BhamYvY29yZS90YWJsZSc7XG5pbXBvcnQge0FqZlRleHRNb2R1bGV9IGZyb20gJ0BhamYvY29yZS90ZXh0JztcbmltcG9ydCB7QWpmVHJhbnNsb2NvTW9kdWxlfSBmcm9tICdAYWpmL2NvcmUvdHJhbnNsb2NvJztcbmltcG9ydCB7QWpmSW1hZ2VNb2R1bGV9IGZyb20gJ0BhamYvbWF0ZXJpYWwvaW1hZ2UnO1xuaW1wb3J0IHtBamZNb25hY29FZGl0b3JNb2R1bGV9IGZyb20gJ0BhamYvbWF0ZXJpYWwvbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7TWF0Q2FyZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7TWF0R3JpZExpc3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRMaXN0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7TWF0U2VsZWN0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtNYXRTaWRlbmF2TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7TWF0U2xpZGVUb2dnbGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQge01hdFNsaWRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7TWF0VGFic01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQge01hdFRvb2xiYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuXG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJDb2x1bW59IGZyb20gJy4vY29sdW1uJztcbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlckNvbmRpdGlvbkVkaXRvcn0gZnJvbSAnLi9jb25kaXRpb24tZWRpdG9yJztcbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlckNvbnRlbnR9IGZyb20gJy4vY29udGVudCc7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJDdXN0b21XaWRnZXREaWFsb2d9IGZyb20gJy4vY3VzdG9tLXdpZGdldC1kaWFsb2cnO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyQ3VzdG9tV2lkZ2V0VG9vbGJhckJ1dHRvbn0gZnJvbSAnLi9jdXN0b20td2lkZ2V0LXRvb2xiYXItYnV0dG9uJztcbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlckN1c3RvbVdpZGdldHNUb29sYmFyfSBmcm9tICcuL2N1c3RvbS13aWRnZXRzLXRvb2xiYXInO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyRm9ybXNBbmFseXplcn0gZnJvbSAnLi9mb3Jtcy1hbmFseXplcic7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyRGlhbG9nfSBmcm9tICcuL2Zvcm1zLWFuYWx5emVyLWRpYWxvZyc7XG5pbXBvcnQge0FqZkltYWdlRmlsdGVyUGlwZX0gZnJvbSAnLi9pbWFnZS1maWx0ZXInO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVySW1hZ2VHcm91cH0gZnJvbSAnLi9pbWFnZS1ncm91cCc7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJQcm9wZXJ0aWVzfSBmcm9tICcuL3Byb3BlcnRpZXMnO1xuaW1wb3J0IHtBamZRdWlsbEVkaXRvcn0gZnJvbSAnLi9xdWlsbC1lZGl0b3InO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyUmVuZGVyZXJXaWRnZXR9IGZyb20gJy4vcmVuZGVyZXItd2lkZ2V0JztcbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlcn0gZnJvbSAnLi9yZXBvcnQtYnVpbGRlcic7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJTZXJ2aWNlfSBmcm9tICcuL3JlcG9ydC1idWlsZGVyLXNlcnZpY2UnO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyVGhlbWVDb2xvcn0gZnJvbSAnLi90aGVtZS1jb2xvcic7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJUaGVtZUNvbG9yRGlhbG9nfSBmcm9tICcuL3RoZW1lLWNvbG9yLWRpYWxvZyc7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJUb29sYmFyfSBmcm9tICcuL3Rvb2xiYXInO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyVG9vbGJhckRpYWxvZ30gZnJvbSAnLi90b29sYmFyLWRpYWxvZyc7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJXaWRnZXRUb29sYmFyQnV0dG9ufSBmcm9tICcuL3dpZGdldC10b29sYmFyLWJ1dHRvbic7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJXaWRnZXRzUm93QnV0dG9uc30gZnJvbSAnLi93aWRnZXRzLXJvdy1idXR0b25zJztcbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlcldpZGdldHNUb29sYmFyfSBmcm9tICcuL3dpZGdldHMtdG9vbGJhcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBBamZDb21tb25Nb2R1bGUsICAgIEFqZkltYWdlTW9kdWxlLCAgQWpmTWFwTW9kdWxlLCAgICAgIEFqZk1vbmFjb0VkaXRvck1vZHVsZSxcbiAgICBBamZUYWJsZU1vZHVsZSwgICAgIEFqZlRleHRNb2R1bGUsICAgQ29sb3JQaWNrZXJNb2R1bGUsIENvbW1vbk1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSwgICAgIEZvcm1zTW9kdWxlLCAgICAgTWF0QnV0dG9uTW9kdWxlLCAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlLCAgICAgIE1hdERpYWxvZ01vZHVsZSwgTWF0R3JpZExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSwgICAgICBNYXRTZWxlY3RNb2R1bGUsIE1hdFNpZGVuYXZNb2R1bGUsICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRTbGlkZXJNb2R1bGUsICAgIE1hdFRhYnNNb2R1bGUsICAgTWF0VG9vbGJhck1vZHVsZSwgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgQWpmVHJhbnNsb2NvTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBamZJbWFnZUZpbHRlclBpcGUsXG4gICAgQWpmUXVpbGxFZGl0b3IsXG4gICAgQWpmUmVwb3J0QnVpbGRlckNvbHVtbixcbiAgICBBamZSZXBvcnRCdWlsZGVyQ29uZGl0aW9uRWRpdG9yLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJDb250ZW50LFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJDdXN0b21XaWRnZXREaWFsb2csXG4gICAgQWpmUmVwb3J0QnVpbGRlckN1c3RvbVdpZGdldHNUb29sYmFyLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJDdXN0b21XaWRnZXRUb29sYmFyQnV0dG9uLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyRGlhbG9nLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJJbWFnZUdyb3VwLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJQcm9wZXJ0aWVzLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJSZW5kZXJlcldpZGdldCxcbiAgICBBamZSZXBvcnRCdWlsZGVyVGhlbWVDb2xvcixcbiAgICBBamZSZXBvcnRCdWlsZGVyVGhlbWVDb2xvckRpYWxvZyxcbiAgICBBamZSZXBvcnRCdWlsZGVyVG9vbGJhcixcbiAgICBBamZSZXBvcnRCdWlsZGVyVG9vbGJhckRpYWxvZyxcbiAgICBBamZSZXBvcnRCdWlsZGVyV2lkZ2V0c1Jvd0J1dHRvbnMsXG4gICAgQWpmUmVwb3J0QnVpbGRlcldpZGdldHNUb29sYmFyLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXJXaWRnZXRUb29sYmFyQnV0dG9uLFxuICAgIEFqZlJlcG9ydEJ1aWxkZXIsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBamZSZXBvcnRCdWlsZGVyLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBamZSZXBvcnRCdWlsZGVyU2VydmljZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWpmUmVwb3J0QnVpbGRlck1vZHVsZSB7XG59XG4iXX0=