@sumaris-net/ngx-components 4.0.0-rc6 → 4.0.0-rc8

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 (293) hide show
  1. package/esm2022/public_api.mjs +5 -2
  2. package/esm2022/src/app/admin/admin-routing.module.mjs +4 -4
  3. package/esm2022/src/app/admin/admin.module.mjs +4 -4
  4. package/esm2022/src/app/admin/services/person.service.mjs +3 -3
  5. package/esm2022/src/app/admin/services/validator/person.validator.mjs +3 -3
  6. package/esm2022/src/app/admin/users/users.mjs +15 -24
  7. package/esm2022/src/app/admin/users/users.module.mjs +4 -4
  8. package/esm2022/src/app/core/about/about.modal.mjs +3 -3
  9. package/esm2022/src/app/core/about/about.module.mjs +4 -4
  10. package/esm2022/src/app/core/account/account.module.mjs +4 -4
  11. package/esm2022/src/app/core/account/account.page.mjs +21 -19
  12. package/esm2022/src/app/core/account/new-token.modal.mjs +3 -3
  13. package/esm2022/src/app/core/account/token.table.mjs +3 -3
  14. package/esm2022/src/app/core/auth/auth.form.mjs +3 -3
  15. package/esm2022/src/app/core/auth/auth.modal.mjs +3 -3
  16. package/esm2022/src/app/core/auth/auth.module.mjs +4 -4
  17. package/esm2022/src/app/core/core.module.mjs +4 -4
  18. package/esm2022/src/app/core/core.testing.module.mjs +4 -4
  19. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +4 -4
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +4 -4
  21. package/esm2022/src/app/core/form/entity/editor.class.mjs +15 -10
  22. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +3 -3
  23. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +15 -9
  24. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  25. package/esm2022/src/app/core/form/entity/entity.module.mjs +4 -4
  26. package/esm2022/src/app/core/form/form.class.mjs +3 -3
  27. package/esm2022/src/app/core/form/form.module.mjs +4 -4
  28. package/esm2022/src/app/core/form/list/list.form.mjs +3 -3
  29. package/esm2022/src/app/core/form/list/list.module.mjs +4 -4
  30. package/esm2022/src/app/core/form/properties/properties.form.mjs +3 -3
  31. package/esm2022/src/app/core/form/properties/properties.module.mjs +4 -4
  32. package/esm2022/src/app/core/form/properties/properties.table.mjs +6 -6
  33. package/esm2022/src/app/core/form/properties/property.validator.mjs +3 -3
  34. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
  35. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
  36. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +3 -3
  37. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +4 -4
  38. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +6 -6
  39. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +6 -11
  40. package/esm2022/src/app/core/graphql/graphql.module.mjs +4 -4
  41. package/esm2022/src/app/core/graphql/graphql.service.mjs +9 -5
  42. package/esm2022/src/app/core/home/home.mjs +5 -6
  43. package/esm2022/src/app/core/home/home.module.mjs +4 -4
  44. package/esm2022/src/app/core/icon/icon.component.mjs +3 -3
  45. package/esm2022/src/app/core/icon/icon.module.mjs +4 -4
  46. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  47. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  48. package/esm2022/src/app/core/menu/menu.component.mjs +14 -10
  49. package/esm2022/src/app/core/menu/menu.module.mjs +4 -4
  50. package/esm2022/src/app/core/menu/menu.service.mjs +11 -5
  51. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +3 -3
  52. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +3 -3
  53. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +3 -3
  54. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +4 -4
  55. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  56. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +4 -4
  57. package/esm2022/src/app/core/peer/select-peer.modal.mjs +3 -3
  58. package/esm2022/src/app/core/peer/select-peer.module.mjs +4 -4
  59. package/esm2022/src/app/core/register/register-confirm.page.mjs +3 -3
  60. package/esm2022/src/app/core/register/register.form.mjs +3 -3
  61. package/esm2022/src/app/core/register/register.modal.mjs +3 -3
  62. package/esm2022/src/app/core/register/register.module.mjs +4 -4
  63. package/esm2022/src/app/core/services/account.service.mjs +50 -23
  64. package/esm2022/src/app/core/services/auth-guard.service.mjs +3 -3
  65. package/esm2022/src/app/core/services/base-entity-service.class.mjs +3 -3
  66. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +3 -3
  67. package/esm2022/src/app/core/services/config/core.config.mjs +7 -7
  68. package/esm2022/src/app/core/services/config.service.mjs +3 -3
  69. package/esm2022/src/app/core/services/crypto.service.mjs +3 -3
  70. package/esm2022/src/app/core/services/local-settings.service.mjs +3 -3
  71. package/esm2022/src/app/core/services/model/referential.model.mjs +5 -2
  72. package/esm2022/src/app/core/services/network.service.mjs +3 -3
  73. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +8 -8
  74. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  75. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  76. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  77. package/esm2022/src/app/core/services/platform.service.mjs +20 -10
  78. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  79. package/esm2022/src/app/core/services/testing/referential.validator.mjs +3 -3
  80. package/esm2022/src/app/core/services/validator/account.validator.mjs +3 -3
  81. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +3 -3
  82. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  83. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  84. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +3 -3
  85. package/esm2022/src/app/core/settings/settings.module.mjs +4 -4
  86. package/esm2022/src/app/core/settings/settings.page.mjs +3 -3
  87. package/esm2022/src/app/core/table/actions-column.component.mjs +3 -3
  88. package/esm2022/src/app/core/table/async-table.class.mjs +3 -3
  89. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +3 -3
  90. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +3 -3
  91. package/esm2022/src/app/core/table/memory-table.class.mjs +3 -3
  92. package/esm2022/src/app/core/table/table-select-columns.component.mjs +3 -3
  93. package/esm2022/src/app/core/table/table.class.mjs +3 -3
  94. package/esm2022/src/app/core/table/table.module.mjs +4 -4
  95. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
  96. package/esm2022/src/app/core/table/testing/table.testing.mjs +3 -3
  97. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +4 -4
  98. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +3 -3
  99. package/esm2022/src/app/core/table/testing/table2.testing.mjs +3 -3
  100. package/esm2022/src/app/shared/audio/audio.mjs +3 -3
  101. package/esm2022/src/app/shared/audio/audio.testing.mjs +3 -3
  102. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +4 -4
  103. package/esm2022/src/app/shared/capacitor/keyboard.mjs +3 -3
  104. package/esm2022/src/app/shared/debug/debug.component.mjs +3 -3
  105. package/esm2022/src/app/shared/debug/debug.module.mjs +4 -4
  106. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +3 -3
  107. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
  108. package/esm2022/src/app/shared/directives/directives.module.mjs +4 -4
  109. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  110. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +3 -3
  111. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  112. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  113. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  114. package/esm2022/src/app/shared/file/file.service.mjs +3 -3
  115. package/esm2022/src/app/shared/form/field.component.mjs +3 -3
  116. package/esm2022/src/app/shared/form/loading-spinner.mjs +3 -3
  117. package/esm2022/src/app/shared/gesture/gesture-config.mjs +3 -3
  118. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  119. package/esm2022/src/app/shared/help/help.modal.mjs +3 -3
  120. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  121. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  122. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  123. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +4 -4
  124. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  125. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  126. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  127. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  128. package/esm2022/src/app/shared/image/image.module.mjs +4 -4
  129. package/esm2022/src/app/shared/image/image.service.mjs +3 -3
  130. package/esm2022/src/app/shared/logging/logging-service.class.mjs +3 -3
  131. package/esm2022/src/app/shared/logging/logging-service.module.mjs +4 -4
  132. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +6 -6
  133. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  134. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  135. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +3 -3
  136. package/esm2022/src/app/shared/material/badge/badge.module.mjs +4 -4
  137. package/esm2022/src/app/shared/material/badge/badge.test.mjs +3 -3
  138. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  139. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +3 -3
  140. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  141. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +3 -3
  142. package/esm2022/src/app/shared/material/chips/chips.module.mjs +4 -4
  143. package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
  144. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  145. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  146. package/esm2022/src/app/shared/material/datetime/material.date.mjs +6 -6
  147. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  148. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  149. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +6 -5
  150. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +7 -6
  151. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +3 -3
  152. package/esm2022/src/app/shared/material/duration/duration.module.mjs +4 -4
  153. package/esm2022/src/app/shared/material/duration/material.duration.mjs +3 -3
  154. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +3 -3
  155. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  156. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  157. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  158. package/esm2022/src/app/shared/material/material.module.mjs +14 -9
  159. package/esm2022/src/app/shared/material/material.testing.module.mjs +16 -5
  160. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  161. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  162. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +3 -3
  163. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  164. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  165. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  166. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  167. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  168. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  169. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  170. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  171. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  172. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  173. package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
  174. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +31 -0
  175. package/esm2022/src/app/shared/material/text/text-form.component.mjs +97 -0
  176. package/esm2022/src/app/shared/material/text/text-form.module.mjs +63 -0
  177. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +19 -9
  178. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +4 -4
  179. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +3 -3
  180. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +24 -24
  181. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +3 -3
  182. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  183. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +6 -6
  184. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  185. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +4 -4
  186. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  187. package/esm2022/src/app/shared/pipes/form.pipes.mjs +18 -18
  188. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  189. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  190. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +12 -12
  191. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +6 -6
  192. package/esm2022/src/app/shared/pipes/math.pipes.mjs +12 -12
  193. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  194. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  195. package/esm2022/src/app/shared/pipes/pipes.module.mjs +4 -4
  196. package/esm2022/src/app/shared/pipes/property.pipes.mjs +7 -7
  197. package/esm2022/src/app/shared/pipes/string.pipes.mjs +30 -30
  198. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  199. package/esm2022/src/app/shared/pipes/types.pipes.mjs +12 -12
  200. package/esm2022/src/app/shared/rx-state.module.mjs +4 -4
  201. package/esm2022/src/app/shared/services/entity-service.class.mjs +1 -1
  202. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +6 -6
  203. package/esm2022/src/app/shared/services/progress-bar.service.mjs +3 -3
  204. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +3 -3
  205. package/esm2022/src/app/shared/services/startable-service.class.mjs +5 -5
  206. package/esm2022/src/app/shared/services/translate-context.service.mjs +3 -3
  207. package/esm2022/src/app/shared/shared-routing.module.mjs +7 -7
  208. package/esm2022/src/app/shared/shared.module.mjs +29 -13
  209. package/esm2022/src/app/shared/shared.testing.module.mjs +4 -4
  210. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +3 -3
  211. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +4 -4
  212. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +4 -4
  213. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +4 -4
  214. package/esm2022/src/app/shared/storage/storage.service.mjs +3 -3
  215. package/esm2022/src/app/shared/testing/observable.test.mjs +3 -3
  216. package/esm2022/src/app/shared/testing/tests.page.mjs +3 -3
  217. package/esm2022/src/app/shared/toast/toast.testing.mjs +3 -3
  218. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +4 -4
  219. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
  220. package/esm2022/src/app/shared/toolbar/toolbar.mjs +4 -4
  221. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  222. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  223. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  224. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  225. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  226. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  227. package/esm2022/src/app/social/job/job.module.mjs +4 -4
  228. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +3 -3
  229. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  230. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +3 -3
  231. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +3 -3
  232. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +3 -3
  233. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  234. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +4 -4
  235. package/esm2022/src/app/social/message/message.form.mjs +58 -6
  236. package/esm2022/src/app/social/message/message.modal.mjs +20 -12
  237. package/esm2022/src/app/social/message/message.model.mjs +5 -1
  238. package/esm2022/src/app/social/message/message.module.mjs +9 -22
  239. package/esm2022/src/app/social/message/message.service.mjs +32 -10
  240. package/esm2022/src/app/social/social.module.mjs +4 -4
  241. package/esm2022/src/app/social/social.testing.module.mjs +4 -4
  242. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  243. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +3 -3
  244. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +3 -3
  245. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  246. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  247. package/esm2022/src/app/social/user-event/user-event.module.mjs +4 -4
  248. package/esm2022/src/app/social/user-event/user-event.service.mjs +39 -25
  249. package/esm2022/src/environments/environment.class.mjs +3 -1
  250. package/esm2022/src/environments/environment.loader.mjs +83 -0
  251. package/esm2022/src/environments/environment.mjs +18 -15
  252. package/fesm2022/sumaris-net.ngx-components.mjs +6719 -6387
  253. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  254. package/package.json +25 -3
  255. package/public_api.d.ts +4 -1
  256. package/src/app/core/account/account.page.d.ts +3 -2
  257. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  258. package/src/app/core/form/entity/editor.class.d.ts +1 -1
  259. package/src/app/core/form/entity/entity-editor.class.d.ts +10 -6
  260. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  261. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  262. package/src/app/core/form/text-popover/text-popover.module.d.ts +4 -5
  263. package/src/app/core/menu/menu.component.d.ts +6 -2
  264. package/src/app/core/menu/menu.service.d.ts +2 -0
  265. package/src/app/core/services/account.service.d.ts +4 -0
  266. package/src/app/core/services/config/core.config.d.ts +2 -2
  267. package/src/app/core/services/model/referential.model.d.ts +2 -1
  268. package/src/app/shared/inputs.d.ts +1 -1
  269. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  270. package/src/app/shared/material/material.module.d.ts +2 -1
  271. package/src/app/shared/material/material.testing.module.d.ts +14 -13
  272. package/src/app/shared/material/text/testing/text-form.testing.d.ts +13 -0
  273. package/src/app/{core/form/text-popover → shared/material/text}/text-form.component.d.ts +2 -2
  274. package/src/app/shared/material/text/text-form.module.d.ts +16 -0
  275. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +4 -1
  276. package/src/app/shared/services/entity-service.class.d.ts +1 -1
  277. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -1
  278. package/src/app/shared/shared.module.d.ts +5 -3
  279. package/src/app/social/message/message.form.d.ts +8 -2
  280. package/src/app/social/message/message.modal.d.ts +5 -1
  281. package/src/app/social/message/message.model.d.ts +2 -0
  282. package/src/app/social/message/message.module.d.ts +2 -1
  283. package/src/app/social/message/message.service.d.ts +8 -3
  284. package/src/app/social/user-event/user-event.service.d.ts +5 -0
  285. package/src/assets/environments/environment-test.json +6 -0
  286. package/src/assets/i18n/en-US.json +25 -23
  287. package/src/assets/i18n/en.json +25 -23
  288. package/src/assets/i18n/fr.json +8 -5
  289. package/src/assets/manifest.json +1 -1
  290. package/src/environments/environment.class.d.ts +1 -0
  291. package/src/environments/environment.loader.d.ts +26 -0
  292. package/src/theme/_ngx-components.table.scss +1 -1
  293. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +0 -97
@@ -117,12 +117,12 @@ export class AppPropertiesForm extends AppForm {
117
117
  markForCheck() {
118
118
  this.cd.markForCheck();
119
119
  }
120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i2.DateAdapter }, { token: i3.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i4.PropertyValidator }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AppPropertiesForm, selector: "app-properties-form", inputs: { formArrayName: "formArrayName", formArray: "formArray", options: "options", definitions: "definitions", chipColor: "chipColor" }, providers: [
120
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i2.DateAdapter }, { token: i3.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i4.PropertyValidator }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
121
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AppPropertiesForm, selector: "app-properties-form", inputs: { formArrayName: "formArrayName", formArray: "formArray", options: "options", definitions: "definitions", chipColor: "chipColor" }, providers: [
122
122
  { provide: PropertyValidator, useClass: PropertyValidator }
123
123
  ], usesInheritance: true, ngImport: i0, template: "\n<!-- Properties -->\n<form [formGroup]=\"form\" class=\"form-container\">\n <ion-grid *ngIf=\"!loading; else propertiesSkeleton\"\n formArrayName=\"properties\" class=\"ion-no-padding\" >\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding ion-align-self-end\" size=\"12\">\n <span class=\"toolbar-spacer\"></span>\n\n <!-- Show more options -->\n <ion-button color=\"light\" *ngIf=\"formArray?.length === 0\"\n [title]=\"'SETTINGS.BTN_SHOW_MORE_HELP'|translate\"\n (click)=\"helper.add()\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <ng-container *ngFor=\"let fieldForm of fieldForms; let i=index\">\n <ion-row class=\"ion-no-padding\" [formGroupName]=\"i\">\n\n <!-- property key -->\n <ion-col size=\"6\" class=\"ion-no-padding\">\n <mat-form-field floatLabel=\"auto\" *ngIf=\"fieldForm|formGetControl:'key' as control\">\n <mat-label>{{'SETTINGS.PROPERTY_KEY'|translate}}</mat-label>\n <mat-select [formControl]=\"control\"\n (selectionChange)=\"updateDefinitionAt(i)\"\n [tabindex]=\"20+i*2\"\n required>\n\n <!-- When option's key not a well known option, add it as first select option -->\n <mat-option *ngIf=\"isUnknownField(fieldForm)\" [value]=\"control.value\">\n {{control.value}}\n </mat-option>\n\n <mat-option *ngFor=\"let item of definitions\" [value]=\"item.key\">{{ item.label | translate }}\n </mat-option>\n\n </mat-select>\n\n <mat-error *ngIf=\"control.hasError('required') && !helper.isLast(i)\"\n translate>ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n </ion-col>\n\n <!-- property value -->\n <ion-col class=\"ion-no-padding\" padding-left >\n <app-form-field *ngIf=\"getDefinitionAt(i); let definition; else unknownValue\"\n floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"fieldForm|formGetControl:'value'\"\n [placeholder]=\"'SETTINGS.PROPERTY_VALUE' | translate\"\n [chipColor]=\"chipColor\"\n [required]=\"true\"\n [tabindex]=\"20+i*2 + 1\">\n </app-form-field>\n <ng-template #unknownValue>\n <mat-form-field>\n <mat-label>{{'SETTINGS.PROPERTY_VALUE' | translate}}</mat-label>\n <input type=\"text\" matInput\n [formControl]=\"fieldForm|formGetControl:'value'\"\n [required]=\"true\"\n [tabindex]=\"20+i*2 + 1\">\n </mat-form-field>\n </ng-template>\n </ion-col>\n\n <ion-col size=\"auto\" class=\"ion-no-padding\">\n <button type=\"button\" mat-icon-button color=\"light\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"removeAt(i)\">\n <mat-icon>close</mat-icon>\n </button>\n <button [hidden]=\"!helper.isLast(i)\"\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"disabled\"\n [title]=\"'SETTINGS.BTN_ADD_PROPERTY'|translate\"\n (click)=\"helper.add()\">\n <mat-icon>add</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n </ng-container>\n </ion-grid>\n</form>\n\n<ng-template #propertiesSkeleton>\n\n <ion-grid class=\"ion-no-padding\">\n <ng-container *ngTemplateOutlet=\"propertyRowSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"propertyRowSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"propertyRowSkeleton\"></ng-container>\n </ion-grid>\n\n</ng-template>\n\n<ng-template #propertyRowSkeleton>\n\n <ion-row>\n <!-- property key -->\n <ion-col>\n <mat-form-field>\n <input matInput hidden>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n <ion-icon name=\"arrow-dropdown\" matSuffix></ion-icon>\n </mat-form-field>\n </ion-col>\n <!-- value -->\n <ion-col>\n <mat-form-field>\n <input matInput hidden>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n </mat-form-field>\n </ion-col>\n <!-- buttons -->\n <ion-col size=\"2\">\n <button type=\"button\" mat-icon-button color=\"light\"\n [disabled]=\"true\">\n <mat-icon>close</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n\n</ng-template>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i6.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i6.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonRow, selector: "ion-row" }, { kind: "component", type: i6.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "aria-describedby", "panelClass", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i13.AppFormField, selector: "app-form-field", inputs: ["definition", "required", "readonly", "disabled", "formControl", "formControlName", "placeholder", "compact", "floatLabel", "tabindex", "autofocus", "clearable", "chipColor", "debug", "class"], outputs: ["keyup.enter"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i14.FormGetControlPipe, name: "formGetControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
124
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesForm, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesForm, decorators: [{
126
126
  type: Component,
127
127
  args: [{ selector: 'app-properties-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
128
128
  { provide: PropertyValidator, useClass: PropertyValidator }
@@ -7,19 +7,19 @@ import { AppTableModule } from '../../table/table.module';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngx-translate/core";
9
9
  export class AppPropertiesFormModule {
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesFormModule, declarations: [
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesFormModule, declarations: [
12
12
  // Other components
13
13
  AppPropertiesForm,
14
14
  AppPropertiesTable], imports: [SharedModule, i1.TranslateModule, AppTableModule], exports: [TranslateModule,
15
15
  // Components
16
16
  AppPropertiesForm,
17
17
  AppPropertiesTable] });
18
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesFormModule, imports: [SharedModule,
18
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesFormModule, imports: [SharedModule,
19
19
  TranslateModule.forChild(),
20
20
  AppTableModule, TranslateModule] });
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesFormModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesFormModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  imports: [
@@ -97,10 +97,10 @@ export class PropertyEntityValidator extends AppValidatorService {
97
97
  value: [data?.value || null]
98
98
  };
99
99
  }
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertyEntityValidator, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
101
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: PropertyEntityValidator, usesInheritance: true, ngImport: i0 });
100
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertyEntityValidator, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
101
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: PropertyEntityValidator, usesInheritance: true, ngImport: i0 });
102
102
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertyEntityValidator, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertyEntityValidator, decorators: [{
104
104
  type: Directive
105
105
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
106
106
  export class AppPropertiesTable extends AppInMemoryTable {
@@ -245,12 +245,12 @@ export class AppPropertiesTable extends AppInMemoryTable {
245
245
  const value = values.find(v => v.id === definition.key)?.value;
246
246
  return isNotNil(value) ? value : definition.defaultValue;
247
247
  }
248
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesTable, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: PropertyEntityValidator }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Component });
249
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AppPropertiesTable, selector: "app-properties-table", inputs: { definitions: "definitions", showToolbar: "showToolbar" }, providers: [
248
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesTable, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: PropertyEntityValidator }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Component });
249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AppPropertiesTable, selector: "app-properties-table", inputs: { definitions: "definitions", showToolbar: "showToolbar" }, providers: [
250
250
  { provide: PropertyEntityValidator, useClass: PropertyEntityValidator }
251
251
  ], viewQueries: [{ propertyName: "filterExpansionPanel", first: true, predicate: MatExpansionPanel, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar *ngIf=\"showToolbar\" [class.expanded]=\"filterExpansionPanel.expanded\">\n\n <!-- Refresh -->\n <button mat-icon-button *ngIf=\"!mobile\"\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <ion-item *ngIf=\"!mobile && error; let error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- Show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon [matBadge]=\"filterCriteriaCount\"\n [matBadgeHidden]=\"filterIsEmpty\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n </button>\n\n</mat-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel\n class=\"filter-panel\"\n [class.ion-no-padding]=\"mobile\"\n [class.filter-panel-floating]=\"filterPanelFloating\">\n <form class=\"form-container\" [formGroup]=\"filterForm\" (ngSubmit)=\"onRefresh.emit()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <mat-label>{{'SETTINGS.FILTER.SEARCH'|translate}}</mat-label>\n <input matInput formControlName=\"searchText\">\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <mat-boolean-field\n [style]=\"'checkbox'\"\n formControlName=\"notDefaultOnly\"\n [placeholder]=\"'SETTINGS.FILTER.ONLY_NOT_DEFAULT' | translate\"\n floatLabel=\"always\"\n ></mat-boolean-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button mat-icon-button color=\"accent\"\n *ngIf=\"filterPanelFloating\"\n (click)=\"toggleFilterPanelFloating()\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') |translate\">\n <mat-icon><span style=\"transform: rotate(90deg);\">{{filterPanelFloating ? '&#xbb;' : '&#xab;'}}</span></mat-icon>\n </button>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"closeFilterPanel()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n\n </mat-action-row>\n </mat-expansion-panel>\n\n <ion-refresher slot=\"fixed\" *ngIf=\"mobile\" (ionRefresh)=\"doRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <!-- table -->\n <div class=\"table-container\">\n <table #table mat-table matSort matSortDisableClear\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n [trackBy]=\"trackByFn\"\n [style.--mat-row-height]=\"'52px'\">\n\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"true\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"true\"></td>\n </ng-container>\n\n <!-- id column (hidden) -->\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!debug\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!debug\">\n {{ row.currentData.id }}\n </td>\n </ng-container>\n\n <!-- definition column -->\n <ng-container matColumnDef=\"definition\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"ion-padding-start\">\n <ion-label>{{ i18nColumnPrefix + 'DEFINITION' | translate }}</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n<!-- <mat-autocomplete-field-->\n<!-- *ngIf=\"row.id === -1; else readOnlyDefinition\"-->\n<!-- [formControl]=\"row.validator | formGetControl : 'definition'\"-->\n<!-- [config]=\"autocompleteFields.definition\"-->\n<!-- [required]=\"true\"-->\n<!-- ></mat-autocomplete-field>-->\n<!-- <ng-template #readOnlyDefinition>-->\n <td mat-cell *matCellDef=\"let row\" class=\"ion-padding-start\">\n {{ row.currentData | propertyGet : 'definition.translatedName' }}\n </td>\n </ng-container>\n\n <!-- value column -->\n <ng-container matColumnDef=\"value\">\n <th mat-header-cell *matHeaderCellDef>\n <ion-label>{{ i18nColumnPrefix + 'VALUE' | translate }}</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <app-form-field\n *ngIf=\"row.validator | formGetValue: 'id'\"\n floatLabel=\"never\"\n [definition]=\"definitionsMapByKey[row.validator | formGetValue: 'id']\"\n [formControl]=\"row.validator | formGetControl:'value'\"\n [placeholder]=\"i18nColumnPrefix + 'VALUE' | translate\"\n [required]=\"true\">\n </app-form-field>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column\n [stickyEnd]=\"true\"\n [canCancel]=\"false\"\n [canDelete]=\"false\"\n [dirtyIcon]=\"false\"\n [cellTemplate]=\"cellInjection\">\n\n <!-- cell injection-->\n <ng-template #cellInjection let-row>\n <button type=\"button\" mat-icon-button\n *ngIf=\"!mobile && !disabled && (row.validator | formGetValue : 'value') !== (row.validator | formGetValue : 'definition').defaultValue\"\n [class.visible-hover-row]=\"!mobile\"\n [tabindex]=\"-1\"\n [title]=\"'SETTINGS.BTN_RESET_PROPERTY'|translate\"\n (click)=\"resetProperty($event, row)\">\n <mat-icon>undo</mat-icon>\n </button>\n\n </ng-template>\n\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-selected]=\"row.editing\"\n [class.mat-row-error]=\"row.validator?.invalid\"\n [class.mat-row-dirty]=\"row.validator?.dirty\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator?.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n\n </div>\n</ion-content>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.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: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i3.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i9.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: i14.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i15.MatBooleanField, selector: "mat-boolean-field", inputs: ["disabled", "formControl", "formControlName", "placeholder", "floatLabel", "appearance", "readonly", "required", "compact", "style", "buttonsColCount", "class", "yesLabel", "noLabel", "showButtonIcons", "yesIcon", "noIcon", "tabindex", "value"], outputs: ["keyup.enter", "onBlur"] }, { kind: "component", type: i16.AppFormField, selector: "app-form-field", inputs: ["definition", "required", "readonly", "disabled", "formControl", "formControlName", "placeholder", "compact", "floatLabel", "tabindex", "autofocus", "clearable", "chipColor", "debug", "class"], outputs: ["keyup.enter"] }, { kind: "component", type: i17.ActionsColumnComponent, selector: "app-actions-column", inputs: ["stickyEnd", "canCancel", "canConfirm", "canDelete", "canBackward", "canForward", "canConfirmAndAdd", "dirtyIcon", "optionsTitle", "class", "cellTemplate"], outputs: ["optionsClick", "cancelOrDeleteClick", "confirmEditCreateClick", "confirmAndAddClick", "backward", "forward"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i18.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i19.NumberFormatPipe, name: "numberFormat" }, { kind: "pipe", type: i20.FormGetControlPipe, name: "formGetControl" }, { kind: "pipe", type: i20.FormGetValuePipe, name: "formGetValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
252
252
  }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppPropertiesTable, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppPropertiesTable, decorators: [{
254
254
  type: Component,
255
255
  args: [{ selector: 'app-properties-table', providers: [
256
256
  { provide: PropertyEntityValidator, useClass: PropertyEntityValidator }
@@ -15,10 +15,10 @@ export class PropertyValidator extends AppValidatorService {
15
15
  value: [data && data.value || null, Validators.required]
16
16
  };
17
17
  }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertyValidator, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
19
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: PropertyValidator, usesInheritance: true, ngImport: i0 });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertyValidator, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
19
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: PropertyValidator, usesInheritance: true, ngImport: i0 });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertyValidator, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertyValidator, decorators: [{
22
22
  type: Directive
23
23
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0eS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQXFCLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDOzs7QUFHbEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG1CQUE2QjtJQUd0RDtJQURaLFlBQ1ksV0FBK0I7UUFFekMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUZmLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUczQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBZTtRQUNoQyxPQUFPO1lBQ0wsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlGLEtBQUssRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3pELENBQUM7SUFDSixDQUFDO3VHQWJVLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UHJvcGVydHl9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQge0FwcFZhbGlkYXRvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRvci9iYXNlLnZhbGlkYXRvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VmFsaWRhdG9yIGV4dGVuZHMgQXBwVmFsaWRhdG9yU2VydmljZTxQcm9wZXJ0eT4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyXG4gICkge1xuICAgIHN1cGVyKGZvcm1CdWlsZGVyLCBudWxsKTtcbiAgfVxuXG4gIGdldEZvcm1Hcm91cENvbmZpZyhkYXRhPzogUHJvcGVydHkpOiB7IFtwOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogW2RhdGEgJiYgZGF0YS5rZXkgfHwgbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heCg1MCldKV0sXG4gICAgICB2YWx1ZTogW2RhdGEgJiYgZGF0YS52YWx1ZSB8fCBudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgIH07XG4gIH1cbn1cblxuIl19
@@ -82,10 +82,10 @@ export class PropertiesFormTestPage {
82
82
  async suggestEntity(value, filter) {
83
83
  return suggestFromArray(FAKE_ENTITIES, value, filter);
84
84
  }
85
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertiesFormTestPage, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
86
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: PropertiesFormTestPage, selector: "app-properties-form-test", viewQueries: [{ propertyName: "propertiesForm", first: true, predicate: ["propertiesForm"], descendants: true, read: AppPropertiesForm, static: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Properties form test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form [formGroup]=\"form\">\n <app-properties-form #propertiesForm\n formArrayName=\"properties\"\n [definitions]=\"propertyDefinitions\" [options]=\"{allowEmptyArray: true}\">\n\n </app-properties-form>\n </form>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i3.AppPropertiesForm, selector: "app-properties-form", inputs: ["formArrayName", "formArray", "options", "definitions", "chipColor"] }] });
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertiesFormTestPage, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: PropertiesFormTestPage, selector: "app-properties-form-test", viewQueries: [{ propertyName: "propertiesForm", first: true, predicate: ["propertiesForm"], descendants: true, read: AppPropertiesForm, static: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Properties form test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form [formGroup]=\"form\">\n <app-properties-form #propertiesForm\n formArrayName=\"properties\"\n [definitions]=\"propertyDefinitions\" [options]=\"{allowEmptyArray: true}\">\n\n </app-properties-form>\n </form>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i3.AppPropertiesForm, selector: "app-properties-form", inputs: ["formArrayName", "formArray", "options", "definitions", "chipColor"] }] });
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertiesFormTestPage, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertiesFormTestPage, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: 'app-properties-form-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Properties form test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form [formGroup]=\"form\">\n <app-properties-form #propertiesForm\n formArrayName=\"properties\"\n [definitions]=\"propertyDefinitions\" [options]=\"{allowEmptyArray: true}\">\n\n </app-properties-form>\n </form>\n</ion-content>\n" }]
91
91
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { propertiesForm: [{
@@ -8,17 +8,17 @@ import { CoreModule } from '../../../core.module';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ngx-translate/core";
10
10
  export class PropertiesFormTestingModule {
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertiesFormTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: PropertiesFormTestingModule, declarations: [PropertiesFormTestPage], imports: [CommonModule,
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertiesFormTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: PropertiesFormTestingModule, declarations: [PropertiesFormTestPage], imports: [CommonModule,
13
13
  SharedModule,
14
14
  CoreModule, i1.TranslateModule], exports: [RouterModule,
15
15
  PropertiesFormTestPage] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertiesFormTestingModule, imports: [CommonModule,
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertiesFormTestingModule, imports: [CommonModule,
17
17
  SharedModule,
18
18
  CoreModule,
19
19
  TranslateModule.forChild(), RouterModule] });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropertiesFormTestingModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PropertiesFormTestingModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -63,10 +63,10 @@ export class TextPopoverTestingPage {
63
63
  };
64
64
  return this.showPopover(event, opts);
65
65
  }
66
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopoverTestingPage, deps: [{ token: i1.PopoverController }, { token: i1.ToastController }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: TextPopoverTestingPage, selector: "text-popover-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Text popover</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Multi lines examples:<br/>\n <small>Press Ctrl+Enter to validate</small>\n <small>\n <pre>multiline: true</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, {})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, {autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(headerButtons)\n </ion-button>\n\n <p>One line examples:\n <small>\n <pre>multiline: false</pre>\n </small>\n </p>\n\n\n <ion-button (click)=\"showPopover($event, {multiline : false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {multiline : false, autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, {multiline : false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(headerButtons)\n </ion-button>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopoverTestingPage, deps: [{ token: i1.PopoverController }, { token: i1.ToastController }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextPopoverTestingPage, selector: "text-popover-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Text popover</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Multi lines examples:<br/>\n <small>Press Ctrl+Enter to validate</small>\n <small>\n <pre>multiline: true</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, {})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, {autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(headerButtons)\n </ion-button>\n\n <p>One line examples:\n <small>\n <pre>multiline: false</pre>\n </small>\n </p>\n\n\n <ion-button (click)=\"showPopover($event, {multiline : false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {multiline : false, autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, {multiline : false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(headerButtons)\n </ion-button>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopoverTestingPage, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopoverTestingPage, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'text-popover-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Text popover</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Multi lines examples:<br/>\n <small>Press Ctrl+Enter to validate</small>\n <small>\n <pre>multiline: true</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, {})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, {autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(headerButtons)\n </ion-button>\n\n <p>One line examples:\n <small>\n <pre>multiline: false</pre>\n </small>\n </p>\n\n\n <ion-button (click)=\"showPopover($event, {multiline : false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {multiline : false, autofocus: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, {multiline : false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>&nbsp;(headerButtons)\n </ion-button>\n\n</ion-content>\n" }]
72
72
  }], ctorParameters: () => [{ type: i1.PopoverController }, { type: i1.ToastController }, { type: i2.TranslateService }] });
@@ -15,16 +15,16 @@ const routes = [
15
15
  }
16
16
  ];
17
17
  export class TextPopoverTestingModule {
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopoverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: TextPopoverTestingModule, declarations: [TextPopoverTestingPage], imports: [CommonModule,
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopoverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: TextPopoverTestingModule, declarations: [TextPopoverTestingPage], imports: [CommonModule,
20
20
  IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule,
21
21
  TextPopoverTestingPage] });
22
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopoverTestingModule, imports: [CommonModule,
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopoverTestingModule, imports: [CommonModule,
23
23
  IonicModule,
24
24
  TranslateModule.forChild(),
25
25
  RouterModule.forChild(routes), RouterModule] });
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopoverTestingModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopoverTestingModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -7,8 +7,8 @@ import * as i1 from "@ionic/angular";
7
7
  import * as i2 from "@ngx-translate/core";
8
8
  import * as i3 from "@angular/common";
9
9
  import * as i4 from "@angular/cdk/a11y";
10
- import * as i5 from "../../../shared/directives/autofocus.directive";
11
- import * as i6 from "./text-form.component";
10
+ import * as i5 from "../../../shared/material/text/text-form.component";
11
+ import * as i6 from "../../../shared/directives/autofocus.directive";
12
12
  import * as i7 from "../../../shared/pipes/arrays.pipe";
13
13
  export class TextPopover {
14
14
  popoverController;
@@ -111,10 +111,10 @@ export class TextPopover {
111
111
  isEndSide(button) {
112
112
  return button?.side !== 'start';
113
113
  }
114
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopover, deps: [{ token: i1.PopoverController }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
115
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: TextPopover, selector: "app-text-popover", inputs: { showHeader: "showHeader", headerColor: "headerColor", showFooter: "showFooter", title: "title", text: "text", placeholder: "placeholder", editing: "editing", multiline: "multiline", autoHeight: "autoHeight", maxLength: "maxLength", autofocus: "autofocus", validator: "validator", headerButtons: "headerButtons", mobile: "mobile" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, static: true }], ngImport: i0, template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar [color]=\"headerColor\">\n <ion-buttons slot=\"start\">\n <ion-button *ngIf=\"mobile && editing\"\n (click)=\"cancel()\"\n [title]=\"'COMMON.BTN_CANCEL'|translate\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n <ion-button *ngFor=\"let button of headerButtons|arrayFilter: isStartSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\">\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{button.text|translate}}</ion-text>\n </ion-button>\n </ion-buttons>\n\n <ion-title *ngIf=\"title\">{{title|translate}}</ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button *ngFor=\"let button of headerButtons|arrayFilter: isEndSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\">\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{button.text|translate}}</ion-text>\n </ion-button>\n\n <ng-container *ngIf=\"mobile\">\n <ion-button *ngIf=\"editing\" (click)=\"onValidate($event)\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n <ion-button *ngIf=\"!editing\"\n (click)=\"cancel()\"\n [title]=\"'COMMON.BTN_CLOSE'|translate\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\"\n [class.has-header]=\"showHeader\"\n cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-text-form #form [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autoHeight]=\"autoHeight\"\n [autofocus]=\"editing && autofocus\"\n [validator]=\"validator\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer *ngIf=\"showFooter\">\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n\n </ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--textarea-height: 11.5em}ion-content.has-header{--textarea-height: calc(11.5em - var(--ion-toolbar-height, 0em))}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.AutofocusDirective, selector: "[autofocus], input[appAutofocus]", inputs: ["appAutofocus", "autofocusDelay"] }, { kind: "component", type: i6.TextForm, selector: "app-text-form", inputs: ["showError", "placeholder", "multiline", "autoHeight", "maxLength", "autofocus", "validator"], outputs: ["textAreaChanges"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.ArrayFilterPipe, name: "arrayFilter" }] });
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopover, deps: [{ token: i1.PopoverController }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextPopover, selector: "app-text-popover", inputs: { showHeader: "showHeader", headerColor: "headerColor", showFooter: "showFooter", title: "title", text: "text", placeholder: "placeholder", editing: "editing", multiline: "multiline", autoHeight: "autoHeight", maxLength: "maxLength", autofocus: "autofocus", validator: "validator", headerButtons: "headerButtons", mobile: "mobile" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, static: true }], ngImport: i0, template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar [color]=\"headerColor\">\n <ion-buttons slot=\"start\">\n <ion-button *ngIf=\"mobile && editing\"\n (click)=\"cancel()\"\n [title]=\"'COMMON.BTN_CANCEL'|translate\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n <ion-button *ngFor=\"let button of headerButtons|arrayFilter: isStartSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\">\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{button.text|translate}}</ion-text>\n </ion-button>\n </ion-buttons>\n\n <ion-title *ngIf=\"title\">{{title|translate}}</ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button *ngFor=\"let button of headerButtons|arrayFilter: isEndSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\">\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{button.text|translate}}</ion-text>\n </ion-button>\n\n <ng-container *ngIf=\"mobile\">\n <ion-button *ngIf=\"editing\" (click)=\"onValidate($event)\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n <ion-button *ngIf=\"!editing\"\n (click)=\"cancel()\"\n [title]=\"'COMMON.BTN_CLOSE'|translate\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\"\n [class.has-header]=\"showHeader\"\n cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-text-form #form [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autoHeight]=\"autoHeight\"\n [autofocus]=\"editing && autofocus\"\n [validator]=\"validator\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer *ngIf=\"showFooter\">\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n\n </ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--textarea-height: 11.5em}ion-content.has-header{--textarea-height: calc(11.5em - var(--ion-toolbar-height, 0em))}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.TextForm, selector: "app-text-form", inputs: ["showError", "placeholder", "multiline", "autoHeight", "maxLength", "autofocus", "validator"], outputs: ["textAreaChanges"] }, { kind: "directive", type: i6.AutofocusDirective, selector: "[autofocus], input[appAutofocus]", inputs: ["appAutofocus", "autofocusDelay"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.ArrayFilterPipe, name: "arrayFilter" }] });
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TextPopover, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextPopover, decorators: [{
118
118
  type: Component,
119
119
  args: [{ selector: 'app-text-popover', template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar [color]=\"headerColor\">\n <ion-buttons slot=\"start\">\n <ion-button *ngIf=\"mobile && editing\"\n (click)=\"cancel()\"\n [title]=\"'COMMON.BTN_CANCEL'|translate\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n <ion-button *ngFor=\"let button of headerButtons|arrayFilter: isStartSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\">\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{button.text|translate}}</ion-text>\n </ion-button>\n </ion-buttons>\n\n <ion-title *ngIf=\"title\">{{title|translate}}</ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button *ngFor=\"let button of headerButtons|arrayFilter: isEndSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\">\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{button.text|translate}}</ion-text>\n </ion-button>\n\n <ng-container *ngIf=\"mobile\">\n <ion-button *ngIf=\"editing\" (click)=\"onValidate($event)\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n <ion-button *ngIf=\"!editing\"\n (click)=\"cancel()\"\n [title]=\"'COMMON.BTN_CLOSE'|translate\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\"\n [class.has-header]=\"showHeader\"\n cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-text-form #form [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autoHeight]=\"autoHeight\"\n [autofocus]=\"editing && autofocus\"\n [validator]=\"validator\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer *ngIf=\"showFooter\">\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n\n </ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--textarea-height: 11.5em}ion-content.has-header{--textarea-height: calc(11.5em - var(--ion-toolbar-height, 0em))}\n"] }]
120
120
  }], ctorParameters: () => [{ type: i1.PopoverController }, { type: i2.TranslateService }], propDecorators: { form: [{
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
149
149
  }], mobile: [{
150
150
  type: Input
151
151
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC1wb3BvdmVyL3RleHQtcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBc0N4RixNQUFNLE9BQU8sV0FBVztJQW9EQTtJQUFnRDtJQWxEdEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUIsRUFDdkIsS0FBWSxFQUNaLElBQXdCLEVBQ3hCLFdBQXFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM5QixLQUFLO1lBQ0wsU0FBUyxFQUFFLFdBQVc7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsR0FBRyxXQUFXO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRW9DLElBQUksQ0FBVztJQUUzQyxVQUFVLENBQVU7SUFDcEIsV0FBVyxHQUFVLElBQUksQ0FBQztJQUMxQixVQUFVLENBQVU7SUFDcEIsS0FB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c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcG92ZXJDb250cm9sbGVyLCBQb3BvdmVyT3B0aW9ucyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVGV4dEZvcm0gfSBmcm9tICcuL3RleHQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgbG9nRm9ybUVycm9ycywgd2FpdFdoaWxlUGVuZGluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3Jtcyc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9yLCBPdmVybGF5RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsT3JCbGFuaywgdG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFBvcG92ZXJPcHRpb25zIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBlZGl0aW5nPzogYm9vbGVhbjtcbiAgbXVsdGlsaW5lPzogYm9vbGVhbjtcbiAgYXV0b0hlaWdodD86IGJvb2xlYW47XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgYXV0b2ZvY3VzPzogYm9vbGVhbjtcbiAgdmFsaWRhdG9yPzogVmFsaWRhdG9yRm47XG4gIC8vIEhlYWRlciBzdHVmZlxuICBzaG93SGVhZGVyPzogYm9vbGVhbjtcbiAgaGVhZGVyQ29sb3I/OiBDb2xvcjtcbiAgaGVhZGVyQnV0dG9ucz86IFRleHRQb3BvdmVyQnV0dG9uW107XG4gIC8vIEZvb3RlciBzdHVmZlxuICBzaG93Rm9vdGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0UG9wb3ZlckJ1dHRvbiB7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbG9yPzogQ29sb3I7XG4gIGZpbGw/OiAnb3V0bGluZSd8J2NsZWFyJ3wnc29saWQnO1xuICBzaWRlPzogJ3N0YXJ0JyB8ICdlbmQnO1xuICByb2xlPzogJ2NhbmNlbCcgfCBzdHJpbmc7XG4gIGNzc0NsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGhhbmRsZXI/OiAodmFsdWU6IHN0cmluZykgPT4gYm9vbGVhbiB8IHZvaWQgfCBQcm9taXNlPGJvb2xlYW4gfCB2b2lkPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRleHQtcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi90ZXh0LXBvcG92ZXIuY29tcG9uZW50LnNjc3MnLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRQb3BvdmVyIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIFRleHRQb3BvdmVyT3B0aW9ucyB7XG5cbiAgc3RhdGljIGFzeW5jIHNob3coY3RybDogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBFdmVudCxcbiAgICAgICAgICAgICAgICAgICAgb3B0czogVGV4dFBvcG92ZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBwb3BvdmVyT3B0cz86IFBhcnRpYWw8UG9wb3Zlck9wdGlvbnM+KTogUHJvbWlzZTxPdmVybGF5RXZlbnREZXRhaWw+IHtcbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IGN0cmwuY3JlYXRlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgY29tcG9uZW50OiBUZXh0UG9wb3ZlcixcbiAgICAgIGNvbXBvbmVudFByb3BzOiBvcHRzLFxuICAgICAgLi4ucG9wb3Zlck9wdHNcbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcbiAgICByZXR1cm4gYXdhaXQgbW9kYWwub25EaWREaXNtaXNzKCk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdmb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgZm9ybTogVGV4dEZvcm07XG5cbiAgQElucHV0KCkgc2hvd0hlYWRlcjogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGVyQ29sb3I6IENvbG9yID0gbnVsbDtcbiAgQElucHV0KCkgc2hvd0Zvb3RlcjogYm9vbGVhbjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgZWRpdGluZyA9IHRydWU7XG4gIEBJbnB1dCgpIG11bHRpbGluZSA9IHRydWU7XG4gIEBJbnB1dCgpIGF1dG9IZWlnaHQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gMjAwMDtcbiAgQElucHV0KCkgYXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogVmFsaWRhdG9yRm4gPSBudWxsO1xuICBASW5wdXQoKSBoZWFkZXJCdXR0b25zOiBUZXh0UG9wb3ZlckJ1dHRvbltdID0gbnVsbDtcbiAgQElucHV0KCkgbW9iaWxlID0gZmFsc2U7XG5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5lbmFibGVkO1xuICB9XG5cbiAgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LnZhbGlkIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LnZhbHVlLnRleHQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLCBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0hlYWRlciA9IHRvQm9vbGVhbih0aGlzLnNob3dIZWFkZXIsIGlzTm90TmlsT3JCbGFuayh0aGlzLnRpdGxlKSB8fCBpc05vdEVtcHR5QXJyYXkodGhpcy5oZWFkZXJCdXR0b25zKSk7XG4gICAgdGhpcy5zaG93Rm9vdGVyID0gdG9Cb29sZWFuKHRoaXMuc2hvd0Zvb3RlciwgIXRoaXMubW9iaWxlKTtcbiAgICB0aGlzLmVuYWJsZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb3JtLnNldFZhbHVlKHsgdGV4dDogdGhpcy50ZXh0IH0pLCAwKTtcbiAgfVxuXG4gIGFzeW5jIG9uVmFsaWRhdGUoZXZlbnQ6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgYXdhaXQgd2FpdFdoaWxlUGVuZGluZyh0aGlzLmZvcm0pO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICBsb2dGb3JtRXJyb3JzKHRoaXMuZm9ybS5jb250cm9sKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICB0aGlzLmZvcm0uZXJyb3IgPSBudWxsO1xuICAgICAgYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZm9ybS5lcnJvciA9IChlcnIgJiYgZXJyLm1lc3NhZ2UpIHx8IGVycjtcbiAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICB9XG5cbiAgZW5hYmxlKCkge1xuICAgIGlmICh0aGlzLmVkaXRpbmcpIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY2xpY2tCdXR0b24oYnV0dG9uOiBUZXh0UG9wb3ZlckJ1dHRvbikge1xuICAgIGlmICh0eXBlb2YgYnV0dG9uLmhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJ1dHRvbi5oYW5kbGVyKHRoaXMudmFsdWUpO1xuICAgICAgLy8gVE9ETyBjb21tZW50IGludGVycHJldGVyIGxlIHRydWUgPz8gPT4gZmVybWVyIG91IGFubnVsZXIgbCdhY3Rpb24gP1xuICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKHRoaXMudmFsdWUsIGJ1dHRvbi5yb2xlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKHRoaXMudmFsdWUsIGJ1dHRvbi5yb2xlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNTdGFydFNpZGUoYnV0dG9uOiBUZXh0UG9wb3ZlckJ1dHRvbikge1xuICAgIHJldHVybiBidXR0b24/LnNpZGUgPT09ICdzdGFydCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFbmRTaWRlKGJ1dHRvbjogVGV4dFBvcG92ZXJCdXR0b24pIHtcbiAgICByZXR1cm4gYnV0dG9uPy5zaWRlICE9PSAnc3RhcnQnO1xuICB9XG59XG4iLCI8aW9uLWhlYWRlciAqbmdJZj1cInNob3dIZWFkZXJcIj5cbiAgPGlvbi10b29sYmFyIFtjb2xvcl09XCJoZWFkZXJDb2xvclwiPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwibW9iaWxlICYmIGVkaXRpbmdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9DQU5DRUwnfHRyYW5zbGF0ZVwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDxpb24tYnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2YgaGVhZGVyQnV0dG9uc3xhcnJheUZpbHRlcjogaXNTdGFydFNpZGVcIlxuICAgICAgICAgICAgICAgICAgW2ZpbGxdPVwiYnV0dG9uLmZpbGxcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tCdXR0b24oYnV0dG9uKVwiPlxuICAgICAgICA8aW9uLWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtzbG90XT1cImJ1dHRvbi50ZXh0ID8gJ3N0YXJ0JyA6ICdpY29uLW9ubHknXCIgW25hbWVdPVwiYnV0dG9uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCJidXR0b24udGV4dFwiPnt7YnV0dG9uLnRleHR8dHJhbnNsYXRlfX08L2lvbi10ZXh0PlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlICpuZ0lmPVwidGl0bGVcIj57e3RpdGxlfHRyYW5zbGF0ZX19PC9pb24tdGl0bGU+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGlvbi1idXR0b24gKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBoZWFkZXJCdXR0b25zfGFycmF5RmlsdGVyOiBpc0VuZFNpZGVcIlxuICAgICAgICAgICAgICAgICAgW2ZpbGxdPVwiYnV0dG9uLmZpbGxcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tCdXR0b24oYnV0dG9uKVwiPlxuICAgICAgICA8aW9uLWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtzbG90XT1cImJ1dHRvbi50ZXh0ID8gJ3N0YXJ0JyA6ICdpY29uLW9ubHknXCIgW25hbWVdPVwiYnV0dG9uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCJidXR0b24udGV4dFwiPnt7YnV0dG9uLnRleHR8dHJhbnNsYXRlfX08L2lvbi10ZXh0PlxuICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiZWRpdGluZ1wiIChjbGljayk9XCJvblZhbGlkYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fVkFMSURBVEVfV0lUSF9TSE9SVENVVF9IRUxQJ3x0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGVja21hcmtcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiIWVkaXRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fQ0xPU0UnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgICAgICAgIFtjbGFzcy5oYXMtaGVhZGVyXT1cInNob3dIZWFkZXJcIlxuICAgICAgICAgICAgIGNka1RyYXBGb2N1cyBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiPlxuICA8aW9uLWl0ZW0gKm5nSWY9XCJmb3JtLmVycm9yXCIgdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlIGxpbmVzPVwibm9uZVwiPlxuICAgIDxpb24taWNvbiBjb2xvcj1cImRhbmdlclwiIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhbGVydC1jaXJjbGVcIj48L2lvbi1pY29uPlxuICAgIDxpb24tbGFiZWwgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImVycm9yXCIgW2lubmVySFRNTF09XCJmb3JtLmVycm9yfHRyYW5zbGF0ZVwiPjwvaW9uLWxhYmVsPlxuICA8L2lvbi1pdGVtPlxuXG4gIDxhcHAtdGV4dC1mb3JtICNmb3JtIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgIFttdWx0aWxpbmVdPVwibXVsdGlsaW5lXCJcbiAgICAgICAgICAgICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgICBbYXV0b0hlaWdodF09XCJhdXRvSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJlZGl0aW5nICYmIGF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgIFt2YWxpZGF0b3JdPVwidmFsaWRhdG9yXCJcbiAgICAgICAgICAgICAgICAgKG9uU3VibWl0KT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gID48L2FwcC10ZXh0LWZvcm0+XG48L2lvbi1jb250ZW50PlxuXG48aW9uLWZvb3RlciAqbmdJZj1cInNob3dGb290ZXJcIj5cbiAgPGlvbi10b29sYmFyPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiBub3dyYXA+XG4gICAgICA8aW9uLWNvbD5cblxuICAgICAgPC9pb24tY29sPlxuXG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NBTkNFTDwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgW2ZpbGxdPVwiZGlzYWJsZWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgY29sb3I9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fVkFMSURBVEVfV0lUSF9TSE9SVENVVF9IRUxQJ3x0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX1ZBTElEQVRFPC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC1wb3BvdmVyL3RleHQtcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBc0N4RixNQUFNLE9BQU8sV0FBVztJQW9EQTtJQUFnRDtJQWxEdEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUIsRUFDdkIsS0FBWSxFQUNaLElBQXdCLEVBQ3hCLFdBQXFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM5QixLQUFLO1lBQ0wsU0FBUyxFQUFFLFdBQVc7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsR0FBRyxXQUFXO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRW9DLElBQUksQ0FBVztJQUUzQyxVQUFVLENBQVU7SUFDcEIsV0FBVyxHQUFVLElBQUksQ0FBQztJQUMxQixVQUFVLENBQVU7SUFDcEIsS0FB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c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcG92ZXJDb250cm9sbGVyLCBQb3BvdmVyT3B0aW9ucyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVGV4dEZvcm0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbWF0ZXJpYWwvdGV4dC90ZXh0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IGxvZ0Zvcm1FcnJvcnMsIHdhaXRXaGlsZVBlbmRpbmcgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybXMnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciwgT3ZlcmxheUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgaXNOb3RFbXB0eUFycmF5LCBpc05vdE5pbE9yQmxhbmssIHRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRQb3BvdmVyT3B0aW9ucyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0ZXh0Pzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgZWRpdGluZz86IGJvb2xlYW47XG4gIG11bHRpbGluZT86IGJvb2xlYW47XG4gIGF1dG9IZWlnaHQ/OiBib29sZWFuO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIGF1dG9mb2N1cz86IGJvb2xlYW47XG4gIHZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xuICAvLyBIZWFkZXIgc3R1ZmZcbiAgc2hvd0hlYWRlcj86IGJvb2xlYW47XG4gIGhlYWRlckNvbG9yPzogQ29sb3I7XG4gIGhlYWRlckJ1dHRvbnM/OiBUZXh0UG9wb3ZlckJ1dHRvbltdO1xuICAvLyBGb290ZXIgc3R1ZmZcbiAgc2hvd0Zvb3Rlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFBvcG92ZXJCdXR0b24ge1xuICB0ZXh0Pzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IENvbG9yO1xuICBmaWxsPzogJ291dGxpbmUnfCdjbGVhcid8J3NvbGlkJztcbiAgc2lkZT86ICdzdGFydCcgfCAnZW5kJztcbiAgcm9sZT86ICdjYW5jZWwnIHwgc3RyaW5nO1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBoYW5kbGVyPzogKHZhbHVlOiBzdHJpbmcpID0+IGJvb2xlYW4gfCB2b2lkIHwgUHJvbWlzZTxib29sZWFuIHwgdm9pZD47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZXh0LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vdGV4dC1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0UG9wb3ZlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBUZXh0UG9wb3Zlck9wdGlvbnMge1xuXG4gIHN0YXRpYyBhc3luYyBzaG93KGN0cmw6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgICAgICAgICAgICAgICAgICBldmVudDogRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIG9wdHM6IFRleHRQb3BvdmVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgcG9wb3Zlck9wdHM/OiBQYXJ0aWFsPFBvcG92ZXJPcHRpb25zPik6IFByb21pc2U8T3ZlcmxheUV2ZW50RGV0YWlsPiB7XG4gICAgY29uc3QgbW9kYWwgPSBhd2FpdCBjdHJsLmNyZWF0ZSh7XG4gICAgICBldmVudCxcbiAgICAgIGNvbXBvbmVudDogVGV4dFBvcG92ZXIsXG4gICAgICBjb21wb25lbnRQcm9wczogb3B0cyxcbiAgICAgIC4uLnBvcG92ZXJPcHRzXG4gICAgfSk7XG5cbiAgICBhd2FpdCBtb2RhbC5wcmVzZW50KCk7XG4gICAgcmV0dXJuIGF3YWl0IG1vZGFsLm9uRGlkRGlzbWlzcygpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnZm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGZvcm06IFRleHRGb3JtO1xuXG4gIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRlckNvbG9yOiBDb2xvciA9IG51bGw7XG4gIEBJbnB1dCgpIHNob3dGb290ZXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGVkaXRpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBtdWx0aWxpbmUgPSB0cnVlO1xuICBASW5wdXQoKSBhdXRvSGVpZ2h0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heExlbmd0aCA9IDIwMDA7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuID0gbnVsbDtcbiAgQElucHV0KCkgaGVhZGVyQnV0dG9uczogVGV4dFBvcG92ZXJCdXR0b25bXSA9IG51bGw7XG4gIEBJbnB1dCgpIG1vYmlsZSA9IGZhbHNlO1xuXG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZW5hYmxlZDtcbiAgfVxuXG4gIGdldCB2YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWx1ZS50ZXh0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlciwgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIZWFkZXIgPSB0b0Jvb2xlYW4odGhpcy5zaG93SGVhZGVyLCBpc05vdE5pbE9yQmxhbmsodGhpcy50aXRsZSkgfHwgaXNOb3RFbXB0eUFycmF5KHRoaXMuaGVhZGVyQnV0dG9ucykpO1xuICAgIHRoaXMuc2hvd0Zvb3RlciA9IHRvQm9vbGVhbih0aGlzLnNob3dGb290ZXIsICF0aGlzLm1vYmlsZSk7XG4gICAgdGhpcy5lbmFibGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9ybS5zZXRWYWx1ZSh7IHRleHQ6IHRoaXMudGV4dCB9KSwgMCk7XG4gIH1cblxuICBhc3luYyBvblZhbGlkYXRlKGV2ZW50OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGF3YWl0IHdhaXRXaGlsZVBlbmRpbmcodGhpcy5mb3JtKTtcblxuICAgIGlmICghdGhpcy52YWxpZCkge1xuICAgICAgbG9nRm9ybUVycm9ycyh0aGlzLmZvcm0uY29udHJvbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgICAgdGhpcy5mb3JtLmVycm9yID0gbnVsbDtcbiAgICAgIGF3YWl0IHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcyh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmZvcm0uZXJyb3IgPSAoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnI7XG4gICAgICB0aGlzLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICBpZiAodGhpcy5lZGl0aW5nKSB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNsaWNrQnV0dG9uKGJ1dHRvbjogVGV4dFBvcG92ZXJCdXR0b24pIHtcbiAgICBpZiAodHlwZW9mIGJ1dHRvbi5oYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBidXR0b24uaGFuZGxlcih0aGlzLnZhbHVlKTtcbiAgICAgIC8vIFRPRE8gY29tbWVudCBpbnRlcnByZXRlciBsZSB0cnVlID8/ID0+IGZlcm1lciBvdSBhbm51bGVyIGwnYWN0aW9uID9cbiAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcyh0aGlzLnZhbHVlLCBidXR0b24ucm9sZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcyh0aGlzLnZhbHVlLCBidXR0b24ucm9sZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzU3RhcnRTaWRlKGJ1dHRvbjogVGV4dFBvcG92ZXJCdXR0b24pIHtcbiAgICByZXR1cm4gYnV0dG9uPy5zaWRlID09PSAnc3RhcnQnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRW5kU2lkZShidXR0b246IFRleHRQb3BvdmVyQnV0dG9uKSB7XG4gICAgcmV0dXJuIGJ1dHRvbj8uc2lkZSAhPT0gJ3N0YXJ0JztcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXIgKm5nSWY9XCJzaG93SGVhZGVyXCI+XG4gIDxpb24tdG9vbGJhciBbY29sb3JdPVwiaGVhZGVyQ29sb3JcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cIm1vYmlsZSAmJiBlZGl0aW5nXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fQ0FOQ0VMJ3x0cmFuc2xhdGVcIj5cbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiYXJyb3ctYmFja1wiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGhlYWRlckJ1dHRvbnN8YXJyYXlGaWx0ZXI6IGlzU3RhcnRTaWRlXCJcbiAgICAgICAgICAgICAgICAgIFtmaWxsXT1cImJ1dHRvbi5maWxsXCJcbiAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJidXR0b24uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQnV0dG9uKGJ1dHRvbilcIj5cbiAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiYnV0dG9uLmljb25cIiBbc2xvdF09XCJidXR0b24udGV4dCA/ICdzdGFydCcgOiAnaWNvbi1vbmx5J1wiIFtuYW1lXT1cImJ1dHRvbi5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwiYnV0dG9uLnRleHRcIj57e2J1dHRvbi50ZXh0fHRyYW5zbGF0ZX19PC9pb24tdGV4dD5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuXG4gICAgPGlvbi10aXRsZSAqbmdJZj1cInRpdGxlXCI+e3t0aXRsZXx0cmFuc2xhdGV9fTwvaW9uLXRpdGxlPlxuXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgIDxpb24tYnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2YgaGVhZGVyQnV0dG9uc3xhcnJheUZpbHRlcjogaXNFbmRTaWRlXCJcbiAgICAgICAgICAgICAgICAgIFtmaWxsXT1cImJ1dHRvbi5maWxsXCJcbiAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJidXR0b24uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQnV0dG9uKGJ1dHRvbilcIj5cbiAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiYnV0dG9uLmljb25cIiBbc2xvdF09XCJidXR0b24udGV4dCA/ICdzdGFydCcgOiAnaWNvbi1vbmx5J1wiIFtuYW1lXT1cImJ1dHRvbi5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwiYnV0dG9uLnRleHRcIj57e2J1dHRvbi50ZXh0fHRyYW5zbGF0ZX19PC9pb24tdGV4dD5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vYmlsZVwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImVkaXRpbmdcIiAoY2xpY2spPVwib25WYWxpZGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX1ZBTElEQVRFX1dJVEhfU0hPUlRDVVRfSEVMUCd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2hlY2ttYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cIiFlZGl0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX0NMT1NFJ3x0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCJcbiAgICAgICAgICAgICBbY2xhc3MuaGFzLWhlYWRlcl09XCJzaG93SGVhZGVyXCJcbiAgICAgICAgICAgICBjZGtUcmFwRm9jdXMgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIj5cbiAgPGlvbi1pdGVtICpuZ0lmPVwiZm9ybS5lcnJvclwiIHZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZSBsaW5lcz1cIm5vbmVcIj5cbiAgICA8aW9uLWljb24gY29sb3I9XCJkYW5nZXJcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwiYWxlcnQtY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICA8aW9uLWxhYmVsIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJlcnJvclwiIFtpbm5lckhUTUxdPVwiZm9ybS5lcnJvcnx0cmFuc2xhdGVcIj48L2lvbi1sYWJlbD5cbiAgPC9pb24taXRlbT5cblxuICA8YXBwLXRleHQtZm9ybSAjZm9ybSBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICBbbXVsdGlsaW5lXT1cIm11bHRpbGluZVwiXG4gICAgICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgW2F1dG9IZWlnaHRdPVwiYXV0b0hlaWdodFwiXG4gICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiZWRpdGluZyAmJiBhdXRvZm9jdXNcIlxuICAgICAgICAgICAgICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvclwiXG4gICAgICAgICAgICAgICAgIChvblN1Ym1pdCk9XCJvblZhbGlkYXRlKCRldmVudClcIlxuICA+PC9hcHAtdGV4dC1mb3JtPlxuPC9pb24tY29udGVudD5cblxuPGlvbi1mb290ZXIgKm5nSWY9XCJzaG93Rm9vdGVyXCI+XG4gIDxpb24tdG9vbGJhcj5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbm93cmFwPlxuICAgICAgPGlvbi1jb2w+XG5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9DQU5DRUw8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIFtmaWxsXT1cImRpc2FibGVkID8gJ2NsZWFyJyA6ICdzb2xpZCdcIlxuICAgICAgICAgIChjbGljayk9XCJvblZhbGlkYXRlKCRldmVudClcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvblZhbGlkYXRlKCRldmVudClcIlxuICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX1ZBTElEQVRFX1dJVEhfU0hPUlRDVVRfSEVMUCd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9WQUxJREFURTwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24tZm9vdGVyPlxuIl19
@@ -1,40 +1,35 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { SharedModule } from '../../../shared/shared.module';
3
3
  import { TextPopover } from './text-popover.component';
4
- import { TextForm } from './text-form.component';
5
4
  import { TranslateModule } from '@ngx-translate/core';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@ngx-translate/core";
8
7
  export class AppTextPopoverModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppTextPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AppTextPopoverModule, declarations: [
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppTextPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AppTextPopoverModule, declarations: [
11
10
  // Components
12
- TextForm,
13
11
  TextPopover], imports: [SharedModule, i1.TranslateModule], exports: [TranslateModule,
14
12
  // Components
15
- TextForm,
16
13
  TextPopover] });
17
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppTextPopoverModule, imports: [SharedModule,
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppTextPopoverModule, imports: [SharedModule,
18
15
  TranslateModule.forChild(), TranslateModule] });
19
16
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppTextPopoverModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppTextPopoverModule, decorators: [{
21
18
  type: NgModule,
22
19
  args: [{
23
20
  imports: [
24
21
  SharedModule,
25
- TranslateModule.forChild()
22
+ TranslateModule.forChild(),
26
23
  ],
27
24
  declarations: [
28
25
  // Components
29
- TextForm,
30
26
  TextPopover
31
27
  ],
32
28
  exports: [
33
29
  TranslateModule,
34
30
  // Components
35
- TextForm,
36
31
  TextPopover
37
32
  ]
38
33
  }]
39
34
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1wb3BvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFvQnBELE1BQU0sT0FBTyxvQkFBb0I7dUdBQXBCLG9CQUFvQjt3R0FBcEIsb0JBQW9CO1lBWDdCLGFBQWE7WUFDYixRQUFRO1lBQ1IsV0FBVyxhQVBYLFlBQVksaUNBVVosZUFBZTtZQUNmLGFBQWE7WUFDYixRQUFRO1lBQ1IsV0FBVzt3R0FHRixvQkFBb0IsWUFoQjdCLFlBQVk7WUFDWixlQUFlLENBQUMsUUFBUSxFQUFFLEVBUzFCLGVBQWU7OzJGQU1OLG9CQUFvQjtrQkFsQmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBRUQsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixXQUFXO3FCQUNaO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHtUZXh0UG9wb3Zlcn0gZnJvbSAnLi90ZXh0LXBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7VGV4dEZvcm19IGZyb20gJy4vdGV4dC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBDb21wb25lbnRzXG4gICAgVGV4dEZvcm0sXG4gICAgVGV4dFBvcG92ZXJcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAvLyBDb21wb25lbnRzXG4gICAgVGV4dEZvcm0sXG4gICAgVGV4dFBvcG92ZXJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBUZXh0UG9wb3Zlck1vZHVsZSB7XG5cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1wb3BvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQWtCcEQsTUFBTSxPQUFPLG9CQUFvQjt1R0FBcEIsb0JBQW9CO3dHQUFwQixvQkFBb0I7WUFUN0IsYUFBYTtZQUNiLFdBQVcsYUFOWCxZQUFZLGlDQVNaLGVBQWU7WUFDZixhQUFhO1lBQ2IsV0FBVzt3R0FHRixvQkFBb0IsWUFkN0IsWUFBWTtZQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFRMUIsZUFBZTs7MkZBS04sb0JBQW9CO2tCQWhCaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUMzQjtvQkFFRCxZQUFZLEVBQUU7d0JBQ1osYUFBYTt3QkFDYixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsV0FBVztxQkFDWjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7VGV4dFBvcG92ZXJ9IGZyb20gJy4vdGV4dC1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIFRleHRQb3BvdmVyXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIFRleHRQb3BvdmVyXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwVGV4dFBvcG92ZXJNb2R1bGUge1xuXG59XG4iXX0=
@@ -4,11 +4,11 @@ import * as i0 from "@angular/core";
4
4
  export class AppGraphQLModule {
5
5
  constructor() {
6
6
  }
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AppGraphQLModule, imports: [HttpClientModule], exports: [HttpClientModule] });
9
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppGraphQLModule, imports: [HttpClientModule, HttpClientModule] });
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AppGraphQLModule, imports: [HttpClientModule], exports: [HttpClientModule] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppGraphQLModule, imports: [HttpClientModule, HttpClientModule] });
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AppGraphQLModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AppGraphQLModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  imports: [