@sumaris-net/ngx-components 2.6.4 → 2.6.6-rc1

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 (232) hide show
  1. package/doc/changelog.md +6 -0
  2. package/esm2020/public_api.mjs +12 -2
  3. package/esm2020/src/app/admin/services/filter/person.filter.mjs +1 -1
  4. package/esm2020/src/app/admin/services/person.service.mjs +9 -1
  5. package/esm2020/src/app/admin/users/users.mjs +73 -67
  6. package/esm2020/src/app/core/account/account.page.mjs +1 -1
  7. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +44 -8
  8. package/esm2020/src/app/core/form/entity/editor.class.mjs +7 -7
  9. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +4 -3
  10. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +6 -3
  11. package/esm2020/src/app/core/form/form.class.mjs +7 -2
  12. package/esm2020/src/app/core/form/form.utils.mjs +4 -1
  13. package/esm2020/src/app/core/form/properties/properties.table.mjs +1 -1
  14. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +2 -2
  15. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +2 -2
  16. package/esm2020/src/app/core/graphql/graphql.service.mjs +6 -2
  17. package/esm2020/src/app/core/graphql/graphql.utils.mjs +1 -1
  18. package/esm2020/src/app/core/home/home.mjs +12 -10
  19. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -2
  20. package/esm2020/src/app/core/menu/menu.component.mjs +80 -171
  21. package/esm2020/src/app/core/menu/menu.model.mjs +219 -7
  22. package/esm2020/src/app/core/menu/menu.module.mjs +27 -14
  23. package/esm2020/src/app/core/menu/menu.service.mjs +610 -11
  24. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +98 -0
  25. package/esm2020/src/app/core/menu/testing/menu-other.testing.mjs +48 -0
  26. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +121 -0
  27. package/esm2020/src/app/core/menu/testing/menu.testing.module.mjs +79 -0
  28. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -2
  29. package/esm2020/src/app/core/register/register-confirm.page.mjs +3 -3
  30. package/esm2020/src/app/core/register/register.form.mjs +21 -19
  31. package/esm2020/src/app/core/services/account.service.mjs +9 -15
  32. package/esm2020/src/app/core/services/base-entity-service.class.mjs +1 -1
  33. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +2 -4
  34. package/esm2020/src/app/core/services/config.service.mjs +23 -22
  35. package/esm2020/src/app/core/services/crypto.service.mjs +14 -21
  36. package/esm2020/src/app/core/services/local-settings.service.mjs +12 -1
  37. package/esm2020/src/app/core/services/model/account.model.mjs +27 -2
  38. package/esm2020/src/app/core/services/model/config.model.mjs +1 -1
  39. package/esm2020/src/app/core/services/model/department.model.mjs +1 -1
  40. package/esm2020/src/app/core/services/model/entity.decorators.mjs +1 -1
  41. package/esm2020/src/app/core/services/model/entity.model.mjs +20 -35
  42. package/esm2020/src/app/core/services/model/filter.model.mjs +3 -1
  43. package/esm2020/src/app/core/services/model/peer.model.mjs +1 -1
  44. package/esm2020/src/app/core/services/model/person.model.mjs +5 -1
  45. package/esm2020/src/app/core/services/model/referential.model.mjs +3 -3
  46. package/esm2020/src/app/core/services/model/token.model.mjs +1 -1
  47. package/esm2020/src/app/core/services/model/tree-item-entity.model.mjs +199 -0
  48. package/esm2020/src/app/core/services/network.service.mjs +12 -8
  49. package/esm2020/src/app/core/services/network.utils.mjs +1 -1
  50. package/esm2020/src/app/core/services/platform.service.mjs +15 -16
  51. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +10 -10
  52. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  53. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  54. package/esm2020/src/app/core/settings/settings.page.mjs +2 -2
  55. package/esm2020/src/app/core/table/async-table.class.mjs +4 -3
  56. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +1 -1
  57. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +1 -1
  58. package/esm2020/src/app/core/table/table-select-columns.component.mjs +1 -1
  59. package/esm2020/src/app/core/table/table.class.mjs +19 -14
  60. package/esm2020/src/app/core/table/table.utils.mjs +6 -3
  61. package/esm2020/src/app/core/table/testing/table.testing.mjs +3 -2
  62. package/esm2020/src/app/shared/audio/audio.mjs +5 -5
  63. package/esm2020/src/app/shared/capacitor/plugins.mjs +1 -1
  64. package/esm2020/src/app/shared/dates.mjs +3 -1
  65. package/esm2020/src/app/shared/debug/debug.component.mjs +1 -1
  66. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +5 -4
  67. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +1 -1
  68. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +1 -1
  69. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +1 -1
  70. package/esm2020/src/app/shared/events.mjs +2 -1
  71. package/esm2020/src/app/shared/file/csv.utils.mjs +12 -14
  72. package/esm2020/src/app/shared/file/file.utils.mjs +2 -2
  73. package/esm2020/src/app/shared/file/images.utils.mjs +2 -2
  74. package/esm2020/src/app/shared/file/json.utils.mjs +3 -3
  75. package/esm2020/src/app/shared/file/uri.utils.mjs +2 -1
  76. package/esm2020/src/app/shared/form/field.component.mjs +28 -3
  77. package/esm2020/src/app/shared/forms.mjs +48 -30
  78. package/esm2020/src/app/shared/functions.mjs +7 -2
  79. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +1 -1
  80. package/esm2020/src/app/shared/help/help.modal.mjs +1 -1
  81. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +9 -6
  82. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  83. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +1 -1
  84. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +2 -2
  85. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +1 -1
  86. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +1 -1
  87. package/esm2020/src/app/shared/logging/logger.model.mjs +1 -1
  88. package/esm2020/src/app/shared/logging/logging-service.class.mjs +2 -2
  89. package/esm2020/src/app/shared/logging/logging-service.config.mjs +1 -1
  90. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +10 -10
  91. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +4 -6
  92. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +1 -1
  93. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +8 -3
  94. package/esm2020/src/app/shared/material/badge/badge.test.mjs +2 -2
  95. package/esm2020/src/app/shared/material/chips/material.chips.mjs +9 -10
  96. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  97. package/esm2020/src/app/shared/material/datetime/material.date.mjs +2 -2
  98. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  99. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  100. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +1 -1
  101. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +1 -1
  102. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +1 -1
  103. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  104. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +5 -4
  105. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +1 -1
  106. package/esm2020/src/app/shared/material/material.animations.mjs +41 -2
  107. package/esm2020/src/app/shared/material/material.testing.module.mjs +2 -2
  108. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +1 -1
  109. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +1 -1
  110. package/esm2020/src/app/shared/modules.mjs +2 -1
  111. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  112. package/esm2020/src/app/shared/observables.mjs +3 -2
  113. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -1
  114. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +1 -1
  115. package/esm2020/src/app/shared/pipes/form.pipes.mjs +1 -1
  116. package/esm2020/src/app/shared/pipes/property.pipes.mjs +1 -1
  117. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +1 -1
  118. package/esm2020/src/app/shared/platforms.mjs +1 -1
  119. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +3 -1
  120. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +5 -6
  121. package/esm2020/src/app/shared/services/startable-service.class.mjs +1 -1
  122. package/esm2020/src/app/shared/services/translate-context.service.mjs +11 -13
  123. package/esm2020/src/app/shared/services/validator-service.class.mjs +1 -1
  124. package/esm2020/src/app/shared/shared-routing.module.mjs +2 -1
  125. package/esm2020/src/app/shared/shared.testing.module.mjs +16 -8
  126. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +3 -3
  127. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +5 -18
  128. package/esm2020/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +35 -0
  129. package/esm2020/src/app/shared/storage/storage-explorer.testing.module.mjs +33 -0
  130. package/esm2020/src/app/shared/storage/storage.service.mjs +3 -3
  131. package/esm2020/src/app/shared/storage/storage.utils.mjs +1 -1
  132. package/esm2020/src/app/shared/testing/observable.test.mjs +2 -2
  133. package/esm2020/src/app/shared/testing/tests.page.mjs +1 -1
  134. package/esm2020/src/app/shared/toast/toast.testing.mjs +1 -1
  135. package/esm2020/src/app/shared/toast/toasts.mjs +2 -2
  136. package/esm2020/src/app/shared/toolbar/toolbar.mjs +1 -1
  137. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +2 -1
  138. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +1 -1
  139. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +5 -5
  140. package/esm2020/src/app/shared/validator/validators.mjs +10 -3
  141. package/esm2020/src/app/shared/version/versions.mjs +2 -2
  142. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +2 -2
  143. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +1 -1
  144. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +1 -1
  145. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +1 -1
  146. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  147. package/esm2020/src/app/social/message/message.form.mjs +11 -8
  148. package/esm2020/src/app/social/message/message.modal.mjs +1 -1
  149. package/esm2020/src/app/social/message/message.model.mjs +1 -1
  150. package/esm2020/src/app/social/message/message.service.mjs +2 -2
  151. package/esm2020/src/app/social/social.module.mjs +2 -2
  152. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +5 -5
  153. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +1 -1
  154. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +1 -1
  155. package/esm2020/src/app/social/user-event/user-event.model.mjs +1 -1
  156. package/esm2020/src/app/social/user-event/user-event.service.mjs +4 -3
  157. package/fesm2015/sumaris-net.ngx-components.mjs +2758 -1263
  158. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  159. package/fesm2020/sumaris-net.ngx-components.mjs +2687 -1223
  160. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  161. package/package.json +8 -9
  162. package/public_api.d.ts +11 -1
  163. package/src/app/admin/services/person.service.d.ts +5 -0
  164. package/src/app/admin/users/users.d.ts +4 -2
  165. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +14 -2
  166. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -0
  167. package/src/app/core/form/form.class.d.ts +2 -0
  168. package/src/app/core/form/form.utils.d.ts +4 -1
  169. package/src/app/core/form/text-popover/text-popover.component.d.ts +2 -1
  170. package/src/app/core/graphql/graphql.service.d.ts +5 -4
  171. package/src/app/core/graphql/graphql.utils.d.ts +2 -2
  172. package/src/app/core/home/home.d.ts +11 -10
  173. package/src/app/core/install/install-upgrade-card.component.d.ts +3 -2
  174. package/src/app/core/menu/menu.component.d.ts +29 -26
  175. package/src/app/core/menu/menu.model.d.ts +123 -6
  176. package/src/app/core/menu/menu.module.d.ts +8 -4
  177. package/src/app/core/menu/menu.service.d.ts +76 -5
  178. package/src/app/core/menu/sub-menu-tab.directive.d.ts +29 -0
  179. package/src/app/core/menu/testing/menu-other.testing.d.ts +15 -0
  180. package/src/app/core/menu/testing/menu.testing.d.ts +43 -0
  181. package/src/app/core/menu/testing/menu.testing.module.d.ts +12 -0
  182. package/src/app/core/peer/select-peer.modal.d.ts +4 -3
  183. package/src/app/core/register/register.form.d.ts +3 -2
  184. package/src/app/core/services/account.service.d.ts +4 -3
  185. package/src/app/core/services/config.service.d.ts +5 -3
  186. package/src/app/core/services/crypto.service.d.ts +7 -7
  187. package/src/app/core/services/local-settings.service.d.ts +1 -0
  188. package/src/app/core/services/model/account.model.d.ts +7 -1
  189. package/src/app/core/services/model/entity.model.d.ts +5 -8
  190. package/src/app/core/services/model/filter.model.d.ts +2 -0
  191. package/src/app/core/services/model/person.model.d.ts +1 -0
  192. package/src/app/core/services/model/tree-item-entity.model.d.ts +53 -0
  193. package/src/app/core/services/network.service.d.ts +4 -3
  194. package/src/app/core/services/platform.service.d.ts +4 -5
  195. package/src/app/core/services/storage/entities-storage.service.d.ts +3 -3
  196. package/src/app/core/settings/settings.page.d.ts +5 -5
  197. package/src/app/core/table/async-table.class.d.ts +1 -0
  198. package/src/app/core/table/table.class.d.ts +5 -1
  199. package/src/app/core/table/testing/table.testing.d.ts +1 -0
  200. package/src/app/shared/dates.d.ts +2 -0
  201. package/src/app/shared/events.d.ts +1 -0
  202. package/src/app/shared/file/uri.utils.d.ts +1 -0
  203. package/src/app/shared/form/field.component.d.ts +1 -0
  204. package/src/app/shared/forms.d.ts +4 -1
  205. package/src/app/shared/functions.d.ts +1 -0
  206. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -0
  207. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  208. package/src/app/shared/material/datetime/material.dateshort.d.ts +1 -1
  209. package/src/app/shared/material/latlong/material.latlong.d.ts +1 -0
  210. package/src/app/shared/material/material.animations.d.ts +2 -0
  211. package/src/app/shared/modules.d.ts +1 -0
  212. package/src/app/shared/observables.d.ts +1 -0
  213. package/src/app/shared/pipes/translate-context.pipe.d.ts +1 -1
  214. package/src/app/shared/services/memory-entity-service.class.d.ts +2 -0
  215. package/src/app/shared/services/startable-observable-service.class.d.ts +1 -1
  216. package/src/app/shared/services/translate-context.service.d.ts +2 -2
  217. package/src/app/shared/services/validator-service.class.d.ts +1 -0
  218. package/src/app/shared/shared-routing.module.d.ts +1 -0
  219. package/src/app/shared/shared.testing.module.d.ts +3 -2
  220. package/src/app/shared/storage/storage-explorer.component.d.ts +2 -2
  221. package/src/app/shared/storage/storage-explorer.module.d.ts +5 -8
  222. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +9 -0
  223. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +10 -0
  224. package/src/app/shared/storage/storage.service.d.ts +0 -1
  225. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +1 -0
  226. package/src/app/shared/validator/validators.d.ts +4 -0
  227. package/src/app/social/user-event/user-event.model.d.ts +1 -2
  228. package/src/assets/i18n/en-US.json +1 -0
  229. package/src/assets/i18n/en.json +1 -0
  230. package/src/assets/i18n/fr.json +10 -1
  231. package/src/assets/manifest.json +1 -1
  232. package/src/theme/_ngx-components.scss +2 -1
@@ -94,7 +94,7 @@ export class LatLongTestPage {
94
94
  }
95
95
  }
96
96
  LatLongTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LatLongTestPage, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.PlatformService }], target: i0.ɵɵFactoryTarget.Component });
97
- LatLongTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LatLongTestPage, selector: "app-latlong-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Lat/Long field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!-- Empty value -->\n <form *ngIf=\"form|formGetGroup:'empty' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Empty, with defaults</h4></ion-text></ion-col></ion-row>\n\n <ion-row >\n\n <!-- DD Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD, defaultSign '-'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{formGroup.value|json}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button matSuffix mat-icon-button (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n <ion-row *ngIf=\"geoPositionMessage\">\n <ion-col>{{geoPositionMessage}}</ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMM Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM, defaultSign '+'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Latitude\">\n\n <mat-icon matPrefix >room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n </form>\n\n <form *ngIf=\"form|formGetGroup:'enable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <!-- With value -->\n <ion-row><ion-col><ion-text><h4>With value</h4></ion-text></ion-col></ion-row>\n\n <ion-row>\n\n <!-- DD -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMMSS\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <!-- Disable -->\n <form *ngIf=\"form|formGetGroup:'disable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Disabled control</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly (control is enable)\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n </mat-checkbox>\n\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field #readonlyField [formControl]=\"form|formGetControl: 'enable.latitude'\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\"\n [readonly]=\"true\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n </form>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i4.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i4.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i4.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: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonRow, selector: "ion-row" }, { kind: "component", type: i4.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLatLongField, selector: "mat-latlong-field", inputs: ["formControl", "formControlName", "type", "latLongPattern", "required", "floatLabel", "appearance", "placeholder", "tabindex", "defaultSign", "maxDecimals", "placeholderChar", "readonly"], outputs: ["onBlur", "onFocus"] }, { kind: "pipe", type: i3.JsonPipe, name: "json" }, { kind: "pipe", type: i10.FormGetControlPipe, name: "formGetControl" }, { kind: "pipe", type: i10.FormGetGroupPipe, name: "formGetGroup" }] });
97
+ LatLongTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LatLongTestPage, selector: "app-latlong-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Lat/Long field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!-- Empty value -->\n <form *ngIf=\"form|formGetGroup:'empty' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Empty, with defaults</h4></ion-text></ion-col></ion-row>\n\n <ion-row >\n\n <!-- DD Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD, defaultSign '-'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{formGroup.value|json}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button matSuffix mat-icon-button (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n <ion-row *ngIf=\"geoPositionMessage\">\n <ion-col>{{geoPositionMessage}}</ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMM Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM, defaultSign '+'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Latitude\">\n\n <mat-icon matPrefix >room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n </form>\n\n <form *ngIf=\"form|formGetGroup:'enable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <!-- With value -->\n <ion-row><ion-col><ion-text><h4>With value</h4></ion-text></ion-col></ion-row>\n\n <ion-row>\n\n <!-- DD -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMMSS\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <!-- Disable -->\n <form *ngIf=\"form|formGetGroup:'disable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Disabled control</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly (control is enable)\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n </mat-checkbox>\n\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field #readonlyField [formControl]=\"form|formGetControl: 'enable.latitude'\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\"\n [readonly]=\"true\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n </form>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i4.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i4.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i4.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: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonRow, selector: "ion-row" }, { kind: "component", type: i4.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLatLongField, selector: "mat-latlong-field", inputs: ["formControl", "formControlName", "type", "latLongPattern", "required", "floatLabel", "appearance", "placeholder", "tabindex", "defaultSign", "maxDecimals", "placeholderChar", "readonly"], outputs: ["onBlur", "onFocus"] }, { kind: "pipe", type: i3.JsonPipe, name: "json" }, { kind: "pipe", type: i10.FormGetControlPipe, name: "formGetControl" }, { kind: "pipe", type: i10.FormGetGroupPipe, name: "formGetGroup" }] });
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LatLongTestPage, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'app-latlong-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Lat/Long field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!-- Empty value -->\n <form *ngIf=\"form|formGetGroup:'empty' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Empty, with defaults</h4></ion-text></ion-col></ion-row>\n\n <ion-row >\n\n <!-- DD Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD, defaultSign '-'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{formGroup.value|json}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button matSuffix mat-icon-button (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n <ion-row *ngIf=\"geoPositionMessage\">\n <ion-col>{{geoPositionMessage}}</ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMM Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM, defaultSign '+'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Latitude\">\n\n <mat-icon matPrefix >room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n </form>\n\n <form *ngIf=\"form|formGetGroup:'enable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <!-- With value -->\n <ion-row><ion-col><ion-text><h4>With value</h4></ion-text></ion-col></ion-row>\n\n <ion-row>\n\n <!-- DD -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMMSS\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <!-- Disable -->\n <form *ngIf=\"form|formGetGroup:'disable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Disabled control</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly (control is enable)\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n </mat-checkbox>\n\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field #readonlyField [formControl]=\"form|formGetControl: 'enable.latitude'\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\"\n [readonly]=\"true\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n </form>\n\n</ion-content>\n" }]
@@ -8,7 +8,16 @@ trigger('fadeInAnimation', [
8
8
  // css styles at start of transition
9
9
  style({ opacity: 0 }),
10
10
  // animation and styles at end of transition
11
- animate('.3s', style({ opacity: 1 }))
11
+ animate('.3s', style({ opacity: 1 })),
12
+ ]),
13
+ ]);
14
+ export const fadeInSlowAnimation = trigger('fadeInSlowAnimation', [
15
+ // route 'enter' transition
16
+ transition(':enter', [
17
+ // css styles at start of transition
18
+ style({ opacity: 0 }),
19
+ // animation and styles at end of transition
20
+ animate('.5s', style({ opacity: 1 })),
12
21
  ]),
13
22
  ]);
14
23
  export const fadeInOutAnimation =
@@ -29,6 +38,36 @@ trigger('fadeInOutAnimation', [
29
38
  }))
30
39
  ]),
31
40
  ]);
41
+ export const slideInAnimation = trigger('slideInAnimation', [
42
+ // end state styles for route container (host)
43
+ state('*', style({
44
+ // the view covers the whole screen with a semi tranparent background
45
+ position: 'relative',
46
+ top: 0,
47
+ left: 0,
48
+ right: 0,
49
+ bottom: 0,
50
+ opacity: 1
51
+ })),
52
+ // route 'enter' transition
53
+ transition(':enter', [
54
+ // styles at start of transition
55
+ style({
56
+ // start with the content positioned off the right of the screen,
57
+ // -400% is required instead of -100% because the negative position adds to the width of the element
58
+ left: '400%',
59
+ // start with background opacity set to 0 (invisible)
60
+ opacity: 0
61
+ }),
62
+ // animation and styles at end of transition
63
+ animate('.3s ease-in-out', style({
64
+ // transition the right position to 0 which slides the content into view
65
+ left: 0,
66
+ // transition the background opacity to 0.8 to fade it in
67
+ opacity: 0.8
68
+ }))
69
+ ]),
70
+ ]);
32
71
  export const slideInOutAnimation =
33
72
  // trigger name for attaching this animation to an element using the [@triggerName] syntax
34
73
  trigger('slideInOutAnimation', [
@@ -101,4 +140,4 @@ trigger('slideUpDownAnimation', [
101
140
  }))
102
141
  ])
103
142
  ]);
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkVBQTZFO0FBQzdFLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sZUFBZTtBQUN4QiwwRkFBMEY7QUFDMUYsT0FBTyxDQUFDLGlCQUFpQixFQUFFO0lBRXZCLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBRWpCLG9DQUFvQztRQUNwQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFckIsNENBQTRDO1FBQzVDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDeEMsQ0FBQztDQUNMLENBQUMsQ0FBQztBQUVQLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQjtBQUMzQiwwRkFBMEY7QUFDMUYsT0FBTyxDQUFDLG9CQUFvQixFQUFFO0lBRTFCLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBRWpCLG9DQUFvQztRQUNwQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFckIsNENBQTRDO1FBQzVDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDeEMsQ0FBQztJQUVGLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ2pCLDRDQUE0QztRQUM1QyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO0tBQ04sQ0FBQztDQUNMLENBQUMsQ0FBQztBQUVQLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQjtBQUM1QiwwRkFBMEY7QUFDMUYsT0FBTyxDQUFDLHFCQUFxQixFQUFFO0lBRTNCLDhDQUE4QztJQUM5QyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztRQUNiLHFFQUFxRTtRQUNyRSxRQUFRLEVBQUUsVUFBVTtRQUNwQixHQUFHLEVBQUUsQ0FBQztRQUNOLElBQUksRUFBRSxDQUFDO1FBQ1AsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxDQUFDO0tBQ2IsQ0FBQyxDQUFDO0lBRUgsMkJBQTJCO0lBQzNCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFFakIsZ0NBQWdDO1FBQ2hDLEtBQUssQ0FBQztZQUNGLGlFQUFpRTtZQUNqRSxvR0FBb0c7WUFDcEcsSUFBSSxFQUFFLE1BQU07WUFFWixxREFBcUQ7WUFDckQsT0FBTyxFQUFFLENBQUM7U0FDYixDQUFDO1FBRUYsNENBQTRDO1FBQzVDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUM7WUFDN0Isd0VBQXdFO1lBQ3hFLElBQUksRUFBRSxDQUFDO1lBRVAseURBQXlEO1lBQ3pELE9BQU8sRUFBRSxHQUFHO1NBQ2YsQ0FBQyxDQUFDO0tBQ04sQ0FBQztJQUVGLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ2pCLDRDQUE0QztRQUM1QyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDO1lBQzdCLDhFQUE4RTtZQUM5RSxJQUFJLEVBQUUsTUFBTTtZQUVaLHdEQUF3RDtZQUN4RCxPQUFPLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQztLQUNOLENBQUM7Q0FDTCxDQUFDLENBQUM7QUFFUCxNQUFNLENBQUMsTUFBTSxvQkFBb0I7QUFDL0IsMEZBQTBGO0FBQzFGLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtJQUU5Qiw4Q0FBOEM7SUFDOUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7UUFDZixTQUFTLEVBQUUsZUFBZTtRQUMxQixPQUFPLEVBQUUsQ0FBQztLQUNYLENBQUMsQ0FBQztJQUVILDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBRW5CLGdDQUFnQztRQUNoQyxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsbUJBQW1CO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztRQUVGLDRDQUE0QztRQUM1QyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDO1lBQy9CLFNBQVMsRUFBRSxlQUFlO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQyxDQUFDO0tBQ0osQ0FBQztJQUVGLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLDRDQUE0QztRQUM1QyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDO1lBQy9CLFNBQVMsRUFBRSxtQkFBbUI7WUFDOUIsT0FBTyxFQUFFLENBQUM7U0FDWCxDQUFDLENBQUM7S0FDSixDQUFDO0NBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHRoZSByZXF1aXJlZCBhbmltYXRpb24gZnVuY3Rpb25zIGZyb20gdGhlIGFuZ3VsYXIgYW5pbWF0aW9ucyBtb2R1bGVcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGZhZGVJbkFuaW1hdGlvbiA9XG4gICAgLy8gdHJpZ2dlciBuYW1lIGZvciBhdHRhY2hpbmcgdGhpcyBhbmltYXRpb24gdG8gYW4gZWxlbWVudCB1c2luZyB0aGUgW0B0cmlnZ2VyTmFtZV0gc3ludGF4XG4gICAgdHJpZ2dlcignZmFkZUluQW5pbWF0aW9uJywgW1xuXG4gICAgICAgIC8vIHJvdXRlICdlbnRlcicgdHJhbnNpdGlvblxuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG5cbiAgICAgICAgICAgIC8vIGNzcyBzdHlsZXMgYXQgc3RhcnQgb2YgdHJhbnNpdGlvblxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuXG4gICAgICAgICAgICAvLyBhbmltYXRpb24gYW5kIHN0eWxlcyBhdCBlbmQgb2YgdHJhbnNpdGlvblxuICAgICAgICAgICAgYW5pbWF0ZSgnLjNzJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxuICAgICAgICBdKSxcbiAgICBdKTtcblxuZXhwb3J0IGNvbnN0IGZhZGVJbk91dEFuaW1hdGlvbiA9XG4gICAgLy8gdHJpZ2dlciBuYW1lIGZvciBhdHRhY2hpbmcgdGhpcyBhbmltYXRpb24gdG8gYW4gZWxlbWVudCB1c2luZyB0aGUgW0B0cmlnZ2VyTmFtZV0gc3ludGF4XG4gICAgdHJpZ2dlcignZmFkZUluT3V0QW5pbWF0aW9uJywgW1xuXG4gICAgICAgIC8vIHJvdXRlICdlbnRlcicgdHJhbnNpdGlvblxuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG5cbiAgICAgICAgICAgIC8vIGNzcyBzdHlsZXMgYXQgc3RhcnQgb2YgdHJhbnNpdGlvblxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuXG4gICAgICAgICAgICAvLyBhbmltYXRpb24gYW5kIHN0eWxlcyBhdCBlbmQgb2YgdHJhbnNpdGlvblxuICAgICAgICAgICAgYW5pbWF0ZSgnLjNzJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxuICAgICAgICBdKSxcblxuICAgICAgICAvLyByb3V0ZSAnbGVhdmUnIHRyYW5zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgLy8gYW5pbWF0aW9uIGFuZCBzdHlsZXMgYXQgZW5kIG9mIHRyYW5zaXRpb25cbiAgICAgICAgICAgIGFuaW1hdGUoJy41cyBlYXNlLWluLW91dCcsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgXSksXG4gICAgXSk7XG5cbmV4cG9ydCBjb25zdCBzbGlkZUluT3V0QW5pbWF0aW9uID1cbiAgICAvLyB0cmlnZ2VyIG5hbWUgZm9yIGF0dGFjaGluZyB0aGlzIGFuaW1hdGlvbiB0byBhbiBlbGVtZW50IHVzaW5nIHRoZSBbQHRyaWdnZXJOYW1lXSBzeW50YXhcbiAgICB0cmlnZ2VyKCdzbGlkZUluT3V0QW5pbWF0aW9uJywgW1xuXG4gICAgICAgIC8vIGVuZCBzdGF0ZSBzdHlsZXMgZm9yIHJvdXRlIGNvbnRhaW5lciAoaG9zdClcbiAgICAgICAgc3RhdGUoJyonLCBzdHlsZSh7XG4gICAgICAgICAgICAvLyB0aGUgdmlldyBjb3ZlcnMgdGhlIHdob2xlIHNjcmVlbiB3aXRoIGEgc2VtaSB0cmFucGFyZW50IGJhY2tncm91bmRcbiAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgb3BhY2l0eTogMVxuICAgICAgICB9KSksXG5cbiAgICAgICAgLy8gcm91dGUgJ2VudGVyJyB0cmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcblxuICAgICAgICAgICAgLy8gc3R5bGVzIGF0IHN0YXJ0IG9mIHRyYW5zaXRpb25cbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAvLyBzdGFydCB3aXRoIHRoZSBjb250ZW50IHBvc2l0aW9uZWQgb2ZmIHRoZSByaWdodCBvZiB0aGUgc2NyZWVuLFxuICAgICAgICAgICAgICAgIC8vIC00MDAlIGlzIHJlcXVpcmVkIGluc3RlYWQgb2YgLTEwMCUgYmVjYXVzZSB0aGUgbmVnYXRpdmUgcG9zaXRpb24gYWRkcyB0byB0aGUgd2lkdGggb2YgdGhlIGVsZW1lbnRcbiAgICAgICAgICAgICAgICBsZWZ0OiAnNDAwJScsXG5cbiAgICAgICAgICAgICAgICAvLyBzdGFydCB3aXRoIGJhY2tncm91bmQgb3BhY2l0eSBzZXQgdG8gMCAoaW52aXNpYmxlKVxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBhbmltYXRpb24gYW5kIHN0eWxlcyBhdCBlbmQgb2YgdHJhbnNpdGlvblxuICAgICAgICAgICAgYW5pbWF0ZSgnLjNzIGVhc2UtaW4tb3V0Jywgc3R5bGUoe1xuICAgICAgICAgICAgICAgIC8vIHRyYW5zaXRpb24gdGhlIHJpZ2h0IHBvc2l0aW9uIHRvIDAgd2hpY2ggc2xpZGVzIHRoZSBjb250ZW50IGludG8gdmlld1xuICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG5cbiAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uIHRoZSBiYWNrZ3JvdW5kIG9wYWNpdHkgdG8gMC44IHRvIGZhZGUgaXQgaW5cbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjhcbiAgICAgICAgICAgIH0pKVxuICAgICAgICBdKSxcblxuICAgICAgICAvLyByb3V0ZSAnbGVhdmUnIHRyYW5zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgLy8gYW5pbWF0aW9uIGFuZCBzdHlsZXMgYXQgZW5kIG9mIHRyYW5zaXRpb25cbiAgICAgICAgICAgIGFuaW1hdGUoJy41cyBlYXNlLWluLW91dCcsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uIHRoZSByaWdodCBwb3NpdGlvbiB0byAtNDAwJSB3aGljaCBzbGlkZXMgdGhlIGNvbnRlbnQgb3V0IG9mIHZpZXdcbiAgICAgICAgICAgICAgICBsZWZ0OiAnNDAwJScsXG5cbiAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uIHRoZSBiYWNrZ3JvdW5kIG9wYWNpdHkgdG8gMCB0byBmYWRlIGl0IG91dFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgIH0pKVxuICAgICAgICBdKVxuICAgIF0pO1xuXG5leHBvcnQgY29uc3Qgc2xpZGVVcERvd25BbmltYXRpb24gPVxuICAvLyB0cmlnZ2VyIG5hbWUgZm9yIGF0dGFjaGluZyB0aGlzIGFuaW1hdGlvbiB0byBhbiBlbGVtZW50IHVzaW5nIHRoZSBbQHRyaWdnZXJOYW1lXSBzeW50YXhcbiAgdHJpZ2dlcignc2xpZGVVcERvd25BbmltYXRpb24nLCBbXG5cbiAgICAvLyBlbmQgc3RhdGUgc3R5bGVzIGZvciByb3V0ZSBjb250YWluZXIgKGhvc3QpXG4gICAgc3RhdGUoJyonLCBzdHlsZSh7XG4gICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyxcbiAgICAgIG9wYWNpdHk6IDFcbiAgICB9KSksXG5cbiAgICAvLyByb3V0ZSAnZW50ZXInIHRyYW5zaXRpb25cbiAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG5cbiAgICAgIC8vIHN0eWxlcyBhdCBzdGFydCBvZiB0cmFuc2l0aW9uXG4gICAgICBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTQwMCUpJyxcbiAgICAgICAgb3BhY2l0eTogMFxuICAgICAgfSksXG5cbiAgICAgIC8vIGFuaW1hdGlvbiBhbmQgc3R5bGVzIGF0IGVuZCBvZiB0cmFuc2l0aW9uXG4gICAgICBhbmltYXRlKCcuM3MgZWFzZS1pbi1vdXQnLCBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLFxuICAgICAgICBvcGFjaXR5OiAxXG4gICAgICB9KSlcbiAgICBdKSxcblxuICAgIC8vIHJvdXRlICdsZWF2ZScgdHJhbnNpdGlvblxuICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgIC8vIGFuaW1hdGlvbiBhbmQgc3R5bGVzIGF0IGVuZCBvZiB0cmFuc2l0aW9uXG4gICAgICBhbmltYXRlKCcuNXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJyxcbiAgICAgICAgb3BhY2l0eTogMFxuICAgICAgfSkpXG4gICAgXSlcbiAgXSk7XG5cblxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkVBQTZFO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sZUFBZTtBQUMxQiwwRkFBMEY7QUFDMUYsT0FBTyxDQUFDLGlCQUFpQixFQUFFO0lBQ3pCLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLG9DQUFvQztRQUNwQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFckIsNENBQTRDO1FBQzVDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDdEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUM5QixPQUFPLENBQUMscUJBQXFCLEVBQUU7SUFDN0IsMkJBQTJCO0lBQzNCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDbkIsb0NBQW9DO1FBQ3BDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUVyQiw0Q0FBNEM7UUFDNUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUN0QyxDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRUwsTUFBTSxDQUFDLE1BQU0sa0JBQWtCO0FBQzNCLDBGQUEwRjtBQUMxRixPQUFPLENBQUMsb0JBQW9CLEVBQUU7SUFFMUIsMkJBQTJCO0lBQzNCLFVBQVUsQ0FBQyxRQUFRLEVB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LENBQUM7SUFFSCwyQkFBMkI7SUFDM0IsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUVuQixnQ0FBZ0M7UUFDaEMsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLG1CQUFtQjtZQUM5QixPQUFPLEVBQUUsQ0FBQztTQUNYLENBQUM7UUFFRiw0Q0FBNEM7UUFDNUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQztZQUMvQixTQUFTLEVBQUUsZUFBZTtZQUMxQixPQUFPLEVBQUUsQ0FBQztTQUNYLENBQUMsQ0FBQztLQUNKLENBQUM7SUFFRiwyQkFBMkI7SUFDM0IsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNuQiw0Q0FBNEM7UUFDNUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQztZQUMvQixTQUFTLEVBQUUsbUJBQW1CO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQyxDQUFDO0tBQ0osQ0FBQztDQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB0aGUgcmVxdWlyZWQgYW5pbWF0aW9uIGZ1bmN0aW9ucyBmcm9tIHRoZSBhbmd1bGFyIGFuaW1hdGlvbnMgbW9kdWxlXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGZhZGVJbkFuaW1hdGlvbiA9XG4gIC8vIHRyaWdnZXIgbmFtZSBmb3IgYXR0YWNoaW5nIHRoaXMgYW5pbWF0aW9uIHRvIGFuIGVsZW1lbnQgdXNpbmcgdGhlIFtAdHJpZ2dlck5hbWVdIHN5bnRheFxuICB0cmlnZ2VyKCdmYWRlSW5BbmltYXRpb24nLCBbXG4gICAgLy8gcm91dGUgJ2VudGVyJyB0cmFuc2l0aW9uXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgLy8gY3NzIHN0eWxlcyBhdCBzdGFydCBvZiB0cmFuc2l0aW9uXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG5cbiAgICAgIC8vIGFuaW1hdGlvbiBhbmQgc3R5bGVzIGF0IGVuZCBvZiB0cmFuc2l0aW9uXG4gICAgICBhbmltYXRlKCcuM3MnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICAgIF0pLFxuICBdKTtcblxuZXhwb3J0IGNvbnN0IGZhZGVJblNsb3dBbmltYXRpb24gPVxuICB0cmlnZ2VyKCdmYWRlSW5TbG93QW5pbWF0aW9uJywgW1xuICAgIC8vIHJvdXRlICdlbnRlcicgdHJhbnNpdGlvblxuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgIC8vIGNzcyBzdHlsZXMgYXQgc3RhcnQgb2YgdHJhbnNpdGlvblxuICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuXG4gICAgICAvLyBhbmltYXRpb24gYW5kIHN0eWxlcyBhdCBlbmQgb2YgdHJhbnNpdGlvblxuICAgICAgYW5pbWF0ZSgnLjVzJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICBdKSxcbiAgXSk7XG5cbmV4cG9ydCBjb25zdCBmYWRlSW5PdXRBbmltYXRpb24gPVxuICAgIC8vIHRyaWdnZXIgbmFtZSBmb3IgYXR0YWNoaW5nIHRoaXMgYW5pbWF0aW9uIHRvIGFuIGVsZW1lbnQgdXNpbmcgdGhlIFtAdHJpZ2dlck5hbWVdIHN5bnRheFxuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dEFuaW1hdGlvbicsIFtcblxuICAgICAgICAvLyByb3V0ZSAnZW50ZXInIHRyYW5zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuXG4gICAgICAgICAgICAvLyBjc3Mgc3R5bGVzIGF0IHN0YXJ0IG9mIHRyYW5zaXRpb25cbiAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCB9KSxcblxuICAgICAgICAgICAgLy8gYW5pbWF0aW9uIGFuZCBzdHlsZXMgYXQgZW5kIG9mIHRyYW5zaXRpb25cbiAgICAgICAgICAgIGFuaW1hdGUoJy4zcycsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSlcbiAgICAgICAgXSksXG5cbiAgICAgICAgLy8gcm91dGUgJ2xlYXZlJyB0cmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBhbmQgc3R5bGVzIGF0IGVuZCBvZiB0cmFuc2l0aW9uXG4gICAgICAgICAgICBhbmltYXRlKCcuNXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIF0pLFxuICAgIF0pO1xuXG5leHBvcnQgY29uc3Qgc2xpZGVJbkFuaW1hdGlvbiA9XG4gIHRyaWdnZXIoJ3NsaWRlSW5BbmltYXRpb24nLCBbXG5cbiAgICAvLyBlbmQgc3RhdGUgc3R5bGVzIGZvciByb3V0ZSBjb250YWluZXIgKGhvc3QpXG4gICAgc3RhdGUoJyonLCBzdHlsZSh7XG4gICAgICAvLyB0aGUgdmlldyBjb3ZlcnMgdGhlIHdob2xlIHNjcmVlbiB3aXRoIGEgc2VtaSB0cmFucGFyZW50IGJhY2tncm91bmRcbiAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgdG9wOiAwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgYm90dG9tOiAwLFxuICAgICAgb3BhY2l0eTogMVxuICAgIH0pKSxcblxuICAgIC8vIHJvdXRlICdlbnRlcicgdHJhbnNpdGlvblxuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcblxuICAgICAgLy8gc3R5bGVzIGF0IHN0YXJ0IG9mIHRyYW5zaXRpb25cbiAgICAgIHN0eWxlKHtcbiAgICAgICAgLy8gc3RhcnQgd2l0aCB0aGUgY29udGVudCBwb3NpdGlvbmVkIG9mZiB0aGUgcmlnaHQgb2YgdGhlIHNjcmVlbixcbiAgICAgICAgLy8gLTQwMCUgaXMgcmVxdWlyZWQgaW5zdGVhZCBvZiAtMTAwJSBiZWNhdXNlIHRoZSBuZWdhdGl2ZSBwb3NpdGlvbiBhZGRzIHRvIHRoZSB3aWR0aCBvZiB0aGUgZWxlbWVudFxuICAgICAgICBsZWZ0OiAnNDAwJScsXG5cbiAgICAgICAgLy8gc3RhcnQgd2l0aCBiYWNrZ3JvdW5kIG9wYWNpdHkgc2V0IHRvIDAgKGludmlzaWJsZSlcbiAgICAgICAgb3BhY2l0eTogMFxuICAgICAgfSksXG5cbiAgICAgIC8vIGFuaW1hdGlvbiBhbmQgc3R5bGVzIGF0IGVuZCBvZiB0cmFuc2l0aW9uXG4gICAgICBhbmltYXRlKCcuM3MgZWFzZS1pbi1vdXQnLCBzdHlsZSh7XG4gICAgICAgIC8vIHRyYW5zaXRpb24gdGhlIHJpZ2h0IHBvc2l0aW9uIHRvIDAgd2hpY2ggc2xpZGVzIHRoZSBjb250ZW50IGludG8gdmlld1xuICAgICAgICBsZWZ0OiAwLFxuXG4gICAgICAgIC8vIHRyYW5zaXRpb24gdGhlIGJhY2tncm91bmQgb3BhY2l0eSB0byAwLjggdG8gZmFkZSBpdCBpblxuICAgICAgICBvcGFjaXR5OiAwLjhcbiAgICAgIH0pKVxuICAgIF0pLFxuXG4gIF0pO1xuXG5leHBvcnQgY29uc3Qgc2xpZGVJbk91dEFuaW1hdGlvbiA9XG4gICAgLy8gdHJpZ2dlciBuYW1lIGZvciBhdHRhY2hpbmcgdGhpcyBhbmltYXRpb24gdG8gYW4gZWxlbWVudCB1c2luZyB0aGUgW0B0cmlnZ2VyTmFtZV0gc3ludGF4XG4gICAgdHJpZ2dlcignc2xpZGVJbk91dEFuaW1hdGlvbicsIFtcblxuICAgICAgICAvLyBlbmQgc3RhdGUgc3R5bGVzIGZvciByb3V0ZSBjb250YWluZXIgKGhvc3QpXG4gICAgICAgIHN0YXRlKCcqJywgc3R5bGUoe1xuICAgICAgICAgICAgLy8gdGhlIHZpZXcgY292ZXJzIHRoZSB3aG9sZSBzY3JlZW4gd2l0aCBhIHNlbWkgdHJhbnBhcmVudCBiYWNrZ3JvdW5kXG4gICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgIG9wYWNpdHk6IDFcbiAgICAgICAgfSkpLFxuXG4gICAgICAgIC8vIHJvdXRlICdlbnRlcicgdHJhbnNpdGlvblxuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG5cbiAgICAgICAgICAgIC8vIHN0eWxlcyBhdCBzdGFydCBvZiB0cmFuc2l0aW9uXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgLy8gc3RhcnQgd2l0aCB0aGUgY29udGVudCBwb3NpdGlvbmVkIG9mZiB0aGUgcmlnaHQgb2YgdGhlIHNjcmVlbixcbiAgICAgICAgICAgICAgICAvLyAtNDAwJSBpcyByZXF1aXJlZCBpbnN0ZWFkIG9mIC0xMDAlIGJlY2F1c2UgdGhlIG5lZ2F0aXZlIHBvc2l0aW9uIGFkZHMgdG8gdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgbGVmdDogJzQwMCUnLFxuXG4gICAgICAgICAgICAgICAgLy8gc3RhcnQgd2l0aCBiYWNrZ3JvdW5kIG9wYWNpdHkgc2V0IHRvIDAgKGludmlzaWJsZSlcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gYW5pbWF0aW9uIGFuZCBzdHlsZXMgYXQgZW5kIG9mIHRyYW5zaXRpb25cbiAgICAgICAgICAgIGFuaW1hdGUoJy4zcyBlYXNlLWluLW91dCcsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uIHRoZSByaWdodCBwb3NpdGlvbiB0byAwIHdoaWNoIHNsaWRlcyB0aGUgY29udGVudCBpbnRvIHZpZXdcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuXG4gICAgICAgICAgICAgICAgLy8gdHJhbnNpdGlvbiB0aGUgYmFja2dyb3VuZCBvcGFjaXR5IHRvIDAuOCB0byBmYWRlIGl0IGluXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC44XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgXSksXG5cbiAgICAgICAgLy8gcm91dGUgJ2xlYXZlJyB0cmFuc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBhbmQgc3R5bGVzIGF0IGVuZCBvZiB0cmFuc2l0aW9uXG4gICAgICAgICAgICBhbmltYXRlKCcuNXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgLy8gdHJhbnNpdGlvbiB0aGUgcmlnaHQgcG9zaXRpb24gdG8gLTQwMCUgd2hpY2ggc2xpZGVzIHRoZSBjb250ZW50IG91dCBvZiB2aWV3XG4gICAgICAgICAgICAgICAgbGVmdDogJzQwMCUnLFxuXG4gICAgICAgICAgICAgICAgLy8gdHJhbnNpdGlvbiB0aGUgYmFja2dyb3VuZCBvcGFjaXR5IHRvIDAgdG8gZmFkZSBpdCBvdXRcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgXSlcbiAgICBdKTtcblxuZXhwb3J0IGNvbnN0IHNsaWRlVXBEb3duQW5pbWF0aW9uID1cbiAgLy8gdHJpZ2dlciBuYW1lIGZvciBhdHRhY2hpbmcgdGhpcyBhbmltYXRpb24gdG8gYW4gZWxlbWVudCB1c2luZyB0aGUgW0B0cmlnZ2VyTmFtZV0gc3ludGF4XG4gIHRyaWdnZXIoJ3NsaWRlVXBEb3duQW5pbWF0aW9uJywgW1xuXG4gICAgLy8gZW5kIHN0YXRlIHN0eWxlcyBmb3Igcm91dGUgY29udGFpbmVyIChob3N0KVxuICAgIHN0YXRlKCcqJywgc3R5bGUoe1xuICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsXG4gICAgICBvcGFjaXR5OiAxXG4gICAgfSkpLFxuXG4gICAgLy8gcm91dGUgJ2VudGVyJyB0cmFuc2l0aW9uXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuXG4gICAgICAvLyBzdHlsZXMgYXQgc3RhcnQgb2YgdHJhbnNpdGlvblxuICAgICAgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC00MDAlKScsXG4gICAgICAgIG9wYWNpdHk6IDBcbiAgICAgIH0pLFxuXG4gICAgICAvLyBhbmltYXRpb24gYW5kIHN0eWxlcyBhdCBlbmQgb2YgdHJhbnNpdGlvblxuICAgICAgYW5pbWF0ZSgnLjNzIGVhc2UtaW4tb3V0Jywgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyxcbiAgICAgICAgb3BhY2l0eTogMVxuICAgICAgfSkpXG4gICAgXSksXG5cbiAgICAvLyByb3V0ZSAnbGVhdmUnIHRyYW5zaXRpb25cbiAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAvLyBhbmltYXRpb24gYW5kIHN0eWxlcyBhdCBlbmQgb2YgdHJhbnNpdGlvblxuICAgICAgYW5pbWF0ZSgnLjVzIGVhc2UtaW4tb3V0Jywgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMDAlKScsXG4gICAgICAgIG9wYWNpdHk6IDBcbiAgICAgIH0pKVxuICAgIF0pXG4gIF0pO1xuXG5cbiJdfQ==
@@ -14,7 +14,7 @@ import { ChipsTestPage } from './chips/testing/chips.test';
14
14
  import { MatBadgeTestPage } from './badge/badge.test';
15
15
  import { NumpadTestPage } from './numpad/testing/numpad.test';
16
16
  import { DateTestPage } from './datetime/testing/mat-date.test';
17
- import { SharedPipesModule } from "../pipes/pipes.module";
17
+ import { SharedPipesModule } from '../pipes/pipes.module';
18
18
  import { ObservableTestPage } from '../testing/observable.test';
19
19
  import { DateShortTestPage } from './datetime/testing/mat-dateshort.test';
20
20
  import * as i0 from "@angular/core";
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
165
165
  ]
166
166
  }]
167
167
  }] });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLGVBQWUsRUFBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1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dXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QXV0b2NvbXBsZXRlVGVzdFBhZ2V9IGZyb20gJy4vYXV0b2NvbXBsZXRlL3Rlc3RpbmcvYXV0b2NvbXBsZXRlLnRlc3QnO1xuaW1wb3J0IHtMYXRMb25nVGVzdFBhZ2V9IGZyb20gJy4vbGF0bG9uZy90ZXN0aW5nL2xhdGxvbmcudGVzdCc7XG5pbXBvcnQge1NoYXJlZFRlc3RzUGFnZSwgVGVzdGluZ1BhZ2V9IGZyb20gJy4uL3Rlc3RpbmcvdGVzdHMucGFnZSc7XG5pbXBvcnQge1NoYXJlZE1hdGVyaWFsTW9kdWxlfSBmcm9tICcuL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTd2lwZVRlc3RQYWdlfSBmcm9tICcuL3N3aXBlL3Rlc3Rpbmcvc3dpcGUudGVzdCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RhdGVUaW1lVGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS10aW1lLnRlc3QnO1xuaW1wb3J0IHtDaGlwc1Rlc3RQYWdlfSBmcm9tICcuL2NoaXBzL3Rlc3RpbmcvY2hpcHMudGVzdCc7XG5pbXBvcnQge01hdEJhZGdlVGVzdFBhZ2V9IGZyb20gJy4vYmFkZ2UvYmFkZ2UudGVzdCc7XG5pbXBvcnQge051bXBhZFRlc3RQYWdlfSBmcm9tICcuL251bXBhZC90ZXN0aW5nL251bXBhZC50ZXN0JztcbmltcG9ydCB7RGF0ZVRlc3RQYWdlfSBmcm9tICcuL2RhdGV0aW1lL3Rlc3RpbmcvbWF0LWRhdGUudGVzdCc7XG5pbXBvcnQge1NoYXJlZFBpcGVzTW9kdWxlfSBmcm9tIFwiLi4vcGlwZXMvcGlwZXMubW9kdWxlXCI7XG5pbXBvcnQge09ic2VydmFibGVUZXN0UGFnZX0gZnJvbSAnLi4vdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QnO1xuaW1wb3J0IHtEYXRlU2hvcnRUZXN0UGFnZX0gZnJvbSAnLi9kYXRldGltZS90ZXN0aW5nL21hdC1kYXRlc2hvcnQudGVzdCc7XG5cbmV4cG9ydCBjb25zdCBTSEFSRURfTUFURVJJQUxfVEVTVElOR19QQUdFUzogVGVzdGluZ1BhZ2VbXSA9IFtcbiAge2xhYmVsOiAnU2hhcmVkIE1hdGVyaWFsIGNvbXBvbmVudHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnRGF0ZS9UaW1lIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRldGltZSd9LFxuICB7bGFiZWw6ICdEYXRlIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRlJ30sXG4gIHtsYWJlbDogJ0RhdGUgc2hvcnQgZmllbGQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2RhdGVzaG9ydCd9LFxuICB7bGFiZWw6ICdBdXRvY29tcGxldGUgZmllbGQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2F1dG9jb21wbGV0ZSd9LFxuICB7bGFiZWw6ICdMYXQvTG9uZyBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvbGF0bG9uZyd9LFxuICB7bGFiZWw6ICdOdW1lcmljIHBhZCBjb21wb25lbnQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL251bXBhZCd9LFxuXG4gIHtsYWJlbDogJ1N3aXBlIGNvbXBvbmVudCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvc3dpcGUnfSxcbiAge2xhYmVsOiAnQ2hpcHMgY29tcG9uZW50JywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9jaGlwcyd9LFxuXG4gIHtsYWJlbDogJ1NoYXJlZCBkaXJlY3RpdmVzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ0JhZGdlIGRpcmVjdGl2ZScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYmFkZ2UnfSxcblxuICB7bGFiZWw6ICdTaGFyZWQgdXRpbHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnT2JzZXJ2YWJsZScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvb2JzZXJ2YWJsZSd9XG5dO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogU2hhcmVkVGVzdHNQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnb2JzZXJ2YWJsZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBPYnNlcnZhYmxlVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhdXRvY29tcGxldGUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogQXV0b2NvbXBsZXRlVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdkYXRldGltZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBEYXRlVGltZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBEYXRlVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdkYXRlc2hvcnQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVNob3J0VGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdsYXRsb25nJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IExhdExvbmdUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ251bXBhZCcsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBOdW1wYWRUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3N3aXBlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IFN3aXBlVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdjaGlwcycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBDaGlwc1Rlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYmFkZ2UnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogTWF0QmFkZ2VUZXN0UGFnZVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyksXG4gICAgU2hhcmVkUGlwZXNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGF0ZVRpbWVUZXN0UGFnZSxcbiAgICBEYXRlVGVzdFBhZ2UsXG4gICAgRGF0ZVNob3J0VGVzdFBhZ2UsXG4gICAgQXV0b2NvbXBsZXRlVGVzdFBhZ2UsXG4gICAgTGF0TG9uZ1Rlc3RQYWdlLFxuICAgIE51bXBhZFRlc3RQYWdlLFxuICAgIFN3aXBlVGVzdFBhZ2UsXG4gICAgQ2hpcHNUZXN0UGFnZSxcbiAgICBNYXRCYWRnZVRlc3RQYWdlLFxuICAgIE9ic2VydmFibGVUZXN0UGFnZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIERhdGVUaW1lVGVzdFBhZ2UsXG4gICAgRGF0ZVRlc3RQYWdlLFxuICAgIERhdGVTaG9ydFRlc3RQYWdlLFxuICAgIEF1dG9jb21wbGV0ZVRlc3RQYWdlLFxuICAgIExhdExvbmdUZXN0UGFnZSxcbiAgICBOdW1wYWRUZXN0UGFnZSxcbiAgICBTd2lwZVRlc3RQYWdlLFxuICAgIENoaXBzVGVzdFBhZ2UsXG4gICAgT2JzZXJ2YWJsZVRlc3RQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUZXN0aW5nTW9kdWxlIHtcbn1cbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLGVBQWUsRUFBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1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dXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QXV0b2NvbXBsZXRlVGVzdFBhZ2V9IGZyb20gJy4vYXV0b2NvbXBsZXRlL3Rlc3RpbmcvYXV0b2NvbXBsZXRlLnRlc3QnO1xuaW1wb3J0IHtMYXRMb25nVGVzdFBhZ2V9IGZyb20gJy4vbGF0bG9uZy90ZXN0aW5nL2xhdGxvbmcudGVzdCc7XG5pbXBvcnQge1NoYXJlZFRlc3RzUGFnZSwgVGVzdGluZ1BhZ2V9IGZyb20gJy4uL3Rlc3RpbmcvdGVzdHMucGFnZSc7XG5pbXBvcnQge1NoYXJlZE1hdGVyaWFsTW9kdWxlfSBmcm9tICcuL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTd2lwZVRlc3RQYWdlfSBmcm9tICcuL3N3aXBlL3Rlc3Rpbmcvc3dpcGUudGVzdCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RhdGVUaW1lVGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS10aW1lLnRlc3QnO1xuaW1wb3J0IHtDaGlwc1Rlc3RQYWdlfSBmcm9tICcuL2NoaXBzL3Rlc3RpbmcvY2hpcHMudGVzdCc7XG5pbXBvcnQge01hdEJhZGdlVGVzdFBhZ2V9IGZyb20gJy4vYmFkZ2UvYmFkZ2UudGVzdCc7XG5pbXBvcnQge051bXBhZFRlc3RQYWdlfSBmcm9tICcuL251bXBhZC90ZXN0aW5nL251bXBhZC50ZXN0JztcbmltcG9ydCB7RGF0ZVRlc3RQYWdlfSBmcm9tICcuL2RhdGV0aW1lL3Rlc3RpbmcvbWF0LWRhdGUudGVzdCc7XG5pbXBvcnQge1NoYXJlZFBpcGVzTW9kdWxlfSBmcm9tICcuLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlVGVzdFBhZ2V9IGZyb20gJy4uL3Rlc3Rpbmcvb2JzZXJ2YWJsZS50ZXN0JztcbmltcG9ydCB7RGF0ZVNob3J0VGVzdFBhZ2V9IGZyb20gJy4vZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZXNob3J0LnRlc3QnO1xuXG5leHBvcnQgY29uc3QgU0hBUkVEX01BVEVSSUFMX1RFU1RJTkdfUEFHRVM6IFRlc3RpbmdQYWdlW10gPSBbXG4gIHtsYWJlbDogJ1NoYXJlZCBNYXRlcmlhbCBjb21wb25lbnRzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ0RhdGUvVGltZSBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvZGF0ZXRpbWUnfSxcbiAge2xhYmVsOiAnRGF0ZSBmaWVsZCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvZGF0ZSd9LFxuICB7bGFiZWw6ICdEYXRlIHNob3J0IGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9kYXRlc2hvcnQnfSxcbiAge2xhYmVsOiAnQXV0b2NvbXBsZXRlIGZpZWxkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9hdXRvY29tcGxldGUnfSxcbiAge2xhYmVsOiAnTGF0L0xvbmcgZmllbGQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2xhdGxvbmcnfSxcbiAge2xhYmVsOiAnTnVtZXJpYyBwYWQgY29tcG9uZW50JywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9udW1wYWQnfSxcblxuICB7bGFiZWw6ICdTd2lwZSBjb21wb25lbnQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL3N3aXBlJ30sXG4gIHtsYWJlbDogJ0NoaXBzIGNvbXBvbmVudCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvY2hpcHMnfSxcblxuICB7bGFiZWw6ICdTaGFyZWQgZGlyZWN0aXZlcycsIGRpdmlkZXI6IHRydWV9LFxuICB7bGFiZWw6ICdCYWRnZSBkaXJlY3RpdmUnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2JhZGdlJ30sXG5cbiAge2xhYmVsOiAnU2hhcmVkIHV0aWxzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ09ic2VydmFibGUnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL29ic2VydmFibGUnfVxuXTtcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IFNoYXJlZFRlc3RzUGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ29ic2VydmFibGUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogT2JzZXJ2YWJsZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXV0b2NvbXBsZXRlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IEF1dG9jb21wbGV0ZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZXRpbWUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVRpbWVUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2RhdGUnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogRGF0ZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGF0ZXNob3J0JyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IERhdGVTaG9ydFRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbGF0bG9uZycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBMYXRMb25nVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdudW1wYWQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogTnVtcGFkVGVzdFBhZ2VcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzd2lwZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBTd2lwZVRlc3RQYWdlXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY2hpcHMnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogQ2hpcHNUZXN0UGFnZVxuICB9LFxuICB7XG4gICAgcGF0aDogJ2JhZGdlJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE1hdEJhZGdlVGVzdFBhZ2VcbiAgfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERhdGVUaW1lVGVzdFBhZ2UsXG4gICAgRGF0ZVRlc3RQYWdlLFxuICAgIERhdGVTaG9ydFRlc3RQYWdlLFxuICAgIEF1dG9jb21wbGV0ZVRlc3RQYWdlLFxuICAgIExhdExvbmdUZXN0UGFnZSxcbiAgICBOdW1wYWRUZXN0UGFnZSxcbiAgICBTd2lwZVRlc3RQYWdlLFxuICAgIENoaXBzVGVzdFBhZ2UsXG4gICAgTWF0QmFkZ2VUZXN0UGFnZSxcbiAgICBPYnNlcnZhYmxlVGVzdFBhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBEYXRlVGltZVRlc3RQYWdlLFxuICAgIERhdGVUZXN0UGFnZSxcbiAgICBEYXRlU2hvcnRUZXN0UGFnZSxcbiAgICBBdXRvY29tcGxldGVUZXN0UGFnZSxcbiAgICBMYXRMb25nVGVzdFBhZ2UsXG4gICAgTnVtcGFkVGVzdFBhZ2UsXG4gICAgU3dpcGVUZXN0UGFnZSxcbiAgICBDaGlwc1Rlc3RQYWdlLFxuICAgIE9ic2VydmFibGVUZXN0UGFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
@@ -38,7 +38,7 @@ export class NumpadTestPage {
38
38
  }
39
39
  }
40
40
  NumpadTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumpadTestPage, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
41
- NumpadTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NumpadTestPage, selector: "app-numpad-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Numeric pad test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Numpad test page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Decimal field, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"empty\" placeholder=\"Empty decimal field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDecimal\"\n readonly>\n <mat-numpad [decimal]=\"true\" #numpadDecimal></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- filled -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Integer field\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"integer\" placeholder=\"Filled integer field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadInteger\">\n <mat-numpad #numpadInteger [decimal]=\"false\"></mat-numpad>\n\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- append to input -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Attach to input, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"integer\" placeholder=\"A number\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadAppendToInput\"\n readonly>\n <mat-numpad #numpadAppendToInput [appendToInput]=\"true\"></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"disable\" placeholder=\"Disabled field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDisabled\">\n <mat-numpad #numpadDisabled></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n <!-- Other field (for comparision) -->\n <ion-row><ion-col><ion-text><h4>Other field type (for style comparision)</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Mat date time\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-date-time-field formControlName=\"datetime\" placeholder=\"Date/Time field (desktop)\">\n </mat-date-time-field>\n\n <mat-date-time-field formControlName=\"datetime\"\n placeholder=\"Date/Time field (mobile)\"\n [mobile]=\"true\">\n </mat-date-time-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </form>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { 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.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatDateTime, selector: "mat-date-time-field", inputs: ["formControl", "formControlName", "required", "placeholder", "floatLabel", "appearance", "mobile", "compact", "placeholderChar", "autofocus", "startDate", "clearable", "datePickerFilter", "readonly", "tabindex"] }, { kind: "component", type: i6.MatNumpadComponent, selector: "mat-numpad", inputs: ["keymap", "decimal", "appendToInput", "disableAnimation", "noBackdrop", "position"], outputs: ["keypress", "closed"] }, { kind: "directive", type: i7.NumpadDirective, selector: "[matNumpad]", inputs: ["keymap", "matNumpad", "value", "disabled", "decimal", "disableClick"] }] });
41
+ NumpadTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NumpadTestPage, selector: "app-numpad-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Numeric pad test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Numpad test page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Decimal field, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"empty\" placeholder=\"Empty decimal field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDecimal\"\n readonly>\n <mat-numpad [decimal]=\"true\" #numpadDecimal></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- filled -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Integer field\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"integer\" placeholder=\"Filled integer field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadInteger\">\n <mat-numpad #numpadInteger [decimal]=\"false\"></mat-numpad>\n\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- append to input -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Attach to input, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"integer\" placeholder=\"A number\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadAppendToInput\"\n readonly>\n <mat-numpad #numpadAppendToInput [appendToInput]=\"true\"></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"disable\" placeholder=\"Disabled field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDisabled\">\n <mat-numpad #numpadDisabled></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n <!-- Other field (for comparision) -->\n <ion-row><ion-col><ion-text><h4>Other field type (for style comparision)</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Mat date time\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-date-time-field formControlName=\"datetime\" placeholder=\"Date/Time field (desktop)\">\n </mat-date-time-field>\n\n <mat-date-time-field formControlName=\"datetime\"\n placeholder=\"Date/Time field (mobile)\"\n [mobile]=\"true\">\n </mat-date-time-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </form>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { 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.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatDateTime, selector: "mat-date-time-field", inputs: ["formControl", "formControlName", "required", "placeholder", "floatLabel", "appearance", "mobile", "compact", "placeholderChar", "autofocus", "startDate", "clearable", "datePickerFilter", "readonly", "tabindex"] }, { kind: "component", type: i6.MatNumpadComponent, selector: "mat-numpad", inputs: ["keymap", "decimal", "appendToInput", "disableAnimation", "noBackdrop", "position"], outputs: ["keypress", "closed"] }, { kind: "directive", type: i7.NumpadDirective, selector: "[matNumpad]", inputs: ["keymap", "matNumpad", "value", "disabled", "decimal", "disableClick"] }] });
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumpadTestPage, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'app-numpad-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Numeric pad test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Numpad test page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Decimal field, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"empty\" placeholder=\"Empty decimal field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDecimal\"\n readonly>\n <mat-numpad [decimal]=\"true\" #numpadDecimal></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- filled -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Integer field\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"integer\" placeholder=\"Filled integer field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadInteger\">\n <mat-numpad #numpadInteger [decimal]=\"false\"></mat-numpad>\n\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- append to input -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Attach to input, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"integer\" placeholder=\"A number\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadAppendToInput\"\n readonly>\n <mat-numpad #numpadAppendToInput [appendToInput]=\"true\"></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"disable\" placeholder=\"Disabled field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDisabled\">\n <mat-numpad #numpadDisabled></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n <!-- Other field (for comparision) -->\n <ion-row><ion-col><ion-text><h4>Other field type (for style comparision)</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Mat date time\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-date-time-field formControlName=\"datetime\" placeholder=\"Date/Time field (desktop)\">\n </mat-date-time-field>\n\n <mat-date-time-field formControlName=\"datetime\"\n placeholder=\"Date/Time field (mobile)\"\n [mobile]=\"true\">\n </mat-date-time-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </form>\n\n</ion-content>\n" }]
@@ -56,7 +56,7 @@ export class SwipeTestPage {
56
56
  }
57
57
  }
58
58
  SwipeTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SwipeTestPage, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.DateFormatService }], target: i0.ɵɵFactoryTarget.Component });
59
- SwipeTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SwipeTestPage, selector: "app-swipe-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Swipe test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Swipe page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <!-- empty -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"empty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [tabindex]=\"1\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- date -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"date\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"2\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledEmpty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"3\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n<!-- read-only-->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled with date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledDate\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"4\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i3.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatSwipeField, selector: "mat-swipe-field", inputs: ["logPrefix", "formControl", "formControlName", "floatLabel", "appearance", "placeholder", "debug", "required", "mobile", "clearable", "equals", "displayWith", "displayAttributes", "appAutofocus", "class", "tabindex", "items"], outputs: ["click", "blur", "focus"] }] });
59
+ SwipeTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SwipeTestPage, selector: "app-swipe-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Swipe test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Swipe page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <!-- empty -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"empty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [tabindex]=\"1\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- date -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"date\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"2\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledEmpty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"3\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n<!-- read-only-->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled with date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledDate\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"4\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatSwipeField, selector: "mat-swipe-field", inputs: ["logPrefix", "formControl", "formControlName", "floatLabel", "appearance", "placeholder", "debug", "required", "mobile", "clearable", "equals", "displayWith", "displayAttributes", "appAutofocus", "class", "tabindex", "items"], outputs: ["click", "blur", "focus"] }] });
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SwipeTestPage, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'app-swipe-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Swipe test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Swipe page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <!-- empty -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"empty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [tabindex]=\"1\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- date -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"date\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"2\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledEmpty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"3\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n<!-- read-only-->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled with date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledDate\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"4\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n" }]
@@ -3,9 +3,10 @@ export function isESModule(value) {
3
3
  }
4
4
  /**
5
5
  * Workaround need for CommonJS library (eg. moment), because of packagr's issue - see https://github.com/ng-packagr/ng-packagr/issues/2215
6
+ *
6
7
  * @param commonJSModule
7
8
  */
8
9
  export function unwrapESModule(commonJSModule) {
9
10
  return isESModule(commonJSModule) ? commonJSModule.default : commonJSModule;
10
11
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21vZHVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFZO0lBQ3hDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBVSxjQUFxQjtJQUMzRCxPQUFPLFVBQVUsQ0FBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBbUIsQ0FBQztBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzRVNNb2R1bGU8VD4odmFsdWU6IGFueXxUKTogdmFsdWUgaXMge2RlZmF1bHQ6IFR9IHtcbiAgcmV0dXJuIHZhbHVlICYmIHZhbHVlWydfX2VzTW9kdWxlJ10gPT09IHRydWUgJiYgISF2YWx1ZVsnZGVmYXVsdCddO1xufVxuXG4vKipcbiAqIFdvcmthcm91bmQgbmVlZCBmb3IgQ29tbW9uSlMgbGlicmFyeSAoZWcuIG1vbWVudCksIGJlY2F1c2Ugb2YgcGFja2FncidzIGlzc3VlIC0gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wYWNrYWdyL25nLXBhY2thZ3IvaXNzdWVzLzIyMTVcbiAqIEBwYXJhbSBjb21tb25KU01vZHVsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwRVNNb2R1bGU8VCA9IGFueT4oY29tbW9uSlNNb2R1bGU6IFR8YW55KTogVCB7XG4gIHJldHVybiBpc0VTTW9kdWxlPFQ+KGNvbW1vbkpTTW9kdWxlKSA/IGNvbW1vbkpTTW9kdWxlLmRlZmF1bHQgOiBjb21tb25KU01vZHVsZSBhcyBUO1xufVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21vZHVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFZO0lBQ3hDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQVUsY0FBcUI7SUFDM0QsT0FBTyxVQUFVLENBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQW1CLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0VTTW9kdWxlPFQ+KHZhbHVlOiBhbnl8VCk6IHZhbHVlIGlzIHtkZWZhdWx0OiBUfSB7XG4gIHJldHVybiB2YWx1ZSAmJiB2YWx1ZVsnX19lc01vZHVsZSddID09PSB0cnVlICYmICEhdmFsdWVbJ2RlZmF1bHQnXTtcbn1cblxuLyoqXG4gKiBXb3JrYXJvdW5kIG5lZWQgZm9yIENvbW1vbkpTIGxpYnJhcnkgKGVnLiBtb21lbnQpLCBiZWNhdXNlIG9mIHBhY2thZ3IncyBpc3N1ZSAtIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmctcGFja2Fnci9uZy1wYWNrYWdyL2lzc3Vlcy8yMjE1XG4gKlxuICogQHBhcmFtIGNvbW1vbkpTTW9kdWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBFU01vZHVsZTxUID0gYW55Pihjb21tb25KU01vZHVsZTogVHxhbnkpOiBUIHtcbiAgcmV0dXJuIGlzRVNNb2R1bGU8VD4oY29tbW9uSlNNb2R1bGUpID8gY29tbW9uSlNNb2R1bGUuZGVmYXVsdCA6IGNvbW1vbkpTTW9kdWxlIGFzIFQ7XG59XG4iXX0=
@@ -42,4 +42,4 @@ NamedFilterFilter = __decorate([
42
42
  EntityClass({ typename: 'NamedFilterFilterVO' })
43
43
  ], NamedFilterFilter);
44
44
  export { NamedFilterFilter };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBVSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxZQUFZLEVBQWdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBV3hFLElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQTJELFNBQVEsTUFBaUI7SUFTL0YsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1FBQ3hELElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxFQUFFLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQztTQUNqSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUF0QlksV0FBVztJQUR2QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLENBQUM7R0FDNUIsV0FBVyxDQXNCdkI7U0F0QlksV0FBVztBQWdDeEIsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFDWCxTQUFRLFlBQWtCO0lBRDVCOztRQUlFLGVBQVUsR0FBVyxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFDaEMseUJBQW9CLEdBQVcsSUFBSSxDQUFDO0lBU3RDLENBQUM7SUFQQyxVQUFVLENBQUMsTUFBVyxFQUFFLElBQVU7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztDQUNGLENBQUE7QUFoQlksaUJBQWlCO0lBRDdCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0dBQ2xDLGlCQUFpQixDQWdCN0I7U0FoQlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnRpdHksIElFbnRpdHl9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7RW50aXR5RmlsdGVyLCBJRW50aXR5RmlsdGVyfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUNsYXNzfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTmFtZWRGaWx0ZXI8VCBleHRlbmRzIElOYW1lZEZpbHRlcjxUPj4gZXh0ZW5kcyBJRW50aXR5PFQsIG51bWJlcj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgY29udGVudDogYW55O1xuICByZWNvcmRlclBlcnNvbklkOiBudW1iZXI7XG4gIHJlY29yZGVyRGVwYXJ0bWVudElkOiBudW1iZXI7XG59XG5cbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdOYW1lZEZpbHRlclZPJ30pXG5leHBvcnQgY2xhc3MgTmFtZWRGaWx0ZXI8VCBleHRlbmRzIE5hbWVkRmlsdGVyPGFueT4gPSBOYW1lZEZpbHRlcjxhbnk+PiBleHRlbmRzIEVudGl0eTxULCBudW1iZXI+IGltcGxlbWVudHMgSU5hbWVkRmlsdGVyPFQ+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gTmFtZWRGaWx0ZXI7XG5cbiAgbmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IGFueTtcbiAgcmVjb3JkZXJQZXJzb25JZDogbnVtYmVyO1xuICByZWNvcmRlckRlcGFydG1lbnRJZDogbnVtYmVyO1xuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWU7XG4gICAgdGhpcy5yZWNvcmRlclBlcnNvbklkID0gc291cmNlLnJlY29yZGVyUGVyc29uSWQ7XG4gICAgdGhpcy5yZWNvcmRlckRlcGFydG1lbnRJZCA9IHNvdXJjZS5yZWNvcmRlckRlcGFydG1lbnRJZDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250ZW50ID0gdHlwZW9mIHNvdXJjZT8uY29udGVudCA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHNvdXJjZT8uY29udGVudCkgOiBzb3VyY2U/LmNvbnRlbnQgfHwgdW5kZWZpbmVkO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtuYW1lZC1maWx0ZXJdIGNhbid0IHBhcnNlIGNvbnRlbnQganNvbmAsIHNvdXJjZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOYW1lZEZpbHRlckZpbHRlcjxGIGV4dGVuZHMgSU5hbWVkRmlsdGVyRmlsdGVyPGFueSwgVD4sIFQgZXh0ZW5kcyBJTmFtZWRGaWx0ZXI8VD4+IGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBUPiB7XG4gIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICByZWNvcmRlclBlcnNvbklkOiBudW1iZXI7XG4gIHJlY29yZGVyRGVwYXJ0bWVudElkOiBudW1iZXI7XG59XG5cbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdOYW1lZEZpbHRlckZpbHRlclZPJ30pXG5leHBvcnQgY2xhc3MgTmFtZWRGaWx0ZXJGaWx0ZXI8RiBleHRlbmRzIE5hbWVkRmlsdGVyRmlsdGVyPGFueSwgVD4gPSBOYW1lZEZpbHRlckZpbHRlcjxhbnksIGFueT4sIFQgZXh0ZW5kcyBOYW1lZEZpbHRlcjxhbnk+ID0gTmFtZWRGaWx0ZXI8YW55Pj5cbiAgZXh0ZW5kcyBFbnRpdHlGaWx0ZXI8RiwgVD4gaW1wbGVtZW50cyBJTmFtZWRGaWx0ZXJGaWx0ZXI8RiwgVD4ge1xuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBOYW1lZEZpbHRlckZpbHRlcjtcblxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBudWxsO1xuICBlbnRpdHlOYW1lOiBzdHJpbmcgPSBudWxsO1xuICByZWNvcmRlclBlcnNvbklkOiBudW1iZXIgPSBudWxsO1xuICByZWNvcmRlckRlcGFydG1lbnRJZDogbnVtYmVyID0gbnVsbDtcblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNvdXJjZS5zZWFyY2hUZXh0O1xuICAgIHRoaXMuZW50aXR5TmFtZSA9IHNvdXJjZS5lbnRpdHlOYW1lO1xuICAgIHRoaXMucmVjb3JkZXJQZXJzb25JZCA9IHNvdXJjZS5yZWNvcmRlclBlcnNvbklkO1xuICAgIHRoaXMucmVjb3JkZXJEZXBhcnRtZW50SWQgPSBzb3VyY2UucmVjb3JkZXJEZXBhcnRtZW50SWQ7XG4gIH1cbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBVSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxZQUFZLEVBQWdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBV2pFLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQTJELFNBQVEsTUFBaUI7SUFTL0YsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1FBQ3hELElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxFQUFFLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQztTQUNqSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUF0QlksV0FBVztJQUR2QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLENBQUM7R0FDNUIsV0FBVyxDQXNCdkI7U0F0QlksV0FBVztBQWdDakIsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFDWCxTQUFRLFlBQWtCO0lBRHJCOztRQUlMLGVBQVUsR0FBVyxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFDaEMseUJBQW9CLEdBQVcsSUFBSSxDQUFDO0lBU3RDLENBQUM7SUFQQyxVQUFVLENBQUMsTUFBVyxFQUFFLElBQVU7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztDQUNGLENBQUE7QUFoQlksaUJBQWlCO0lBRDdCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0dBQ2xDLGlCQUFpQixDQWdCN0I7U0FoQlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnRpdHksIElFbnRpdHl9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7RW50aXR5RmlsdGVyLCBJRW50aXR5RmlsdGVyfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUNsYXNzfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTmFtZWRGaWx0ZXI8VCBleHRlbmRzIElOYW1lZEZpbHRlcjxUPj4gZXh0ZW5kcyBJRW50aXR5PFQsIG51bWJlcj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgY29udGVudDogYW55O1xuICByZWNvcmRlclBlcnNvbklkOiBudW1iZXI7XG4gIHJlY29yZGVyRGVwYXJ0bWVudElkOiBudW1iZXI7XG59XG5cbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdOYW1lZEZpbHRlclZPJ30pXG5leHBvcnQgY2xhc3MgTmFtZWRGaWx0ZXI8VCBleHRlbmRzIE5hbWVkRmlsdGVyPGFueT4gPSBOYW1lZEZpbHRlcjxhbnk+PiBleHRlbmRzIEVudGl0eTxULCBudW1iZXI+IGltcGxlbWVudHMgSU5hbWVkRmlsdGVyPFQ+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gTmFtZWRGaWx0ZXI7XG5cbiAgbmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IGFueTtcbiAgcmVjb3JkZXJQZXJzb25JZDogbnVtYmVyO1xuICByZWNvcmRlckRlcGFydG1lbnRJZDogbnVtYmVyO1xuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWU7XG4gICAgdGhpcy5yZWNvcmRlclBlcnNvbklkID0gc291cmNlLnJlY29yZGVyUGVyc29uSWQ7XG4gICAgdGhpcy5yZWNvcmRlckRlcGFydG1lbnRJZCA9IHNvdXJjZS5yZWNvcmRlckRlcGFydG1lbnRJZDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250ZW50ID0gdHlwZW9mIHNvdXJjZT8uY29udGVudCA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHNvdXJjZT8uY29udGVudCkgOiBzb3VyY2U/LmNvbnRlbnQgfHwgdW5kZWZpbmVkO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtuYW1lZC1maWx0ZXJdIGNhbid0IHBhcnNlIGNvbnRlbnQganNvbmAsIHNvdXJjZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOYW1lZEZpbHRlckZpbHRlcjxGIGV4dGVuZHMgSU5hbWVkRmlsdGVyRmlsdGVyPGFueSwgVD4sIFQgZXh0ZW5kcyBJTmFtZWRGaWx0ZXI8VD4+IGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBUPiB7XG4gIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICByZWNvcmRlclBlcnNvbklkOiBudW1iZXI7XG4gIHJlY29yZGVyRGVwYXJ0bWVudElkOiBudW1iZXI7XG59XG5cbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdOYW1lZEZpbHRlckZpbHRlclZPJ30pXG5leHBvcnQgY2xhc3MgTmFtZWRGaWx0ZXJGaWx0ZXI8RiBleHRlbmRzIE5hbWVkRmlsdGVyRmlsdGVyPGFueSwgVD4gPSBOYW1lZEZpbHRlckZpbHRlcjxhbnksIGFueT4sIFQgZXh0ZW5kcyBOYW1lZEZpbHRlcjxhbnk+ID0gTmFtZWRGaWx0ZXI8YW55Pj5cbiAgZXh0ZW5kcyBFbnRpdHlGaWx0ZXI8RiwgVD4gaW1wbGVtZW50cyBJTmFtZWRGaWx0ZXJGaWx0ZXI8RiwgVD4ge1xuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBOYW1lZEZpbHRlckZpbHRlcjtcblxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBudWxsO1xuICBlbnRpdHlOYW1lOiBzdHJpbmcgPSBudWxsO1xuICByZWNvcmRlclBlcnNvbklkOiBudW1iZXIgPSBudWxsO1xuICByZWNvcmRlckRlcGFydG1lbnRJZDogbnVtYmVyID0gbnVsbDtcblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNvdXJjZS5zZWFyY2hUZXh0O1xuICAgIHRoaXMuZW50aXR5TmFtZSA9IHNvdXJjZS5lbnRpdHlOYW1lO1xuICAgIHRoaXMucmVjb3JkZXJQZXJzb25JZCA9IHNvdXJjZS5yZWNvcmRlclBlcnNvbklkO1xuICAgIHRoaXMucmVjb3JkZXJEZXBhcnRtZW50SWQgPSBzb3VyY2UucmVjb3JkZXJEZXBhcnRtZW50SWQ7XG4gIH1cbn1cbiJdfQ==
@@ -71,6 +71,7 @@ export function chainPromises(defers) {
71
71
  }
72
72
  /**
73
73
  * Wait form a predicate return true. This need to implement AppFormUtils.waitWhilePending(), AppFormUtils.waitIdle()
74
+ *
74
75
  * @param predicate
75
76
  * @param opts
76
77
  */
@@ -79,7 +80,7 @@ export async function waitFor(predicate, opts) {
79
80
  return Promise.resolve();
80
81
  const period = opts && opts.checkPeriod || 300;
81
82
  const dueTime = opts && opts.dueTime || period;
82
- let wait$ = timer(dueTime, period)
83
+ const wait$ = timer(dueTime, period)
83
84
  .pipe(
84
85
  // For DEBUG :
85
86
  //tap(() => console.debug("Waiting form idle...", form)),
@@ -100,4 +101,4 @@ export function waitForFalse(observable, opts) {
100
101
  // Inverse the logic
101
102
  observable.pipe(map(v => v === false)), opts);
102
103
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFjckMsTUFBTSxVQUFVLFlBQVksQ0FBVSxHQUFrQjtJQUN0RCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBd0I7SUFDakQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUNELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBd0IsRUFBRSxJQUFtQjtJQUN2RSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBVSxHQUFrQixFQUFFLElBQW1CO0lBQzdFLDBCQUEwQjtJQUMxQixJQUFJLFVBQVUsR0FBb0IsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZGLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFP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QUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1FBQzVCLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBK0IsRUFBRSxJQUFxQjtJQUNqRixPQUFPLFdBQVc7SUFDaEIsb0JBQW9CO0lBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUN0QyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWVyZ2UsIE9ic2VydmFibGUsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2lzTm90TmlsfSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1ByZWRpY2F0ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBGaXJzdE9wdGlvbnMge1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBzdG9wPzogT2JzZXJ2YWJsZTxhbnk+O1xuICBzdG9wRXJyb3I/OiBib29sZWFufHN0cmluZ3xFcnJvcjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFdhaXRGb3JPcHRpb25zIGV4dGVuZHMgRmlyc3RPcHRpb25ze1xuICBkdWVUaW1lPzogbnVtYmVyO1xuICBjaGVja1BlcmlvZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlck5vdE5pbDxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcihpc05vdE5pbCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVHJ1ZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcigodikgPT4gdiA9PT0gdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhbHNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICByZXR1cm4gb2JzLnBpcGUoZmlsdGVyKCh2KSA9PiB2ID09PSBmYWxzZSkpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZVdpdGhUYWtlVW50aWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIC8vIFNldCB0YWtlIHVudGlsIG5vdGlmaWVyXG4gIGxldCB0YWtlVW50aWwkOiBPYnNlcnZhYmxlPGFueT4gPSBvcHRzPy5zdG9wIHx8IChvcHRzPy50aW1lb3V0ICYmIHRpbWVyKG9wdHMudGltZW91dCkpO1xuXG4gIGlmICghdGFrZVVudGlsJCkgcmV0dXJuIG9iczsgLy8gU2tpcFxuXG4gIC8vIFdoZW4gc3RvcCwgdGhyb3cgYW4gZXJyb3IgKHVzZWZ1bCB3aGVuIHVzZWQgd2l0aCBhIHRvUHJvbWlzZSgpKVxuICBpZiAob3B0cy5zdG9wRXJyb3IpIHtcbiAgICBsZXQgZXJyb3I6IEVycm9yO1xuICAgIGlmIChvcHRzLnN0b3BFcnJvciA9PT0gdHJ1ZSkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3Iob3B0cy50aW1lb3V0ID8gYFRpbWVvdXQgJHtvcHRzLnRpbWVvdXR9bXNgIDogYHN0b3BgKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIG9wdHMuc3RvcEVycm9yID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3Iob3B0cy5zdG9wRXJyb3IpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGVycm9yID0gb3B0cy5zdG9wRXJyb3I7XG4gICAgfVxuICAgIHRha2VVbnRpbCQgPSB0YWtlVW50aWwkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBvYnNcbiAgICAucGlwZSh0YWtlVW50aWwodGFrZVVudGlsJCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoZmlyc3QoaXNOb3ROaWwpKSwgb3B0cyk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RUcnVlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICByZXR1cm4gZGVjb3JhdGVXaXRoVGFrZVVudGlsKG9icy5waXBlKFxuICAgICAgZmlyc3QoKHYpID0+IHYgPT09IHRydWUpLFxuICAgICAgbWFwKF8gPT4ge30pIC8vIENvbnZlcnQgdG8gdm9pZFxuICAgICksIG9wdHMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0RmFsc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoXG4gICAgZmlyc3QoKHYpID0+IHYgPT09IGZhbHNlKSxcbiAgICBtYXAoXyA9PiB7fSkgLy8gQ29udmVydCB0byB2b2lkXG4gICksIG9wdHMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0VHJ1ZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdFRydWUob2JzLCB7c3RvcEVycm9yOiB0cnVlLCAuLi5vcHRzfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RGYWxzZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdEZhbHNlKG9icywge3N0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0c30pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0Tm90TmlsUHJvbWlzZTxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4sIG9wdHM/OiBGaXJzdE9wdGlvbnMpOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIGZpcnN0Tm90TmlsKG9icywge3N0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0c30pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoYWluUHJvbWlzZXM8VCA9IGFueT4oZGVmZXJzOiAoKCkgPT4gUHJvbWlzZTxhbnk+KVtdKTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIChkZWZlcnMgfHwgW10pLnJlZHVjZSgocHJldmlvdXM6IFByb21pc2U8YW55PiB8IG51bGwsIGRlZmVyKSA9PiB7XG4gICAgLy8gRmlyc3Qgam9iXG4gICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgcmV0dXJuIGRlZmVyKClcbiAgICAgICAgLy8gSW5pdCB0aGUgZmluYWwgcmVzdWx0IGFycmF5LCB3aXRoIHRoZSBmaXJzdCByZXN1bHRcbiAgICAgICAgLnRoZW4oam9iUmVzID0+IFtqb2JSZXNdKTtcbiAgICB9XG4gICAgLy8gT3RoZXIgam9ic1xuICAgIHJldHVybiBwcmV2aW91c1xuICAgICAgLnRoZW4oKGZpbmFsUmVzdWx0KSA9PiBkZWZlcigpXG4gICAgICAgIC8vIEFkZCBqb2IgcmVzdWx0IHRvIGZpbmFsIHJlc3VsdCBhcnJheVxuICAgICAgICAudGhlbihqb2JSZXMgPT4gZmluYWxSZXN1bHQuY29uY2F0KGpvYlJlcykpKTtcbiAgfSwgbnVsbCk7XG59XG5cbi8qKlxuICogV2FpdCBmb3JtIGEgcHJlZGljYXRlIHJldHVybiB0cnVlLiBUaGlzIG5lZWQgdG8gaW1wbGVtZW50IEFwcEZvcm1VdGlscy53YWl0V2hpbGVQZW5kaW5nKCksIEFwcEZvcm1VdGlscy53YWl0SWRsZSgpXG4gKiBAcGFyYW0gcHJlZGljYXRlXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvcihwcmVkaWNhdGU6IFByZWRpY2F0ZTx2b2lkPiwgb3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChwcmVkaWNhdGUoKSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIGNvbnN0IHBlcmlvZCA9IG9wdHMgJiYgb3B0cy5jaGVja1BlcmlvZCB8fCAzMDA7XG4gIGNvbnN0IGR1ZVRpbWUgPSBvcHRzICYmIG9wdHMuZHVlVGltZSB8fCBwZXJpb2Q7XG4gIGxldCB3YWl0JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRpbWVyKGR1ZVRpbWUsIHBlcmlvZClcbiAgICAucGlwZShcbiAgICAgIC8vIEZvciBERUJVRyA6XG4gICAgICAvL3RhcCgoKSA9PiBjb25zb2xlLmRlYnVnKFwiV2FpdGluZyBmb3JtIGlkbGUuLi5cIiwgZm9ybSkpLFxuICAgICAgZmlsdGVyKF8gPT4gcHJlZGljYXRlKCkpLFxuICAgICAgbWFwKF8gPT4gdHJ1ZSlcbiAgICApO1xuXG4gIGF3YWl0IGZpcnN0Tm90TmlsUHJvbWlzZSh3YWl0JCwgb3B0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yVHJ1ZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgb3B0cyA9IHtzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHN9O1xuICAvLyBkdWVUaW1lICh3aXRob3V0IHRpbWVvdXQpXG4gIGlmIChvcHRzICYmIG9wdHMuZHVlVGltZSA+IDApIHtcbiAgICBvYnNlcnZhYmxlID0gdGltZXIob3B0cy5kdWVUaW1lKVxuICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IG9ic2VydmFibGUpKTtcbiAgfVxuICByZXR1cm4gZmlyc3RUcnVlKG9ic2VydmFibGUsIG9wdHMpLnRvUHJvbWlzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvckZhbHNlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gd2FpdEZvclRydWUoXG4gICAgLy8gSW52ZXJzZSB0aGUgbG9naWNcbiAgICBvYnNlcnZhYmxlLnBpcGUobWFwKHYgPT4gdiA9PT0gZmFsc2UpXG4gICksIG9wdHMpO1xufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQWNyQyxNQUFNLFVBQVUsWUFBWSxDQUFVLEdBQWtCO0lBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUF3QjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUF3QixFQUFFLElBQW1CO0lBQ3ZFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFVLEdBQWtCLEVBQUUsSUFBbUI7SUFDN0UsMEJBQTBCO0lBQzFCLElBQUksVUFBVSxHQUFvQixJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFdkYsSUFBSSxDQUFDLFVBQVU7UUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU87SUFFcEMsa0VBQWtFO0lBQ2xFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNsQixJQUFJLEtBQVksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQzNCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEU7YUFDSSxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDM0MsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQzthQUNJO1lBQ0gsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDeEI7UUFDRCxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNQO0lBRUQsT0FBTyxHQUFHO1NBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFVLEdBQWtCLEVBQUUsSUFBbUI7SUFDMUUsT0FBTyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFDRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQXdCLEVBQUUsSUFBbUI7SUFDckUsT0FBTyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNqQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO0tBQ2hDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDYixDQUFDO0FBQ0QsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUF3QixFQUFFLElBQW1CO0lBQ3RFLE9BQU8scUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDbkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtLQUNoQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUNELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUF3QixFQUFFLElBQW1CO0lBQzVFLE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2hFLENBQUM7QUFDRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBd0IsRUFBRSxJQUFtQjtJQUM3RSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBQ0QsTUFBTSxVQUFVLGtCQUFrQixDQUFVLEdBQWtCLEVBQUUsSUFBbUI7SUFDakYsT0FBTyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDbEUsQ0FBQztBQUNELE1BQU0sVUFBVSxhQUFhLENBQVUsTUFBOEI7SUFDbkUsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUE2QixFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3BFLFlBQVk7UUFDWixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxLQUFLLEVBQUU7Z0JBQ1oscURBQXFEO2lCQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDN0I7UUFDRCxhQUFhO1FBQ2IsT0FBTyxRQUFRO2FBQ1osSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsdUNBQXVDO2FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFDLFNBQTBCLEVBQUUsSUFBcUI7SUFDN0UsSUFBSSxTQUFTLEVBQUU7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUF3QixLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztTQUN0RCxJQUFJO0lBQ0gsY0FBYztJQUNkLHlEQUF5RDtJQUN6RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDZixDQUFDO0lBRUosTUFBTSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsVUFBK0IsRUFBRSxJQUFxQjtJQUNoRixJQUFJLEdBQUcsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFDLENBQUM7SUFDbEMsNEJBQTRCO0lBQzVCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1FBQzVCLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBK0IsRUFBRSxJQUFxQjtJQUNqRixPQUFPLFdBQVc7SUFDaEIsb0JBQW9CO0lBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUN0QyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2lzTm90TmlsfSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1ByZWRpY2F0ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBGaXJzdE9wdGlvbnMge1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBzdG9wPzogT2JzZXJ2YWJsZTxhbnk+O1xuICBzdG9wRXJyb3I/OiBib29sZWFufHN0cmluZ3xFcnJvcjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFdhaXRGb3JPcHRpb25zIGV4dGVuZHMgRmlyc3RPcHRpb25ze1xuICBkdWVUaW1lPzogbnVtYmVyO1xuICBjaGVja1BlcmlvZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlck5vdE5pbDxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcihpc05vdE5pbCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVHJ1ZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcigodikgPT4gdiA9PT0gdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhbHNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICByZXR1cm4gb2JzLnBpcGUoZmlsdGVyKCh2KSA9PiB2ID09PSBmYWxzZSkpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZVdpdGhUYWtlVW50aWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIC8vIFNldCB0YWtlIHVudGlsIG5vdGlmaWVyXG4gIGxldCB0YWtlVW50aWwkOiBPYnNlcnZhYmxlPGFueT4gPSBvcHRzPy5zdG9wIHx8IChvcHRzPy50aW1lb3V0ICYmIHRpbWVyKG9wdHMudGltZW91dCkpO1xuXG4gIGlmICghdGFrZVVudGlsJCkgcmV0dXJuIG9iczsgLy8gU2tpcFxuXG4gIC8vIFdoZW4gc3RvcCwgdGhyb3cgYW4gZXJyb3IgKHVzZWZ1bCB3aGVuIHVzZWQgd2l0aCBhIHRvUHJvbWlzZSgpKVxuICBpZiAob3B0cy5zdG9wRXJyb3IpIHtcbiAgICBsZXQgZXJyb3I6IEVycm9yO1xuICAgIGlmIChvcHRzLnN0b3BFcnJvciA9PT0gdHJ1ZSkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3Iob3B0cy50aW1lb3V0ID8gYFRpbWVvdXQgJHtvcHRzLnRpbWVvdXR9bXNgIDogYHN0b3BgKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIG9wdHMuc3RvcEVycm9yID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3Iob3B0cy5zdG9wRXJyb3IpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGVycm9yID0gb3B0cy5zdG9wRXJyb3I7XG4gICAgfVxuICAgIHRha2VVbnRpbCQgPSB0YWtlVW50aWwkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBvYnNcbiAgICAucGlwZSh0YWtlVW50aWwodGFrZVVudGlsJCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoZmlyc3QoaXNOb3ROaWwpKSwgb3B0cyk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RUcnVlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICByZXR1cm4gZGVjb3JhdGVXaXRoVGFrZVVudGlsKG9icy5waXBlKFxuICAgICAgZmlyc3QoKHYpID0+IHYgPT09IHRydWUpLFxuICAgICAgbWFwKF8gPT4ge30pIC8vIENvbnZlcnQgdG8gdm9pZFxuICAgICksIG9wdHMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0RmFsc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoXG4gICAgZmlyc3QoKHYpID0+IHYgPT09IGZhbHNlKSxcbiAgICBtYXAoXyA9PiB7fSkgLy8gQ29udmVydCB0byB2b2lkXG4gICksIG9wdHMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0VHJ1ZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdFRydWUob2JzLCB7c3RvcEVycm9yOiB0cnVlLCAuLi5vcHRzfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RGYWxzZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdEZhbHNlKG9icywge3N0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0c30pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0Tm90TmlsUHJvbWlzZTxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4sIG9wdHM/OiBGaXJzdE9wdGlvbnMpOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIGZpcnN0Tm90TmlsKG9icywge3N0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0c30pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoYWluUHJvbWlzZXM8VCA9IGFueT4oZGVmZXJzOiAoKCkgPT4gUHJvbWlzZTxhbnk+KVtdKTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIChkZWZlcnMgfHwgW10pLnJlZHVjZSgocHJldmlvdXM6IFByb21pc2U8YW55PiB8IG51bGwsIGRlZmVyKSA9PiB7XG4gICAgLy8gRmlyc3Qgam9iXG4gICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgcmV0dXJuIGRlZmVyKClcbiAgICAgICAgLy8gSW5pdCB0aGUgZmluYWwgcmVzdWx0IGFycmF5LCB3aXRoIHRoZSBmaXJzdCByZXN1bHRcbiAgICAgICAgLnRoZW4oam9iUmVzID0+IFtqb2JSZXNdKTtcbiAgICB9XG4gICAgLy8gT3RoZXIgam9ic1xuICAgIHJldHVybiBwcmV2aW91c1xuICAgICAgLnRoZW4oKGZpbmFsUmVzdWx0KSA9PiBkZWZlcigpXG4gICAgICAgIC8vIEFkZCBqb2IgcmVzdWx0IHRvIGZpbmFsIHJlc3VsdCBhcnJheVxuICAgICAgICAudGhlbihqb2JSZXMgPT4gZmluYWxSZXN1bHQuY29uY2F0KGpvYlJlcykpKTtcbiAgfSwgbnVsbCk7XG59XG5cbi8qKlxuICogV2FpdCBmb3JtIGEgcHJlZGljYXRlIHJldHVybiB0cnVlLiBUaGlzIG5lZWQgdG8gaW1wbGVtZW50IEFwcEZvcm1VdGlscy53YWl0V2hpbGVQZW5kaW5nKCksIEFwcEZvcm1VdGlscy53YWl0SWRsZSgpXG4gKlxuICogQHBhcmFtIHByZWRpY2F0ZVxuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3IocHJlZGljYXRlOiBQcmVkaWNhdGU8dm9pZD4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAocHJlZGljYXRlKCkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICBjb25zdCBwZXJpb2QgPSBvcHRzICYmIG9wdHMuY2hlY2tQZXJpb2QgfHwgMzAwO1xuICBjb25zdCBkdWVUaW1lID0gb3B0cyAmJiBvcHRzLmR1ZVRpbWUgfHwgcGVyaW9kO1xuICBjb25zdCB3YWl0JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRpbWVyKGR1ZVRpbWUsIHBlcmlvZClcbiAgICAucGlwZShcbiAgICAgIC8vIEZvciBERUJVRyA6XG4gICAgICAvL3RhcCgoKSA9PiBjb25zb2xlLmRlYnVnKFwiV2FpdGluZyBmb3JtIGlkbGUuLi5cIiwgZm9ybSkpLFxuICAgICAgZmlsdGVyKF8gPT4gcHJlZGljYXRlKCkpLFxuICAgICAgbWFwKF8gPT4gdHJ1ZSlcbiAgICApO1xuXG4gIGF3YWl0IGZpcnN0Tm90TmlsUHJvbWlzZSh3YWl0JCwgb3B0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yVHJ1ZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgb3B0cyA9IHtzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHN9O1xuICAvLyBkdWVUaW1lICh3aXRob3V0IHRpbWVvdXQpXG4gIGlmIChvcHRzICYmIG9wdHMuZHVlVGltZSA+IDApIHtcbiAgICBvYnNlcnZhYmxlID0gdGltZXIob3B0cy5kdWVUaW1lKVxuICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IG9ic2VydmFibGUpKTtcbiAgfVxuICByZXR1cm4gZmlyc3RUcnVlKG9ic2VydmFibGUsIG9wdHMpLnRvUHJvbWlzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvckZhbHNlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gd2FpdEZvclRydWUoXG4gICAgLy8gSW52ZXJzZSB0aGUgbG9naWNcbiAgICBvYnNlcnZhYmxlLnBpcGUobWFwKHYgPT4gdiA9PT0gZmFsc2UpXG4gICksIG9wdHMpO1xufVxuIl19