@formio/angular 5.2.2 → 5.3.0-rc.1

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 (336) hide show
  1. package/FormioBaseComponent.d.ts +3 -0
  2. package/FormioBaseComponent.d.ts.map +1 -1
  3. package/auth/auth.component.d.ts +3 -0
  4. package/auth/auth.component.d.ts.map +1 -1
  5. package/auth/auth.config.d.ts +3 -0
  6. package/auth/auth.config.d.ts.map +1 -1
  7. package/auth/auth.module.d.ts +11 -0
  8. package/auth/auth.module.d.ts.map +1 -1
  9. package/auth/auth.service.d.ts +3 -0
  10. package/auth/auth.service.d.ts.map +1 -1
  11. package/auth/formio-angular-auth.d.ts +1 -0
  12. package/auth/formio-angular-auth.d.ts.map +1 -1
  13. package/auth/login/login.component.d.ts +3 -0
  14. package/auth/login/login.component.d.ts.map +1 -1
  15. package/auth/package.json +5 -6
  16. package/auth/register/register.component.d.ts +3 -0
  17. package/auth/register/register.component.d.ts.map +1 -1
  18. package/auth/resetpass/resetpass.component.d.ts +3 -0
  19. package/auth/resetpass/resetpass.component.d.ts.map +1 -1
  20. package/components/alerts/formio.alerts.component.d.ts +3 -0
  21. package/components/alerts/formio.alerts.component.d.ts.map +1 -1
  22. package/components/alerts/parse-html-content.pipe.d.ts +3 -0
  23. package/components/alerts/parse-html-content.pipe.d.ts.map +1 -1
  24. package/components/formbuilder/formbuilder.component.d.ts +3 -0
  25. package/components/formbuilder/formbuilder.component.d.ts.map +1 -1
  26. package/components/formio/formio.component.d.ts +3 -0
  27. package/components/formio/formio.component.d.ts.map +1 -1
  28. package/components/loader/formio.loader.component.d.ts +3 -0
  29. package/components/loader/formio.loader.component.d.ts.map +1 -1
  30. package/custom-component/custom-tags.service.d.ts +3 -0
  31. package/custom-component/custom-tags.service.d.ts.map +1 -1
  32. package/esm2020/FormioBaseComponent.mjs +491 -0
  33. package/esm2020/auth/auth.component.mjs +12 -0
  34. package/esm2020/auth/auth.config.mjs +15 -0
  35. package/esm2020/auth/auth.module.mjs +48 -0
  36. package/{esm2015/auth/auth.routes.js → esm2020/auth/auth.routes.mjs} +0 -0
  37. package/esm2020/auth/auth.service.mjs +159 -0
  38. package/{esm2015/auth/formio-angular-auth.js → esm2020/auth/formio-angular-auth.mjs} +0 -0
  39. package/{esm2015/auth/index.js → esm2020/auth/index.mjs} +0 -0
  40. package/esm2020/auth/login/login.component.mjs +16 -0
  41. package/{esm2015/auth/public_api.js → esm2020/auth/public_api.mjs} +0 -0
  42. package/esm2020/auth/register/register.component.mjs +16 -0
  43. package/esm2020/auth/resetpass/resetpass.component.mjs +16 -0
  44. package/esm2020/components/alerts/formio.alerts.component.mjs +29 -0
  45. package/{esm2015/components/alerts/formio.alerts.js → esm2020/components/alerts/formio.alerts.mjs} +0 -0
  46. package/esm2020/components/alerts/parse-html-content.pipe.mjs +19 -0
  47. package/esm2020/components/formbuilder/formbuilder.component.mjs +190 -0
  48. package/esm2020/components/formio/formio.component.mjs +40 -0
  49. package/esm2020/components/loader/formio.loader.component.mjs +14 -0
  50. package/{esm2015/core.js → esm2020/core.mjs} +0 -0
  51. package/esm2020/custom-component/create-custom-component.mjs +144 -0
  52. package/esm2020/custom-component/custom-tags.service.mjs +16 -0
  53. package/{esm2015/custom-component/register-custom-component.js → esm2020/custom-component/register-custom-component.mjs} +0 -0
  54. package/{esm2015/elements.common.js → esm2020/elements.common.mjs} +0 -0
  55. package/esm2020/formio-angular.mjs +5 -0
  56. package/{esm2015/formio-promise.service.js → esm2020/formio-promise.service.mjs} +0 -0
  57. package/{esm2015/formio.common.js → esm2020/formio.common.mjs} +0 -0
  58. package/esm2020/formio.config.mjs +14 -0
  59. package/esm2020/formio.module.mjs +60 -0
  60. package/{esm2015/formio.service.js → esm2020/formio.service.mjs} +0 -0
  61. package/{esm2015/formio.utils.js → esm2020/formio.utils.mjs} +0 -0
  62. package/esm2020/grid/GridBodyComponent.mjs +81 -0
  63. package/esm2020/grid/GridFooterComponent.mjs +36 -0
  64. package/esm2020/grid/GridHeaderComponent.mjs +30 -0
  65. package/esm2020/grid/form/FormGridBody.component.mjs +19 -0
  66. package/esm2020/grid/form/FormGridFooter.component.mjs +26 -0
  67. package/esm2020/grid/form/FormGridHeader.component.mjs +26 -0
  68. package/{esm2015/grid/form/index.js → esm2020/grid/form/index.mjs} +0 -0
  69. package/esm2020/grid/form/time-since.pipe.mjs +37 -0
  70. package/esm2020/grid/formio-angular-grid.mjs +5 -0
  71. package/esm2020/grid/grid.component.mjs +230 -0
  72. package/esm2020/grid/grid.module.mjs +89 -0
  73. package/esm2020/grid/grid.service.mjs +17 -0
  74. package/{esm2015/grid/index.js → esm2020/grid/index.mjs} +0 -0
  75. package/{esm2015/grid/public_api.js → esm2020/grid/public_api.mjs} +0 -0
  76. package/esm2020/grid/submission/SubmissionGridBody.component.mjs +43 -0
  77. package/esm2020/grid/submission/SubmissionGridFooter.component.mjs +23 -0
  78. package/esm2020/grid/submission/SubmissionGridHeader.component.mjs +61 -0
  79. package/{esm2015/grid/submission/index.js → esm2020/grid/submission/index.mjs} +0 -0
  80. package/{esm2015/grid/types/grid-column.js → esm2020/grid/types/grid-column.mjs} +0 -0
  81. package/{esm2015/grid/types/grid-footer-positions.js → esm2020/grid/types/grid-footer-positions.mjs} +0 -0
  82. package/{esm2015/grid/types/grid-header.js → esm2020/grid/types/grid-header.mjs} +0 -0
  83. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  84. package/esm2020/manager/create/create.component.mjs +18 -0
  85. package/esm2020/manager/delete/delete.component.mjs +37 -0
  86. package/esm2020/manager/edit/edit.component.mjs +109 -0
  87. package/esm2020/manager/form/form.component.mjs +70 -0
  88. package/esm2020/manager/form-manager.config.mjs +15 -0
  89. package/esm2020/manager/form-manager.module.mjs +85 -0
  90. package/{esm2015/manager/form-manager.routes.js → esm2020/manager/form-manager.routes.mjs} +0 -0
  91. package/esm2020/manager/form-manager.service.mjs +178 -0
  92. package/{esm2015/manager/formio-angular-manager.js → esm2020/manager/formio-angular-manager.mjs} +0 -0
  93. package/esm2020/manager/index/index.component.mjs +84 -0
  94. package/{esm2015/manager/index.js → esm2020/manager/index.mjs} +0 -0
  95. package/{esm2015/manager/public_api.js → esm2020/manager/public_api.mjs} +0 -0
  96. package/esm2020/manager/submission/delete/delete.component.mjs +28 -0
  97. package/esm2020/manager/submission/edit/edit.component.mjs +22 -0
  98. package/esm2020/manager/submission/index/index.component.mjs +22 -0
  99. package/esm2020/manager/submission/submission/submission.component.mjs +26 -0
  100. package/esm2020/manager/submission/view/view.component.mjs +16 -0
  101. package/esm2020/manager/view/view.component.mjs +42 -0
  102. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  103. package/esm2020/resource/create/create.component.mjs +37 -0
  104. package/esm2020/resource/delete/delete.component.mjs +26 -0
  105. package/esm2020/resource/edit/edit.component.mjs +36 -0
  106. package/{esm2015/resource/formio-angular-resource.js → esm2020/resource/formio-angular-resource.mjs} +0 -0
  107. package/esm2020/resource/index/index.component.mjs +61 -0
  108. package/{esm2015/resource/index.js → esm2020/resource/index.mjs} +0 -0
  109. package/{esm2015/resource/public_api.js → esm2020/resource/public_api.mjs} +0 -0
  110. package/esm2020/resource/resource.component.mjs +46 -0
  111. package/esm2020/resource/resource.config.mjs +15 -0
  112. package/esm2020/resource/resource.module.mjs +64 -0
  113. package/{esm2015/resource/resource.routes.js → esm2020/resource/resource.routes.mjs} +0 -0
  114. package/esm2020/resource/resource.service.mjs +186 -0
  115. package/esm2020/resource/resources.service.mjs +22 -0
  116. package/esm2020/resource/view/view.component.mjs +23 -0
  117. package/{esm2015/types/alerts-position.js → esm2020/types/alerts-position.mjs} +0 -0
  118. package/{esm2015/types/formio-metadata.js → esm2020/types/formio-metadata.mjs} +0 -0
  119. package/{esm2015/types/formio-submission.js → esm2020/types/formio-submission.mjs} +0 -0
  120. package/fesm2015/formio-angular-auth.mjs +296 -0
  121. package/fesm2015/formio-angular-auth.mjs.map +1 -0
  122. package/fesm2015/formio-angular-grid.mjs +691 -0
  123. package/fesm2015/formio-angular-grid.mjs.map +1 -0
  124. package/fesm2015/formio-angular-manager.mjs +739 -0
  125. package/fesm2015/formio-angular-manager.mjs.map +1 -0
  126. package/fesm2015/formio-angular-resource.mjs +511 -0
  127. package/fesm2015/formio-angular-resource.mjs.map +1 -0
  128. package/fesm2015/formio-angular.mjs +1138 -0
  129. package/fesm2015/formio-angular.mjs.map +1 -0
  130. package/fesm2020/formio-angular-auth.mjs +296 -0
  131. package/fesm2020/formio-angular-auth.mjs.map +1 -0
  132. package/fesm2020/formio-angular-grid.mjs +690 -0
  133. package/fesm2020/formio-angular-grid.mjs.map +1 -0
  134. package/fesm2020/formio-angular-manager.mjs +739 -0
  135. package/fesm2020/formio-angular-manager.mjs.map +1 -0
  136. package/fesm2020/formio-angular-resource.mjs +509 -0
  137. package/fesm2020/formio-angular-resource.mjs.map +1 -0
  138. package/fesm2020/formio-angular.mjs +1146 -0
  139. package/fesm2020/formio-angular.mjs.map +1 -0
  140. package/formio-angular.d.ts +1 -2
  141. package/formio-angular.d.ts.map +1 -1
  142. package/formio.config.d.ts +3 -0
  143. package/formio.config.d.ts.map +1 -1
  144. package/formio.module.d.ts +11 -0
  145. package/formio.module.d.ts.map +1 -1
  146. package/grid/GridBodyComponent.d.ts +3 -0
  147. package/grid/GridBodyComponent.d.ts.map +1 -1
  148. package/grid/GridFooterComponent.d.ts +3 -0
  149. package/grid/GridFooterComponent.d.ts.map +1 -1
  150. package/grid/GridHeaderComponent.d.ts +3 -0
  151. package/grid/GridHeaderComponent.d.ts.map +1 -1
  152. package/grid/form/FormGridBody.component.d.ts +3 -0
  153. package/grid/form/FormGridBody.component.d.ts.map +1 -1
  154. package/grid/form/FormGridFooter.component.d.ts +3 -0
  155. package/grid/form/FormGridFooter.component.d.ts.map +1 -1
  156. package/grid/form/FormGridHeader.component.d.ts +3 -0
  157. package/grid/form/FormGridHeader.component.d.ts.map +1 -1
  158. package/grid/form/time-since.pipe.d.ts +3 -0
  159. package/grid/form/time-since.pipe.d.ts.map +1 -1
  160. package/grid/formio-angular-grid.d.ts +1 -1
  161. package/grid/formio-angular-grid.d.ts.map +1 -1
  162. package/grid/grid.component.d.ts +3 -0
  163. package/grid/grid.component.d.ts.map +1 -1
  164. package/grid/grid.module.d.ts +20 -0
  165. package/grid/grid.module.d.ts.map +1 -1
  166. package/grid/grid.service.d.ts +3 -0
  167. package/grid/grid.service.d.ts.map +1 -1
  168. package/grid/package.json +5 -6
  169. package/grid/submission/SubmissionGridBody.component.d.ts +3 -0
  170. package/grid/submission/SubmissionGridBody.component.d.ts.map +1 -1
  171. package/grid/submission/SubmissionGridFooter.component.d.ts +3 -0
  172. package/grid/submission/SubmissionGridFooter.component.d.ts.map +1 -1
  173. package/grid/submission/SubmissionGridHeader.component.d.ts +3 -0
  174. package/grid/submission/SubmissionGridHeader.component.d.ts.map +1 -1
  175. package/manager/create/create.component.d.ts +3 -0
  176. package/manager/create/create.component.d.ts.map +1 -1
  177. package/manager/delete/delete.component.d.ts +3 -0
  178. package/manager/delete/delete.component.d.ts.map +1 -1
  179. package/manager/edit/edit.component.d.ts +3 -0
  180. package/manager/edit/edit.component.d.ts.map +1 -1
  181. package/manager/form/form.component.d.ts +3 -0
  182. package/manager/form/form.component.d.ts.map +1 -1
  183. package/manager/form-manager.config.d.ts +3 -0
  184. package/manager/form-manager.config.d.ts.map +1 -1
  185. package/manager/form-manager.module.d.ts +22 -0
  186. package/manager/form-manager.module.d.ts.map +1 -1
  187. package/manager/form-manager.service.d.ts +3 -0
  188. package/manager/form-manager.service.d.ts.map +1 -1
  189. package/manager/formio-angular-manager.d.ts +1 -0
  190. package/manager/formio-angular-manager.d.ts.map +1 -1
  191. package/manager/index/index.component.d.ts +3 -0
  192. package/manager/index/index.component.d.ts.map +1 -1
  193. package/manager/package.json +5 -6
  194. package/manager/submission/delete/delete.component.d.ts +3 -0
  195. package/manager/submission/delete/delete.component.d.ts.map +1 -1
  196. package/manager/submission/edit/edit.component.d.ts +3 -0
  197. package/manager/submission/edit/edit.component.d.ts.map +1 -1
  198. package/manager/submission/index/index.component.d.ts +3 -0
  199. package/manager/submission/index/index.component.d.ts.map +1 -1
  200. package/manager/submission/submission/submission.component.d.ts +3 -0
  201. package/manager/submission/submission/submission.component.d.ts.map +1 -1
  202. package/manager/submission/view/view.component.d.ts +3 -0
  203. package/manager/submission/view/view.component.d.ts.map +1 -1
  204. package/manager/view/view.component.d.ts +3 -0
  205. package/manager/view/view.component.d.ts.map +1 -1
  206. package/package.json +54 -10
  207. package/resource/create/create.component.d.ts +3 -0
  208. package/resource/create/create.component.d.ts.map +1 -1
  209. package/resource/delete/delete.component.d.ts +3 -0
  210. package/resource/delete/delete.component.d.ts.map +1 -1
  211. package/resource/edit/edit.component.d.ts +3 -0
  212. package/resource/edit/edit.component.d.ts.map +1 -1
  213. package/resource/formio-angular-resource.d.ts +1 -0
  214. package/resource/formio-angular-resource.d.ts.map +1 -1
  215. package/resource/index/index.component.d.ts +3 -0
  216. package/resource/index/index.component.d.ts.map +1 -1
  217. package/resource/package.json +5 -6
  218. package/resource/resource.component.d.ts +3 -0
  219. package/resource/resource.component.d.ts.map +1 -1
  220. package/resource/resource.config.d.ts +3 -0
  221. package/resource/resource.config.d.ts.map +1 -1
  222. package/resource/resource.module.d.ts +14 -0
  223. package/resource/resource.module.d.ts.map +1 -1
  224. package/resource/resource.service.d.ts +3 -0
  225. package/resource/resource.service.d.ts.map +1 -1
  226. package/resource/resources.service.d.ts +3 -0
  227. package/resource/resources.service.d.ts.map +1 -1
  228. package/resource/view/view.component.d.ts +3 -0
  229. package/resource/view/view.component.d.ts.map +1 -1
  230. package/FormioBaseComponent.ngfactory.d.ts.map +0 -1
  231. package/auth/formio-angular-auth.metadata.json +0 -1
  232. package/bundles/formio-angular-auth.umd.js +0 -312
  233. package/bundles/formio-angular-auth.umd.js.map +0 -1
  234. package/bundles/formio-angular-grid.umd.js +0 -1010
  235. package/bundles/formio-angular-grid.umd.js.map +0 -1
  236. package/bundles/formio-angular-manager.umd.js +0 -1122
  237. package/bundles/formio-angular-manager.umd.js.map +0 -1
  238. package/bundles/formio-angular-resource.umd.js +0 -556
  239. package/bundles/formio-angular-resource.umd.js.map +0 -1
  240. package/bundles/formio-angular.umd.js +0 -1497
  241. package/bundles/formio-angular.umd.js.map +0 -1
  242. package/components/alerts/formio.alerts.component.ngfactory.d.ts.map +0 -1
  243. package/components/alerts/parse-html-content.pipe.ngfactory.d.ts.map +0 -1
  244. package/components/formbuilder/formbuilder.component.ngfactory.d.ts.map +0 -1
  245. package/components/formio/formio.component.ngfactory.d.ts.map +0 -1
  246. package/components/loader/formio.loader.component.ngfactory.d.ts.map +0 -1
  247. package/components/loader/formio.loader.component.scss.shim.ngstyle.d.ts.map +0 -1
  248. package/custom-component/custom-tags.service.ngfactory.d.ts.map +0 -1
  249. package/esm2015/FormioBaseComponent.js +0 -456
  250. package/esm2015/auth/auth.component.js +0 -9
  251. package/esm2015/auth/auth.config.js +0 -12
  252. package/esm2015/auth/auth.module.js +0 -34
  253. package/esm2015/auth/auth.service.js +0 -160
  254. package/esm2015/auth/login/login.component.js +0 -16
  255. package/esm2015/auth/register/register.component.js +0 -16
  256. package/esm2015/auth/resetpass/resetpass.component.js +0 -16
  257. package/esm2015/components/alerts/formio.alerts.component.js +0 -26
  258. package/esm2015/components/alerts/parse-html-content.pipe.js +0 -15
  259. package/esm2015/components/formbuilder/formbuilder.component.js +0 -185
  260. package/esm2015/components/formio/formio.component.js +0 -39
  261. package/esm2015/components/loader/formio.loader.component.js +0 -14
  262. package/esm2015/custom-component/create-custom-component.js +0 -130
  263. package/esm2015/custom-component/custom-tags.service.js +0 -13
  264. package/esm2015/formio-angular.js +0 -7
  265. package/esm2015/formio.config.js +0 -11
  266. package/esm2015/formio.module.js +0 -42
  267. package/esm2015/grid/GridBodyComponent.js +0 -76
  268. package/esm2015/grid/GridFooterComponent.js +0 -26
  269. package/esm2015/grid/GridHeaderComponent.js +0 -25
  270. package/esm2015/grid/form/FormGridBody.component.js +0 -16
  271. package/esm2015/grid/form/FormGridFooter.component.js +0 -24
  272. package/esm2015/grid/form/FormGridHeader.component.js +0 -24
  273. package/esm2015/grid/form/time-since.pipe.js +0 -33
  274. package/esm2015/grid/formio-angular-grid.js +0 -6
  275. package/esm2015/grid/grid.component.js +0 -211
  276. package/esm2015/grid/grid.module.js +0 -61
  277. package/esm2015/grid/grid.service.js +0 -16
  278. package/esm2015/grid/submission/SubmissionGridBody.component.js +0 -40
  279. package/esm2015/grid/submission/SubmissionGridFooter.component.js +0 -21
  280. package/esm2015/grid/submission/SubmissionGridHeader.component.js +0 -58
  281. package/esm2015/manager/create/create.component.js +0 -13
  282. package/esm2015/manager/delete/delete.component.js +0 -42
  283. package/esm2015/manager/edit/edit.component.js +0 -109
  284. package/esm2015/manager/form/form.component.js +0 -73
  285. package/esm2015/manager/form-manager.config.js +0 -12
  286. package/esm2015/manager/form-manager.module.js +0 -56
  287. package/esm2015/manager/form-manager.service.js +0 -180
  288. package/esm2015/manager/index/index.component.js +0 -86
  289. package/esm2015/manager/submission/delete/delete.component.js +0 -32
  290. package/esm2015/manager/submission/edit/edit.component.js +0 -24
  291. package/esm2015/manager/submission/index/index.component.js +0 -24
  292. package/esm2015/manager/submission/submission/submission.component.js +0 -27
  293. package/esm2015/manager/submission/view/view.component.js +0 -16
  294. package/esm2015/manager/view/view.component.js +0 -45
  295. package/esm2015/resource/create/create.component.js +0 -40
  296. package/esm2015/resource/delete/delete.component.js +0 -29
  297. package/esm2015/resource/edit/edit.component.js +0 -39
  298. package/esm2015/resource/index/index.component.js +0 -65
  299. package/esm2015/resource/resource.component.js +0 -48
  300. package/esm2015/resource/resource.config.js +0 -12
  301. package/esm2015/resource/resource.module.js +0 -44
  302. package/esm2015/resource/resource.service.js +0 -187
  303. package/esm2015/resource/resources.service.js +0 -22
  304. package/esm2015/resource/view/view.component.js +0 -24
  305. package/fesm2015/formio-angular-auth.js +0 -285
  306. package/fesm2015/formio-angular-auth.js.map +0 -1
  307. package/fesm2015/formio-angular-grid.js +0 -624
  308. package/fesm2015/formio-angular-grid.js.map +0 -1
  309. package/fesm2015/formio-angular-manager.js +0 -750
  310. package/fesm2015/formio-angular-manager.js.map +0 -1
  311. package/fesm2015/formio-angular-resource.js +0 -515
  312. package/fesm2015/formio-angular-resource.js.map +0 -1
  313. package/fesm2015/formio-angular.js +0 -1073
  314. package/fesm2015/formio-angular.js.map +0 -1
  315. package/formio-angular.metadata.json +0 -1
  316. package/formio.config.ngfactory.d.ts.map +0 -1
  317. package/formio.module.ngfactory.d.ts.map +0 -1
  318. package/grid/GridBodyComponent.ngfactory.d.ts.map +0 -1
  319. package/grid/GridFooterComponent.ngfactory.d.ts.map +0 -1
  320. package/grid/GridHeaderComponent.ngfactory.d.ts.map +0 -1
  321. package/grid/form/FormGridBody.component.ngfactory.d.ts.map +0 -1
  322. package/grid/form/FormGridBody.component.scss.shim.ngstyle.d.ts.map +0 -1
  323. package/grid/form/FormGridFooter.component.ngfactory.d.ts.map +0 -1
  324. package/grid/form/FormGridHeader.component.ngfactory.d.ts.map +0 -1
  325. package/grid/form/time-since.pipe.ngfactory.d.ts.map +0 -1
  326. package/grid/formio-angular-grid.metadata.json +0 -1
  327. package/grid/grid.component.ngfactory.d.ts.map +0 -1
  328. package/grid/grid.component.scss.shim.ngstyle.d.ts.map +0 -1
  329. package/grid/grid.footer.scss.ngstyle.d.ts.map +0 -1
  330. package/grid/grid.module.ngfactory.d.ts.map +0 -1
  331. package/grid/grid.service.ngfactory.d.ts.map +0 -1
  332. package/grid/submission/SubmissionGridBody.component.ngfactory.d.ts.map +0 -1
  333. package/grid/submission/SubmissionGridFooter.component.ngfactory.d.ts.map +0 -1
  334. package/grid/submission/SubmissionGridHeader.component.ngfactory.d.ts.map +0 -1
  335. package/manager/formio-angular-manager.metadata.json +0 -1
  336. package/resource/formio-angular-resource.metadata.json +0 -1
@@ -0,0 +1,37 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TimeSince {
4
+ transform(date) {
5
+ const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;
6
+ let interval;
7
+ if (interval >= 1) {
8
+ return interval + ' year' + (interval > 1 ? 's' : '');
9
+ }
10
+ interval = Math.floor(elapsed / 2592000);
11
+ if (interval >= 1) {
12
+ return interval + ' month' + (interval > 1 ? 's' : '');
13
+ }
14
+ interval = Math.floor(elapsed / 86400);
15
+ if (interval >= 1) {
16
+ return interval + ' day' + (interval > 1 ? 's' : '');
17
+ }
18
+ interval = Math.floor(elapsed / 3600);
19
+ if (interval >= 1) {
20
+ return interval + ' hour' + (interval > 1 ? 's' : '');
21
+ }
22
+ interval = Math.floor(elapsed / 60);
23
+ if (interval >= 1) {
24
+ return interval + ' minute' + (interval > 1 ? 's' : '');
25
+ }
26
+ return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');
27
+ }
28
+ }
29
+ TimeSince.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimeSince, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
30
+ TimeSince.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimeSince, name: "timeSince" });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimeSince, decorators: [{
32
+ type: Pipe,
33
+ args: [{
34
+ name: 'timeSince'
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1zaW5jZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vZ3JpZC9zcmMvZm9ybS90aW1lLXNpbmNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFNBQVMsQ0FBQyxJQUFVO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6RSxJQUFJLFFBQVEsQ0FBQztRQUNiLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLFFBQVEsR0FBRyxPQUFPLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxJQUFJLENBQUMsRUFBQztZQUNoQixPQUFPLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLFFBQVEsR0FBRyxPQUFPLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLFFBQVEsR0FBRyxTQUFTLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7c0dBeEJVLFNBQVM7b0dBQVQsU0FBUzsyRkFBVCxTQUFTO2tCQUhyQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAndGltZVNpbmNlJ1xufSlcbmV4cG9ydCBjbGFzcyBUaW1lU2luY2UgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVsYXBzZWQgPSAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShkYXRlKS5nZXRUaW1lKCkpIC8gMTAwMDtcbiAgICBsZXQgaW50ZXJ2YWw7XG4gICAgaWYgKGludGVydmFsID49IDEpIHtcbiAgICAgIHJldHVybiBpbnRlcnZhbCArICcgeWVhcicgKyAoaW50ZXJ2YWwgPiAxID8gJ3MnIDogJycpO1xuICAgIH1cbiAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoZWxhcHNlZCAvIDI1OTIwMDApO1xuICAgIGlmIChpbnRlcnZhbCA+PSAxKXtcbiAgICAgIHJldHVybiBpbnRlcnZhbCArICcgbW9udGgnICsgKGludGVydmFsID4gMSA/ICdzJyA6ICcnKTtcbiAgICB9XG4gICAgaW50ZXJ2YWwgPSBNYXRoLmZsb29yKGVsYXBzZWQgLyA4NjQwMCk7XG4gICAgaWYgKGludGVydmFsID49IDEpIHtcbiAgICAgIHJldHVybiBpbnRlcnZhbCArICcgZGF5JyArIChpbnRlcnZhbCA+IDEgPyAncycgOiAnJyk7XG4gICAgfVxuICAgIGludGVydmFsID0gTWF0aC5mbG9vcihlbGFwc2VkIC8gMzYwMCk7XG4gICAgaWYgKGludGVydmFsID49IDEpIHtcbiAgICAgIHJldHVybiBpbnRlcnZhbCArICcgaG91cicgKyAoaW50ZXJ2YWwgPiAxID8gJ3MnIDogJycpO1xuICAgIH1cbiAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoZWxhcHNlZCAvIDYwKTtcbiAgICBpZiAoaW50ZXJ2YWwgPj0gMSkge1xuICAgICAgcmV0dXJuIGludGVydmFsICsgJyBtaW51dGUnICsgKGludGVydmFsID4gMSA/ICdzJyA6ICcnKTtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZWxhcHNlZCkgKyAnIHNlY29uZCcgKyAoZWxhcHNlZCA+IDEgPyAncycgOiAnJyk7XG4gIH1cbn0iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWlvLWFuZ3VsYXItZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL2dyaWQvc3JjL2Zvcm1pby1hbmd1bGFyLWdyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,230 @@
1
+ import { GridFooterPositions } from './types/grid-footer-positions';
2
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
3
+ import { each } from 'lodash';
4
+ import { Formio } from 'formiojs';
5
+ import FormComponents from './form/index';
6
+ import SubmissionComponents from './submission/index';
7
+ import { FormioPromiseService } from '@formio/angular';
8
+ import { SortType } from './types/grid-header';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@formio/angular";
11
+ import * as i2 from "@angular/common";
12
+ export class FormioGridComponent {
13
+ constructor(alerts, resolver, ref) {
14
+ this.alerts = alerts;
15
+ this.resolver = resolver;
16
+ this.ref = ref;
17
+ this.footerPosition = GridFooterPositions.bottom;
18
+ this.page = 0;
19
+ this.isLoading = false;
20
+ this.initialized = false;
21
+ this.footerPositions = GridFooterPositions;
22
+ this.select = this.rowSelect = new EventEmitter();
23
+ this.rowAction = new EventEmitter();
24
+ this.createItem = new EventEmitter();
25
+ this.error = new EventEmitter();
26
+ this.isLoading = true;
27
+ }
28
+ createComponent(property, component) {
29
+ const factory = this.resolver.resolveComponentFactory(component);
30
+ const componentRef = property.createComponent(factory);
31
+ return componentRef.instance;
32
+ }
33
+ loadGrid(src) {
34
+ // If no source is provided, then skip.
35
+ if (!src && !this.formio) {
36
+ return;
37
+ }
38
+ // Do not double load.
39
+ if (this.formio && this.src && (src === this.src)) {
40
+ return;
41
+ }
42
+ if (src) {
43
+ this.src = src;
44
+ this.formio = new FormioPromiseService(this.src, { formOnly: true });
45
+ }
46
+ // Load the header.
47
+ this.header.load(this.formio, {}, this.columns)
48
+ .then(() => this.setPage(0))
49
+ .catch(error => this.onError(error));
50
+ }
51
+ ngOnInit() {
52
+ // Create our components.
53
+ const comps = this.components || ((this.gridType === 'form') ? FormComponents : SubmissionComponents);
54
+ this.header = this.createComponent(this.headerElement, comps.header);
55
+ this.header.actionAllowed = this.actionAllowed.bind(this);
56
+ this.header.sort.subscribe(header => this.sortColumn(header));
57
+ this.body = this.createComponent(this.bodyElement, comps.body);
58
+ this.body.header = this.header;
59
+ this.body.actionAllowed = this.actionAllowed.bind(this);
60
+ this.body.rowSelect.subscribe(row => this.rowSelect.emit(row));
61
+ this.body.rowAction.subscribe(action => this.rowAction.emit(action));
62
+ this.footer = this.createComponent(this.footerElement, comps.footer);
63
+ this.footer.header = this.header;
64
+ this.footer.body = this.body;
65
+ this.footer.actionAllowed = this.actionAllowed.bind(this);
66
+ this.footer.createText = this.createText;
67
+ this.footer.size = this.size;
68
+ this.footer.pageChanged.subscribe(page => this.pageChanged(page));
69
+ this.footer.createItem.subscribe(item => this.createItem.emit(item));
70
+ }
71
+ ngOnChanges(changes) {
72
+ if (this.initialized) {
73
+ if ((changes.src && changes.src.currentValue) ||
74
+ (changes.formio && changes.formio.currentValue)) {
75
+ this.loadGrid(changes.src.currentValue);
76
+ }
77
+ if (changes.items && changes.items.currentValue) {
78
+ this.refreshGrid();
79
+ }
80
+ }
81
+ if (this.footer &&
82
+ (changes.createText && changes.createText.currentValue)) {
83
+ this.footer.createText = changes.createText.currentValue;
84
+ }
85
+ }
86
+ ngAfterViewInit() {
87
+ this.alerts.setAlerts([]);
88
+ this.query = this.query || {};
89
+ if (this.refresh) {
90
+ this.refresh.subscribe((query) => this.refreshGrid(query));
91
+ }
92
+ this.loadGrid(this.src);
93
+ this.initialized = true;
94
+ this.ref.detectChanges();
95
+ }
96
+ actionAllowed(action) {
97
+ if (this.isActionAllowed) {
98
+ return this.isActionAllowed(action);
99
+ }
100
+ else {
101
+ return true;
102
+ }
103
+ }
104
+ onError(error) {
105
+ this.isLoading = false;
106
+ this.error.emit(error);
107
+ if (typeof error === 'string' || error.message) {
108
+ this.alerts.setAlert({
109
+ type: 'danger',
110
+ message: error.message || error
111
+ });
112
+ }
113
+ }
114
+ refreshGrid(query) {
115
+ this.alerts.setAlerts([]);
116
+ this.query = query || this.query;
117
+ if (!this.query.hasOwnProperty('limit')) {
118
+ this.query.limit = 10;
119
+ }
120
+ if (!this.query.hasOwnProperty('skip')) {
121
+ this.query.skip = 0;
122
+ }
123
+ this.isLoading = true;
124
+ this.ref.detectChanges();
125
+ Formio.cache = {};
126
+ let loader = null;
127
+ if (this.items) {
128
+ loader = Promise.resolve(this.body.setRows(this.query, this.items));
129
+ }
130
+ else {
131
+ loader = this.body.load(this.formio, this.query);
132
+ }
133
+ return loader.then(info => {
134
+ this.isLoading = false;
135
+ this.initialized = true;
136
+ this.ref.detectChanges();
137
+ }).catch(error => this.onError(error));
138
+ }
139
+ setPage(num = -1) {
140
+ this.page = num !== -1 ? num : this.page;
141
+ if (!this.query.hasOwnProperty('limit')) {
142
+ this.query.limit = 10;
143
+ }
144
+ if (!this.query.hasOwnProperty('skip')) {
145
+ this.query.skip = 0;
146
+ }
147
+ this.query.skip = this.page * this.query.limit;
148
+ this.refreshGrid();
149
+ }
150
+ sortColumn(header) {
151
+ // Reset all other column sorts.
152
+ each(this.header.headers, (col) => {
153
+ if (col.key !== header.key) {
154
+ col.sort = '';
155
+ }
156
+ });
157
+ switch (header.sort) {
158
+ case 'asc':
159
+ header.sort = SortType.DESC;
160
+ this.query.sort = '-' + header.key;
161
+ break;
162
+ case 'desc':
163
+ header.sort = undefined;
164
+ delete this.query.sort;
165
+ break;
166
+ case undefined:
167
+ header.sort = SortType.ASC;
168
+ this.query.sort = header.key;
169
+ break;
170
+ }
171
+ this.refreshGrid();
172
+ }
173
+ pageChanged(page) {
174
+ this.setPage(page.page - 1);
175
+ }
176
+ }
177
+ FormioGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FormioGridComponent, deps: [{ token: i1.FormioAlerts }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
178
+ FormioGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: FormioGridComponent, selector: "formio-grid", inputs: { footerPosition: "footerPosition", src: "src", items: "items", onForm: "onForm", query: "query", refresh: "refresh", columns: "columns", gridType: "gridType", size: "size", components: "components", formio: "formio", label: "label", createText: "createText", isActionAllowed: "isActionAllowed" }, outputs: { select: "select", rowSelect: "rowSelect", rowAction: "rowAction", createItem: "createItem", error: "error" }, viewQueries: [{ propertyName: "headerElement", first: true, predicate: ["headerTemplate"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "bodyElement", first: true, predicate: ["bodyTemplate"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "footerElement", first: true, predicate: ["footerTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #headerTemplate></ng-template>\n<ng-template #bodyTemplate></ng-template>\n<ng-template #footerTemplate></ng-template>\n<div class=\"formio-grid\">\n <formio-alerts [alerts]=\"alerts\"></formio-alerts>\n <table class=\"table table-bordered table-striped table-hover\">\n <ng-container *ngIf=\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.top, label: label }\">\n </ng-container>\n <ng-container *ngIf=\"initialized\"\n [ngTemplateOutlet]=\"header.template\"></ng-container>\n <formio-loader [isLoading]=\"isLoading\"></formio-loader>\n <ng-container *ngIf=\"initialized\" [ngTemplateOutlet]=\"body.template\"></ng-container>\n <ng-container *ngIf=\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.bottom, label: label }\">\n </ng-container>\n </table>\n</div>\n", styles: [".formio-grid{position:relative;width:100%}.grid-refresh{height:400px;width:100%}\n"], components: [{ type: i1.FormioAlertsComponent, selector: "formio-alerts", inputs: ["alerts"], outputs: ["focusComponent"] }, { type: i1.FormioLoaderComponent, selector: "formio-loader", inputs: ["isLoading"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FormioGridComponent, decorators: [{
180
+ type: Component,
181
+ args: [{ selector: 'formio-grid', template: "<ng-template #headerTemplate></ng-template>\n<ng-template #bodyTemplate></ng-template>\n<ng-template #footerTemplate></ng-template>\n<div class=\"formio-grid\">\n <formio-alerts [alerts]=\"alerts\"></formio-alerts>\n <table class=\"table table-bordered table-striped table-hover\">\n <ng-container *ngIf=\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.top, label: label }\">\n </ng-container>\n <ng-container *ngIf=\"initialized\"\n [ngTemplateOutlet]=\"header.template\"></ng-container>\n <formio-loader [isLoading]=\"isLoading\"></formio-loader>\n <ng-container *ngIf=\"initialized\" [ngTemplateOutlet]=\"body.template\"></ng-container>\n <ng-container *ngIf=\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.bottom, label: label }\">\n </ng-container>\n </table>\n</div>\n", styles: [".formio-grid{position:relative;width:100%}.grid-refresh{height:400px;width:100%}\n"] }]
182
+ }], ctorParameters: function () { return [{ type: i1.FormioAlerts }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { footerPosition: [{
183
+ type: Input
184
+ }], src: [{
185
+ type: Input
186
+ }], items: [{
187
+ type: Input
188
+ }], onForm: [{
189
+ type: Input
190
+ }], query: [{
191
+ type: Input
192
+ }], refresh: [{
193
+ type: Input
194
+ }], columns: [{
195
+ type: Input
196
+ }], gridType: [{
197
+ type: Input
198
+ }], size: [{
199
+ type: Input
200
+ }], components: [{
201
+ type: Input
202
+ }], formio: [{
203
+ type: Input
204
+ }], label: [{
205
+ type: Input
206
+ }], createText: [{
207
+ type: Input
208
+ }], isActionAllowed: [{
209
+ type: Input
210
+ }], select: [{
211
+ type: Output
212
+ }], rowSelect: [{
213
+ type: Output
214
+ }], rowAction: [{
215
+ type: Output
216
+ }], createItem: [{
217
+ type: Output
218
+ }], error: [{
219
+ type: Output
220
+ }], headerElement: [{
221
+ type: ViewChild,
222
+ args: ['headerTemplate', { read: ViewContainerRef, static: true }]
223
+ }], bodyElement: [{
224
+ type: ViewChild,
225
+ args: ['bodyTemplate', { read: ViewContainerRef, static: true }]
226
+ }], footerElement: [{
227
+ type: ViewChild,
228
+ args: ['footerTemplate', { read: ViewContainerRef, static: true }]
229
+ }] } });
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9ncmlkL3NyYy9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL2dyaWQvc3JjL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUloQyxPQUFPLGNBQWMsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxvQkFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxPQUFPLEVBQWEsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFPekQsTUFBTSxPQUFPLG1CQUFtQjtJQWdDOUIsWUFDUyxNQUFvQixFQUNuQixRQUFrQyxFQUNsQyxHQUFzQjtRQUZ2QixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEN2QixtQkFBYyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQXVCOUMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJcEIsb0JBQWUsR0FBRyxtQkFBbUIsQ0FBQztRQU8zQyxJ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TC9CLFNBQVM7K0JBQ0UsYUFBYTswS0FLZCxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDOEQsYUFBYTtzQkFBakYsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNBLFdBQVc7c0JBQTdFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0ksYUFBYTtzQkFBakYsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZEZvb3RlclBvc2l0aW9ucyB9IGZyb20gJy4vdHlwZXMvZ3JpZC1mb290ZXItcG9zaXRpb25zJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9BbGVydHN9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge2VhY2h9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0Zvcm1pb30gZnJvbSAnZm9ybWlvanMnO1xuaW1wb3J0IHtHcmlkSGVhZGVyQ29tcG9uZW50fSBmcm9tICcuL0dyaWRIZWFkZXJDb21wb25lbnQnO1xuaW1wb3J0IHtHcmlkQm9keUNvbXBvbmVudH0gZnJvbSAnLi9HcmlkQm9keUNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRGb290ZXJDb21wb25lbnR9IGZyb20gJy4vR3JpZEZvb3RlckNvbXBvbmVudCc7XG5pbXBvcnQgRm9ybUNvbXBvbmVudHMgZnJvbSAnLi9mb3JtL2luZGV4JztcbmltcG9ydCBTdWJtaXNzaW9uQ29tcG9uZW50cyBmcm9tICcuL3N1Ym1pc3Npb24vaW5kZXgnO1xuaW1wb3J0IHtGb3JtaW9Qcm9taXNlU2VydmljZX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7R3JpZENvbHVtbn0gZnJvbSAnLi90eXBlcy9ncmlkLWNvbHVtbic7XG5pbXBvcnQge0dyaWRIZWFkZXIsIFNvcnRUeXBlfSBmcm9tICcuL3R5cGVzL2dyaWQtaGVhZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWlvLWdyaWQnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtaW9HcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBmb290ZXJQb3NpdGlvbiA9IEdyaWRGb290ZXJQb3NpdGlvbnMuYm90dG9tO1xuICBASW5wdXQoKSBzcmM/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGl0ZW1zPzogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgb25Gb3JtPzogUHJvbWlzZTxhbnk+O1xuICBASW5wdXQoKSBxdWVyeT86IGFueTtcbiAgQElucHV0KCkgcmVmcmVzaD86IEV2ZW50RW1pdHRlcjxvYmplY3Q+O1xuICBASW5wdXQoKSBjb2x1bW5zPzogQXJyYXk8R3JpZENvbHVtbj47XG4gIEBJbnB1dCgpIGdyaWRUeXBlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaXplPzogbnVtYmVyO1xuICBASW5wdXQoKSBjb21wb25lbnRzPzogYW55O1xuICBASW5wdXQoKSBmb3JtaW8/OiBGb3JtaW9Qcm9taXNlU2VydmljZTtcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNyZWF0ZVRleHQ6IFN0cmluZztcbiAgQElucHV0KCkgaXNBY3Rpb25BbGxvd2VkOiBhbnk7XG4gIEBPdXRwdXQoKSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjxvYmplY3Q+O1xuICBAT3V0cHV0KCkgcm93U2VsZWN0OiBFdmVudEVtaXR0ZXI8b2JqZWN0PjtcbiAgQE91dHB1dCgpIHJvd0FjdGlvbjogRXZlbnRFbWl0dGVyPG9iamVjdD47XG4gIEBPdXRwdXQoKSBjcmVhdGVJdGVtOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQFZpZXdDaGlsZCgnaGVhZGVyVGVtcGxhdGUnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlfSkgaGVhZGVyRWxlbWVudDogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZCgnYm9keVRlbXBsYXRlJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIGJvZHlFbGVtZW50OiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdmb290ZXJUZW1wbGF0ZScsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWV9KSBmb290ZXJFbGVtZW50OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIHB1YmxpYyBwYWdlID0gMDtcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHVibGljIGhlYWRlcjogR3JpZEhlYWRlckNvbXBvbmVudDtcbiAgcHVibGljIGJvZHk6IEdyaWRCb2R5Q29tcG9uZW50O1xuICBwdWJsaWMgZm9vdGVyOiBHcmlkRm9vdGVyQ29tcG9uZW50O1xuICBwdWJsaWMgZm9vdGVyUG9zaXRpb25zID0gR3JpZEZvb3RlclBvc2l0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYWxlcnRzOiBGb3JtaW9BbGVydHMsXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnNlbGVjdCA9IHRoaXMucm93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMucm93QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMuY3JlYXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmVycm9yID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIGNyZWF0ZUNvbXBvbmVudChwcm9wZXJ0eSwgY29tcG9uZW50KSB7XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSBwcm9wZXJ0eS5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIGxvYWRHcmlkKHNyYz86IHN0cmluZykge1xuICAgIC8vIElmIG5vIHNvdXJjZSBpcyBwcm92aWRlZCwgdGhlbiBza2lwLlxuICAgIGlmICghc3JjICYmICF0aGlzLmZvcm1pbykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBEbyBub3QgZG91YmxlIGxvYWQuXG4gICAgaWYgKHRoaXMuZm9ybWlvICYmIHRoaXMuc3JjICYmIChzcmMgPT09IHRoaXMuc3JjKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzcmMpIHtcbiAgICAgIHRoaXMuc3JjID0gc3JjO1xuICAgICAgdGhpcy5mb3JtaW8gPSBuZXcgRm9ybWlvUHJvbWlzZVNlcnZpY2UodGhpcy5zcmMsIHsgZm9ybU9ubHk6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgLy8gTG9hZCB0aGUgaGVhZGVyLlxuICAgIHRoaXMuaGVhZGVyLmxvYWQodGhpcy5mb3JtaW8sIHt9LCB0aGlzLmNvbHVtbnMpXG4gICAgICAudGhlbigoKSA9PiB0aGlzLnNldFBhZ2UoMCkpXG4gICAgICAuY2F0Y2goZXJyb3IgPT4gdGhpcy5vbkVycm9yKGVycm9yKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBDcmVhdGUgb3VyIGNvbXBvbmVudHMuXG4gICAgY29uc3QgY29tcHMgPSB0aGlzLmNvbXBvbmVudHMgfHwgKCh0aGlzLmdyaWRUeXBlID09PSAnZm9ybScpID8gRm9ybUNvbXBvbmVudHMgOiBTdWJtaXNzaW9uQ29tcG9uZW50cyk7XG5cbiAgICB0aGlzLmhlYWRlciA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KHRoaXMuaGVhZGVyRWxlbWVudCwgY29tcHMuaGVhZGVyKTtcbiAgICB0aGlzLmhlYWRlci5hY3Rpb25BbGxvd2VkID0gdGhpcy5hY3Rpb25BbGxvd2VkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5oZWFkZXIuc29ydC5zdWJzY3JpYmUoaGVhZGVyID0+IHRoaXMuc29ydENvbHVtbihoZWFkZXIpKTtcblxuICAgIHRoaXMuYm9keSA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KHRoaXMuYm9keUVsZW1lbnQsIGNvbXBzLmJvZHkpO1xuICAgIHRoaXMuYm9keS5oZWFkZXIgPSB0aGlzLmhlYWRlcjtcbiAgICB0aGlzLmJvZHkuYWN0aW9uQWxsb3dlZCA9IHRoaXMuYWN0aW9uQWxsb3dlZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYm9keS5yb3dTZWxlY3Quc3Vic2NyaWJlKHJvdyA9PiB0aGlzLnJvd1NlbGVjdC5lbWl0KHJvdykpO1xuICAgIHRoaXMuYm9keS5yb3dBY3Rpb24uc3Vic2NyaWJlKGFjdGlvbiA9PiB0aGlzLnJvd0FjdGlvbi5lbWl0KGFjdGlvbikpO1xuXG4gICAgdGhpcy5mb290ZXIgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmZvb3RlckVsZW1lbnQsIGNvbXBzLmZvb3Rlcik7XG4gICAgdGhpcy5mb290ZXIuaGVhZGVyID0gdGhpcy5oZWFkZXI7XG4gICAgdGhpcy5mb290ZXIuYm9keSA9IHRoaXMuYm9keTtcbiAgICB0aGlzLmZvb3Rlci5hY3Rpb25BbGxvd2VkID0gdGhpcy5hY3Rpb25BbGxvd2VkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5mb290ZXIuY3JlYXRlVGV4dCA9IHRoaXMuY3JlYXRlVGV4dDtcbiAgICB0aGlzLmZvb3Rlci5zaXplID0gdGhpcy5zaXplO1xuICAgIHRoaXMuZm9vdGVyLnBhZ2VDaGFuZ2VkLnN1YnNjcmliZShwYWdlID0+IHRoaXMucGFnZUNoYW5nZWQocGFnZSkpO1xuICAgIHRoaXMuZm9vdGVyLmNyZWF0ZUl0ZW0uc3Vic2NyaWJlKGl0ZW0gPT4gdGhpcy5jcmVhdGVJdGVtLmVtaXQoaXRlbSkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KSB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoYW5nZXMuc3JjICYmIGNoYW5nZXMuc3JjLmN1cnJlbnRWYWx1ZSkgfHxcbiAgICAgICAgKGNoYW5nZXMuZm9ybWlvICYmIGNoYW5nZXMuZm9ybWlvLmN1cnJlbnRWYWx1ZSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmxvYWRHcmlkKGNoYW5nZXMuc3JjLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzLml0ZW1zICYmIGNoYW5nZXMuaXRlbXMuY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb290ZXIgJiZcbiAgICAgICAgKGNoYW5nZXMuY3JlYXRlVGV4dCAmJiBjaGFuZ2VzLmNyZWF0ZVRleHQuY3VycmVudFZhbHVlKSkge1xuICAgICAgdGhpcy5mb290ZXIuY3JlYXRlVGV4dCA9IGNoYW5nZXMuY3JlYXRlVGV4dC5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0cyhbXSk7XG4gICAgdGhpcy5xdWVyeSA9IHRoaXMucXVlcnkgfHwge307XG4gICAgaWYgKHRoaXMucmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoLnN1YnNjcmliZSgocXVlcnk6IG9iamVjdCkgPT4gdGhpcy5yZWZyZXNoR3JpZChxdWVyeSkpO1xuICAgIH1cbiAgICB0aGlzLmxvYWRHcmlkKHRoaXMuc3JjKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhY3Rpb25BbGxvd2VkKGFjdGlvbikge1xuICAgIGlmICh0aGlzLmlzQWN0aW9uQWxsb3dlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9uRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyB8fCBlcnJvci5tZXNzYWdlKSB7XG4gICAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydCh7XG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlIHx8IGVycm9yXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoR3JpZChxdWVyeT86IGFueSkge1xuICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0cyhbXSk7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5IHx8IHRoaXMucXVlcnk7XG4gICAgaWYgKCF0aGlzLnF1ZXJ5Lmhhc093blByb3BlcnR5KCdsaW1pdCcpKSB7XG4gICAgICB0aGlzLnF1ZXJ5LmxpbWl0ID0gMTA7XG4gICAgfVxuICAgIGlmICghdGhpcy5xdWVyeS5oYXNPd25Qcm9wZXJ0eSgnc2tpcCcpKSB7XG4gICAgICB0aGlzLnF1ZXJ5LnNraXAgPSAwO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIEZvcm1pby5jYWNoZSA9IHt9O1xuICAgIGxldCBsb2FkZXIgPSBudWxsO1xuICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICBsb2FkZXIgPSBQcm9taXNlLnJlc29sdmUodGhpcy5ib2R5LnNldFJvd3ModGhpcy5xdWVyeSwgdGhpcy5pdGVtcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkZXIgPSB0aGlzLmJvZHkubG9hZCh0aGlzLmZvcm1pbywgdGhpcy5xdWVyeSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvYWRlci50aGVuKGluZm8gPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pLmNhdGNoKGVycm9yID0+IHRoaXMub25FcnJvcihlcnJvcikpO1xuICB9XG5cbiAgc2V0UGFnZShudW0gPSAtMSkge1xuICAgIHRoaXMucGFnZSA9IG51bSAhPT0gLTEgPyBudW0gOiB0aGlzLnBhZ2U7XG4gICAgaWYgKCF0aGlzLnF1ZXJ5Lmhhc093blByb3BlcnR5KCdsaW1pdCcpKSB7XG4gICAgICB0aGlzLnF1ZXJ5LmxpbWl0ID0gMTA7XG4gICAgfVxuICAgIGlmICghdGhpcy5xdWVyeS5oYXNPd25Qcm9wZXJ0eSgnc2tpcCcpKSB7XG4gICAgICB0aGlzLnF1ZXJ5LnNraXAgPSAwO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5LnNraXAgPSB0aGlzLnBhZ2UgKiB0aGlzLnF1ZXJ5LmxpbWl0O1xuICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgfVxuXG4gIHNvcnRDb2x1bW4oaGVhZGVyOiBHcmlkSGVhZGVyKSB7XG4gICAgLy8gUmVzZXQgYWxsIG90aGVyIGNvbHVtbiBzb3J0cy5cbiAgICBlYWNoKHRoaXMuaGVhZGVyLmhlYWRlcnMsIChjb2w6IGFueSkgPT4ge1xuICAgICAgaWYgKGNvbC5rZXkgIT09IGhlYWRlci5rZXkpIHtcbiAgICAgICAgY29sLnNvcnQgPSAnJztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzd2l0Y2ggKGhlYWRlci5zb3J0KSB7XG4gICAgICBjYXNlICdhc2MnOlxuICAgICAgICBoZWFkZXIuc29ydCA9IFNvcnRUeXBlLkRFU0M7XG4gICAgICAgIHRoaXMucXVlcnkuc29ydCA9ICctJyArIGhlYWRlci5rZXk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVzYyc6XG4gICAgICAgIGhlYWRlci5zb3J0ID0gdW5kZWZpbmVkO1xuICAgICAgICBkZWxldGUgdGhpcy5xdWVyeS5zb3J0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICBoZWFkZXIuc29ydCA9IFNvcnRUeXBlLkFTQztcbiAgICAgICAgdGhpcy5xdWVyeS5zb3J0ID0gaGVhZGVyLmtleTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgfVxuXG4gIHBhZ2VDaGFuZ2VkKHBhZ2U6IGFueSkge1xuICAgIHRoaXMuc2V0UGFnZShwYWdlLnBhZ2UgLSAxKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJmb3JtaW8tZ3JpZFwiPlxuICA8Zm9ybWlvLWFsZXJ0cyBbYWxlcnRzXT1cImFsZXJ0c1wiPjwvZm9ybWlvLWFsZXJ0cz5cbiAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtc3RyaXBlZCB0YWJsZS1ob3ZlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbml0aWFsaXplZCAmJiBbZm9vdGVyUG9zaXRpb25zLnRvcCwgZm9vdGVyUG9zaXRpb25zLmJvdGhdLmluZGV4T2YoZm9vdGVyUG9zaXRpb24pICE9PSAtMVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXIudGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBwb3NpdGlvbjogZm9vdGVyUG9zaXRpb25zLnRvcCwgbGFiZWw6IGxhYmVsIH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5pdGlhbGl6ZWRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGZvcm1pby1sb2FkZXIgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj48L2Zvcm1pby1sb2FkZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluaXRpYWxpemVkXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYm9keS50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbml0aWFsaXplZCAmJiBbZm9vdGVyUG9zaXRpb25zLmJvdHRvbSwgZm9vdGVyUG9zaXRpb25zLmJvdGhdLmluZGV4T2YoZm9vdGVyUG9zaXRpb24pICE9PSAtMVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXIudGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBwb3NpdGlvbjogZm9vdGVyUG9zaXRpb25zLmJvdHRvbSwgbGFiZWw6IGxhYmVsIH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,89 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { RouterModule } from '@angular/router';
5
+ import { FormioModule } from '@formio/angular';
6
+ import { FormioAlerts } from '@formio/angular';
7
+ import { FormioGridComponent } from './grid.component';
8
+ import { PaginationModule } from 'ngx-bootstrap/pagination';
9
+ import { FormGridHeaderComponent } from './form/FormGridHeader.component';
10
+ import { FormGridBodyComponent } from './form/FormGridBody.component';
11
+ import { FormGridFooterComponent } from './form/FormGridFooter.component';
12
+ import { SubmissionGridHeaderComponent } from './submission/SubmissionGridHeader.component';
13
+ import { SubmissionGridBodyComponent } from './submission/SubmissionGridBody.component';
14
+ import { SubmissionGridFooterComponent } from './submission/SubmissionGridFooter.component';
15
+ import { GridHeaderComponent } from './GridHeaderComponent';
16
+ import { GridBodyComponent } from './GridBodyComponent';
17
+ import { GridFooterComponent } from './GridFooterComponent';
18
+ import { GridService } from './grid.service';
19
+ import { TimeSince } from './form/time-since.pipe';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "ngx-bootstrap/pagination";
22
+ export class FormioGrid {
23
+ }
24
+ FormioGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FormioGrid, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ FormioGrid.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FormioGrid, declarations: [FormioGridComponent,
26
+ FormGridHeaderComponent,
27
+ FormGridBodyComponent,
28
+ FormGridFooterComponent,
29
+ SubmissionGridHeaderComponent,
30
+ SubmissionGridBodyComponent,
31
+ SubmissionGridFooterComponent,
32
+ GridHeaderComponent,
33
+ GridBodyComponent,
34
+ GridFooterComponent,
35
+ TimeSince], imports: [CommonModule,
36
+ FormsModule,
37
+ FormioModule,
38
+ RouterModule, i1.PaginationModule], exports: [FormioGridComponent] });
39
+ FormioGrid.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FormioGrid, providers: [
40
+ FormioAlerts,
41
+ GridService
42
+ ], imports: [[
43
+ CommonModule,
44
+ FormsModule,
45
+ FormioModule,
46
+ RouterModule,
47
+ PaginationModule.forRoot()
48
+ ]] });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FormioGrid, decorators: [{
50
+ type: NgModule,
51
+ args: [{
52
+ imports: [
53
+ CommonModule,
54
+ FormsModule,
55
+ FormioModule,
56
+ RouterModule,
57
+ PaginationModule.forRoot()
58
+ ],
59
+ declarations: [
60
+ FormioGridComponent,
61
+ FormGridHeaderComponent,
62
+ FormGridBodyComponent,
63
+ FormGridFooterComponent,
64
+ SubmissionGridHeaderComponent,
65
+ SubmissionGridBodyComponent,
66
+ SubmissionGridFooterComponent,
67
+ GridHeaderComponent,
68
+ GridBodyComponent,
69
+ GridFooterComponent,
70
+ TimeSince
71
+ ],
72
+ exports: [
73
+ FormioGridComponent
74
+ ],
75
+ entryComponents: [
76
+ FormGridHeaderComponent,
77
+ FormGridBodyComponent,
78
+ FormGridFooterComponent,
79
+ SubmissionGridHeaderComponent,
80
+ SubmissionGridBodyComponent,
81
+ SubmissionGridFooterComponent
82
+ ],
83
+ providers: [
84
+ FormioAlerts,
85
+ GridService
86
+ ]
87
+ }]
88
+ }] });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9ncmlkL3NyYy9ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDNUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7O0FBc0NsRCxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTt3R0FBVixVQUFVLGlCQTVCbkIsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLDZCQUE2QjtRQUM3QiwyQkFBMkI7UUFDM0IsNkJBQTZCO1FBQzdCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLFNBQVMsYUFqQlQsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZO1FBQ1osWUFBWSxrQ0FpQlosbUJBQW1CO3dHQWVWLFVBQVUsYUFMVjtRQUNULFlBQVk7UUFDWixXQUFXO0tBQ1osWUFsQ1E7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLFlBQVk7WUFDWixZQUFZO1lBQ1osZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1NBQzNCOzJGQThCVSxVQUFVO2tCQXJDdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7cUJBQzNCO29CQUNELFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3dCQUMzQiw2QkFBNkI7d0JBQzdCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLFNBQVM7cUJBQ1Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7b0JBQ0QsZUFBZSxFQUFFO3dCQUNmLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3dCQUMzQiw2QkFBNkI7cUJBQzlCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxZQUFZO3dCQUNaLFdBQVc7cUJBQ1o7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvcm1pb01vZHVsZSB9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQgeyBGb3JtaW9BbGVydHMgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHsgRm9ybWlvR3JpZENvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBGb3JtR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS9Gb3JtR3JpZEhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdyaWRCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL0Zvcm1HcmlkQm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdyaWRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0vRm9ybUdyaWRGb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFN1Ym1pc3Npb25HcmlkSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdWJtaXNzaW9uL1N1Ym1pc3Npb25HcmlkSGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJtaXNzaW9uR3JpZEJvZHlDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pc3Npb24vU3VibWlzc2lvbkdyaWRCb2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJtaXNzaW9uR3JpZEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vc3VibWlzc2lvbi9TdWJtaXNzaW9uR3JpZEZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vR3JpZEhlYWRlckNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkQm9keUNvbXBvbmVudCB9IGZyb20gJy4vR3JpZEJvZHlDb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vR3JpZEZvb3RlckNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4vZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVTaW5jZSB9IGZyb20gJy4vZm9ybS90aW1lLXNpbmNlLnBpcGUnXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEZvcm1pb01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZS5mb3JSb290KClcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRm9ybWlvR3JpZENvbXBvbmVudCxcbiAgICBGb3JtR3JpZEhlYWRlckNvbXBvbmVudCxcbiAgICBGb3JtR3JpZEJvZHlDb21wb25lbnQsXG4gICAgRm9ybUdyaWRGb290ZXJDb21wb25lbnQsXG4gICAgU3VibWlzc2lvbkdyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgU3VibWlzc2lvbkdyaWRCb2R5Q29tcG9uZW50LFxuICAgIFN1Ym1pc3Npb25HcmlkRm9vdGVyQ29tcG9uZW50LFxuICAgIEdyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgR3JpZEJvZHlDb21wb25lbnQsXG4gICAgR3JpZEZvb3RlckNvbXBvbmVudCxcbiAgICBUaW1lU2luY2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZvcm1pb0dyaWRDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgRm9ybUdyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgRm9ybUdyaWRCb2R5Q29tcG9uZW50LFxuICAgIEZvcm1HcmlkRm9vdGVyQ29tcG9uZW50LFxuICAgIFN1Ym1pc3Npb25HcmlkSGVhZGVyQ29tcG9uZW50LFxuICAgIFN1Ym1pc3Npb25HcmlkQm9keUNvbXBvbmVudCxcbiAgICBTdWJtaXNzaW9uR3JpZEZvb3RlckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtaW9BbGVydHMsXG4gICAgR3JpZFNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtaW9HcmlkIHt9XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GridService {
4
+ constructor() { }
5
+ setRows(rows) {
6
+ this.rows = rows;
7
+ }
8
+ getFormsPerPage() {
9
+ return this.rows?.length;
10
+ }
11
+ }
12
+ GridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
+ GridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GridService });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GridService, decorators: [{
15
+ type: Injectable
16
+ }], ctorParameters: function () { return []; } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vZ3JpZC9zcmMvZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLGdCQUFlLENBQUM7SUFFaEIsT0FBTyxDQUFDLElBQUk7UUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDM0IsQ0FBQzs7d0dBVlUsV0FBVzs0R0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgX2ludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdyaWRTZXJ2aWNlIHtcbiAgcHVibGljIHJvd3M6IEFycmF5PGFueT47XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBzZXRSb3dzKHJvd3MpIHtcbiAgICB0aGlzLnJvd3MgPSByb3dzO1xuICB9XG5cbiAgZ2V0Rm9ybXNQZXJQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnJvd3M/Lmxlbmd0aDtcbiAgfVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { Component } from '@angular/core';
2
+ import { get } from 'lodash';
3
+ import { GridBodyComponent } from '../GridBodyComponent';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class SubmissionGridBodyComponent extends GridBodyComponent {
7
+ load(formio, query) {
8
+ query = query || {};
9
+ return formio.loadSubmissions({ params: query })
10
+ .then((submissions) => this.setRows(query, submissions));
11
+ }
12
+ /**
13
+ * Render the cell data.
14
+ *
15
+ * @param submission
16
+ * @param header
17
+ * @return any
18
+ */
19
+ view(submission, header) {
20
+ const cellValue = get(submission, header.key);
21
+ if (header.renderCell) {
22
+ return header.renderCell(cellValue, header.component);
23
+ }
24
+ else {
25
+ if (header.component) {
26
+ if (header.component.getView) {
27
+ return header.component.getView(cellValue);
28
+ }
29
+ return header.component.asString(cellValue);
30
+ }
31
+ else {
32
+ return cellValue.toString();
33
+ }
34
+ }
35
+ }
36
+ }
37
+ SubmissionGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubmissionGridBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
+ SubmissionGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SubmissionGridBodyComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-template>\n <tbody>\n <tr *ngFor=\"let row of rows\" (click)=\"onRowSelect($event, row)\">\n <td *ngFor=\"let rowHeader of header.headers\" [innerHTML]=\"view(row, rowHeader)\"></td>\n </tr>\n </tbody>\n</ng-template>\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubmissionGridBodyComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ template: "<ng-template>\n <tbody>\n <tr *ngFor=\"let row of rows\" (click)=\"onRowSelect($event, row)\">\n <td *ngFor=\"let rowHeader of header.headers\" [innerHTML]=\"view(row, rowHeader)\"></td>\n </tr>\n </tbody>\n</ng-template>\n" }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VibWlzc2lvbkdyaWRCb2R5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL2dyaWQvc3JjL3N1Ym1pc3Npb24vU3VibWlzc2lvbkdyaWRCb2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL2dyaWQvc3JjL3N1Ym1pc3Npb24vU3VibWlzc2lvbkdyaWRCb2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFRLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBT3pELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBaUI7SUFDaEUsSUFBSSxDQUFDLE1BQTRCLEVBQUUsS0FBVztRQUM1QyxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDN0MsSUFBSSxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLFVBQTRCLEVBQUUsTUFBa0I7UUFDbkQsTUFBTSxTQUFTLEdBQVEsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3JCLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3BCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7b0JBQzVCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQzVDO2dCQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsT0FBTyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUM7O3dIQTVCVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwyRUNUeEMsOE9BT0E7MkZERWEsMkJBQTJCO2tCQUh2QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlYWNoLCBnZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgR3JpZEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi9HcmlkQm9keUNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1pb1Byb21pc2VTZXJ2aWNlfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZEhlYWRlciB9IGZyb20gJy4uL3R5cGVzL2dyaWQtaGVhZGVyJztcbmltcG9ydCB7Rm9ybWlvU3VibWlzc2lvbn0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vU3VibWlzc2lvbkdyaWRCb2R5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdWJtaXNzaW9uR3JpZEJvZHlDb21wb25lbnQgZXh0ZW5kcyBHcmlkQm9keUNvbXBvbmVudCB7XG4gIGxvYWQoZm9ybWlvOiBGb3JtaW9Qcm9taXNlU2VydmljZSwgcXVlcnk/OiBhbnkpIHtcbiAgICBxdWVyeSA9IHF1ZXJ5IHx8IHt9O1xuICAgIHJldHVybiBmb3JtaW8ubG9hZFN1Ym1pc3Npb25zKHsgcGFyYW1zOiBxdWVyeSB9KVxuICAgICAgLnRoZW4oKHN1Ym1pc3Npb25zOiBhbnkpID0+IHRoaXMuc2V0Um93cyhxdWVyeSwgc3VibWlzc2lvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGNlbGwgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHN1Ym1pc3Npb25cbiAgICogQHBhcmFtIGhlYWRlclxuICAgKiBAcmV0dXJuIGFueVxuICAgKi9cbiAgdmlldyhzdWJtaXNzaW9uOiBGb3JtaW9TdWJtaXNzaW9uLCBoZWFkZXI6IEdyaWRIZWFkZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNlbGxWYWx1ZTogYW55ID0gZ2V0KHN1Ym1pc3Npb24sIGhlYWRlci5rZXkpO1xuICAgIGlmIChoZWFkZXIucmVuZGVyQ2VsbCkge1xuICAgICAgcmV0dXJuIGhlYWRlci5yZW5kZXJDZWxsKGNlbGxWYWx1ZSwgaGVhZGVyLmNvbXBvbmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChoZWFkZXIuY29tcG9uZW50KSB7XG4gICAgICAgIGlmIChoZWFkZXIuY29tcG9uZW50LmdldFZpZXcpIHtcbiAgICAgICAgICByZXR1cm4gaGVhZGVyLmNvbXBvbmVudC5nZXRWaWV3KGNlbGxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhlYWRlci5jb21wb25lbnQuYXNTdHJpbmcoY2VsbFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjZWxsVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZT5cbiAgPHRib2R5PlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIiAoY2xpY2spPVwib25Sb3dTZWxlY3QoJGV2ZW50LCByb3cpXCI+XG4gICAgICA8dGQgKm5nRm9yPVwibGV0IHJvd0hlYWRlciBvZiBoZWFkZXIuaGVhZGVyc1wiIFtpbm5lckhUTUxdPVwidmlldyhyb3csIHJvd0hlYWRlcilcIj48L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,23 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import { GridFooterComponent } from '../GridFooterComponent';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-bootstrap/pagination";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ export class SubmissionGridFooterComponent extends GridFooterComponent {
8
+ constructor() {
9
+ super();
10
+ }
11
+ ngOnInit() {
12
+ if (!this.size) {
13
+ this.size = 7;
14
+ }
15
+ }
16
+ }
17
+ SubmissionGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubmissionGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ SubmissionGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SubmissionGridFooterComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-template #footer let-position=\"position\">\n <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </thead>\n <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </tfoot>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <tr>\n <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\n <button *ngIf=\"actionAllowed('submissionCreate') && createText\" class=\"btn btn-primary pull-left float-left\" (click)=\"createItem.emit('form')\"><em class=\"glyphicon glyphicon-plus fa fa-plus\"></em> {{ createText }}</button>\n <span class=\"pull-right float-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\n <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\"></pagination>\n </td>\n </tr>\n</ng-template>\n", styles: ["tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\n"], components: [{ type: i1.PaginationComponent, selector: "pagination", inputs: ["itemsPerPage", "totalItems", "maxSize", "rotate", "boundaryLinks", "directionLinks", "pageBtnClass", "align", "firstText", "previousText", "nextText", "lastText", "disabled", "customPageTemplate", "customNextTemplate", "customPreviousTemplate", "customFirstTemplate", "customLastTemplate"], outputs: ["numPages", "pageChanged"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubmissionGridFooterComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ encapsulation: ViewEncapsulation.None, template: "<ng-template #footer let-position=\"position\">\n <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </thead>\n <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </tfoot>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <tr>\n <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\n <button *ngIf=\"actionAllowed('submissionCreate') && createText\" class=\"btn btn-primary pull-left float-left\" (click)=\"createItem.emit('form')\"><em class=\"glyphicon glyphicon-plus fa fa-plus\"></em> {{ createText }}</button>\n <span class=\"pull-right float-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\n <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\"></pagination>\n </td>\n </tr>\n</ng-template>\n", styles: ["tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\n"] }]
22
+ }], ctorParameters: function () { return []; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VibWlzc2lvbkdyaWRGb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vZ3JpZC9zcmMvc3VibWlzc2lvbi9TdWJtaXNzaW9uR3JpZEZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9ncmlkL3NyYy9zdWJtaXNzaW9uL1N1Ym1pc3Npb25HcmlkRm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBTzdELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxtQkFBbUI7SUFFcEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7MEhBVlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMkVDUjFDLHlxQ0FrQkE7MkZEVmEsNkJBQTZCO2tCQUx6QyxTQUFTO29DQUdPLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmlkRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vR3JpZEZvb3RlckNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vU3VibWlzc2lvbkdyaWRGb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vZ3JpZC5mb290ZXIuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFN1Ym1pc3Npb25HcmlkRm9vdGVyQ29tcG9uZW50IGV4dGVuZHMgR3JpZEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5zaXplKSB7XG4gICAgICB0aGlzLnNpemUgPSA3O1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNmb290ZXIgbGV0LXBvc2l0aW9uPVwicG9zaXRpb25cIj5cbiAgPHRoZWFkIGNsYXNzPVwiZm9ybWlvLWdyaWQtZm9vdGVyXCIgKm5nSWY9XCJwb3NpdGlvbiA9PT0gZm9vdGVyUG9zaXRpb25zLnRvcFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdEZvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvdGhlYWQ+XG4gIDx0Zm9vdCBjbGFzcz1cImZvcm1pby1ncmlkLWZvb3RlclwiICpuZ0lmPVwicG9zaXRpb24gPT09IGZvb3RlclBvc2l0aW9ucy5ib3R0b21cIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L3Rmb290PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyVGVtcGxhdGU+XG4gIDx0cj5cbiAgICA8dGQgKm5nSWY9XCJoZWFkZXJcIiBbY29sU3Bhbl09XCJoZWFkZXIubnVtSGVhZGVyc1wiPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGlvbkFsbG93ZWQoJ3N1Ym1pc3Npb25DcmVhdGUnKSAmJiBjcmVhdGVUZXh0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHVsbC1sZWZ0IGZsb2F0LWxlZnRcIiAoY2xpY2spPVwiY3JlYXRlSXRlbS5lbWl0KCdmb3JtJylcIj48ZW0gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXBsdXMgZmEgZmEtcGx1c1wiPjwvZW0+IHt7IGNyZWF0ZVRleHQgfX08L2J1dHRvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBmbG9hdC1yaWdodCBpdGVtLWNvdW50ZXJcIj48c3BhbiBjbGFzcz1cInBhZ2UtbnVtXCI+e3sgYm9keS5maXJzdEl0ZW0gfX0gLSB7eyBib2R5Lmxhc3RJdGVtIH19PC9zcGFuPiAvIHt7IGJvZHkudG90YWwgfX0gdG90YWw8L3NwYW4+XG4gICAgICA8cGFnaW5hdGlvbiBbdG90YWxJdGVtc109XCJib2R5LnRvdGFsXCIgW2l0ZW1zUGVyUGFnZV09XCJib2R5LmxpbWl0XCIgWyhuZ01vZGVsKV09XCJib2R5LnNraXBcIiAocGFnZUNoYW5nZWQpPVwicGFnZUNoYW5nZWQuZW1pdCgkZXZlbnQpXCIgW21heFNpemVdPVwic2l6ZVwiIGNsYXNzPVwianVzdGlmeS1jb250ZW50LWNlbnRlciBwYWdpbmF0aW9uLXNtXCI+PC9wYWdpbmF0aW9uPlxuICAgIDwvdGQ+XG4gIDwvdHI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,61 @@
1
+ import { Component } from '@angular/core';
2
+ import { Utils, Components } from 'formiojs';
3
+ import { GridHeaderComponent } from '../GridHeaderComponent';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class SubmissionGridHeaderComponent extends GridHeaderComponent {
7
+ load(formio, query, columns) {
8
+ query = query || {};
9
+ return formio.loadForm({ params: query }).then((form) => {
10
+ this.headers = [];
11
+ this.formComponents = new Map();
12
+ this.setComponents(form.components);
13
+ columns ? columns.forEach(column => {
14
+ this.setHeader(this.getHeaderForColumn(column, this.formComponents.get(column.path)));
15
+ }) : this.setComponentsHeaders(this.formComponents);
16
+ return this.headers;
17
+ });
18
+ }
19
+ setHeader(header) {
20
+ this.headers.push(header);
21
+ }
22
+ getHeaderForColumn(column, component, sort) {
23
+ return {
24
+ label: column.label,
25
+ key: column.path,
26
+ sort: sort,
27
+ component: component ? Components.create(component, null, null, true) : undefined,
28
+ renderCell: column ? column.renderCell : undefined
29
+ };
30
+ }
31
+ getHeaderForComponent(component, path, sort) {
32
+ return {
33
+ label: component.label,
34
+ key: path,
35
+ sort: sort,
36
+ component: component ? Components.create(component, null, null, true) : undefined,
37
+ };
38
+ }
39
+ // Set headers from components in case if columns are not provided
40
+ setComponentsHeaders(components, sort) {
41
+ components.forEach((component, path) => {
42
+ if (component.input &&
43
+ (!component.hasOwnProperty('tableView') || component.tableView)) {
44
+ this.setHeader(this.getHeaderForComponent(component, path, sort));
45
+ }
46
+ });
47
+ }
48
+ // Map components
49
+ setComponents(components) {
50
+ Utils.eachComponent(components, (component, newPath) => {
51
+ this.formComponents.set(`data.${newPath}`, component);
52
+ });
53
+ }
54
+ }
55
+ SubmissionGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubmissionGridHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
56
+ SubmissionGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SubmissionGridHeaderComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-template>\n <thead>\n <tr>\n <th *ngFor=\"let header of headers\">\n <a (click)=\"sort.emit(header)\">\n {{ header.label }}&nbsp;<span [ngClass]=\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\" class=\"glyphicon\" *ngIf=\"header.sort\"></span>\n </a>\n </th>\n </tr>\n </thead>\n</ng-template>\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubmissionGridHeaderComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ template: "<ng-template>\n <thead>\n <tr>\n <th *ngFor=\"let header of headers\">\n <a (click)=\"sort.emit(header)\">\n {{ header.label }}&nbsp;<span [ngClass]=\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\" class=\"glyphicon\" *ngIf=\"header.sort\"></span>\n </a>\n </th>\n </tr>\n </thead>\n</ng-template>\n" }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VibWlzc2lvbkdyaWRIZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vZ3JpZC9zcmMvc3VibWlzc2lvbi9TdWJtaXNzaW9uR3JpZEhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9ncmlkL3NyYy9zdWJtaXNzaW9uL1N1Ym1pc3Npb25HcmlkSGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7QUFTM0QsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQUtwRSxJQUFJLENBQUMsTUFBNEIsRUFBRSxLQUFXLEVBQUUsT0FBMkI7UUFDekUsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBZ0IsRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7WUFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV0RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFrQixFQUFFLFNBQW1DLEVBQUUsSUFBZTtRQUN6RixPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNoQixJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3RHLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxTQUFrQyxFQUFFLElBQVksRUFBRSxJQUFlO1FBQ3JGLE9BQU87WUFDTCxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7WUFDdEIsR0FBRyxFQUFFLElBQUk7WUFDVCxJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3ZHLENBQUM7SUFDSixDQUFDO0lBQ0Qsa0VBQWtFO0lBQ2xFLG9CQUFvQixDQUFDLFVBQWdELEVBQUUsSUFBZTtRQUNwRixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3JDLElBQ0UsU0FBUyxDQUFDLEtBQUs7Z0JBQ2YsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUMvRDtnQkFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbkU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsYUFBYSxDQUFDLFVBQVU7UUFDdEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFrQyxFQUFFLE9BQWUsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzswSEExRFUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMkVDWDFDLG9aQVdBOzJGREFhLDZCQUE2QjtrQkFIekMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVdGlscywgQ29tcG9uZW50cywgRXh0ZW5kZWRDb21wb25lbnRTY2hlbWF9IGZyb20gJ2Zvcm1pb2pzJztcbmltcG9ydCB7R3JpZEhlYWRlckNvbXBvbmVudH0gZnJvbSAnLi4vR3JpZEhlYWRlckNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1pb1Byb21pc2VTZXJ2aWNlfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtDb21wb25lbnRJbnN0YW5jZSwgRm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7R3JpZENvbHVtbn0gZnJvbSAnLi4vdHlwZXMvZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHtHcmlkSGVhZGVyLCBTb3J0VHlwZX0gZnJvbSAnLi4vdHlwZXMvZ3JpZC1oZWFkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL1N1Ym1pc3Npb25HcmlkSGVhZGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdWJtaXNzaW9uR3JpZEhlYWRlckNvbXBvbmVudCBleHRlbmRzIEdyaWRIZWFkZXJDb21wb25lbnQge1xuXG4gIC8vIE1hcCBzdHJ1Y3R1cmUgd2hlcmUgdGhlIGtleSBpcyB0aGUgcGF0aCBhbmQgdGhlIHZhbHVlIGlzIHRoZSBjb21wb25lbnRcbiAgZm9ybUNvbXBvbmVudHM6IE1hcDxzdHJpbmcsIEV4dGVuZGVkQ29tcG9uZW50U2NoZW1hPjtcblxuICBsb2FkKGZvcm1pbzogRm9ybWlvUHJvbWlzZVNlcnZpY2UsIHF1ZXJ5PzogYW55LCBjb2x1bW5zPzogQXJyYXk8R3JpZENvbHVtbj4pIHtcbiAgICBxdWVyeSA9IHF1ZXJ5IHx8IHt9O1xuICAgIHJldHVybiBmb3JtaW8ubG9hZEZvcm0oe3BhcmFtczogcXVlcnl9KS50aGVuKChmb3JtOiBGb3JtaW9Gb3JtKSA9PiB7XG4gICAgICB0aGlzLmhlYWRlcnMgPSBbXTtcbiAgICAgIHRoaXMuZm9ybUNvbXBvbmVudHMgPSBuZXcgTWFwPHN0cmluZywgRXh0ZW5kZWRDb21wb25lbnRTY2hlbWE+KCk7XG4gICAgICB0aGlzLnNldENvbXBvbmVudHMoZm9ybS5jb21wb25lbnRzKTtcbiAgICAgIGNvbHVtbnMgPyBjb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICB0aGlzLnNldEhlYWRlcih0aGlzLmdldEhlYWRlckZvckNvbHVtbihjb2x1bW4sIHRoaXMuZm9ybUNvbXBvbmVudHMuZ2V0KGNvbHVtbi5wYXRoKSkpO1xuICAgICAgICB9KSA6IHRoaXMuc2V0Q29tcG9uZW50c0hlYWRlcnModGhpcy5mb3JtQ29tcG9uZW50cyk7XG5cbiAgICAgIHJldHVybiB0aGlzLmhlYWRlcnM7XG4gICAgfSk7XG4gIH1cblxuICBzZXRIZWFkZXIoaGVhZGVyOiBHcmlkSGVhZGVyKSB7XG4gICAgdGhpcy5oZWFkZXJzLnB1c2goaGVhZGVyKTtcbiAgfVxuXG4gIGdldEhlYWRlckZvckNvbHVtbihjb2x1bW46IEdyaWRDb2x1bW4sIGNvbXBvbmVudD86IEV4dGVuZGVkQ29tcG9uZW50U2NoZW1hLCBzb3J0PzogU29ydFR5cGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IGNvbHVtbi5sYWJlbCxcbiAgICAgIGtleTogY29sdW1uLnBhdGgsXG4gICAgICBzb3J0OiBzb3J0LFxuICAgICAgY29tcG9uZW50OiBjb21wb25lbnQgPyBDb21wb25lbnRzLmNyZWF0ZShjb21wb25lbnQsIG51bGwsIG51bGwsIHRydWUpIGFzIENvbXBvbmVudEluc3RhbmNlIDogdW5kZWZpbmVkLFxuICAgICAgcmVuZGVyQ2VsbDogY29sdW1uID8gY29sdW1uLnJlbmRlckNlbGwgOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgZ2V0SGVhZGVyRm9yQ29tcG9uZW50KGNvbXBvbmVudDogRXh0ZW5kZWRDb21wb25lbnRTY2hlbWEsIHBhdGg6IHN0cmluZywgc29ydD86IFNvcnRUeXBlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBjb21wb25lbnQubGFiZWwsXG4gICAgICBrZXk6IHBhdGgsXG4gICAgICBzb3J0OiBzb3J0LFxuICAgICAgY29tcG9uZW50OiBjb21wb25lbnQgPyBDb21wb25lbnRzLmNyZWF0ZShjb21wb25lbnQsIG51bGwsIG51bGwsIHRydWUpIGFzIENvbXBvbmVudEluc3RhbmNlIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbiAgLy8gU2V0IGhlYWRlcnMgZnJvbSBjb21wb25lbnRzIGluIGNhc2UgaWYgY29sdW1ucyBhcmUgbm90IHByb3ZpZGVkXG4gIHNldENvbXBvbmVudHNIZWFkZXJzKGNvbXBvbmVudHM6IE1hcDxzdHJpbmcsIEV4dGVuZGVkQ29tcG9uZW50U2NoZW1hPiwgc29ydD86IFNvcnRUeXBlKSB7XG4gICAgY29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQsIHBhdGgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgY29tcG9uZW50LmlucHV0ICYmXG4gICAgICAgICghY29tcG9uZW50Lmhhc093blByb3BlcnR5KCd0YWJsZVZpZXcnKSB8fCBjb21wb25lbnQudGFibGVWaWV3KVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKHRoaXMuZ2V0SGVhZGVyRm9yQ29tcG9uZW50KGNvbXBvbmVudCwgcGF0aCwgc29ydCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gTWFwIGNvbXBvbmVudHNcbiAgc2V0Q29tcG9uZW50cyhjb21wb25lbnRzKSB7XG4gICAgVXRpbHMuZWFjaENvbXBvbmVudChjb21wb25lbnRzLCAoY29tcG9uZW50OiBFeHRlbmRlZENvbXBvbmVudFNjaGVtYSwgbmV3UGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1Db21wb25lbnRzLnNldChgZGF0YS4ke25ld1BhdGh9YCwgY29tcG9uZW50KTtcbiAgICB9KTtcbiAgfVxufVxuXG4iLCI8bmctdGVtcGxhdGU+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCI+XG4gICAgICAgIDxhIChjbGljayk9XCJzb3J0LmVtaXQoaGVhZGVyKVwiPlxuICAgICAgICAgIHt7IGhlYWRlci5sYWJlbCB9fSZuYnNwOzxzcGFuIFtuZ0NsYXNzXT1cInsnZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcCc6IChoZWFkZXIuc29ydCA9PT0gJ2FzYycpLCAnZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbSc6IChoZWFkZXIuc29ydCA9PT0gJ2Rlc2MnKX1cIiBjbGFzcz1cImdseXBoaWNvblwiICpuZ0lmPVwiaGVhZGVyLnNvcnRcIj48L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=