@formio/angular 7.0.0 → 7.5.0-dev.1060.b272e25

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 (439) 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/ci.yml +171 -0
  8. package/.travis.yml +4 -0
  9. package/.yo-rc.json +7 -0
  10. package/CHANGELOG.md +1154 -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/{FormioBaseComponent.d.ts.map → dist/angular-formio/FormioBaseComponent.d.ts.map} +1 -1
  17. package/dist/angular-formio/README.md +24 -0
  18. package/{components → dist/angular-formio/components}/formbuilder/formbuilder.component.d.ts +1 -1
  19. package/{components → dist/angular-formio/components}/formbuilder/formbuilder.component.d.ts.map +1 -1
  20. package/{components → dist/angular-formio/components}/formioreport/formioreport.component.d.ts.map +1 -1
  21. package/{core.d.ts → dist/angular-formio/core.d.ts} +1 -1
  22. package/{core.d.ts.map → dist/angular-formio/core.d.ts.map} +1 -1
  23. package/dist/angular-formio/embed/app.service.d.ts +28 -0
  24. package/dist/angular-formio/embed/app.service.d.ts.map +1 -0
  25. package/dist/angular-formio/embed/builder.component.d.ts +14 -0
  26. package/dist/angular-formio/embed/builder.component.d.ts.map +1 -0
  27. package/dist/angular-formio/embed/embed.module.d.ts +10 -0
  28. package/dist/angular-formio/embed/embed.module.d.ts.map +1 -0
  29. package/dist/angular-formio/embed/formio-angular-embed.d.ts.map +1 -0
  30. package/dist/angular-formio/embed/formio.component.d.ts +17 -0
  31. package/dist/angular-formio/embed/formio.component.d.ts.map +1 -0
  32. package/dist/angular-formio/embed/index.d.ts +7 -0
  33. package/dist/angular-formio/embed/index.d.ts.map +1 -0
  34. package/dist/angular-formio/esm2022/FormioBaseComponent.mjs +580 -0
  35. package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.service.mjs +2 -2
  36. package/dist/angular-formio/esm2022/components/formbuilder/formbuilder.component.mjs +202 -0
  37. package/dist/angular-formio/esm2022/components/formio/formio.component.mjs +43 -0
  38. package/dist/angular-formio/esm2022/components/formioreport/formioreport.component.mjs +89 -0
  39. package/{esm2022 → dist/angular-formio/esm2022}/core.mjs +2 -2
  40. package/dist/angular-formio/esm2022/embed/app.service.mjs +58 -0
  41. package/dist/angular-formio/esm2022/embed/builder.component.mjs +36 -0
  42. package/dist/angular-formio/esm2022/embed/embed.module.mjs +35 -0
  43. package/dist/angular-formio/esm2022/embed/formio-angular-embed.mjs +5 -0
  44. package/dist/angular-formio/esm2022/embed/formio.component.mjs +50 -0
  45. package/dist/angular-formio/esm2022/embed/index.mjs +7 -0
  46. package/dist/angular-formio/esm2022/formio.common.mjs +11 -0
  47. package/{esm2022 → dist/angular-formio/esm2022}/formio.config.mjs +2 -2
  48. package/dist/angular-formio/esm2022/formio.service.mjs +62 -0
  49. package/dist/angular-formio/esm2022/grid/grid.component.mjs +257 -0
  50. package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/SubmissionGridHeader.component.mjs +2 -2
  51. package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.service.mjs +2 -2
  52. package/{esm2022 → dist/angular-formio/esm2022}/manager/view/view.component.mjs +2 -2
  53. package/{esm2022 → dist/angular-formio/esm2022}/resource/edit/edit.component.mjs +2 -2
  54. package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.service.mjs +2 -2
  55. package/{esm2022 → dist/angular-formio/esm2022}/resource/view/view.component.mjs +2 -2
  56. package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-auth.mjs +1 -1
  57. package/dist/angular-formio/fesm2022/formio-angular-auth.mjs.map +1 -0
  58. package/dist/angular-formio/fesm2022/formio-angular-embed.mjs +176 -0
  59. package/dist/angular-formio/fesm2022/formio-angular-embed.mjs.map +1 -0
  60. package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-grid.mjs +2 -1
  61. package/dist/angular-formio/fesm2022/formio-angular-grid.mjs.map +1 -0
  62. package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-manager.mjs +1 -1
  63. package/dist/angular-formio/fesm2022/formio-angular-manager.mjs.map +1 -0
  64. package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-resource.mjs +1 -1
  65. package/dist/angular-formio/fesm2022/formio-angular-resource.mjs.map +1 -0
  66. package/dist/angular-formio/fesm2022/formio-angular.mjs +1187 -0
  67. package/dist/angular-formio/fesm2022/formio-angular.mjs.map +1 -0
  68. package/{formio.common.d.ts → dist/angular-formio/formio.common.d.ts} +2 -2
  69. package/dist/angular-formio/formio.common.d.ts.map +1 -0
  70. package/{formio.config.d.ts → dist/angular-formio/formio.config.d.ts} +1 -1
  71. package/{formio.config.d.ts.map → dist/angular-formio/formio.config.d.ts.map} +1 -1
  72. package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.component.d.ts +1 -1
  73. package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.component.d.ts.map +1 -1
  74. package/{manager → dist/angular-formio/manager}/form-manager.service.d.ts +1 -1
  75. package/{manager → dist/angular-formio/manager}/form-manager.service.d.ts.map +1 -1
  76. package/package.json +54 -57
  77. package/projects/angular-formio/README.md +24 -0
  78. package/projects/angular-formio/auth/ng-package.json +5 -0
  79. package/projects/angular-formio/auth/src/auth.component.html +11 -0
  80. package/projects/angular-formio/auth/src/auth.component.ts +5 -0
  81. package/projects/angular-formio/auth/src/auth.config.ts +72 -0
  82. package/projects/angular-formio/auth/src/auth.module.ts +33 -0
  83. package/projects/angular-formio/auth/src/auth.routes.ts +34 -0
  84. package/projects/angular-formio/auth/src/auth.service.ts +221 -0
  85. package/projects/angular-formio/auth/src/index.ts +8 -0
  86. package/projects/angular-formio/auth/src/login/login.component.html +1 -0
  87. package/projects/angular-formio/auth/src/login/login.component.ts +11 -0
  88. package/projects/angular-formio/auth/src/public_api.ts +5 -0
  89. package/projects/angular-formio/auth/src/register/register.component.html +1 -0
  90. package/projects/angular-formio/auth/src/register/register.component.ts +11 -0
  91. package/projects/angular-formio/auth/src/resetpass/resetpass.component.html +1 -0
  92. package/projects/angular-formio/auth/src/resetpass/resetpass.component.ts +8 -0
  93. package/projects/angular-formio/embed/ng-package.json +5 -0
  94. package/projects/angular-formio/embed/src/app.service.ts +59 -0
  95. package/projects/angular-formio/embed/src/builder.component.ts +19 -0
  96. package/projects/angular-formio/embed/src/embed.module.ts +23 -0
  97. package/projects/angular-formio/embed/src/formio.component.ts +27 -0
  98. package/projects/angular-formio/embed/src/index.ts +6 -0
  99. package/projects/angular-formio/grid/ng-package.json +5 -0
  100. package/projects/angular-formio/grid/src/GridBodyComponent.ts +80 -0
  101. package/projects/angular-formio/grid/src/GridFooterComponent.ts +25 -0
  102. package/projects/angular-formio/grid/src/GridHeaderComponent.ts +25 -0
  103. package/projects/angular-formio/grid/src/form/FormGridBody.component.html +22 -0
  104. package/projects/angular-formio/grid/src/form/FormGridBody.component.scss +4 -0
  105. package/projects/angular-formio/grid/src/form/FormGridBody.component.ts +46 -0
  106. package/projects/angular-formio/grid/src/form/FormGridFooter.component.html +21 -0
  107. package/projects/angular-formio/grid/src/form/FormGridFooter.component.ts +23 -0
  108. package/projects/angular-formio/grid/src/form/FormGridHeader.component.html +18 -0
  109. package/projects/angular-formio/grid/src/form/FormGridHeader.component.ts +24 -0
  110. package/projects/angular-formio/grid/src/form/index.ts +8 -0
  111. package/projects/angular-formio/grid/src/form/time-since.pipe.ts +31 -0
  112. package/projects/angular-formio/grid/src/grid.component.html +18 -0
  113. package/projects/angular-formio/grid/src/grid.component.scss +9 -0
  114. package/projects/angular-formio/grid/src/grid.component.ts +242 -0
  115. package/projects/angular-formio/grid/src/grid.footer.scss +14 -0
  116. package/projects/angular-formio/grid/src/grid.module.ts +49 -0
  117. package/projects/angular-formio/grid/src/grid.service.ts +16 -0
  118. package/projects/angular-formio/grid/src/index.ts +12 -0
  119. package/projects/angular-formio/grid/src/public_api.ts +5 -0
  120. package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html +7 -0
  121. package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts +39 -0
  122. package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html +18 -0
  123. package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts +20 -0
  124. package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html +11 -0
  125. package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts +72 -0
  126. package/projects/angular-formio/grid/src/submission/index.ts +8 -0
  127. package/projects/angular-formio/grid/src/types/grid-column.ts +7 -0
  128. package/projects/angular-formio/grid/src/types/grid-footer-positions.ts +5 -0
  129. package/projects/angular-formio/grid/src/types/grid-header.ts +14 -0
  130. package/projects/angular-formio/karma.conf.js +32 -0
  131. package/projects/angular-formio/manager/ng-package.json +5 -0
  132. package/projects/angular-formio/manager/src/create/create.component.ts +11 -0
  133. package/projects/angular-formio/manager/src/delete/delete.component.html +6 -0
  134. package/projects/angular-formio/manager/src/delete/delete.component.ts +37 -0
  135. package/projects/angular-formio/manager/src/edit/edit.component.html +19 -0
  136. package/projects/angular-formio/manager/src/edit/edit.component.ts +110 -0
  137. package/projects/angular-formio/manager/src/form/form.component.html +32 -0
  138. package/projects/angular-formio/manager/src/form/form.component.ts +73 -0
  139. package/projects/angular-formio/manager/src/form-manager.config.ts +31 -0
  140. package/projects/angular-formio/manager/src/form-manager.module.ts +54 -0
  141. package/projects/angular-formio/manager/src/form-manager.routes.ts +75 -0
  142. package/projects/angular-formio/manager/src/form-manager.service.ts +190 -0
  143. package/projects/angular-formio/manager/src/index/index.component.html +14 -0
  144. package/projects/angular-formio/manager/src/index/index.component.scss +22 -0
  145. package/projects/angular-formio/manager/src/index/index.component.ts +100 -0
  146. package/projects/angular-formio/manager/src/index.ts +16 -0
  147. package/projects/angular-formio/manager/src/public_api.ts +5 -0
  148. package/projects/angular-formio/manager/src/submission/delete/delete.component.html +6 -0
  149. package/projects/angular-formio/manager/src/submission/delete/delete.component.ts +26 -0
  150. package/projects/angular-formio/manager/src/submission/edit/edit.component.html +7 -0
  151. package/projects/angular-formio/manager/src/submission/edit/edit.component.ts +18 -0
  152. package/projects/angular-formio/manager/src/submission/index/index.component.html +1 -0
  153. package/projects/angular-formio/manager/src/submission/index/index.component.ts +18 -0
  154. package/projects/angular-formio/manager/src/submission/submission/submission.component.html +8 -0
  155. package/projects/angular-formio/manager/src/submission/submission/submission.component.ts +24 -0
  156. package/projects/angular-formio/manager/src/submission/view/view.component.html +7 -0
  157. package/projects/angular-formio/manager/src/submission/view/view.component.ts +9 -0
  158. package/projects/angular-formio/manager/src/view/view.component.html +11 -0
  159. package/projects/angular-formio/manager/src/view/view.component.ts +44 -0
  160. package/projects/angular-formio/ng-package.json +7 -0
  161. package/projects/angular-formio/package.json +37 -0
  162. package/projects/angular-formio/resource/ng-package.json +5 -0
  163. package/projects/angular-formio/resource/src/create/create.component.html +13 -0
  164. package/projects/angular-formio/resource/src/create/create.component.scss +3 -0
  165. package/projects/angular-formio/resource/src/create/create.component.ts +37 -0
  166. package/projects/angular-formio/resource/src/delete/delete.component.html +5 -0
  167. package/projects/angular-formio/resource/src/delete/delete.component.ts +24 -0
  168. package/projects/angular-formio/resource/src/edit/edit.component.html +7 -0
  169. package/projects/angular-formio/resource/src/edit/edit.component.ts +35 -0
  170. package/projects/angular-formio/resource/src/index/index.component.html +10 -0
  171. package/projects/angular-formio/resource/src/index/index.component.ts +64 -0
  172. package/projects/angular-formio/resource/src/index.js +24 -0
  173. package/projects/angular-formio/resource/src/index.ts +11 -0
  174. package/projects/angular-formio/resource/src/public_api.ts +5 -0
  175. package/projects/angular-formio/resource/src/resource.component.html +7 -0
  176. package/projects/angular-formio/resource/src/resource.component.ts +48 -0
  177. package/projects/angular-formio/resource/src/resource.config.ts +17 -0
  178. package/projects/angular-formio/resource/src/resource.module.ts +43 -0
  179. package/projects/angular-formio/resource/src/resource.routes.ts +43 -0
  180. package/projects/angular-formio/resource/src/resource.service.ts +258 -0
  181. package/projects/angular-formio/resource/src/resources.service.ts +24 -0
  182. package/projects/angular-formio/resource/src/view/view.component.html +6 -0
  183. package/projects/angular-formio/resource/src/view/view.component.ts +19 -0
  184. package/projects/angular-formio/src/FormioBaseComponent.ts +554 -0
  185. package/projects/angular-formio/src/components/alerts/formio.alerts.component.html +3 -0
  186. package/projects/angular-formio/src/components/alerts/formio.alerts.component.ts +19 -0
  187. package/projects/angular-formio/src/components/alerts/formio.alerts.ts +21 -0
  188. package/projects/angular-formio/src/components/alerts/parse-html-content.pipe.ts +15 -0
  189. package/projects/angular-formio/src/components/formbuilder/formbuilder.component.html +1 -0
  190. package/projects/angular-formio/src/components/formbuilder/formbuilder.component.ts +213 -0
  191. package/projects/angular-formio/src/components/formio/formio.component.html +8 -0
  192. package/projects/angular-formio/src/components/formio/formio.component.ts +33 -0
  193. package/projects/angular-formio/src/components/formioreport/formioreport.component.html +8 -0
  194. package/projects/angular-formio/src/components/formioreport/formioreport.component.ts +95 -0
  195. package/projects/angular-formio/src/components/loader/formio.loader.component.html +3 -0
  196. package/projects/angular-formio/src/components/loader/formio.loader.component.scss +26 -0
  197. package/projects/angular-formio/src/components/loader/formio.loader.component.ts +10 -0
  198. package/projects/angular-formio/src/core.ts +25 -0
  199. package/projects/angular-formio/src/custom-tags.service.ts +9 -0
  200. package/projects/angular-formio/src/formio-promise.service.ts +36 -0
  201. package/projects/angular-formio/src/formio.common.ts +91 -0
  202. package/projects/angular-formio/src/formio.config.ts +26 -0
  203. package/projects/angular-formio/src/formio.module.ts +38 -0
  204. package/projects/angular-formio/src/formio.service.ts +57 -0
  205. package/projects/angular-formio/src/formio.utils.ts +23 -0
  206. package/projects/angular-formio/src/index.ts +3 -0
  207. package/projects/angular-formio/src/public-api.ts +5 -0
  208. package/projects/angular-formio/src/test.ts +28 -0
  209. package/projects/angular-formio/src/types/alerts-position.ts +6 -0
  210. package/projects/angular-formio/src/types/formio-metadata.ts +10 -0
  211. package/projects/angular-formio/src/types/formio-submission.ts +20 -0
  212. package/projects/angular-formio/tsconfig.lib.json +27 -0
  213. package/projects/angular-formio/tsconfig.lib.prod.json +8 -0
  214. package/projects/angular-formio/tsconfig.spec.json +17 -0
  215. package/projects/angular-formio/tslint.json +17 -0
  216. package/tsconfig.json +39 -0
  217. package/tslint.json +140 -0
  218. package/esm2022/FormioBaseComponent.mjs +0 -583
  219. package/esm2022/components/formbuilder/formbuilder.component.mjs +0 -202
  220. package/esm2022/components/formio/formio.component.mjs +0 -43
  221. package/esm2022/components/formioreport/formioreport.component.mjs +0 -86
  222. package/esm2022/formio.common.mjs +0 -11
  223. package/esm2022/formio.service.mjs +0 -62
  224. package/esm2022/grid/grid.component.mjs +0 -257
  225. package/fesm2022/formio-angular-auth.mjs.map +0 -1
  226. package/fesm2022/formio-angular-grid.mjs.map +0 -1
  227. package/fesm2022/formio-angular-manager.mjs.map +0 -1
  228. package/fesm2022/formio-angular-resource.mjs.map +0 -1
  229. package/fesm2022/formio-angular.mjs +0 -1186
  230. package/fesm2022/formio-angular.mjs.map +0 -1
  231. package/formio.common.d.ts.map +0 -1
  232. /package/{FormioBaseComponent.d.ts → dist/angular-formio/FormioBaseComponent.d.ts} +0 -0
  233. /package/{auth → dist/angular-formio/auth}/auth.component.d.ts +0 -0
  234. /package/{auth → dist/angular-formio/auth}/auth.component.d.ts.map +0 -0
  235. /package/{auth → dist/angular-formio/auth}/auth.config.d.ts +0 -0
  236. /package/{auth → dist/angular-formio/auth}/auth.config.d.ts.map +0 -0
  237. /package/{auth → dist/angular-formio/auth}/auth.module.d.ts +0 -0
  238. /package/{auth → dist/angular-formio/auth}/auth.module.d.ts.map +0 -0
  239. /package/{auth → dist/angular-formio/auth}/auth.routes.d.ts +0 -0
  240. /package/{auth → dist/angular-formio/auth}/auth.routes.d.ts.map +0 -0
  241. /package/{auth → dist/angular-formio/auth}/auth.service.d.ts +0 -0
  242. /package/{auth → dist/angular-formio/auth}/auth.service.d.ts.map +0 -0
  243. /package/{auth → dist/angular-formio/auth}/formio-angular-auth.d.ts.map +0 -0
  244. /package/{auth → dist/angular-formio/auth}/index.d.ts +0 -0
  245. /package/{auth → dist/angular-formio/auth}/index.d.ts.map +0 -0
  246. /package/{auth → dist/angular-formio/auth}/login/login.component.d.ts +0 -0
  247. /package/{auth → dist/angular-formio/auth}/login/login.component.d.ts.map +0 -0
  248. /package/{auth → dist/angular-formio/auth}/register/register.component.d.ts +0 -0
  249. /package/{auth → dist/angular-formio/auth}/register/register.component.d.ts.map +0 -0
  250. /package/{auth → dist/angular-formio/auth}/resetpass/resetpass.component.d.ts +0 -0
  251. /package/{auth → dist/angular-formio/auth}/resetpass/resetpass.component.d.ts.map +0 -0
  252. /package/{components → dist/angular-formio/components}/alerts/formio.alerts.component.d.ts +0 -0
  253. /package/{components → dist/angular-formio/components}/alerts/formio.alerts.component.d.ts.map +0 -0
  254. /package/{components → dist/angular-formio/components}/alerts/formio.alerts.d.ts +0 -0
  255. /package/{components → dist/angular-formio/components}/alerts/formio.alerts.d.ts.map +0 -0
  256. /package/{components → dist/angular-formio/components}/alerts/parse-html-content.pipe.d.ts +0 -0
  257. /package/{components → dist/angular-formio/components}/alerts/parse-html-content.pipe.d.ts.map +0 -0
  258. /package/{components → dist/angular-formio/components}/formio/formio.component.d.ts +0 -0
  259. /package/{components → dist/angular-formio/components}/formio/formio.component.d.ts.map +0 -0
  260. /package/{components → dist/angular-formio/components}/formioreport/formioreport.component.d.ts +0 -0
  261. /package/{components → dist/angular-formio/components}/loader/formio.loader.component.d.ts +0 -0
  262. /package/{components → dist/angular-formio/components}/loader/formio.loader.component.d.ts.map +0 -0
  263. /package/{custom-tags.service.d.ts → dist/angular-formio/custom-tags.service.d.ts} +0 -0
  264. /package/{custom-tags.service.d.ts.map → dist/angular-formio/custom-tags.service.d.ts.map} +0 -0
  265. /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.component.mjs +0 -0
  266. /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.config.mjs +0 -0
  267. /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.module.mjs +0 -0
  268. /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.routes.mjs +0 -0
  269. /package/{esm2022 → dist/angular-formio/esm2022}/auth/formio-angular-auth.mjs +0 -0
  270. /package/{esm2022 → dist/angular-formio/esm2022}/auth/index.mjs +0 -0
  271. /package/{esm2022 → dist/angular-formio/esm2022}/auth/login/login.component.mjs +0 -0
  272. /package/{esm2022 → dist/angular-formio/esm2022}/auth/register/register.component.mjs +0 -0
  273. /package/{esm2022 → dist/angular-formio/esm2022}/auth/resetpass/resetpass.component.mjs +0 -0
  274. /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/formio.alerts.component.mjs +0 -0
  275. /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/formio.alerts.mjs +0 -0
  276. /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/parse-html-content.pipe.mjs +0 -0
  277. /package/{esm2022 → dist/angular-formio/esm2022}/components/loader/formio.loader.component.mjs +0 -0
  278. /package/{esm2022 → dist/angular-formio/esm2022}/custom-tags.service.mjs +0 -0
  279. /package/{esm2022 → dist/angular-formio/esm2022}/formio-angular.mjs +0 -0
  280. /package/{esm2022 → dist/angular-formio/esm2022}/formio-promise.service.mjs +0 -0
  281. /package/{esm2022 → dist/angular-formio/esm2022}/formio.module.mjs +0 -0
  282. /package/{esm2022 → dist/angular-formio/esm2022}/formio.utils.mjs +0 -0
  283. /package/{esm2022 → dist/angular-formio/esm2022}/grid/GridBodyComponent.mjs +0 -0
  284. /package/{esm2022 → dist/angular-formio/esm2022}/grid/GridFooterComponent.mjs +0 -0
  285. /package/{esm2022 → dist/angular-formio/esm2022}/grid/GridHeaderComponent.mjs +0 -0
  286. /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/FormGridBody.component.mjs +0 -0
  287. /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/FormGridFooter.component.mjs +0 -0
  288. /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/FormGridHeader.component.mjs +0 -0
  289. /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/index.mjs +0 -0
  290. /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/time-since.pipe.mjs +0 -0
  291. /package/{esm2022 → dist/angular-formio/esm2022}/grid/formio-angular-grid.mjs +0 -0
  292. /package/{esm2022 → dist/angular-formio/esm2022}/grid/grid.module.mjs +0 -0
  293. /package/{esm2022 → dist/angular-formio/esm2022}/grid/grid.service.mjs +0 -0
  294. /package/{esm2022 → dist/angular-formio/esm2022}/grid/index.mjs +0 -0
  295. /package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/SubmissionGridBody.component.mjs +0 -0
  296. /package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/SubmissionGridFooter.component.mjs +0 -0
  297. /package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/index.mjs +0 -0
  298. /package/{esm2022 → dist/angular-formio/esm2022}/grid/types/grid-column.mjs +0 -0
  299. /package/{esm2022 → dist/angular-formio/esm2022}/grid/types/grid-footer-positions.mjs +0 -0
  300. /package/{esm2022 → dist/angular-formio/esm2022}/grid/types/grid-header.mjs +0 -0
  301. /package/{esm2022 → dist/angular-formio/esm2022}/index.mjs +0 -0
  302. /package/{esm2022 → dist/angular-formio/esm2022}/manager/create/create.component.mjs +0 -0
  303. /package/{esm2022 → dist/angular-formio/esm2022}/manager/delete/delete.component.mjs +0 -0
  304. /package/{esm2022 → dist/angular-formio/esm2022}/manager/edit/edit.component.mjs +0 -0
  305. /package/{esm2022 → dist/angular-formio/esm2022}/manager/form/form.component.mjs +0 -0
  306. /package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.config.mjs +0 -0
  307. /package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.module.mjs +0 -0
  308. /package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.routes.mjs +0 -0
  309. /package/{esm2022 → dist/angular-formio/esm2022}/manager/formio-angular-manager.mjs +0 -0
  310. /package/{esm2022 → dist/angular-formio/esm2022}/manager/index/index.component.mjs +0 -0
  311. /package/{esm2022 → dist/angular-formio/esm2022}/manager/index.mjs +0 -0
  312. /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/delete/delete.component.mjs +0 -0
  313. /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/edit/edit.component.mjs +0 -0
  314. /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/index/index.component.mjs +0 -0
  315. /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/submission/submission.component.mjs +0 -0
  316. /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/view/view.component.mjs +0 -0
  317. /package/{esm2022 → dist/angular-formio/esm2022}/resource/create/create.component.mjs +0 -0
  318. /package/{esm2022 → dist/angular-formio/esm2022}/resource/delete/delete.component.mjs +0 -0
  319. /package/{esm2022 → dist/angular-formio/esm2022}/resource/formio-angular-resource.mjs +0 -0
  320. /package/{esm2022 → dist/angular-formio/esm2022}/resource/index/index.component.mjs +0 -0
  321. /package/{esm2022 → dist/angular-formio/esm2022}/resource/index.mjs +0 -0
  322. /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.component.mjs +0 -0
  323. /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.config.mjs +0 -0
  324. /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.module.mjs +0 -0
  325. /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.routes.mjs +0 -0
  326. /package/{esm2022 → dist/angular-formio/esm2022}/resource/resources.service.mjs +0 -0
  327. /package/{esm2022 → dist/angular-formio/esm2022}/types/alerts-position.mjs +0 -0
  328. /package/{esm2022 → dist/angular-formio/esm2022}/types/formio-metadata.mjs +0 -0
  329. /package/{esm2022 → dist/angular-formio/esm2022}/types/formio-submission.mjs +0 -0
  330. /package/{formio-angular.d.ts.map → dist/angular-formio/formio-angular.d.ts.map} +0 -0
  331. /package/{formio-promise.service.d.ts → dist/angular-formio/formio-promise.service.d.ts} +0 -0
  332. /package/{formio-promise.service.d.ts.map → dist/angular-formio/formio-promise.service.d.ts.map} +0 -0
  333. /package/{formio.module.d.ts → dist/angular-formio/formio.module.d.ts} +0 -0
  334. /package/{formio.module.d.ts.map → dist/angular-formio/formio.module.d.ts.map} +0 -0
  335. /package/{formio.service.d.ts → dist/angular-formio/formio.service.d.ts} +0 -0
  336. /package/{formio.service.d.ts.map → dist/angular-formio/formio.service.d.ts.map} +0 -0
  337. /package/{formio.utils.d.ts → dist/angular-formio/formio.utils.d.ts} +0 -0
  338. /package/{formio.utils.d.ts.map → dist/angular-formio/formio.utils.d.ts.map} +0 -0
  339. /package/{grid → dist/angular-formio/grid}/GridBodyComponent.d.ts +0 -0
  340. /package/{grid → dist/angular-formio/grid}/GridBodyComponent.d.ts.map +0 -0
  341. /package/{grid → dist/angular-formio/grid}/GridFooterComponent.d.ts +0 -0
  342. /package/{grid → dist/angular-formio/grid}/GridFooterComponent.d.ts.map +0 -0
  343. /package/{grid → dist/angular-formio/grid}/GridHeaderComponent.d.ts +0 -0
  344. /package/{grid → dist/angular-formio/grid}/GridHeaderComponent.d.ts.map +0 -0
  345. /package/{grid → dist/angular-formio/grid}/form/FormGridBody.component.d.ts +0 -0
  346. /package/{grid → dist/angular-formio/grid}/form/FormGridBody.component.d.ts.map +0 -0
  347. /package/{grid → dist/angular-formio/grid}/form/FormGridFooter.component.d.ts +0 -0
  348. /package/{grid → dist/angular-formio/grid}/form/FormGridFooter.component.d.ts.map +0 -0
  349. /package/{grid → dist/angular-formio/grid}/form/FormGridHeader.component.d.ts +0 -0
  350. /package/{grid → dist/angular-formio/grid}/form/FormGridHeader.component.d.ts.map +0 -0
  351. /package/{grid → dist/angular-formio/grid}/form/index.d.ts +0 -0
  352. /package/{grid → dist/angular-formio/grid}/form/index.d.ts.map +0 -0
  353. /package/{grid → dist/angular-formio/grid}/form/time-since.pipe.d.ts +0 -0
  354. /package/{grid → dist/angular-formio/grid}/form/time-since.pipe.d.ts.map +0 -0
  355. /package/{grid → dist/angular-formio/grid}/formio-angular-grid.d.ts.map +0 -0
  356. /package/{grid → dist/angular-formio/grid}/grid.component.d.ts +0 -0
  357. /package/{grid → dist/angular-formio/grid}/grid.component.d.ts.map +0 -0
  358. /package/{grid → dist/angular-formio/grid}/grid.module.d.ts +0 -0
  359. /package/{grid → dist/angular-formio/grid}/grid.module.d.ts.map +0 -0
  360. /package/{grid → dist/angular-formio/grid}/grid.service.d.ts +0 -0
  361. /package/{grid → dist/angular-formio/grid}/grid.service.d.ts.map +0 -0
  362. /package/{grid → dist/angular-formio/grid}/index.d.ts +0 -0
  363. /package/{grid → dist/angular-formio/grid}/index.d.ts.map +0 -0
  364. /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridBody.component.d.ts +0 -0
  365. /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridBody.component.d.ts.map +0 -0
  366. /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridFooter.component.d.ts +0 -0
  367. /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridFooter.component.d.ts.map +0 -0
  368. /package/{grid → dist/angular-formio/grid}/submission/index.d.ts +0 -0
  369. /package/{grid → dist/angular-formio/grid}/submission/index.d.ts.map +0 -0
  370. /package/{grid → dist/angular-formio/grid}/types/grid-column.d.ts +0 -0
  371. /package/{grid → dist/angular-formio/grid}/types/grid-column.d.ts.map +0 -0
  372. /package/{grid → dist/angular-formio/grid}/types/grid-footer-positions.d.ts +0 -0
  373. /package/{grid → dist/angular-formio/grid}/types/grid-footer-positions.d.ts.map +0 -0
  374. /package/{grid → dist/angular-formio/grid}/types/grid-header.d.ts +0 -0
  375. /package/{grid → dist/angular-formio/grid}/types/grid-header.d.ts.map +0 -0
  376. /package/{index.d.ts → dist/angular-formio/index.d.ts} +0 -0
  377. /package/{index.d.ts.map → dist/angular-formio/index.d.ts.map} +0 -0
  378. /package/{manager → dist/angular-formio/manager}/create/create.component.d.ts +0 -0
  379. /package/{manager → dist/angular-formio/manager}/create/create.component.d.ts.map +0 -0
  380. /package/{manager → dist/angular-formio/manager}/delete/delete.component.d.ts +0 -0
  381. /package/{manager → dist/angular-formio/manager}/delete/delete.component.d.ts.map +0 -0
  382. /package/{manager → dist/angular-formio/manager}/edit/edit.component.d.ts +0 -0
  383. /package/{manager → dist/angular-formio/manager}/edit/edit.component.d.ts.map +0 -0
  384. /package/{manager → dist/angular-formio/manager}/form/form.component.d.ts +0 -0
  385. /package/{manager → dist/angular-formio/manager}/form/form.component.d.ts.map +0 -0
  386. /package/{manager → dist/angular-formio/manager}/form-manager.config.d.ts +0 -0
  387. /package/{manager → dist/angular-formio/manager}/form-manager.config.d.ts.map +0 -0
  388. /package/{manager → dist/angular-formio/manager}/form-manager.module.d.ts +0 -0
  389. /package/{manager → dist/angular-formio/manager}/form-manager.module.d.ts.map +0 -0
  390. /package/{manager → dist/angular-formio/manager}/form-manager.routes.d.ts +0 -0
  391. /package/{manager → dist/angular-formio/manager}/form-manager.routes.d.ts.map +0 -0
  392. /package/{manager → dist/angular-formio/manager}/formio-angular-manager.d.ts.map +0 -0
  393. /package/{manager → dist/angular-formio/manager}/index/index.component.d.ts +0 -0
  394. /package/{manager → dist/angular-formio/manager}/index/index.component.d.ts.map +0 -0
  395. /package/{manager → dist/angular-formio/manager}/index.d.ts +0 -0
  396. /package/{manager → dist/angular-formio/manager}/index.d.ts.map +0 -0
  397. /package/{manager → dist/angular-formio/manager}/submission/delete/delete.component.d.ts +0 -0
  398. /package/{manager → dist/angular-formio/manager}/submission/delete/delete.component.d.ts.map +0 -0
  399. /package/{manager → dist/angular-formio/manager}/submission/edit/edit.component.d.ts +0 -0
  400. /package/{manager → dist/angular-formio/manager}/submission/edit/edit.component.d.ts.map +0 -0
  401. /package/{manager → dist/angular-formio/manager}/submission/index/index.component.d.ts +0 -0
  402. /package/{manager → dist/angular-formio/manager}/submission/index/index.component.d.ts.map +0 -0
  403. /package/{manager → dist/angular-formio/manager}/submission/submission/submission.component.d.ts +0 -0
  404. /package/{manager → dist/angular-formio/manager}/submission/submission/submission.component.d.ts.map +0 -0
  405. /package/{manager → dist/angular-formio/manager}/submission/view/view.component.d.ts +0 -0
  406. /package/{manager → dist/angular-formio/manager}/submission/view/view.component.d.ts.map +0 -0
  407. /package/{manager → dist/angular-formio/manager}/view/view.component.d.ts +0 -0
  408. /package/{manager → dist/angular-formio/manager}/view/view.component.d.ts.map +0 -0
  409. /package/{resource → dist/angular-formio/resource}/create/create.component.d.ts +0 -0
  410. /package/{resource → dist/angular-formio/resource}/create/create.component.d.ts.map +0 -0
  411. /package/{resource → dist/angular-formio/resource}/delete/delete.component.d.ts +0 -0
  412. /package/{resource → dist/angular-formio/resource}/delete/delete.component.d.ts.map +0 -0
  413. /package/{resource → dist/angular-formio/resource}/edit/edit.component.d.ts +0 -0
  414. /package/{resource → dist/angular-formio/resource}/edit/edit.component.d.ts.map +0 -0
  415. /package/{resource → dist/angular-formio/resource}/formio-angular-resource.d.ts.map +0 -0
  416. /package/{resource → dist/angular-formio/resource}/index/index.component.d.ts +0 -0
  417. /package/{resource → dist/angular-formio/resource}/index/index.component.d.ts.map +0 -0
  418. /package/{resource → dist/angular-formio/resource}/index.d.ts +0 -0
  419. /package/{resource → dist/angular-formio/resource}/index.d.ts.map +0 -0
  420. /package/{resource → dist/angular-formio/resource}/resource.component.d.ts +0 -0
  421. /package/{resource → dist/angular-formio/resource}/resource.component.d.ts.map +0 -0
  422. /package/{resource → dist/angular-formio/resource}/resource.config.d.ts +0 -0
  423. /package/{resource → dist/angular-formio/resource}/resource.config.d.ts.map +0 -0
  424. /package/{resource → dist/angular-formio/resource}/resource.module.d.ts +0 -0
  425. /package/{resource → dist/angular-formio/resource}/resource.module.d.ts.map +0 -0
  426. /package/{resource → dist/angular-formio/resource}/resource.routes.d.ts +0 -0
  427. /package/{resource → dist/angular-formio/resource}/resource.routes.d.ts.map +0 -0
  428. /package/{resource → dist/angular-formio/resource}/resource.service.d.ts +0 -0
  429. /package/{resource → dist/angular-formio/resource}/resource.service.d.ts.map +0 -0
  430. /package/{resource → dist/angular-formio/resource}/resources.service.d.ts +0 -0
  431. /package/{resource → dist/angular-formio/resource}/resources.service.d.ts.map +0 -0
  432. /package/{resource → dist/angular-formio/resource}/view/view.component.d.ts +0 -0
  433. /package/{resource → dist/angular-formio/resource}/view/view.component.d.ts.map +0 -0
  434. /package/{types → dist/angular-formio/types}/alerts-position.d.ts +0 -0
  435. /package/{types → dist/angular-formio/types}/alerts-position.d.ts.map +0 -0
  436. /package/{types → dist/angular-formio/types}/formio-metadata.d.ts +0 -0
  437. /package/{types → dist/angular-formio/types}/formio-metadata.d.ts.map +0 -0
  438. /package/{types → dist/angular-formio/types}/formio-submission.d.ts +0 -0
  439. /package/{types → dist/angular-formio/types}/formio-submission.d.ts.map +0 -0
@@ -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
+ }
@@ -0,0 +1,12 @@
1
+ export { FormioGrid } from './grid.module';
2
+ export { GridHeaderComponent } from './GridHeaderComponent';
3
+ export { GridFooterComponent } from './GridFooterComponent';
4
+ export { GridBodyComponent } from './GridBodyComponent';
5
+ export { FormGridHeaderComponent } from './form/FormGridHeader.component';
6
+ export { FormGridBodyComponent } from './form/FormGridBody.component';
7
+ export { FormGridFooterComponent } from './form/FormGridFooter.component';
8
+ export { SubmissionGridHeaderComponent } from './submission/SubmissionGridHeader.component';
9
+ export { SubmissionGridBodyComponent } from './submission/SubmissionGridBody.component';
10
+ export { SubmissionGridFooterComponent } from './submission/SubmissionGridFooter.component';
11
+ export { FormioGridComponent } from './grid.component';
12
+ export { GridService } from './grid.service';
@@ -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
+
@@ -0,0 +1,8 @@
1
+ import { SubmissionGridHeaderComponent } from './SubmissionGridHeader.component';
2
+ import { SubmissionGridBodyComponent } from './SubmissionGridBody.component';
3
+ import { SubmissionGridFooterComponent } from './SubmissionGridFooter.component';
4
+ export default {
5
+ header: SubmissionGridHeaderComponent,
6
+ body: SubmissionGridBodyComponent,
7
+ footer: SubmissionGridFooterComponent
8
+ };
@@ -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
+ }