@formio/angular 5.2.1-rc.3 → 5.3.0-rc.2

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