@sumaris-net/ngx-components 3.0.0-rc1 → 4.0.0-rc2

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 (633) hide show
  1. package/esm2022/public_api.mjs +337 -0
  2. package/{esm2020 → esm2022}/src/app/admin/admin-routing.module.mjs +8 -8
  3. package/{esm2020 → esm2022}/src/app/admin/admin.module.mjs +11 -11
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +68 -0
  5. package/esm2022/src/app/admin/services/person.service.mjs +174 -0
  6. package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
  7. package/esm2022/src/app/admin/users/users.mjs +273 -0
  8. package/esm2022/src/app/admin/users/users.module.mjs +58 -0
  9. package/{esm2020 → esm2022}/src/app/core/about/about.modal.mjs +18 -5
  10. package/{esm2020 → esm2022}/src/app/core/about/about.module.mjs +9 -9
  11. package/{esm2020 → esm2022}/src/app/core/account/account.module.mjs +22 -22
  12. package/esm2022/src/app/core/account/account.page.mjs +335 -0
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +125 -0
  14. package/esm2022/src/app/core/account/token.table.mjs +141 -0
  15. package/esm2022/src/app/core/auth/auth.form.mjs +140 -0
  16. package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
  17. package/{esm2020 → esm2022}/src/app/core/auth/auth.module.mjs +16 -16
  18. package/{esm2020 → esm2022}/src/app/core/core.module.mjs +87 -87
  19. package/{esm2020 → esm2022}/src/app/core/core.testing.module.mjs +23 -23
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +109 -0
  21. package/{esm2020 → esm2022}/src/app/core/form/buttons/form-buttons-bar.module.mjs +10 -10
  22. package/esm2022/src/app/core/form/entity/editor.class.mjs +713 -0
  23. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +436 -0
  24. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +724 -0
  25. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
  26. package/{esm2020 → esm2022}/src/app/core/form/entity/entity.module.mjs +11 -11
  27. package/esm2022/src/app/core/form/form.class.mjs +353 -0
  28. package/{esm2020 → esm2022}/src/app/core/form/form.module.mjs +30 -30
  29. package/{esm2020 → esm2022}/src/app/core/form/form.utils.mjs +69 -60
  30. package/esm2022/src/app/core/form/list/list.form.mjs +233 -0
  31. package/{esm2020 → esm2022}/src/app/core/form/list/list.module.mjs +10 -10
  32. package/esm2022/src/app/core/form/properties/properties.form.mjs +143 -0
  33. package/{esm2020 → esm2022}/src/app/core/form/properties/properties.module.mjs +13 -13
  34. package/esm2022/src/app/core/form/properties/properties.table.mjs +269 -0
  35. package/esm2022/src/app/core/form/properties/property.validator.mjs +24 -0
  36. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +95 -0
  37. package/{esm2020 → esm2022}/src/app/core/form/properties/testing/properties-form.testing.module.mjs +11 -11
  38. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
  39. package/{esm2020 → esm2022}/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -10
  40. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +97 -0
  41. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +152 -0
  42. package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.module.mjs +12 -12
  43. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.module.mjs +5 -5
  44. package/esm2022/src/app/core/graphql/graphql.service.mjs +787 -0
  45. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.utils.mjs +2 -1
  46. package/esm2022/src/app/core/home/home.mjs +283 -0
  47. package/esm2022/src/app/core/home/home.module.mjs +51 -0
  48. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  49. package/{esm2020 → esm2022}/src/app/core/icon/icon.module.mjs +7 -7
  50. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +358 -0
  51. package/{esm2020 → esm2022}/src/app/core/install/install-upgrade-card.module.mjs +10 -10
  52. package/esm2022/src/app/core/menu/menu.component.mjs +260 -0
  53. package/esm2022/src/app/core/menu/menu.model.mjs +268 -0
  54. package/esm2022/src/app/core/menu/menu.module.mjs +52 -0
  55. package/esm2022/src/app/core/menu/menu.service.mjs +665 -0
  56. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  57. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu-other.testing.mjs +4 -4
  58. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +122 -0
  59. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu.testing.module.mjs +12 -12
  60. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +29 -0
  61. package/{esm2020 → esm2022}/src/app/core/offline/update-offline-mode-card.module.mjs +10 -10
  62. package/esm2022/src/app/core/peer/select-peer.modal.mjs +192 -0
  63. package/{esm2020 → esm2022}/src/app/core/peer/select-peer.module.mjs +13 -13
  64. package/esm2022/src/app/core/register/register-confirm.page.mjs +88 -0
  65. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  66. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  67. package/{esm2020 → esm2022}/src/app/core/register/register.module.mjs +13 -13
  68. package/esm2022/src/app/core/services/account.service.mjs +1217 -0
  69. package/esm2022/src/app/core/services/auth-guard.service.mjs +76 -0
  70. package/esm2022/src/app/core/services/base-entity-service.class.mjs +482 -0
  71. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +224 -0
  72. package/esm2022/src/app/core/services/base58.mjs +79 -0
  73. package/esm2022/src/app/core/services/config.service.mjs +365 -0
  74. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  75. package/esm2022/src/app/core/services/local-settings.service.mjs +468 -0
  76. package/esm2022/src/app/core/services/model/account.model.mjs +153 -0
  77. package/esm2022/src/app/core/services/model/config.model.mjs +105 -0
  78. package/esm2022/src/app/core/services/model/department.model.mjs +33 -0
  79. package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
  80. package/esm2022/src/app/core/services/model/entity.model.mjs +228 -0
  81. package/esm2022/src/app/core/services/model/peer.model.mjs +82 -0
  82. package/esm2022/src/app/core/services/model/person.model.mjs +109 -0
  83. package/esm2022/src/app/core/services/model/referential.model.mjs +185 -0
  84. package/esm2022/src/app/core/services/model/token.model.mjs +52 -0
  85. package/esm2022/src/app/core/services/network.service.mjs +608 -0
  86. package/{esm2020 → esm2022}/src/app/core/services/pipes/account.pipes.mjs +9 -9
  87. package/{esm2020 → esm2022}/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  88. package/{esm2020 → esm2022}/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  89. package/{esm2020 → esm2022}/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  90. package/{esm2020 → esm2022}/src/app/core/services/platform.service.mjs +27 -5
  91. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +434 -0
  92. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +458 -0
  93. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  94. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  95. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  96. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  97. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +67 -0
  98. package/{esm2020 → esm2022}/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  99. package/{esm2020 → esm2022}/src/app/core/services/validator/user-token.validator.mjs +4 -4
  100. package/{esm2020 → esm2022}/src/app/core/settings/settings.module.mjs +9 -9
  101. package/esm2022/src/app/core/settings/settings.page.mjs +328 -0
  102. package/esm2022/src/app/core/table/actions-column.component.mjs +115 -0
  103. package/esm2022/src/app/core/table/async-table.class.mjs +1735 -0
  104. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +386 -0
  105. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +401 -0
  106. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  107. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  108. package/esm2022/src/app/core/table/table.class.mjs +1771 -0
  109. package/esm2022/src/app/core/table/table.model.mjs +16 -0
  110. package/{esm2020 → esm2022}/src/app/core/table/table.module.mjs +12 -12
  111. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +28 -0
  112. package/esm2022/src/app/core/table/testing/table.testing.mjs +291 -0
  113. package/{esm2020 → esm2022}/src/app/core/table/testing/table.testing.module.mjs +16 -16
  114. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  115. package/esm2022/src/app/core/table/testing/table2.testing.mjs +250 -0
  116. package/esm2022/src/app/shared/audio/audio.mjs +251 -0
  117. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  118. package/{esm2020 → esm2022}/src/app/shared/audio/audio.testing.module.mjs +10 -10
  119. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  120. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  121. package/esm2022/src/app/shared/dates.mjs +149 -0
  122. package/esm2022/src/app/shared/debug/debug.component.mjs +40 -0
  123. package/{esm2020 → esm2022}/src/app/shared/debug/debug.module.mjs +14 -14
  124. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +98 -0
  125. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +32 -0
  126. package/{esm2020 → esm2022}/src/app/shared/directives/directives.module.mjs +13 -13
  127. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  128. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  129. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  130. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  131. package/{esm2020 → esm2022}/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  132. package/esm2022/src/app/shared/file/file.service.mjs +122 -0
  133. package/{esm2020 → esm2022}/src/app/shared/file/file.utils.mjs +2 -2
  134. package/esm2022/src/app/shared/form/field.component.mjs +353 -0
  135. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  136. package/{esm2020 → esm2022}/src/app/shared/functions.mjs +2 -2
  137. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +82 -0
  138. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  139. package/esm2022/src/app/shared/graph/graph-colors.mjs +219 -0
  140. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +59 -0
  141. package/esm2022/src/app/shared/help/help.modal.mjs +63 -0
  142. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +24 -0
  143. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +85 -0
  144. package/{esm2020 → esm2022}/src/app/shared/hotkeys/shared-hotkeys.module.mjs +12 -12
  145. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +388 -0
  146. package/{esm2020 → esm2022}/src/app/shared/image/gallery/image-gallery.module.mjs +22 -22
  147. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  148. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +90 -0
  149. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +41 -0
  150. package/{esm2020 → esm2022}/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +16 -16
  151. package/{esm2020 → esm2022}/src/app/shared/image/image.module.mjs +11 -11
  152. package/esm2022/src/app/shared/image/image.service.mjs +104 -0
  153. package/esm2022/src/app/shared/inputs.mjs +231 -0
  154. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +28 -0
  155. package/esm2022/src/app/shared/logging/logging-service.class.mjs +128 -0
  156. package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.module.mjs +8 -8
  157. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +49 -0
  158. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +961 -0
  159. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +82 -0
  160. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +217 -0
  161. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +209 -0
  162. package/{esm2020 → esm2022}/src/app/shared/material/badge/badge.module.mjs +9 -9
  163. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  164. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +72 -0
  165. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +266 -0
  166. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +271 -0
  167. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +54 -0
  168. package/{esm2020 → esm2022}/src/app/shared/material/chips/chips.module.mjs +30 -30
  169. package/esm2022/src/app/shared/material/chips/material.chips.mjs +719 -0
  170. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +148 -0
  171. package/{esm2020 → esm2022}/src/app/shared/material/datetime/datetime.module.mjs +38 -38
  172. package/esm2022/src/app/shared/material/datetime/material.date.mjs +396 -0
  173. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +406 -0
  174. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +523 -0
  175. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +125 -0
  176. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +122 -0
  177. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +115 -0
  178. package/esm2022/src/app/shared/material/duration/duration.module.mjs +70 -0
  179. package/{esm2020 → esm2022}/src/app/shared/material/duration/duration.utils.mjs +2 -2
  180. package/esm2022/src/app/shared/material/duration/material.duration.mjs +273 -0
  181. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +79 -0
  182. package/{esm2020 → esm2022}/src/app/shared/material/latlong/latlong.utils.mjs +3 -3
  183. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +415 -0
  184. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +72 -0
  185. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +113 -0
  186. package/{esm2020 → esm2022}/src/app/shared/material/material.module.mjs +131 -131
  187. package/{esm2020 → esm2022}/src/app/shared/material/material.testing.module.mjs +45 -45
  188. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +104 -0
  189. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +83 -0
  190. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +203 -0
  191. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +19 -0
  192. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +168 -0
  193. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +36 -0
  194. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +16 -0
  195. package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.module.mjs +20 -20
  196. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +48 -0
  197. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +48 -0
  198. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  199. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +368 -0
  200. package/{esm2020 → esm2022}/src/app/shared/material/swipe/swipe.module.mjs +19 -19
  201. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  202. package/esm2022/src/app/shared/material/testing/common.test.mjs +105 -0
  203. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +212 -0
  204. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  205. package/{esm2020 → esm2022}/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  206. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  207. package/{esm2020 → esm2022}/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  208. package/{esm2020 → esm2022}/src/app/shared/pipes/colors.pipe.mjs +4 -4
  209. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +51 -0
  210. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  211. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  212. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +36 -0
  213. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +60 -0
  214. package/esm2022/src/app/shared/pipes/form.pipes.mjs +194 -0
  215. package/{esm2020 → esm2022}/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  216. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  217. package/{esm2020 → esm2022}/src/app/shared/pipes/maps.pipe.mjs +13 -13
  218. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +118 -0
  219. package/{esm2020 → esm2022}/src/app/shared/pipes/math.pipes.mjs +13 -13
  220. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  221. package/{esm2020 → esm2022}/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  222. package/esm2022/src/app/shared/pipes/pipes.module.mjs +256 -0
  223. package/esm2022/src/app/shared/pipes/property.pipes.mjs +97 -0
  224. package/{esm2020 → esm2022}/src/app/shared/pipes/string.pipes.mjs +31 -31
  225. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  226. package/{esm2020 → esm2022}/src/app/shared/pipes/types.pipes.mjs +14 -14
  227. package/esm2022/src/app/shared/rx-state.module.mjs +23 -0
  228. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +347 -0
  229. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  230. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +121 -0
  231. package/esm2022/src/app/shared/services/startable-service.class.mjs +113 -0
  232. package/esm2022/src/app/shared/services/translate-context.service.mjs +104 -0
  233. package/{esm2020 → esm2022}/src/app/shared/shared-routing.module.mjs +11 -11
  234. package/esm2022/src/app/shared/shared.module.mjs +217 -0
  235. package/{esm2020 → esm2022}/src/app/shared/shared.testing.module.mjs +40 -40
  236. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +286 -0
  237. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +46 -0
  238. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +7 -7
  239. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing.module.mjs +6 -6
  240. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  241. package/{esm2020 → esm2022}/src/app/shared/storage/storage.utils.mjs +1 -1
  242. package/esm2022/src/app/shared/testing/observable.test.mjs +96 -0
  243. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  244. package/esm2022/src/app/shared/toast/toast.testing.mjs +52 -0
  245. package/{esm2020 → esm2022}/src/app/shared/toast/toast.testing.module.mjs +10 -10
  246. package/esm2022/src/app/shared/toast/toasts.mjs +144 -0
  247. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +60 -0
  248. package/esm2022/src/app/shared/toolbar/toolbar.mjs +264 -0
  249. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +57 -0
  250. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  251. package/{esm2020 → esm2022}/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -10
  252. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +107 -0
  253. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +211 -0
  254. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +27 -0
  255. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +106 -0
  256. package/esm2022/src/app/shared/validator/validators.mjs +580 -0
  257. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  258. package/{esm2020 → esm2022}/src/app/social/job/job.module.mjs +12 -12
  259. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  260. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +232 -0
  261. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +50 -0
  262. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +28 -0
  263. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +73 -0
  264. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +43 -0
  265. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +53 -0
  266. package/{esm2020 → esm2022}/src/app/social/job/testing/job.testing.module.mjs +9 -9
  267. package/esm2022/src/app/social/message/message.form.mjs +88 -0
  268. package/esm2022/src/app/social/message/message.modal.mjs +102 -0
  269. package/esm2022/src/app/social/message/message.model.mjs +71 -0
  270. package/{esm2020 → esm2022}/src/app/social/message/message.module.mjs +10 -10
  271. package/esm2022/src/app/social/message/message.service.mjs +88 -0
  272. package/{esm2020 → esm2022}/src/app/social/social.module.mjs +19 -19
  273. package/{esm2020 → esm2022}/src/app/social/social.testing.module.mjs +10 -10
  274. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +123 -0
  275. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +263 -0
  276. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +233 -0
  277. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +128 -0
  278. package/{esm2020 → esm2022}/src/app/social/user-event/testing/user-event.testing.module.mjs +9 -9
  279. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +116 -0
  280. package/esm2022/src/app/social/user-event/user-event.module.mjs +43 -0
  281. package/esm2022/src/app/social/user-event/user-event.service.mjs +498 -0
  282. package/esm2022/src/environments/environment.class.mjs +47 -0
  283. package/{fesm2020 → fesm2022}/sumaris-net.ngx-components.mjs +5555 -4021
  284. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  285. package/package.json +11 -17
  286. package/public_api.d.ts +1 -0
  287. package/src/app/admin/users/users.d.ts +1 -1
  288. package/src/app/admin/users/users.module.d.ts +2 -1
  289. package/src/app/core/account/new-token.modal.d.ts +1 -1
  290. package/src/app/core/account/token.table.d.ts +1 -1
  291. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  292. package/src/app/core/form/entity/editor.class.d.ts +1 -1
  293. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
  294. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  295. package/src/app/core/form/form.class.d.ts +1 -1
  296. package/src/app/core/form/list/list.form.d.ts +1 -1
  297. package/src/app/core/form/properties/properties.form.d.ts +1 -1
  298. package/src/app/core/form/properties/properties.table.d.ts +1 -1
  299. package/src/app/core/form/text-popover/text-form.component.d.ts +1 -1
  300. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  301. package/src/app/core/home/home.module.d.ts +4 -3
  302. package/src/app/core/icon/icon.component.d.ts +1 -1
  303. package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
  304. package/src/app/core/menu/menu.component.d.ts +1 -1
  305. package/src/app/core/menu/menu.module.d.ts +3 -5
  306. package/src/app/core/menu/menu.service.d.ts +1 -1
  307. package/src/app/core/menu/sub-menu-tab.directive.d.ts +1 -1
  308. package/src/app/core/offline/update-offline-mode-card.component.d.ts +1 -1
  309. package/src/app/core/peer/select-peer.modal.d.ts +1 -1
  310. package/src/app/core/services/base-entity-service.class.d.ts +1 -1
  311. package/src/app/core/services/model/person.model.d.ts +1 -1
  312. package/src/app/core/services/model/settings.model.d.ts +1 -1
  313. package/src/app/core/services/network.types.d.ts +2 -2
  314. package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
  315. package/src/app/core/table/actions-column.component.d.ts +1 -1
  316. package/src/app/core/table/async-table.class.d.ts +1 -1
  317. package/src/app/core/table/memory-table.class.d.ts +1 -1
  318. package/src/app/core/table/table-select-columns.component.d.ts +1 -1
  319. package/src/app/core/table/table.class.d.ts +1 -1
  320. package/src/app/core/table/table.model.d.ts +1 -1
  321. package/src/app/core/table/testing/table.testing.d.ts +1 -1
  322. package/src/app/shared/audio/audio.d.ts +1 -1
  323. package/src/app/shared/debug/debug.component.d.ts +1 -1
  324. package/src/app/shared/directives/autofocus.directive.d.ts +1 -1
  325. package/src/app/shared/directives/ng-var.directive.d.ts +1 -1
  326. package/src/app/shared/directives/resizable/resizable.component.d.ts +1 -1
  327. package/src/app/shared/events.d.ts +1 -1
  328. package/src/app/shared/form/field.component.d.ts +1 -1
  329. package/src/app/shared/form/loading-spinner.d.ts +1 -1
  330. package/src/app/shared/help/help.modal.d.ts +1 -1
  331. package/src/app/shared/image/gallery/image-gallery.component.d.ts +1 -1
  332. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  333. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +10 -9
  334. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  335. package/src/app/shared/material/boolean/boolean.module.d.ts +4 -5
  336. package/src/app/shared/material/boolean/material-boolean2.d.ts +1 -1
  337. package/src/app/shared/material/boolean/material.boolean.d.ts +1 -1
  338. package/src/app/shared/material/chips/material.chips.d.ts +1 -1
  339. package/src/app/shared/material/datetime/datetime.module.d.ts +2 -2
  340. package/src/app/shared/material/datetime/material.date.d.ts +2 -2
  341. package/src/app/shared/material/datetime/material.dateshort.d.ts +3 -3
  342. package/src/app/shared/material/datetime/material.datetime.d.ts +5 -4
  343. package/src/app/shared/material/duration/duration.module.d.ts +6 -5
  344. package/src/app/shared/material/duration/material.duration.d.ts +2 -2
  345. package/src/app/shared/material/latlong/material.latlong.d.ts +5 -5
  346. package/src/app/shared/material/latlong/material.latlong.module.d.ts +9 -8
  347. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +2 -0
  348. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +1 -1
  349. package/src/app/shared/material/numpad/numpad.component.d.ts +1 -1
  350. package/src/app/shared/material/numpad/numpad.content.d.ts +1 -1
  351. package/src/app/shared/material/numpad/numpad.directive.d.ts +1 -1
  352. package/src/app/shared/material/swipe/material.swipe.d.ts +1 -1
  353. package/src/app/shared/material/testing/common.test.d.ts +4 -2
  354. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +1 -1
  355. package/src/app/shared/pipes/maskito.pipe.d.ts +16 -0
  356. package/src/app/shared/pipes/pipes.module.d.ts +5 -4
  357. package/src/app/shared/pipes/types.pipes.d.ts +3 -3
  358. package/src/app/shared/rx-state.module.d.ts +1 -1
  359. package/src/app/shared/services/job.utils.d.ts +1 -1
  360. package/src/app/shared/shared.module.d.ts +11 -12
  361. package/src/app/shared/storage/storage-explorer.component.d.ts +1 -1
  362. package/src/app/shared/storage/storage-explorer.module.d.ts +3 -3
  363. package/src/app/shared/storage/storage.service.d.ts +1 -1
  364. package/src/app/shared/storage/storage.utils.d.ts +1 -1
  365. package/src/app/shared/toolbar/modal-toolbar.d.ts +1 -1
  366. package/src/app/shared/toolbar/toolbar.d.ts +1 -1
  367. package/src/app/shared/toolbar/toolbar.module.d.ts +4 -3
  368. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -1
  369. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -1
  370. package/src/app/shared/upload-file/upload-file.model.d.ts +2 -2
  371. package/src/app/social/job/progression/job-progression.component.d.ts +1 -1
  372. package/src/app/social/job/progression/job-progression.icon.d.ts +1 -1
  373. package/src/app/social/job/progression/job-progression.list.d.ts +1 -1
  374. package/src/app/social/message/message.form.d.ts +1 -1
  375. package/src/app/social/message/message.modal.d.ts +1 -1
  376. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -3
  377. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +1 -1
  378. package/src/app/social/user-event/user-event.model.d.ts +2 -2
  379. package/src/app/social/user-event/user-event.module.d.ts +3 -2
  380. package/src/assets/i18n/fr.json +2 -2
  381. package/src/theme/_material.globals.scss +2 -2
  382. package/src/theme/_material.scss +22 -1
  383. package/src/theme/_mixins.scss +2 -2
  384. package/src/theme/_ngx-components.scss +7 -8
  385. package/src/theme/_ngx-components.table.scss +12 -6
  386. package/esm2020/public_api.mjs +0 -336
  387. package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
  388. package/esm2020/src/app/admin/services/person.service.mjs +0 -170
  389. package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -71
  390. package/esm2020/src/app/admin/users/users.mjs +0 -259
  391. package/esm2020/src/app/admin/users/users.module.mjs +0 -54
  392. package/esm2020/src/app/core/account/account.page.mjs +0 -317
  393. package/esm2020/src/app/core/account/new-token.modal.mjs +0 -115
  394. package/esm2020/src/app/core/account/token.table.mjs +0 -137
  395. package/esm2020/src/app/core/auth/auth.form.mjs +0 -132
  396. package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
  397. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -107
  398. package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -679
  399. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -422
  400. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -690
  401. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  402. package/esm2020/src/app/core/form/form.class.mjs +0 -345
  403. package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
  404. package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
  405. package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -265
  406. package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
  407. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
  408. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
  409. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +0 -89
  410. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +0 -146
  411. package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -774
  412. package/esm2020/src/app/core/home/home.mjs +0 -258
  413. package/esm2020/src/app/core/home/home.module.mjs +0 -48
  414. package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
  415. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -344
  416. package/esm2020/src/app/core/menu/menu.component.mjs +0 -239
  417. package/esm2020/src/app/core/menu/menu.model.mjs +0 -247
  418. package/esm2020/src/app/core/menu/menu.module.mjs +0 -57
  419. package/esm2020/src/app/core/menu/menu.service.mjs +0 -654
  420. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +0 -98
  421. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +0 -121
  422. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
  423. package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -183
  424. package/esm2020/src/app/core/register/register-confirm.page.mjs +0 -81
  425. package/esm2020/src/app/core/register/register.form.mjs +0 -183
  426. package/esm2020/src/app/core/register/register.modal.mjs +0 -52
  427. package/esm2020/src/app/core/services/account.service.mjs +0 -1206
  428. package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
  429. package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -468
  430. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -221
  431. package/esm2020/src/app/core/services/base58.mjs +0 -78
  432. package/esm2020/src/app/core/services/config.service.mjs +0 -355
  433. package/esm2020/src/app/core/services/crypto.service.mjs +0 -107
  434. package/esm2020/src/app/core/services/local-settings.service.mjs +0 -460
  435. package/esm2020/src/app/core/services/model/account.model.mjs +0 -147
  436. package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
  437. package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
  438. package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
  439. package/esm2020/src/app/core/services/model/entity.model.mjs +0 -225
  440. package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
  441. package/esm2020/src/app/core/services/model/person.model.mjs +0 -97
  442. package/esm2020/src/app/core/services/model/referential.model.mjs +0 -164
  443. package/esm2020/src/app/core/services/model/token.model.mjs +0 -48
  444. package/esm2020/src/app/core/services/network.service.mjs +0 -590
  445. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
  446. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
  447. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
  448. package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
  449. package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -41
  450. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
  451. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
  452. package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
  453. package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
  454. package/esm2020/src/app/core/table/async-table.class.mjs +0 -1698
  455. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  456. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
  457. package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
  458. package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
  459. package/esm2020/src/app/core/table/table.class.mjs +0 -1733
  460. package/esm2020/src/app/core/table/table.model.mjs +0 -12
  461. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
  462. package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -281
  463. package/esm2020/src/app/core/table/testing/table2-validator.service.mjs +0 -24
  464. package/esm2020/src/app/core/table/testing/table2.testing.mjs +0 -242
  465. package/esm2020/src/app/shared/audio/audio.mjs +0 -248
  466. package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
  467. package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
  468. package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
  469. package/esm2020/src/app/shared/dates.mjs +0 -149
  470. package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
  471. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -93
  472. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
  473. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
  474. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
  475. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -60
  476. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
  477. package/esm2020/src/app/shared/file/file.service.mjs +0 -117
  478. package/esm2020/src/app/shared/form/field.component.mjs +0 -334
  479. package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
  480. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
  481. package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
  482. package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
  483. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
  484. package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
  485. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  486. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -81
  487. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -368
  488. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
  489. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
  490. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
  491. package/esm2020/src/app/shared/image/image.service.mjs +0 -98
  492. package/esm2020/src/app/shared/inputs.mjs +0 -231
  493. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  494. package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
  495. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
  496. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -925
  497. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
  498. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
  499. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -199
  500. package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
  501. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -76
  502. package/esm2020/src/app/shared/material/boolean/material-boolean2.mjs +0 -248
  503. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -254
  504. package/esm2020/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -51
  505. package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -688
  506. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
  507. package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -378
  508. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -387
  509. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -501
  510. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -120
  511. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -118
  512. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -111
  513. package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
  514. package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -258
  515. package/esm2020/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -76
  516. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -383
  517. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  518. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
  519. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
  520. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +0 -80
  521. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
  522. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
  523. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
  524. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -32
  525. package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
  526. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
  527. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
  528. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
  529. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -345
  530. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
  531. package/esm2020/src/app/shared/material/testing/common.test.mjs +0 -95
  532. package/esm2020/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -202
  533. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +0 -45
  534. package/esm2020/src/app/shared/named-filter/named-filter.service.mjs +0 -63
  535. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
  536. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
  537. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
  538. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
  539. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
  540. package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
  541. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
  542. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
  543. package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -247
  544. package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
  545. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
  546. package/esm2020/src/app/shared/rx-state.module.mjs +0 -23
  547. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -339
  548. package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
  549. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -121
  550. package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -113
  551. package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -103
  552. package/esm2020/src/app/shared/shared.module.mjs +0 -224
  553. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
  554. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -47
  555. package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
  556. package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
  557. package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
  558. package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
  559. package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
  560. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
  561. package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
  562. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
  563. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -58
  564. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
  565. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
  566. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
  567. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
  568. package/esm2020/src/app/shared/validator/validators.mjs +0 -580
  569. package/esm2020/src/app/shared/version/versions.mjs +0 -81
  570. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -34
  571. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -223
  572. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -46
  573. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
  574. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
  575. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -41
  576. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
  577. package/esm2020/src/app/social/message/message.form.mjs +0 -84
  578. package/esm2020/src/app/social/message/message.modal.mjs +0 -93
  579. package/esm2020/src/app/social/message/message.model.mjs +0 -64
  580. package/esm2020/src/app/social/message/message.service.mjs +0 -84
  581. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
  582. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
  583. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
  584. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
  585. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
  586. package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
  587. package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -488
  588. package/esm2020/src/environments/environment.class.mjs +0 -5
  589. package/fesm2015/sumaris-net.ngx-components.mjs +0 -41541
  590. package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
  591. package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
  592. /package/{esm2020 → esm2022}/src/app/core/services/config/core.config.mjs +0 -0
  593. /package/{esm2020 → esm2022}/src/app/core/services/errors.mjs +0 -0
  594. /package/{esm2020 → esm2022}/src/app/core/services/model/filter.model.mjs +0 -0
  595. /package/{esm2020 → esm2022}/src/app/core/services/model/history.model.mjs +0 -0
  596. /package/{esm2020 → esm2022}/src/app/core/services/model/model.enum.mjs +0 -0
  597. /package/{esm2020 → esm2022}/src/app/core/services/model/settings.model.mjs +0 -0
  598. /package/{esm2020 → esm2022}/src/app/core/services/model/tree-item-entity.model.mjs +0 -0
  599. /package/{esm2020 → esm2022}/src/app/core/services/network.types.mjs +0 -0
  600. /package/{esm2020 → esm2022}/src/app/core/services/network.utils.mjs +0 -0
  601. /package/{esm2020 → esm2022}/src/app/core/table/table.utils.mjs +0 -0
  602. /package/{esm2020 → esm2022}/src/app/shared/alerts.mjs +0 -0
  603. /package/{esm2020 → esm2022}/src/app/shared/constants.mjs +0 -0
  604. /package/{esm2020 → esm2022}/src/app/shared/debug/debug-service.class.mjs +0 -0
  605. /package/{esm2020 → esm2022}/src/app/shared/events.mjs +0 -0
  606. /package/{esm2020 → esm2022}/src/app/shared/file/csv.utils.mjs +0 -0
  607. /package/{esm2020 → esm2022}/src/app/shared/file/images.utils.mjs +0 -0
  608. /package/{esm2020 → esm2022}/src/app/shared/file/json.utils.mjs +0 -0
  609. /package/{esm2020 → esm2022}/src/app/shared/file/uri.utils.mjs +0 -0
  610. /package/{esm2020 → esm2022}/src/app/shared/focusable.mjs +0 -0
  611. /package/{esm2020 → esm2022}/src/app/shared/form/field.model.mjs +0 -0
  612. /package/{esm2020 → esm2022}/src/app/shared/forms.mjs +0 -0
  613. /package/{esm2020 → esm2022}/src/app/shared/gesture/hammer.utils.mjs +0 -0
  614. /package/{esm2020 → esm2022}/src/app/shared/graph/colors.utils.mjs +0 -0
  615. /package/{esm2020 → esm2022}/src/app/shared/http/http.utils.mjs +0 -0
  616. /package/{esm2020 → esm2022}/src/app/shared/image/image.model.mjs +0 -0
  617. /package/{esm2020 → esm2022}/src/app/shared/logging/log-level.model.mjs +0 -0
  618. /package/{esm2020 → esm2022}/src/app/shared/logging/logger.model.mjs +0 -0
  619. /package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.config.mjs +0 -0
  620. /package/{esm2020 → esm2022}/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -0
  621. /package/{esm2020 → esm2022}/src/app/shared/material/material.animations.mjs +0 -0
  622. /package/{esm2020 → esm2022}/src/app/shared/modules.mjs +0 -0
  623. /package/{esm2020 → esm2022}/src/app/shared/observables.mjs +0 -0
  624. /package/{esm2020 → esm2022}/src/app/shared/platforms.mjs +0 -0
  625. /package/{esm2020 → esm2022}/src/app/shared/services/entity-service.class.mjs +0 -0
  626. /package/{esm2020 → esm2022}/src/app/shared/services/job.utils.mjs +0 -0
  627. /package/{esm2020 → esm2022}/src/app/shared/services/validator-service.class.mjs +0 -0
  628. /package/{esm2020 → esm2022}/src/app/shared/services.mjs +0 -0
  629. /package/{esm2020 → esm2022}/src/app/shared/types.mjs +0 -0
  630. /package/{esm2020 → esm2022}/src/app/social/social.errors.mjs +0 -0
  631. /package/{esm2020 → esm2022}/src/app/social/user-event/user-event.model.mjs +0 -0
  632. /package/{esm2020 → esm2022}/src/environments/environment.mjs +0 -0
  633. /package/{esm2020 → esm2022}/sumaris-net.ngx-components.mjs +0 -0
@@ -115,51 +115,51 @@ const routes = [
115
115
  },
116
116
  ];
117
117
  export class MaterialTestingModule {
118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaterialTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
119
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MaterialTestingModule, declarations: [MatCommonTestPage,
120
+ DateTimeTestPage,
121
+ DateTestPage,
122
+ DateShortTestPage,
123
+ DurationTestPage,
124
+ AutocompleteTestPage,
125
+ BooleanTestPage,
126
+ LatLongTestPage,
127
+ NumpadTestPage,
128
+ SwipeTestPage,
129
+ ChipsTestPage,
130
+ MatBadgeTestPage,
131
+ ObservableTestPage], imports: [CommonModule,
132
+ IonicModule,
133
+ ReactiveFormsModule,
134
+ SharedMaterialModule, i1.TranslateModule, i2.RouterModule, SharedPipesModule,
135
+ SharedBadgeModule,
136
+ FormsModule], exports: [SharedMaterialModule,
137
+ RouterModule,
138
+ MatCommonTestPage,
139
+ DateTimeTestPage,
140
+ DateTestPage,
141
+ DateShortTestPage,
142
+ DurationTestPage,
143
+ AutocompleteTestPage,
144
+ BooleanTestPage,
145
+ LatLongTestPage,
146
+ NumpadTestPage,
147
+ SwipeTestPage,
148
+ ChipsTestPage,
149
+ MatBadgeTestPage,
150
+ ObservableTestPage] });
151
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaterialTestingModule, imports: [CommonModule,
152
+ IonicModule,
153
+ ReactiveFormsModule,
154
+ SharedMaterialModule,
155
+ TranslateModule.forChild(),
156
+ RouterModule.forChild(routes),
157
+ SharedPipesModule,
158
+ SharedBadgeModule,
159
+ FormsModule, SharedMaterialModule,
160
+ RouterModule] });
118
161
  }
119
- MaterialTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
120
- MaterialTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MaterialTestingModule, declarations: [MatCommonTestPage,
121
- DateTimeTestPage,
122
- DateTestPage,
123
- DateShortTestPage,
124
- DurationTestPage,
125
- AutocompleteTestPage,
126
- BooleanTestPage,
127
- LatLongTestPage,
128
- NumpadTestPage,
129
- SwipeTestPage,
130
- ChipsTestPage,
131
- MatBadgeTestPage,
132
- ObservableTestPage], imports: [CommonModule,
133
- IonicModule,
134
- ReactiveFormsModule,
135
- SharedMaterialModule, i1.TranslateModule, i2.RouterModule, SharedPipesModule,
136
- SharedBadgeModule,
137
- FormsModule], exports: [SharedMaterialModule,
138
- RouterModule,
139
- MatCommonTestPage,
140
- DateTimeTestPage,
141
- DateTestPage,
142
- DateShortTestPage,
143
- DurationTestPage,
144
- AutocompleteTestPage,
145
- BooleanTestPage,
146
- LatLongTestPage,
147
- NumpadTestPage,
148
- SwipeTestPage,
149
- ChipsTestPage,
150
- MatBadgeTestPage,
151
- ObservableTestPage] });
152
- MaterialTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialTestingModule, imports: [CommonModule,
153
- IonicModule,
154
- ReactiveFormsModule,
155
- SharedMaterialModule,
156
- TranslateModule.forChild(),
157
- RouterModule.forChild(routes),
158
- SharedPipesModule,
159
- SharedBadgeModule,
160
- FormsModule, SharedMaterialModule,
161
- RouterModule] });
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialTestingModule, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaterialTestingModule, decorators: [{
163
163
  type: NgModule,
164
164
  args: [{
165
165
  imports: [
@@ -207,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
207
207
  ]
208
208
  }]
209
209
  }] });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFh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Q2IsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtvSEFHVCxxQkFBcUIsWUEzQzlCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixlQUFlLENBQUMsUUFBUSxFQUFFO1FBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzdCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsV0FBVyxFQWtCWCxvQkFBb0I7UUFDcEIsWUFBWTs0RkFnQkgscUJBQXFCO2tCQTdDakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDN0IsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLFdBQVc7cUJBQ1o7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTaGFyZWRUZXN0c1BhZ2UsIFRlc3RpbmdQYWdlfSBmcm9tICcuLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RhdGVUaW1lVGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS10aW1lLnRlc3QnO1xuaW1wb3J0IHtEYXRlVGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS50ZXN0JztcbmltcG9ydCB7U2hhcmVkUGlwZXNNb2R1bGV9IGZyb20gJy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQge09ic2VydmFibGVUZXN0UGFnZX0gZnJvbSAnLi4vdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QnO1xuaW1wb3J0IHtEYXRlU2hvcnRUZXN0UGFnZX0gZnJvbSAnLi9kYXRldGltZS90ZXN0aW5nL21hdC1kYXRlc2hvcnQudGVzdCc7XG5pbXBvcnQge0F1dG9jb21wbGV0ZVRlc3RQYWdlfSBmcm9tICcuL2F1dG9jb21wbGV0ZS90ZXN0aW5nL2F1dG9jb21wbGV0ZS50ZXN0JztcbmltcG9ydCB7TGF0TG9uZ1Rlc3RQYWdlfSBmcm9tICcuL2xhdGxvbmcvdGVzdGluZy9sYXRsb25nLnRlc3QnO1xuaW1wb3J0IHtOdW1wYWRUZXN0UGFnZX0gZnJvbSAnLi9udW1wYWQvdGVzdGluZy9udW1wYWQudGVzdCc7XG5pbXBvcnQge1N3aXBlVGVzdFBhZ2V9IGZyb20gJy4vc3dpcGUvdGVzdGluZy9zd2lwZS50ZXN0JztcbmltcG9ydCB7Q2hpcHNUZXN0UGFnZX0gZnJvbSAnLi9jaGlwcy90ZXN0aW5nL2NoaXBzLnRlc3QnO1xuaW1wb3J0IHtNYXRCYWRnZVRlc3RQYWdlfSBmcm9tICcuL2JhZGdlL2JhZGdlLnRlc3QnO1xuaW1wb3J0IHtTaGFyZWRCYWRnZU1vZHVsZX0gZnJvbSAnLi9iYWRnZS9iYWRnZS5tb2R1bGUnO1xuaW1wb3J0IHtEdXJhdGlvblRlc3RQYWdlfSBmcm9tICcuL2R1cmF0aW9uL3Rlc3RpbmcvbWF0LWR1cmF0aW9uLnRlc3QnO1xuaW1wb3J0IHtNYXRDb21tb25UZXN0UGFnZX0gZnJvbSAnLi90ZXN0aW5nL2NvbW1vbi50ZXN0JztcbmltcG9ydCB7Qm9vbGVhblRlc3RQYWdlfSBmcm9tICcuL2Jvb2xlYW4vdGVzdGluZy9ib29sZWFuLnRlc3QucGFnZSc7XG5cbmV4cG9ydCBjb25zdCBTSEFSRURfTUFURVJJQUxfVEVTVElOR19QQUdFUzogVGVzdGluZ1BhZ2VbXSA9IFtcbiAge2xhYmVsOiAnU2hhcmVkIE1hdGVyaWFsIGNvbXBvbmVudHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnQ29tbW9uIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9jb21tb24nfSxcbiAge2xhYmVsOiAnRGF0ZS9UaW1lIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRldGltZSd9LFxuICB7bGFiZWw6ICdEYXRlIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRlJ30sXG4gIHtsYWJlbDogJ0RhdGUgc2hvcnQgZmllbGQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2RhdGVzaG9ydCd9LFxuICB7bGFiZWw6ICdEdXJhdGlvbiBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvZHVyYXRpb24nfSxcbiAge2xhYmVsOiAnQXV0b2NvbXBsZXRlIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9hdXRvY29tcGxldGUnfSxcbiAge2xhYmVsOiAnQm9vbGVhbiBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYm9vbGVhbid9LFxuICB7bGFiZWw6ICdMYXQvTG9uZyBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvbGF0bG9uZyd9LFxuICB7bGFiZWw6ICdOdW1lcmljIHBhZCBjb21wb25lbnQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL251bXBhZCd9LFxuXG4gIHtsYWJlbDogJ1N3aXBlIGNvbXBvbmVudCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvc3dpcGUnfSxcbiAge2xhYmVsOiAnQ2hpcHMgY29tcG9uZW50JywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9jaGlwcyd9LFxuXG4gIHtsYWJlbDogJ1NoYXJlZCBkaXJlY3RpdmVzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ0JhZGdlIGRpcmVjdGl2ZScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYmFkZ2UnfSxcblxuICB7bGFiZWw6ICdTaGFyZWQgdXRpbHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnT2JzZXJ2YWJsZScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvb2JzZXJ2YWJsZSd9XG5dO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogU2hhcmVkVGVzdHNQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY29tbW9uJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE1hdENvbW1vblRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZXRpbWUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVRpbWVUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2RhdGUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZXNob3J0JyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IERhdGVTaG9ydFRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZHVyYXRpb24nLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRHVyYXRpb25UZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2F1dG9jb21wbGV0ZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBBdXRvY29tcGxldGVUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2Jvb2xlYW4nLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogQm9vbGVhblRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbGF0bG9uZycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBMYXRMb25nVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdudW1wYWQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogTnVtcGFkVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzd2lwZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBTd2lwZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY2hpcHMnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogQ2hpcHNUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2JhZGdlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE1hdEJhZGdlVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdvYnNlcnZhYmxlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE9ic2VydmFibGVUZXN0UGFnZVxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEJhZGdlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXRDb21tb25UZXN0UGFnZSxcbiAgICBEYXRlVGltZVRlc3RQYWdlLFxuICAgIERhdGVUZXN0UGFnZSxcbiAgICBEYXRlU2hvcnRUZXN0UGFnZSxcbiAgICBEdXJhdGlvblRlc3RQYWdlLFxuICAgIEF1dG9jb21wbGV0ZVRlc3RQYWdlLFxuICAgIEJvb2xlYW5UZXN0UGFnZSxcbiAgICBMYXRMb25nVGVzdFBhZ2UsXG4gICAgTnVtcGFkVGVzdFBhZ2UsXG4gICAgU3dpcGVUZXN0UGFnZSxcbiAgICBDaGlwc1Rlc3RQYWdlLFxuICAgIE1hdEJhZGdlVGVzdFBhZ2UsXG4gICAgT2JzZXJ2YWJsZVRlc3RQYWdlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0Q29tbW9uVGVzdFBhZ2UsXG4gICAgRGF0ZVRpbWVUZXN0UGFnZSxcbiAgICBEYXRlVGVzdFBhZ2UsXG4gICAgRGF0ZVNob3J0VGVzdFBhZ2UsXG4gICAgRHVyYXRpb25UZXN0UGFnZSxcbiAgICBBdXRvY29tcGxldGVUZXN0UGFnZSxcbiAgICBCb29sZWFuVGVzdFBhZ2UsXG4gICAgTGF0TG9uZ1Rlc3RQYWdlLFxuICAgIE51bXBhZFRlc3RQYWdlLFxuICAgIFN3aXBlVGVzdFBhZ2UsXG4gICAgQ2hpcHNUZXN0UGFnZSxcbiAgICBNYXRCYWRnZVRlc3RQYWdlLFxuICAgIE9ic2VydmFibGVUZXN0UGFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFh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YixnQkFBZ0I7WUFDaEIsa0JBQWtCO3lHQUdULHFCQUFxQixZQTNDOUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDN0IsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixXQUFXLEVBa0JYLG9CQUFvQjtZQUNwQixZQUFZOzs0RkFnQkgscUJBQXFCO2tCQTdDakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDN0IsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLFdBQVc7cUJBQ1o7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTaGFyZWRUZXN0c1BhZ2UsIFRlc3RpbmdQYWdlfSBmcm9tICcuLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RhdGVUaW1lVGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS10aW1lLnRlc3QnO1xuaW1wb3J0IHtEYXRlVGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS50ZXN0JztcbmltcG9ydCB7U2hhcmVkUGlwZXNNb2R1bGV9IGZyb20gJy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQge09ic2VydmFibGVUZXN0UGFnZX0gZnJvbSAnLi4vdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QnO1xuaW1wb3J0IHtEYXRlU2hvcnRUZXN0UGFnZX0gZnJvbSAnLi9kYXRldGltZS90ZXN0aW5nL21hdC1kYXRlc2hvcnQudGVzdCc7XG5pbXBvcnQge0F1dG9jb21wbGV0ZVRlc3RQYWdlfSBmcm9tICcuL2F1dG9jb21wbGV0ZS90ZXN0aW5nL2F1dG9jb21wbGV0ZS50ZXN0JztcbmltcG9ydCB7TGF0TG9uZ1Rlc3RQYWdlfSBmcm9tICcuL2xhdGxvbmcvdGVzdGluZy9sYXRsb25nLnRlc3QnO1xuaW1wb3J0IHtOdW1wYWRUZXN0UGFnZX0gZnJvbSAnLi9udW1wYWQvdGVzdGluZy9udW1wYWQudGVzdCc7XG5pbXBvcnQge1N3aXBlVGVzdFBhZ2V9IGZyb20gJy4vc3dpcGUvdGVzdGluZy9zd2lwZS50ZXN0JztcbmltcG9ydCB7Q2hpcHNUZXN0UGFnZX0gZnJvbSAnLi9jaGlwcy90ZXN0aW5nL2NoaXBzLnRlc3QnO1xuaW1wb3J0IHtNYXRCYWRnZVRlc3RQYWdlfSBmcm9tICcuL2JhZGdlL2JhZGdlLnRlc3QnO1xuaW1wb3J0IHtTaGFyZWRCYWRnZU1vZHVsZX0gZnJvbSAnLi9iYWRnZS9iYWRnZS5tb2R1bGUnO1xuaW1wb3J0IHtEdXJhdGlvblRlc3RQYWdlfSBmcm9tICcuL2R1cmF0aW9uL3Rlc3RpbmcvbWF0LWR1cmF0aW9uLnRlc3QnO1xuaW1wb3J0IHtNYXRDb21tb25UZXN0UGFnZX0gZnJvbSAnLi90ZXN0aW5nL2NvbW1vbi50ZXN0JztcbmltcG9ydCB7Qm9vbGVhblRlc3RQYWdlfSBmcm9tICcuL2Jvb2xlYW4vdGVzdGluZy9ib29sZWFuLnRlc3QucGFnZSc7XG5cbmV4cG9ydCBjb25zdCBTSEFSRURfTUFURVJJQUxfVEVTVElOR19QQUdFUzogVGVzdGluZ1BhZ2VbXSA9IFtcbiAge2xhYmVsOiAnU2hhcmVkIE1hdGVyaWFsIGNvbXBvbmVudHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnQ29tbW9uIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9jb21tb24nfSxcbiAge2xhYmVsOiAnRGF0ZS9UaW1lIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRldGltZSd9LFxuICB7bGFiZWw6ICdEYXRlIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRlJ30sXG4gIHtsYWJlbDogJ0RhdGUgc2hvcnQgZmllbGQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2RhdGVzaG9ydCd9LFxuICB7bGFiZWw6ICdEdXJhdGlvbiBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvZHVyYXRpb24nfSxcbiAge2xhYmVsOiAnQXV0b2NvbXBsZXRlIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9hdXRvY29tcGxldGUnfSxcbiAge2xhYmVsOiAnQm9vbGVhbiBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYm9vbGVhbid9LFxuICB7bGFiZWw6ICdMYXQvTG9uZyBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvbGF0bG9uZyd9LFxuICB7bGFiZWw6ICdOdW1lcmljIHBhZCBjb21wb25lbnQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL251bXBhZCd9LFxuXG4gIHtsYWJlbDogJ1N3aXBlIGNvbXBvbmVudCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvc3dpcGUnfSxcbiAge2xhYmVsOiAnQ2hpcHMgY29tcG9uZW50JywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9jaGlwcyd9LFxuXG4gIHtsYWJlbDogJ1NoYXJlZCBkaXJlY3RpdmVzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ0JhZGdlIGRpcmVjdGl2ZScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYmFkZ2UnfSxcblxuICB7bGFiZWw6ICdTaGFyZWQgdXRpbHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnT2JzZXJ2YWJsZScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvb2JzZXJ2YWJsZSd9XG5dO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogU2hhcmVkVGVzdHNQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY29tbW9uJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE1hdENvbW1vblRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZXRpbWUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVRpbWVUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2RhdGUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZXNob3J0JyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IERhdGVTaG9ydFRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZHVyYXRpb24nLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRHVyYXRpb25UZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2F1dG9jb21wbGV0ZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBBdXRvY29tcGxldGVUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2Jvb2xlYW4nLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogQm9vbGVhblRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbGF0bG9uZycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBMYXRMb25nVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdudW1wYWQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogTnVtcGFkVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzd2lwZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBTd2lwZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY2hpcHMnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogQ2hpcHNUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2JhZGdlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE1hdEJhZGdlVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdvYnNlcnZhYmxlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE9ic2VydmFibGVUZXN0UGFnZVxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEJhZGdlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXRDb21tb25UZXN0UGFnZSxcbiAgICBEYXRlVGltZVRlc3RQYWdlLFxuICAgIERhdGVUZXN0UGFnZSxcbiAgICBEYXRlU2hvcnRUZXN0UGFnZSxcbiAgICBEdXJhdGlvblRlc3RQYWdlLFxuICAgIEF1dG9jb21wbGV0ZVRlc3RQYWdlLFxuICAgIEJvb2xlYW5UZXN0UGFnZSxcbiAgICBMYXRMb25nVGVzdFBhZ2UsXG4gICAgTnVtcGFkVGVzdFBhZ2UsXG4gICAgU3dpcGVUZXN0UGFnZSxcbiAgICBDaGlwc1Rlc3RQYWdlLFxuICAgIE1hdEJhZGdlVGVzdFBhZ2UsXG4gICAgT2JzZXJ2YWJsZVRlc3RQYWdlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0Q29tbW9uVGVzdFBhZ2UsXG4gICAgRGF0ZVRpbWVUZXN0UGFnZSxcbiAgICBEYXRlVGVzdFBhZ2UsXG4gICAgRGF0ZVNob3J0VGVzdFBhZ2UsXG4gICAgRHVyYXRpb25UZXN0UGFnZSxcbiAgICBBdXRvY29tcGxldGVUZXN0UGFnZSxcbiAgICBCb29sZWFuVGVzdFBhZ2UsXG4gICAgTGF0TG9uZ1Rlc3RQYWdlLFxuICAgIE51bXBhZFRlc3RQYWdlLFxuICAgIFN3aXBlVGVzdFBhZ2UsXG4gICAgQ2hpcHNUZXN0UGFnZSxcbiAgICBNYXRCYWRnZVRlc3RQYWdlLFxuICAgIE9ic2VydmFibGVUZXN0UGFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AppendToInputDirective {
4
+ renderer;
5
+ inputElement;
6
+ _directionY;
7
+ _directionX;
8
+ _inputCords;
9
+ element;
10
+ constructor(elementRef, renderer) {
11
+ this.renderer = renderer;
12
+ this.element = elementRef.nativeElement;
13
+ }
14
+ get inputCords() {
15
+ return this.inputElement.getBoundingClientRect();
16
+ }
17
+ get directionY() {
18
+ const height = this.element.offsetHeight;
19
+ const { bottom, top } = this._inputCords;
20
+ const isElementFit = (window && window.innerHeight) - bottom < height;
21
+ const isTop = isElementFit && top > height;
22
+ const isCenter = isElementFit && top < height;
23
+ if (isTop) {
24
+ return 'top';
25
+ }
26
+ else if (isCenter) {
27
+ return 'center';
28
+ }
29
+ return 'bottom';
30
+ }
31
+ get directionX() {
32
+ const width = this.element.offsetWidth;
33
+ const { left, right } = this._inputCords;
34
+ const isElementFit = (window && window.innerWidth) - left < width;
35
+ const isEnd = isElementFit && right > width;
36
+ const isCenter = isElementFit && right < width;
37
+ if (isEnd) {
38
+ return 'end';
39
+ }
40
+ else if (isCenter) {
41
+ return 'center';
42
+ }
43
+ return 'start';
44
+ }
45
+ ngAfterViewInit() {
46
+ this._inputCords = this.inputCords;
47
+ this._directionY = this.directionY;
48
+ this._directionX = this.directionX;
49
+ this.append();
50
+ }
51
+ changePosition() {
52
+ const { left, right, bottom, top } = this.inputCords;
53
+ const x = this.defineElementYByDirection(left, right);
54
+ const y = this.defineElementYByDirection(top, bottom);
55
+ this.setStyle('left', `${x}px`);
56
+ this.setStyle('top', `${y}px`);
57
+ }
58
+ append() {
59
+ const { left, right, bottom, top } = this._inputCords;
60
+ const x = this.defineElementXByDirection(left, right);
61
+ const y = this.defineElementYByDirection(top, bottom);
62
+ this.setStyle('position', 'fixed');
63
+ this.setStyle('left', `${x}px`);
64
+ this.setStyle('top', `${y}px`);
65
+ }
66
+ setStyle(style, value) {
67
+ this.renderer.setStyle(this.element, style, value);
68
+ }
69
+ defineElementYByDirection(inputTop, inputBottom) {
70
+ if (this._directionY === 'top') {
71
+ return inputTop - this.element.offsetHeight;
72
+ }
73
+ else if (this._directionY === 'center') {
74
+ return inputTop - (this.element.offsetHeight / 2);
75
+ }
76
+ return inputBottom;
77
+ }
78
+ defineElementXByDirection(inputLeft, inputRight) {
79
+ // DEBUG
80
+ //console.log("defineElementXByDirection ", inputLeft, inputRight);
81
+ if (this._directionX === 'end') {
82
+ return inputRight - this.element.offsetWidth;
83
+ }
84
+ else if (this._directionX === 'center') {
85
+ return inputRight - (this.element.offsetWidth / 2);
86
+ }
87
+ return inputLeft;
88
+ }
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppendToInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
90
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AppendToInputDirective, selector: "[appendNumpadToInput]", inputs: { inputElement: ["appendNumpadToInput", "inputElement"] }, host: { listeners: { "window:scroll": "changePosition()" } }, ngImport: i0 });
91
+ }
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppendToInputDirective, decorators: [{
93
+ type: Directive,
94
+ args: [{
95
+ selector: '[appendNumpadToInput]'
96
+ }]
97
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { inputElement: [{
98
+ type: Input,
99
+ args: ['appendNumpadToInput']
100
+ }], changePosition: [{
101
+ type: HostListener,
102
+ args: ['window:scroll']
103
+ }] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtcGFkLmFwcGVuZC10by1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvbnVtcGFkLmFwcGVuZC10by1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQzs7QUFRbkcsTUFBTSxPQUFPLHNCQUFzQjtJQVVYO0lBUlUsWUFBWSxDQUFNO0lBRXhDLFdBQVcsQ0FBdUI7SUFDbEMsV0FBVyxDQUF1QjtJQUNsQyxXQUFXLENBQWE7SUFDZixPQUFPLENBQWM7SUFFdEMsWUFBWSxVQUFtQyxFQUMzQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBWSxVQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDekMsTUFBTSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLFlBQVksSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLFlBQVksSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBRTlDLElBQUksS0FBSyxFQUFFO1lBQ1AsT0FBTyxLQUFL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QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxTQUFpQixFQUFFLFVBQWtCO1FBQ3JFLFFBQVE7UUFDUixtRUFBbUU7UUFFbkUsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRTtZQUM5QixPQUFPLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUM5QzthQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLEVBQUU7WUFDeEMsT0FBTyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNwRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7d0dBbkdRLHNCQUFzQjs0RkFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7aUJBQ3BDO3lIQUdpQyxZQUFZO3NCQUF6QyxLQUFLO3VCQUFDLHFCQUFxQjtnQkF1RDVCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbnR5cGUgVGltZXBpY2tlckRpcmVjdGlvblkgPSAndG9wJyB8ICdjZW50ZXInIHwgJ2JvdHRvbSc7XG50eXBlIFRpbWVwaWNrZXJEaXJlY3Rpb25YID0gJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwcGVuZE51bXBhZFRvSW5wdXRdJ1xufSlcbmV4cG9ydCBjbGFzcyBBcHBlbmRUb0lucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASW5wdXQoJ2FwcGVuZE51bXBhZFRvSW5wdXQnKSBpbnB1dEVsZW1lbnQ6IGFueTtcblxuICAgIHByaXZhdGUgX2RpcmVjdGlvblk6IFRpbWVwaWNrZXJEaXJlY3Rpb25ZO1xuICAgIHByaXZhdGUgX2RpcmVjdGlvblg6IFRpbWVwaWNrZXJEaXJlY3Rpb25YO1xuICAgIHByaXZhdGUgX2lucHV0Q29yZHM6IENsaWVudFJlY3Q7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaW5wdXRDb3JkcygpOiBDbGllbnRSZWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGRpcmVjdGlvblkoKTogVGltZXBpY2tlckRpcmVjdGlvblkge1xuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCB7Ym90dG9tLCB0b3B9ID0gdGhpcy5faW5wdXRDb3JkcztcbiAgICAgICAgY29uc3QgaXNFbGVtZW50Rml0ID0gKHdpbmRvdyAmJiB3aW5kb3cuaW5uZXJIZWlnaHQpIC0gYm90dG9tIDwgaGVpZ2h0O1xuICAgICAgICBjb25zdCBpc1RvcCA9IGlzRWxlbWVudEZpdCAmJiB0b3AgPiBoZWlnaHQ7XG4gICAgICAgIGNvbnN0IGlzQ2VudGVyID0gaXNFbGVtZW50Rml0ICYmIHRvcCA8IGhlaWdodDtcblxuICAgICAgICBpZiAoaXNUb3ApIHtcbiAgICAgICAgICAgIHJldHVybiAndG9wJztcbiAgICAgICAgfSBlbHNlIGlmIChpc0NlbnRlcikge1xuICAgICAgICAgICAgcmV0dXJuICdjZW50ZXInO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGlyZWN0aW9uWCgpOiBUaW1lcGlja2VyRGlyZWN0aW9uWCB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3Qge2xlZnQsIHJpZ2h0fSA9IHRoaXMuX2lucHV0Q29yZHM7XG4gICAgY29uc3QgaXNFbGVtZW50Rml0ID0gKHdpbmRvdyAmJiB3aW5kb3cuaW5uZXJXaWR0aCkgLSBsZWZ0IDwgd2lkdGg7XG4gICAgY29uc3QgaXNFbmQgPSBpc0VsZW1lbnRGaXQgJiYgcmlnaHQgPiB3aWR0aDtcbiAgICBjb25zdCBpc0NlbnRlciA9IGlzRWxlbWVudEZpdCAmJiByaWdodCA8IHdpZHRoO1xuXG4gICAgaWYgKGlzRW5kKSB7XG4gICAgICByZXR1cm4gJ2VuZCc7XG4gICAgfSBlbHNlIGlmIChpc0NlbnRlcikge1xuICAgICAgcmV0dXJuICdjZW50ZXInO1xuICAgIH1cbiAgICByZXR1cm4gJ3N0YXJ0JztcbiAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnB1dENvcmRzID0gdGhpcy5pbnB1dENvcmRzO1xuICAgICAgICB0aGlzLl9kaXJlY3Rpb25ZID0gdGhpcy5kaXJlY3Rpb25ZO1xuICAgICAgICB0aGlzLl9kaXJlY3Rpb25YID0gdGhpcy5kaXJlY3Rpb25YO1xuXG4gICAgICAgIHRoaXMuYXBwZW5kKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gICAgY2hhbmdlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICBjb25zdCB7bGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wfSA9IHRoaXMuaW5wdXRDb3JkcztcbiAgICAgIGNvbnN0IHggPSB0aGlzLmRlZmluZUVsZW1lbnRZQnlEaXJlY3Rpb24obGVmdCwgcmlnaHQpO1xuICAgICAgY29uc3QgeSA9IHRoaXMuZGVmaW5lRWxlbWVudFlCeURpcmVjdGlvbih0b3AsIGJvdHRvbSk7XG4gICAgICB0aGlzLnNldFN0eWxlKCdsZWZ0JywgYCR7eH1weGApO1xuICAgICAgdGhpcy5zZXRTdHlsZSgndG9wJywgYCR7eX1weGApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwZW5kKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7bGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wfSA9IHRoaXMuX2lucHV0Q29yZHM7XG5cbiAgICAgICAgY29uc3QgeCA9IHRoaXMuZGVmaW5lRWxlbWVudFhCeURpcmVjdGlvbihsZWZ0LCByaWdodCk7XG4gICAgICAgIGNvbnN0IHkgPSB0aGlzLmRlZmluZUVsZW1lbnRZQnlEaXJlY3Rpb24odG9wLCBib3R0b20pO1xuXG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ2xlZnQnLCBgJHt4fXB4YCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoJ3RvcCcsIGAke3l9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0eWxlKHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsIHN0eWxlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZpbmVFbGVtZW50WUJ5RGlyZWN0aW9uKGlucHV0VG9wOiBudW1iZXIsIGlucHV0Qm90dG9tOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fZGlyZWN0aW9uWSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dFRvcCAtIHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fZGlyZWN0aW9uWSA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dFRvcCAtICh0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlucHV0Qm90dG9tO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmaW5lRWxlbWVudFhCeURpcmVjdGlvbihpbnB1dExlZnQ6IG51bWJlciwgaW5wdXRSaWdodDogbnVtYmVyKSB7XG4gICAgICAvLyBERUJVR1xuICAgICAgLy9jb25zb2xlLmxvZyhcImRlZmluZUVsZW1lbnRYQnlEaXJlY3Rpb24gXCIsIGlucHV0TGVmdCwgaW5wdXRSaWdodCk7XG5cbiAgICAgIGlmICh0aGlzLl9kaXJlY3Rpb25YID09PSAnZW5kJykge1xuICAgICAgICByZXR1cm4gaW5wdXRSaWdodCAtIHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fZGlyZWN0aW9uWCA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0UmlnaHQgLSAodGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoIC8gMik7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5wdXRMZWZ0O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { DEFAULT_KEYMAP } from './numpad.model';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { MatNumpadContainerComponent } from './numpad.container';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./numpad.dom-service";
6
+ export class MatNumpadComponent {
7
+ domService;
8
+ _inputRef;
9
+ _opened = false;
10
+ keymap = DEFAULT_KEYMAP;
11
+ decimal = true;
12
+ appendToInput;
13
+ disableAnimation = false;
14
+ noBackdrop = false;
15
+ position = 'bottom';
16
+ keypress = new EventEmitter();
17
+ closed = new EventEmitter();
18
+ get opened() {
19
+ return this._opened;
20
+ }
21
+ get inputElement() {
22
+ return this._inputRef && this._inputRef.element;
23
+ }
24
+ constructor(domService) {
25
+ this.domService = domService;
26
+ }
27
+ registerInput(input) {
28
+ if (this._inputRef) {
29
+ throw new Error('A Numpad can only be registered to one input.');
30
+ }
31
+ this._inputRef = input;
32
+ }
33
+ open() {
34
+ // Already open. Skip.
35
+ if (this._opened)
36
+ return;
37
+ console.debug('[numpad] Opening numpad...');
38
+ this.domService.appendNumpadToBody(MatNumpadContainerComponent, {
39
+ numpadRef: this,
40
+ decimal: this.decimal,
41
+ keymap: this.keymap,
42
+ inputElement: this.inputElement,
43
+ appendToInput: this.appendToInput,
44
+ disableAnimation: this.disableAnimation,
45
+ noBackdrop: this.noBackdrop,
46
+ position: this.position
47
+ });
48
+ this._opened = true;
49
+ }
50
+ close() {
51
+ console.debug('[numpad] Closing numpad...');
52
+ this.domService.destroyNumpad();
53
+ this._opened = false;
54
+ // Emit close event
55
+ this.closed.next();
56
+ }
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatNumpadComponent, deps: [{ token: i1.MatNumpadDomService }], target: i0.ɵɵFactoryTarget.Component });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MatNumpadComponent, selector: "mat-numpad", inputs: { keymap: "keymap", decimal: "decimal", appendToInput: "appendToInput", disableAnimation: "disableAnimation", noBackdrop: "noBackdrop", position: "position" }, outputs: { keypress: "keypress", closed: "closed" }, ngImport: i0, template: '', isInline: true });
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatNumpadComponent, decorators: [{
61
+ type: Component,
62
+ args: [{
63
+ selector: 'mat-numpad',
64
+ template: '',
65
+ }]
66
+ }], ctorParameters: function () { return [{ type: i1.MatNumpadDomService }]; }, propDecorators: { keymap: [{
67
+ type: Input
68
+ }], decimal: [{
69
+ type: Input
70
+ }], appendToInput: [{
71
+ type: Input
72
+ }], disableAnimation: [{
73
+ type: Input
74
+ }], noBackdrop: [{
75
+ type: Input
76
+ }], position: [{
77
+ type: Input
78
+ }], keypress: [{
79
+ type: Output
80
+ }], closed: [{
81
+ type: Output
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtcGFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQWdELE1BQU0sZ0JBQWdCLENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBTy9ELE1BQU0sT0FBTyxrQkFBa0I7SUEwQm5CO0lBeEJGLFNBQVMsQ0FBa0I7SUFDM0IsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVmLE1BQU0sR0FBb0IsY0FBYyxDQUFDO0lBRXpDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFFZixhQUFhLENBQVU7SUFDdkIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUVuQixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDN0MsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFNUMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1UsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7SUFFekMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFzQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUk7UUFDRixzQkFBc0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFekIsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLEVBQUU7WUFDOUQsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzt3R0FoRVUsa0JBQWtCOzRGQUFsQixrQkFBa0IsK1FBRm5CLEVBQUU7OzRGQUVELGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7MEdBTVUsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RFRkFVTFRfS0VZTUFQLCBNYXROdW1wYWRFdmVudCwgTWF0TnVtcGFkS2V5bWFwLCBNYXROdW1wYWRSZWZ9IGZyb20gJy4vbnVtcGFkLm1vZGVsJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOdW1wYWREaXJlY3RpdmV9IGZyb20gJy4vbnVtcGFkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdE51bXBhZENvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9udW1wYWQuY29udGFpbmVyJztcbmltcG9ydCB7TWF0TnVtcGFkRG9tU2VydmljZX0gZnJvbSAnLi9udW1wYWQuZG9tLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtbnVtcGFkJyxcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXROdW1wYWRDb21wb25lbnQgaW1wbGVtZW50cyBNYXROdW1wYWRSZWYge1xuXG4gIHByaXZhdGUgX2lucHV0UmVmOiBOdW1wYWREaXJlY3RpdmU7XG4gIHByaXZhdGUgX29wZW5lZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGtleW1hcDogTWF0TnVtcGFkS2V5bWFwID0gREVGQVVMVF9LRVlNQVA7XG5cbiAgQElucHV0KCkgZGVjaW1hbCA9IHRydWU7XG5cbiAgQElucHV0KCkgYXBwZW5kVG9JbnB1dDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBub0JhY2tkcm9wID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBvc2l0aW9uID0gJ2JvdHRvbSc7XG5cbiAgQE91dHB1dCgpIGtleXByZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBvcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5lZDtcbiAgfVxuXG4gIGdldCBpbnB1dEVsZW1lbnQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRSZWYgJiYgdGhpcy5faW5wdXRSZWYuZWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZG9tU2VydmljZTogTWF0TnVtcGFkRG9tU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHJlZ2lzdGVySW5wdXQoaW5wdXQ6IE51bXBhZERpcmVjdGl2ZSkge1xuICAgIGlmICh0aGlzLl9pbnB1dFJlZikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE51bXBhZCBjYW4gb25seSBiZSByZWdpc3RlcmVkIHRvIG9uZSBpbnB1dC4nKTtcbiAgICB9XG4gICAgdGhpcy5faW5wdXRSZWYgPSBpbnB1dDtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgLy8gQWxyZWFkeSBvcGVuLiBTa2lwLlxuICAgIGlmICh0aGlzLl9vcGVuZWQpIHJldHVybjtcblxuICAgIGNvbnNvbGUuZGVidWcoJ1tudW1wYWRdIE9wZW5pbmcgbnVtcGFkLi4uJyk7XG5cbiAgICB0aGlzLmRvbVNlcnZpY2UuYXBwZW5kTnVtcGFkVG9Cb2R5KE1hdE51bXBhZENvbnRhaW5lckNvbXBvbmVudCwge1xuICAgICAgbnVtcGFkUmVmOiB0aGlzLFxuICAgICAgZGVjaW1hbDogdGhpcy5kZWNpbWFsLFxuICAgICAga2V5bWFwOiB0aGlzLmtleW1hcCxcbiAgICAgIGlucHV0RWxlbWVudDogdGhpcy5pbnB1dEVsZW1lbnQsXG4gICAgICBhcHBlbmRUb0lucHV0OiB0aGlzLmFwcGVuZFRvSW5wdXQsXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uOiB0aGlzLmRpc2FibGVBbmltYXRpb24sXG4gICAgICBub0JhY2tkcm9wOiB0aGlzLm5vQmFja2Ryb3AsXG4gICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvblxuICAgIH0pO1xuXG4gICAgdGhpcy5fb3BlbmVkID0gdHJ1ZTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tudW1wYWRdIENsb3NpbmcgbnVtcGFkLi4uJyk7XG4gICAgdGhpcy5kb21TZXJ2aWNlLmRlc3Ryb3lOdW1wYWQoKTtcbiAgICB0aGlzLl9vcGVuZWQgPSBmYWxzZTtcblxuICAgIC8vIEVtaXQgY2xvc2UgZXZlbnRcbiAgICB0aGlzLmNsb3NlZC5uZXh0KCk7XG4gIH1cblxuXG59XG4iXX0=
@@ -0,0 +1,203 @@
1
+ import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
2
+ import { MatNumpadEvent } from './numpad.model';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { animate, state, style, transition, trigger } from '@angular/animations';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@ionic/angular";
8
+ import * as i3 from "./numpad.content";
9
+ import * as i4 from "@ngx-translate/core";
10
+ export var AnimationState;
11
+ (function (AnimationState) {
12
+ AnimationState["ENTER"] = "enter";
13
+ AnimationState["ENTER_INPUT"] = "enter-input";
14
+ AnimationState["LEAVE"] = "leave";
15
+ })(AnimationState || (AnimationState = {}));
16
+ export class MatNumpadContainerComponent {
17
+ cd;
18
+ debug = true;
19
+ backdropState = AnimationState.LEAVE;
20
+ modalState;
21
+ panelState;
22
+ numpadRef;
23
+ inputElement;
24
+ columnCount = 4;
25
+ filteredKeymap = new BehaviorSubject(undefined);
26
+ // Config options
27
+ decimal;
28
+ disabled;
29
+ appendToInput;
30
+ keymap;
31
+ disableAnimation;
32
+ noBackdrop;
33
+ position;
34
+ constructor(cd) {
35
+ this.cd = cd;
36
+ if (this.debug)
37
+ console.debug('[numpad-container] Creating component');
38
+ }
39
+ ngOnInit() {
40
+ if (!this.keymap || !this.keymap.length) {
41
+ throw new Error('An invalid \'keymap\' was sent to numpad container');
42
+ }
43
+ if (!this.disableAnimation) {
44
+ if (this.appendToInput) {
45
+ this.panelState = AnimationState.ENTER;
46
+ }
47
+ else {
48
+ this.modalState = AnimationState.ENTER;
49
+ }
50
+ }
51
+ this.noBackdrop = this.noBackdrop || this.appendToInput;
52
+ if (!this.noBackdrop) {
53
+ this.backdropState = AnimationState.ENTER;
54
+ }
55
+ const keymap = this.defineFilteredKeymap();
56
+ this.filteredKeymap.next(keymap);
57
+ // Count columns
58
+ this.columnCount = keymap.reduce((res, row) => row && Math.max(res, row.length), 0);
59
+ if (this.debug)
60
+ console.debug('[numpad-container] columnCount=' + this.columnCount);
61
+ //this.markForCheck();
62
+ }
63
+ ngOnDestroy() {
64
+ }
65
+ onButtonClick(event, keyDef) {
66
+ if (this.debug)
67
+ console.debug('[numpad-container] onKeyPress() ', keyDef.key);
68
+ const customEvent = new MatNumpadEvent('keypress', { key: keyDef.key, target: this.inputElement });
69
+ //{detail: {...keyDef, target: this.inputElement}})
70
+ this.numpadRef.keypress.next(customEvent);
71
+ }
72
+ onKeydown(event) {
73
+ //if (this.debug)
74
+ console.debug('[numpad-container] onKeypress()', event);
75
+ this.numpadRef.keypress.next(event);
76
+ }
77
+ overlayClick(event) {
78
+ this.close();
79
+ }
80
+ close() {
81
+ if (this.disableAnimation) {
82
+ this.numpadRef.close();
83
+ return;
84
+ }
85
+ if (this.modalState)
86
+ this.modalState = AnimationState.LEAVE;
87
+ if (this.panelState)
88
+ this.panelState = AnimationState.LEAVE;
89
+ if (this.backdropState)
90
+ this.backdropState = AnimationState.LEAVE;
91
+ this.markForCheck();
92
+ }
93
+ animationDone(event) {
94
+ if (event.phaseName === 'done' && event.toState === AnimationState.LEAVE) {
95
+ this.numpadRef.close();
96
+ }
97
+ }
98
+ defineFilteredKeymap() {
99
+ let keymap = this.keymap;
100
+ // Replace decimal separator button, by empty
101
+ if (!this.decimal) {
102
+ keymap = keymap.map(row => row.map(item => item && item.key !== '.' && item.key !== ',' ? item : null));
103
+ }
104
+ return keymap;
105
+ }
106
+ markForCheck() {
107
+ this.cd.markForCheck();
108
+ }
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatNumpadContainerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
110
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MatNumpadContainerComponent, selector: "mat-numpad-container", host: { listeners: { "window:keydown": "onKeydown($event)" } }, ngImport: i0, template: "<div class=\"numpad-backdrop-overlay\"\n *ngIf=\"!noBackdrop\"\n (click)=\"overlayClick($event)\"\n [@numpadBackdrop]=\"backdropState\">\n</div>\n<div class=\"numpad-overlay\">\n <mat-numpad-content [appendToInput]=\"appendToInput\"\n [inputElement]=\"inputElement\" cdkTrapFocus>\n <div class=\"numpad {{position}}\"\n [class.panel]=\"appendToInput\"\n [@numpadPanelExpansion]=\"panelState\"\n (@numpadPanelExpansion.done)=\"animationDone($event)\"\n [@numpadFadeIn]=\"modalState\"\n (@numpadFadeIn.done)=\"animationDone($event)\">\n <ion-grid>\n <ion-row *ngFor=\"let row of filteredKeymap | async\">\n <ion-col size=\"{{12/columnCount}}\" *ngFor=\"let item of row\">\n <ion-button mat-button expand=\"block\"\n *ngIf=\"item\"\n [color]=\"item.color || 'secondary'\"\n (click)=\"onButtonClick($event, item)\">\n <ion-icon *ngIf=\"item.icon; else label\" slot=\"icon-only\" [name]=\"item.icon\"></ion-icon>\n <ng-template #label>\n <ion-label>{{ (item.label || item.key) | translate }}</ion-label>\n </ng-template>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </mat-numpad-content>\n</div>\n", styles: [":host{display:inline-block;max-width:300px;--ion-grid-padding: 0;--ion-grid-column-padding: 0;--background-color: white;--padding: 8px}.numpad-backdrop-overlay{position:absolute;inset:0;background:rgba(0,0,0,.32);z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent}.numpad-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1000;pointer-events:none}.numpad{width:300px;border-radius:4px;outline:none;position:static;z-index:1000;pointer-events:auto;background-color:var(--background-color, transparent);padding:var(--padding, 5px);box-shadow:#00000040 0 14px 45px,#00000038 0 10px 18px}.numpad.panel{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.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: i2.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: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i3.MatNumpadContent, selector: "mat-numpad-content", inputs: ["appendToInput", "inputElement"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [
111
+ // Backdrop animation
112
+ trigger('numpadBackdrop', [
113
+ state('*', style({ opacity: 0, background: 'transparent' })),
114
+ state(AnimationState.ENTER, style({ opacity: 1 })),
115
+ state(AnimationState.LEAVE, style({ opacity: 0 })),
116
+ transition(`* => ${AnimationState.ENTER}`, [
117
+ style({ opacity: 0 }),
118
+ animate('0.4s cubic-bezier(0.25, 0.8, 0.25, 1)')
119
+ ]),
120
+ transition(`${AnimationState.ENTER} => ${AnimationState.LEAVE}`, [
121
+ style({ opacity: 1 }),
122
+ animate('0.2s cubic-bezier(0.25, 0.8, 0.25, 1)')
123
+ ])
124
+ ]),
125
+ // Fade in
126
+ trigger('numpadFadeIn', [
127
+ state('*', style({ opacity: 1, transform: 'scale(1)' })),
128
+ state(AnimationState.ENTER, style({ opacity: 1, transform: 'scale(1)' })),
129
+ state(AnimationState.LEAVE, style({ opacity: 0, transform: 'scale(0.9)' })),
130
+ // Modal
131
+ transition(`* => ${AnimationState.ENTER}`, [
132
+ style({ opacity: 0, transform: 'scale(0.6)' }),
133
+ animate('0.2s ease-out')
134
+ ]),
135
+ transition(`${AnimationState.ENTER} => ${AnimationState.LEAVE}`, [
136
+ animate('0.2s ease-out')
137
+ ])
138
+ ]),
139
+ // Panel expansion
140
+ trigger('numpadPanelExpansion', [
141
+ state('*', style({ opacity: 1, transform: 'scaleY(0) translateY(-50%)' })),
142
+ state(AnimationState.ENTER, style({ opacity: 1, transform: 'scale(1) translateY(0)' })),
143
+ state(AnimationState.LEAVE, style({ opacity: 0, transform: 'scale(1) translateY(0)' })),
144
+ // Attach to input
145
+ transition(`* => ${AnimationState.ENTER}`, [
146
+ animate('0.2s ease-out')
147
+ ]),
148
+ transition(`${AnimationState.ENTER} => ${AnimationState.LEAVE}`, [
149
+ animate('0.2s ease-out')
150
+ ])
151
+ ])
152
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
+ }
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatNumpadContainerComponent, decorators: [{
155
+ type: Component,
156
+ args: [{ selector: 'mat-numpad-container', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
157
+ // Backdrop animation
158
+ trigger('numpadBackdrop', [
159
+ state('*', style({ opacity: 0, background: 'transparent' })),
160
+ state(AnimationState.ENTER, style({ opacity: 1 })),
161
+ state(AnimationState.LEAVE, style({ opacity: 0 })),
162
+ transition(`* => ${AnimationState.ENTER}`, [
163
+ style({ opacity: 0 }),
164
+ animate('0.4s cubic-bezier(0.25, 0.8, 0.25, 1)')
165
+ ]),
166
+ transition(`${AnimationState.ENTER} => ${AnimationState.LEAVE}`, [
167
+ style({ opacity: 1 }),
168
+ animate('0.2s cubic-bezier(0.25, 0.8, 0.25, 1)')
169
+ ])
170
+ ]),
171
+ // Fade in
172
+ trigger('numpadFadeIn', [
173
+ state('*', style({ opacity: 1, transform: 'scale(1)' })),
174
+ state(AnimationState.ENTER, style({ opacity: 1, transform: 'scale(1)' })),
175
+ state(AnimationState.LEAVE, style({ opacity: 0, transform: 'scale(0.9)' })),
176
+ // Modal
177
+ transition(`* => ${AnimationState.ENTER}`, [
178
+ style({ opacity: 0, transform: 'scale(0.6)' }),
179
+ animate('0.2s ease-out')
180
+ ]),
181
+ transition(`${AnimationState.ENTER} => ${AnimationState.LEAVE}`, [
182
+ animate('0.2s ease-out')
183
+ ])
184
+ ]),
185
+ // Panel expansion
186
+ trigger('numpadPanelExpansion', [
187
+ state('*', style({ opacity: 1, transform: 'scaleY(0) translateY(-50%)' })),
188
+ state(AnimationState.ENTER, style({ opacity: 1, transform: 'scale(1) translateY(0)' })),
189
+ state(AnimationState.LEAVE, style({ opacity: 0, transform: 'scale(1) translateY(0)' })),
190
+ // Attach to input
191
+ transition(`* => ${AnimationState.ENTER}`, [
192
+ animate('0.2s ease-out')
193
+ ]),
194
+ transition(`${AnimationState.ENTER} => ${AnimationState.LEAVE}`, [
195
+ animate('0.2s ease-out')
196
+ ])
197
+ ])
198
+ ], template: "<div class=\"numpad-backdrop-overlay\"\n *ngIf=\"!noBackdrop\"\n (click)=\"overlayClick($event)\"\n [@numpadBackdrop]=\"backdropState\">\n</div>\n<div class=\"numpad-overlay\">\n <mat-numpad-content [appendToInput]=\"appendToInput\"\n [inputElement]=\"inputElement\" cdkTrapFocus>\n <div class=\"numpad {{position}}\"\n [class.panel]=\"appendToInput\"\n [@numpadPanelExpansion]=\"panelState\"\n (@numpadPanelExpansion.done)=\"animationDone($event)\"\n [@numpadFadeIn]=\"modalState\"\n (@numpadFadeIn.done)=\"animationDone($event)\">\n <ion-grid>\n <ion-row *ngFor=\"let row of filteredKeymap | async\">\n <ion-col size=\"{{12/columnCount}}\" *ngFor=\"let item of row\">\n <ion-button mat-button expand=\"block\"\n *ngIf=\"item\"\n [color]=\"item.color || 'secondary'\"\n (click)=\"onButtonClick($event, item)\">\n <ion-icon *ngIf=\"item.icon; else label\" slot=\"icon-only\" [name]=\"item.icon\"></ion-icon>\n <ng-template #label>\n <ion-label>{{ (item.label || item.key) | translate }}</ion-label>\n </ng-template>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </mat-numpad-content>\n</div>\n", styles: [":host{display:inline-block;max-width:300px;--ion-grid-padding: 0;--ion-grid-column-padding: 0;--background-color: white;--padding: 8px}.numpad-backdrop-overlay{position:absolute;inset:0;background:rgba(0,0,0,.32);z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent}.numpad-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1000;pointer-events:none}.numpad{width:300px;border-radius:4px;outline:none;position:static;z-index:1000;pointer-events:auto;background-color:var(--background-color, transparent);padding:var(--padding, 5px);box-shadow:#00000040 0 14px 45px,#00000038 0 10px 18px}.numpad.panel{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}\n"] }]
199
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { onKeydown: [{
200
+ type: HostListener,
201
+ args: ['window:keydown', ['$event']]
202
+ }] } });
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtcGFkLmNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQuY29udGFpbmVyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5jb250YWluZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBa0IsY0FBYyxFQUE4QyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUUvRixNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLGlDQUFlLENBQUE7SUFDZiw2Q0FBMkIsQ0FBQTtJQUMzQixpQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQW9ERCxNQUFNLE9BQU8sMkJBQTJCO0lBdUIxQjtJQXJCSixLQUFLLEdBQUcsSUFBSSxDQUFDO0lBRXJCLGFBQWEsR0FBbUIsY0FBYyxDQUFDLEtBQUssQ0FBQztJQUNyRCxVQUFVLENBQWlCO0lBQzNCLFVBQVUsQ0FBaUI7SUFDM0IsU0FBUyxDQUFlO0lBQ3hCLFlBQVksQ0FBTTtJQUNsQixXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBRWhCLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsU0FBUyxDQUFDLENBQUM7SUFFakUsaUJBQWlCO0lBQ2pCLE9BQU8sQ0FBVTtJQUNqQixRQUFRLENBQVU7SUFDbEIsYUFBYSxD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b25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdE51bXBhZENvbmZpZywgTWF0TnVtcGFkRXZlbnQsIE1hdE51bXBhZEtleSwgTWF0TnVtcGFkS2V5bWFwLCBNYXROdW1wYWRSZWZ9IGZyb20gJy4vbnVtcGFkLm1vZGVsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7YW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBlbnVtIEFuaW1hdGlvblN0YXRlIHtcbiAgRU5URVIgPSAnZW50ZXInLFxuICBFTlRFUl9JTlBVVCA9ICdlbnRlci1pbnB1dCcsXG4gIExFQVZFID0gJ2xlYXZlJ1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LW51bXBhZC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtcGFkLmNvbnRhaW5lci5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtcGFkLmNvbnRhaW5lci5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgLy8gQmFja2Ryb3AgYW5pbWF0aW9uXG4gICAgdHJpZ2dlcignbnVtcGFkQmFja2Ryb3AnLCBbXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtvcGFjaXR5OiAwLCBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnfSkpLFxuICAgICAgc3RhdGUoQW5pbWF0aW9uU3RhdGUuRU5URVIsIHN0eWxlKHtvcGFjaXR5OiAxfSkpLFxuICAgICAgc3RhdGUoQW5pbWF0aW9uU3RhdGUuTEVBVkUsIHN0eWxlKHtvcGFjaXR5OiAwfSkpLFxuICAgICAgdHJhbnNpdGlvbihgKiA9PiAke0FuaW1hdGlvblN0YXRlLkVOVEVSfWAsIFtcbiAgICAgICAgc3R5bGUoe29wYWNpdHk6IDB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oYCR7QW5pbWF0aW9uU3RhdGUuRU5URVJ9ID0+ICR7QW5pbWF0aW9uU3RhdGUuTEVBVkV9YCwgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDF9KSxcbiAgICAgICAgYW5pbWF0ZSgnMC4ycyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpXG4gICAgICBdKVxuICAgIF0pLFxuXG4gICAgLy8gRmFkZSBpblxuICAgIHRyaWdnZXIoJ251bXBhZEZhZGVJbicsIFtcbiAgICAgIHN0YXRlKCcqJywgc3R5bGUoe29wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEpJ30pKSxcbiAgICAgIHN0YXRlKEFuaW1hdGlvblN0YXRlLkVOVEVSLCBzdHlsZSh7b3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknfSkpLFxuICAgICAgc3RhdGUoQW5pbWF0aW9uU3RhdGUuTEVBVkUsIHN0eWxlKHtvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgwLjkpJ30pKSxcbiAgICAgIC8vIE1vZGFsXG4gICAgICB0cmFuc2l0aW9uKGAqID0+ICR7QW5pbWF0aW9uU3RhdGUuRU5URVJ9YCwgW1xuICAgICAgICBzdHlsZSh7b3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoMC42KSd9KSxcbiAgICAgICAgYW5pbWF0ZSgnMC4ycyBlYXNlLW91dCcpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oYCR7QW5pbWF0aW9uU3RhdGUuRU5URVJ9ID0+ICR7QW5pbWF0aW9uU3RhdGUuTEVBVkV9YCwgW1xuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2Utb3V0JylcbiAgICAgIF0pIF0pLFxuXG4gICAgLy8gUGFuZWwgZXhwYW5zaW9uXG4gICAgdHJpZ2dlcignbnVtcGFkUGFuZWxFeHBhbnNpb24nLCBbXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZVkoMCkgdHJhbnNsYXRlWSgtNTAlKSd9KSksXG4gICAgICBzdGF0ZShBbmltYXRpb25TdGF0ZS5FTlRFUiwgc3R5bGUoe29wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEpIHRyYW5zbGF0ZVkoMCknfSkpLFxuICAgICAgc3RhdGUoQW5pbWF0aW9uU3RhdGUuTEVBVkUsIHN0eWxlKHtvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgxKSB0cmFuc2xhdGVZKDApJ30pKSxcblxuICAgICAgLy8gQXR0YWNoIHRvIGlucHV0XG4gICAgICB0cmFuc2l0aW9uKGAqID0+ICR7QW5pbWF0aW9uU3RhdGUuRU5URVJ9YCwgW1xuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2Utb3V0JylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbihgJHtBbmltYXRpb25TdGF0ZS5FTlRFUn0gPT4gJHtBbmltYXRpb25TdGF0ZS5MRUFWRX1gLCBbXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1vdXQnKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdE51bXBhZENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBNYXROdW1wYWRDb25maWcge1xuXG4gIHByaXZhdGUgZGVidWcgPSB0cnVlO1xuXG4gIGJhY2tkcm9wU3RhdGU6IEFuaW1hdGlvblN0YXRlID0gQW5pbWF0aW9uU3RhdGUuTEVBVkU7XG4gIG1vZGFsU3RhdGU6IEFuaW1hdGlvblN0YXRlO1xuICBwYW5lbFN0YXRlOiBBbmltYXRpb25TdGF0ZTtcbiAgbnVtcGFkUmVmOiBNYXROdW1wYWRSZWY7XG4gIGlucHV0RWxlbWVudDogYW55O1xuICBjb2x1bW5Db3VudCA9IDQ7XG5cbiAgZmlsdGVyZWRLZXltYXAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hdE51bXBhZEtleW1hcD4odW5kZWZpbmVkKTtcblxuICAvLyBDb25maWcgb3B0aW9uc1xuICBkZWNpbWFsOiBib29sZWFuO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgYXBwZW5kVG9JbnB1dDogYm9vbGVhbjtcbiAga2V5bWFwOiBNYXROdW1wYWRLZXltYXA7XG4gIGRpc2FibGVBbmltYXRpb246IGJvb2xlYW47XG4gIG5vQmFja2Ryb3A6IGJvb2xlYW47XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW251bXBhZC1jb250YWluZXJdIENyZWF0aW5nIGNvbXBvbmVudCcpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmtleW1hcCB8fCAhdGhpcy5rZXltYXAubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGludmFsaWQgXFwna2V5bWFwXFwnIHdhcyBzZW50IHRvIG51bXBhZCBjb250YWluZXInKTtcbiAgICB9XG5cblxuICAgIGlmICghdGhpcy5kaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICBpZiAodGhpcy5hcHBlbmRUb0lucHV0KSB7XG4gICAgICAgIHRoaXMucGFuZWxTdGF0ZSA9IEFuaW1hdGlvblN0YXRlLkVOVEVSO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubW9kYWxTdGF0ZSA9IEFuaW1hdGlvblN0YXRlLkVOVEVSO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubm9CYWNrZHJvcCA9IHRoaXMubm9CYWNrZHJvcCB8fCB0aGlzLmFwcGVuZFRvSW5wdXQ7XG4gICAgaWYgKCF0aGlzLm5vQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMuYmFja2Ryb3BTdGF0ZSA9IEFuaW1hdGlvblN0YXRlLkVOVEVSO1xuICAgIH1cblxuICAgIGNvbnN0IGtleW1hcCA9IHRoaXMuZGVmaW5lRmlsdGVyZWRLZXltYXAoKTtcbiAgICB0aGlzLmZpbHRlcmVkS2V5bWFwLm5leHQoa2V5bWFwKTtcblxuICAgIC8vIENvdW50IGNvbHVtbnNcbiAgICB0aGlzLmNvbHVtbkNvdW50ID0ga2V5bWFwLnJlZHVjZSgocmVzLCByb3cpID0+IHJvdyAmJiBNYXRoLm1heChyZXMsIHJvdy5sZW5ndGgpLCAwKTtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW251bXBhZC1jb250YWluZXJdIGNvbHVtbkNvdW50PScgKyB0aGlzLmNvbHVtbkNvdW50KTtcblxuICAgIC8vdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICB9XG5cbiAgb25CdXR0b25DbGljayhldmVudDogRXZlbnQsIGtleURlZjogTWF0TnVtcGFkS2V5KSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tudW1wYWQtY29udGFpbmVyXSBvbktleVByZXNzKCkgJywga2V5RGVmLmtleSk7XG5cbiAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBNYXROdW1wYWRFdmVudCgna2V5cHJlc3MnLCB7a2V5OiBrZXlEZWYua2V5LCB0YXJnZXQ6IHRoaXMuaW5wdXRFbGVtZW50fSk7XG5cbiAgICAgIC8ve2RldGFpbDogey4uLmtleURlZiwgdGFyZ2V0OiB0aGlzLmlucHV0RWxlbWVudH19KVxuICAgIHRoaXMubnVtcGFkUmVmLmtleXByZXNzLm5leHQoY3VzdG9tRXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvL2lmICh0aGlzLmRlYnVnKVxuICAgIGNvbnNvbGUuZGVidWcoJ1tudW1wYWQtY29udGFpbmVyXSBvbktleXByZXNzKCknLCBldmVudCk7XG4gICAgdGhpcy5udW1wYWRSZWYua2V5cHJlc3MubmV4dChldmVudCk7XG4gIH1cblxuICBvdmVybGF5Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLm51bXBhZFJlZi5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZGFsU3RhdGUpIHRoaXMubW9kYWxTdGF0ZSA9IEFuaW1hdGlvblN0YXRlLkxFQVZFO1xuICAgIGlmICh0aGlzLnBhbmVsU3RhdGUpIHRoaXMucGFuZWxTdGF0ZSA9IEFuaW1hdGlvblN0YXRlLkxFQVZFO1xuICAgIGlmICh0aGlzLmJhY2tkcm9wU3RhdGUpIHRoaXMuYmFja2Ryb3BTdGF0ZSA9IEFuaW1hdGlvblN0YXRlLkxFQVZFO1xuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBhbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldmVudC50b1N0YXRlID09PSBBbmltYXRpb25TdGF0ZS5MRUFWRSkge1xuICAgICAgdGhpcy5udW1wYWRSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmaW5lRmlsdGVyZWRLZXltYXAoKTogTWF0TnVtcGFkS2V5bWFwIHtcbiAgICBsZXQga2V5bWFwID0gdGhpcy5rZXltYXA7XG5cbiAgICAvLyBSZXBsYWNlIGRlY2ltYWwgc2VwYXJhdG9yIGJ1dHRvbiwgYnkgZW1wdHlcbiAgICBpZiAoIXRoaXMuZGVjaW1hbCkge1xuICAgICAga2V5bWFwID0ga2V5bWFwLm1hcChyb3cgPT4gcm93Lm1hcChpdGVtID0+IGl0ZW0gJiYgaXRlbS5rZXkgIT09ICcuJyAmJiBpdGVtLmtleSAhPT0gJywnID8gaXRlbSA6IG51bGwpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ga2V5bWFwO1xuICB9XG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibnVtcGFkLWJhY2tkcm9wLW92ZXJsYXlcIlxuICAgICAqbmdJZj1cIiFub0JhY2tkcm9wXCJcbiAgICAgKGNsaWNrKT1cIm92ZXJsYXlDbGljaygkZXZlbnQpXCJcbiAgICAgW0BudW1wYWRCYWNrZHJvcF09XCJiYWNrZHJvcFN0YXRlXCI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJudW1wYWQtb3ZlcmxheVwiPlxuICA8bWF0LW51bXBhZC1jb250ZW50IFthcHBlbmRUb0lucHV0XT1cImFwcGVuZFRvSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dEVsZW1lbnRdPVwiaW5wdXRFbGVtZW50XCIgY2RrVHJhcEZvY3VzPlxuICAgIDxkaXYgY2xhc3M9XCJudW1wYWQge3twb3NpdGlvbn19XCJcbiAgICAgICAgIFtjbGFzcy5wYW5lbF09XCJhcHBlbmRUb0lucHV0XCJcbiAgICAgICAgIFtAbnVtcGFkUGFuZWxFeHBhbnNpb25dPVwicGFuZWxTdGF0ZVwiXG4gICAgICAgICAoQG51bXBhZFBhbmVsRXhwYW5zaW9uLmRvbmUpPVwiYW5pbWF0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgIFtAbnVtcGFkRmFkZUluXT1cIm1vZGFsU3RhdGVcIlxuICAgICAgICAgKEBudW1wYWRGYWRlSW4uZG9uZSk9XCJhbmltYXRpb25Eb25lKCRldmVudClcIj5cbiAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgPGlvbi1yb3cgKm5nRm9yPVwibGV0IHJvdyBvZiBmaWx0ZXJlZEtleW1hcCB8IGFzeW5jXCI+XG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cInt7MTIvY29sdW1uQ291bnR9fVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gbWF0LWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIml0ZW0uY29sb3IgfHwgJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gKm5nSWY9XCJpdGVtLmljb247IGVsc2UgbGFiZWxcIiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiaXRlbS5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsYWJlbD5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbD57eyAoaXRlbS5sYWJlbCB8fCBpdGVtLmtleSkgfCB0cmFuc2xhdGUgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG4gICAgPC9kaXY+XG4gIDwvbWF0LW51bXBhZC1jb250ZW50PlxuPC9kaXY+XG4iXX0=