@formio/angular 7.0.0 → 7.5.0-rc.1-dev.1060.2e45ec8

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 (398) hide show
  1. package/.dockerignore +5 -0
  2. package/.editorconfig +13 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  4. package/.github/ISSUE_TEMPLATE/custom-components-support-request.md +15 -0
  5. package/.github/ISSUE_TEMPLATE/question.md +8 -0
  6. package/.github/pull_request_template.md +35 -0
  7. package/.github/workflows/repo.yml +145 -0
  8. package/.travis.yml +4 -0
  9. package/.yo-rc.json +7 -0
  10. package/CHANGELOG.md +1153 -0
  11. package/Dockerfile +20 -0
  12. package/LICENSE +21 -0
  13. package/README.md +204 -13
  14. package/angular.json +38 -0
  15. package/bs-config.json +11 -0
  16. package/package.json +54 -57
  17. package/projects/angular-formio/README.md +24 -0
  18. package/projects/angular-formio/auth/ng-package.json +5 -0
  19. package/projects/angular-formio/auth/src/auth.component.html +11 -0
  20. package/projects/angular-formio/auth/src/auth.component.ts +5 -0
  21. package/projects/angular-formio/auth/src/auth.config.ts +72 -0
  22. package/projects/angular-formio/auth/src/auth.module.ts +33 -0
  23. package/projects/angular-formio/auth/src/auth.routes.ts +34 -0
  24. package/projects/angular-formio/auth/src/auth.service.ts +221 -0
  25. package/{auth/index.d.ts → projects/angular-formio/auth/src/index.ts} +1 -2
  26. package/projects/angular-formio/auth/src/login/login.component.html +1 -0
  27. package/projects/angular-formio/auth/src/login/login.component.ts +11 -0
  28. package/projects/angular-formio/auth/src/public_api.ts +5 -0
  29. package/projects/angular-formio/auth/src/register/register.component.html +1 -0
  30. package/projects/angular-formio/auth/src/register/register.component.ts +11 -0
  31. package/projects/angular-formio/auth/src/resetpass/resetpass.component.html +1 -0
  32. package/projects/angular-formio/auth/src/resetpass/resetpass.component.ts +8 -0
  33. package/projects/angular-formio/embed/ng-package.json +5 -0
  34. package/projects/angular-formio/embed/src/app.service.ts +59 -0
  35. package/projects/angular-formio/embed/src/builder.component.ts +19 -0
  36. package/projects/angular-formio/embed/src/embed.module.ts +23 -0
  37. package/projects/angular-formio/embed/src/formio.component.ts +27 -0
  38. package/projects/angular-formio/embed/src/index.ts +6 -0
  39. package/projects/angular-formio/grid/ng-package.json +5 -0
  40. package/projects/angular-formio/grid/src/GridBodyComponent.ts +80 -0
  41. package/projects/angular-formio/grid/src/GridFooterComponent.ts +25 -0
  42. package/projects/angular-formio/grid/src/GridHeaderComponent.ts +25 -0
  43. package/projects/angular-formio/grid/src/form/FormGridBody.component.html +22 -0
  44. package/projects/angular-formio/grid/src/form/FormGridBody.component.scss +4 -0
  45. package/projects/angular-formio/grid/src/form/FormGridBody.component.ts +46 -0
  46. package/projects/angular-formio/grid/src/form/FormGridFooter.component.html +21 -0
  47. package/projects/angular-formio/grid/src/form/FormGridFooter.component.ts +23 -0
  48. package/projects/angular-formio/grid/src/form/FormGridHeader.component.html +18 -0
  49. package/projects/angular-formio/grid/src/form/FormGridHeader.component.ts +24 -0
  50. package/projects/angular-formio/grid/src/form/index.ts +8 -0
  51. package/projects/angular-formio/grid/src/form/time-since.pipe.ts +31 -0
  52. package/projects/angular-formio/grid/src/grid.component.html +18 -0
  53. package/projects/angular-formio/grid/src/grid.component.scss +9 -0
  54. package/projects/angular-formio/grid/src/grid.component.ts +242 -0
  55. package/projects/angular-formio/grid/src/grid.footer.scss +14 -0
  56. package/projects/angular-formio/grid/src/grid.module.ts +49 -0
  57. package/projects/angular-formio/grid/src/grid.service.ts +16 -0
  58. package/{grid/index.d.ts → projects/angular-formio/grid/src/index.ts} +0 -1
  59. package/projects/angular-formio/grid/src/public_api.ts +5 -0
  60. package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html +7 -0
  61. package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts +39 -0
  62. package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html +18 -0
  63. package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts +20 -0
  64. package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html +11 -0
  65. package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts +72 -0
  66. package/{grid/submission/index.d.ts → projects/angular-formio/grid/src/submission/index.ts} +4 -6
  67. package/projects/angular-formio/grid/src/types/grid-column.ts +7 -0
  68. package/projects/angular-formio/grid/src/types/grid-footer-positions.ts +5 -0
  69. package/projects/angular-formio/grid/src/types/grid-header.ts +14 -0
  70. package/projects/angular-formio/karma.conf.js +32 -0
  71. package/projects/angular-formio/manager/ng-package.json +5 -0
  72. package/projects/angular-formio/manager/src/create/create.component.ts +11 -0
  73. package/projects/angular-formio/manager/src/delete/delete.component.html +6 -0
  74. package/projects/angular-formio/manager/src/delete/delete.component.ts +37 -0
  75. package/projects/angular-formio/manager/src/edit/edit.component.html +19 -0
  76. package/projects/angular-formio/manager/src/edit/edit.component.ts +110 -0
  77. package/projects/angular-formio/manager/src/form/form.component.html +32 -0
  78. package/projects/angular-formio/manager/src/form/form.component.ts +73 -0
  79. package/projects/angular-formio/manager/src/form-manager.config.ts +31 -0
  80. package/projects/angular-formio/manager/src/form-manager.module.ts +54 -0
  81. package/projects/angular-formio/manager/src/form-manager.routes.ts +75 -0
  82. package/projects/angular-formio/manager/src/form-manager.service.ts +190 -0
  83. package/projects/angular-formio/manager/src/index/index.component.html +14 -0
  84. package/projects/angular-formio/manager/src/index/index.component.scss +22 -0
  85. package/projects/angular-formio/manager/src/index/index.component.ts +100 -0
  86. package/{manager/index.d.ts → projects/angular-formio/manager/src/index.ts} +0 -1
  87. package/projects/angular-formio/manager/src/public_api.ts +5 -0
  88. package/projects/angular-formio/manager/src/submission/delete/delete.component.html +6 -0
  89. package/projects/angular-formio/manager/src/submission/delete/delete.component.ts +26 -0
  90. package/projects/angular-formio/manager/src/submission/edit/edit.component.html +7 -0
  91. package/projects/angular-formio/manager/src/submission/edit/edit.component.ts +18 -0
  92. package/projects/angular-formio/manager/src/submission/index/index.component.html +1 -0
  93. package/projects/angular-formio/manager/src/submission/index/index.component.ts +18 -0
  94. package/projects/angular-formio/manager/src/submission/submission/submission.component.html +8 -0
  95. package/projects/angular-formio/manager/src/submission/submission/submission.component.ts +24 -0
  96. package/projects/angular-formio/manager/src/submission/view/view.component.html +7 -0
  97. package/projects/angular-formio/manager/src/submission/view/view.component.ts +9 -0
  98. package/projects/angular-formio/manager/src/view/view.component.html +11 -0
  99. package/projects/angular-formio/manager/src/view/view.component.ts +44 -0
  100. package/projects/angular-formio/ng-package.json +7 -0
  101. package/projects/angular-formio/package.json +37 -0
  102. package/projects/angular-formio/resource/ng-package.json +5 -0
  103. package/projects/angular-formio/resource/src/create/create.component.html +13 -0
  104. package/projects/angular-formio/resource/src/create/create.component.scss +3 -0
  105. package/projects/angular-formio/resource/src/create/create.component.ts +37 -0
  106. package/projects/angular-formio/resource/src/delete/delete.component.html +5 -0
  107. package/projects/angular-formio/resource/src/delete/delete.component.ts +24 -0
  108. package/projects/angular-formio/resource/src/edit/edit.component.html +7 -0
  109. package/projects/angular-formio/resource/src/edit/edit.component.ts +35 -0
  110. package/projects/angular-formio/resource/src/index/index.component.html +10 -0
  111. package/projects/angular-formio/resource/src/index/index.component.ts +64 -0
  112. package/projects/angular-formio/resource/src/index.js +24 -0
  113. package/{resource/index.d.ts → projects/angular-formio/resource/src/index.ts} +0 -1
  114. package/projects/angular-formio/resource/src/public_api.ts +5 -0
  115. package/projects/angular-formio/resource/src/resource.component.html +7 -0
  116. package/projects/angular-formio/resource/src/resource.component.ts +48 -0
  117. package/projects/angular-formio/resource/src/resource.config.ts +17 -0
  118. package/projects/angular-formio/resource/src/resource.module.ts +43 -0
  119. package/projects/angular-formio/resource/src/resource.routes.ts +43 -0
  120. package/projects/angular-formio/resource/src/resource.service.ts +258 -0
  121. package/projects/angular-formio/resource/src/resources.service.ts +24 -0
  122. package/projects/angular-formio/resource/src/view/view.component.html +6 -0
  123. package/projects/angular-formio/resource/src/view/view.component.ts +19 -0
  124. package/projects/angular-formio/src/FormioBaseComponent.ts +554 -0
  125. package/projects/angular-formio/src/components/alerts/formio.alerts.component.html +3 -0
  126. package/projects/angular-formio/src/components/alerts/formio.alerts.component.ts +19 -0
  127. package/projects/angular-formio/src/components/alerts/formio.alerts.ts +21 -0
  128. package/projects/angular-formio/src/components/alerts/parse-html-content.pipe.ts +15 -0
  129. package/projects/angular-formio/src/components/formbuilder/formbuilder.component.html +1 -0
  130. package/projects/angular-formio/src/components/formbuilder/formbuilder.component.ts +213 -0
  131. package/projects/angular-formio/src/components/formio/formio.component.html +8 -0
  132. package/projects/angular-formio/src/components/formio/formio.component.ts +33 -0
  133. package/projects/angular-formio/src/components/formioreport/formioreport.component.html +8 -0
  134. package/projects/angular-formio/src/components/formioreport/formioreport.component.ts +95 -0
  135. package/projects/angular-formio/src/components/loader/formio.loader.component.html +3 -0
  136. package/projects/angular-formio/src/components/loader/formio.loader.component.scss +26 -0
  137. package/projects/angular-formio/src/components/loader/formio.loader.component.ts +10 -0
  138. package/{core.d.ts → projects/angular-formio/src/core.ts} +12 -2
  139. package/projects/angular-formio/src/custom-tags.service.ts +9 -0
  140. package/projects/angular-formio/src/formio-promise.service.ts +36 -0
  141. package/projects/angular-formio/src/formio.common.ts +91 -0
  142. package/projects/angular-formio/src/formio.config.ts +26 -0
  143. package/projects/angular-formio/src/formio.module.ts +38 -0
  144. package/projects/angular-formio/src/formio.service.ts +57 -0
  145. package/projects/angular-formio/src/formio.utils.ts +23 -0
  146. package/{index.d.ts → projects/angular-formio/src/index.ts} +0 -1
  147. package/projects/angular-formio/src/public-api.ts +5 -0
  148. package/projects/angular-formio/src/test.ts +28 -0
  149. package/projects/angular-formio/src/types/alerts-position.ts +6 -0
  150. package/projects/angular-formio/src/types/formio-metadata.ts +10 -0
  151. package/projects/angular-formio/src/types/formio-submission.ts +20 -0
  152. package/projects/angular-formio/tsconfig.lib.json +27 -0
  153. package/projects/angular-formio/tsconfig.lib.prod.json +8 -0
  154. package/projects/angular-formio/tsconfig.spec.json +17 -0
  155. package/projects/angular-formio/tslint.json +17 -0
  156. package/tsconfig.json +39 -0
  157. package/tslint.json +140 -0
  158. package/FormioBaseComponent.d.ts +0 -93
  159. package/FormioBaseComponent.d.ts.map +0 -1
  160. package/auth/auth.component.d.ts +0 -6
  161. package/auth/auth.component.d.ts.map +0 -1
  162. package/auth/auth.config.d.ts +0 -63
  163. package/auth/auth.config.d.ts.map +0 -1
  164. package/auth/auth.module.d.ts +0 -17
  165. package/auth/auth.module.d.ts.map +0 -1
  166. package/auth/auth.routes.d.ts +0 -4
  167. package/auth/auth.routes.d.ts.map +0 -1
  168. package/auth/auth.service.d.ts +0 -41
  169. package/auth/auth.service.d.ts.map +0 -1
  170. package/auth/formio-angular-auth.d.ts.map +0 -1
  171. package/auth/index.d.ts.map +0 -1
  172. package/auth/login/login.component.d.ts +0 -10
  173. package/auth/login/login.component.d.ts.map +0 -1
  174. package/auth/register/register.component.d.ts +0 -10
  175. package/auth/register/register.component.d.ts.map +0 -1
  176. package/auth/resetpass/resetpass.component.d.ts +0 -9
  177. package/auth/resetpass/resetpass.component.d.ts.map +0 -1
  178. package/components/alerts/formio.alerts.component.d.ts +0 -12
  179. package/components/alerts/formio.alerts.component.d.ts.map +0 -1
  180. package/components/alerts/formio.alerts.d.ts +0 -12
  181. package/components/alerts/formio.alerts.d.ts.map +0 -1
  182. package/components/alerts/parse-html-content.pipe.d.ts +0 -8
  183. package/components/alerts/parse-html-content.pipe.d.ts.map +0 -1
  184. package/components/formbuilder/formbuilder.component.d.ts +0 -37
  185. package/components/formbuilder/formbuilder.component.d.ts.map +0 -1
  186. package/components/formio/formio.component.d.ts +0 -15
  187. package/components/formio/formio.component.d.ts.map +0 -1
  188. package/components/formioreport/formioreport.component.d.ts +0 -20
  189. package/components/formioreport/formioreport.component.d.ts.map +0 -1
  190. package/components/loader/formio.loader.component.d.ts +0 -7
  191. package/components/loader/formio.loader.component.d.ts.map +0 -1
  192. package/core.d.ts.map +0 -1
  193. package/custom-tags.service.d.ts +0 -8
  194. package/custom-tags.service.d.ts.map +0 -1
  195. package/esm2022/FormioBaseComponent.mjs +0 -583
  196. package/esm2022/auth/auth.component.mjs +0 -12
  197. package/esm2022/auth/auth.config.mjs +0 -21
  198. package/esm2022/auth/auth.module.mjs +0 -46
  199. package/esm2022/auth/auth.routes.mjs +0 -32
  200. package/esm2022/auth/auth.service.mjs +0 -199
  201. package/esm2022/auth/formio-angular-auth.mjs +0 -5
  202. package/esm2022/auth/index.mjs +0 -9
  203. package/esm2022/auth/login/login.component.mjs +0 -20
  204. package/esm2022/auth/register/register.component.mjs +0 -20
  205. package/esm2022/auth/resetpass/resetpass.component.mjs +0 -17
  206. package/esm2022/components/alerts/formio.alerts.component.mjs +0 -28
  207. package/esm2022/components/alerts/formio.alerts.mjs +0 -13
  208. package/esm2022/components/alerts/parse-html-content.pipe.mjs +0 -19
  209. package/esm2022/components/formbuilder/formbuilder.component.mjs +0 -202
  210. package/esm2022/components/formio/formio.component.mjs +0 -43
  211. package/esm2022/components/formioreport/formioreport.component.mjs +0 -86
  212. package/esm2022/components/loader/formio.loader.component.mjs +0 -15
  213. package/esm2022/core.mjs +0 -18
  214. package/esm2022/custom-tags.service.mjs +0 -14
  215. package/esm2022/formio-angular.mjs +0 -5
  216. package/esm2022/formio-promise.service.mjs +0 -36
  217. package/esm2022/formio.common.mjs +0 -11
  218. package/esm2022/formio.config.mjs +0 -29
  219. package/esm2022/formio.module.mjs +0 -59
  220. package/esm2022/formio.service.mjs +0 -62
  221. package/esm2022/formio.utils.mjs +0 -21
  222. package/esm2022/grid/GridBodyComponent.mjs +0 -89
  223. package/esm2022/grid/GridFooterComponent.mjs +0 -44
  224. package/esm2022/grid/GridHeaderComponent.mjs +0 -34
  225. package/esm2022/grid/form/FormGridBody.component.mjs +0 -63
  226. package/esm2022/grid/form/FormGridFooter.component.mjs +0 -26
  227. package/esm2022/grid/form/FormGridHeader.component.mjs +0 -27
  228. package/esm2022/grid/form/index.mjs +0 -9
  229. package/esm2022/grid/form/time-since.pipe.mjs +0 -37
  230. package/esm2022/grid/formio-angular-grid.mjs +0 -5
  231. package/esm2022/grid/grid.component.mjs +0 -257
  232. package/esm2022/grid/grid.module.mjs +0 -79
  233. package/esm2022/grid/grid.service.mjs +0 -18
  234. package/esm2022/grid/index.mjs +0 -13
  235. package/esm2022/grid/submission/SubmissionGridBody.component.mjs +0 -43
  236. package/esm2022/grid/submission/SubmissionGridFooter.component.mjs +0 -23
  237. package/esm2022/grid/submission/SubmissionGridHeader.component.mjs +0 -63
  238. package/esm2022/grid/submission/index.mjs +0 -9
  239. package/esm2022/grid/types/grid-column.mjs +0 -2
  240. package/esm2022/grid/types/grid-footer-positions.mjs +0 -7
  241. package/esm2022/grid/types/grid-header.mjs +0 -6
  242. package/esm2022/index.mjs +0 -3
  243. package/esm2022/manager/create/create.component.mjs +0 -18
  244. package/esm2022/manager/delete/delete.component.mjs +0 -42
  245. package/esm2022/manager/edit/edit.component.mjs +0 -125
  246. package/esm2022/manager/form/form.component.mjs +0 -80
  247. package/esm2022/manager/form-manager.config.mjs +0 -18
  248. package/esm2022/manager/form-manager.module.mjs +0 -83
  249. package/esm2022/manager/form-manager.routes.mjs +0 -74
  250. package/esm2022/manager/form-manager.service.mjs +0 -185
  251. package/esm2022/manager/formio-angular-manager.mjs +0 -5
  252. package/esm2022/manager/index/index.component.mjs +0 -108
  253. package/esm2022/manager/index.mjs +0 -16
  254. package/esm2022/manager/submission/delete/delete.component.mjs +0 -32
  255. package/esm2022/manager/submission/edit/edit.component.mjs +0 -25
  256. package/esm2022/manager/submission/index/index.component.mjs +0 -25
  257. package/esm2022/manager/submission/submission/submission.component.mjs +0 -29
  258. package/esm2022/manager/submission/view/view.component.mjs +0 -17
  259. package/esm2022/manager/view/view.component.mjs +0 -52
  260. package/esm2022/resource/create/create.component.mjs +0 -43
  261. package/esm2022/resource/delete/delete.component.mjs +0 -29
  262. package/esm2022/resource/edit/edit.component.mjs +0 -42
  263. package/esm2022/resource/formio-angular-resource.mjs +0 -5
  264. package/esm2022/resource/index/index.component.mjs +0 -69
  265. package/esm2022/resource/index.mjs +0 -12
  266. package/esm2022/resource/resource.component.mjs +0 -46
  267. package/esm2022/resource/resource.config.mjs +0 -13
  268. package/esm2022/resource/resource.module.mjs +0 -62
  269. package/esm2022/resource/resource.routes.mjs +0 -42
  270. package/esm2022/resource/resource.service.mjs +0 -229
  271. package/esm2022/resource/resources.service.mjs +0 -25
  272. package/esm2022/resource/view/view.component.mjs +0 -25
  273. package/esm2022/types/alerts-position.mjs +0 -8
  274. package/esm2022/types/formio-metadata.mjs +0 -2
  275. package/esm2022/types/formio-submission.mjs +0 -6
  276. package/fesm2022/formio-angular-auth.mjs +0 -345
  277. package/fesm2022/formio-angular-auth.mjs.map +0 -1
  278. package/fesm2022/formio-angular-grid.mjs +0 -771
  279. package/fesm2022/formio-angular-grid.mjs.map +0 -1
  280. package/fesm2022/formio-angular-manager.mjs +0 -822
  281. package/fesm2022/formio-angular-manager.mjs.map +0 -1
  282. package/fesm2022/formio-angular-resource.mjs +0 -571
  283. package/fesm2022/formio-angular-resource.mjs.map +0 -1
  284. package/fesm2022/formio-angular.mjs +0 -1186
  285. package/fesm2022/formio-angular.mjs.map +0 -1
  286. package/formio-angular.d.ts.map +0 -1
  287. package/formio-promise.service.d.ts +0 -16
  288. package/formio-promise.service.d.ts.map +0 -1
  289. package/formio.common.d.ts +0 -73
  290. package/formio.common.d.ts.map +0 -1
  291. package/formio.config.d.ts +0 -20
  292. package/formio.config.d.ts.map +0 -1
  293. package/formio.module.d.ts +0 -15
  294. package/formio.module.d.ts.map +0 -1
  295. package/formio.service.d.ts +0 -18
  296. package/formio.service.d.ts.map +0 -1
  297. package/formio.utils.d.ts +0 -2
  298. package/formio.utils.d.ts.map +0 -1
  299. package/grid/GridBodyComponent.d.ts +0 -35
  300. package/grid/GridBodyComponent.d.ts.map +0 -1
  301. package/grid/GridFooterComponent.d.ts +0 -20
  302. package/grid/GridFooterComponent.d.ts.map +0 -1
  303. package/grid/GridHeaderComponent.d.ts +0 -16
  304. package/grid/GridHeaderComponent.d.ts.map +0 -1
  305. package/grid/form/FormGridBody.component.d.ts +0 -19
  306. package/grid/form/FormGridBody.component.d.ts.map +0 -1
  307. package/grid/form/FormGridFooter.component.d.ts +0 -10
  308. package/grid/form/FormGridFooter.component.d.ts.map +0 -1
  309. package/grid/form/FormGridHeader.component.d.ts +0 -11
  310. package/grid/form/FormGridHeader.component.d.ts.map +0 -1
  311. package/grid/form/index.d.ts +0 -10
  312. package/grid/form/index.d.ts.map +0 -1
  313. package/grid/form/time-since.pipe.d.ts +0 -8
  314. package/grid/form/time-since.pipe.d.ts.map +0 -1
  315. package/grid/formio-angular-grid.d.ts.map +0 -1
  316. package/grid/grid.component.d.ts +0 -59
  317. package/grid/grid.component.d.ts.map +0 -1
  318. package/grid/grid.module.d.ts +0 -23
  319. package/grid/grid.module.d.ts.map +0 -1
  320. package/grid/grid.service.d.ts +0 -10
  321. package/grid/grid.service.d.ts.map +0 -1
  322. package/grid/index.d.ts.map +0 -1
  323. package/grid/submission/SubmissionGridBody.component.d.ts +0 -19
  324. package/grid/submission/SubmissionGridBody.component.d.ts.map +0 -1
  325. package/grid/submission/SubmissionGridFooter.component.d.ts +0 -10
  326. package/grid/submission/SubmissionGridFooter.component.d.ts.map +0 -1
  327. package/grid/submission/SubmissionGridHeader.component.d.ts +0 -30
  328. package/grid/submission/SubmissionGridHeader.component.d.ts.map +0 -1
  329. package/grid/submission/index.d.ts.map +0 -1
  330. package/grid/types/grid-column.d.ts +0 -7
  331. package/grid/types/grid-column.d.ts.map +0 -1
  332. package/grid/types/grid-footer-positions.d.ts +0 -6
  333. package/grid/types/grid-footer-positions.d.ts.map +0 -1
  334. package/grid/types/grid-header.d.ts +0 -13
  335. package/grid/types/grid-header.d.ts.map +0 -1
  336. package/index.d.ts.map +0 -1
  337. package/manager/create/create.component.d.ts +0 -9
  338. package/manager/create/create.component.d.ts.map +0 -1
  339. package/manager/delete/delete.component.d.ts +0 -18
  340. package/manager/delete/delete.component.d.ts.map +0 -1
  341. package/manager/edit/edit.component.d.ts +0 -31
  342. package/manager/edit/edit.component.d.ts.map +0 -1
  343. package/manager/form/form.component.d.ts +0 -29
  344. package/manager/form/form.component.d.ts.map +0 -1
  345. package/manager/form-manager.config.d.ts +0 -30
  346. package/manager/form-manager.config.d.ts.map +0 -1
  347. package/manager/form-manager.module.d.ts +0 -28
  348. package/manager/form-manager.module.d.ts.map +0 -1
  349. package/manager/form-manager.routes.d.ts +0 -4
  350. package/manager/form-manager.routes.d.ts.map +0 -1
  351. package/manager/form-manager.service.d.ts +0 -37
  352. package/manager/form-manager.service.d.ts.map +0 -1
  353. package/manager/formio-angular-manager.d.ts.map +0 -1
  354. package/manager/index/index.component.d.ts +0 -28
  355. package/manager/index/index.component.d.ts.map +0 -1
  356. package/manager/index.d.ts.map +0 -1
  357. package/manager/submission/delete/delete.component.d.ts +0 -16
  358. package/manager/submission/delete/delete.component.d.ts.map +0 -1
  359. package/manager/submission/edit/edit.component.d.ts +0 -13
  360. package/manager/submission/edit/edit.component.d.ts.map +0 -1
  361. package/manager/submission/index/index.component.d.ts +0 -13
  362. package/manager/submission/index/index.component.d.ts.map +0 -1
  363. package/manager/submission/submission/submission.component.d.ts +0 -15
  364. package/manager/submission/submission/submission.component.d.ts.map +0 -1
  365. package/manager/submission/view/view.component.d.ts +0 -9
  366. package/manager/submission/view/view.component.d.ts.map +0 -1
  367. package/manager/view/view.component.d.ts +0 -24
  368. package/manager/view/view.component.d.ts.map +0 -1
  369. package/resource/create/create.component.d.ts +0 -19
  370. package/resource/create/create.component.d.ts.map +0 -1
  371. package/resource/delete/delete.component.d.ts +0 -14
  372. package/resource/delete/delete.component.d.ts.map +0 -1
  373. package/resource/edit/edit.component.d.ts +0 -22
  374. package/resource/edit/edit.component.d.ts.map +0 -1
  375. package/resource/formio-angular-resource.d.ts.map +0 -1
  376. package/resource/index/index.component.d.ts +0 -23
  377. package/resource/index/index.component.d.ts.map +0 -1
  378. package/resource/index.d.ts.map +0 -1
  379. package/resource/resource.component.d.ts +0 -24
  380. package/resource/resource.component.d.ts.map +0 -1
  381. package/resource/resource.config.d.ts +0 -17
  382. package/resource/resource.config.d.ts.map +0 -1
  383. package/resource/resource.module.d.ts +0 -20
  384. package/resource/resource.module.d.ts.map +0 -1
  385. package/resource/resource.routes.d.ts +0 -4
  386. package/resource/resource.routes.d.ts.map +0 -1
  387. package/resource/resource.service.d.ts +0 -52
  388. package/resource/resource.service.d.ts.map +0 -1
  389. package/resource/resources.service.d.ts +0 -16
  390. package/resource/resources.service.d.ts.map +0 -1
  391. package/resource/view/view.component.d.ts +0 -16
  392. package/resource/view/view.component.d.ts.map +0 -1
  393. package/types/alerts-position.d.ts +0 -7
  394. package/types/alerts-position.d.ts.map +0 -1
  395. package/types/formio-metadata.d.ts +0 -11
  396. package/types/formio-metadata.d.ts.map +0 -1
  397. package/types/formio-submission.d.ts +0 -19
  398. package/types/formio-submission.d.ts.map +0 -1
@@ -0,0 +1,23 @@
1
+ import {Component, ViewEncapsulation, OnInit } from '@angular/core';
2
+ import { GridFooterComponent } from '../GridFooterComponent';
3
+
4
+ @Component({
5
+ templateUrl: './FormGridFooter.component.html',
6
+ styleUrls: ['../grid.footer.scss'],
7
+ encapsulation: ViewEncapsulation.None
8
+ })
9
+ export class FormGridFooterComponent extends GridFooterComponent implements OnInit {
10
+
11
+ constructor() {
12
+ super();
13
+ }
14
+
15
+ ngOnInit() {
16
+ if (!this.createText) {
17
+ this.createText = 'Create Form';
18
+ }
19
+ if (!this.size) {
20
+ this.size = 7;
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,18 @@
1
+ <ng-template>
2
+ <thead>
3
+ <tr>
4
+ <th>
5
+ <div class="row">
6
+ <div class="col-sm-9">
7
+ <a (click)="sort.emit(header)" style="cursor: pointer">
8
+ {{ header.label }}&nbsp;<span [ngClass]="{'fa-caret-up bi-caret-up': (header.sort === 'asc'), 'fa-caret-down bi-caret-down': (header.sort === 'desc')}" class="fa bi" *ngIf="header.sort"></span>
9
+ </a>
10
+ </div>
11
+ <div class="col-sm-3 d-flex justify-content-end">
12
+ Operations
13
+ </div>
14
+ </div>
15
+ </th>
16
+ </tr>
17
+ </thead>
18
+ </ng-template>
@@ -0,0 +1,24 @@
1
+ import {Component} from '@angular/core';
2
+ import {GridHeaderComponent} from '../GridHeaderComponent';
3
+ import {GridHeader, SortType} from '../types/grid-header';
4
+
5
+ @Component({
6
+ selector: 'form-grid-header',
7
+ templateUrl: './FormGridHeader.component.html'
8
+ })
9
+ export class FormGridHeaderComponent extends GridHeaderComponent {
10
+ public header: GridHeader;
11
+ load(formio?: any) {
12
+ this.header = {
13
+ label: 'Title',
14
+ key: 'title',
15
+ sort: SortType.ASC
16
+ };
17
+ this.headers = [this.header];
18
+ return Promise.resolve(this.headers);
19
+ }
20
+
21
+ get numHeaders() {
22
+ return 2;
23
+ }
24
+ }
@@ -0,0 +1,8 @@
1
+ import { FormGridHeaderComponent } from './FormGridHeader.component';
2
+ import { FormGridBodyComponent } from './FormGridBody.component';
3
+ import { FormGridFooterComponent } from './FormGridFooter.component';
4
+ export default {
5
+ header: FormGridHeaderComponent,
6
+ body: FormGridBodyComponent,
7
+ footer: FormGridFooterComponent
8
+ };
@@ -0,0 +1,31 @@
1
+ import { Pipe, PipeTransform } from '@angular/core';
2
+
3
+ @Pipe({
4
+ name: 'timeSince'
5
+ })
6
+ export class TimeSince implements PipeTransform {
7
+ transform(date: Date): string {
8
+ const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;
9
+ let interval;
10
+ if (interval >= 1) {
11
+ return interval + ' year' + (interval > 1 ? 's' : '');
12
+ }
13
+ interval = Math.floor(elapsed / 2592000);
14
+ if (interval >= 1){
15
+ return interval + ' month' + (interval > 1 ? 's' : '');
16
+ }
17
+ interval = Math.floor(elapsed / 86400);
18
+ if (interval >= 1) {
19
+ return interval + ' day' + (interval > 1 ? 's' : '');
20
+ }
21
+ interval = Math.floor(elapsed / 3600);
22
+ if (interval >= 1) {
23
+ return interval + ' hour' + (interval > 1 ? 's' : '');
24
+ }
25
+ interval = Math.floor(elapsed / 60);
26
+ if (interval >= 1) {
27
+ return interval + ' minute' + (interval > 1 ? 's' : '');
28
+ }
29
+ return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');
30
+ }
31
+ }
@@ -0,0 +1,18 @@
1
+ <ng-template #headerTemplate></ng-template>
2
+ <ng-template #bodyTemplate></ng-template>
3
+ <ng-template #footerTemplate></ng-template>
4
+ <div class="formio-grid">
5
+ <formio-alerts [alerts]="alerts"></formio-alerts>
6
+ <table class="table table-bordered table-striped table-hover">
7
+ <ng-container *ngIf="initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1"
8
+ [ngTemplateOutlet]="footer.template" [ngTemplateOutletContext]="{ position: footerPositions.top, label: label }">
9
+ </ng-container>
10
+ <ng-container *ngIf="initialized"
11
+ [ngTemplateOutlet]="header.template"></ng-container>
12
+ <formio-loader [isLoading]="isLoading"></formio-loader>
13
+ <ng-container *ngIf="initialized" [ngTemplateOutlet]="body.template"></ng-container>
14
+ <ng-container *ngIf="initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1"
15
+ [ngTemplateOutlet]="footer.template" [ngTemplateOutletContext]="{ position: footerPositions.bottom, label: label }">
16
+ </ng-container>
17
+ </table>
18
+ </div>
@@ -0,0 +1,9 @@
1
+ .formio-grid {
2
+ position: relative;
3
+ width: 100%;
4
+ }
5
+
6
+ .grid-refresh {
7
+ height: 400px;
8
+ width: 100%;
9
+ }
@@ -0,0 +1,242 @@
1
+ import { GridFooterPositions } from './types/grid-footer-positions';
2
+ import {
3
+ AfterViewInit,
4
+ ChangeDetectorRef,
5
+ Component,
6
+ ComponentFactoryResolver,
7
+ EventEmitter,
8
+ Input,
9
+ OnChanges,
10
+ OnInit,
11
+ Output,
12
+ ViewChild,
13
+ ViewContainerRef
14
+ } from '@angular/core';
15
+ import {FormioAlerts} from '@formio/angular';
16
+ import {each} from 'lodash';
17
+ import {Formio} from '@formio/js/sdk';
18
+ import {GridHeaderComponent} from './GridHeaderComponent';
19
+ import {GridBodyComponent} from './GridBodyComponent';
20
+ import {GridFooterComponent} from './GridFooterComponent';
21
+ import FormComponents from './form/index';
22
+ import SubmissionComponents from './submission/index';
23
+ import {FormioPromiseService} from '@formio/angular';
24
+ import {GridColumn} from './types/grid-column';
25
+ import {GridHeader, SortType} from './types/grid-header';
26
+
27
+ @Component({
28
+ selector: 'formio-grid',
29
+ styleUrls: ['./grid.component.scss'],
30
+ templateUrl: './grid.component.html'
31
+ })
32
+ export class FormioGridComponent implements OnChanges, OnInit, AfterViewInit {
33
+ @Input() footerPosition = GridFooterPositions.bottom;
34
+ @Input() src?: string;
35
+ @Input() items?: Array<any>;
36
+ @Input() onForm?: Promise<any>;
37
+ @Input() query?: any;
38
+ @Input() refresh?: EventEmitter<object>;
39
+ @Input() columns?: Array<GridColumn>;
40
+ @Input() gridType?: string;
41
+ @Input() size?: number;
42
+ @Input() components?: any;
43
+ @Input() formio?: FormioPromiseService;
44
+ @Input() label?: string;
45
+ @Input() createText: String;
46
+ @Input() isActionAllowed: any;
47
+ @Output() select: EventEmitter<object>;
48
+ @Output() rowSelect: EventEmitter<object>;
49
+ @Output() rowAction: EventEmitter<object>;
50
+ @Output() createItem: EventEmitter<any>;
51
+ @Output() error: EventEmitter<any>;
52
+ @ViewChild('headerTemplate', {read: ViewContainerRef, static: true}) headerElement: ViewContainerRef;
53
+ @ViewChild('bodyTemplate', {read: ViewContainerRef, static: true}) bodyElement: ViewContainerRef;
54
+ @ViewChild('footerTemplate', {read: ViewContainerRef, static: true}) footerElement: ViewContainerRef;
55
+
56
+ public page = 0;
57
+ public isLoading = false;
58
+ public initialized = false;
59
+ public header: GridHeaderComponent;
60
+ public body: GridBodyComponent;
61
+ public footer: GridFooterComponent;
62
+ public footerPositions = GridFooterPositions;
63
+
64
+ constructor(
65
+ public alerts: FormioAlerts,
66
+ private resolver: ComponentFactoryResolver,
67
+ private ref: ChangeDetectorRef
68
+ ) {
69
+ this.select = this.rowSelect = new EventEmitter();
70
+ this.rowAction = new EventEmitter();
71
+ this.createItem = new EventEmitter();
72
+ this.error = new EventEmitter();
73
+ this.isLoading = true;
74
+ }
75
+
76
+ createComponent(property, component) {
77
+ const factory = this.resolver.resolveComponentFactory(component);
78
+ const componentRef = property.createComponent(factory);
79
+ return componentRef.instance;
80
+ }
81
+
82
+ loadGrid(src?: string) {
83
+ // If no source is provided, then skip.
84
+ if (!src && !this.formio) {
85
+ return;
86
+ }
87
+ // Do not double load.
88
+ if (this.formio && this.src && (src === this.src)) {
89
+ return;
90
+ }
91
+
92
+ if (src) {
93
+ this.src = src;
94
+ this.formio = new FormioPromiseService(this.src, { formOnly: true });
95
+ }
96
+
97
+ // Load the header.
98
+ this.header.load(this.formio, {}, this.columns)
99
+ .then(() => this.setPage(0))
100
+ .catch(error => this.onError(error));
101
+ }
102
+
103
+ ngOnInit() {
104
+ // Create our components.
105
+ const comps = this.components || ((this.gridType === 'form') ? FormComponents : SubmissionComponents);
106
+
107
+ this.header = this.createComponent(this.headerElement, comps.header);
108
+ this.header.actionAllowed = this.actionAllowed.bind(this);
109
+ this.header.sort.subscribe(header => this.sortColumn(header));
110
+
111
+ this.body = this.createComponent(this.bodyElement, comps.body);
112
+ this.body.header = this.header;
113
+ this.body.actionAllowed = this.actionAllowed.bind(this);
114
+ this.body.rowSelect.subscribe(row => this.rowSelect.emit(row));
115
+ this.body.rowAction.subscribe(action => this.rowAction.emit(action));
116
+
117
+ this.footer = this.createComponent(this.footerElement, comps.footer);
118
+ this.footer.header = this.header;
119
+ this.footer.body = this.body;
120
+ this.footer.actionAllowed = this.actionAllowed.bind(this);
121
+ this.footer.createText = this.createText;
122
+ this.footer.size = this.size;
123
+ this.footer.pageChanged.subscribe(page => this.pageChanged(page));
124
+ this.footer.createItem.subscribe(item => this.createItem.emit(item));
125
+ }
126
+
127
+ ngOnChanges(changes: any) {
128
+ if (this.initialized) {
129
+ if (
130
+ (changes.src && changes.src.currentValue) ||
131
+ (changes.formio && changes.formio.currentValue)
132
+ ) {
133
+ this.loadGrid(changes.src.currentValue);
134
+ }
135
+
136
+ if (changes.items && changes.items.currentValue) {
137
+ this.refreshGrid();
138
+ }
139
+ }
140
+
141
+ if (this.footer &&
142
+ (changes.createText && changes.createText.currentValue)) {
143
+ this.footer.createText = changes.createText.currentValue;
144
+ }
145
+ }
146
+
147
+ ngAfterViewInit() {
148
+ this.alerts.setAlerts([]);
149
+ this.query = this.query || {};
150
+ if (this.refresh) {
151
+ this.refresh.subscribe((query: object) => this.refreshGrid(query));
152
+ }
153
+ this.loadGrid(this.src);
154
+ this.initialized = true;
155
+ this.ref.detectChanges();
156
+ }
157
+
158
+ actionAllowed(action) {
159
+ if (this.isActionAllowed) {
160
+ return this.isActionAllowed(action);
161
+ } else {
162
+ return true;
163
+ }
164
+ }
165
+
166
+ onError(error: any) {
167
+ this.isLoading = false;
168
+ this.error.emit(error);
169
+ if (typeof error === 'string' || error.message) {
170
+ this.alerts.setAlert({
171
+ type: 'danger',
172
+ message: error.message || error
173
+ });
174
+ }
175
+ }
176
+
177
+ refreshGrid(query?: any) {
178
+ this.alerts.setAlerts([]);
179
+ this.query = query || this.query;
180
+ if (!this.query.hasOwnProperty('limit')) {
181
+ this.query.limit = 10;
182
+ }
183
+ if (!this.query.hasOwnProperty('skip')) {
184
+ this.query.skip = 0;
185
+ }
186
+ this.isLoading = true;
187
+ this.ref.detectChanges();
188
+ Formio.cache = {};
189
+ let loader = null;
190
+ if (this.items) {
191
+ loader = Promise.resolve(this.body.setRows(this.query, this.items));
192
+ } else {
193
+ loader = this.body.load(this.formio, this.query);
194
+ }
195
+
196
+ return loader.then(info => {
197
+ this.isLoading = false;
198
+ this.initialized = true;
199
+ this.ref.detectChanges();
200
+ }).catch(error => this.onError(error));
201
+ }
202
+
203
+ setPage(num = -1) {
204
+ this.page = num !== -1 ? num : this.page;
205
+ if (!this.query.hasOwnProperty('limit')) {
206
+ this.query.limit = 10;
207
+ }
208
+ if (!this.query.hasOwnProperty('skip')) {
209
+ this.query.skip = 0;
210
+ }
211
+ this.query.skip = this.page * this.query.limit;
212
+ this.refreshGrid();
213
+ }
214
+
215
+ sortColumn(header: GridHeader) {
216
+ // Reset all other column sorts.
217
+ each(this.header.headers, (col: any) => {
218
+ if (col.key !== header.key) {
219
+ col.sort = '';
220
+ }
221
+ });
222
+ switch (header.sort) {
223
+ case 'asc':
224
+ header.sort = SortType.DESC;
225
+ this.query.sort = '-' + header.key;
226
+ break;
227
+ case 'desc':
228
+ header.sort = undefined;
229
+ delete this.query.sort;
230
+ break;
231
+ case undefined:
232
+ header.sort = SortType.ASC;
233
+ this.query.sort = header.key;
234
+ break;
235
+ }
236
+ this.refreshGrid();
237
+ }
238
+
239
+ pageChanged(page: any) {
240
+ this.setPage(page.page - 1);
241
+ }
242
+ }
@@ -0,0 +1,14 @@
1
+ tfoot.formio-grid-footer {
2
+ td {
3
+ padding: 0.3rem;
4
+ }
5
+
6
+ .page-num {
7
+ font-size: 1.4em;
8
+ }
9
+
10
+ ul.pagination {
11
+ margin-top: 5px;
12
+ margin-bottom: 0;
13
+ }
14
+ }
@@ -0,0 +1,49 @@
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
+ @NgModule({
21
+ imports: [
22
+ CommonModule,
23
+ FormsModule,
24
+ FormioModule,
25
+ RouterModule,
26
+ PaginationModule.forRoot()
27
+ ],
28
+ declarations: [
29
+ FormioGridComponent,
30
+ FormGridHeaderComponent,
31
+ FormGridBodyComponent,
32
+ FormGridFooterComponent,
33
+ SubmissionGridHeaderComponent,
34
+ SubmissionGridBodyComponent,
35
+ SubmissionGridFooterComponent,
36
+ GridHeaderComponent,
37
+ GridBodyComponent,
38
+ GridFooterComponent,
39
+ TimeSince
40
+ ],
41
+ exports: [
42
+ FormioGridComponent
43
+ ],
44
+ providers: [
45
+ FormioAlerts,
46
+ GridService
47
+ ]
48
+ })
49
+ export class FormioGrid {}
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import _intersection from 'lodash/intersection';
3
+
4
+ @Injectable()
5
+ export class GridService {
6
+ public rows: Array<any>;
7
+ constructor() {}
8
+
9
+ setRows(rows) {
10
+ this.rows = rows;
11
+ }
12
+
13
+ getFormsPerPage() {
14
+ return this.rows?.length;
15
+ }
16
+ }
@@ -10,4 +10,3 @@ export { SubmissionGridBodyComponent } from './submission/SubmissionGridBody.com
10
10
  export { SubmissionGridFooterComponent } from './submission/SubmissionGridFooter.component';
11
11
  export { FormioGridComponent } from './grid.component';
12
12
  export { GridService } from './grid.service';
13
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of angular-formio
3
+ */
4
+
5
+ export * from './index';
@@ -0,0 +1,7 @@
1
+ <ng-template>
2
+ <tbody>
3
+ <tr *ngFor="let row of rows" (click)="onRowSelect($event, row)">
4
+ <td *ngFor="let rowHeader of header.headers" [innerHTML]="view(row, rowHeader)"></td>
5
+ </tr>
6
+ </tbody>
7
+ </ng-template>
@@ -0,0 +1,39 @@
1
+ import { Component } from '@angular/core';
2
+ import { each, get } from 'lodash';
3
+ import { GridBodyComponent } from '../GridBodyComponent';
4
+ import {FormioPromiseService} from '@formio/angular';
5
+ import { GridHeader } from '../types/grid-header';
6
+ import {FormioSubmission} from '@formio/angular';
7
+ @Component({
8
+ templateUrl: './SubmissionGridBody.component.html'
9
+ })
10
+ export class SubmissionGridBodyComponent extends GridBodyComponent {
11
+ load(formio: FormioPromiseService, query?: any) {
12
+ query = query || {};
13
+ return formio.loadSubmissions({ params: query })
14
+ .then((submissions: any) => this.setRows(query, submissions));
15
+ }
16
+
17
+ /**
18
+ * Render the cell data.
19
+ *
20
+ * @param submission
21
+ * @param header
22
+ * @return any
23
+ */
24
+ view(submission: FormioSubmission, header: GridHeader): string {
25
+ const cellValue: any = get(submission, header.key);
26
+ if (header.renderCell) {
27
+ return header.renderCell(cellValue, header.component);
28
+ } else {
29
+ if (header.component) {
30
+ if (header.component.getView) {
31
+ return header.component.getView(cellValue);
32
+ }
33
+ return header.component.asString(cellValue);
34
+ } else {
35
+ return cellValue.toString();
36
+ }
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,18 @@
1
+ <ng-template #footer let-position="position">
2
+ <thead class="formio-grid-footer" *ngIf="position === footerPositions.top">
3
+ <ng-container [ngTemplateOutlet]="defaultFooterTemplate"></ng-container>
4
+ </thead>
5
+ <tfoot class="formio-grid-footer" *ngIf="position === footerPositions.bottom">
6
+ <ng-container [ngTemplateOutlet]="defaultFooterTemplate"></ng-container>
7
+ </tfoot>
8
+ </ng-template>
9
+
10
+ <ng-template #defaultFooterTemplate>
11
+ <tr>
12
+ <td *ngIf="header" [colSpan]="header.numHeaders">
13
+ <button *ngIf="actionAllowed('submissionCreate') && createText" class="btn btn-primary float-start" (click)="createItem.emit('form')"><em class="fa fa-plus bi bi-plus"></em> {{ createText }}</button>
14
+ <span class="float-end item-counter"><span class="page-num">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>
15
+ <pagination [totalItems]="body.total" [itemsPerPage]="body.limit" [(ngModel)]="body.skip" (pageChanged)="pageChanged.emit($event)" [maxSize]="size" class="justify-content-center pagination-sm"></pagination>
16
+ </td>
17
+ </tr>
18
+ </ng-template>
@@ -0,0 +1,20 @@
1
+ import {Component, OnInit, ViewEncapsulation} from '@angular/core';
2
+ import { GridFooterComponent } from '../GridFooterComponent';
3
+
4
+ @Component({
5
+ templateUrl: './SubmissionGridFooter.component.html',
6
+ styleUrls: ['../grid.footer.scss'],
7
+ encapsulation: ViewEncapsulation.None
8
+ })
9
+ export class SubmissionGridFooterComponent extends GridFooterComponent implements OnInit {
10
+
11
+ constructor() {
12
+ super();
13
+ }
14
+
15
+ ngOnInit() {
16
+ if (!this.size) {
17
+ this.size = 7;
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ <ng-template>
2
+ <thead>
3
+ <tr>
4
+ <th *ngFor="let header of headers">
5
+ <a (click)="sort.emit(header)">
6
+ {{ header.label }}&nbsp;<span [ngClass]="{'fa-caret-up bi-caret-up': (header.sort === 'asc'), 'fa-caret-down bi-caret-down': (header.sort === 'desc')}" class="fa bi" *ngIf="header.sort"></span>
7
+ </a>
8
+ </th>
9
+ </tr>
10
+ </thead>
11
+ </ng-template>
@@ -0,0 +1,72 @@
1
+ import {Component} from '@angular/core';
2
+ import {Utils, Components, ExtendedComponentSchema} from '@formio/js';
3
+ import {GridHeaderComponent} from '../GridHeaderComponent';
4
+ import {FormioPromiseService} from '@formio/angular';
5
+ import {ComponentInstance, FormioForm} from '@formio/angular';
6
+ import {GridColumn} from '../types/grid-column';
7
+ import {GridHeader, SortType} from '../types/grid-header';
8
+
9
+ @Component({
10
+ templateUrl: './SubmissionGridHeader.component.html'
11
+ })
12
+ export class SubmissionGridHeaderComponent extends GridHeaderComponent {
13
+
14
+ // Map structure where the key is the path and the value is the component
15
+ formComponents: Map<string, ExtendedComponentSchema>;
16
+
17
+ load(formio: FormioPromiseService, query?: any, columns?: Array<GridColumn>) {
18
+ query = query || {};
19
+ return formio.loadForm({params: query}).then((form: FormioForm) => {
20
+ this.headers = [];
21
+ this.formComponents = new Map<string, ExtendedComponentSchema>();
22
+ this.setComponents(form.components);
23
+ columns ? columns.forEach(column => {
24
+ this.setHeader(this.getHeaderForColumn(column, this.formComponents.get(column.path)));
25
+ }) : this.setComponentsHeaders(this.formComponents);
26
+
27
+ return this.headers;
28
+ });
29
+ }
30
+
31
+ setHeader(header: GridHeader) {
32
+ this.headers.push(header);
33
+ }
34
+
35
+ getHeaderForColumn(column: GridColumn, component?: ExtendedComponentSchema, sort?: SortType) {
36
+ return {
37
+ label: column.label,
38
+ key: column.path,
39
+ sort: sort,
40
+ component: component ? Components.create(component, null, null, true) as ComponentInstance : undefined,
41
+ renderCell: column ? column.renderCell : undefined
42
+ };
43
+ }
44
+
45
+ getHeaderForComponent(component: ExtendedComponentSchema, path: string, sort?: SortType) {
46
+ return {
47
+ label: component.label,
48
+ key: path,
49
+ sort: sort,
50
+ component: component ? Components.create(component, null, null, true) as ComponentInstance : undefined,
51
+ };
52
+ }
53
+ // Set headers from components in case if columns are not provided
54
+ setComponentsHeaders(components: Map<string, ExtendedComponentSchema>, sort?: SortType) {
55
+ components.forEach((component, path) => {
56
+ if (
57
+ component.input &&
58
+ (!component.hasOwnProperty('tableView') || component.tableView)
59
+ ) {
60
+ this.setHeader(this.getHeaderForComponent(component, path, sort));
61
+ }
62
+ });
63
+ }
64
+
65
+ // Map components
66
+ setComponents(components) {
67
+ Utils.eachComponent(components, (component: ExtendedComponentSchema, newPath: string) => {
68
+ this.formComponents.set(`data.${newPath}`, component);
69
+ });
70
+ }
71
+ }
72
+
@@ -1,10 +1,8 @@
1
1
  import { SubmissionGridHeaderComponent } from './SubmissionGridHeader.component';
2
2
  import { SubmissionGridBodyComponent } from './SubmissionGridBody.component';
3
3
  import { SubmissionGridFooterComponent } from './SubmissionGridFooter.component';
4
- declare const _default: {
5
- header: typeof SubmissionGridHeaderComponent;
6
- body: typeof SubmissionGridBodyComponent;
7
- footer: typeof SubmissionGridFooterComponent;
4
+ export default {
5
+ header: SubmissionGridHeaderComponent,
6
+ body: SubmissionGridBodyComponent,
7
+ footer: SubmissionGridFooterComponent
8
8
  };
9
- export default _default;
10
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { ComponentInstance } from '@formio/angular';
2
+
3
+ export interface GridColumn {
4
+ label?: string;
5
+ path: string;
6
+ renderCell?(cellValue: any, component?: ComponentInstance): string;
7
+ }