@sumaris-net/ngx-components 2.0.0-rc9 → 2.0.0

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 (306) hide show
  1. package/README.md +3 -1
  2. package/esm2020/public_api.mjs +35 -22
  3. package/esm2020/src/app/admin/admin-routing.module.mjs +6 -6
  4. package/esm2020/src/app/admin/admin.module.mjs +6 -6
  5. package/esm2020/src/app/admin/services/person.service.mjs +3 -3
  6. package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
  7. package/esm2020/src/app/admin/users/users.mjs +233 -0
  8. package/esm2020/src/app/admin/users/users.module.mjs +54 -0
  9. package/esm2020/src/app/core/about/about.modal.mjs +71 -0
  10. package/esm2020/src/app/core/about/about.module.mjs +34 -0
  11. package/esm2020/src/app/core/account/account.module.mjs +43 -0
  12. package/esm2020/src/app/core/account/account.page.mjs +239 -0
  13. package/esm2020/src/app/core/auth/auth.form.mjs +131 -0
  14. package/esm2020/src/app/core/auth/auth.modal.mjs +72 -0
  15. package/esm2020/src/app/core/auth/auth.module.mjs +47 -0
  16. package/esm2020/src/app/core/core.module.mjs +86 -125
  17. package/esm2020/src/app/core/core.testing.module.mjs +7 -7
  18. package/esm2020/src/app/core/form/{form-buttons-bar.component.mjs → buttons/form-buttons-bar.component.mjs} +7 -7
  19. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +35 -0
  20. package/esm2020/src/app/core/form/entity/editor.class.mjs +675 -0
  21. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +421 -0
  22. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +646 -0
  23. package/esm2020/src/app/core/form/{entity-metadata.component.mjs → entity/entity-metadata.component.mjs} +6 -6
  24. package/esm2020/src/app/core/form/entity/entity.module.mjs +38 -0
  25. package/esm2020/src/app/core/form/form.class.mjs +4 -4
  26. package/esm2020/src/app/core/form/form.module.mjs +66 -0
  27. package/esm2020/src/app/core/form/list/list.form.mjs +222 -0
  28. package/esm2020/src/app/core/form/list/list.module.mjs +35 -0
  29. package/esm2020/src/app/core/form/properties/properties.form.mjs +3 -3
  30. package/esm2020/src/app/core/form/properties/properties.module.mjs +35 -0
  31. package/esm2020/src/app/core/form/properties/property.validator.mjs +4 -4
  32. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
  33. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
  34. package/esm2020/src/app/core/{text-popover → form/text-popover}/testing/text-popover.testing.mjs +4 -4
  35. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +45 -0
  36. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +89 -0
  37. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +105 -0
  38. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +40 -0
  39. package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
  40. package/esm2020/src/app/core/graphql/graphql.service.mjs +12 -7
  41. package/esm2020/src/app/core/graphql/graphql.utils.mjs +2 -2
  42. package/esm2020/src/app/core/home/home.mjs +8 -8
  43. package/esm2020/src/app/core/home/home.module.mjs +48 -0
  44. package/esm2020/src/app/core/icon/icon.component.mjs +3 -3
  45. package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
  46. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  47. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +17 -15
  48. package/esm2020/src/app/core/menu/menu.component.mjs +5 -5
  49. package/esm2020/src/app/core/menu/menu.module.mjs +9 -10
  50. package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
  51. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  52. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +35 -0
  53. package/esm2020/src/app/core/peer/select-peer.modal.mjs +55 -11
  54. package/esm2020/src/app/core/peer/select-peer.module.mjs +17 -10
  55. package/esm2020/src/app/core/register/register-confirm.page.mjs +81 -0
  56. package/esm2020/src/app/core/register/register.form.mjs +181 -0
  57. package/esm2020/src/app/core/register/register.modal.mjs +52 -0
  58. package/esm2020/src/app/core/register/register.module.mjs +17 -15
  59. package/esm2020/src/app/core/services/account.service.mjs +22 -23
  60. package/esm2020/src/app/core/services/auth-guard.service.mjs +6 -6
  61. package/esm2020/src/app/core/services/base-entity-service.class.mjs +3 -3
  62. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +8 -8
  63. package/esm2020/src/app/core/services/base58.mjs +2 -2
  64. package/esm2020/src/app/core/services/config.service.mjs +4 -4
  65. package/esm2020/src/app/core/services/crypto.service.mjs +82 -97
  66. package/esm2020/src/app/core/services/local-settings.service.mjs +8 -10
  67. package/esm2020/src/app/core/services/model/entity.decorators.mjs +44 -54
  68. package/esm2020/src/app/core/services/model/peer.model.mjs +3 -3
  69. package/esm2020/src/app/core/services/network.service.mjs +7 -7
  70. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  71. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  72. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  73. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  74. package/esm2020/src/app/core/services/platform.service.mjs +9 -10
  75. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  76. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +4 -4
  77. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  78. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  79. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  80. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  81. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  82. package/esm2020/src/app/core/settings/settings.module.mjs +34 -0
  83. package/esm2020/src/app/core/settings/settings.page.mjs +12 -9
  84. package/esm2020/src/app/core/table/actions-column.component.mjs +3 -3
  85. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +13 -8
  86. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  87. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  88. package/esm2020/src/app/core/table/table.class.mjs +11 -16
  89. package/esm2020/src/app/core/table/table.module.mjs +40 -0
  90. package/esm2020/src/app/core/table/testing/table.testing.mjs +8 -8
  91. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  92. package/esm2020/src/app/shared/audio/audio.mjs +3 -3
  93. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  94. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  95. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  96. package/esm2020/src/app/shared/constants.mjs +4 -2
  97. package/esm2020/src/app/shared/dates.mjs +20 -14
  98. package/esm2020/src/app/shared/debug/debug.component.mjs +3 -3
  99. package/esm2020/src/app/shared/debug/debug.module.mjs +4 -4
  100. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +3 -3
  101. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  102. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  103. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  104. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  105. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  106. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  107. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  108. package/esm2020/src/app/shared/file/file.service.mjs +5 -5
  109. package/esm2020/src/app/shared/form/field.component.mjs +3 -3
  110. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  111. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  112. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  113. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  114. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  115. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  116. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  117. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +134 -60
  118. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +19 -7
  119. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  120. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +13 -7
  121. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  122. package/esm2020/src/app/shared/image/image.module.mjs +5 -5
  123. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  124. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +7 -6
  125. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  126. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  127. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +3 -3
  128. package/esm2020/src/app/shared/material/badge/badge.module.mjs +4 -4
  129. package/esm2020/src/app/shared/material/badge/badge.test.mjs +3 -3
  130. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  131. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +5 -5
  132. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  133. package/esm2020/src/app/shared/material/chips/material.chips.mjs +5 -5
  134. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  135. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  136. package/esm2020/src/app/shared/material/datetime/material.date.mjs +7 -8
  137. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +6 -6
  138. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +7 -8
  139. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +5 -7
  140. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +7 -8
  141. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  142. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  143. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  144. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  145. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  146. package/esm2020/src/app/shared/material/material.module.mjs +4 -4
  147. package/esm2020/src/app/shared/material/material.testing.module.mjs +4 -4
  148. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  149. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  150. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +3 -3
  151. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  152. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  153. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  154. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  155. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  156. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  157. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  158. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  159. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  160. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +7 -8
  161. package/esm2020/src/app/shared/modules.mjs +11 -0
  162. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +24 -24
  163. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +4 -4
  164. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -9
  165. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  166. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  167. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  168. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  169. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  170. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  171. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  172. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  173. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  174. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  175. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  176. package/esm2020/src/app/shared/pipes/pipes.module.mjs +14 -6
  177. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  178. package/esm2020/src/app/shared/pipes/string.pipes.mjs +43 -17
  179. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  180. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +3 -3
  181. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  182. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  183. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  184. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  185. package/esm2020/src/app/shared/shared.module.mjs +9 -5
  186. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  187. package/esm2020/src/app/shared/testing/observable.test.mjs +6 -7
  188. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  189. package/esm2020/src/app/shared/toast/toast.testing.mjs +3 -3
  190. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  191. package/esm2020/src/app/shared/toast/toasts.mjs +1 -1
  192. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
  193. package/esm2020/src/app/shared/toolbar/toolbar.mjs +3 -3
  194. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  195. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  196. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  197. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +5 -5
  198. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  199. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  200. package/esm2020/src/app/shared/validator/validators.mjs +4 -5
  201. package/esm2020/src/app/social/job/job.module.mjs +4 -4
  202. package/esm2020/src/app/social/job/job.service.mjs +3 -3
  203. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  204. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  205. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +3 -3
  206. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  207. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  208. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  209. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  210. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  211. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  212. package/esm2020/src/app/social/social.module.mjs +4 -4
  213. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  214. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  215. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  216. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +13 -12
  217. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  218. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  219. package/esm2020/src/app/social/user-event/user-event.module.mjs +4 -4
  220. package/esm2020/src/app/social/user-event/user-event.service.mjs +6 -8
  221. package/fesm2015/sumaris-net.ngx-components.mjs +10181 -9595
  222. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  223. package/fesm2020/sumaris-net.ngx-components.mjs +10395 -9817
  224. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  225. package/package.json +2 -1
  226. package/public_api.d.ts +34 -21
  227. package/src/app/admin/admin.module.d.ts +1 -1
  228. package/src/app/admin/users/{list/users.d.ts → users.d.ts} +11 -11
  229. package/src/app/admin/users/users.module.d.ts +13 -0
  230. package/src/app/core/about/{modal-about.d.ts → about.modal.d.ts} +1 -1
  231. package/src/app/core/about/about.module.d.ts +10 -0
  232. package/src/app/core/account/account.module.d.ts +11 -0
  233. package/src/app/core/account/{account.d.ts → account.page.d.ts} +5 -1
  234. package/src/app/core/auth/{form/form-auth.d.ts → auth.form.d.ts} +9 -9
  235. package/src/app/core/auth/{modal/modal-auth.d.ts → auth.modal.d.ts} +4 -4
  236. package/src/app/core/auth/auth.module.d.ts +11 -0
  237. package/src/app/core/core.module.d.ts +20 -29
  238. package/src/app/core/core.testing.module.d.ts +1 -1
  239. package/src/app/core/form/{form-buttons-bar.component.d.ts → buttons/form-buttons-bar.component.d.ts} +2 -2
  240. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
  241. package/src/app/core/form/{editor.class.d.ts → entity/editor.class.d.ts} +9 -9
  242. package/src/app/core/form/{entity-editor-modal.class.d.ts → entity/entity-editor-modal.class.d.ts} +7 -7
  243. package/src/app/core/form/{entity-editor.class.d.ts → entity/entity-editor.class.d.ts} +10 -10
  244. package/src/app/core/form/{entity-metadata.component.d.ts → entity/entity-metadata.component.d.ts} +1 -1
  245. package/src/app/core/form/entity/entity.module.d.ts +10 -0
  246. package/src/app/core/form/form.module.d.ts +13 -0
  247. package/src/app/core/form/{list.form.d.ts → list/list.form.d.ts} +3 -3
  248. package/src/app/core/form/list/list.module.d.ts +9 -0
  249. package/src/app/core/form/properties/properties.module.d.ts +9 -0
  250. package/src/app/core/{text-popover → form/text-popover}/testing/text-popover.testing.d.ts +0 -0
  251. package/src/app/core/{text-popover → form/text-popover}/testing/text-popover.testing.module.d.ts +0 -0
  252. package/src/app/core/{text-popover → form/text-popover}/text-form.component.d.ts +4 -3
  253. package/src/app/core/{text-popover → form/text-popover}/text-popover.component.d.ts +7 -2
  254. package/src/app/core/form/text-popover/text-popover.module.d.ts +10 -0
  255. package/src/app/core/home/home.module.d.ts +12 -0
  256. package/src/app/core/install/install-upgrade-card.module.d.ts +6 -7
  257. package/src/app/core/menu/menu.component.d.ts +1 -1
  258. package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
  259. package/src/app/core/peer/select-peer.modal.d.ts +19 -5
  260. package/src/app/core/peer/select-peer.module.d.ts +6 -4
  261. package/src/app/core/register/{confirm/confirm.d.ts → register-confirm.page.d.ts} +4 -4
  262. package/src/app/core/register/{form/form-register.d.ts → register.form.d.ts} +7 -7
  263. package/src/app/core/register/{modal/modal-register.d.ts → register.modal.d.ts} +2 -2
  264. package/src/app/core/register/register.module.d.ts +6 -6
  265. package/src/app/core/services/account.service.d.ts +8 -9
  266. package/src/app/core/services/base-graphql-service.class.d.ts +9 -8
  267. package/src/app/core/services/crypto.service.d.ts +23 -18
  268. package/src/app/core/services/model/entity.decorators.d.ts +1 -9
  269. package/src/app/core/services/network.service.d.ts +3 -4
  270. package/src/app/core/settings/settings.module.d.ts +10 -0
  271. package/src/app/core/settings/settings.page.d.ts +2 -4
  272. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
  273. package/src/app/core/table/table.class.d.ts +2 -6
  274. package/src/app/core/table/table.module.d.ts +10 -0
  275. package/src/app/shared/constants.d.ts +1 -1
  276. package/src/app/shared/dates.d.ts +5 -3
  277. package/src/app/shared/image/gallery/image-gallery.component.d.ts +39 -17
  278. package/src/app/shared/image/gallery/image-gallery.module.d.ts +6 -4
  279. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -0
  280. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +1 -0
  281. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +2 -3
  282. package/src/app/shared/modules.d.ts +8 -0
  283. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  284. package/src/app/shared/pipes/string.pipes.d.ts +10 -0
  285. package/src/app/shared/shared.module.d.ts +2 -1
  286. package/src/assets/i18n/fr.json +4 -1
  287. package/src/theme/_ngx-components.scss +22 -4
  288. package/esm2020/src/app/admin/users/list/users.mjs +0 -233
  289. package/esm2020/src/app/admin/users/list/users.module.mjs +0 -58
  290. package/esm2020/src/app/core/about/modal-about.mjs +0 -71
  291. package/esm2020/src/app/core/account/account.mjs +0 -230
  292. package/esm2020/src/app/core/auth/form/form-auth.mjs +0 -131
  293. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +0 -72
  294. package/esm2020/src/app/core/form/editor.class.mjs +0 -675
  295. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +0 -421
  296. package/esm2020/src/app/core/form/entity-editor.class.mjs +0 -646
  297. package/esm2020/src/app/core/form/list.form.mjs +0 -222
  298. package/esm2020/src/app/core/register/confirm/confirm.mjs +0 -81
  299. package/esm2020/src/app/core/register/form/form-register.mjs +0 -181
  300. package/esm2020/src/app/core/register/modal/modal-register.mjs +0 -52
  301. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +0 -45
  302. package/esm2020/src/app/core/text-popover/text-form.component.mjs +0 -84
  303. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +0 -92
  304. package/esm2020/src/app/vendor.mjs +0 -16
  305. package/src/app/admin/users/list/users.module.d.ts +0 -14
  306. package/src/app/vendor.d.ts +0 -11
@@ -1,20 +1,20 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  // import fade in animation
3
- import { fadeInAnimation } from '../../shared/material/material.animations';
3
+ import { fadeInAnimation } from '../../../shared/material/material.animations';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  import * as i2 from "@ionic/angular";
7
7
  import * as i3 from "@ngx-translate/core";
8
8
  import * as i4 from "ngx-jdenticon";
9
- import * as i5 from "../../shared/pipes/date-format.pipe";
9
+ import * as i5 from "../../../shared/pipes/date-format.pipe";
10
10
  export class EntityMetadataComponent {
11
11
  constructor() {
12
12
  this.showRecorder = true;
13
13
  }
14
14
  }
15
- EntityMetadataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: EntityMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- EntityMetadataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: EntityMetadataComponent, selector: "app-entity-metadata", inputs: { value: "value", showRecorder: "showRecorder" }, ngImport: i0, template: "<ng-container *ngIf=\"value && value.id\">\n <ion-card @fadeInAnimation>\n\n <!-- recorder -->\n <ion-item color=\"light\"\n *ngIf=\"showRecorder && value && \u00A0(value.recorderDepartment || value.recorderPerson)\">\n\n <!-- recorder avatar -->\n <ion-avatar slot=\"start\" *ngIf=\"value.recorderPerson; let recorderPerson\">\n <img *ngIf=\"recorderPerson.avatar; else generateAvatar\"\n src=\"{{ recorderPerson.avatar }}\">\n <ng-template #generateAvatar>\n <svg *ngIf=\"recorderPerson.id; let personId\"\n width=\"38\" height=\"38\" [data-jdenticon-value]=\"personId\"></svg>\n </ng-template>\n </ion-avatar>\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n <ion-card-title>{{value.recorderPerson?.firstName}} {{value.recorderPerson?.lastName}}</ion-card-title>\n <ion-card-subtitle>{{value.recorderDepartment?.label}}</ion-card-subtitle>\n </ion-label>\n </ion-item>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n <ion-text *ngIf=\"value.creationDate\">\n <ion-icon name=\"calendar\"></ion-icon>&nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n\n <!-- update date -->\n <ion-text *ngIf=\"value.updateDate && value.updateDate != value.creationDate\">\n <br *ngIf=\"value.creationDate\"/>\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>&nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ value.updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n\n </ion-label>\n\n <ng-content></ng-content>\n\n </ion-card-content>\n </ion-card>\n</ng-container>\n", styles: ["ion-card ion-avatar{height:40px;width:40px}ion-card ion-avatar img,ion-card ion-avatar svg{border:solid 1px rgba(0,0,0,.2)}ion-card ion-avatar img{background-color:var(--ion-color-secondary)!important}ion-card ion-avatar svg{border-radius:20px;height:38px;width:38px}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: i5.DateFormatPipe, name: "dateFormat" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: EntityMetadataComponent, decorators: [{
15
+ EntityMetadataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: EntityMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ EntityMetadataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: EntityMetadataComponent, selector: "app-entity-metadata", inputs: { value: "value", showRecorder: "showRecorder" }, ngImport: i0, template: "<ng-container *ngIf=\"value && value.id\">\n <ion-card @fadeInAnimation>\n\n <!-- recorder -->\n <ion-item color=\"light\"\n *ngIf=\"showRecorder && value && \u00A0(value.recorderDepartment || value.recorderPerson)\">\n\n <!-- recorder avatar -->\n <ion-avatar slot=\"start\" *ngIf=\"value.recorderPerson; let recorderPerson\">\n <img *ngIf=\"recorderPerson.avatar; else generateAvatar\"\n src=\"{{ recorderPerson.avatar }}\">\n <ng-template #generateAvatar>\n <svg *ngIf=\"recorderPerson.id; let personId\"\n width=\"38\" height=\"38\" [data-jdenticon-value]=\"personId\"></svg>\n </ng-template>\n </ion-avatar>\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n <ion-card-title>{{value.recorderPerson?.firstName}} {{value.recorderPerson?.lastName}}</ion-card-title>\n <ion-card-subtitle>{{value.recorderDepartment?.label}}</ion-card-subtitle>\n </ion-label>\n </ion-item>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n <ion-text *ngIf=\"value.creationDate\">\n <ion-icon name=\"calendar\"></ion-icon>&nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n\n <!-- update date -->\n <ion-text *ngIf=\"value.updateDate && value.updateDate != value.creationDate\">\n <br *ngIf=\"value.creationDate\"/>\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>&nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ value.updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n\n </ion-label>\n\n <ng-content></ng-content>\n\n </ion-card-content>\n </ion-card>\n</ng-container>\n", styles: ["ion-card ion-avatar{height:40px;width:40px}ion-card ion-avatar img,ion-card ion-avatar svg{border:solid 1px rgba(0,0,0,.2)}ion-card ion-avatar img{background-color:var(--ion-color-secondary)!important}ion-card ion-avatar svg{border-radius:20px;height:38px;width:38px}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: i5.DateFormatPipe, name: "dateFormat" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: EntityMetadataComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'app-entity-metadata', animations: [fadeInAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"value && value.id\">\n <ion-card @fadeInAnimation>\n\n <!-- recorder -->\n <ion-item color=\"light\"\n *ngIf=\"showRecorder && value && \u00A0(value.recorderDepartment || value.recorderPerson)\">\n\n <!-- recorder avatar -->\n <ion-avatar slot=\"start\" *ngIf=\"value.recorderPerson; let recorderPerson\">\n <img *ngIf=\"recorderPerson.avatar; else generateAvatar\"\n src=\"{{ recorderPerson.avatar }}\">\n <ng-template #generateAvatar>\n <svg *ngIf=\"recorderPerson.id; let personId\"\n width=\"38\" height=\"38\" [data-jdenticon-value]=\"personId\"></svg>\n </ng-template>\n </ion-avatar>\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n <ion-card-title>{{value.recorderPerson?.firstName}} {{value.recorderPerson?.lastName}}</ion-card-title>\n <ion-card-subtitle>{{value.recorderDepartment?.label}}</ion-card-subtitle>\n </ion-label>\n </ion-item>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n <ion-text *ngIf=\"value.creationDate\">\n <ion-icon name=\"calendar\"></ion-icon>&nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n\n <!-- update date -->\n <ion-text *ngIf=\"value.updateDate && value.updateDate != value.creationDate\">\n <br *ngIf=\"value.creationDate\"/>\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>&nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ value.updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n\n </ion-label>\n\n <ng-content></ng-content>\n\n </ion-card-content>\n </ion-card>\n</ng-container>\n", styles: ["ion-card ion-avatar{height:40px;width:40px}ion-card ion-avatar img,ion-card ion-avatar svg{border:solid 1px rgba(0,0,0,.2)}ion-card ion-avatar img{background-color:var(--ion-color-secondary)!important}ion-card ion-avatar svg{border-radius:20px;height:38px;width:38px}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"] }]
20
20
  }], propDecorators: { value: [{
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
22
22
  }], showRecorder: [{
23
23
  type: Input
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS1tZXRhZGF0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFaEYsMkJBQTJCO0FBQzNCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7OztBQVcxRSxNQUFNLE9BQU8sdUJBQXVCO0lBUHBDO1FBV1csaUJBQVksR0FBRyxJQUFJLENBQUM7S0FDOUI7O29IQUxZLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHFIQ2RwQyx3K0RBcURBLCtxRUQxQ2MsQ0FBQyxlQUFlLENBQUM7MkZBR2xCLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsQ0FBQyxlQUFlLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTTs4QkFJdEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnRpdHl9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG4vLyBpbXBvcnQgZmFkZSBpbiBhbmltYXRpb25cbmltcG9ydCB7ZmFkZUluQW5pbWF0aW9ufSBmcm9tICcuLi8uLi9zaGFyZWQvbWF0ZXJpYWwvbWF0ZXJpYWwuYW5pbWF0aW9ucyc7XG5pbXBvcnQge01vbWVudH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7dG9Cb29sZWFufSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVudGl0eS1tZXRhZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVJbkFuaW1hdGlvbl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eU1ldGFkYXRhQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSB2YWx1ZTogRW50aXR5PGFueT4gJiB7Y3JlYXRpb25EYXRlPzogRGF0ZSB8IE1vbWVudDsgcmVjb3JkZXJEZXBhcnRtZW50PzogYW55OyByZWNvcmRlclBlcnNvbj86IGFueX07XG5cbiAgQElucHV0KCkgc2hvd1JlY29yZGVyID0gdHJ1ZTtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZSAmJiB2YWx1ZS5pZFwiPlxuICA8aW9uLWNhcmQgQGZhZGVJbkFuaW1hdGlvbj5cblxuICAgIDwhLS0gcmVjb3JkZXIgLS0+XG4gICAgPGlvbi1pdGVtIGNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dSZWNvcmRlciAmJiB2YWx1ZSAmJiDCoCh2YWx1ZS5yZWNvcmRlckRlcGFydG1lbnQgfHwgdmFsdWUucmVjb3JkZXJQZXJzb24pXCI+XG5cbiAgICAgIDwhLS0gcmVjb3JkZXIgYXZhdGFyIC0tPlxuICAgICAgPGlvbi1hdmF0YXIgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJ2YWx1ZS5yZWNvcmRlclBlcnNvbjsgbGV0IHJlY29yZGVyUGVyc29uXCI+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJyZWNvcmRlclBlcnNvbi5hdmF0YXI7IGVsc2UgZ2VuZXJhdGVBdmF0YXJcIlxuICAgICAgICAgIHNyYz1cInt7IHJlY29yZGVyUGVyc29uLmF2YXRhciB9fVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYXRlQXZhdGFyPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJyZWNvcmRlclBlcnNvbi5pZDsgbGV0IHBlcnNvbklkXCJcbiAgICAgICAgICAgICAgIHdpZHRoPVwiMzhcIiBoZWlnaHQ9XCIzOFwiIFtkYXRhLWpkZW50aWNvbi12YWx1ZV09XCJwZXJzb25JZFwiPjwvc3ZnPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9pb24tYXZhdGFyPlxuXG4gICAgICA8IS0tIHJlY29yZGVyIG5hbWUgLS0+XG4gICAgICA8aW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgdHJhbnNsYXRlPkNPTU1PTi5SRUNPUkRFUjwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZT57e3ZhbHVlLnJlY29yZGVyUGVyc29uPy5maXJzdE5hbWV9fSB7e3ZhbHVlLnJlY29yZGVyUGVyc29uPy5sYXN0TmFtZX19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlPnt7dmFsdWUucmVjb3JkZXJEZXBhcnRtZW50Py5sYWJlbH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWxhYmVsPlxuICAgIDwvaW9uLWl0ZW0+XG5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwIHN0YXR1c1wiPlxuICAgICAgICA8IS0tIGNyZWF0aW9uIGRhdGUgLS0+XG4gICAgICAgIDxpb24tdGV4dCAqbmdJZj1cInZhbHVlLmNyZWF0aW9uRGF0ZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FsZW5kYXJcIj48L2lvbi1pY29uPiZuYnNwO1xuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5DT01NT04uQ1JFQVRFRF9PTjwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIDxiPnt7IHZhbHVlLmNyZWF0aW9uRGF0ZSB8IGRhdGVGb3JtYXQ6IHt0aW1lOiB0cnVlfSB9fTwvYj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaW9uLXRleHQ+XG5cbiAgICAgICAgPCEtLSB1cGRhdGUgZGF0ZSAtLT5cbiAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwidmFsdWUudXBkYXRlRGF0ZSAmJiB2YWx1ZS51cGRhdGVEYXRlICE9IHZhbHVlLmNyZWF0aW9uRGF0ZVwiPlxuICAgICAgICAgIDxiciAqbmdJZj1cInZhbHVlLmNyZWF0aW9uRGF0ZVwiLz5cbiAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0aW1lLW91dGxpbmVcIj48L2lvbi1pY29uPiZuYnNwO1xuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkNPTU1PTi5VUERBVEVEX09OPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7e3sgdmFsdWUudXBkYXRlRGF0ZSB8IGRhdGVGb3JtYXQ6IHt0aW1lOiB0cnVlLCBzZWNvbmRzOiB0cnVlfSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tdGV4dD5cblxuICAgICAgPC9pb24tbGFiZWw+XG5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgPC9pb24tY2FyZD5cbjwvbmctY29udGFpbmVyPlxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VudGl0eS1tZXRhZGF0YS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RSwyQkFBMkI7QUFDM0IsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7O0FBVTdFLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFXVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5Qjs7b0hBTFksdUJBQXVCO3dHQUF2Qix1QkFBdUIscUhDYnBDLHcrREFxREEsK3FFRDNDYyxDQUFDLGVBQWUsQ0FBQzsyRkFHbEIsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixDQUFDLGVBQWUsQ0FBQyxtQkFDWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnRpdHl9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG4vLyBpbXBvcnQgZmFkZSBpbiBhbmltYXRpb25cbmltcG9ydCB7ZmFkZUluQW5pbWF0aW9ufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbWF0ZXJpYWwvbWF0ZXJpYWwuYW5pbWF0aW9ucyc7XG5pbXBvcnQge01vbWVudH0gZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVudGl0eS1tZXRhZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVJbkFuaW1hdGlvbl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eU1ldGFkYXRhQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSB2YWx1ZTogRW50aXR5PGFueT4gJiB7Y3JlYXRpb25EYXRlPzogRGF0ZSB8IE1vbWVudDsgcmVjb3JkZXJEZXBhcnRtZW50PzogYW55OyByZWNvcmRlclBlcnNvbj86IGFueX07XG5cbiAgQElucHV0KCkgc2hvd1JlY29yZGVyID0gdHJ1ZTtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZSAmJiB2YWx1ZS5pZFwiPlxuICA8aW9uLWNhcmQgQGZhZGVJbkFuaW1hdGlvbj5cblxuICAgIDwhLS0gcmVjb3JkZXIgLS0+XG4gICAgPGlvbi1pdGVtIGNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dSZWNvcmRlciAmJiB2YWx1ZSAmJiDCoCh2YWx1ZS5yZWNvcmRlckRlcGFydG1lbnQgfHwgdmFsdWUucmVjb3JkZXJQZXJzb24pXCI+XG5cbiAgICAgIDwhLS0gcmVjb3JkZXIgYXZhdGFyIC0tPlxuICAgICAgPGlvbi1hdmF0YXIgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJ2YWx1ZS5yZWNvcmRlclBlcnNvbjsgbGV0IHJlY29yZGVyUGVyc29uXCI+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJyZWNvcmRlclBlcnNvbi5hdmF0YXI7IGVsc2UgZ2VuZXJhdGVBdmF0YXJcIlxuICAgICAgICAgIHNyYz1cInt7IHJlY29yZGVyUGVyc29uLmF2YXRhciB9fVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYXRlQXZhdGFyPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJyZWNvcmRlclBlcnNvbi5pZDsgbGV0IHBlcnNvbklkXCJcbiAgICAgICAgICAgICAgIHdpZHRoPVwiMzhcIiBoZWlnaHQ9XCIzOFwiIFtkYXRhLWpkZW50aWNvbi12YWx1ZV09XCJwZXJzb25JZFwiPjwvc3ZnPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9pb24tYXZhdGFyPlxuXG4gICAgICA8IS0tIHJlY29yZGVyIG5hbWUgLS0+XG4gICAgICA8aW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgdHJhbnNsYXRlPkNPTU1PTi5SRUNPUkRFUjwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZT57e3ZhbHVlLnJlY29yZGVyUGVyc29uPy5maXJzdE5hbWV9fSB7e3ZhbHVlLnJlY29yZGVyUGVyc29uPy5sYXN0TmFtZX19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlPnt7dmFsdWUucmVjb3JkZXJEZXBhcnRtZW50Py5sYWJlbH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWxhYmVsPlxuICAgIDwvaW9uLWl0ZW0+XG5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwIHN0YXR1c1wiPlxuICAgICAgICA8IS0tIGNyZWF0aW9uIGRhdGUgLS0+XG4gICAgICAgIDxpb24tdGV4dCAqbmdJZj1cInZhbHVlLmNyZWF0aW9uRGF0ZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FsZW5kYXJcIj48L2lvbi1pY29uPiZuYnNwO1xuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5DT01NT04uQ1JFQVRFRF9PTjwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIDxiPnt7IHZhbHVlLmNyZWF0aW9uRGF0ZSB8IGRhdGVGb3JtYXQ6IHt0aW1lOiB0cnVlfSB9fTwvYj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaW9uLXRleHQ+XG5cbiAgICAgICAgPCEtLSB1cGRhdGUgZGF0ZSAtLT5cbiAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwidmFsdWUudXBkYXRlRGF0ZSAmJiB2YWx1ZS51cGRhdGVEYXRlICE9IHZhbHVlLmNyZWF0aW9uRGF0ZVwiPlxuICAgICAgICAgIDxiciAqbmdJZj1cInZhbHVlLmNyZWF0aW9uRGF0ZVwiLz5cbiAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0aW1lLW91dGxpbmVcIj48L2lvbi1pY29uPiZuYnNwO1xuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkNPTU1PTi5VUERBVEVEX09OPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7e3sgdmFsdWUudXBkYXRlRGF0ZSB8IGRhdGVGb3JtYXQ6IHt0aW1lOiB0cnVlLCBzZWNvbmRzOiB0cnVlfSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tdGV4dD5cblxuICAgICAgPC9pb24tbGFiZWw+XG5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgPC9pb24tY2FyZD5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SharedModule } from '../../../shared/shared.module';
3
+ import { EntityMetadataComponent } from './entity-metadata.component';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { NgxJdenticonModule } from 'ngx-jdenticon';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngx-translate/core";
8
+ export class AppEntityFormModule {
9
+ }
10
+ AppEntityFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppEntityFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ AppEntityFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: AppEntityFormModule, declarations: [
12
+ // Other components
13
+ EntityMetadataComponent], imports: [SharedModule, i1.TranslateModule, NgxJdenticonModule], exports: [TranslateModule,
14
+ // Components
15
+ EntityMetadataComponent] });
16
+ AppEntityFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppEntityFormModule, imports: [SharedModule,
17
+ TranslateModule.forChild(),
18
+ NgxJdenticonModule, TranslateModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppEntityFormModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [
23
+ SharedModule,
24
+ TranslateModule.forChild(),
25
+ NgxJdenticonModule
26
+ ],
27
+ declarations: [
28
+ // Other components
29
+ EntityMetadataComponent,
30
+ ],
31
+ exports: [
32
+ TranslateModule,
33
+ // Components
34
+ EntityMetadataComponent
35
+ ]
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS9lbnRpdHkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQW1CakQsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CO1FBVDVCLG1CQUFtQjtRQUNuQix1QkFBdUIsYUFQdkIsWUFBWSxzQkFFWixrQkFBa0IsYUFRbEIsZUFBZTtRQUNmLGFBQWE7UUFDYix1QkFBdUI7aUhBR2QsbUJBQW1CLFlBZjVCLFlBQVk7UUFDWixlQUFlLENBQUMsUUFBUSxFQUFFO1FBQzFCLGtCQUFrQixFQVFsQixlQUFlOzJGQUtOLG1CQUFtQjtrQkFqQi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsa0JBQWtCO3FCQUNuQjtvQkFFRCxZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7RW50aXR5TWV0YWRhdGFDb21wb25lbnR9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge05neEpkZW50aWNvbk1vZHVsZX0gZnJvbSAnbmd4LWpkZW50aWNvbic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgTmd4SmRlbnRpY29uTW9kdWxlXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLy8gT3RoZXIgY29tcG9uZW50c1xuICAgIEVudGl0eU1ldGFkYXRhQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIC8vIENvbXBvbmVudHNcbiAgICBFbnRpdHlNZXRhZGF0YUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcEVudGl0eUZvcm1Nb2R1bGUge1xufVxuIl19
@@ -320,9 +320,9 @@ export class AppForm {
320
320
  }
321
321
  }
322
322
  }
323
- AppForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AppForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormGroup }], target: i0.ɵɵFactoryTarget.Directive });
324
- AppForm.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.5", type: AppForm, inputs: { debug: "debug", tabindex: "tabindex", errorTranslatorOptions: "errorTranslatorOptions", form: "form" }, outputs: { onCancel: "onCancel", onSubmit: "onSubmit" }, ngImport: i0 });
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AppForm, decorators: [{
323
+ AppForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormGroup }], target: i0.ɵɵFactoryTarget.Directive });
324
+ AppForm.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: AppForm, inputs: { debug: "debug", tabindex: "tabindex", errorTranslatorOptions: "errorTranslatorOptions", form: "form" }, outputs: { onCancel: "onCancel", onSubmit: "onSubmit" }, ngImport: i0 });
325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppForm, decorators: [{
326
326
  type: Directive
327
327
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.UntypedFormGroup }]; }, propDecorators: { debug: [{
328
328
  type: Input
@@ -337,4 +337,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
337
337
  }], onSubmit: [{
338
338
  type: Output
339
339
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQW9CLFlBQVksRUFBa0IsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixFQUF5RCxNQUFNLGlEQUFpRCxDQUFDO0FBQzVJLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQywyQkFBMkIsRUFBNkQsTUFBTSxpRUFBaUUsQ0FBQzs7O0FBR3hLLGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLE9BQU87SUFrSjNCLFlBQ0UsUUFBa0IsRUFDbEIsSUFBdUI7UUFsSmpCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdqQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBR3RCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUkvQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDcEQsaUJBQVksR0FB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UyxLQUFLLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxzRUFBc0UsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCw0QkFBNEI7SUFFcEIsVUFBVSxDQUFDLEtBQWMsRUFBRSxJQUE0QjtRQUM3RCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRztZQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVoQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7O29HQW5ZbUIsT0FBTzt3RkFBUCxPQUFPOzJGQUFQLE9BQU87a0JBRjVCLFNBQVM7OEhBb0lDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBU0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgVGVhcmRvd25Mb2dpY30gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FwcEZvcm1VdGlscywgSUFwcEZvcm0sIE9uUmVhZHl9IGZyb20gJy4vZm9ybS51dGlscyc7XG5pbXBvcnQge0xvY2FsU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7Zmlyc3RGYWxzZVByb21pc2UsIHdhaXRGb3JGYWxzZSwgV2FpdEZvck9wdGlvbnMsIHdhaXRGb3JUcnVlfSBmcm9tICcuLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtGb3JtRXJyb3JUcmFuc2xhdG9yLCBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucywgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3J9IGZyb20gJy4uLy4uL3NoYXJlZC92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIsIE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9ucywgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWd9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwRm9ybTxUPiBpbXBsZW1lbnRzIElBcHBGb3JtLCBPbkluaXQsIE9uRGVzdHJveSwgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3Ige1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBwcm90ZWN0ZWQgX2VuYWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZXJyb3JUcmFuc2xhdG9yOiBGb3JtRXJyb3JUcmFuc2xhdG9yO1xuICBwcm90ZWN0ZWQgaTE4bkZpZWxkUHJlZml4OiBzdHJpbmcgPSBudWxsO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZUhlbHBlcjogTWF0QXV0b2NvbXBsZXRlQ29uZmlnSG9sZGVyO1xuICByZWFkb25seSBhdXRvY29tcGxldGVGaWVsZHM6IHtba2V5OiBzdHJpbmddOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZ307XG4gIHJlYWRvbmx5IHJlYWR5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGVycm9yU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiAgQGRlcHJlY2F0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzZXQgX2xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuICAvKipcbiAgICogIEBkZXByZWNhdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF8kcmVhZHkoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVN1YmplY3Q7XG4gIH1cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfJGxvYWRpbmcoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdDtcbiAgfVxuXG4gIGdldCBlcnJvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRFcnJvcihlcnJvcik7XG4gIH1cblxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBsb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LmRpcnR5IHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLmludmFsaWQ7XG4gIH1cblxuICBnZXQgcGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAodGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuZm9ybS5wZW5kaW5nKTtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAoIXRoaXMuZm9ybS5kaXJ0eSAmJiAhdGhpcy5mb3JtLnRvdWNoZWQpO1xuICB9XG5cbiAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8udG91Y2hlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCB1bnRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLnVudG91Y2hlZDtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGU7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9lbmFibGU7XG4gIH1cblxuICBkaXNhYmxlKG9wdHM/OiB7XG4gICAgb25seVNlbGY/OiBib29sZWFuO1xuICAgIGVtaXRFdmVudD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0/LmRpc2FibGUob3B0cyk7XG4gICAgaWYgKHRoaXMuX2VuYWJsZSkge1xuICAgICAgdGhpcy5fZW5hYmxlID0gZmFsc2U7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IHRydWUpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlKG9wdHM/OiB7XG4gICAgb25seVNlbGY/OiBib29sZWFuO1xuICAgIGVtaXRFdmVudD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0/LmVuYWJsZShvcHRzKTtcbiAgICBpZiAoIXRoaXMuX2VuYWJsZSkge1xuICAgICAgdGhpcy5fZW5hYmxlID0gdHJ1ZTtcbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gdHJ1ZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlc3Ryb3lTdWJqZWN0Py5jbG9zZWQgIT09IGZhbHNlXG4gIH1cblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyO1xuICBASW5wdXQoKSBlcnJvclRyYW5zbGF0b3JPcHRpb25zOiBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucztcblxuICBASW5wdXQoKVxuICBzZXQgZm9ybSh2YWx1ZTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIHRoaXMuc2V0Rm9ybSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgZm9ybSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIGZvcm0/OiBVbnR5cGVkRm9ybUdyb3VwXG4gICkge1xuICAgIGlmIChmb3JtKSB0aGlzLnNldEZvcm0oZm9ybSk7XG4gICAgdGhpcy50cmFuc2xhdGUgPSBpbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5zZXR0aW5ncyA9IGluamVjdG9yLmdldChMb2NhbFNldHRpbmdzU2VydmljZSk7XG4gICAgdGhpcy5lcnJvclRyYW5zbGF0b3IgPSBpbmplY3Rvci5nZXQoRm9ybUVycm9yVHJhbnNsYXRvcik7XG4gICAgdGhpcy5hdXRvY29tcGxldGVIZWxwZXIgPSBuZXcgTWF0QXV0b2NvbXBsZXRlQ29uZmlnSG9sZGVyKHRoaXMuc2V0dGluZ3MgJiYge1xuICAgICAgZ2V0VXNlckF0dHJpYnV0ZXM6IChhLCBiKSA9PiB0aGlzLnNldHRpbmdzLmdldEZpZWxkRGlzcGxheUF0dHJpYnV0ZXMoYSwgYilcbiAgICB9KTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkcyA9IHRoaXMuYXV0b2NvbXBsZXRlSGVscGVyLmZpZWxkcztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2VuYWJsZSA/IHRoaXMuZW5hYmxlKCkgOiB0aGlzLmRpc2FibGUoKTtcbiAgICB0aGlzLmVycm9yVHJhbnNsYXRvck9wdGlvbnMgPSB0aGlzLmVycm9yVHJhbnNsYXRvck9wdGlvbnMgfHwge1xuICAgICAgY29udHJvbFBhdGhUcmFuc2xhdG9yOiB0aGlzXG4gICAgfTtcblxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnJlYWR5U3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9hZGluZ1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmVycm9yU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25DYW5jZWwudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uU3VibWl0LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmRlc3Ryb3lTdWJqZWN0Lm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3lTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBhc3luYyBjYW5jZWwoKSB7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqIEBwYXJhbSBvcHRzIGFsbG93IHRvIHNraXAgdmFsaWRhdGlvbiBjaGVjaywgdXNpbmcge2NoZWNrVmFsaWQ6IGZhbHNlfVxuICAgKi9cbiAgYXN5bmMgZG9TdWJtaXQoZXZlbnQ6IGFueSwgb3B0cz86IHtjaGVja1ZhbGlkPzogYm9vbGVhbjt9KSB7XG4gICAgaWYgKCF0aGlzLl9mb3JtKSB7XG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQoe2VtaXRFdmVudDogdHJ1ZX0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHZhbGlkIChpZiBub3QgZGlzYWJsZWQpXG4gICAgaWYgKCghb3B0cyB8fCBvcHRzLmNoZWNrVmFsaWQgIT09IGZhbHNlKSAmJiAhdGhpcy5fZm9ybS52YWxpZCkge1xuXG4gICAgICAvLyBXYWl0IHZhbGlkYXRpb24gZW5kXG4gICAgICBhd2FpdCBBcHBGb3JtVXRpbHMud2FpdFdoaWxlUGVuZGluZyh0aGlzLl9mb3JtKTtcblxuICAgICAgLy8gRm9ybSBpcyBpbnZhbGlkOiBleGl0ICgrIGxvZyBpZiBkZWJ1ZylcbiAgICAgIGlmICh0aGlzLl9mb3JtLmludmFsaWQpIHtcbiAgICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkKHtlbWl0RXZlbnQ6IHRydWV9KTtcbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKHRoaXMuX2Zvcm0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMub25TdWJtaXQuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRGb3JtKGZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBpZiAodGhpcy5fZm9ybSAhPT0gZm9ybSkge1xuICAgICAgdGhpcy5fZm9ybSA9IGZvcm07XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICB0aGlzLl9mb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHN0YXR1cyA9PiB0aGlzLm1hcmtGb3JDaGVjaygpKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFsdWUoZGF0YTogVCwgb3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFuOyBvbmx5U2VsZj86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4gfCB2b2lkIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUud2FybignW2Zvcm1dIFRyeWluZyB0byBzZXQgYW4gZW1wdHkgdmFsdWUgdG8gZm9ybS4gU2tpcHBpbmcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBERUJVR1xuICAgIC8vaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tmb3JtXSBVcGRhdGluZyBmb3JtICh1c2luZyBlbnRpdHkpJywgZGF0YSk7XG5cbiAgICAvLyBDb252ZXJ0IG9iamVjdCB0byBqc29uLCB0aGVuIGFwcGx5IGl0IHRvIGZvcm0gKGUuZy4gY29udmVydCAndW5kZWZpbmVkJyBpbnRvICdudWxsJylcbiAgICBBcHBGb3JtVXRpbHMuY29weUVudGl0eTJGb3JtKGRhdGEsIHRoaXMuZm9ybSwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlLCAuLi5vcHRzfSk7XG5cbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IHRydWUpIHtcbiAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXQoZGF0YT86IFQsIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbjsgb25seVNlbGY/OiBib29sZWFuIH0pIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tmb3JtXSBSZXNldHRpbmcgZm9ybSAodXNpbmcgZW50aXR5KScsIGRhdGEpO1xuXG4gICAgICAvLyBDb252ZXJ0IG9iamVjdCB0byBqc29uLCB0aGVuIGFwcGx5IGl0IHRvIGZvcm0gKGUuZy4gY29udmVydCAndW5kZWZpbmVkJyBpbnRvICdudWxsJylcbiAgICAgIGNvbnN0IGpzb24gPSBBcHBGb3JtVXRpbHMuZ2V0Rm9ybVZhbHVlRnJvbUVudGl0eShkYXRhLCB0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KGpzb24sIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldChudWxsLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IHRydWUpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNVbnRvdWNoZWQob3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBwcmVmZXIgdG8gdXNlIG1hcmtBbGxBc1RvdWNoZWQoKVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgbWFya0FzVG91Y2hlZChvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgLy8gdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKSAvLyBUaGlzIGlzIG5vdCB3b3JraW5nIHdlbGwgKGUuZy4gaW4gVHJpcEZvcm0pXG4gICAgY29uc29sZS53YXJuKCdUT0RPOiBSZXBsYWNlIHRoaXMgY2FsbCBieSBtYXJrQWxsQXNUb3VjaGVkKCkgLSBiZWNhdXNlIG9mIGNoYW5nZXMgaW4gbmd4LWNvbXBvbmVudHMgPj0gMC4xNi4wJyk7XG4gICAgQXBwRm9ybVV0aWxzLm1hcmtBc1RvdWNoZWQodGhpcy5mb3JtLCBvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FsbEFzVG91Y2hlZChvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICAvLyB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpIC8vIFRoaXMgaXMgbm90IHdvcmtpbmcgd2VsbCAoZS5nLiBpbiBUcmlwRm9ybSlcbiAgICBBcHBGb3JtVXRpbHMubWFya0FsbEFzVG91Y2hlZCh0aGlzLmZvcm0sIG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNMb2FkaW5nKG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICB0aGlzLnNldExvYWRpbmcodHJ1ZSwgb3B0cyk7XG4gIH1cblxuICBtYXJrQXNMb2FkZWQob3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFufSkge1xuICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSwgb3B0cyk7XG4gIH1cblxuICBtYXJrQXNSZWFkeShvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgaWYgKHRoaXMucmVhZHlTdWJqZWN0LnZhbHVlICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLnJlYWR5U3ViamVjdC5uZXh0KHRydWUpO1xuXG4gICAgICAvLyBJZiBzdWJjbGFzc2VzIGltcGxlbWVudHMgT25SZWFkeVxuICAgICAgaWYgKHR5cGVvZiB0aGlzWyduZ09uUmVhZHknXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAodGhpcyBhcyBhbnkgYXMgT25SZWFkeSkubmdPblJlYWR5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdhaXQgZm9ybSBpcyByZWFkeVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgcmVhZHkob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMucmVhZHlTdWJqZWN0LnZhbHVlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgcmV0dXJuIHdhaXRGb3JUcnVlKHRoaXMucmVhZHlTdWJqZWN0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0IGZvcm0gaXMgbm90IGJ1c3kgKD1sb2FkZWQpXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqL1xuICB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICByZXR1cm4gd2FpdEZvckZhbHNlKHRoaXMubG9hZGluZ1N1YmplY3QsIG9wdHMpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eShvcHRzPzoge1xuICAgIG9ubHlTZWxmPzogYm9vbGVhbjtcbiAgICBlbWl0RXZlbnQ/OiBib29sZWFuO1xuICB9KSB7XG4gICAgQXBwRm9ybVV0aWxzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodGhpcy5mb3JtLCBvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdHJhbnNsYXRlQ29udHJvbFBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgaTE4bkZpZWxkTmFtZSA9IHRoaXMuZ2V0STE4bkZpZWxkTmFtZShwYXRoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGU/Lmluc3RhbnQoaTE4bkZpZWxkTmFtZSkgfHwgaTE4bkZpZWxkTmFtZTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGdldEZvcm1FcnJvcihmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLCBvcHRzPzogRm9ybUVycm9yVHJhbnNsYXRvck9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghZm9ybSB8fCAhdGhpcy5lcnJvclRyYW5zbGF0b3IpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JUcmFuc2xhdG9yLnRyYW5zbGF0ZUZvcm1FcnJvcnModGhpcy5mb3JtLCB7XG4gICAgICBjb250cm9sUGF0aFRyYW5zbGF0b3I6IHRoaXMsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0STE4bkZpZWxkTmFtZShwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHRoaXMuaTE4bkZpZWxkUHJlZml4IHx8ICcnKSArIGNoYW5nZUNhc2VUb1VuZGVyc2NvcmUocGF0aCkudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbikge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnJlbW92ZShzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyQXV0b2NvbXBsZXRlRmllbGQ8RSA9IGFueSwgRUYgPSBhbnk+KGZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzPzogTWF0QXV0b2NvbXBsZXRlRmllbGRBZGRPcHRpb25zPEUsIEVGPik6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPEUsIEVGPiB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlSGVscGVyLmFkZChmaWVsZE5hbWUsIG9wdHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEVycm9yKHZhbHVlOiBzdHJpbmcsIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgaWYgKHRoaXMuZXJyb3JTdWJqZWN0LnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvclN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICAvLyBTaG91bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3ViY2xhc3Nlc1xuICAgIGNvbnNvbGUud2FybignbWFya0ZvckNoZWNrKCkgaGFzIGJlZW4gY2FsbGVkLCBidXQgaXMgbm90IG92ZXJ3cml0dGVuIGJ5IGNvbXBvbmVudCAnICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgfVxuXG4gIC8qIC0tIHByaXZhdGUgZnVuY3Rpb24gLS0gKi9cblxuICBwcml2YXRlIHNldExvYWRpbmcodmFsdWU6IGJvb2xlYW4sIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZSAhPT0gdmFsdWUpICB7XG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodmFsdWUpO1xuXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQW9CLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxZQUFZLEVBQWtCLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxtQkFBbUIsRUFBeUQsTUFBTSxpREFBaUQsQ0FBQztBQUM1SSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsMkJBQTJCLEVBQTZELE1BQU0saUVBQWlFLENBQUM7OztBQUd4SyxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixPQUFPO0lBa0ozQixZQUNFLFFBQWtCLEVBQ2xCLElBQXVCO1FBbEpqQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHakMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUd0QixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFJL0MsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3BELGlCQUFZLEdBQUcs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S0FBSyxLQUFLLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQztJQUVTLFlBQVk7UUFDcEIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0VBQXNFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsNEJBQTRCO0lBRXBCLFVBQVUsQ0FBQyxLQUFjLEVBQUUsSUFBNEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUc7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDOztvR0FuWW1CLE9BQU87d0ZBQVAsT0FBTzsyRkFBUCxPQUFPO2tCQUY1QixTQUFTOzhIQW9JQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0YsSUFBSTtzQkFEUCxLQUFLO2dCQVNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcHBGb3JtVXRpbHMsIElBcHBGb3JtLCBPblJlYWR5fSBmcm9tICcuL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtMb2NhbFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge3dhaXRGb3JGYWxzZSwgV2FpdEZvck9wdGlvbnMsIHdhaXRGb3JUcnVlfSBmcm9tICcuLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtGb3JtRXJyb3JUcmFuc2xhdG9yLCBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucywgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3J9IGZyb20gJy4uLy4uL3NoYXJlZC92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIsIE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9ucywgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWd9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwRm9ybTxUPiBpbXBsZW1lbnRzIElBcHBGb3JtLCBPbkluaXQsIE9uRGVzdHJveSwgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3Ige1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBwcm90ZWN0ZWQgX2VuYWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZXJyb3JUcmFuc2xhdG9yOiBGb3JtRXJyb3JUcmFuc2xhdG9yO1xuICBwcm90ZWN0ZWQgaTE4bkZpZWxkUHJlZml4OiBzdHJpbmcgPSBudWxsO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZUhlbHBlcjogTWF0QXV0b2NvbXBsZXRlQ29uZmlnSG9sZGVyO1xuICByZWFkb25seSBhdXRvY29tcGxldGVGaWVsZHM6IHtba2V5OiBzdHJpbmddOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZ307XG4gIHJlYWRvbmx5IHJlYWR5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGVycm9yU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiAgQGRlcHJlY2F0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzZXQgX2xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuICAvKipcbiAgICogIEBkZXByZWNhdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF8kcmVhZHkoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVN1YmplY3Q7XG4gIH1cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfJGxvYWRpbmcoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdDtcbiAgfVxuXG4gIGdldCBlcnJvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRFcnJvcihlcnJvcik7XG4gIH1cblxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBsb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LmRpcnR5IHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLmludmFsaWQ7XG4gIH1cblxuICBnZXQgcGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAodGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuZm9ybS5wZW5kaW5nKTtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAoIXRoaXMuZm9ybS5kaXJ0eSAmJiAhdGhpcy5mb3JtLnRvdWNoZWQpO1xuICB9XG5cbiAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8udG91Y2hlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCB1bnRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLnVudG91Y2hlZDtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGU7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9lbmFibGU7XG4gIH1cblxuICBkaXNhYmxlKG9wdHM/OiB7XG4gICAgb25seVNlbGY/OiBib29sZWFuO1xuICAgIGVtaXRFdmVudD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0/LmRpc2FibGUob3B0cyk7XG4gICAgaWYgKHRoaXMuX2VuYWJsZSkge1xuICAgICAgdGhpcy5fZW5hYmxlID0gZmFsc2U7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IHRydWUpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlKG9wdHM/OiB7XG4gICAgb25seVNlbGY/OiBib29sZWFuO1xuICAgIGVtaXRFdmVudD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0/LmVuYWJsZShvcHRzKTtcbiAgICBpZiAoIXRoaXMuX2VuYWJsZSkge1xuICAgICAgdGhpcy5fZW5hYmxlID0gdHJ1ZTtcbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gdHJ1ZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlc3Ryb3lTdWJqZWN0Py5jbG9zZWQgIT09IGZhbHNlXG4gIH1cblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyO1xuICBASW5wdXQoKSBlcnJvclRyYW5zbGF0b3JPcHRpb25zOiBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucztcblxuICBASW5wdXQoKVxuICBzZXQgZm9ybSh2YWx1ZTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIHRoaXMuc2V0Rm9ybSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgZm9ybSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIGZvcm0/OiBVbnR5cGVkRm9ybUdyb3VwXG4gICkge1xuICAgIGlmIChmb3JtKSB0aGlzLnNldEZvcm0oZm9ybSk7XG4gICAgdGhpcy50cmFuc2xhdGUgPSBpbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5zZXR0aW5ncyA9IGluamVjdG9yLmdldChMb2NhbFNldHRpbmdzU2VydmljZSk7XG4gICAgdGhpcy5lcnJvclRyYW5zbGF0b3IgPSBpbmplY3Rvci5nZXQoRm9ybUVycm9yVHJhbnNsYXRvcik7XG4gICAgdGhpcy5hdXRvY29tcGxldGVIZWxwZXIgPSBuZXcgTWF0QXV0b2NvbXBsZXRlQ29uZmlnSG9sZGVyKHRoaXMuc2V0dGluZ3MgJiYge1xuICAgICAgZ2V0VXNlckF0dHJpYnV0ZXM6IChhLCBiKSA9PiB0aGlzLnNldHRpbmdzLmdldEZpZWxkRGlzcGxheUF0dHJpYnV0ZXMoYSwgYilcbiAgICB9KTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkcyA9IHRoaXMuYXV0b2NvbXBsZXRlSGVscGVyLmZpZWxkcztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2VuYWJsZSA/IHRoaXMuZW5hYmxlKCkgOiB0aGlzLmRpc2FibGUoKTtcbiAgICB0aGlzLmVycm9yVHJhbnNsYXRvck9wdGlvbnMgPSB0aGlzLmVycm9yVHJhbnNsYXRvck9wdGlvbnMgfHwge1xuICAgICAgY29udHJvbFBhdGhUcmFuc2xhdG9yOiB0aGlzXG4gICAgfTtcblxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnJlYWR5U3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9hZGluZ1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmVycm9yU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25DYW5jZWwudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uU3VibWl0LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmRlc3Ryb3lTdWJqZWN0Lm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3lTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBhc3luYyBjYW5jZWwoKSB7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqIEBwYXJhbSBvcHRzIGFsbG93IHRvIHNraXAgdmFsaWRhdGlvbiBjaGVjaywgdXNpbmcge2NoZWNrVmFsaWQ6IGZhbHNlfVxuICAgKi9cbiAgYXN5bmMgZG9TdWJtaXQoZXZlbnQ6IGFueSwgb3B0cz86IHtjaGVja1ZhbGlkPzogYm9vbGVhbjt9KSB7XG4gICAgaWYgKCF0aGlzLl9mb3JtKSB7XG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQoe2VtaXRFdmVudDogdHJ1ZX0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHZhbGlkIChpZiBub3QgZGlzYWJsZWQpXG4gICAgaWYgKCghb3B0cyB8fCBvcHRzLmNoZWNrVmFsaWQgIT09IGZhbHNlKSAmJiAhdGhpcy5fZm9ybS52YWxpZCkge1xuXG4gICAgICAvLyBXYWl0IHZhbGlkYXRpb24gZW5kXG4gICAgICBhd2FpdCBBcHBGb3JtVXRpbHMud2FpdFdoaWxlUGVuZGluZyh0aGlzLl9mb3JtKTtcblxuICAgICAgLy8gRm9ybSBpcyBpbnZhbGlkOiBleGl0ICgrIGxvZyBpZiBkZWJ1ZylcbiAgICAgIGlmICh0aGlzLl9mb3JtLmludmFsaWQpIHtcbiAgICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkKHtlbWl0RXZlbnQ6IHRydWV9KTtcbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKHRoaXMuX2Zvcm0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMub25TdWJtaXQuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRGb3JtKGZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBpZiAodGhpcy5fZm9ybSAhPT0gZm9ybSkge1xuICAgICAgdGhpcy5fZm9ybSA9IGZvcm07XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICB0aGlzLl9mb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHN0YXR1cyA9PiB0aGlzLm1hcmtGb3JDaGVjaygpKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFsdWUoZGF0YTogVCwgb3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFuOyBvbmx5U2VsZj86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4gfCB2b2lkIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUud2FybignW2Zvcm1dIFRyeWluZyB0byBzZXQgYW4gZW1wdHkgdmFsdWUgdG8gZm9ybS4gU2tpcHBpbmcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBERUJVR1xuICAgIC8vaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tmb3JtXSBVcGRhdGluZyBmb3JtICh1c2luZyBlbnRpdHkpJywgZGF0YSk7XG5cbiAgICAvLyBDb252ZXJ0IG9iamVjdCB0byBqc29uLCB0aGVuIGFwcGx5IGl0IHRvIGZvcm0gKGUuZy4gY29udmVydCAndW5kZWZpbmVkJyBpbnRvICdudWxsJylcbiAgICBBcHBGb3JtVXRpbHMuY29weUVudGl0eTJGb3JtKGRhdGEsIHRoaXMuZm9ybSwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlLCAuLi5vcHRzfSk7XG5cbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IHRydWUpIHtcbiAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXQoZGF0YT86IFQsIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbjsgb25seVNlbGY/OiBib29sZWFuIH0pIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tmb3JtXSBSZXNldHRpbmcgZm9ybSAodXNpbmcgZW50aXR5KScsIGRhdGEpO1xuXG4gICAgICAvLyBDb252ZXJ0IG9iamVjdCB0byBqc29uLCB0aGVuIGFwcGx5IGl0IHRvIGZvcm0gKGUuZy4gY29udmVydCAndW5kZWZpbmVkJyBpbnRvICdudWxsJylcbiAgICAgIGNvbnN0IGpzb24gPSBBcHBGb3JtVXRpbHMuZ2V0Rm9ybVZhbHVlRnJvbUVudGl0eShkYXRhLCB0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KGpzb24sIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldChudWxsLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IHRydWUpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNVbnRvdWNoZWQob3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBwcmVmZXIgdG8gdXNlIG1hcmtBbGxBc1RvdWNoZWQoKVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgbWFya0FzVG91Y2hlZChvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgLy8gdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKSAvLyBUaGlzIGlzIG5vdCB3b3JraW5nIHdlbGwgKGUuZy4gaW4gVHJpcEZvcm0pXG4gICAgY29uc29sZS53YXJuKCdUT0RPOiBSZXBsYWNlIHRoaXMgY2FsbCBieSBtYXJrQWxsQXNUb3VjaGVkKCkgLSBiZWNhdXNlIG9mIGNoYW5nZXMgaW4gbmd4LWNvbXBvbmVudHMgPj0gMC4xNi4wJyk7XG4gICAgQXBwRm9ybVV0aWxzLm1hcmtBc1RvdWNoZWQodGhpcy5mb3JtLCBvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FsbEFzVG91Y2hlZChvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICAvLyB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpIC8vIFRoaXMgaXMgbm90IHdvcmtpbmcgd2VsbCAoZS5nLiBpbiBUcmlwRm9ybSlcbiAgICBBcHBGb3JtVXRpbHMubWFya0FsbEFzVG91Y2hlZCh0aGlzLmZvcm0sIG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNMb2FkaW5nKG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICB0aGlzLnNldExvYWRpbmcodHJ1ZSwgb3B0cyk7XG4gIH1cblxuICBtYXJrQXNMb2FkZWQob3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFufSkge1xuICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSwgb3B0cyk7XG4gIH1cblxuICBtYXJrQXNSZWFkeShvcHRzPzoge29ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgaWYgKHRoaXMucmVhZHlTdWJqZWN0LnZhbHVlICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLnJlYWR5U3ViamVjdC5uZXh0KHRydWUpO1xuXG4gICAgICAvLyBJZiBzdWJjbGFzc2VzIGltcGxlbWVudHMgT25SZWFkeVxuICAgICAgaWYgKHR5cGVvZiB0aGlzWyduZ09uUmVhZHknXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAodGhpcyBhcyBhbnkgYXMgT25SZWFkeSkubmdPblJlYWR5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdhaXQgZm9ybSBpcyByZWFkeVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgcmVhZHkob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMucmVhZHlTdWJqZWN0LnZhbHVlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgcmV0dXJuIHdhaXRGb3JUcnVlKHRoaXMucmVhZHlTdWJqZWN0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0IGZvcm0gaXMgbm90IGJ1c3kgKD1sb2FkZWQpXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqL1xuICB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICByZXR1cm4gd2FpdEZvckZhbHNlKHRoaXMubG9hZGluZ1N1YmplY3QsIG9wdHMpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eShvcHRzPzoge1xuICAgIG9ubHlTZWxmPzogYm9vbGVhbjtcbiAgICBlbWl0RXZlbnQ/OiBib29sZWFuO1xuICB9KSB7XG4gICAgQXBwRm9ybVV0aWxzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodGhpcy5mb3JtLCBvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdHJhbnNsYXRlQ29udHJvbFBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgaTE4bkZpZWxkTmFtZSA9IHRoaXMuZ2V0STE4bkZpZWxkTmFtZShwYXRoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGU/Lmluc3RhbnQoaTE4bkZpZWxkTmFtZSkgfHwgaTE4bkZpZWxkTmFtZTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGdldEZvcm1FcnJvcihmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLCBvcHRzPzogRm9ybUVycm9yVHJhbnNsYXRvck9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghZm9ybSB8fCAhdGhpcy5lcnJvclRyYW5zbGF0b3IpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JUcmFuc2xhdG9yLnRyYW5zbGF0ZUZvcm1FcnJvcnModGhpcy5mb3JtLCB7XG4gICAgICBjb250cm9sUGF0aFRyYW5zbGF0b3I6IHRoaXMsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0STE4bkZpZWxkTmFtZShwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHRoaXMuaTE4bkZpZWxkUHJlZml4IHx8ICcnKSArIGNoYW5nZUNhc2VUb1VuZGVyc2NvcmUocGF0aCkudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbikge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnJlbW92ZShzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyQXV0b2NvbXBsZXRlRmllbGQ8RSA9IGFueSwgRUYgPSBhbnk+KGZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzPzogTWF0QXV0b2NvbXBsZXRlRmllbGRBZGRPcHRpb25zPEUsIEVGPik6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPEUsIEVGPiB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlSGVscGVyLmFkZChmaWVsZE5hbWUsIG9wdHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEVycm9yKHZhbHVlOiBzdHJpbmcsIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbjt9KSB7XG4gICAgaWYgKHRoaXMuZXJyb3JTdWJqZWN0LnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvclN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICAvLyBTaG91bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3ViY2xhc3Nlc1xuICAgIGNvbnNvbGUud2FybignbWFya0ZvckNoZWNrKCkgaGFzIGJlZW4gY2FsbGVkLCBidXQgaXMgbm90IG92ZXJ3cml0dGVuIGJ5IGNvbXBvbmVudCAnICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgfVxuXG4gIC8qIC0tIHByaXZhdGUgZnVuY3Rpb24gLS0gKi9cblxuICBwcml2YXRlIHNldExvYWRpbmcodmFsdWU6IGJvb2xlYW4sIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZSAhPT0gdmFsdWUpICB7XG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodmFsdWUpO1xuXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,66 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SharedModule } from '../../shared/shared.module';
3
+ import { AppPropertiesFormModule } from './properties/properties.module';
4
+ import { AppListFormModule } from './list/list.module';
5
+ import { AppTextPopoverModule } from './text-popover/text-popover.module';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { AppEntityFormModule } from './entity/entity.module';
8
+ import { AppFormButtonsBarModule } from './buttons/form-buttons-bar.module';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ngx-translate/core";
11
+ export class AppFormModule {
12
+ }
13
+ AppFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ AppFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: AppFormModule, imports: [SharedModule, i1.TranslateModule,
15
+ // Sub modules
16
+ AppEntityFormModule,
17
+ AppListFormModule,
18
+ AppPropertiesFormModule,
19
+ AppTextPopoverModule,
20
+ AppFormButtonsBarModule], exports: [TranslateModule,
21
+ // Sub modules
22
+ AppEntityFormModule,
23
+ AppListFormModule,
24
+ AppPropertiesFormModule,
25
+ AppTextPopoverModule,
26
+ AppFormButtonsBarModule] });
27
+ AppFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppFormModule, imports: [SharedModule,
28
+ TranslateModule.forChild(),
29
+ // Sub modules
30
+ AppEntityFormModule,
31
+ AppListFormModule,
32
+ AppPropertiesFormModule,
33
+ AppTextPopoverModule,
34
+ AppFormButtonsBarModule, TranslateModule,
35
+ // Sub modules
36
+ AppEntityFormModule,
37
+ AppListFormModule,
38
+ AppPropertiesFormModule,
39
+ AppTextPopoverModule,
40
+ AppFormButtonsBarModule] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppFormModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ imports: [
45
+ SharedModule,
46
+ TranslateModule.forChild(),
47
+ // Sub modules
48
+ AppEntityFormModule,
49
+ AppListFormModule,
50
+ AppPropertiesFormModule,
51
+ AppTextPopoverModule,
52
+ AppFormButtonsBarModule
53
+ ],
54
+ declarations: [],
55
+ exports: [
56
+ TranslateModule,
57
+ // Sub modules
58
+ AppEntityFormModule,
59
+ AppListFormModule,
60
+ AppPropertiesFormModule,
61
+ AppTextPopoverModule,
62
+ AppFormButtonsBarModule
63
+ ]
64
+ }]
65
+ }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7OztBQTRCMUUsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxZQXhCdEIsWUFBWTtRQUdaLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixvQkFBb0I7UUFDcEIsdUJBQXVCLGFBTXZCLGVBQWU7UUFFZixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLHVCQUF1QjsyR0FHZCxhQUFhLFlBeEJ0QixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUUxQixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLHVCQUF1QixFQU12QixlQUFlO1FBRWYsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLG9CQUFvQjtRQUNwQix1QkFBdUI7MkZBR2QsYUFBYTtrQkExQnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFFMUIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDeEI7b0JBRUQsWUFBWSxFQUFFLEVBQUU7b0JBRWhCLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUVmLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHtBcHBQcm9wZXJ0aWVzRm9ybU1vZHVsZX0gZnJvbSAnLi9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMubW9kdWxlJztcbmltcG9ydCB7QXBwTGlzdEZvcm1Nb2R1bGV9IGZyb20gJy4vbGlzdC9saXN0Lm1vZHVsZSc7XG5pbXBvcnQge0FwcFRleHRQb3BvdmVyTW9kdWxlfSBmcm9tICcuL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QXBwRW50aXR5Rm9ybU1vZHVsZX0gZnJvbSAnLi9lbnRpdHkvZW50aXR5Lm1vZHVsZSc7XG5pbXBvcnQge0FwcEZvcm1CdXR0b25zQmFyTW9kdWxlfSBmcm9tICcuL2J1dHRvbnMvZm9ybS1idXR0b25zLWJhci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBBcHBFbnRpdHlGb3JtTW9kdWxlLFxuICAgIEFwcExpc3RGb3JtTW9kdWxlLFxuICAgIEFwcFByb3BlcnRpZXNGb3JtTW9kdWxlLFxuICAgIEFwcFRleHRQb3BvdmVyTW9kdWxlLFxuICAgIEFwcEZvcm1CdXR0b25zQmFyTW9kdWxlXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXSxcblxuICBleHBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBBcHBFbnRpdHlGb3JtTW9kdWxlLFxuICAgIEFwcExpc3RGb3JtTW9kdWxlLFxuICAgIEFwcFByb3BlcnRpZXNGb3JtTW9kdWxlLFxuICAgIEFwcFRleHRQb3BvdmVyTW9kdWxlLFxuICAgIEFwcEZvcm1CdXR0b25zQmFyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwRm9ybU1vZHVsZSB7XG59XG4iXX0=