@formio/angular 7.5.0-dev.1060.f7c9795 → 7.5.0-dev.1063.d9205fe

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 (464) hide show
  1. package/{dist/angular-formio/FormioBaseComponent.d.ts → FormioBaseComponent.d.ts} +1 -1
  2. package/{dist/angular-formio/FormioBaseComponent.d.ts.map → FormioBaseComponent.d.ts.map} +1 -1
  3. package/README.md +13 -204
  4. package/{dist/angular-formio/components → components}/formioreport/formioreport.component.d.ts +1 -0
  5. package/{dist/angular-formio/components → components}/formioreport/formioreport.component.d.ts.map +1 -1
  6. package/{dist/angular-formio/core.d.ts → core.d.ts} +3 -1
  7. package/{dist/angular-formio/core.d.ts.map → core.d.ts.map} +1 -1
  8. package/{dist/angular-formio/embed → embed}/app.service.d.ts +1 -1
  9. package/embed/app.service.d.ts.map +1 -0
  10. package/{dist/angular-formio/embed → embed}/builder.component.d.ts +0 -1
  11. package/embed/builder.component.d.ts.map +1 -0
  12. package/{dist/angular-formio/embed → embed}/formio.component.d.ts +0 -1
  13. package/embed/formio.component.d.ts.map +1 -0
  14. package/{dist/angular-formio/embed → embed}/index.d.ts +1 -1
  15. package/embed/index.d.ts.map +1 -0
  16. package/esm2022/FormioBaseComponent.mjs +580 -0
  17. package/{dist/angular-formio/esm2022 → esm2022}/auth/auth.component.mjs +4 -4
  18. package/{dist/angular-formio/esm2022 → esm2022}/auth/auth.config.mjs +4 -4
  19. package/{dist/angular-formio/esm2022 → esm2022}/auth/auth.module.mjs +5 -5
  20. package/esm2022/auth/auth.service.mjs +199 -0
  21. package/{dist/angular-formio/esm2022 → esm2022}/auth/login/login.component.mjs +4 -4
  22. package/{dist/angular-formio/esm2022 → esm2022}/auth/register/register.component.mjs +4 -4
  23. package/{dist/angular-formio/esm2022 → esm2022}/auth/resetpass/resetpass.component.mjs +4 -4
  24. package/esm2022/components/alerts/formio.alerts.component.mjs +28 -0
  25. package/{dist/angular-formio/esm2022 → esm2022}/components/alerts/parse-html-content.pipe.mjs +4 -4
  26. package/esm2022/components/formbuilder/formbuilder.component.mjs +202 -0
  27. package/esm2022/components/formio/formio.component.mjs +43 -0
  28. package/esm2022/components/formioreport/formioreport.component.mjs +89 -0
  29. package/{dist/angular-formio/esm2022 → esm2022}/components/loader/formio.loader.component.mjs +4 -4
  30. package/esm2022/core.mjs +19 -0
  31. package/{dist/angular-formio/esm2022 → esm2022}/custom-tags.service.mjs +4 -4
  32. package/esm2022/embed/app.service.mjs +58 -0
  33. package/esm2022/embed/builder.component.mjs +36 -0
  34. package/{dist/angular-formio/esm2022 → esm2022}/embed/embed.module.mjs +5 -5
  35. package/esm2022/embed/formio.component.mjs +50 -0
  36. package/esm2022/embed/index.mjs +7 -0
  37. package/esm2022/formio.common.mjs +11 -0
  38. package/{dist/angular-formio/esm2022 → esm2022}/formio.config.mjs +4 -4
  39. package/{dist/angular-formio/esm2022 → esm2022}/formio.module.mjs +5 -5
  40. package/{dist/angular-formio/esm2022 → esm2022}/formio.service.mjs +2 -2
  41. package/esm2022/formio.utils.mjs +21 -0
  42. package/esm2022/grid/GridBodyComponent.mjs +89 -0
  43. package/{dist/angular-formio/esm2022 → esm2022}/grid/GridFooterComponent.mjs +4 -4
  44. package/{dist/angular-formio/esm2022 → esm2022}/grid/GridHeaderComponent.mjs +4 -4
  45. package/{dist/angular-formio/esm2022 → esm2022}/grid/form/FormGridBody.component.mjs +4 -4
  46. package/esm2022/grid/form/FormGridFooter.component.mjs +26 -0
  47. package/{dist/angular-formio/esm2022 → esm2022}/grid/form/FormGridHeader.component.mjs +4 -4
  48. package/esm2022/grid/form/time-since.pipe.mjs +37 -0
  49. package/esm2022/grid/grid.component.mjs +257 -0
  50. package/{dist/angular-formio/esm2022 → esm2022}/grid/grid.module.mjs +5 -5
  51. package/{dist/angular-formio/esm2022 → esm2022}/grid/grid.service.mjs +4 -4
  52. package/esm2022/grid/submission/SubmissionGridBody.component.mjs +43 -0
  53. package/esm2022/grid/submission/SubmissionGridFooter.component.mjs +23 -0
  54. package/esm2022/grid/submission/SubmissionGridHeader.component.mjs +63 -0
  55. package/{dist/angular-formio/esm2022 → esm2022}/manager/create/create.component.mjs +4 -4
  56. package/esm2022/manager/delete/delete.component.mjs +42 -0
  57. package/esm2022/manager/edit/edit.component.mjs +125 -0
  58. package/esm2022/manager/form/form.component.mjs +80 -0
  59. package/{dist/angular-formio/esm2022 → esm2022}/manager/form-manager.config.mjs +4 -4
  60. package/{dist/angular-formio/esm2022 → esm2022}/manager/form-manager.module.mjs +5 -5
  61. package/esm2022/manager/form-manager.service.mjs +185 -0
  62. package/esm2022/manager/index/index.component.mjs +108 -0
  63. package/{dist/angular-formio/esm2022 → esm2022}/manager/submission/delete/delete.component.mjs +4 -4
  64. package/{dist/angular-formio/esm2022 → esm2022}/manager/submission/edit/edit.component.mjs +4 -4
  65. package/{dist/angular-formio/esm2022 → esm2022}/manager/submission/index/index.component.mjs +4 -4
  66. package/{dist/angular-formio/esm2022 → esm2022}/manager/submission/submission/submission.component.mjs +4 -4
  67. package/{dist/angular-formio/esm2022 → esm2022}/manager/submission/view/view.component.mjs +4 -4
  68. package/{dist/angular-formio/esm2022 → esm2022}/manager/view/view.component.mjs +4 -4
  69. package/{dist/angular-formio/esm2022 → esm2022}/resource/create/create.component.mjs +4 -4
  70. package/{dist/angular-formio/esm2022 → esm2022}/resource/delete/delete.component.mjs +4 -4
  71. package/{dist/angular-formio/esm2022 → esm2022}/resource/edit/edit.component.mjs +4 -4
  72. package/esm2022/resource/index/index.component.mjs +69 -0
  73. package/esm2022/resource/resource.component.mjs +46 -0
  74. package/{dist/angular-formio/esm2022 → esm2022}/resource/resource.config.mjs +4 -4
  75. package/{dist/angular-formio/esm2022 → esm2022}/resource/resource.module.mjs +5 -5
  76. package/esm2022/resource/resource.service.mjs +229 -0
  77. package/{dist/angular-formio/esm2022 → esm2022}/resource/resources.service.mjs +4 -4
  78. package/{dist/angular-formio/esm2022 → esm2022}/resource/view/view.component.mjs +4 -4
  79. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-auth.mjs +22 -22
  80. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-auth.mjs.map +1 -1
  81. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-embed.mjs +26 -26
  82. package/fesm2022/formio-angular-embed.mjs.map +1 -0
  83. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-grid.mjs +45 -46
  84. package/fesm2022/formio-angular-grid.mjs.map +1 -0
  85. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-manager.mjs +43 -43
  86. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-manager.mjs.map +1 -1
  87. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-resource.mjs +31 -31
  88. package/{dist/angular-formio/fesm2022 → fesm2022}/formio-angular-resource.mjs.map +1 -1
  89. package/fesm2022/formio-angular.mjs +1186 -0
  90. package/fesm2022/formio-angular.mjs.map +1 -0
  91. package/{dist/angular-formio/formio.common.d.ts → formio.common.d.ts} +1 -2
  92. package/formio.common.d.ts.map +1 -0
  93. package/{dist/angular-formio/formio.config.d.ts → formio.config.d.ts} +1 -0
  94. package/formio.config.d.ts.map +1 -0
  95. package/{dist/angular-formio/grid → grid}/submission/SubmissionGridHeader.component.d.ts +1 -1
  96. package/grid/submission/SubmissionGridHeader.component.d.ts.map +1 -0
  97. package/package.json +62 -53
  98. package/.dockerignore +0 -5
  99. package/.editorconfig +0 -13
  100. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  101. package/.github/ISSUE_TEMPLATE/custom-components-support-request.md +0 -15
  102. package/.github/ISSUE_TEMPLATE/question.md +0 -8
  103. package/.github/pull_request_template.md +0 -35
  104. package/.github/workflows/ci.yml +0 -170
  105. package/.travis.yml +0 -4
  106. package/.yo-rc.json +0 -7
  107. package/CHANGELOG.md +0 -1154
  108. package/Dockerfile +0 -20
  109. package/LICENSE +0 -21
  110. package/angular.json +0 -38
  111. package/bs-config.json +0 -11
  112. package/dist/angular-formio/README.md +0 -24
  113. package/dist/angular-formio/embed/app.service.d.ts.map +0 -1
  114. package/dist/angular-formio/embed/builder.component.d.ts.map +0 -1
  115. package/dist/angular-formio/embed/formio.component.d.ts.map +0 -1
  116. package/dist/angular-formio/embed/index.d.ts.map +0 -1
  117. package/dist/angular-formio/esm2022/FormioBaseComponent.mjs +0 -580
  118. package/dist/angular-formio/esm2022/auth/auth.service.mjs +0 -199
  119. package/dist/angular-formio/esm2022/components/alerts/formio.alerts.component.mjs +0 -28
  120. package/dist/angular-formio/esm2022/components/formbuilder/formbuilder.component.mjs +0 -202
  121. package/dist/angular-formio/esm2022/components/formio/formio.component.mjs +0 -43
  122. package/dist/angular-formio/esm2022/components/formioreport/formioreport.component.mjs +0 -89
  123. package/dist/angular-formio/esm2022/core.mjs +0 -18
  124. package/dist/angular-formio/esm2022/embed/app.service.mjs +0 -58
  125. package/dist/angular-formio/esm2022/embed/builder.component.mjs +0 -36
  126. package/dist/angular-formio/esm2022/embed/formio.component.mjs +0 -50
  127. package/dist/angular-formio/esm2022/embed/index.mjs +0 -7
  128. package/dist/angular-formio/esm2022/formio.common.mjs +0 -11
  129. package/dist/angular-formio/esm2022/formio.utils.mjs +0 -21
  130. package/dist/angular-formio/esm2022/grid/GridBodyComponent.mjs +0 -89
  131. package/dist/angular-formio/esm2022/grid/form/FormGridFooter.component.mjs +0 -26
  132. package/dist/angular-formio/esm2022/grid/form/time-since.pipe.mjs +0 -37
  133. package/dist/angular-formio/esm2022/grid/grid.component.mjs +0 -257
  134. package/dist/angular-formio/esm2022/grid/submission/SubmissionGridBody.component.mjs +0 -43
  135. package/dist/angular-formio/esm2022/grid/submission/SubmissionGridFooter.component.mjs +0 -23
  136. package/dist/angular-formio/esm2022/grid/submission/SubmissionGridHeader.component.mjs +0 -63
  137. package/dist/angular-formio/esm2022/manager/delete/delete.component.mjs +0 -42
  138. package/dist/angular-formio/esm2022/manager/edit/edit.component.mjs +0 -125
  139. package/dist/angular-formio/esm2022/manager/form/form.component.mjs +0 -80
  140. package/dist/angular-formio/esm2022/manager/form-manager.service.mjs +0 -185
  141. package/dist/angular-formio/esm2022/manager/index/index.component.mjs +0 -108
  142. package/dist/angular-formio/esm2022/resource/index/index.component.mjs +0 -69
  143. package/dist/angular-formio/esm2022/resource/resource.component.mjs +0 -46
  144. package/dist/angular-formio/esm2022/resource/resource.service.mjs +0 -229
  145. package/dist/angular-formio/fesm2022/formio-angular-embed.mjs.map +0 -1
  146. package/dist/angular-formio/fesm2022/formio-angular-grid.mjs.map +0 -1
  147. package/dist/angular-formio/fesm2022/formio-angular.mjs +0 -1187
  148. package/dist/angular-formio/fesm2022/formio-angular.mjs.map +0 -1
  149. package/dist/angular-formio/formio.common.d.ts.map +0 -1
  150. package/dist/angular-formio/formio.config.d.ts.map +0 -1
  151. package/dist/angular-formio/grid/submission/SubmissionGridHeader.component.d.ts.map +0 -1
  152. package/projects/angular-formio/README.md +0 -24
  153. package/projects/angular-formio/auth/ng-package.json +0 -5
  154. package/projects/angular-formio/auth/src/auth.component.html +0 -11
  155. package/projects/angular-formio/auth/src/auth.component.ts +0 -5
  156. package/projects/angular-formio/auth/src/auth.config.ts +0 -72
  157. package/projects/angular-formio/auth/src/auth.module.ts +0 -33
  158. package/projects/angular-formio/auth/src/auth.routes.ts +0 -34
  159. package/projects/angular-formio/auth/src/auth.service.ts +0 -221
  160. package/projects/angular-formio/auth/src/index.ts +0 -8
  161. package/projects/angular-formio/auth/src/login/login.component.html +0 -1
  162. package/projects/angular-formio/auth/src/login/login.component.ts +0 -11
  163. package/projects/angular-formio/auth/src/public_api.ts +0 -5
  164. package/projects/angular-formio/auth/src/register/register.component.html +0 -1
  165. package/projects/angular-formio/auth/src/register/register.component.ts +0 -11
  166. package/projects/angular-formio/auth/src/resetpass/resetpass.component.html +0 -1
  167. package/projects/angular-formio/auth/src/resetpass/resetpass.component.ts +0 -8
  168. package/projects/angular-formio/embed/ng-package.json +0 -5
  169. package/projects/angular-formio/embed/src/app.service.ts +0 -59
  170. package/projects/angular-formio/embed/src/builder.component.ts +0 -19
  171. package/projects/angular-formio/embed/src/embed.module.ts +0 -23
  172. package/projects/angular-formio/embed/src/formio.component.ts +0 -27
  173. package/projects/angular-formio/embed/src/index.ts +0 -6
  174. package/projects/angular-formio/grid/ng-package.json +0 -5
  175. package/projects/angular-formio/grid/src/GridBodyComponent.ts +0 -80
  176. package/projects/angular-formio/grid/src/GridFooterComponent.ts +0 -25
  177. package/projects/angular-formio/grid/src/GridHeaderComponent.ts +0 -25
  178. package/projects/angular-formio/grid/src/form/FormGridBody.component.html +0 -22
  179. package/projects/angular-formio/grid/src/form/FormGridBody.component.scss +0 -4
  180. package/projects/angular-formio/grid/src/form/FormGridBody.component.ts +0 -46
  181. package/projects/angular-formio/grid/src/form/FormGridFooter.component.html +0 -21
  182. package/projects/angular-formio/grid/src/form/FormGridFooter.component.ts +0 -23
  183. package/projects/angular-formio/grid/src/form/FormGridHeader.component.html +0 -18
  184. package/projects/angular-formio/grid/src/form/FormGridHeader.component.ts +0 -24
  185. package/projects/angular-formio/grid/src/form/index.ts +0 -8
  186. package/projects/angular-formio/grid/src/form/time-since.pipe.ts +0 -31
  187. package/projects/angular-formio/grid/src/grid.component.html +0 -18
  188. package/projects/angular-formio/grid/src/grid.component.scss +0 -9
  189. package/projects/angular-formio/grid/src/grid.component.ts +0 -242
  190. package/projects/angular-formio/grid/src/grid.footer.scss +0 -14
  191. package/projects/angular-formio/grid/src/grid.module.ts +0 -49
  192. package/projects/angular-formio/grid/src/grid.service.ts +0 -16
  193. package/projects/angular-formio/grid/src/index.ts +0 -12
  194. package/projects/angular-formio/grid/src/public_api.ts +0 -5
  195. package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html +0 -7
  196. package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts +0 -39
  197. package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html +0 -18
  198. package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts +0 -20
  199. package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html +0 -11
  200. package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts +0 -72
  201. package/projects/angular-formio/grid/src/submission/index.ts +0 -8
  202. package/projects/angular-formio/grid/src/types/grid-column.ts +0 -7
  203. package/projects/angular-formio/grid/src/types/grid-footer-positions.ts +0 -5
  204. package/projects/angular-formio/grid/src/types/grid-header.ts +0 -14
  205. package/projects/angular-formio/karma.conf.js +0 -32
  206. package/projects/angular-formio/manager/ng-package.json +0 -5
  207. package/projects/angular-formio/manager/src/create/create.component.ts +0 -11
  208. package/projects/angular-formio/manager/src/delete/delete.component.html +0 -6
  209. package/projects/angular-formio/manager/src/delete/delete.component.ts +0 -37
  210. package/projects/angular-formio/manager/src/edit/edit.component.html +0 -19
  211. package/projects/angular-formio/manager/src/edit/edit.component.ts +0 -110
  212. package/projects/angular-formio/manager/src/form/form.component.html +0 -32
  213. package/projects/angular-formio/manager/src/form/form.component.ts +0 -73
  214. package/projects/angular-formio/manager/src/form-manager.config.ts +0 -31
  215. package/projects/angular-formio/manager/src/form-manager.module.ts +0 -54
  216. package/projects/angular-formio/manager/src/form-manager.routes.ts +0 -75
  217. package/projects/angular-formio/manager/src/form-manager.service.ts +0 -190
  218. package/projects/angular-formio/manager/src/index/index.component.html +0 -14
  219. package/projects/angular-formio/manager/src/index/index.component.scss +0 -22
  220. package/projects/angular-formio/manager/src/index/index.component.ts +0 -100
  221. package/projects/angular-formio/manager/src/index.ts +0 -16
  222. package/projects/angular-formio/manager/src/public_api.ts +0 -5
  223. package/projects/angular-formio/manager/src/submission/delete/delete.component.html +0 -6
  224. package/projects/angular-formio/manager/src/submission/delete/delete.component.ts +0 -26
  225. package/projects/angular-formio/manager/src/submission/edit/edit.component.html +0 -7
  226. package/projects/angular-formio/manager/src/submission/edit/edit.component.ts +0 -18
  227. package/projects/angular-formio/manager/src/submission/index/index.component.html +0 -1
  228. package/projects/angular-formio/manager/src/submission/index/index.component.ts +0 -18
  229. package/projects/angular-formio/manager/src/submission/submission/submission.component.html +0 -8
  230. package/projects/angular-formio/manager/src/submission/submission/submission.component.ts +0 -24
  231. package/projects/angular-formio/manager/src/submission/view/view.component.html +0 -7
  232. package/projects/angular-formio/manager/src/submission/view/view.component.ts +0 -9
  233. package/projects/angular-formio/manager/src/view/view.component.html +0 -11
  234. package/projects/angular-formio/manager/src/view/view.component.ts +0 -44
  235. package/projects/angular-formio/ng-package.json +0 -7
  236. package/projects/angular-formio/package.json +0 -37
  237. package/projects/angular-formio/resource/ng-package.json +0 -5
  238. package/projects/angular-formio/resource/src/create/create.component.html +0 -13
  239. package/projects/angular-formio/resource/src/create/create.component.scss +0 -3
  240. package/projects/angular-formio/resource/src/create/create.component.ts +0 -37
  241. package/projects/angular-formio/resource/src/delete/delete.component.html +0 -5
  242. package/projects/angular-formio/resource/src/delete/delete.component.ts +0 -24
  243. package/projects/angular-formio/resource/src/edit/edit.component.html +0 -7
  244. package/projects/angular-formio/resource/src/edit/edit.component.ts +0 -35
  245. package/projects/angular-formio/resource/src/index/index.component.html +0 -10
  246. package/projects/angular-formio/resource/src/index/index.component.ts +0 -64
  247. package/projects/angular-formio/resource/src/index.js +0 -24
  248. package/projects/angular-formio/resource/src/index.ts +0 -11
  249. package/projects/angular-formio/resource/src/public_api.ts +0 -5
  250. package/projects/angular-formio/resource/src/resource.component.html +0 -7
  251. package/projects/angular-formio/resource/src/resource.component.ts +0 -48
  252. package/projects/angular-formio/resource/src/resource.config.ts +0 -17
  253. package/projects/angular-formio/resource/src/resource.module.ts +0 -43
  254. package/projects/angular-formio/resource/src/resource.routes.ts +0 -43
  255. package/projects/angular-formio/resource/src/resource.service.ts +0 -258
  256. package/projects/angular-formio/resource/src/resources.service.ts +0 -24
  257. package/projects/angular-formio/resource/src/view/view.component.html +0 -6
  258. package/projects/angular-formio/resource/src/view/view.component.ts +0 -19
  259. package/projects/angular-formio/src/FormioBaseComponent.ts +0 -554
  260. package/projects/angular-formio/src/components/alerts/formio.alerts.component.html +0 -3
  261. package/projects/angular-formio/src/components/alerts/formio.alerts.component.ts +0 -19
  262. package/projects/angular-formio/src/components/alerts/formio.alerts.ts +0 -21
  263. package/projects/angular-formio/src/components/alerts/parse-html-content.pipe.ts +0 -15
  264. package/projects/angular-formio/src/components/formbuilder/formbuilder.component.html +0 -1
  265. package/projects/angular-formio/src/components/formbuilder/formbuilder.component.ts +0 -213
  266. package/projects/angular-formio/src/components/formio/formio.component.html +0 -8
  267. package/projects/angular-formio/src/components/formio/formio.component.ts +0 -33
  268. package/projects/angular-formio/src/components/formioreport/formioreport.component.html +0 -8
  269. package/projects/angular-formio/src/components/formioreport/formioreport.component.ts +0 -95
  270. package/projects/angular-formio/src/components/loader/formio.loader.component.html +0 -3
  271. package/projects/angular-formio/src/components/loader/formio.loader.component.scss +0 -26
  272. package/projects/angular-formio/src/components/loader/formio.loader.component.ts +0 -10
  273. package/projects/angular-formio/src/core.ts +0 -25
  274. package/projects/angular-formio/src/custom-tags.service.ts +0 -9
  275. package/projects/angular-formio/src/formio-promise.service.ts +0 -36
  276. package/projects/angular-formio/src/formio.common.ts +0 -91
  277. package/projects/angular-formio/src/formio.config.ts +0 -26
  278. package/projects/angular-formio/src/formio.module.ts +0 -38
  279. package/projects/angular-formio/src/formio.service.ts +0 -57
  280. package/projects/angular-formio/src/formio.utils.ts +0 -23
  281. package/projects/angular-formio/src/index.ts +0 -3
  282. package/projects/angular-formio/src/public-api.ts +0 -5
  283. package/projects/angular-formio/src/test.ts +0 -28
  284. package/projects/angular-formio/src/types/alerts-position.ts +0 -6
  285. package/projects/angular-formio/src/types/formio-metadata.ts +0 -10
  286. package/projects/angular-formio/src/types/formio-submission.ts +0 -20
  287. package/projects/angular-formio/tsconfig.lib.json +0 -27
  288. package/projects/angular-formio/tsconfig.lib.prod.json +0 -8
  289. package/projects/angular-formio/tsconfig.spec.json +0 -17
  290. package/projects/angular-formio/tslint.json +0 -17
  291. package/tsconfig.json +0 -39
  292. package/tslint.json +0 -140
  293. /package/{dist/angular-formio/auth → auth}/auth.component.d.ts +0 -0
  294. /package/{dist/angular-formio/auth → auth}/auth.component.d.ts.map +0 -0
  295. /package/{dist/angular-formio/auth → auth}/auth.config.d.ts +0 -0
  296. /package/{dist/angular-formio/auth → auth}/auth.config.d.ts.map +0 -0
  297. /package/{dist/angular-formio/auth → auth}/auth.module.d.ts +0 -0
  298. /package/{dist/angular-formio/auth → auth}/auth.module.d.ts.map +0 -0
  299. /package/{dist/angular-formio/auth → auth}/auth.routes.d.ts +0 -0
  300. /package/{dist/angular-formio/auth → auth}/auth.routes.d.ts.map +0 -0
  301. /package/{dist/angular-formio/auth → auth}/auth.service.d.ts +0 -0
  302. /package/{dist/angular-formio/auth → auth}/auth.service.d.ts.map +0 -0
  303. /package/{dist/angular-formio/auth → auth}/formio-angular-auth.d.ts.map +0 -0
  304. /package/{dist/angular-formio/auth → auth}/index.d.ts +0 -0
  305. /package/{dist/angular-formio/auth → auth}/index.d.ts.map +0 -0
  306. /package/{dist/angular-formio/auth → auth}/login/login.component.d.ts +0 -0
  307. /package/{dist/angular-formio/auth → auth}/login/login.component.d.ts.map +0 -0
  308. /package/{dist/angular-formio/auth → auth}/register/register.component.d.ts +0 -0
  309. /package/{dist/angular-formio/auth → auth}/register/register.component.d.ts.map +0 -0
  310. /package/{dist/angular-formio/auth → auth}/resetpass/resetpass.component.d.ts +0 -0
  311. /package/{dist/angular-formio/auth → auth}/resetpass/resetpass.component.d.ts.map +0 -0
  312. /package/{dist/angular-formio/components → components}/alerts/formio.alerts.component.d.ts +0 -0
  313. /package/{dist/angular-formio/components → components}/alerts/formio.alerts.component.d.ts.map +0 -0
  314. /package/{dist/angular-formio/components → components}/alerts/formio.alerts.d.ts +0 -0
  315. /package/{dist/angular-formio/components → components}/alerts/formio.alerts.d.ts.map +0 -0
  316. /package/{dist/angular-formio/components → components}/alerts/parse-html-content.pipe.d.ts +0 -0
  317. /package/{dist/angular-formio/components → components}/alerts/parse-html-content.pipe.d.ts.map +0 -0
  318. /package/{dist/angular-formio/components → components}/formbuilder/formbuilder.component.d.ts +0 -0
  319. /package/{dist/angular-formio/components → components}/formbuilder/formbuilder.component.d.ts.map +0 -0
  320. /package/{dist/angular-formio/components → components}/formio/formio.component.d.ts +0 -0
  321. /package/{dist/angular-formio/components → components}/formio/formio.component.d.ts.map +0 -0
  322. /package/{dist/angular-formio/components → components}/loader/formio.loader.component.d.ts +0 -0
  323. /package/{dist/angular-formio/components → components}/loader/formio.loader.component.d.ts.map +0 -0
  324. /package/{dist/angular-formio/custom-tags.service.d.ts → custom-tags.service.d.ts} +0 -0
  325. /package/{dist/angular-formio/custom-tags.service.d.ts.map → custom-tags.service.d.ts.map} +0 -0
  326. /package/{dist/angular-formio/embed → embed}/embed.module.d.ts +0 -0
  327. /package/{dist/angular-formio/embed → embed}/embed.module.d.ts.map +0 -0
  328. /package/{dist/angular-formio/embed → embed}/formio-angular-embed.d.ts.map +0 -0
  329. /package/{dist/angular-formio/esm2022 → esm2022}/auth/auth.routes.mjs +0 -0
  330. /package/{dist/angular-formio/esm2022 → esm2022}/auth/formio-angular-auth.mjs +0 -0
  331. /package/{dist/angular-formio/esm2022 → esm2022}/auth/index.mjs +0 -0
  332. /package/{dist/angular-formio/esm2022 → esm2022}/components/alerts/formio.alerts.mjs +0 -0
  333. /package/{dist/angular-formio/esm2022 → esm2022}/embed/formio-angular-embed.mjs +0 -0
  334. /package/{dist/angular-formio/esm2022 → esm2022}/formio-angular.mjs +0 -0
  335. /package/{dist/angular-formio/esm2022 → esm2022}/formio-promise.service.mjs +0 -0
  336. /package/{dist/angular-formio/esm2022 → esm2022}/grid/form/index.mjs +0 -0
  337. /package/{dist/angular-formio/esm2022 → esm2022}/grid/formio-angular-grid.mjs +0 -0
  338. /package/{dist/angular-formio/esm2022 → esm2022}/grid/index.mjs +0 -0
  339. /package/{dist/angular-formio/esm2022 → esm2022}/grid/submission/index.mjs +0 -0
  340. /package/{dist/angular-formio/esm2022 → esm2022}/grid/types/grid-column.mjs +0 -0
  341. /package/{dist/angular-formio/esm2022 → esm2022}/grid/types/grid-footer-positions.mjs +0 -0
  342. /package/{dist/angular-formio/esm2022 → esm2022}/grid/types/grid-header.mjs +0 -0
  343. /package/{dist/angular-formio/esm2022 → esm2022}/index.mjs +0 -0
  344. /package/{dist/angular-formio/esm2022 → esm2022}/manager/form-manager.routes.mjs +0 -0
  345. /package/{dist/angular-formio/esm2022 → esm2022}/manager/formio-angular-manager.mjs +0 -0
  346. /package/{dist/angular-formio/esm2022 → esm2022}/manager/index.mjs +0 -0
  347. /package/{dist/angular-formio/esm2022 → esm2022}/resource/formio-angular-resource.mjs +0 -0
  348. /package/{dist/angular-formio/esm2022 → esm2022}/resource/index.mjs +0 -0
  349. /package/{dist/angular-formio/esm2022 → esm2022}/resource/resource.routes.mjs +0 -0
  350. /package/{dist/angular-formio/esm2022 → esm2022}/types/alerts-position.mjs +0 -0
  351. /package/{dist/angular-formio/esm2022 → esm2022}/types/formio-metadata.mjs +0 -0
  352. /package/{dist/angular-formio/esm2022 → esm2022}/types/formio-submission.mjs +0 -0
  353. /package/{dist/angular-formio/formio-angular.d.ts.map → formio-angular.d.ts.map} +0 -0
  354. /package/{dist/angular-formio/formio-promise.service.d.ts → formio-promise.service.d.ts} +0 -0
  355. /package/{dist/angular-formio/formio-promise.service.d.ts.map → formio-promise.service.d.ts.map} +0 -0
  356. /package/{dist/angular-formio/formio.module.d.ts → formio.module.d.ts} +0 -0
  357. /package/{dist/angular-formio/formio.module.d.ts.map → formio.module.d.ts.map} +0 -0
  358. /package/{dist/angular-formio/formio.service.d.ts → formio.service.d.ts} +0 -0
  359. /package/{dist/angular-formio/formio.service.d.ts.map → formio.service.d.ts.map} +0 -0
  360. /package/{dist/angular-formio/formio.utils.d.ts → formio.utils.d.ts} +0 -0
  361. /package/{dist/angular-formio/formio.utils.d.ts.map → formio.utils.d.ts.map} +0 -0
  362. /package/{dist/angular-formio/grid → grid}/GridBodyComponent.d.ts +0 -0
  363. /package/{dist/angular-formio/grid → grid}/GridBodyComponent.d.ts.map +0 -0
  364. /package/{dist/angular-formio/grid → grid}/GridFooterComponent.d.ts +0 -0
  365. /package/{dist/angular-formio/grid → grid}/GridFooterComponent.d.ts.map +0 -0
  366. /package/{dist/angular-formio/grid → grid}/GridHeaderComponent.d.ts +0 -0
  367. /package/{dist/angular-formio/grid → grid}/GridHeaderComponent.d.ts.map +0 -0
  368. /package/{dist/angular-formio/grid → grid}/form/FormGridBody.component.d.ts +0 -0
  369. /package/{dist/angular-formio/grid → grid}/form/FormGridBody.component.d.ts.map +0 -0
  370. /package/{dist/angular-formio/grid → grid}/form/FormGridFooter.component.d.ts +0 -0
  371. /package/{dist/angular-formio/grid → grid}/form/FormGridFooter.component.d.ts.map +0 -0
  372. /package/{dist/angular-formio/grid → grid}/form/FormGridHeader.component.d.ts +0 -0
  373. /package/{dist/angular-formio/grid → grid}/form/FormGridHeader.component.d.ts.map +0 -0
  374. /package/{dist/angular-formio/grid → grid}/form/index.d.ts +0 -0
  375. /package/{dist/angular-formio/grid → grid}/form/index.d.ts.map +0 -0
  376. /package/{dist/angular-formio/grid → grid}/form/time-since.pipe.d.ts +0 -0
  377. /package/{dist/angular-formio/grid → grid}/form/time-since.pipe.d.ts.map +0 -0
  378. /package/{dist/angular-formio/grid → grid}/formio-angular-grid.d.ts.map +0 -0
  379. /package/{dist/angular-formio/grid → grid}/grid.component.d.ts +0 -0
  380. /package/{dist/angular-formio/grid → grid}/grid.component.d.ts.map +0 -0
  381. /package/{dist/angular-formio/grid → grid}/grid.module.d.ts +0 -0
  382. /package/{dist/angular-formio/grid → grid}/grid.module.d.ts.map +0 -0
  383. /package/{dist/angular-formio/grid → grid}/grid.service.d.ts +0 -0
  384. /package/{dist/angular-formio/grid → grid}/grid.service.d.ts.map +0 -0
  385. /package/{dist/angular-formio/grid → grid}/index.d.ts +0 -0
  386. /package/{dist/angular-formio/grid → grid}/index.d.ts.map +0 -0
  387. /package/{dist/angular-formio/grid → grid}/submission/SubmissionGridBody.component.d.ts +0 -0
  388. /package/{dist/angular-formio/grid → grid}/submission/SubmissionGridBody.component.d.ts.map +0 -0
  389. /package/{dist/angular-formio/grid → grid}/submission/SubmissionGridFooter.component.d.ts +0 -0
  390. /package/{dist/angular-formio/grid → grid}/submission/SubmissionGridFooter.component.d.ts.map +0 -0
  391. /package/{dist/angular-formio/grid → grid}/submission/index.d.ts +0 -0
  392. /package/{dist/angular-formio/grid → grid}/submission/index.d.ts.map +0 -0
  393. /package/{dist/angular-formio/grid → grid}/types/grid-column.d.ts +0 -0
  394. /package/{dist/angular-formio/grid → grid}/types/grid-column.d.ts.map +0 -0
  395. /package/{dist/angular-formio/grid → grid}/types/grid-footer-positions.d.ts +0 -0
  396. /package/{dist/angular-formio/grid → grid}/types/grid-footer-positions.d.ts.map +0 -0
  397. /package/{dist/angular-formio/grid → grid}/types/grid-header.d.ts +0 -0
  398. /package/{dist/angular-formio/grid → grid}/types/grid-header.d.ts.map +0 -0
  399. /package/{dist/angular-formio/index.d.ts → index.d.ts} +0 -0
  400. /package/{dist/angular-formio/index.d.ts.map → index.d.ts.map} +0 -0
  401. /package/{dist/angular-formio/manager → manager}/create/create.component.d.ts +0 -0
  402. /package/{dist/angular-formio/manager → manager}/create/create.component.d.ts.map +0 -0
  403. /package/{dist/angular-formio/manager → manager}/delete/delete.component.d.ts +0 -0
  404. /package/{dist/angular-formio/manager → manager}/delete/delete.component.d.ts.map +0 -0
  405. /package/{dist/angular-formio/manager → manager}/edit/edit.component.d.ts +0 -0
  406. /package/{dist/angular-formio/manager → manager}/edit/edit.component.d.ts.map +0 -0
  407. /package/{dist/angular-formio/manager → manager}/form/form.component.d.ts +0 -0
  408. /package/{dist/angular-formio/manager → manager}/form/form.component.d.ts.map +0 -0
  409. /package/{dist/angular-formio/manager → manager}/form-manager.config.d.ts +0 -0
  410. /package/{dist/angular-formio/manager → manager}/form-manager.config.d.ts.map +0 -0
  411. /package/{dist/angular-formio/manager → manager}/form-manager.module.d.ts +0 -0
  412. /package/{dist/angular-formio/manager → manager}/form-manager.module.d.ts.map +0 -0
  413. /package/{dist/angular-formio/manager → manager}/form-manager.routes.d.ts +0 -0
  414. /package/{dist/angular-formio/manager → manager}/form-manager.routes.d.ts.map +0 -0
  415. /package/{dist/angular-formio/manager → manager}/form-manager.service.d.ts +0 -0
  416. /package/{dist/angular-formio/manager → manager}/form-manager.service.d.ts.map +0 -0
  417. /package/{dist/angular-formio/manager → manager}/formio-angular-manager.d.ts.map +0 -0
  418. /package/{dist/angular-formio/manager → manager}/index/index.component.d.ts +0 -0
  419. /package/{dist/angular-formio/manager → manager}/index/index.component.d.ts.map +0 -0
  420. /package/{dist/angular-formio/manager → manager}/index.d.ts +0 -0
  421. /package/{dist/angular-formio/manager → manager}/index.d.ts.map +0 -0
  422. /package/{dist/angular-formio/manager → manager}/submission/delete/delete.component.d.ts +0 -0
  423. /package/{dist/angular-formio/manager → manager}/submission/delete/delete.component.d.ts.map +0 -0
  424. /package/{dist/angular-formio/manager → manager}/submission/edit/edit.component.d.ts +0 -0
  425. /package/{dist/angular-formio/manager → manager}/submission/edit/edit.component.d.ts.map +0 -0
  426. /package/{dist/angular-formio/manager → manager}/submission/index/index.component.d.ts +0 -0
  427. /package/{dist/angular-formio/manager → manager}/submission/index/index.component.d.ts.map +0 -0
  428. /package/{dist/angular-formio/manager → manager}/submission/submission/submission.component.d.ts +0 -0
  429. /package/{dist/angular-formio/manager → manager}/submission/submission/submission.component.d.ts.map +0 -0
  430. /package/{dist/angular-formio/manager → manager}/submission/view/view.component.d.ts +0 -0
  431. /package/{dist/angular-formio/manager → manager}/submission/view/view.component.d.ts.map +0 -0
  432. /package/{dist/angular-formio/manager → manager}/view/view.component.d.ts +0 -0
  433. /package/{dist/angular-formio/manager → manager}/view/view.component.d.ts.map +0 -0
  434. /package/{dist/angular-formio/resource → resource}/create/create.component.d.ts +0 -0
  435. /package/{dist/angular-formio/resource → resource}/create/create.component.d.ts.map +0 -0
  436. /package/{dist/angular-formio/resource → resource}/delete/delete.component.d.ts +0 -0
  437. /package/{dist/angular-formio/resource → resource}/delete/delete.component.d.ts.map +0 -0
  438. /package/{dist/angular-formio/resource → resource}/edit/edit.component.d.ts +0 -0
  439. /package/{dist/angular-formio/resource → resource}/edit/edit.component.d.ts.map +0 -0
  440. /package/{dist/angular-formio/resource → resource}/formio-angular-resource.d.ts.map +0 -0
  441. /package/{dist/angular-formio/resource → resource}/index/index.component.d.ts +0 -0
  442. /package/{dist/angular-formio/resource → resource}/index/index.component.d.ts.map +0 -0
  443. /package/{dist/angular-formio/resource → resource}/index.d.ts +0 -0
  444. /package/{dist/angular-formio/resource → resource}/index.d.ts.map +0 -0
  445. /package/{dist/angular-formio/resource → resource}/resource.component.d.ts +0 -0
  446. /package/{dist/angular-formio/resource → resource}/resource.component.d.ts.map +0 -0
  447. /package/{dist/angular-formio/resource → resource}/resource.config.d.ts +0 -0
  448. /package/{dist/angular-formio/resource → resource}/resource.config.d.ts.map +0 -0
  449. /package/{dist/angular-formio/resource → resource}/resource.module.d.ts +0 -0
  450. /package/{dist/angular-formio/resource → resource}/resource.module.d.ts.map +0 -0
  451. /package/{dist/angular-formio/resource → resource}/resource.routes.d.ts +0 -0
  452. /package/{dist/angular-formio/resource → resource}/resource.routes.d.ts.map +0 -0
  453. /package/{dist/angular-formio/resource → resource}/resource.service.d.ts +0 -0
  454. /package/{dist/angular-formio/resource → resource}/resource.service.d.ts.map +0 -0
  455. /package/{dist/angular-formio/resource → resource}/resources.service.d.ts +0 -0
  456. /package/{dist/angular-formio/resource → resource}/resources.service.d.ts.map +0 -0
  457. /package/{dist/angular-formio/resource → resource}/view/view.component.d.ts +0 -0
  458. /package/{dist/angular-formio/resource → resource}/view/view.component.d.ts.map +0 -0
  459. /package/{dist/angular-formio/types → types}/alerts-position.d.ts +0 -0
  460. /package/{dist/angular-formio/types → types}/alerts-position.d.ts.map +0 -0
  461. /package/{dist/angular-formio/types → types}/formio-metadata.d.ts +0 -0
  462. /package/{dist/angular-formio/types → types}/formio-metadata.d.ts.map +0 -0
  463. /package/{dist/angular-formio/types → types}/formio-submission.d.ts +0 -0
  464. /package/{dist/angular-formio/types → types}/formio-submission.d.ts.map +0 -0
@@ -1,125 +0,0 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { FormBuilderComponent } from '@formio/angular';
3
- import _ from 'lodash';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../form-manager.service";
6
- import * as i2 from "@angular/router";
7
- import * as i3 from "../form-manager.config";
8
- import * as i4 from "@formio/angular";
9
- import * as i5 from "@angular/common";
10
- import * as i6 from "@angular/forms";
11
- export class FormManagerEditComponent {
12
- service;
13
- router;
14
- route;
15
- config;
16
- ref;
17
- alerts;
18
- builder;
19
- formTitle;
20
- formType;
21
- form;
22
- loading;
23
- formReady;
24
- editMode;
25
- constructor(service, router, route, config, ref, alerts) {
26
- this.service = service;
27
- this.router = router;
28
- this.route = route;
29
- this.config = config;
30
- this.ref = ref;
31
- this.alerts = alerts;
32
- this.form = { components: [] };
33
- this.formReady = false;
34
- this.loading = false;
35
- this.editMode = false;
36
- }
37
- initBuilder(editing) {
38
- if (editing) {
39
- this.loading = true;
40
- this.editMode = true;
41
- return this.service.formReady.then(() => {
42
- this.form = this.service.form;
43
- this.formTitle.nativeElement.value = this.service.form.title;
44
- this.formType.nativeElement.value = this.service.form.display || 'form';
45
- this.formReady = true;
46
- this.loading = false;
47
- this.ref.detectChanges();
48
- return true;
49
- }).catch(err => {
50
- this.alerts.setAlert({ type: 'danger', message: (err.message || err) });
51
- this.loading = false;
52
- this.ref.detectChanges();
53
- this.formReady = true;
54
- });
55
- }
56
- else {
57
- this.formReady = true;
58
- return Promise.resolve(true);
59
- }
60
- }
61
- ngAfterViewInit() {
62
- this.route.url.subscribe(url => {
63
- setTimeout(() => this.initBuilder((url[0].path === 'edit')), 0);
64
- });
65
- }
66
- onDisplaySelect(event) {
67
- this.builder.setDisplay(event.target.value);
68
- }
69
- saveForm() {
70
- this.loading = true;
71
- this.form = _.cloneDeep(this.builder.formio.schema);
72
- this.form.title = this.formTitle.nativeElement.value.trim();
73
- this.form.display = this.formType.nativeElement.value;
74
- if (this.config.tag) {
75
- this.form.tags = this.form.tags || [];
76
- this.form.tags.push(this.config.tag);
77
- this.form.tags = _.uniq(this.form.tags);
78
- }
79
- if (this.config.type) {
80
- this.form.type = this.config.type;
81
- }
82
- if (!this.form._id) {
83
- this.form.name = _.camelCase(this.form.title).toLowerCase();
84
- this.form.path = this.form.name;
85
- }
86
- return this.service.formio.saveForm(this.form).then(form => {
87
- this.form = this.service.setForm(form);
88
- this.loading = false;
89
- return this.form;
90
- }).catch(err => {
91
- this.loading = false;
92
- // Catch if a form is returned as an error. This is a conflict.
93
- if (err._id && err.type) {
94
- throw err;
95
- }
96
- this.alerts.setAlert({ type: 'danger', message: (err.message || err) });
97
- });
98
- }
99
- onSave() {
100
- return this.saveForm().then((form) => {
101
- if (this.editMode) {
102
- this.router.navigate(['../', 'view'], { relativeTo: this.route });
103
- }
104
- else {
105
- this.router.navigate(['../', form._id, 'view'], { relativeTo: this.route });
106
- }
107
- });
108
- }
109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerEditComponent, deps: [{ token: i1.FormManagerService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.FormManagerConfig }, { token: i0.ChangeDetectorRef }, { token: i4.FormioAlerts }], target: i0.ɵɵFactoryTarget.Component });
110
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FormManagerEditComponent, selector: "ng-component", viewQueries: [{ propertyName: "builder", first: true, predicate: FormBuilderComponent, descendants: true }, { propertyName: "formTitle", first: true, predicate: ["title"], descendants: true }, { propertyName: "formType", first: true, predicate: ["type"], descendants: true }], ngImport: i0, template: "<div class=\"loader\" *ngIf=\"loading\"></div>\n<div class=\"form-group row mb-2\">\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" id=\"formTitle\" placeholder=\"Enter a Title\" #title>\n </div>\n <div class=\"col-sm-2\">\n <select class=\"form-control\" id=\"formSelect\" (change)=\"onDisplaySelect($event)\" #type>\n <option value=\"form\">Form</option>\n <option value=\"wizard\">Wizard</option>\n <option value=\"pdf\">PDF</option>\n </select>\n </div>\n <div class=\"col-sm-2\">\n <button class=\"btn btn-primary btn-block\" (click)=\"onSave()\"><i class=\"bi bi-save me-2\"></i>Save Form</button>\n </div>\n</div>\n<formio-alerts [alerts]=\"alerts\"></formio-alerts>\n<form-builder *ngIf=\"formReady\" [formbuilder]=\"config.builder\" [form]=\"form\" #builder></form-builder>\n<button class=\"btn btn-primary\" style=\"margin-top: 10px;\" (click)=\"onSave()\">Save Form</button>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FormBuilderComponent, selector: "form-builder", inputs: ["form", "options", "formbuilder", "noeval", "refresh", "rebuild"], outputs: ["change"] }, { kind: "component", type: i4.FormioAlertsComponent, selector: "formio-alerts", inputs: ["alerts"], outputs: ["focusComponent"] }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerEditComponent, decorators: [{
113
- type: Component,
114
- args: [{ template: "<div class=\"loader\" *ngIf=\"loading\"></div>\n<div class=\"form-group row mb-2\">\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" id=\"formTitle\" placeholder=\"Enter a Title\" #title>\n </div>\n <div class=\"col-sm-2\">\n <select class=\"form-control\" id=\"formSelect\" (change)=\"onDisplaySelect($event)\" #type>\n <option value=\"form\">Form</option>\n <option value=\"wizard\">Wizard</option>\n <option value=\"pdf\">PDF</option>\n </select>\n </div>\n <div class=\"col-sm-2\">\n <button class=\"btn btn-primary btn-block\" (click)=\"onSave()\"><i class=\"bi bi-save me-2\"></i>Save Form</button>\n </div>\n</div>\n<formio-alerts [alerts]=\"alerts\"></formio-alerts>\n<form-builder *ngIf=\"formReady\" [formbuilder]=\"config.builder\" [form]=\"form\" #builder></form-builder>\n<button class=\"btn btn-primary\" style=\"margin-top: 10px;\" (click)=\"onSave()\">Save Form</button>\n" }]
115
- }], ctorParameters: () => [{ type: i1.FormManagerService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.FormManagerConfig }, { type: i0.ChangeDetectorRef }, { type: i4.FormioAlerts }], propDecorators: { builder: [{
116
- type: ViewChild,
117
- args: [FormBuilderComponent, { static: false }]
118
- }], formTitle: [{
119
- type: ViewChild,
120
- args: ['title', { static: false }]
121
- }], formType: [{
122
- type: ViewChild,
123
- args: ['type', { static: false }]
124
- }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9tYW5hZ2VyL3NyYy9lZGl0L2VkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvZWRpdC9lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUtuRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBS3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFVMUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBZHlDLE9BQU8sQ0FBdUI7SUFDM0MsU0FBUyxDQUFhO0lBQ3ZCLFFBQVEsQ0FBYTtJQUNsRCxJQUFJLENBQU07SUFDVixPQUFPLENBQVU7SUFDakIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsQ0FBVTtJQUV6QixZQUNTLE9BQTJCLEVBQzNCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixNQUF5QixFQUN6QixHQUFzQixFQUN0QixNQUFvQjtRQUxwQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUUzQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FB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QUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7YUFDakU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQzthQUMzRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FqR1Usd0JBQXdCOzJGQUF4Qix3QkFBd0IsNkZBQ3hCLG9CQUFvQix3TkNaakMsbTdCQW1CQTs7MkZEUmEsd0JBQXdCO2tCQUhwQyxTQUFTOztvT0FJMEMsT0FBTztzQkFBeEQsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ1gsU0FBUztzQkFBN0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNDLFFBQVE7c0JBQTNDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb3JtTWFuYWdlckNvbmZpZyB9IGZyb20gJy4uL2Zvcm0tbWFuYWdlci5jb25maWcnO1xuaW1wb3J0IHsgRm9ybWlvQWxlcnRzIH0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1hbmFnZXJFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoRm9ybUJ1aWxkZXJDb21wb25lbnQsIHtzdGF0aWM6IGZhbHNlfSkgYnVpbGRlcjogRm9ybUJ1aWxkZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3RpdGxlJywge3N0YXRpYzogZmFsc2V9KSBmb3JtVGl0bGU6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3R5cGUnLCB7c3RhdGljOiBmYWxzZX0pIGZvcm1UeXBlOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgZm9ybTogYW55O1xuICBwdWJsaWMgbG9hZGluZzogQm9vbGVhbjtcbiAgcHVibGljIGZvcm1SZWFkeTogQm9vbGVhbjtcbiAgcHVibGljIGVkaXRNb2RlOiBCb29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBGb3JtTWFuYWdlclNlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIGNvbmZpZzogRm9ybU1hbmFnZXJDb25maWcsXG4gICAgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGFsZXJ0czogRm9ybWlvQWxlcnRzXG4gICkge1xuICAgIHRoaXMuZm9ybSA9IHtjb21wb25lbnRzOiBbXX07XG4gICAgdGhpcy5mb3JtUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmVkaXRNb2RlID0gZmFsc2U7XG4gIH1cblxuICBpbml0QnVpbGRlcihlZGl0aW5nKSB7XG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmVkaXRNb2RlID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZm9ybVJlYWR5LnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnNlcnZpY2UuZm9ybTtcbiAgICAgICAgdGhpcy5mb3JtVGl0bGUubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuc2VydmljZS5mb3JtLnRpdGxlO1xuICAgICAgICB0aGlzLmZvcm1UeXBlLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnNlcnZpY2UuZm9ybS5kaXNwbGF5IHx8ICdmb3JtJztcbiAgICAgICAgdGhpcy5mb3JtUmVhZHkgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0KHt0eXBlOiAnZGFuZ2VyJywgbWVzc2FnZTogKGVyci5tZXNzYWdlIHx8IGVycil9KTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5mb3JtUmVhZHkgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybVJlYWR5ID0gdHJ1ZTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMucm91dGUudXJsLnN1YnNjcmliZSggdXJsID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbml0QnVpbGRlcigodXJsWzBdLnBhdGggPT09ICdlZGl0JykpLCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRGlzcGxheVNlbGVjdChldmVudCkge1xuICAgIHRoaXMuYnVpbGRlci5zZXREaXNwbGF5KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gIH1cblxuICBzYXZlRm9ybSgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZm9ybSA9IF8uY2xvbmVEZWVwKHRoaXMuYnVpbGRlci5mb3JtaW8uc2NoZW1hKTtcbiAgICB0aGlzLmZvcm0udGl0bGUgPSB0aGlzLmZvcm1UaXRsZS5uYXRpdmVFbGVtZW50LnZhbHVlLnRyaW0oKTtcbiAgICB0aGlzLmZvcm0uZGlzcGxheSA9IHRoaXMuZm9ybVR5cGUubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy50YWcpIHtcbiAgICAgIHRoaXMuZm9ybS50YWdzID0gdGhpcy5mb3JtLnRhZ3MgfHwgW107XG4gICAgICB0aGlzLmZvcm0udGFncy5wdXNoKHRoaXMuY29uZmlnLnRhZyk7XG4gICAgICB0aGlzLmZvcm0udGFncyA9IF8udW5pcSh0aGlzLmZvcm0udGFncyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy50eXBlKSB7XG4gICAgICB0aGlzLmZvcm0udHlwZSA9IHRoaXMuY29uZmlnLnR5cGU7XG4gICAgfVxuICAgIGlmICghdGhpcy5mb3JtLl9pZCkge1xuICAgICAgdGhpcy5mb3JtLm5hbWUgPSBfLmNhbWVsQ2FzZSh0aGlzLmZvcm0udGl0bGUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmZvcm0ucGF0aCA9IHRoaXMuZm9ybS5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmZvcm1pby5zYXZlRm9ybSh0aGlzLmZvcm0pLnRoZW4oZm9ybSA9PiB7XG4gICAgICB0aGlzLmZvcm0gPSB0aGlzLnNlcnZpY2Uuc2V0Rm9ybShmb3JtKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybTtcbiAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAvLyBDYXRjaCBpZiBhIGZvcm0gaXMgcmV0dXJuZWQgYXMgYW4gZXJyb3IuIFRoaXMgaXMgYSBjb25mbGljdC5cbiAgICAgIGlmIChlcnIuX2lkICYmIGVyci50eXBlKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0KHt0eXBlOiAnZGFuZ2VyJywgbWVzc2FnZTogKGVyci5tZXNzYWdlIHx8IGVycil9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uU2F2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYXZlRm9ybSgpLnRoZW4oKGZvcm0pID0+IHtcbiAgICAgIGlmICh0aGlzLmVkaXRNb2RlKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vJywgJ3ZpZXcnXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vJywgZm9ybS5faWQsICd2aWV3J10sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvdyBtYi0yXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJmb3JtVGl0bGVcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGEgVGl0bGVcIiAjdGl0bGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTJcIj5cbiAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJmb3JtU2VsZWN0XCIgKGNoYW5nZSk9XCJvbkRpc3BsYXlTZWxlY3QoJGV2ZW50KVwiICN0eXBlPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImZvcm1cIj5Gb3JtPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwid2l6YXJkXCI+V2l6YXJkPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwicGRmXCI+UERGPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9ja1wiIChjbGljayk9XCJvblNhdmUoKVwiPjxpIGNsYXNzPVwiYmkgYmktc2F2ZSBtZS0yXCI+PC9pPlNhdmUgRm9ybTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGZvcm1pby1hbGVydHMgW2FsZXJ0c109XCJhbGVydHNcIj48L2Zvcm1pby1hbGVydHM+XG48Zm9ybS1idWlsZGVyICpuZ0lmPVwiZm9ybVJlYWR5XCIgW2Zvcm1idWlsZGVyXT1cImNvbmZpZy5idWlsZGVyXCIgW2Zvcm1dPVwiZm9ybVwiICNidWlsZGVyPjwvZm9ybS1idWlsZGVyPlxuPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDtcIiAoY2xpY2spPVwib25TYXZlKClcIj5TYXZlIEZvcm08L2J1dHRvbj5cbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../form-manager.service";
4
- import * as i2 from "@angular/router";
5
- import * as i3 from "@formio/angular";
6
- import * as i4 from "../form-manager.config";
7
- import * as i5 from "ngx-bootstrap/modal";
8
- import * as i6 from "@angular/common";
9
- import * as i7 from "@angular/forms";
10
- export class FormManagerFormComponent {
11
- service;
12
- route;
13
- appConfig;
14
- options;
15
- modalService;
16
- choice = 'isUrl';
17
- embedCode;
18
- shareUrl;
19
- projectId;
20
- pathName;
21
- goTo = '';
22
- modalRef;
23
- constructor(service, route, appConfig, options, modalService) {
24
- this.service = service;
25
- this.route = route;
26
- this.appConfig = appConfig;
27
- this.options = options;
28
- this.modalService = modalService;
29
- }
30
- ngOnInit() {
31
- this.service.reset(this.route);
32
- this.service.loadForm().then(form => {
33
- this.service.formSrc = this.appConfig.appUrl + '/' + form.path;
34
- this.projectId = form.project;
35
- this.pathName = form.path;
36
- this.getShareUrl();
37
- });
38
- }
39
- getShareUrl() {
40
- const src = this.appConfig.appUrl + '/' + this.pathName;
41
- this.shareUrl = `${this.options.viewer}/#/?src=${encodeURIComponent(src)}`;
42
- return this.shareUrl;
43
- }
44
- openEmbed(content) {
45
- let goto = '';
46
- if (this.goTo) {
47
- goto += `if (d && d.formSubmission && d.formSubmission._id) { window.location.href = "${this.goTo}";}`;
48
- }
49
- let embedCode = '<script type="text/javascript">';
50
- embedCode += '(function a(d, w, u) {';
51
- embedCode += 'var h = d.getElementsByTagName("head")[0];';
52
- embedCode += 'var s = d.createElement("script");';
53
- embedCode += 's.type = "text/javascript";';
54
- embedCode += 's.src = "' + this.options.viewer + '/assets/lib/seamless/seamless.parent.min.js";';
55
- embedCode += 's.onload = function b() {';
56
- embedCode += 'var f = d.getElementById("formio-form-' + this.service.formio.formId + '");';
57
- embedCode += 'if (!f || (typeof w.seamless === u)) {';
58
- embedCode += 'return setTimeout(b, 100);';
59
- embedCode += '}';
60
- embedCode += 'w.seamless(f, {fallback:false}).receive(function(d, e) {' + goto + '});';
61
- embedCode += '};';
62
- embedCode += 'h.appendChild(s);';
63
- embedCode += '})(document, window);';
64
- embedCode += '</script>';
65
- embedCode += '<iframe id="formio-form-' + this.service.formio.formId + '" ';
66
- embedCode += 'style="width:100%;border:none;" height="800px" src="' + this.shareUrl + '&iframe=1"></iframe>';
67
- this.embedCode = embedCode;
68
- this.modalRef = this.modalService.show(content, { class: 'modal-lg' });
69
- }
70
- choices(string) {
71
- this.choice = string;
72
- }
73
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerFormComponent, deps: [{ token: i1.FormManagerService }, { token: i2.ActivatedRoute }, { token: i3.FormioAppConfig }, { token: i4.FormManagerConfig }, { token: i5.BsModalService }], target: i0.ɵɵFactoryTarget.Component });
74
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FormManagerFormComponent, selector: "ng-component", ngImport: i0, template: "<button *ngIf=\"options.viewer\" class=\"float-end btn btn-outline-primary\" (click)=\"openEmbed(content)\"><em class=\"fa fa-share-alt bi bi-share\"></em> Share</button>\n<ul class=\"nav nav-tabs mb-2\">\n <li class=\"nav-item\"><a class=\"nav-link\" routerLink=\"../\"><em class=\"fa fa-chevron-left bi bi-chevron-left\"></em></a></li>\n <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"view\" routerLinkActive=\"active\"><em class=\"fa fa-pencil bi bi-pencil\"></em> Enter Data</a></li>\n <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"submission\" routerLinkActive=\"active\"><em class=\"fa fa-list-alt bi bi-table\"></em> View Data</a></li>\n <li *ngIf=\"service.actionAllowed('formEdit')\" class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"edit\" routerLinkActive=\"active\"><em class=\"fa fa-edit bi bi-pencil-square\"></em> Edit Form</a></li>\n <li *ngIf=\"service.actionAllowed('formDelete')\" class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"delete\" routerLinkActive=\"active\"><span class=\"fa fa-trash bi bi-trash\"></span></a></li>\n</ul>\n<router-outlet></router-outlet>\n<ng-template #content>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\">Share or Embed this form</h4>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.hide()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <ul class=\"nav nav-tabs mr-auto mb-2\">\n <li class=\"nav-item\">\n <a class=\"nav-link\" [ngClass]=\"{'active': choice === 'isUrl'}\" (click)=\"choices('isUrl')\"><em class=\"fa fa-link bi bi-link\"></em> URL</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" [ngClass]=\"{'active': choice === 'isEmbed'}\" (click)=\"choices('isEmbed')\"><em class=\"fa fa-code bi bi-code-slash\"></em> Embed</a>\n </li>\n </ul>\n <pre *ngIf=\"choice === 'isEmbed'\"><textarea onclick=\"this.focus();this.select()\" readonly=\"readonly\" style=\"width:100%;\" rows=\"8\" [ngModel]=\"embedCode\"></textarea></pre>\n <input *ngIf=\"choice === 'isUrl'\" type=\"text\" onclick=\"this.focus();this.select()\" readonly=\"readonly\" class=\"form-control\" [ngModel]=\"shareUrl\" placeholder=\"https://examples.form.io/example\">\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-light\" (click)=\"modalRef.hide()\">Close</button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
75
- }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerFormComponent, decorators: [{
77
- type: Component,
78
- args: [{ template: "<button *ngIf=\"options.viewer\" class=\"float-end btn btn-outline-primary\" (click)=\"openEmbed(content)\"><em class=\"fa fa-share-alt bi bi-share\"></em> Share</button>\n<ul class=\"nav nav-tabs mb-2\">\n <li class=\"nav-item\"><a class=\"nav-link\" routerLink=\"../\"><em class=\"fa fa-chevron-left bi bi-chevron-left\"></em></a></li>\n <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"view\" routerLinkActive=\"active\"><em class=\"fa fa-pencil bi bi-pencil\"></em> Enter Data</a></li>\n <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"submission\" routerLinkActive=\"active\"><em class=\"fa fa-list-alt bi bi-table\"></em> View Data</a></li>\n <li *ngIf=\"service.actionAllowed('formEdit')\" class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"edit\" routerLinkActive=\"active\"><em class=\"fa fa-edit bi bi-pencil-square\"></em> Edit Form</a></li>\n <li *ngIf=\"service.actionAllowed('formDelete')\" class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"delete\" routerLinkActive=\"active\"><span class=\"fa fa-trash bi bi-trash\"></span></a></li>\n</ul>\n<router-outlet></router-outlet>\n<ng-template #content>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\">Share or Embed this form</h4>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.hide()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <ul class=\"nav nav-tabs mr-auto mb-2\">\n <li class=\"nav-item\">\n <a class=\"nav-link\" [ngClass]=\"{'active': choice === 'isUrl'}\" (click)=\"choices('isUrl')\"><em class=\"fa fa-link bi bi-link\"></em> URL</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" [ngClass]=\"{'active': choice === 'isEmbed'}\" (click)=\"choices('isEmbed')\"><em class=\"fa fa-code bi bi-code-slash\"></em> Embed</a>\n </li>\n </ul>\n <pre *ngIf=\"choice === 'isEmbed'\"><textarea onclick=\"this.focus();this.select()\" readonly=\"readonly\" style=\"width:100%;\" rows=\"8\" [ngModel]=\"embedCode\"></textarea></pre>\n <input *ngIf=\"choice === 'isUrl'\" type=\"text\" onclick=\"this.focus();this.select()\" readonly=\"readonly\" class=\"form-control\" [ngModel]=\"shareUrl\" placeholder=\"https://examples.form.io/example\">\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-light\" (click)=\"modalRef.hide()\">Close</button>\n </div>\n</ng-template>\n" }]
79
- }], ctorParameters: () => [{ type: i1.FormManagerService }, { type: i2.ActivatedRoute }, { type: i3.FormioAppConfig }, { type: i4.FormManagerConfig }, { type: i5.BsModalService }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9tYW5hZ2VyL3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFVL0QsTUFBTSxPQUFPLHdCQUF3QjtJQVMxQjtJQUNBO0lBQ0E7SUFDQTtJQUNDO0lBWlYsTUFBTSxHQUFRLE9BQU8sQ0FBQztJQUN0QixTQUFTLENBQU07SUFDZixRQUFRLENBQU07SUFDZCxTQUFTLENBQU07SUFDZixRQUFRLENBQU07SUFDZCxJQUFJLEdBQVEsRUFBRSxDQUFDO0lBQ2YsUUFBUSxDQUFhO0lBQ3JCLFlBQ1MsT0FBMkIsRUFDM0IsS0FBcUIsRUFDckIsU0FBMEIsRUFDMUIsT0FBMEIsRUFDekIsWUFBNEI7UUFKN0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQWdCO0lBQ2xDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxXQUFXLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBeUI7UUFDakMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxJQUFJLGdGQUFnRixJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7U0FDeEc7UUFDRCxJQUFJLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztRQUNsRCxTQUFTLElBQUksd0JBQXdCLENBQUM7UUFDdEMsU0FBUyxJQUFPLDRDQUE0QyxDQUFDO1FBQzdELFNBQVMsSUFBTyxvQ0FBb0MsQ0FBQztRQUNyRCxTQUFTLElBQU8sNkJBQTZCLENBQUM7UUFDOUMsU0FBUyxJQUFPLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRywrQ0FBK0MsQ0FBQztRQUNwRyxTQUFTLElBQU8sMkJBQTJCLENBQUM7UUFDNUMsU0FBUyxJQUFVLHdDQUF3QyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDakcsU0FBUyxJQUFVLHdDQUF3QyxDQUFDO1FBQzVELFNBQVMsSUFBYSw0QkFBNEIsQ0FBQztRQUNuRCxTQUFTLElBQVUsR0FBRyxDQUFDO1FBQ3ZCLFNBQVMsSUFBVSwwREFBMEQsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQzdGLFNBQVMsSUFBTyxJQUFJLENBQUM7UUFDckIsU0FBUyxJQUFPLG1CQUFtQixDQUFDO1FBQ3BDLFNBQVMsSUFBSSx1QkFBdUIsQ0FBQztRQUNyQyxTQUFTLElBQUksV0FBVyxDQUFDO1FBQ3pCLFNBQVMsSUFBSSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzVFLFNBQVMsSUFBUSxzREFBc0QsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBQ2pILElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQzt1R0E3RFUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isb0RDVnJDLHNoRkFnQ0E7OzJGRHRCYSx3QkFBd0I7a0JBSHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1NYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1NYW5hZ2VyQ29uZmlnIH0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb3JtaW9BcHBDb25maWcgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UsIEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWFuYWdlckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjaG9pY2U6IGFueSA9ICdpc1VybCc7XG4gIGVtYmVkQ29kZTogYW55O1xuICBzaGFyZVVybDogYW55O1xuICBwcm9qZWN0SWQ6IGFueTtcbiAgcGF0aE5hbWU6IGFueTtcbiAgZ29UbzogYW55ID0gJyc7XG4gIG1vZGFsUmVmOiBCc01vZGFsUmVmO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VydmljZTogRm9ybU1hbmFnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIGFwcENvbmZpZzogRm9ybWlvQXBwQ29uZmlnLFxuICAgIHB1YmxpYyBvcHRpb25zOiBGb3JtTWFuYWdlckNvbmZpZyxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2UucmVzZXQodGhpcy5yb3V0ZSk7XG4gICAgdGhpcy5zZXJ2aWNlLmxvYWRGb3JtKCkudGhlbihmb3JtID0+IHtcbiAgICAgIHRoaXMuc2VydmljZS5mb3JtU3JjID0gdGhpcy5hcHBDb25maWcuYXBwVXJsICsgJy8nICsgZm9ybS5wYXRoO1xuICAgICAgdGhpcy5wcm9qZWN0SWQgPSBmb3JtLnByb2plY3Q7XG4gICAgICB0aGlzLnBhdGhOYW1lID0gZm9ybS5wYXRoO1xuICAgICAgdGhpcy5nZXRTaGFyZVVybCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFNoYXJlVXJsKCkge1xuICAgIGNvbnN0IHNyYyA9IHRoaXMuYXBwQ29uZmlnLmFwcFVybCArICcvJyArIHRoaXMucGF0aE5hbWU7XG4gICAgdGhpcy5zaGFyZVVybCA9IGAke3RoaXMub3B0aW9ucy52aWV3ZXJ9LyMvP3NyYz0ke2VuY29kZVVSSUNvbXBvbmVudChzcmMpfWA7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVVcmw7XG4gIH1cblxuICBvcGVuRW1iZWQoY29udGVudDogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIGxldCBnb3RvID0gJyc7XG4gICAgaWYgKHRoaXMuZ29Ubykge1xuICAgICAgZ290byArPSBgaWYgKGQgJiYgZC5mb3JtU3VibWlzc2lvbiAmJiBkLmZvcm1TdWJtaXNzaW9uLl9pZCkgeyB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiJHt0aGlzLmdvVG99XCI7fWA7XG4gICAgfVxuICAgIGxldCBlbWJlZENvZGUgPSAnPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+JztcbiAgICBlbWJlZENvZGUgKz0gJyhmdW5jdGlvbiBhKGQsIHcsIHUpIHsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAndmFyIGggPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXTsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAndmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7JztcbiAgICBlbWJlZENvZGUgKz0gICAgJ3MudHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCI7JztcbiAgICBlbWJlZENvZGUgKz0gICAgJ3Muc3JjID0gXCInICsgdGhpcy5vcHRpb25zLnZpZXdlciArICcvYXNzZXRzL2xpYi9zZWFtbGVzcy9zZWFtbGVzcy5wYXJlbnQubWluLmpzXCI7JztcbiAgICBlbWJlZENvZGUgKz0gICAgJ3Mub25sb2FkID0gZnVuY3Rpb24gYigpIHsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAgICAndmFyIGYgPSBkLmdldEVsZW1lbnRCeUlkKFwiZm9ybWlvLWZvcm0tJyArIHRoaXMuc2VydmljZS5mb3JtaW8uZm9ybUlkICsgJ1wiKTsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAgICAnaWYgKCFmIHx8ICh0eXBlb2Ygdy5zZWFtbGVzcyA9PT0gdSkpIHsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAgICAgICAncmV0dXJuIHNldFRpbWVvdXQoYiwgMTAwKTsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAgICAnfSc7XG4gICAgZW1iZWRDb2RlICs9ICAgICAgICd3LnNlYW1sZXNzKGYsIHtmYWxsYmFjazpmYWxzZX0pLnJlY2VpdmUoZnVuY3Rpb24oZCwgZSkgeycgKyBnb3RvICsgJ30pOyc7XG4gICAgZW1iZWRDb2RlICs9ICAgICd9Oyc7XG4gICAgZW1iZWRDb2RlICs9ICAgICdoLmFwcGVuZENoaWxkKHMpOyc7XG4gICAgZW1iZWRDb2RlICs9ICd9KShkb2N1bWVudCwgd2luZG93KTsnO1xuICAgIGVtYmVkQ29kZSArPSAnPC9zY3JpcHQ+JztcbiAgICBlbWJlZENvZGUgKz0gJzxpZnJhbWUgaWQ9XCJmb3JtaW8tZm9ybS0nICsgdGhpcy5zZXJ2aWNlLmZvcm1pby5mb3JtSWQgKyAnXCIgJztcbiAgICBlbWJlZENvZGUgKz0gICAgICdzdHlsZT1cIndpZHRoOjEwMCU7Ym9yZGVyOm5vbmU7XCIgaGVpZ2h0PVwiODAwcHhcIiBzcmM9XCInICsgdGhpcy5zaGFyZVVybCArICcmaWZyYW1lPTFcIj48L2lmcmFtZT4nO1xuICAgIHRoaXMuZW1iZWRDb2RlID0gZW1iZWRDb2RlO1xuICAgIHRoaXMubW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KGNvbnRlbnQsIHsgY2xhc3M6ICdtb2RhbC1sZycgfSk7XG4gIH1cblxuICBjaG9pY2VzKHN0cmluZykge1xuICAgIHRoaXMuY2hvaWNlID0gc3RyaW5nO1xuICB9XG59XG4iLCI8YnV0dG9uICpuZ0lmPVwib3B0aW9ucy52aWV3ZXJcIiBjbGFzcz1cImZsb2F0LWVuZCBidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIChjbGljayk9XCJvcGVuRW1iZWQoY29udGVudClcIj48ZW0gY2xhc3M9XCJmYSBmYS1zaGFyZS1hbHQgYmkgYmktc2hhcmVcIj48L2VtPiBTaGFyZTwvYnV0dG9uPlxuPHVsIGNsYXNzPVwibmF2IG5hdi10YWJzIG1iLTJcIj5cbiAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj48YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cIi4uL1wiPjxlbSBjbGFzcz1cImZhIGZhLWNoZXZyb24tbGVmdCBiaSBiaS1jaGV2cm9uLWxlZnRcIj48L2VtPjwvYT48L2xpPlxuICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj48YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cInZpZXdcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGVtIGNsYXNzPVwiZmEgZmEtcGVuY2lsIGJpIGJpLXBlbmNpbFwiPjwvZW0+IEVudGVyIERhdGE8L2E+PC9saT5cbiAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJzdWJtaXNzaW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxlbSBjbGFzcz1cImZhIGZhLWxpc3QtYWx0IGJpIGJpLXRhYmxlXCI+PC9lbT4gVmlldyBEYXRhPC9hPjwvbGk+XG4gIDxsaSAqbmdJZj1cInNlcnZpY2UuYWN0aW9uQWxsb3dlZCgnZm9ybUVkaXQnKVwiIGNsYXNzPVwibmF2LWl0ZW1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJlZGl0XCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxlbSBjbGFzcz1cImZhIGZhLWVkaXQgYmkgYmktcGVuY2lsLXNxdWFyZVwiPjwvZW0+IEVkaXQgRm9ybTwvYT48L2xpPlxuICA8bGkgKm5nSWY9XCJzZXJ2aWNlLmFjdGlvbkFsbG93ZWQoJ2Zvcm1EZWxldGUnKVwiIGNsYXNzPVwibmF2LWl0ZW1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJkZWxldGVcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PHNwYW4gY2xhc3M9XCJmYSBmYS10cmFzaCBiaSBiaS10cmFzaFwiPjwvc3Bhbj48L2E+PC9saT5cbjwvdWw+XG48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlNoYXJlIG9yIEVtYmVkIHRoaXMgZm9ybTwvaDQ+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbFJlZi5oaWRlKClcIj5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtdGFicyBtci1hdXRvIG1iLTJcIj5cbiAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XG4gICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGNob2ljZSA9PT0gJ2lzVXJsJ31cIiAoY2xpY2spPVwiY2hvaWNlcygnaXNVcmwnKVwiPjxlbSBjbGFzcz1cImZhIGZhLWxpbmsgYmkgYmktbGlua1wiPjwvZW0+IFVSTDwvYT5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBjaG9pY2UgPT09ICdpc0VtYmVkJ31cIiAoY2xpY2spPVwiY2hvaWNlcygnaXNFbWJlZCcpXCI+PGVtIGNsYXNzPVwiZmEgZmEtY29kZSBiaSBiaS1jb2RlLXNsYXNoXCI+PC9lbT4gRW1iZWQ8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gICAgPHByZSAgKm5nSWY9XCJjaG9pY2UgPT09ICdpc0VtYmVkJ1wiPjx0ZXh0YXJlYSBvbmNsaWNrPVwidGhpcy5mb2N1cygpO3RoaXMuc2VsZWN0KClcIiByZWFkb25seT1cInJlYWRvbmx5XCIgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIHJvd3M9XCI4XCIgW25nTW9kZWxdPVwiZW1iZWRDb2RlXCI+PC90ZXh0YXJlYT48L3ByZT5cbiAgICA8aW5wdXQgKm5nSWY9XCJjaG9pY2UgPT09ICdpc1VybCdcIiB0eXBlPVwidGV4dFwiIG9uY2xpY2s9XCJ0aGlzLmZvY3VzKCk7dGhpcy5zZWxlY3QoKVwiIHJlYWRvbmx5PVwicmVhZG9ubHlcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cInNoYXJlVXJsXCIgcGxhY2Vob2xkZXI9XCJodHRwczovL2V4YW1wbGVzLmZvcm0uaW8vZXhhbXBsZVwiPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodFwiIChjbGljayk9XCJtb2RhbFJlZi5oaWRlKClcIj5DbG9zZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,185 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Formio } from '@formio/js';
3
- import _intersection from 'lodash/intersection';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@formio/angular";
6
- import * as i2 from "./form-manager.config";
7
- import * as i3 from "@formio/angular/auth";
8
- export class FormManagerService {
9
- appConfig;
10
- config;
11
- auth;
12
- formio;
13
- access;
14
- allAccessMap;
15
- ownAccessMap;
16
- ready;
17
- formReady;
18
- actionAllowed;
19
- form = null;
20
- formSrc = '';
21
- perms = { delete: false, edit: false };
22
- constructor(appConfig, config, auth) {
23
- this.appConfig = appConfig;
24
- this.config = config;
25
- this.auth = auth;
26
- if (this.appConfig && this.appConfig.appUrl) {
27
- Formio.setBaseUrl(this.appConfig.apiUrl);
28
- Formio.setProjectUrl(this.appConfig.appUrl);
29
- }
30
- else {
31
- console.error('You must provide an AppConfig within your application!');
32
- }
33
- this.allAccessMap = {
34
- 'update_all': 'formEdit',
35
- 'delete_all': 'formDelete'
36
- };
37
- this.ownAccessMap = {
38
- 'update_own': 'formEdit',
39
- 'delete_own': 'formDelete'
40
- };
41
- this.actionAllowed = (action) => this.isActionAllowed(action);
42
- this.reset();
43
- }
44
- isActionAllowed(action) {
45
- return this.access[action];
46
- }
47
- setAccess() {
48
- this.access = {
49
- formCreate: true,
50
- formView: true,
51
- formSubmission: true,
52
- formEdit: true,
53
- formPermission: true,
54
- formDelete: true,
55
- projectSettings: true,
56
- userManagement: true
57
- };
58
- if (this.auth) {
59
- this.access = {
60
- formCreate: false,
61
- formView: false,
62
- formSubmission: false,
63
- formEdit: false,
64
- formPermission: false,
65
- formDelete: false,
66
- projectSettings: false,
67
- userManagement: false
68
- };
69
- this.ready = this.auth.ready.then(() => {
70
- let administrator = this.auth.roles["administrator"];
71
- let formbuilder = this.auth.roles["formbuilder"];
72
- let formadmin = this.auth.roles["formadmin"];
73
- if (this.auth.user && this.auth.user.roles) {
74
- this.auth.user.roles.forEach((roleId) => {
75
- if (administrator._id === roleId) {
76
- this.access.formCreate = true;
77
- this.access.formView = true;
78
- this.access.formSubmission = true;
79
- this.access.formEdit = true;
80
- this.access.formPermission = true;
81
- this.access.formDelete = true;
82
- this.access.projectSettings = true;
83
- this.access.userManagement = true;
84
- }
85
- else {
86
- if (formadmin && formadmin._id === roleId) {
87
- this.access.formCreate = this.auth.formAccess.create_all.includes(roleId);
88
- this.access.formEdit = this.auth.formAccess.update_all.includes(roleId);
89
- this.access.formPermission = this.auth.formAccess.update_all.includes(roleId);
90
- this.access.formDelete = this.auth.formAccess.delete_all.includes(roleId);
91
- this.access.formView = this.auth.formAccess.read_all.includes(roleId);
92
- this.access.formSubmission = this.auth.formAccess.read_all.includes(roleId);
93
- }
94
- if (formbuilder && formbuilder._id === roleId) {
95
- this.access.formCreate = this.auth.formAccess.create_all.includes(roleId);
96
- this.access.formEdit = this.auth.formAccess.update_all.includes(roleId);
97
- this.access.formPermission = this.auth.formAccess.update_all.includes(roleId);
98
- this.access.formDelete = this.auth.formAccess.delete_all.includes(roleId);
99
- this.access.formView = this.auth.formAccess.read_all.includes(roleId);
100
- }
101
- }
102
- });
103
- }
104
- });
105
- }
106
- else {
107
- this.ready = Promise.resolve(false);
108
- }
109
- }
110
- reset(route) {
111
- if (route) {
112
- route.params.subscribe(params => {
113
- if (params.id) {
114
- this.formio = new Formio(`${this.formio.formsUrl}/${params.id}`);
115
- }
116
- else {
117
- this.reset();
118
- }
119
- });
120
- }
121
- else {
122
- this.formio = new Formio(this.appConfig.appUrl);
123
- this.setAccess();
124
- }
125
- }
126
- hasAccess(roles) {
127
- if (!this.auth.user) {
128
- return false;
129
- }
130
- return !!_intersection(roles, this.auth.user.roles).length;
131
- }
132
- setForm(form) {
133
- this.form = form;
134
- this.formSrc = this.appConfig.appUrl + '/' + form.path;
135
- if (form.access) {
136
- // Check if they have access here.
137
- form.access.forEach(access => {
138
- // Check for all access.
139
- if (this.allAccessMap[access.type] && !this.access[this.allAccessMap[access.type]]) {
140
- this.access[this.allAccessMap[access.type]] = this.hasAccess(access.roles);
141
- }
142
- // Check for own access.
143
- if (this.auth && this.auth.user &&
144
- (form._id === this.auth.user._id) &&
145
- this.ownAccessMap[access.type] &&
146
- !this.access[this.ownAccessMap[access.type]]) {
147
- this.access[this.ownAccessMap[access.type]] = this.hasAccess(access.roles);
148
- }
149
- });
150
- }
151
- return form;
152
- }
153
- loadForm() {
154
- this.form = null;
155
- this.formReady = this.formio.loadForm().then(form => this.setForm(form));
156
- return this.formReady;
157
- }
158
- setSubmission(route) {
159
- return new Promise((resolve) => {
160
- route.params.subscribe(params => {
161
- this.formio = new Formio(`${this.formio.submissionsUrl}/${params.id}`);
162
- resolve(this.formio);
163
- });
164
- });
165
- }
166
- submissionLoaded(submission) {
167
- this.auth.ready.then(() => {
168
- this.formio.userPermissions(this.auth.user, this.form, submission).then((perms) => {
169
- this.perms.delete = perms.delete;
170
- this.perms.edit = perms.edit;
171
- });
172
- });
173
- }
174
- loadForms() {
175
- return this.formio.loadForms({ params: {
176
- tags: this.config.tag
177
- } });
178
- }
179
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerService, deps: [{ token: i1.FormioAppConfig }, { token: i2.FormManagerConfig }, { token: i3.FormioAuthService }], target: i0.ɵɵFactoryTarget.Injectable });
180
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerService });
181
- }
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerService, decorators: [{
183
- type: Injectable
184
- }], ctorParameters: () => [{ type: i1.FormioAppConfig }, { type: i2.FormManagerConfig }, { type: i3.FormioAuthService }] });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9tYW5hZ2VyL3NyYy9mb3JtLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHcEMsT0FBTyxhQUFhLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBR2hELE1BQU0sT0FBTyxrQkFBa0I7SUFhcEI7SUFDQTtJQUNBO0lBZEYsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFNO0lBQ1osWUFBWSxDQUFNO0lBQ2xCLFlBQVksQ0FBTTtJQUNsQixLQUFLLENBQWU7SUFDcEIsU0FBUyxDQUFlO0lBQ3hCLGFBQWEsQ0FBTTtJQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ1osT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLEtBQUssR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQyxDQUFDO0lBRTVDLFlBQ1MsU0FBMEIsRUFDMUIsTUFBeUIsRUFDekIsSUFBdUI7UUFGdkIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFFOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdE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VUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQzNFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7NkJBQzdFOzRCQUNELElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEtBQUssTUFBTSxFQUFFO2dDQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxD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QUUsRUFBRTtnQkFDaEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsTUFBTSxFQUFFO2dCQUNwQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2FBQ3RCLEVBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzt1R0FuTFUsa0JBQWtCOzJHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtaW9BcHBDb25maWcgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJDb25maWcgfSBmcm9tICcuL2Zvcm0tbWFuYWdlci5jb25maWcnO1xuaW1wb3J0IHsgRm9ybWlvIH0gZnJvbSAnQGZvcm1pby9qcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb3JtaW9BdXRoU2VydmljZSB9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhci9hdXRoJztcbmltcG9ydCBfaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybU1hbmFnZXJTZXJ2aWNlIHtcbiAgcHVibGljIGZvcm1pbzogRm9ybWlvO1xuICBwdWJsaWMgYWNjZXNzOiBhbnk7XG4gIHB1YmxpYyBhbGxBY2Nlc3NNYXA6IGFueTtcbiAgcHVibGljIG93bkFjY2Vzc01hcDogYW55O1xuICBwdWJsaWMgcmVhZHk6IFByb21pc2U8YW55PjtcbiAgcHVibGljIGZvcm1SZWFkeTogUHJvbWlzZTxhbnk+O1xuICBwdWJsaWMgYWN0aW9uQWxsb3dlZDogYW55O1xuICBwdWJsaWMgZm9ybSA9IG51bGw7XG4gIHB1YmxpYyBmb3JtU3JjID0gJyc7XG4gIHB1YmxpYyBwZXJtcyA9IHtkZWxldGU6IGZhbHNlLCBlZGl0OiBmYWxzZX07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwcENvbmZpZzogRm9ybWlvQXBwQ29uZmlnLFxuICAgIHB1YmxpYyBjb25maWc6IEZvcm1NYW5hZ2VyQ29uZmlnLFxuICAgIHB1YmxpYyBhdXRoOiBGb3JtaW9BdXRoU2VydmljZVxuICApIHtcbiAgICBpZiAodGhpcy5hcHBDb25maWcgJiYgdGhpcy5hcHBDb25maWcuYXBwVXJsKSB7XG4gICAgICBGb3JtaW8uc2V0QmFzZVVybCh0aGlzLmFwcENvbmZpZy5hcGlVcmwpO1xuICAgICAgRm9ybWlvLnNldFByb2plY3RVcmwodGhpcy5hcHBDb25maWcuYXBwVXJsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignWW91IG11c3QgcHJvdmlkZSBhbiBBcHBDb25maWcgd2l0aGluIHlvdXIgYXBwbGljYXRpb24hJyk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGxBY2Nlc3NNYXAgPSB7XG4gICAgICAndXBkYXRlX2FsbCc6ICdmb3JtRWRpdCcsXG4gICAgICAnZGVsZXRlX2FsbCc6ICdmb3JtRGVsZXRlJ1xuICAgIH07XG4gICAgdGhpcy5vd25BY2Nlc3NNYXAgPSB7XG4gICAgICAndXBkYXRlX293bic6ICdmb3JtRWRpdCcsXG4gICAgICAnZGVsZXRlX293bic6ICdmb3JtRGVsZXRlJ1xuICAgIH07XG4gICAgdGhpcy5hY3Rpb25BbGxvd2VkID0gKGFjdGlvbikgPT4gdGhpcy5pc0FjdGlvbkFsbG93ZWQoYWN0aW9uKTtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICBpc0FjdGlvbkFsbG93ZWQoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NbYWN0aW9uXTtcbiAgfVxuXG4gIHNldEFjY2VzcygpIHtcbiAgICB0aGlzLmFjY2VzcyA9IHtcbiAgICAgIGZvcm1DcmVhdGU6IHRydWUsXG4gICAgICBmb3JtVmlldzogdHJ1ZSxcbiAgICAgIGZvcm1TdWJtaXNzaW9uOiB0cnVlLFxuICAgICAgZm9ybUVkaXQ6IHRydWUsXG4gICAgICBmb3JtUGVybWlzc2lvbjogdHJ1ZSxcbiAgICAgIGZvcm1EZWxldGU6IHRydWUsXG4gICAgICBwcm9qZWN0U2V0dGluZ3M6IHRydWUsXG4gICAgICB1c2VyTWFuYWdlbWVudDogdHJ1ZVxuICAgIH07XG4gICAgaWYgKHRoaXMuYXV0aCkge1xuICAgICAgdGhpcy5hY2Nlc3MgPSB7XG4gICAgICAgIGZvcm1DcmVhdGU6IGZhbHNlLFxuICAgICAgICBmb3JtVmlldzogZmFsc2UsXG4gICAgICAgIGZvcm1TdWJtaXNzaW9uOiBmYWxzZSxcbiAgICAgICAgZm9ybUVkaXQ6IGZhbHNlLFxuICAgICAgICBmb3JtUGVybWlzc2lvbjogZmFsc2UsXG4gICAgICAgIGZvcm1EZWxldGU6IGZhbHNlLFxuICAgICAgICBwcm9qZWN0U2V0dGluZ3M6IGZhbHNlLFxuICAgICAgICB1c2VyTWFuYWdlbWVudDogZmFsc2VcbiAgICAgIH07XG4gICAgICB0aGlzLnJlYWR5ID0gdGhpcy5hdXRoLnJlYWR5LnRoZW4oKCkgPT4ge1xuICAgICAgICBsZXQgYWRtaW5pc3RyYXRvciA9IHRoaXMuYXV0aC5yb2xlc1tcImFkbWluaXN0cmF0b3JcIl07XG4gICAgICAgIGxldCBmb3JtYnVpbGRlciA9IHRoaXMuYXV0aC5yb2xlc1tcImZvcm1idWlsZGVyXCJdO1xuICAgICAgICBsZXQgZm9ybWFkbWluID0gdGhpcy5hdXRoLnJvbGVzW1wiZm9ybWFkbWluXCJdO1xuXG4gICAgICAgIGlmICh0aGlzLmF1dGgudXNlciAmJiB0aGlzLmF1dGgudXNlci5yb2xlcykge1xuICAgICAgICAgIHRoaXMuYXV0aC51c2VyLnJvbGVzLmZvckVhY2goKHJvbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWRtaW5pc3RyYXRvci5faWQgPT09IHJvbGVJZCkge1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtQ3JlYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5hY2Nlc3MuZm9ybVZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtU3VibWlzc2lvbj0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5hY2Nlc3MuZm9ybUVkaXQgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtUGVybWlzc2lvbiA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1EZWxldGUgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5wcm9qZWN0U2V0dGluZ3MgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy51c2VyTWFuYWdlbWVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKGZvcm1hZG1pbiAmJiBmb3JtYWRtaW4uX2lkID09PSByb2xlSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtQ3JlYXRlID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MuY3JlYXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1FZGl0ID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MudXBkYXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1QZXJtaXNzaW9uID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MudXBkYXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1EZWxldGUgPSAgdGhpcy5hdXRoLmZvcm1BY2Nlc3MuZGVsZXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1WaWV3ID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MucmVhZF9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtU3VibWlzc2lvbiA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnJlYWRfYWxsLmluY2x1ZGVzKHJvbGVJZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGZvcm1idWlsZGVyICYmIGZvcm1idWlsZGVyLl9pZCA9PT0gcm9sZUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3MuZm9ybUNyZWF0ZSA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLmNyZWF0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtRWRpdCA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnVwZGF0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtUGVybWlzc2lvbiA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnVwZGF0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtRGVsZXRlID0gIHRoaXMuYXV0aC5mb3JtQWNjZXNzLmRlbGV0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtVmlldyA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnJlYWRfYWxsLmluY2x1ZGVzKHJvbGVJZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVhZHkgPSBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0KHJvdXRlPzogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBpZiAocm91dGUpIHtcbiAgICAgIHJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMuZm9ybWlvID0gbmV3IEZvcm1pbyhgJHt0aGlzLmZvcm1pby5mb3Jtc1VybH0vJHtwYXJhbXMuaWR9YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtaW8gPSBuZXcgRm9ybWlvKHRoaXMuYXBwQ29uZmlnLmFwcFVybCk7XG4gICAgICB0aGlzLnNldEFjY2VzcygpO1xuICAgIH1cbiAgfVxuXG4gIGhhc0FjY2Vzcyhyb2xlcykge1xuICAgIGlmICghdGhpcy5hdXRoLnVzZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICEhX2ludGVyc2VjdGlvbihyb2xlcywgdGhpcy5hdXRoLnVzZXIucm9sZXMpLmxlbmd0aDtcbiAgfVxuXG4gIHNldEZvcm0oZm9ybTogYW55KSB7XG4gICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICB0aGlzLmZvcm1TcmMgPSB0aGlzLmFwcENvbmZpZy5hcHBVcmwgKyAnLycgKyBmb3JtLnBhdGg7XG4gICAgaWYgKGZvcm0uYWNjZXNzKSB7XG4gICAgICAvLyBDaGVjayBpZiB0aGV5IGhhdmUgYWNjZXNzIGhlcmUuXG4gICAgICBmb3JtLmFjY2Vzcy5mb3JFYWNoKGFjY2VzcyA9PiB7XG4gICAgICAgIC8vIENoZWNrIGZvciBhbGwgYWNjZXNzLlxuICAgICAgICBpZiAodGhpcy5hbGxBY2Nlc3NNYXBbYWNjZXNzLnR5cGVdICYmICF0aGlzLmFjY2Vzc1t0aGlzLmFsbEFjY2Vzc01hcFthY2Nlc3MudHlwZV1dKSB7XG4gICAgICAgICAgdGhpcy5hY2Nlc3NbdGhpcy5hbGxBY2Nlc3NNYXBbYWNjZXNzLnR5cGVdXSA9IHRoaXMuaGFzQWNjZXNzKGFjY2Vzcy5yb2xlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3Igb3duIGFjY2Vzcy5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuYXV0aCAmJiB0aGlzLmF1dGgudXNlciAmJlxuICAgICAgICAgIChmb3JtLl9pZCA9PT0gdGhpcy5hdXRoLnVzZXIuX2lkKSAmJlxuICAgICAgICAgIHRoaXMub3duQWNjZXNzTWFwW2FjY2Vzcy50eXBlXSAmJlxuICAgICAgICAgICF0aGlzLmFjY2Vzc1t0aGlzLm93bkFjY2Vzc01hcFthY2Nlc3MudHlwZV1dXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuYWNjZXNzW3RoaXMub3duQWNjZXNzTWFwW2FjY2Vzcy50eXBlXV0gPSB0aGlzLmhhc0FjY2VzcyhhY2Nlc3Mucm9sZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBsb2FkRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIHRoaXMuZm9ybVJlYWR5ID0gdGhpcy5mb3JtaW8ubG9hZEZvcm0oKS50aGVuKGZvcm0gPT4gdGhpcy5zZXRGb3JtKGZvcm0pKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVhZHk7XG4gIH1cblxuICBzZXRTdWJtaXNzaW9uKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgcm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICB0aGlzLmZvcm1pbyA9IG5ldyBGb3JtaW8oYCR7dGhpcy5mb3JtaW8uc3VibWlzc2lvbnNVcmx9LyR7cGFyYW1zLmlkfWApO1xuICAgICAgICByZXNvbHZlKHRoaXMuZm9ybWlvKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3VibWlzc2lvbkxvYWRlZChzdWJtaXNzaW9uOiBhbnkpIHtcbiAgICB0aGlzLmF1dGgucmVhZHkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmZvcm1pby51c2VyUGVybWlzc2lvbnModGhpcy5hdXRoLnVzZXIsIHRoaXMuZm9ybSwgc3VibWlzc2lvbikudGhlbigocGVybXMpID0+IHtcbiAgICAgICAgdGhpcy5wZXJtcy5kZWxldGUgPSBwZXJtcy5kZWxldGU7XG4gICAgICAgIHRoaXMucGVybXMuZWRpdCA9IHBlcm1zLmVkaXQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRGb3JtcygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtaW8ubG9hZEZvcm1zKHtwYXJhbXM6IHtcbiAgICAgIHRhZ3M6IHRoaXMuY29uZmlnLnRhZ1xuICAgIH19KTtcbiAgfVxufVxuIl19
@@ -1,108 +0,0 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { DefaultConfiguration } from '../form-manager.config';
3
- import { FormioGridComponent } from '@formio/angular/grid';
4
- import { debounce } from 'lodash';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../form-manager.service";
7
- import * as i2 from "@angular/router";
8
- import * as i3 from "../form-manager.config";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "@formio/angular/grid";
11
- export class FormManagerIndexComponent {
12
- service;
13
- route;
14
- router;
15
- config;
16
- searchElement;
17
- formGrid;
18
- gridQuery;
19
- onSearch;
20
- constructor(service, route, router, config) {
21
- this.service = service;
22
- this.route = route;
23
- this.router = router;
24
- this.config = config;
25
- this.config = { ...DefaultConfiguration, ...this.config };
26
- this.gridQuery = { type: this.config.type, sort: 'title' };
27
- if (this.config.tag) {
28
- this.gridQuery.tags = this.config.tag;
29
- }
30
- this.onSearch = debounce(this._onSearch, 300);
31
- }
32
- loadGrid() {
33
- this.gridQuery = JSON.parse(localStorage.getItem('query')) || this.gridQuery;
34
- const currentPage = +localStorage.getItem('currentPage') || 0;
35
- this.formGrid
36
- .refreshGrid(this.gridQuery)
37
- .then(() => this.formGrid.setPage(currentPage - 1));
38
- }
39
- ngOnInit() {
40
- this.gridQuery = { type: this.config.type, sort: 'title' };
41
- if (this.config.tag) {
42
- this.gridQuery.tags = this.config.tag;
43
- }
44
- this.service.reset();
45
- this.service.ready.then(() => {
46
- this.loadGrid();
47
- this.formGrid.footer.pageChanged.subscribe(page => {
48
- localStorage.setItem('currentPage', page.page);
49
- });
50
- });
51
- }
52
- ngAfterViewInit() {
53
- this.searchElement.nativeElement.value = localStorage.getItem('searchInput') || '';
54
- }
55
- _onSearch() {
56
- const search = this.searchElement.nativeElement.value;
57
- if (search.length > 0) {
58
- this.gridQuery.skip = 0;
59
- this.gridQuery.title__regex = '/' + search + '/i';
60
- this.gridQuery.title__regex = '/' + search.trim() + '/i';
61
- }
62
- else {
63
- delete this.gridQuery.title__regex;
64
- }
65
- localStorage.setItem('query', JSON.stringify(this.gridQuery));
66
- localStorage.setItem('searchInput', search);
67
- this.formGrid.pageChanged({ page: 1, itemPerPage: this.gridQuery.limit });
68
- this.formGrid.refreshGrid(this.gridQuery);
69
- }
70
- clearSearch() {
71
- this.gridQuery = { type: this.config.type, sort: 'title' };
72
- if (this.config.tag) {
73
- this.gridQuery.tags = this.config.tag;
74
- }
75
- localStorage.removeItem('query');
76
- localStorage.removeItem('searchInput');
77
- localStorage.removeItem('currentPage');
78
- if (this.searchElement?.nativeElement) {
79
- this.searchElement.nativeElement.value = '';
80
- }
81
- this.formGrid.pageChanged({ page: 1 });
82
- this.formGrid.query = {};
83
- this.formGrid.refreshGrid(this.gridQuery);
84
- }
85
- onAction(action) {
86
- this.service.form = null; // Reset previous form data
87
- this.router.navigate([action.row._id, action.action], { relativeTo: this.route });
88
- }
89
- onSelect(row) {
90
- this.router.navigate([row._id], { relativeTo: this.route });
91
- }
92
- onCreateItem() {
93
- this.router.navigate(['create'], { relativeTo: this.route });
94
- }
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerIndexComponent, deps: [{ token: i1.FormManagerService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.FormManagerConfig }], target: i0.ɵɵFactoryTarget.Component });
96
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FormManagerIndexComponent, selector: "ng-component", viewQueries: [{ propertyName: "searchElement", first: true, predicate: ["search"], descendants: true }, { propertyName: "formGrid", first: true, predicate: FormioGridComponent, descendants: true }], ngImport: i0, template: "<div role=\"search\" class=\"input-group mb-3\" *ngIf=\"config.includeSearch\">\n <input #search type=\"text\" (keyup)=\"onSearch()\" class=\"form-control\" placeholder=\"Search Forms\" aria-label=\"Search Forms\" aria-describedby=\"button-search\">\n <span *ngIf=\"search && search !== ''\" class=\"form-clear input-group-addon\" (click)=\"clearSearch()\"><span class=\"fa fa-times bi bi-x\"></span></span>\n</div>\n<formio-grid\n *ngIf=\"service.ready\"\n [formio]=\"service.formio\"\n [gridType]=\"'form'\"\n [query]=\"gridQuery\"\n [isActionAllowed]=\"service.actionAllowed\"\n (rowAction)=\"onAction($event)\"\n (rowSelect)=\"onSelect($event)\"\n (createItem)=\"onCreateItem()\"\n></formio-grid>\n", styles: [".form-clear{background:#cecece;border-radius:50%;bottom:8px;color:#0000004d;cursor:pointer;display:flex;justify-content:center;align-items:center;padding-bottom:2px;height:24px;position:absolute;right:10px;top:6px;width:24px;z-index:10}.form-clear .fa{font-size:16px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FormioGridComponent, selector: "formio-grid", inputs: ["footerPosition", "src", "items", "onForm", "query", "refresh", "columns", "gridType", "size", "components", "formio", "label", "createText", "isActionAllowed"], outputs: ["select", "rowSelect", "rowAction", "createItem", "error"] }] });
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormManagerIndexComponent, decorators: [{
99
- type: Component,
100
- args: [{ template: "<div role=\"search\" class=\"input-group mb-3\" *ngIf=\"config.includeSearch\">\n <input #search type=\"text\" (keyup)=\"onSearch()\" class=\"form-control\" placeholder=\"Search Forms\" aria-label=\"Search Forms\" aria-describedby=\"button-search\">\n <span *ngIf=\"search && search !== ''\" class=\"form-clear input-group-addon\" (click)=\"clearSearch()\"><span class=\"fa fa-times bi bi-x\"></span></span>\n</div>\n<formio-grid\n *ngIf=\"service.ready\"\n [formio]=\"service.formio\"\n [gridType]=\"'form'\"\n [query]=\"gridQuery\"\n [isActionAllowed]=\"service.actionAllowed\"\n (rowAction)=\"onAction($event)\"\n (rowSelect)=\"onSelect($event)\"\n (createItem)=\"onCreateItem()\"\n></formio-grid>\n", styles: [".form-clear{background:#cecece;border-radius:50%;bottom:8px;color:#0000004d;cursor:pointer;display:flex;justify-content:center;align-items:center;padding-bottom:2px;height:24px;position:absolute;right:10px;top:6px;width:24px;z-index:10}.form-clear .fa{font-size:16px;font-weight:500}\n"] }]
101
- }], ctorParameters: () => [{ type: i1.FormManagerService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.FormManagerConfig }], propDecorators: { searchElement: [{
102
- type: ViewChild,
103
- args: ['search']
104
- }], formGrid: [{
105
- type: ViewChild,
106
- args: [FormioGridComponent, { static: false }]
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvaW5kZXgvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvaW5kZXgvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUUsb0JBQW9CLEVBQXFCLE1BQU0sd0JBQXdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7OztBQU1sQyxNQUFNLE9BQU8seUJBQXlCO0lBTTNCO0lBQ0E7SUFDQTtJQUNBO0lBUlksYUFBYSxDQUFhO0lBQ0UsUUFBUSxDQUFzQjtJQUN4RSxTQUFTLENBQU07SUFDZixRQUFRLENBQUM7SUFDaEIsWUFDUyxPQUEyQixFQUMzQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsTUFBeUI7UUFIekIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBRWhDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBQyxHQUFHLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLE1B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LFFBQVEsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7dUdBdkZVLHlCQUF5QjsyRkFBekIseUJBQXlCLHdMQUV6QixtQkFBbUIsZ0RDYmhDLDBzQkFjQTs7MkZESGEseUJBQXlCO2tCQUpyQyxTQUFTOzt5S0FLYSxhQUFhO3NCQUFqQyxTQUFTO3VCQUFDLFFBQVE7Z0JBQzhCLFFBQVE7c0JBQXhELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb3JtTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9mb3JtLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEZWZhdWx0Q29uZmlndXJhdGlvbiwgRm9ybU1hbmFnZXJDb25maWcgfSBmcm9tICcuLi9mb3JtLW1hbmFnZXIuY29uZmlnJztcbmltcG9ydCB7IEZvcm1pb0dyaWRDb21wb25lbnQgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXIvZ3JpZCc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vaW5kZXguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmRleC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1NYW5hZ2VySW5kZXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdzZWFyY2gnKSBzZWFyY2hFbGVtZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKEZvcm1pb0dyaWRDb21wb25lbnQsIHtzdGF0aWM6IGZhbHNlfSkgZm9ybUdyaWQ6IEZvcm1pb0dyaWRDb21wb25lbnQ7XG4gIHB1YmxpYyBncmlkUXVlcnk6IGFueTtcbiAgcHVibGljIG9uU2VhcmNoO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VydmljZTogRm9ybU1hbmFnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyBjb25maWc6IEZvcm1NYW5hZ2VyQ29uZmlnXG4gICkge1xuICAgIHRoaXMuY29uZmlnID0gey4uLkRlZmF1bHRDb25maWd1cmF0aW9uLCAuLi50aGlzLmNvbmZpZ307XG4gICAgdGhpcy5ncmlkUXVlcnkgPSB7dHlwZTogdGhpcy5jb25maWcudHlwZSwgc29ydDogJ3RpdGxlJ307XG4gICAgaWYgKHRoaXMuY29uZmlnLnRhZykge1xuICAgICAgdGhpcy5ncmlkUXVlcnkudGFncyA9IHRoaXMuY29uZmlnLnRhZztcbiAgICB9XG4gICAgdGhpcy5vblNlYXJjaCA9IGRlYm91bmNlKHRoaXMuX29uU2VhcmNoLCAzMDApO1xuICB9XG5cbiAgbG9hZEdyaWQoKSB7XG4gICAgdGhpcy5ncmlkUXVlcnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdxdWVyeScpKSB8fCB0aGlzLmdyaWRRdWVyeTtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFBhZ2UnKSB8fCAwO1xuICAgIHRoaXMuZm9ybUdyaWRcbiAgICAgIC5yZWZyZXNoR3JpZCh0aGlzLmdyaWRRdWVyeSlcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuZm9ybUdyaWQuc2V0UGFnZShjdXJyZW50UGFnZSAtIDEpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5ID0ge3R5cGU6IHRoaXMuY29uZmlnLnR5cGUsIHNvcnQ6ICd0aXRsZSd9O1xuICAgIGlmICh0aGlzLmNvbmZpZy50YWcpIHtcbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LnRhZ3MgPSB0aGlzLmNvbmZpZy50YWc7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5yZXNldCgpO1xuICAgIHRoaXMuc2VydmljZS5yZWFkeS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZEdyaWQoKTtcbiAgICAgIHRoaXMuZm9ybUdyaWQuZm9vdGVyLnBhZ2VDaGFuZ2VkLnN1YnNjcmliZShwYWdlID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRQYWdlJywgcGFnZS5wYWdlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NlYXJjaElucHV0JykgfHwgJyc7XG4gIH1cblxuICBfb25TZWFyY2goKSB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgaWYgKHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdyaWRRdWVyeS5za2lwID0gMDtcbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LnRpdGxlX19yZWdleCA9ICcvJyArIHNlYXJjaCArICcvaSc7XG4gICAgICB0aGlzLmdyaWRRdWVyeS50aXRsZV9fcmVnZXggPSAnLycgKyBzZWFyY2gudHJpbSgpICsgJy9pJztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMuZ3JpZFF1ZXJ5LnRpdGxlX19yZWdleDtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3F1ZXJ5JywgSlNPTi5zdHJpbmdpZnkodGhpcy5ncmlkUXVlcnkpKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VhcmNoSW5wdXQnLCBzZWFyY2gpO1xuICAgIHRoaXMuZm9ybUdyaWQucGFnZUNoYW5nZWQoe3BhZ2U6IDEsIGl0ZW1QZXJQYWdlOiB0aGlzLmdyaWRRdWVyeS5saW1pdH0pO1xuICAgIHRoaXMuZm9ybUdyaWQucmVmcmVzaEdyaWQodGhpcy5ncmlkUXVlcnkpO1xuICB9XG5cbiAgY2xlYXJTZWFyY2goKSB7XG4gICAgdGhpcy5ncmlkUXVlcnkgPSB7dHlwZTogdGhpcy5jb25maWcudHlwZSwgc29ydDogJ3RpdGxlJ307XG4gICAgaWYgKHRoaXMuY29uZmlnLnRhZykge1xuICAgICAgdGhpcy5ncmlkUXVlcnkudGFncyA9IHRoaXMuY29uZmlnLnRhZztcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3F1ZXJ5Jyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3NlYXJjaElucHV0Jyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2N1cnJlbnRQYWdlJyk7XG4gICAgaWYgKHRoaXMuc2VhcmNoRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG4gICAgdGhpcy5mb3JtR3JpZC5wYWdlQ2hhbmdlZCh7cGFnZTogMX0pO1xuICAgIHRoaXMuZm9ybUdyaWQucXVlcnkgPSB7fTtcbiAgICB0aGlzLmZvcm1HcmlkLnJlZnJlc2hHcmlkKHRoaXMuZ3JpZFF1ZXJ5KTtcbiAgfVxuXG4gIG9uQWN0aW9uKGFjdGlvbjogYW55KSB7XG4gICAgdGhpcy5zZXJ2aWNlLmZvcm0gPSBudWxsOyAvLyBSZXNldCBwcmV2aW91cyBmb3JtIGRhdGFcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYWN0aW9uLnJvdy5faWQsIGFjdGlvbi5hY3Rpb25dLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBvblNlbGVjdChyb3c6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3cuX2lkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgb25DcmVhdGVJdGVtKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY3JlYXRlJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxufVxuIiwiPGRpdiByb2xlPVwic2VhcmNoXCIgY2xhc3M9XCJpbnB1dC1ncm91cCBtYi0zXCIgKm5nSWY9XCJjb25maWcuaW5jbHVkZVNlYXJjaFwiPlxuICA8aW5wdXQgI3NlYXJjaCB0eXBlPVwidGV4dFwiIChrZXl1cCk9XCJvblNlYXJjaCgpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBGb3Jtc1wiIGFyaWEtbGFiZWw9XCJTZWFyY2ggRm9ybXNcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiYnV0dG9uLXNlYXJjaFwiPlxuICA8c3BhbiAqbmdJZj1cInNlYXJjaCAmJiBzZWFyY2ggIT09ICcnXCIgY2xhc3M9XCJmb3JtLWNsZWFyIGlucHV0LWdyb3VwLWFkZG9uXCIgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIj48c3BhbiBjbGFzcz1cImZhIGZhLXRpbWVzIGJpIGJpLXhcIj48L3NwYW4+PC9zcGFuPlxuPC9kaXY+XG48Zm9ybWlvLWdyaWRcbiAgKm5nSWY9XCJzZXJ2aWNlLnJlYWR5XCJcbiAgW2Zvcm1pb109XCJzZXJ2aWNlLmZvcm1pb1wiXG4gIFtncmlkVHlwZV09XCInZm9ybSdcIlxuICBbcXVlcnldPVwiZ3JpZFF1ZXJ5XCJcbiAgW2lzQWN0aW9uQWxsb3dlZF09XCJzZXJ2aWNlLmFjdGlvbkFsbG93ZWRcIlxuICAocm93QWN0aW9uKT1cIm9uQWN0aW9uKCRldmVudClcIlxuICAocm93U2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAoY3JlYXRlSXRlbSk9XCJvbkNyZWF0ZUl0ZW0oKVwiXG4+PC9mb3JtaW8tZ3JpZD5cbiJdfQ==