@gipisistemas/ng-core 1.0.68 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (782) hide show
  1. package/README.md +38 -0
  2. package/_ITSS-NG-CI-CD.yml +53 -0
  3. package/_ITSS-NG-CI-PR.yml +53 -0
  4. package/angular-cli.json +42 -0
  5. package/azure-pipelines.yml +35 -0
  6. package/package.json +83 -31
  7. package/projects/itss-ng/ng-package.json +7 -0
  8. package/projects/itss-ng/package.json +25 -0
  9. package/assets/styles/colors.scss +0 -261
  10. package/assets/styles/layout-grid.scss +0 -146
  11. package/assets/styles/styles.scss +0 -149
  12. package/assets/styles/theme.scss +0 -22
  13. package/assets/styles/typography.scss +0 -54
  14. package/assets/styles/variable.scss +0 -41
  15. package/bundles/gipisistemas-ng-core.umd.js +0 -28311
  16. package/bundles/gipisistemas-ng-core.umd.js.map +0 -1
  17. package/bundles/gipisistemas-ng-core.umd.min.js +0 -66
  18. package/bundles/gipisistemas-ng-core.umd.min.js.map +0 -1
  19. package/core/app-messages.d.ts +0 -9
  20. package/core/app.messages.d.ts +0 -4
  21. package/core/components/abstract-crud.component.d.ts +0 -27
  22. package/core/components/abstract-find.component.d.ts +0 -43
  23. package/core/components/abstract.component.d.ts +0 -23
  24. package/core/components/alert/alert.component.d.ts +0 -7
  25. package/core/core.module.d.ts +0 -17
  26. package/core/custom-breakpoints.d.ts +0 -7
  27. package/core/enums/local-time.enum.d.ts +0 -5
  28. package/core/extensions/string.extension.d.ts +0 -3
  29. package/core/gipi-components/components/abstract-crud.component.d.ts +0 -25
  30. package/core/gipi-components/components/abstract-find.component.d.ts +0 -73
  31. package/core/gipi-components/components/abstract.component.d.ts +0 -38
  32. package/core/gipi-components/decorators/autowired.decorator.d.ts +0 -7
  33. package/core/gipi-components/enums/sort-direction.enum.d.ts +0 -5
  34. package/core/gipi-components/interface/abstract-crud.interface.d.ts +0 -5
  35. package/core/gipi-components/interface/abstract-find.interface.d.ts +0 -12
  36. package/core/gipi-components/interface/abstract.interface.d.ts +0 -11
  37. package/core/gipi-components/interface/base-permission.interface.d.ts +0 -9
  38. package/core/gipi-components/models/abstract-filter.model.d.ts +0 -9
  39. package/core/gipi-components/models/abstract.model.d.ts +0 -7
  40. package/core/gipi-components/models/applied-filter.model.d.ts +0 -9
  41. package/core/gipi-components/models/dto/abstract.dto.d.ts +0 -7
  42. package/core/gipi-components/models/page-event.model.d.ts +0 -18
  43. package/core/gipi-components/models/page.model.d.ts +0 -7
  44. package/core/gipi-components/models/sort.model.d.ts +0 -6
  45. package/core/gipi-components/services/abstract-crud.service.d.ts +0 -83
  46. package/core/gipi-components/services/abstract.service.d.ts +0 -19
  47. package/core/gipi-components/services/base.service.d.ts +0 -35
  48. package/core/gipi-components/services/file.service.d.ts +0 -6
  49. package/core/gipi-components/services/session-storage.service.d.ts +0 -8
  50. package/core/gipi-components/types/generic.type.d.ts +0 -1
  51. package/core/gipi-components/types/uuid.type.d.ts +0 -1
  52. package/core/guards/auth.guard.d.ts +0 -11
  53. package/core/guards/permission.guard.d.ts +0 -14
  54. package/core/guards/public.guard.d.ts +0 -11
  55. package/core/interceptors/auth.interceptor.d.ts +0 -9
  56. package/core/interceptors/error.interceptor.d.ts +0 -11
  57. package/core/models/abstract.model.d.ts +0 -3
  58. package/core/models/archive.model.d.ts +0 -4
  59. package/core/models/authority.model.d.ts +0 -3
  60. package/core/models/base-user.model.d.ts +0 -12
  61. package/core/models/dto/abstract.dto.d.ts +0 -2
  62. package/core/models/dto/api-error.dto.d.ts +0 -9
  63. package/core/models/dto/api-sub-error.dto.d.ts +0 -7
  64. package/core/models/dto/chart.dto.d.ts +0 -5
  65. package/core/models/dto/confirmation.dto.d.ts +0 -10
  66. package/core/models/dto/dialog.dto.d.ts +0 -36
  67. package/core/models/dto/filter.dto.d.ts +0 -8
  68. package/core/models/dto/input-listbox.dto.d.ts +0 -6
  69. package/core/models/dto/menu.dto.d.ts +0 -15
  70. package/core/models/dto/message.dto.d.ts +0 -7
  71. package/core/models/dto/page.dto.d.ts +0 -8
  72. package/core/models/dto/sort.dto.d.ts +0 -7
  73. package/core/models/dto/tab.dto.d.ts +0 -12
  74. package/core/models/dto/table-column.dto.d.ts +0 -21
  75. package/core/models/dto/table-group-header.dto.d.ts +0 -7
  76. package/core/models/dto/table-page-event.dto.d.ts +0 -6
  77. package/core/models/dto/token.dto.d.ts +0 -8
  78. package/core/models/enums/criteria-operation.enum.d.ts +0 -13
  79. package/core/models/enums/criteria-sort-direction.enum.d.ts +0 -4
  80. package/core/models/enums/menu-type.enum.d.ts +0 -6
  81. package/core/models/enums/radio-button.enum.d.ts +0 -6
  82. package/core/models/enums/sort-direction.enum.d.ts +0 -4
  83. package/core/models/multitenant.model.d.ts +0 -4
  84. package/core/models/permission.model.d.ts +0 -8
  85. package/core/models/role.model.d.ts +0 -7
  86. package/core/pipes/local-time.pipe.d.ts +0 -6
  87. package/core/services/abstract-crud.service.d.ts +0 -15
  88. package/core/services/abstract-find.service.d.ts +0 -30
  89. package/core/services/abstract.service.d.ts +0 -13
  90. package/core/services/authentication.service.d.ts +0 -23
  91. package/core/services/breakpoint-observer.service.d.ts +0 -9
  92. package/core/services/confirmation.service.d.ts +0 -8
  93. package/core/services/dialog.service.d.ts +0 -8
  94. package/core/services/message.service.d.ts +0 -8
  95. package/core/services/nav.service.d.ts +0 -16
  96. package/core/services/svg-register.service.d.ts +0 -22
  97. package/core/types/local-time.type.d.ts +0 -5
  98. package/core/types/ng-class.type.d.ts +0 -10
  99. package/core/utils/array.util.d.ts +0 -14
  100. package/core/utils/browser.util.d.ts +0 -4
  101. package/core/utils/currency.util.d.ts +0 -6
  102. package/core/utils/date.util.d.ts +0 -39
  103. package/core/utils/document.util.d.ts +0 -11
  104. package/core/utils/email.util.d.ts +0 -4
  105. package/core/utils/number.util.d.ts +0 -8
  106. package/core/utils/object.util.d.ts +0 -20
  107. package/core/utils/password.util.d.ts +0 -11
  108. package/core/utils/phone.util.d.ts +0 -13
  109. package/core/utils/string.util.d.ts +0 -9
  110. package/core/utils/table-column-builder.d.ts +0 -40
  111. package/core/utils/time.util.d.ts +0 -9
  112. package/core/utils/url-params.util.d.ts +0 -7
  113. package/core/utils/uuid.util.d.ts +0 -5
  114. package/core/utils/zindex.util.d.ts +0 -7
  115. package/core.d.ts +0 -88
  116. package/esm2015/core/app-messages.js +0 -1
  117. package/esm2015/core/app.messages.js +0 -12
  118. package/esm2015/core/components/abstract-crud.component.js +0 -97
  119. package/esm2015/core/components/abstract-find.component.js +0 -189
  120. package/esm2015/core/components/abstract.component.js +0 -110
  121. package/esm2015/core/components/alert/alert.component.js +0 -24
  122. package/esm2015/core/core.module.js +0 -103
  123. package/esm2015/core/custom-breakpoints.js +0 -87
  124. package/esm2015/core/enums/local-time.enum.js +0 -6
  125. package/esm2015/core/extensions/string.extension.js +0 -37
  126. package/esm2015/core/gipi-components/components/abstract-crud.component.js +0 -110
  127. package/esm2015/core/gipi-components/components/abstract-find.component.js +0 -471
  128. package/esm2015/core/gipi-components/components/abstract.component.js +0 -140
  129. package/esm2015/core/gipi-components/decorators/autowired.decorator.js +0 -47
  130. package/esm2015/core/gipi-components/enums/sort-direction.enum.js +0 -6
  131. package/esm2015/core/gipi-components/interface/abstract-crud.interface.js +0 -1
  132. package/esm2015/core/gipi-components/interface/abstract-find.interface.js +0 -1
  133. package/esm2015/core/gipi-components/interface/abstract.interface.js +0 -1
  134. package/esm2015/core/gipi-components/interface/base-permission.interface.js +0 -1
  135. package/esm2015/core/gipi-components/models/abstract-filter.model.js +0 -3
  136. package/esm2015/core/gipi-components/models/abstract.model.js +0 -3
  137. package/esm2015/core/gipi-components/models/applied-filter.model.js +0 -19
  138. package/esm2015/core/gipi-components/models/dto/abstract.dto.js +0 -3
  139. package/esm2015/core/gipi-components/models/page-event.model.js +0 -35
  140. package/esm2015/core/gipi-components/models/page.model.js +0 -7
  141. package/esm2015/core/gipi-components/models/sort.model.js +0 -7
  142. package/esm2015/core/gipi-components/services/abstract-crud.service.js +0 -109
  143. package/esm2015/core/gipi-components/services/abstract.service.js +0 -47
  144. package/esm2015/core/gipi-components/services/base.service.js +0 -102
  145. package/esm2015/core/gipi-components/services/file.service.js +0 -51
  146. package/esm2015/core/gipi-components/services/session-storage.service.js +0 -44
  147. package/esm2015/core/gipi-components/types/generic.type.js +0 -1
  148. package/esm2015/core/gipi-components/types/uuid.type.js +0 -1
  149. package/esm2015/core/guards/auth.guard.js +0 -48
  150. package/esm2015/core/guards/permission.guard.js +0 -61
  151. package/esm2015/core/guards/public.guard.js +0 -45
  152. package/esm2015/core/interceptors/auth.interceptor.js +0 -28
  153. package/esm2015/core/interceptors/error.interceptor.js +0 -110
  154. package/esm2015/core/models/abstract.model.js +0 -3
  155. package/esm2015/core/models/archive.model.js +0 -3
  156. package/esm2015/core/models/authority.model.js +0 -3
  157. package/esm2015/core/models/base-user.model.js +0 -8
  158. package/esm2015/core/models/dto/abstract.dto.js +0 -3
  159. package/esm2015/core/models/dto/api-error.dto.js +0 -8
  160. package/esm2015/core/models/dto/api-sub-error.dto.js +0 -4
  161. package/esm2015/core/models/dto/chart.dto.js +0 -4
  162. package/esm2015/core/models/dto/confirmation.dto.js +0 -8
  163. package/esm2015/core/models/dto/dialog.dto.js +0 -4
  164. package/esm2015/core/models/dto/filter.dto.js +0 -4
  165. package/esm2015/core/models/dto/input-listbox.dto.js +0 -7
  166. package/esm2015/core/models/dto/menu.dto.js +0 -9
  167. package/esm2015/core/models/dto/message.dto.js +0 -4
  168. package/esm2015/core/models/dto/page.dto.js +0 -9
  169. package/esm2015/core/models/dto/sort.dto.js +0 -9
  170. package/esm2015/core/models/dto/tab.dto.js +0 -10
  171. package/esm2015/core/models/dto/table-column.dto.js +0 -24
  172. package/esm2015/core/models/dto/table-group-header.dto.js +0 -10
  173. package/esm2015/core/models/dto/table-page-event.dto.js +0 -7
  174. package/esm2015/core/models/dto/token.dto.js +0 -4
  175. package/esm2015/core/models/enums/criteria-operation.enum.js +0 -15
  176. package/esm2015/core/models/enums/criteria-sort-direction.enum.js +0 -6
  177. package/esm2015/core/models/enums/menu-type.enum.js +0 -7
  178. package/esm2015/core/models/enums/radio-button.enum.js +0 -8
  179. package/esm2015/core/models/enums/sort-direction.enum.js +0 -6
  180. package/esm2015/core/models/multitenant.model.js +0 -4
  181. package/esm2015/core/models/permission.model.js +0 -11
  182. package/esm2015/core/models/role.model.js +0 -8
  183. package/esm2015/core/pipes/local-time.pipe.js +0 -21
  184. package/esm2015/core/services/abstract-crud.service.js +0 -24
  185. package/esm2015/core/services/abstract-find.service.js +0 -65
  186. package/esm2015/core/services/abstract.service.js +0 -30
  187. package/esm2015/core/services/authentication.service.js +0 -100
  188. package/esm2015/core/services/breakpoint-observer.service.js +0 -42
  189. package/esm2015/core/services/confirmation.service.js +0 -55
  190. package/esm2015/core/services/dialog.service.js +0 -41
  191. package/esm2015/core/services/message.service.js +0 -33
  192. package/esm2015/core/services/nav.service.js +0 -48
  193. package/esm2015/core/services/svg-register.service.js +0 -55
  194. package/esm2015/core/types/local-time.type.js +0 -1
  195. package/esm2015/core/types/ng-class.type.js +0 -1
  196. package/esm2015/core/utils/array.util.js +0 -110
  197. package/esm2015/core/utils/browser.util.js +0 -13
  198. package/esm2015/core/utils/currency.util.js +0 -21
  199. package/esm2015/core/utils/date.util.js +0 -257
  200. package/esm2015/core/utils/document.util.js +0 -153
  201. package/esm2015/core/utils/email.util.js +0 -25
  202. package/esm2015/core/utils/number.util.js +0 -28
  203. package/esm2015/core/utils/object.util.js +0 -199
  204. package/esm2015/core/utils/password.util.js +0 -38
  205. package/esm2015/core/utils/phone.util.js +0 -125
  206. package/esm2015/core/utils/string.util.js +0 -40
  207. package/esm2015/core/utils/table-column-builder.js +0 -85
  208. package/esm2015/core/utils/time.util.js +0 -59
  209. package/esm2015/core/utils/url-params.util.js +0 -12
  210. package/esm2015/core/utils/uuid.util.js +0 -17
  211. package/esm2015/core/utils/zindex.util.js +0 -35
  212. package/esm2015/core.js +0 -89
  213. package/esm2015/gipi-components.js +0 -105
  214. package/esm2015/gipisistemas-ng-core.js +0 -21
  215. package/esm2015/public_api.js +0 -4
  216. package/esm2015/shared/api/generate-id-component.js +0 -12
  217. package/esm2015/shared/api/gipi-ng-config.js +0 -76
  218. package/esm2015/shared/api/overlay-message.js +0 -1
  219. package/esm2015/shared/api/throttle.js +0 -60
  220. package/esm2015/shared/api/translation.js +0 -1
  221. package/esm2015/shared/components/button/button.component.js +0 -110
  222. package/esm2015/shared/components/card/card.component.js +0 -44
  223. package/esm2015/shared/components/checkbox/checkbox.component.js +0 -79
  224. package/esm2015/shared/components/dom/connected-overlay-scroll-handler.js +0 -27
  225. package/esm2015/shared/components/dom/dom-handler.js +0 -538
  226. package/esm2015/shared/components/icon/icon.component.js +0 -35
  227. package/esm2015/shared/components/input/input.component.js +0 -235
  228. package/esm2015/shared/components/input-currency/input-currency.component.js +0 -115
  229. package/esm2015/shared/components/input-file/input-file.component.js +0 -161
  230. package/esm2015/shared/components/loading/loading.component.js +0 -15
  231. package/esm2015/shared/components/loading-overlay/loading-overlay.component.js +0 -21
  232. package/esm2015/shared/components/overlay-panel/overlay-panel.component.js +0 -361
  233. package/esm2015/shared/components/popover/popover-ref.js +0 -25
  234. package/esm2015/shared/components/popover/popover.component.js +0 -34
  235. package/esm2015/shared/components/popover/popover.service.js +0 -85
  236. package/esm2015/shared/components/radio-group-entity/radio-group-entity.component.js +0 -74
  237. package/esm2015/shared/components/radio-group-enum/radio-group-enum.component.js +0 -126
  238. package/esm2015/shared/components/select-button/select-button.component.js +0 -181
  239. package/esm2015/shared/components/select-entity/select-entity.component.js +0 -262
  240. package/esm2015/shared/components/select-entity-paged/select-entity-paged.component.js +0 -419
  241. package/esm2015/shared/components/select-entity-paged/shared/default-options.js +0 -35
  242. package/esm2015/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +0 -69
  243. package/esm2015/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +0 -59
  244. package/esm2015/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +0 -20
  245. package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +0 -547
  246. package/esm2015/shared/components/select-entity-paged/shared/select-search-clear.directive.js +0 -18
  247. package/esm2015/shared/components/select-enum/select-enum.component.js +0 -117
  248. package/esm2015/shared/components/select-month-period/select-month-period.component.js +0 -87
  249. package/esm2015/shared/components/slide-toggle/slide-toggle.component.js +0 -75
  250. package/esm2015/shared/components/stepper/stepper.component.js +0 -32
  251. package/esm2015/shared/components/tab/tab.component.js +0 -57
  252. package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
  253. package/esm2015/shared/components/table/table.component.js +0 -523
  254. package/esm2015/shared/components/table-scrolled/table-scrolled.component.js +0 -105
  255. package/esm2015/shared/components/textarea/textarea.component.js +0 -156
  256. package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
  257. package/esm2015/shared/directives/generic-template.directive.js +0 -30
  258. package/esm2015/shared/directives/input-select-infinite-scroll.directive.js +0 -109
  259. package/esm2015/shared/directives/lower-case.directive.js +0 -47
  260. package/esm2015/shared/directives/phone-mask.directive.js +0 -60
  261. package/esm2015/shared/directives/space-drop.directive.js +0 -47
  262. package/esm2015/shared/directives/upper-case.directive.js +0 -47
  263. package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +0 -119
  264. package/esm2015/shared/gipi-components/action-row/action-row.component.js +0 -30
  265. package/esm2015/shared/gipi-components/badge/badge.component.js +0 -44
  266. package/esm2015/shared/gipi-components/button/button.component.js +0 -251
  267. package/esm2015/shared/gipi-components/chips/chips.component.js +0 -149
  268. package/esm2015/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +0 -44
  269. package/esm2015/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +0 -324
  270. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +0 -41
  271. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +0 -35
  272. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +0 -259
  273. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +0 -218
  274. package/esm2015/shared/gipi-components/datepicker/datepicker.module.js +0 -130
  275. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +0 -341
  276. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar.js +0 -397
  277. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +0 -325
  278. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +0 -329
  279. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +0 -41
  280. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +0 -61
  281. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +0 -159
  282. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +0 -35
  283. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +0 -555
  284. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +0 -14
  285. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +0 -303
  286. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +0 -179
  287. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +0 -51
  288. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +0 -124
  289. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +0 -29
  290. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/month-view.js +0 -365
  291. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +0 -305
  292. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +0 -116
  293. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +0 -10
  294. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +0 -294
  295. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +0 -19
  296. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +0 -81
  297. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/year-view.js +0 -294
  298. package/esm2015/shared/gipi-components/dom/connected-overlay-scroll-handler.js +0 -27
  299. package/esm2015/shared/gipi-components/dom/dom-handler.js +0 -645
  300. package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +0 -185
  301. package/esm2015/shared/gipi-components/expansion-panel/expansion-panel.component.js +0 -81
  302. package/esm2015/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +0 -240
  303. package/esm2015/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +0 -92
  304. package/esm2015/shared/gipi-components/footer/footer.component.js +0 -29
  305. package/esm2015/shared/gipi-components/form-field/form-field.component.js +0 -262
  306. package/esm2015/shared/gipi-components/helpful-tip/helpful-tip.component.js +0 -62
  307. package/esm2015/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +0 -103
  308. package/esm2015/shared/gipi-components/input-checkbox/input-checkbox.component.js +0 -112
  309. package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +0 -197
  310. package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +0 -408
  311. package/esm2015/shared/gipi-components/input-select/input-select.component.js +0 -655
  312. package/esm2015/shared/gipi-components/input-select-enum/input-select-enum.component.js +0 -311
  313. package/esm2015/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +0 -422
  314. package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +0 -374
  315. package/esm2015/shared/gipi-components/input-select-paged/input-select-paged.component.js +0 -350
  316. package/esm2015/shared/gipi-components/input-select-radio/input-select-radio.component.js +0 -269
  317. package/esm2015/shared/gipi-components/layout-grid/col.directive.js +0 -161
  318. package/esm2015/shared/gipi-components/layout-grid/row.directive.js +0 -124
  319. package/esm2015/shared/gipi-components/layout-grid/services/breakpoint.service.js +0 -87
  320. package/esm2015/shared/gipi-components/layout-grid/services/resize.service.js +0 -64
  321. package/esm2015/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +0 -193
  322. package/esm2015/shared/gipi-components/month-year-picker/mont-year-picker.module.js +0 -47
  323. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +0 -460
  324. package/esm2015/shared/gipi-components/notification/notification.component.js +0 -104
  325. package/esm2015/shared/gipi-components/novelties/novelties.component.js +0 -109
  326. package/esm2015/shared/gipi-components/overlay/overlay.component.js +0 -565
  327. package/esm2015/shared/gipi-components/overlay/shared/overlay-service.js +0 -21
  328. package/esm2015/shared/gipi-components/overlay/shared/overlay_options.js +0 -1
  329. package/esm2015/shared/gipi-components/password-requeriments/password-requeriments.component.js +0 -127
  330. package/esm2015/shared/gipi-components/popover/popover.component.js +0 -397
  331. package/esm2015/shared/gipi-components/popover/shared/popover-animations.js +0 -29
  332. package/esm2015/shared/gipi-components/popover/shared/popover-errors.js +0 -27
  333. package/esm2015/shared/gipi-components/popover/shared/popover-interfaces.js +0 -1
  334. package/esm2015/shared/gipi-components/popover/shared/popover-target.js +0 -19
  335. package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +0 -514
  336. package/esm2015/shared/gipi-components/popover/shared/popover-types.js +0 -1
  337. package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +0 -143
  338. package/esm2015/shared/gipi-components/range-page/range-page.component.js +0 -254
  339. package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +0 -345
  340. package/esm2015/shared/gipi-components/select/select.component.js +0 -211
  341. package/esm2015/shared/gipi-components/select-button/select-button.component.js +0 -187
  342. package/esm2015/shared/gipi-components/sidebar/container/container.component.js +0 -83
  343. package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +0 -240
  344. package/esm2015/shared/gipi-components/stepper/stepper.component.js +0 -37
  345. package/esm2015/shared/gipi-components/table/components/table-body/table-body.component.js +0 -203
  346. package/esm2015/shared/gipi-components/table/components/table-footer/table-footer.component.js +0 -30
  347. package/esm2015/shared/gipi-components/table/components/table-header/table-header.component.js +0 -152
  348. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +0 -122
  349. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +0 -225
  350. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +0 -1
  351. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +0 -105
  352. package/esm2015/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +0 -102
  353. package/esm2015/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +0 -30
  354. package/esm2015/shared/gipi-components/table/models/pipe-transform.model.js +0 -1
  355. package/esm2015/shared/gipi-components/table/models/sort.model.js +0 -19
  356. package/esm2015/shared/gipi-components/table/models/sorted-column.model.js +0 -2
  357. package/esm2015/shared/gipi-components/table/models/table-column-builder.model.js +0 -104
  358. package/esm2015/shared/gipi-components/table/models/table-column.model.js +0 -162
  359. package/esm2015/shared/gipi-components/table/table.component.js +0 -159
  360. package/esm2015/shared/gipi-components/table/types/sort-direction.type.js +0 -1
  361. package/esm2015/shared/gipi-components/table/types/sort.type.js +0 -1
  362. package/esm2015/shared/gipi-components/template/template.directive.js +0 -33
  363. package/esm2015/shared/gipi-components/toolbar/toolbar.component.js +0 -53
  364. package/esm2015/shared/gipi-components/top-nav/top-nav.component.js +0 -38
  365. package/esm2015/shared/gipi-components/user-profile/user-profile.component.js +0 -109
  366. package/esm2015/shared/material.module.js +0 -102
  367. package/esm2015/shared/shared.module.js +0 -339
  368. package/esm2015/shared.js +0 -36
  369. package/esm5/core/app-messages.js +0 -1
  370. package/esm5/core/app.messages.js +0 -12
  371. package/esm5/core/components/abstract-crud.component.js +0 -108
  372. package/esm5/core/components/abstract-find.component.js +0 -201
  373. package/esm5/core/components/abstract.component.js +0 -112
  374. package/esm5/core/components/alert/alert.component.js +0 -25
  375. package/esm5/core/core.module.js +0 -107
  376. package/esm5/core/custom-breakpoints.js +0 -87
  377. package/esm5/core/enums/local-time.enum.js +0 -6
  378. package/esm5/core/extensions/string.extension.js +0 -37
  379. package/esm5/core/gipi-components/components/abstract-crud.component.js +0 -122
  380. package/esm5/core/gipi-components/components/abstract-find.component.js +0 -507
  381. package/esm5/core/gipi-components/components/abstract.component.js +0 -152
  382. package/esm5/core/gipi-components/decorators/autowired.decorator.js +0 -52
  383. package/esm5/core/gipi-components/enums/sort-direction.enum.js +0 -6
  384. package/esm5/core/gipi-components/interface/abstract-crud.interface.js +0 -1
  385. package/esm5/core/gipi-components/interface/abstract-find.interface.js +0 -1
  386. package/esm5/core/gipi-components/interface/abstract.interface.js +0 -1
  387. package/esm5/core/gipi-components/interface/base-permission.interface.js +0 -1
  388. package/esm5/core/gipi-components/models/abstract-filter.model.js +0 -7
  389. package/esm5/core/gipi-components/models/abstract.model.js +0 -7
  390. package/esm5/core/gipi-components/models/applied-filter.model.js +0 -29
  391. package/esm5/core/gipi-components/models/dto/abstract.dto.js +0 -7
  392. package/esm5/core/gipi-components/models/page-event.model.js +0 -49
  393. package/esm5/core/gipi-components/models/page.model.js +0 -9
  394. package/esm5/core/gipi-components/models/sort.model.js +0 -9
  395. package/esm5/core/gipi-components/services/abstract-crud.service.js +0 -114
  396. package/esm5/core/gipi-components/services/abstract.service.js +0 -49
  397. package/esm5/core/gipi-components/services/base.service.js +0 -143
  398. package/esm5/core/gipi-components/services/file.service.js +0 -53
  399. package/esm5/core/gipi-components/services/session-storage.service.js +0 -45
  400. package/esm5/core/gipi-components/types/generic.type.js +0 -1
  401. package/esm5/core/gipi-components/types/uuid.type.js +0 -1
  402. package/esm5/core/guards/auth.guard.js +0 -50
  403. package/esm5/core/guards/permission.guard.js +0 -74
  404. package/esm5/core/guards/public.guard.js +0 -47
  405. package/esm5/core/interceptors/auth.interceptor.js +0 -29
  406. package/esm5/core/interceptors/error.interceptor.js +0 -129
  407. package/esm5/core/models/abstract.model.js +0 -7
  408. package/esm5/core/models/archive.model.js +0 -7
  409. package/esm5/core/models/authority.model.js +0 -7
  410. package/esm5/core/models/base-user.model.js +0 -13
  411. package/esm5/core/models/dto/abstract.dto.js +0 -7
  412. package/esm5/core/models/dto/api-error.dto.js +0 -13
  413. package/esm5/core/models/dto/api-sub-error.dto.js +0 -11
  414. package/esm5/core/models/dto/chart.dto.js +0 -11
  415. package/esm5/core/models/dto/confirmation.dto.js +0 -13
  416. package/esm5/core/models/dto/dialog.dto.js +0 -11
  417. package/esm5/core/models/dto/filter.dto.js +0 -11
  418. package/esm5/core/models/dto/input-listbox.dto.js +0 -11
  419. package/esm5/core/models/dto/menu.dto.js +0 -14
  420. package/esm5/core/models/dto/message.dto.js +0 -11
  421. package/esm5/core/models/dto/page.dto.js +0 -14
  422. package/esm5/core/models/dto/sort.dto.js +0 -14
  423. package/esm5/core/models/dto/tab.dto.js +0 -15
  424. package/esm5/core/models/dto/table-column.dto.js +0 -29
  425. package/esm5/core/models/dto/table-group-header.dto.js +0 -15
  426. package/esm5/core/models/dto/table-page-event.dto.js +0 -11
  427. package/esm5/core/models/dto/token.dto.js +0 -11
  428. package/esm5/core/models/enums/criteria-operation.enum.js +0 -15
  429. package/esm5/core/models/enums/criteria-sort-direction.enum.js +0 -6
  430. package/esm5/core/models/enums/menu-type.enum.js +0 -7
  431. package/esm5/core/models/enums/radio-button.enum.js +0 -8
  432. package/esm5/core/models/enums/sort-direction.enum.js +0 -6
  433. package/esm5/core/models/multitenant.model.js +0 -11
  434. package/esm5/core/models/permission.model.js +0 -16
  435. package/esm5/core/models/role.model.js +0 -13
  436. package/esm5/core/pipes/local-time.pipe.js +0 -26
  437. package/esm5/core/services/abstract-crud.service.js +0 -30
  438. package/esm5/core/services/abstract-find.service.js +0 -71
  439. package/esm5/core/services/abstract.service.js +0 -32
  440. package/esm5/core/services/authentication.service.js +0 -121
  441. package/esm5/core/services/breakpoint-observer.service.js +0 -52
  442. package/esm5/core/services/confirmation.service.js +0 -66
  443. package/esm5/core/services/dialog.service.js +0 -44
  444. package/esm5/core/services/message.service.js +0 -36
  445. package/esm5/core/services/nav.service.js +0 -51
  446. package/esm5/core/services/svg-register.service.js +0 -67
  447. package/esm5/core/types/local-time.type.js +0 -1
  448. package/esm5/core/types/ng-class.type.js +0 -1
  449. package/esm5/core/utils/array.util.js +0 -120
  450. package/esm5/core/utils/browser.util.js +0 -17
  451. package/esm5/core/utils/currency.util.js +0 -26
  452. package/esm5/core/utils/date.util.js +0 -269
  453. package/esm5/core/utils/document.util.js +0 -157
  454. package/esm5/core/utils/email.util.js +0 -29
  455. package/esm5/core/utils/number.util.js +0 -32
  456. package/esm5/core/utils/object.util.js +0 -204
  457. package/esm5/core/utils/password.util.js +0 -42
  458. package/esm5/core/utils/phone.util.js +0 -135
  459. package/esm5/core/utils/string.util.js +0 -44
  460. package/esm5/core/utils/table-column-builder.js +0 -87
  461. package/esm5/core/utils/time.util.js +0 -65
  462. package/esm5/core/utils/url-params.util.js +0 -16
  463. package/esm5/core/utils/uuid.util.js +0 -21
  464. package/esm5/core/utils/zindex.util.js +0 -35
  465. package/esm5/core.js +0 -89
  466. package/esm5/gipi-components.js +0 -105
  467. package/esm5/gipisistemas-ng-core.js +0 -21
  468. package/esm5/public_api.js +0 -4
  469. package/esm5/shared/api/generate-id-component.js +0 -16
  470. package/esm5/shared/api/gipi-ng-config.js +0 -77
  471. package/esm5/shared/api/overlay-message.js +0 -1
  472. package/esm5/shared/api/throttle.js +0 -60
  473. package/esm5/shared/api/translation.js +0 -1
  474. package/esm5/shared/components/button/button.component.js +0 -111
  475. package/esm5/shared/components/card/card.component.js +0 -45
  476. package/esm5/shared/components/checkbox/checkbox.component.js +0 -85
  477. package/esm5/shared/components/dom/connected-overlay-scroll-handler.js +0 -30
  478. package/esm5/shared/components/dom/dom-handler.js +0 -573
  479. package/esm5/shared/components/icon/icon.component.js +0 -38
  480. package/esm5/shared/components/input/input.component.js +0 -242
  481. package/esm5/shared/components/input-currency/input-currency.component.js +0 -121
  482. package/esm5/shared/components/input-file/input-file.component.js +0 -165
  483. package/esm5/shared/components/loading/loading.component.js +0 -18
  484. package/esm5/shared/components/loading-overlay/loading-overlay.component.js +0 -23
  485. package/esm5/shared/components/overlay-panel/overlay-panel.component.js +0 -366
  486. package/esm5/shared/components/popover/popover-ref.js +0 -28
  487. package/esm5/shared/components/popover/popover.component.js +0 -35
  488. package/esm5/shared/components/popover/popover.service.js +0 -88
  489. package/esm5/shared/components/radio-group-entity/radio-group-entity.component.js +0 -80
  490. package/esm5/shared/components/radio-group-enum/radio-group-enum.component.js +0 -138
  491. package/esm5/shared/components/select-button/select-button.component.js +0 -195
  492. package/esm5/shared/components/select-entity/select-entity.component.js +0 -269
  493. package/esm5/shared/components/select-entity-paged/select-entity-paged.component.js +0 -453
  494. package/esm5/shared/components/select-entity-paged/shared/default-options.js +0 -35
  495. package/esm5/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +0 -72
  496. package/esm5/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +0 -62
  497. package/esm5/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +0 -23
  498. package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +0 -590
  499. package/esm5/shared/components/select-entity-paged/shared/select-search-clear.directive.js +0 -21
  500. package/esm5/shared/components/select-enum/select-enum.component.js +0 -124
  501. package/esm5/shared/components/select-month-period/select-month-period.component.js +0 -91
  502. package/esm5/shared/components/slide-toggle/slide-toggle.component.js +0 -81
  503. package/esm5/shared/components/stepper/stepper.component.js +0 -36
  504. package/esm5/shared/components/tab/tab.component.js +0 -58
  505. package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
  506. package/esm5/shared/components/table/table.component.js +0 -538
  507. package/esm5/shared/components/table-scrolled/table-scrolled.component.js +0 -107
  508. package/esm5/shared/components/textarea/textarea.component.js +0 -174
  509. package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
  510. package/esm5/shared/directives/generic-template.directive.js +0 -31
  511. package/esm5/shared/directives/input-select-infinite-scroll.directive.js +0 -113
  512. package/esm5/shared/directives/lower-case.directive.js +0 -48
  513. package/esm5/shared/directives/phone-mask.directive.js +0 -61
  514. package/esm5/shared/directives/space-drop.directive.js +0 -48
  515. package/esm5/shared/directives/upper-case.directive.js +0 -48
  516. package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +0 -141
  517. package/esm5/shared/gipi-components/action-row/action-row.component.js +0 -33
  518. package/esm5/shared/gipi-components/badge/badge.component.js +0 -46
  519. package/esm5/shared/gipi-components/button/button.component.js +0 -257
  520. package/esm5/shared/gipi-components/chips/chips.component.js +0 -159
  521. package/esm5/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +0 -46
  522. package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +0 -378
  523. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +0 -42
  524. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +0 -40
  525. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +0 -291
  526. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +0 -252
  527. package/esm5/shared/gipi-components/datepicker/datepicker.module.js +0 -133
  528. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +0 -349
  529. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar.js +0 -441
  530. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +0 -339
  531. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +0 -376
  532. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +0 -46
  533. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +0 -62
  534. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +0 -167
  535. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +0 -35
  536. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +0 -586
  537. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +0 -14
  538. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +0 -327
  539. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +0 -199
  540. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +0 -52
  541. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +0 -133
  542. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +0 -34
  543. package/esm5/shared/gipi-components/datepicker/mat-datepicker/month-view.js +0 -384
  544. package/esm5/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +0 -324
  545. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +0 -118
  546. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +0 -10
  547. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +0 -300
  548. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +0 -19
  549. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +0 -82
  550. package/esm5/shared/gipi-components/datepicker/mat-datepicker/year-view.js +0 -313
  551. package/esm5/shared/gipi-components/dom/connected-overlay-scroll-handler.js +0 -30
  552. package/esm5/shared/gipi-components/dom/dom-handler.js +0 -681
  553. package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +0 -191
  554. package/esm5/shared/gipi-components/expansion-panel/expansion-panel.component.js +0 -83
  555. package/esm5/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +0 -255
  556. package/esm5/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +0 -93
  557. package/esm5/shared/gipi-components/footer/footer.component.js +0 -32
  558. package/esm5/shared/gipi-components/form-field/form-field.component.js +0 -276
  559. package/esm5/shared/gipi-components/helpful-tip/helpful-tip.component.js +0 -68
  560. package/esm5/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +0 -106
  561. package/esm5/shared/gipi-components/input-checkbox/input-checkbox.component.js +0 -118
  562. package/esm5/shared/gipi-components/input-currency/input-currency.component.js +0 -207
  563. package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +0 -426
  564. package/esm5/shared/gipi-components/input-select/input-select.component.js +0 -698
  565. package/esm5/shared/gipi-components/input-select-enum/input-select-enum.component.js +0 -351
  566. package/esm5/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +0 -437
  567. package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +0 -397
  568. package/esm5/shared/gipi-components/input-select-paged/input-select-paged.component.js +0 -384
  569. package/esm5/shared/gipi-components/input-select-radio/input-select-radio.component.js +0 -286
  570. package/esm5/shared/gipi-components/layout-grid/col.directive.js +0 -164
  571. package/esm5/shared/gipi-components/layout-grid/row.directive.js +0 -127
  572. package/esm5/shared/gipi-components/layout-grid/services/breakpoint.service.js +0 -90
  573. package/esm5/shared/gipi-components/layout-grid/services/resize.service.js +0 -68
  574. package/esm5/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +0 -200
  575. package/esm5/shared/gipi-components/month-year-picker/mont-year-picker.module.js +0 -50
  576. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +0 -505
  577. package/esm5/shared/gipi-components/notification/notification.component.js +0 -106
  578. package/esm5/shared/gipi-components/novelties/novelties.component.js +0 -111
  579. package/esm5/shared/gipi-components/overlay/overlay.component.js +0 -670
  580. package/esm5/shared/gipi-components/overlay/shared/overlay-service.js +0 -22
  581. package/esm5/shared/gipi-components/overlay/shared/overlay_options.js +0 -1
  582. package/esm5/shared/gipi-components/password-requeriments/password-requeriments.component.js +0 -157
  583. package/esm5/shared/gipi-components/popover/popover.component.js +0 -473
  584. package/esm5/shared/gipi-components/popover/shared/popover-animations.js +0 -29
  585. package/esm5/shared/gipi-components/popover/shared/popover-errors.js +0 -21
  586. package/esm5/shared/gipi-components/popover/shared/popover-interfaces.js +0 -1
  587. package/esm5/shared/gipi-components/popover/shared/popover-target.js +0 -20
  588. package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +0 -529
  589. package/esm5/shared/gipi-components/popover/shared/popover-types.js +0 -1
  590. package/esm5/shared/gipi-components/radio-group/radio-group.component.js +0 -155
  591. package/esm5/shared/gipi-components/range-page/range-page.component.js +0 -283
  592. package/esm5/shared/gipi-components/range-slider/range-slider.component.js +0 -364
  593. package/esm5/shared/gipi-components/select/select.component.js +0 -222
  594. package/esm5/shared/gipi-components/select-button/select-button.component.js +0 -206
  595. package/esm5/shared/gipi-components/sidebar/container/container.component.js +0 -96
  596. package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +0 -267
  597. package/esm5/shared/gipi-components/stepper/stepper.component.js +0 -43
  598. package/esm5/shared/gipi-components/table/components/table-body/table-body.component.js +0 -209
  599. package/esm5/shared/gipi-components/table/components/table-footer/table-footer.component.js +0 -33
  600. package/esm5/shared/gipi-components/table/components/table-header/table-header.component.js +0 -155
  601. package/esm5/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +0 -123
  602. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +0 -228
  603. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +0 -1
  604. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +0 -108
  605. package/esm5/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +0 -116
  606. package/esm5/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +0 -33
  607. package/esm5/shared/gipi-components/table/models/pipe-transform.model.js +0 -1
  608. package/esm5/shared/gipi-components/table/models/sort.model.js +0 -29
  609. package/esm5/shared/gipi-components/table/models/sorted-column.model.js +0 -2
  610. package/esm5/shared/gipi-components/table/models/table-column-builder.model.js +0 -106
  611. package/esm5/shared/gipi-components/table/models/table-column.model.js +0 -252
  612. package/esm5/shared/gipi-components/table/table.component.js +0 -161
  613. package/esm5/shared/gipi-components/table/types/sort-direction.type.js +0 -1
  614. package/esm5/shared/gipi-components/table/types/sort.type.js +0 -1
  615. package/esm5/shared/gipi-components/template/template.directive.js +0 -34
  616. package/esm5/shared/gipi-components/toolbar/toolbar.component.js +0 -56
  617. package/esm5/shared/gipi-components/top-nav/top-nav.component.js +0 -40
  618. package/esm5/shared/gipi-components/user-profile/user-profile.component.js +0 -115
  619. package/esm5/shared/material.module.js +0 -101
  620. package/esm5/shared/shared.module.js +0 -340
  621. package/esm5/shared.js +0 -36
  622. package/fesm2015/gipisistemas-ng-core.js +0 -25879
  623. package/fesm2015/gipisistemas-ng-core.js.map +0 -1
  624. package/fesm5/gipisistemas-ng-core.js +0 -27905
  625. package/fesm5/gipisistemas-ng-core.js.map +0 -1
  626. package/gipi-components.d.ts +0 -97
  627. package/gipisistemas-ng-core.d.ts +0 -20
  628. package/gipisistemas-ng-core.metadata.json +0 -1
  629. package/public_api.d.ts +0 -3
  630. package/shared/api/generate-id-component.d.ts +0 -3
  631. package/shared/api/gipi-ng-config.d.ts +0 -18
  632. package/shared/api/overlay-message.d.ts +0 -14
  633. package/shared/api/throttle.d.ts +0 -17
  634. package/shared/api/translation.d.ts +0 -45
  635. package/shared/components/button/button.component.d.ts +0 -26
  636. package/shared/components/card/card.component.d.ts +0 -10
  637. package/shared/components/checkbox/checkbox.component.d.ts +0 -20
  638. package/shared/components/dom/connected-overlay-scroll-handler.d.ts +0 -9
  639. package/shared/components/dom/dom-handler.d.ts +0 -74
  640. package/shared/components/icon/icon.component.d.ts +0 -9
  641. package/shared/components/input/input.component.d.ts +0 -52
  642. package/shared/components/input-currency/input-currency.component.d.ts +0 -29
  643. package/shared/components/input-file/input-file.component.d.ts +0 -28
  644. package/shared/components/loading/loading.component.d.ts +0 -4
  645. package/shared/components/loading-overlay/loading-overlay.component.d.ts +0 -6
  646. package/shared/components/overlay-panel/overlay-panel.component.d.ts +0 -67
  647. package/shared/components/popover/popover-ref.d.ts +0 -17
  648. package/shared/components/popover/popover.component.d.ts +0 -10
  649. package/shared/components/popover/popover.service.d.ts +0 -23
  650. package/shared/components/radio-group-entity/radio-group-entity.component.d.ts +0 -19
  651. package/shared/components/radio-group-enum/radio-group-enum.component.d.ts +0 -30
  652. package/shared/components/select-button/select-button.component.d.ts +0 -35
  653. package/shared/components/select-entity/select-entity.component.d.ts +0 -52
  654. package/shared/components/select-entity-paged/select-entity-paged.component.d.ts +0 -78
  655. package/shared/components/select-entity-paged/shared/default-options.d.ts +0 -25
  656. package/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.d.ts +0 -18
  657. package/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.d.ts +0 -16
  658. package/shared/components/select-entity-paged/shared/select-no-entries-found.directive.d.ts +0 -11
  659. package/shared/components/select-entity-paged/shared/select-search/select-search.component.d.ts +0 -119
  660. package/shared/components/select-entity-paged/shared/select-search-clear.directive.d.ts +0 -9
  661. package/shared/components/select-enum/select-enum.component.d.ts +0 -29
  662. package/shared/components/select-month-period/select-month-period.component.d.ts +0 -20
  663. package/shared/components/slide-toggle/slide-toggle.component.d.ts +0 -19
  664. package/shared/components/stepper/stepper.component.d.ts +0 -7
  665. package/shared/components/tab/tab.component.d.ts +0 -14
  666. package/shared/components/tab-group/tab-group.component.d.ts +0 -22
  667. package/shared/components/table/table.component.d.ts +0 -86
  668. package/shared/components/table-scrolled/table-scrolled.component.d.ts +0 -31
  669. package/shared/components/textarea/textarea.component.d.ts +0 -35
  670. package/shared/directives/dynamic-tab.directive.d.ts +0 -5
  671. package/shared/directives/generic-template.directive.d.ts +0 -8
  672. package/shared/directives/input-select-infinite-scroll.directive.d.ts +0 -35
  673. package/shared/directives/lower-case.directive.d.ts +0 -9
  674. package/shared/directives/phone-mask.directive.d.ts +0 -8
  675. package/shared/directives/space-drop.directive.d.ts +0 -9
  676. package/shared/directives/upper-case.directive.d.ts +0 -9
  677. package/shared/gipi-components/abstract-form/abstract-form.component.d.ts +0 -21
  678. package/shared/gipi-components/action-row/action-row.component.d.ts +0 -5
  679. package/shared/gipi-components/badge/badge.component.d.ts +0 -8
  680. package/shared/gipi-components/button/button.component.d.ts +0 -56
  681. package/shared/gipi-components/chips/chips.component.d.ts +0 -37
  682. package/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -11
  683. package/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.d.ts +0 -71
  684. package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.d.ts +0 -11
  685. package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.d.ts +0 -6
  686. package/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.d.ts +0 -40
  687. package/shared/gipi-components/datepicker/datepicker/datepicker.component.d.ts +0 -49
  688. package/shared/gipi-components/datepicker/datepicker.module.d.ts +0 -2
  689. package/shared/gipi-components/datepicker/mat-datepicker/calendar-body.d.ts +0 -143
  690. package/shared/gipi-components/datepicker/mat-datepicker/calendar.d.ts +0 -152
  691. package/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.d.ts +0 -102
  692. package/shared/gipi-components/datepicker/mat-datepicker/date-range-input.d.ts +0 -124
  693. package/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.d.ts +0 -21
  694. package/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.d.ts +0 -45
  695. package/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.d.ts +0 -106
  696. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.d.ts +0 -16
  697. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.d.ts +0 -209
  698. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.d.ts +0 -9
  699. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.d.ts +0 -136
  700. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.d.ts +0 -68
  701. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.d.ts +0 -38
  702. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.d.ts +0 -39
  703. package/shared/gipi-components/datepicker/mat-datepicker/datepicker.d.ts +0 -11
  704. package/shared/gipi-components/datepicker/mat-datepicker/month-view.d.ts +0 -120
  705. package/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.d.ts +0 -85
  706. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.d.ts +0 -225
  707. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.d.ts +0 -20
  708. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.d.ts +0 -76
  709. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.d.ts +0 -9
  710. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.d.ts +0 -33
  711. package/shared/gipi-components/datepicker/mat-datepicker/year-view.d.ts +0 -97
  712. package/shared/gipi-components/dom/connected-overlay-scroll-handler.d.ts +0 -9
  713. package/shared/gipi-components/dom/dom-handler.d.ts +0 -85
  714. package/shared/gipi-components/dropdown-menu/dropdown-menu.component.d.ts +0 -36
  715. package/shared/gipi-components/expansion-panel/expansion-panel.component.d.ts +0 -16
  716. package/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.d.ts +0 -43
  717. package/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.d.ts +0 -13
  718. package/shared/gipi-components/footer/footer.component.d.ts +0 -5
  719. package/shared/gipi-components/form-field/form-field.component.d.ts +0 -61
  720. package/shared/gipi-components/helpful-tip/helpful-tip.component.d.ts +0 -13
  721. package/shared/gipi-components/infinite-scroll/infinite-scroll.directive.d.ts +0 -27
  722. package/shared/gipi-components/input-checkbox/input-checkbox.component.d.ts +0 -28
  723. package/shared/gipi-components/input-currency/input-currency.component.d.ts +0 -48
  724. package/shared/gipi-components/input-monthpicker/input-monthpicker.component.d.ts +0 -89
  725. package/shared/gipi-components/input-select/input-select.component.d.ts +0 -120
  726. package/shared/gipi-components/input-select-enum/input-select-enum.component.d.ts +0 -65
  727. package/shared/gipi-components/input-select-listbox/input-select-listbox.component.d.ts +0 -85
  728. package/shared/gipi-components/input-select-paged/input-search/input-search.component.d.ts +0 -77
  729. package/shared/gipi-components/input-select-paged/input-select-paged.component.d.ts +0 -66
  730. package/shared/gipi-components/input-select-radio/input-select-radio.component.d.ts +0 -53
  731. package/shared/gipi-components/layout-grid/col.directive.d.ts +0 -38
  732. package/shared/gipi-components/layout-grid/row.directive.d.ts +0 -28
  733. package/shared/gipi-components/layout-grid/services/breakpoint.service.d.ts +0 -30
  734. package/shared/gipi-components/layout-grid/services/resize.service.d.ts +0 -17
  735. package/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.d.ts +0 -37
  736. package/shared/gipi-components/month-year-picker/mont-year-picker.module.d.ts +0 -2
  737. package/shared/gipi-components/month-year-picker/month-year-picker.component.d.ts +0 -104
  738. package/shared/gipi-components/notification/notification.component.d.ts +0 -21
  739. package/shared/gipi-components/novelties/novelties.component.d.ts +0 -22
  740. package/shared/gipi-components/overlay/overlay.component.d.ts +0 -113
  741. package/shared/gipi-components/overlay/shared/overlay-service.d.ts +0 -6
  742. package/shared/gipi-components/overlay/shared/overlay_options.d.ts +0 -50
  743. package/shared/gipi-components/password-requeriments/password-requeriments.component.d.ts +0 -27
  744. package/shared/gipi-components/popover/popover.component.d.ts +0 -133
  745. package/shared/gipi-components/popover/shared/popover-animations.d.ts +0 -13
  746. package/shared/gipi-components/popover/shared/popover-errors.d.ts +0 -14
  747. package/shared/gipi-components/popover/shared/popover-interfaces.d.ts +0 -43
  748. package/shared/gipi-components/popover/shared/popover-target.d.ts +0 -5
  749. package/shared/gipi-components/popover/shared/popover-trigger.d.ts +0 -140
  750. package/shared/gipi-components/popover/shared/popover-types.d.ts +0 -4
  751. package/shared/gipi-components/radio-group/radio-group.component.d.ts +0 -33
  752. package/shared/gipi-components/range-page/range-page.component.d.ts +0 -55
  753. package/shared/gipi-components/range-slider/range-slider.component.d.ts +0 -57
  754. package/shared/gipi-components/select/select.component.d.ts +0 -45
  755. package/shared/gipi-components/select-button/select-button.component.d.ts +0 -39
  756. package/shared/gipi-components/sidebar/container/container.component.d.ts +0 -15
  757. package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +0 -40
  758. package/shared/gipi-components/stepper/stepper.component.d.ts +0 -8
  759. package/shared/gipi-components/table/components/table-body/table-body.component.d.ts +0 -36
  760. package/shared/gipi-components/table/components/table-footer/table-footer.component.d.ts +0 -5
  761. package/shared/gipi-components/table/components/table-header/table-header.component.d.ts +0 -28
  762. package/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.d.ts +0 -40
  763. package/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.d.ts +0 -81
  764. package/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.d.ts +0 -24
  765. package/shared/gipi-components/table/components/table-pagination/shared/pagination.service.d.ts +0 -45
  766. package/shared/gipi-components/table/components/table-pagination/table-pagination.component.d.ts +0 -21
  767. package/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.d.ts +0 -5
  768. package/shared/gipi-components/table/models/pipe-transform.model.d.ts +0 -3
  769. package/shared/gipi-components/table/models/sort.model.d.ts +0 -10
  770. package/shared/gipi-components/table/models/sorted-column.model.d.ts +0 -6
  771. package/shared/gipi-components/table/models/table-column-builder.model.d.ts +0 -52
  772. package/shared/gipi-components/table/models/table-column.model.d.ts +0 -74
  773. package/shared/gipi-components/table/table.component.d.ts +0 -37
  774. package/shared/gipi-components/table/types/sort-direction.type.d.ts +0 -1
  775. package/shared/gipi-components/table/types/sort.type.d.ts +0 -1
  776. package/shared/gipi-components/template/template.directive.d.ts +0 -8
  777. package/shared/gipi-components/toolbar/toolbar.component.d.ts +0 -11
  778. package/shared/gipi-components/top-nav/top-nav.component.d.ts +0 -8
  779. package/shared/gipi-components/user-profile/user-profile.component.d.ts +0 -24
  780. package/shared/material.module.d.ts +0 -2
  781. package/shared/shared.module.d.ts +0 -6
  782. package/shared.d.ts +0 -35
@@ -1,14 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /** @docs-private */
9
- export function createMissingDateImplError(provider) {
10
- return Error(`MatDatepicker: No provider found for ${provider}. You must import one of the following ` +
11
- `modules at your application root: MatNativeDateModule, MatMomentDateModule, or provide a ` +
12
- `custom implementation.`);
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1lcnJvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsb0JBQW9CO0FBQ3BCLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFnQjtJQUN2RCxPQUFPLEtBQUssQ0FDUix3Q0FBd0MsUUFBUSx5Q0FBeUM7UUFDekYsMkZBQTJGO1FBQzNGLHdCQUF3QixDQUMzQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKHByb3ZpZGVyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRXJyb3IoXG4gICAgICAgIGBNYXREYXRlcGlja2VyOiBObyBwcm92aWRlciBmb3VuZCBmb3IgJHtwcm92aWRlcn0uIFlvdSBtdXN0IGltcG9ydCBvbmUgb2YgdGhlIGZvbGxvd2luZyBgICtcbiAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBNYXROYXRpdmVEYXRlTW9kdWxlLCBNYXRNb21lbnREYXRlTW9kdWxlLCBvciBwcm92aWRlIGEgYCArXG4gICAgICAgIGBjdXN0b20gaW1wbGVtZW50YXRpb24uYFxuICAgICk7XG59XG4iXX0=
@@ -1,303 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { __decorate, __metadata, __param } from "tslib";
9
- import { DOWN_ARROW } from '@angular/cdk/keycodes';
10
- import { ElementRef, EventEmitter, Inject, Input, Optional, Output, } from '@angular/core';
11
- import { Subject, Subscription } from 'rxjs';
12
- import { createMissingDateImplError } from './datepicker-errors';
13
- import { DateAdapter } from './shared/adapter/date-adapter';
14
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
15
- import { MAT_DATE_FORMATS } from './shared/adapter/date-formats';
16
- /**
17
- * An event used for datepicker input and change events. We don't always have access to a native
18
- * input or change event because the event may have been triggered by the user clicking on the
19
- * calendar popup. For consistency, we always use MatDatepickerInputEvent instead.
20
- */
21
- export class MatDatepickerInputEvent {
22
- constructor(
23
- /** Reference to the datepicker input component that emitted the event. */
24
- target,
25
- /** Reference to the native input element associated with the datepicker input. */
26
- targetElement) {
27
- this.target = target;
28
- this.targetElement = targetElement;
29
- this.value = this.target.value;
30
- }
31
- }
32
- /** Base class for datepicker inputs. */
33
- let MatDatepickerInputBase = class MatDatepickerInputBase {
34
- constructor(_elementRef, _dateAdapter, _dateFormats) {
35
- this._elementRef = _elementRef;
36
- this._dateAdapter = _dateAdapter;
37
- this._dateFormats = _dateFormats;
38
- /** Emits when a `change` event is fired on this `<input>`. */
39
- this.dateChange = new EventEmitter();
40
- /** Emits when an `input` event is fired on this `<input>`. */
41
- this.dateInput = new EventEmitter();
42
- /** Emits when the value changes (either due to user input or programmatic change). */
43
- this._valueChange = new EventEmitter();
44
- /** Emits when the internal state has changed */
45
- this.stateChanges = new Subject();
46
- this._onTouched = () => { };
47
- this._validatorOnChange = () => { };
48
- this._cvaOnChange = () => { };
49
- this._valueChangesSubscription = Subscription.EMPTY;
50
- this._localeSubscription = Subscription.EMPTY;
51
- /** The form control validator for whether the input parses. */
52
- this._parseValidator = () => {
53
- return this._lastValueValid ? null : { 'matDatepickerParse': { 'text': this._elementRef.nativeElement.value } };
54
- };
55
- /** The form control validator for the date filter. */
56
- this._filterValidator = (control) => {
57
- const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));
58
- const dateFilter = this._getDateFilter();
59
- return !dateFilter || !controlValue || dateFilter(controlValue) ? null : { 'matDatepickerFilter': true };
60
- };
61
- /** The form control validator for the min date. */
62
- this._minValidator = (control) => {
63
- const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));
64
- const min = this._getMinDate();
65
- return (!min || !controlValue || this._dateAdapter.compareDate(min, controlValue) <= 0) ? null : { 'matDatepickerMin': { 'min': min, 'actual': controlValue } };
66
- };
67
- /** The form control validator for the max date. */
68
- this._maxValidator = (control) => {
69
- const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));
70
- const max = this._getMaxDate();
71
- return (!max || !controlValue || this._dateAdapter.compareDate(max, controlValue) >= 0) ? null : { 'matDatepickerMax': { 'max': max, 'actual': controlValue } };
72
- };
73
- /** Whether the last value set on the input was valid. */
74
- this._lastValueValid = false;
75
- if (!this._dateAdapter) {
76
- throw createMissingDateImplError('DateAdapter');
77
- }
78
- if (!this._dateFormats) {
79
- throw createMissingDateImplError('MAT_DATE_FORMATS');
80
- }
81
- // Update the displayed date when the locale changes.
82
- this._localeSubscription = _dateAdapter.localeChanges.subscribe(() => {
83
- this.value = this.value;
84
- });
85
- }
86
- /** The value of the input. */
87
- get value() {
88
- return this._model ? this._getValueFromModel(this._model.selection) : this._pendingValue;
89
- }
90
- set value(value) {
91
- value = this._dateAdapter.deserialize(value);
92
- this._lastValueValid = this._isValidValue(value);
93
- value = this._dateAdapter.getValidDateOrNull(value);
94
- const oldDate = this.value;
95
- this._assignValue(value);
96
- this._formatValue(value);
97
- if (!this._dateAdapter.sameDate(oldDate, value)) {
98
- this._valueChange.emit(value);
99
- }
100
- }
101
- /** Whether the datepicker-input is disabled. */
102
- get disabled() { return !!this._disabled || this._parentDisabled(); }
103
- set disabled(value) {
104
- const newValue = coerceBooleanProperty(value);
105
- const element = this._elementRef.nativeElement;
106
- if (this._disabled !== newValue) {
107
- this._disabled = newValue;
108
- this.stateChanges.next(undefined);
109
- }
110
- // We need to null check the `blur` method, because it's undefined during SSR.
111
- // In Ivy static bindings are invoked earlier, before the element is attached to the DOM.
112
- // This can cause an error to be thrown in some browsers (IE/Edge) which assert that the
113
- // element has been inserted.
114
- if (newValue && this._isInitialized && element.blur) {
115
- // Normally, native input elements automatically blur if they turn disabled. This behavior
116
- // is problematic, because it would mean that it triggers another change detection cycle,
117
- // which then causes a changed after checked error if the input element was focused before.
118
- element.blur();
119
- }
120
- }
121
- /** Gets the base validator functions. */
122
- _getValidators() {
123
- return [this._parseValidator, this._minValidator, this._maxValidator, this._filterValidator];
124
- }
125
- /** Registers a date selection model with the input. */
126
- _registerModel(model) {
127
- this._model = model;
128
- this._valueChangesSubscription.unsubscribe();
129
- if (this._pendingValue) {
130
- this._assignValue(this._pendingValue);
131
- }
132
- this._valueChangesSubscription = this._model.selectionChanged.subscribe(event => {
133
- if (event.source !== this) {
134
- const value = this._getValueFromModel(event.selection);
135
- this._lastValueValid = this._isValidValue(value);
136
- this._cvaOnChange(value);
137
- this._onTouched();
138
- this._formatValue(value);
139
- // Note that we can't wrap the entire block with this logic, because for the range inputs
140
- // we want to revalidate whenever either one of the inputs changes and we don't have a
141
- // good way of distinguishing it at the moment.
142
- if (this._canEmitChangeEvent(event)) {
143
- this.dateInput.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));
144
- this.dateChange.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));
145
- }
146
- if (this._outsideValueChanged) {
147
- this._outsideValueChanged();
148
- }
149
- }
150
- });
151
- }
152
- ngAfterViewInit() {
153
- this._isInitialized = true;
154
- }
155
- ngOnChanges(changes) {
156
- if (dateInputsHaveChanged(changes, this._dateAdapter)) {
157
- this.stateChanges.next(undefined);
158
- }
159
- }
160
- ngOnDestroy() {
161
- this._valueChangesSubscription.unsubscribe();
162
- this._localeSubscription.unsubscribe();
163
- this._valueChange.complete();
164
- this.stateChanges.complete();
165
- }
166
- /** @docs-private */
167
- registerOnValidatorChange(fn) {
168
- this._validatorOnChange = fn;
169
- }
170
- /** @docs-private */
171
- validate(c) {
172
- return this._validator ? this._validator(c) : null;
173
- }
174
- // Implemented as part of ControlValueAccessor.
175
- writeValue(value) {
176
- this.value = value;
177
- }
178
- // Implemented as part of ControlValueAccessor.
179
- registerOnChange(fn) {
180
- this._cvaOnChange = fn;
181
- }
182
- // Implemented as part of ControlValueAccessor.
183
- registerOnTouched(fn) {
184
- this._onTouched = fn;
185
- }
186
- // Implemented as part of ControlValueAccessor.
187
- setDisabledState(isDisabled) {
188
- this.disabled = isDisabled;
189
- }
190
- _onKeydown(event) {
191
- const isAltDownArrow = event.altKey && event.keyCode === DOWN_ARROW;
192
- if (isAltDownArrow && !this._elementRef.nativeElement.readOnly) {
193
- this._openPopup();
194
- event.preventDefault();
195
- }
196
- }
197
- _onInput(value) {
198
- const lastValueWasValid = this._lastValueValid;
199
- let date = this._dateAdapter.parse(value, this._dateFormats.parse.dateInput);
200
- this._lastValueValid = this._isValidValue(date);
201
- date = this._dateAdapter.getValidDateOrNull(date);
202
- if (!this._dateAdapter.sameDate(date, this.value)) {
203
- this._assignValue(date);
204
- this._cvaOnChange(date);
205
- this._valueChange.emit(date);
206
- this.dateInput.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));
207
- }
208
- else {
209
- // Call the CVA change handler for invalid values
210
- // since this is what marks the control as dirty.
211
- if (value && !this.value) {
212
- this._cvaOnChange(date);
213
- }
214
- if (lastValueWasValid !== this._lastValueValid) {
215
- this._validatorOnChange();
216
- }
217
- }
218
- }
219
- _onChange() {
220
- this.dateChange.emit(new MatDatepickerInputEvent(this, this._elementRef.nativeElement));
221
- }
222
- /** Handles blur events on the input. */
223
- _onBlur() {
224
- // Reformat the input only if we have a valid value.
225
- if (this.value) {
226
- this._formatValue(this.value);
227
- }
228
- this._onTouched();
229
- }
230
- /** Formats a value and sets it on the input element. */
231
- _formatValue(value) {
232
- this._elementRef.nativeElement.value =
233
- value ? this._dateAdapter.format(value, this._dateFormats.display.dateInput) : '';
234
- }
235
- /** Assigns a value to the model. */
236
- _assignValue(value) {
237
- // We may get some incoming values before the model was
238
- // assigned. Save the value so that we can assign it later.
239
- if (this._model) {
240
- this._assignValueToModel(value);
241
- this._pendingValue = null;
242
- }
243
- else {
244
- this._pendingValue = value;
245
- }
246
- }
247
- /** Whether a value is considered valid. */
248
- _isValidValue(value) {
249
- return !value || this._dateAdapter.isValid(value);
250
- }
251
- /**
252
- * Checks whether a parent control is disabled. This is in place so that it can be overridden
253
- * by inputs extending this one which can be placed inside of a group that can be disabled.
254
- */
255
- _parentDisabled() {
256
- return false;
257
- }
258
- };
259
- __decorate([
260
- Input(),
261
- __metadata("design:type", Object),
262
- __metadata("design:paramtypes", [Object])
263
- ], MatDatepickerInputBase.prototype, "value", null);
264
- __decorate([
265
- Input(),
266
- __metadata("design:type", Boolean),
267
- __metadata("design:paramtypes", [Boolean])
268
- ], MatDatepickerInputBase.prototype, "disabled", null);
269
- __decorate([
270
- Output(),
271
- __metadata("design:type", EventEmitter)
272
- ], MatDatepickerInputBase.prototype, "dateChange", void 0);
273
- __decorate([
274
- Output(),
275
- __metadata("design:type", EventEmitter)
276
- ], MatDatepickerInputBase.prototype, "dateInput", void 0);
277
- MatDatepickerInputBase = __decorate([
278
- __param(1, Optional()),
279
- __param(2, Optional()), __param(2, Inject(MAT_DATE_FORMATS)),
280
- __metadata("design:paramtypes", [ElementRef,
281
- DateAdapter, Object])
282
- ], MatDatepickerInputBase);
283
- export { MatDatepickerInputBase };
284
- /**
285
- * Checks whether the `SimpleChanges` object from an `ngOnChanges`
286
- * callback has any changes, accounting for date objects.
287
- */
288
- export function dateInputsHaveChanged(changes, adapter) {
289
- const keys = Object.keys(changes);
290
- for (let key of keys) {
291
- const { previousValue, currentValue } = changes[key];
292
- if (adapter.isDateInstance(previousValue) && adapter.isDateInstance(currentValue)) {
293
- if (!adapter.sameDate(previousValue, currentValue)) {
294
- return true;
295
- }
296
- }
297
- else {
298
- return true;
299
- }
300
- }
301
- return false;
302
- }
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItaW5wdXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7O0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBNEIsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUF3QixRQUFRLEVBQUUsTUFBTSxHQUFrQixNQUFNLGVBQWUsQ0FBQztBQUUxSixPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFrQixNQUFNLCtCQUErQixDQUFDO0FBR2pGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDO0lBQ0ksMEVBQTBFO0lBQ25FLE1BQW9DO0lBQzNDLGtGQUFrRjtJQUMzRSxhQUEwQjtRQUYxQixXQUFNLEdBQU4sTUFBTSxDQUE4QjtRQUVwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYTtRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7Q0FDSjtBQUtELHdDQUF3QztBQUN4QyxJQUFzQixzQkFBc0IsR0FBNUMsTUFBc0Isc0JBQXNCO0lBMkt4QyxZQUNjLFdBQXlDLEVBQ2hDLFlBQTRCLEVBQ0QsWUFBNEI7UUFGaEUsZ0JB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TyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtLQUNKO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBET1dOX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlU2VsZWN0aW9uTW9kZWxDaGFuZ2UsIEV4dHJhY3REYXRlVHlwZUZyb21TZWxlY3Rpb24sIE1hdERhdGVTZWxlY3Rpb25Nb2RlbCwgfSBmcm9tICcuL2RhdGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yIH0gZnJvbSAnLi9kYXRlcGlja2VyLWVycm9ycyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4vc2hhcmVkL2FkYXB0ZXIvZGF0ZS1hZGFwdGVyJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJy4vc2hhcmVkL2FkYXB0ZXIvZGF0ZS1mb3JtYXRzJztcblxuXG4vKipcbiAqIEFuIGV2ZW50IHVzZWQgZm9yIGRhdGVwaWNrZXIgaW5wdXQgYW5kIGNoYW5nZSBldmVudHMuIFdlIGRvbid0IGFsd2F5cyBoYXZlIGFjY2VzcyB0byBhIG5hdGl2ZVxuICogaW5wdXQgb3IgY2hhbmdlIGV2ZW50IGJlY2F1c2UgdGhlIGV2ZW50IG1heSBoYXZlIGJlZW4gdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyIGNsaWNraW5nIG9uIHRoZVxuICogY2FsZW5kYXIgcG9wdXAuIEZvciBjb25zaXN0ZW5jeSwgd2UgYWx3YXlzIHVzZSBNYXREYXRlcGlja2VySW5wdXRFdmVudCBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RCwgUyA9IHVua25vd24+IHtcbiAgICAvKiogVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIHRhcmdldCBkYXRlcGlja2VyIGlucHV0LiAqL1xuICAgIHZhbHVlOiBEIHwgbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAvKiogUmVmZXJlbmNlIHRvIHRoZSBkYXRlcGlja2VyIGlucHV0IGNvbXBvbmVudCB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LiAqL1xuICAgICAgICBwdWJsaWMgdGFyZ2V0OiBNYXREYXRlcGlja2VySW5wdXRCYXNlPFMsIEQ+LFxuICAgICAgICAvKiogUmVmZXJlbmNlIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGVwaWNrZXIgaW5wdXQuICovXG4gICAgICAgIHB1YmxpYyB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy50YXJnZXQudmFsdWU7XG4gICAgfVxufVxuXG4vKiogRnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgb3V0IGRhdGVzIGZyb20gYSBjYWxlbmRhci4gKi9cbmV4cG9ydCB0eXBlIERhdGVGaWx0ZXJGbjxEPiA9IChkYXRlOiBEIHwgbnVsbCkgPT4gYm9vbGVhbjtcblxuLyoqIEJhc2UgY2xhc3MgZm9yIGRhdGVwaWNrZXIgaW5wdXRzLiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1hdERhdGVwaWNrZXJJbnB1dEJhc2U8UywgRCA9IEV4dHJhY3REYXRlVHlwZUZyb21TZWxlY3Rpb248Uz4+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBWYWxpZGF0b3Ige1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBoYXMgYmVlbiBpbml0aWFsaXplZC4gKi9cbiAgICBwcml2YXRlIF9pc0luaXRpYWxpemVkOiBib29sZWFuO1xuXG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICBnZXQgdmFsdWUoKTogRCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWwgPyB0aGlzLl9nZXRWYWx1ZUZyb21Nb2RlbCh0aGlzLl9tb2RlbC5zZWxlY3Rpb24pIDogdGhpcy5fcGVuZGluZ1ZhbHVlO1xuICAgIH1cbiAgICBzZXQgdmFsdWUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuICAgICAgICB0aGlzLl9sYXN0VmFsdWVWYWxpZCA9IHRoaXMuX2lzVmFsaWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlKTtcbiAgICAgICAgY29uc3Qgb2xkRGF0ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZm9ybWF0VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZUFkYXB0ZXIuc2FtZURhdGUob2xkRGF0ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX21vZGVsOiBNYXREYXRlU2VsZWN0aW9uTW9kZWw8UywgRD4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZGF0ZXBpY2tlci1pbnB1dCBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuICEhdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50RGlzYWJsZWQoKTsgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gbnVsbCBjaGVjayB0aGUgYGJsdXJgIG1ldGhvZCwgYmVjYXVzZSBpdCdzIHVuZGVmaW5lZCBkdXJpbmcgU1NSLlxuICAgICAgICAvLyBJbiBJdnkgc3RhdGljIGJpbmRpbmdzIGFyZSBpbnZva2VkIGVhcmxpZXIsIGJlZm9yZSB0aGUgZWxlbWVudCBpcyBhdHRhY2hlZCB0byB0aGUgRE9NLlxuICAgICAgICAvLyBUaGlzIGNhbiBjYXVzZSBhbiBlcnJvciB0byBiZSB0aHJvd24gaW4gc29tZSBicm93c2VycyAoSUUvRWRnZSkgd2hpY2ggYXNzZXJ0IHRoYXQgdGhlXG4gICAgICAgIC8vIGVsZW1lbnQgaGFzIGJlZW4gaW5zZXJ0ZWQuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiB0aGlzLl9pc0luaXRpYWxpemVkICYmIGVsZW1lbnQuYmx1cikge1xuICAgICAgICAgICAgLy8gTm9ybWFsbHksIG5hdGl2ZSBpbnB1dCBlbGVtZW50cyBhdXRvbWF0aWNhbGx5IGJsdXIgaWYgdGhleSB0dXJuIGRpc2FibGVkLiBUaGlzIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyBwcm9ibGVtYXRpYywgYmVjYXVzZSBpdCB3b3VsZCBtZWFuIHRoYXQgaXQgdHJpZ2dlcnMgYW5vdGhlciBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLFxuICAgICAgICAgICAgLy8gd2hpY2ggdGhlbiBjYXVzZXMgYSBjaGFuZ2VkIGFmdGVyIGNoZWNrZWQgZXJyb3IgaWYgdGhlIGlucHV0IGVsZW1lbnQgd2FzIGZvY3VzZWQgYmVmb3JlLlxuICAgICAgICAgICAgZWxlbWVudC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhIGBjaGFuZ2VgIGV2ZW50IGlzIGZpcmVkIG9uIHRoaXMgYDxpbnB1dD5gLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBkYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RCwgUz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxNYXREYXRlcGlja2VySW5wdXRFdmVudDxELCBTPj4oKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIGFuIGBpbnB1dGAgZXZlbnQgaXMgZmlyZWQgb24gdGhpcyBgPGlucHV0PmAuICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGRhdGVJbnB1dDogRXZlbnRFbWl0dGVyPE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PEQsIFM+PiA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RCwgUz4+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcyAoZWl0aGVyIGR1ZSB0byB1c2VyIGlucHV0IG9yIHByb2dyYW1tYXRpYyBjaGFuZ2UpLiAqL1xuICAgIF92YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RCB8IG51bGw+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgaW50ZXJuYWwgc3RhdGUgaGFzIGNoYW5nZWQgKi9cbiAgICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgICBfdmFsaWRhdG9yT25DaGFuZ2UgPSAoKSA9PiB7IH07XG5cbiAgICBwcm90ZWN0ZWQgX2N2YU9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgICBwcml2YXRlIF92YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gICAgcHJpdmF0ZSBfbG9jYWxlU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gICAgLyoqXG4gICAgICogU2luY2UgdGhlIHZhbHVlIGlzIGtlcHQgb24gdGhlIG1vZGVsIHdoaWNoIGlzIGFzc2lnbmVkIGluIGFuIElucHV0LFxuICAgICAqIHdlIG1pZ2h0IGdldCBhIHZhbHVlIGJlZm9yZSB3ZSBoYXZlIGEgbW9kZWwuIFRoaXMgcHJvcGVydHkga2VlcHMgdHJhY2tcbiAgICAgKiBvZiB0aGUgdmFsdWUgdW50aWwgd2UgaGF2ZSBzb21ld2hlcmUgdG8gYXNzaWduIGl0LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3BlbmRpbmdWYWx1ZTogRCB8IG51bGw7XG5cbiAgICAvKiogVGhlIGZvcm0gY29udHJvbCB2YWxpZGF0b3IgZm9yIHdoZXRoZXIgdGhlIGlucHV0IHBhcnNlcy4gKi9cbiAgICBwcml2YXRlIF9wYXJzZVZhbGlkYXRvcjogVmFsaWRhdG9yRm4gPSAoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdFZhbHVlVmFsaWQgPyBudWxsIDogeyAnbWF0RGF0ZXBpY2tlclBhcnNlJzogeyAndGV4dCc6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSB9IH07XG4gICAgfVxuXG4gICAgLyoqIFRoZSBmb3JtIGNvbnRyb2wgdmFsaWRhdG9yIGZvciB0aGUgZGF0ZSBmaWx0ZXIuICovXG4gICAgcHJpdmF0ZSBfZmlsdGVyVmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShjb250cm9sLnZhbHVlKSk7XG4gICAgICAgIGNvbnN0IGRhdGVGaWx0ZXIgPSB0aGlzLl9nZXREYXRlRmlsdGVyKCk7XG4gICAgICAgIHJldHVybiAhZGF0ZUZpbHRlciB8fCAhY29udHJvbFZhbHVlIHx8IGRhdGVGaWx0ZXIoY29udHJvbFZhbHVlKSA/IG51bGwgOiB7ICdtYXREYXRlcGlja2VyRmlsdGVyJzogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8qKiBUaGUgZm9ybSBjb250cm9sIHZhbGlkYXRvciBmb3IgdGhlIG1pbiBkYXRlLiAqL1xuICAgIHByaXZhdGUgX21pblZhbGlkYXRvcjogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUoY29udHJvbC52YWx1ZSkpO1xuICAgICAgICBjb25zdCBtaW4gPSB0aGlzLl9nZXRNaW5EYXRlKCk7XG4gICAgICAgIHJldHVybiAoIW1pbiB8fCAhY29udHJvbFZhbHVlIHx8IHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKG1pbiwgY29udHJvbFZhbHVlKSA8PSAwKSA/IG51bGwgOiB7ICdtYXREYXRlcGlja2VyTWluJzogeyAnbWluJzogbWluLCAnYWN0dWFsJzogY29udHJvbFZhbHVlIH0gfTtcbiAgICB9XG5cbiAgICAvKiogVGhlIGZvcm0gY29udHJvbCB2YWxpZGF0b3IgZm9yIHRoZSBtYXggZGF0ZS4gKi9cbiAgICBwcml2YXRlIF9tYXhWYWxpZGF0b3I6IFZhbGlkYXRvckZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKGNvbnRyb2wudmFsdWUpKTtcbiAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5fZ2V0TWF4RGF0ZSgpO1xuICAgICAgICByZXR1cm4gKCFtYXggfHwgIWNvbnRyb2xWYWx1ZSB8fCB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShtYXgsIGNvbnRyb2xWYWx1ZSkgPj0gMCkgPyBudWxsIDogeyAnbWF0RGF0ZXBpY2tlck1heCc6IHsgJ21heCc6IG1heCwgJ2FjdHVhbCc6IGNvbnRyb2xWYWx1ZSB9IH07XG4gICAgfVxuXG4gICAgLyoqIEdldHMgdGhlIGJhc2UgdmFsaWRhdG9yIGZ1bmN0aW9ucy4gKi9cbiAgICBwcm90ZWN0ZWQgX2dldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5fcGFyc2VWYWxpZGF0b3IsIHRoaXMuX21pblZhbGlkYXRvciwgdGhpcy5fbWF4VmFsaWRhdG9yLCB0aGlzLl9maWx0ZXJWYWxpZGF0b3JdO1xuICAgIH1cblxuICAgIC8qKiBHZXRzIHRoZSBtaW5pbXVtIGRhdGUgZm9yIHRoZSBpbnB1dC4gVXNlZCBmb3IgdmFsaWRhdGlvbi4gKi9cbiAgICBhYnN0cmFjdCBfZ2V0TWluRGF0ZSgpOiBEIHwgbnVsbDtcblxuICAgIC8qKiBHZXRzIHRoZSBtYXhpbXVtIGRhdGUgZm9yIHRoZSBpbnB1dC4gVXNlZCBmb3IgdmFsaWRhdGlvbi4gKi9cbiAgICBhYnN0cmFjdCBfZ2V0TWF4RGF0ZSgpOiBEIHwgbnVsbDtcblxuICAgIC8qKiBHZXRzIHRoZSBkYXRlIGZpbHRlciBmdW5jdGlvbi4gVXNlZCBmb3IgdmFsaWRhdGlvbi4gKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2dldERhdGVGaWx0ZXIoKTogRGF0ZUZpbHRlckZuPEQ+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIFJlZ2lzdGVycyBhIGRhdGUgc2VsZWN0aW9uIG1vZGVsIHdpdGggdGhlIGlucHV0LiAqL1xuICAgIF9yZWdpc3Rlck1vZGVsKG1vZGVsOiBNYXREYXRlU2VsZWN0aW9uTW9kZWw8UywgRD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBtb2RlbDtcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy5fcGVuZGluZ1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuX21vZGVsLnNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5zb3VyY2UgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2dldFZhbHVlRnJvbU1vZGVsKGV2ZW50LnNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFZhbHVlVmFsaWQgPSB0aGlzLl9pc1ZhbGlkVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2N2YU9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtYXRWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuJ3Qgd3JhcCB0aGUgZW50aXJlIGJsb2NrIHdpdGggdGhpcyBsb2dpYywgYmVjYXVzZSBmb3IgdGhlIHJhbmdlIGlucHV0c1xuICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gcmV2YWxpZGF0ZSB3aGVuZXZlciBlaXRoZXIgb25lIG9mIHRoZSBpbnB1dHMgY2hhbmdlcyBhbmQgd2UgZG9uJ3QgaGF2ZSBhXG4gICAgICAgICAgICAgICAgLy8gZ29vZCB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgaXQgYXQgdGhlIG1vbWVudC5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2FuRW1pdENoYW5nZUV2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVJbnB1dC5lbWl0KG5ldyBNYXREYXRlcGlja2VySW5wdXRFdmVudCh0aGlzLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQobmV3IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50KHRoaXMsIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9vdXRzaWRlVmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX291dHNpZGVWYWx1ZUNoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBPcGVucyB0aGUgcG9wdXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnB1dC4gKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX29wZW5Qb3B1cCgpOiB2b2lkO1xuXG4gICAgLyoqIEFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgaW5wdXQncyBtb2RlbC4gKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2Fzc2lnblZhbHVlVG9Nb2RlbChtb2RlbDogRCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqIENvbnZlcnRzIGEgdmFsdWUgZnJvbSB0aGUgbW9kZWwgaW50byBhIG5hdGl2ZSB2YWx1ZSBmb3IgdGhlIGlucHV0LiAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBfZ2V0VmFsdWVGcm9tTW9kZWwobW9kZWxWYWx1ZTogUyk6IEQgfCBudWxsO1xuXG4gICAgLyoqIENvbWJpbmVkIGZvcm0gY29udHJvbCB2YWxpZGF0b3IgZm9yIHRoaXMgaW5wdXQuICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWxpZGF0b3I6IFZhbGlkYXRvckZuIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRoYXQnbGwgYmUgaW52b2tlZCB3aGVuIHRoZSBzZWxlY3Rpb24gbW9kZWwgaXMgY2hhbmdlZFxuICAgICAqIGZyb20gc29tZXdoZXJlIHRoYXQncyBub3QgdGhlIGN1cnJlbnQgZGF0ZXBpY2tlciBpbnB1dC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX291dHNpZGVWYWx1ZUNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqIFByZWRpY2F0ZSB0aGF0IGRldGVybWluZXMgd2hldGhlciB3ZSdyZSBhbGxvd2VkIHRvIGVtaXQgYSBwYXJ0aWN1bGFyIGNoYW5nZSBldmVudC4gKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2NhbkVtaXRDaGFuZ2VFdmVudChldmVudDogRGF0ZVNlbGVjdGlvbk1vZGVsQ2hhbmdlPFM+KTogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsYXN0IHZhbHVlIHNldCBvbiB0aGUgaW5wdXQgd2FzIHZhbGlkLiAqL1xuICAgIHByb3RlY3RlZCBfbGFzdFZhbHVlVmFsaWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0c1xuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxFcnJvcignRGF0ZUFkYXB0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxFcnJvcignTUFUX0RBVEVfRk9STUFUUycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIHRoZSBkaXNwbGF5ZWQgZGF0ZSB3aGVuIHRoZSBsb2NhbGUgY2hhbmdlcy5cbiAgICAgICAgdGhpcy5fbG9jYWxlU3Vic2NyaXB0aW9uID0gX2RhdGVBZGFwdGVyLmxvY2FsZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGRhdGVJbnB1dHNIYXZlQ2hhbmdlZChjaGFuZ2VzLCB0aGlzLl9kYXRlQWRhcHRlcikpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fbG9jYWxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRvck9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3IgPyB0aGlzLl92YWxpZGF0b3IoYykgOiBudWxsO1xuICAgIH1cblxuICAgIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdmFPbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBpc0FsdERvd25BcnJvdyA9IGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XO1xuXG4gICAgICAgIGlmIChpc0FsdERvd25BcnJvdyAmJiAhdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLl9vcGVuUG9wdXAoKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfb25JbnB1dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGxhc3RWYWx1ZVdhc1ZhbGlkID0gdGhpcy5fbGFzdFZhbHVlVmFsaWQ7XG4gICAgICAgIGxldCBkYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodmFsdWUsIHRoaXMuX2RhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCk7XG4gICAgICAgIHRoaXMuX2xhc3RWYWx1ZVZhbGlkID0gdGhpcy5faXNWYWxpZFZhbHVlKGRhdGUpO1xuICAgICAgICBkYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRhdGUpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZUFkYXB0ZXIuc2FtZURhdGUoZGF0ZSwgdGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKGRhdGUpO1xuICAgICAgICAgICAgdGhpcy5fY3ZhT25DaGFuZ2UoZGF0ZSk7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgICAgICAgICAgdGhpcy5kYXRlSW5wdXQuZW1pdChuZXcgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDYWxsIHRoZSBDVkEgY2hhbmdlIGhhbmRsZXIgZm9yIGludmFsaWQgdmFsdWVzXG4gICAgICAgICAgICAvLyBzaW5jZSB0aGlzIGlzIHdoYXQgbWFya3MgdGhlIGNvbnRyb2wgYXMgZGlydHkuXG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jdmFPbkNoYW5nZShkYXRlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxhc3RWYWx1ZVdhc1ZhbGlkICE9PSB0aGlzLl9sYXN0VmFsdWVWYWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvck9uQ2hhbmdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfb25DaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KG5ldyBNYXREYXRlcGlja2VySW5wdXRFdmVudCh0aGlzLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyBibHVyIGV2ZW50cyBvbiB0aGUgaW5wdXQuICovXG4gICAgX29uQmx1cigpIHtcbiAgICAgICAgLy8gUmVmb3JtYXQgdGhlIGlucHV0IG9ubHkgaWYgd2UgaGF2ZSBhIHZhbGlkIHZhbHVlLlxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWF0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICAvKiogRm9ybWF0cyBhIHZhbHVlIGFuZCBzZXRzIGl0IG9uIHRoZSBpbnB1dCBlbGVtZW50LiAqL1xuICAgIHByb3RlY3RlZCBfZm9ybWF0VmFsdWUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9XG4gICAgICAgICAgICB2YWx1ZSA/IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5fZGF0ZUZvcm1hdHMuZGlzcGxheS5kYXRlSW5wdXQpIDogJyc7XG4gICAgfVxuXG4gICAgLyoqIEFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgbW9kZWwuICovXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIC8vIFdlIG1heSBnZXQgc29tZSBpbmNvbWluZyB2YWx1ZXMgYmVmb3JlIHRoZSBtb2RlbCB3YXNcbiAgICAgICAgLy8gYXNzaWduZWQuIFNhdmUgdGhlIHZhbHVlIHNvIHRoYXQgd2UgY2FuIGFzc2lnbiBpdCBsYXRlci5cbiAgICAgICAgaWYgKHRoaXMuX21vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZVRvTW9kZWwodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fcGVuZGluZ1ZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgYSB2YWx1ZSBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIHByaXZhdGUgX2lzVmFsaWRWYWx1ZSh2YWx1ZTogRCB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF2YWx1ZSB8fCB0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciBhIHBhcmVudCBjb250cm9sIGlzIGRpc2FibGVkLiBUaGlzIGlzIGluIHBsYWNlIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW5cbiAgICAgKiBieSBpbnB1dHMgZXh0ZW5kaW5nIHRoaXMgb25lIHdoaWNoIGNhbiBiZSBwbGFjZWQgaW5zaWRlIG9mIGEgZ3JvdXAgdGhhdCBjYW4gYmUgZGlzYWJsZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9wYXJlbnREaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBgU2ltcGxlQ2hhbmdlc2Agb2JqZWN0IGZyb20gYW4gYG5nT25DaGFuZ2VzYFxuICogY2FsbGJhY2sgaGFzIGFueSBjaGFuZ2VzLCBhY2NvdW50aW5nIGZvciBkYXRlIG9iamVjdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW5wdXRzSGF2ZUNoYW5nZWQoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY2hhbmdlcyk7XG5cbiAgICBmb3IgKGxldCBrZXkgb2Yga2V5cykge1xuICAgICAgICBjb25zdCB7IHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSB9ID0gY2hhbmdlc1trZXldO1xuXG4gICAgICAgIGlmIChhZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHByZXZpb3VzVmFsdWUpICYmIGFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UoY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKCFhZGFwdGVyLnNhbWVEYXRlKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
@@ -1,179 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var MatDatepickerInput_1;
9
- import { __decorate, __metadata, __param } from "tslib";
10
- import { Directive, ElementRef, forwardRef, Inject, InjectionToken, Input, Optional, } from '@angular/core';
11
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';
12
- import { MAT_DATE_FORMATS, } from '@angular/material/core';
13
- import { MatFormField } from '@angular/material/form-field';
14
- import { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';
15
- import { MatDatepicker } from './datepicker';
16
- import { MatDatepickerInputBase } from './datepicker-input-base';
17
- import { DateAdapter } from './shared/adapter/date-adapter';
18
- /** @docs-private */
19
- export const MAT_DATEPICKER_VALUE_ACCESSOR = {
20
- provide: NG_VALUE_ACCESSOR,
21
- useExisting: forwardRef(() => MatDatepickerInput),
22
- multi: true
23
- };
24
- /** @docs-private */
25
- export const MAT_DATEPICKER_VALIDATORS = {
26
- provide: NG_VALIDATORS,
27
- useExisting: forwardRef(() => MatDatepickerInput),
28
- multi: true
29
- };
30
- export const MAT_FORM_FIELD = new InjectionToken('MatFormField');
31
- /** Directive used to connect an input to a MatDatepicker. */
32
- let MatDatepickerInput = MatDatepickerInput_1 = class MatDatepickerInput extends MatDatepickerInputBase {
33
- constructor(elementRef, dateAdapter, dateFormats, _formField) {
34
- super(elementRef, dateAdapter, dateFormats);
35
- this._formField = _formField;
36
- this._validator = Validators.compose(super._getValidators());
37
- }
38
- /** The datepicker that this input is associated with. */
39
- set gipiMatDatepicker(datepicker) {
40
- if (datepicker) {
41
- this._datepicker = datepicker;
42
- this._registerModel(datepicker._registerInput(this));
43
- }
44
- }
45
- /** The minimum valid date. */
46
- get min() { return this._min; }
47
- set min(value) {
48
- const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
49
- if (!this._dateAdapter.sameDate(validValue, this._min)) {
50
- this._min = validValue;
51
- this._validatorOnChange();
52
- }
53
- }
54
- /** The maximum valid date. */
55
- get max() { return this._max; }
56
- set max(value) {
57
- const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
58
- if (!this._dateAdapter.sameDate(validValue, this._max)) {
59
- this._max = validValue;
60
- this._validatorOnChange();
61
- }
62
- }
63
- /** Function that can be used to filter out dates within the datepicker. */
64
- get dateFilter() { return this._dateFilter; }
65
- set dateFilter(value) {
66
- this._dateFilter = value;
67
- this._validatorOnChange();
68
- }
69
- /**
70
- * Gets the element that the datepicker popup should be connected to.
71
- * @return The element to connect the popup to.
72
- */
73
- getConnectedOverlayOrigin() {
74
- return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;
75
- }
76
- /** Returns the palette used by the input's form field, if any. */
77
- getThemePalette() {
78
- return this._formField ? this._formField.color : undefined;
79
- }
80
- /** Gets the value at which the calendar should start. */
81
- getStartValue() {
82
- return this.value;
83
- }
84
- /**
85
- * @deprecated
86
- * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead
87
- */
88
- getPopupConnectionElementRef() {
89
- return this.getConnectedOverlayOrigin();
90
- }
91
- /** Opens the associated datepicker. */
92
- _openPopup() {
93
- if (this._datepicker) {
94
- this._datepicker.open();
95
- }
96
- }
97
- _getValueFromModel(modelValue) {
98
- return modelValue;
99
- }
100
- _assignValueToModel(value) {
101
- if (this._model) {
102
- this._model.updateSelection(value, this);
103
- }
104
- }
105
- /** Gets the input's minimum date. */
106
- _getMinDate() {
107
- return this._min;
108
- }
109
- /** Gets the input's maximum date. */
110
- _getMaxDate() {
111
- return this._max;
112
- }
113
- /** Gets the input's date filtering function. */
114
- _getDateFilter() {
115
- return this._dateFilter;
116
- }
117
- _canEmitChangeEvent() {
118
- return true;
119
- }
120
- };
121
- MatDatepickerInput.ctorParameters = () => [
122
- { type: ElementRef },
123
- { type: DateAdapter, decorators: [{ type: Optional }] },
124
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_FORMATS,] }] },
125
- { type: MatFormField, decorators: [{ type: Optional }, { type: Inject, args: [MAT_FORM_FIELD,] }] }
126
- ];
127
- __decorate([
128
- Input(),
129
- __metadata("design:type", MatDatepicker),
130
- __metadata("design:paramtypes", [MatDatepicker])
131
- ], MatDatepickerInput.prototype, "gipiMatDatepicker", null);
132
- __decorate([
133
- Input(),
134
- __metadata("design:type", Object),
135
- __metadata("design:paramtypes", [Object])
136
- ], MatDatepickerInput.prototype, "min", null);
137
- __decorate([
138
- Input(),
139
- __metadata("design:type", Object),
140
- __metadata("design:paramtypes", [Object])
141
- ], MatDatepickerInput.prototype, "max", null);
142
- __decorate([
143
- Input('gipiMatDatepickerFilter'),
144
- __metadata("design:type", Function),
145
- __metadata("design:paramtypes", [Function])
146
- ], MatDatepickerInput.prototype, "dateFilter", null);
147
- MatDatepickerInput = MatDatepickerInput_1 = __decorate([
148
- Directive({
149
- selector: 'input[gipiMatDatepicker]',
150
- providers: [
151
- MAT_DATEPICKER_VALUE_ACCESSOR,
152
- MAT_DATEPICKER_VALIDATORS,
153
- { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MatDatepickerInput_1 },
154
- ],
155
- host: {
156
- 'class': 'mat-datepicker-input',
157
- '[attr.aria-haspopup]': '_datepicker ? "dialog" : null',
158
- '[attr.aria-owns]': '(_datepicker?.opened && _datepicker.id) || null',
159
- '[attr.min]': 'min ? _dateAdapter.toIso8601(min) : null',
160
- '[attr.max]': 'max ? _dateAdapter.toIso8601(max) : null',
161
- // Used by the test harness to tie this input to its calendar. We can't depend on
162
- // `aria-owns` for this, because it's only defined while the calendar is open.
163
- '[attr.data-mat-calendar]': '_datepicker ? _datepicker.id : null',
164
- '[disabled]': 'disabled',
165
- '(input)': '_onInput($event.target.value)',
166
- '(change)': '_onChange()',
167
- '(blur)': '_onBlur()',
168
- '(keydown)': '_onKeydown($event)',
169
- },
170
- exportAs: 'gipiMatDatepickerInput',
171
- }),
172
- __param(1, Optional()),
173
- __param(2, Optional()), __param(2, Inject(MAT_DATE_FORMATS)),
174
- __param(3, Optional()), __param(3, Inject(MAT_FORM_FIELD)),
175
- __metadata("design:paramtypes", [ElementRef,
176
- DateAdapter, Object, MatFormField])
177
- ], MatDatepickerInput);
178
- export { MatDatepickerInput };
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFlLFVBQVUsR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsR0FBaUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQWdCLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBUTtJQUM5QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFRO0lBQzFDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JB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QztRQUNQLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsU0FBUyxFQUFFO1lBQ1AsNkJBQTZCO1lBQzdCLHlCQUF5QjtZQUN6QixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsb0JBQWtCLEVBQUU7U0FDekU7UUFDRCxJQUFJLEVBQUU7WUFDRixPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLHNCQUFzQixFQUFFLCtCQUErQjtZQUN2RCxrQkFBa0IsRUFBRSxpREFBaUQ7WUFDckUsWUFBWSxFQUFFLDBDQUEwQztZQUN4RCxZQUFZLEVBQUUsMENBQTBDO1lBQ3hELGlGQUFpRjtZQUNqRiw4RUFBOEU7WUFDOUUsMEJBQTBCLEVBQUUscUNBQXFDO1lBQ2pFLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFNBQVMsRUFBRSwrQkFBK0I7WUFDMUMsVUFBVSxFQUFFLGFBQWE7WUFDekIsUUFBUSxFQUFFLFdBQVc7WUFDckIsV0FBVyxFQUFFLG9CQUFvQjtTQUNwQztRQUNELFFBQVEsRUFBRSx3QkFBd0I7S0FDckMsQ0FBQztJQXFETyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDcEMsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO3FDQUh2QixVQUFVO1FBQ0csV0FBVyxVQUVvQixZQUFZO0dBdEQvRCxrQkFBa0IsQ0E2SDlCO1NBN0hZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPcHRpb25hbCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycywgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTLCBNYXREYXRlRm9ybWF0cywgVGhlbWVQYWxldHRlLCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnLi9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJDb250cm9sIH0gZnJvbSAnLi9kYXRlcGlja2VyLWJhc2UnO1xuaW1wb3J0IHsgRGF0ZUZpbHRlckZuLCBNYXREYXRlcGlja2VySW5wdXRCYXNlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL3NoYXJlZC9hZGFwdGVyL2RhdGUtYWRhcHRlcic7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgTUFUX0RBVEVQSUNLRVJfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNYXREYXRlcGlja2VySW5wdXQpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IE1BVF9EQVRFUElDS0VSX1ZBTElEQVRPUlM6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1hdERhdGVwaWNrZXJJbnB1dCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBNQVRfRk9STV9GSUVMRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNYXRGb3JtRmllbGQ+KCdNYXRGb3JtRmllbGQnKTtcblxuLyoqIERpcmVjdGl2ZSB1c2VkIHRvIGNvbm5lY3QgYW4gaW5wdXQgdG8gYSBNYXREYXRlcGlja2VyLiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFtnaXBpTWF0RGF0ZXBpY2tlcl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBNQVRfREFURVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgTUFUX0RBVEVQSUNLRVJfVkFMSURBVE9SUyxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBNYXREYXRlcGlja2VySW5wdXQgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ21hdC1kYXRlcGlja2VyLWlucHV0JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtaGFzcG9wdXBdJzogJ19kYXRlcGlja2VyID8gXCJkaWFsb2dcIiA6IG51bGwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1vd25zXSc6ICcoX2RhdGVwaWNrZXI/Lm9wZW5lZCAmJiBfZGF0ZXBpY2tlci5pZCkgfHwgbnVsbCcsXG4gICAgICAgICdbYXR0ci5taW5dJzogJ21pbiA/IF9kYXRlQWRhcHRlci50b0lzbzg2MDEobWluKSA6IG51bGwnLFxuICAgICAgICAnW2F0dHIubWF4XSc6ICdtYXggPyBfZGF0ZUFkYXB0ZXIudG9Jc284NjAxKG1heCkgOiBudWxsJyxcbiAgICAgICAgLy8gVXNlZCBieSB0aGUgdGVzdCBoYXJuZXNzIHRvIHRpZSB0aGlzIGlucHV0IHRvIGl0cyBjYWxlbmRhci4gV2UgY2FuJ3QgZGVwZW5kIG9uXG4gICAgICAgIC8vIGBhcmlhLW93bnNgIGZvciB0aGlzLCBiZWNhdXNlIGl0J3Mgb25seSBkZWZpbmVkIHdoaWxlIHRoZSBjYWxlbmRhciBpcyBvcGVuLlxuICAgICAgICAnW2F0dHIuZGF0YS1tYXQtY2FsZW5kYXJdJzogJ19kYXRlcGlja2VyID8gX2RhdGVwaWNrZXIuaWQgOiBudWxsJyxcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnKGlucHV0KSc6ICdfb25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdfb25DaGFuZ2UoKScsXG4gICAgICAgICcoYmx1ciknOiAnX29uQmx1cigpJyxcbiAgICAgICAgJyhrZXlkb3duKSc6ICdfb25LZXlkb3duKCRldmVudCknLFxuICAgIH0sXG4gICAgZXhwb3J0QXM6ICdnaXBpTWF0RGF0ZXBpY2tlcklucHV0Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZXBpY2tlcklucHV0PEQ+IGV4dGVuZHMgTWF0RGF0ZXBpY2tlcklucHV0QmFzZTxEIHwgbnVsbCwgRD4gaW1wbGVtZW50cyBNYXREYXRlcGlja2VyQ29udHJvbDxEIHwgbnVsbD4ge1xuXG4gICAgLyoqIFRoZSBkYXRlcGlja2VyIHRoYXQgdGhpcyBpbnB1dCBpcyBhc3NvY2lhdGVkIHdpdGguICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZ2lwaU1hdERhdGVwaWNrZXIoZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxEPikge1xuICAgICAgICBpZiAoZGF0ZXBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5fZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XG4gICAgICAgICAgICB0aGlzLl9yZWdpc3Rlck1vZGVsKGRhdGVwaWNrZXIuX3JlZ2lzdGVySW5wdXQodGhpcykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9kYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPEQ+O1xuXG4gICAgLyoqIFRoZSBtaW5pbXVtIHZhbGlkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbWluKCk6IEQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX21pbjsgfVxuICAgIHNldCBtaW4odmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVBZGFwdGVyLnNhbWVEYXRlKHZhbGlkVmFsdWUsIHRoaXMuX21pbikpIHtcbiAgICAgICAgICAgIHRoaXMuX21pbiA9IHZhbGlkVmFsdWU7XG4gICAgICAgICAgICB0aGlzLl92YWxpZGF0b3JPbkNoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX21pbjogRCB8IG51bGw7XG5cbiAgICAvKiogVGhlIG1heGltdW0gdmFsaWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBtYXgoKTogRCB8IG51bGwgeyByZXR1cm4gdGhpcy5fbWF4OyB9XG4gICAgc2V0IG1heCh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZUFkYXB0ZXIuc2FtZURhdGUodmFsaWRWYWx1ZSwgdGhpcy5fbWF4KSkge1xuICAgICAgICAgICAgdGhpcy5fbWF4ID0gdmFsaWRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvck9uQ2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfbWF4OiBEIHwgbnVsbDtcblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbHRlciBvdXQgZGF0ZXMgd2l0aGluIHRoZSBkYXRlcGlja2VyLiAqL1xuICAgIEBJbnB1dCgnZ2lwaU1hdERhdGVwaWNrZXJGaWx0ZXInKVxuICAgIGdldCBkYXRlRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjsgfVxuICAgIHNldCBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlRmlsdGVyRm48RCB8IG51bGw+KSB7XG4gICAgICAgIHRoaXMuX2RhdGVGaWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fdmFsaWRhdG9yT25DaGFuZ2UoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPEQgfCBudWxsPjtcblxuICAgIC8qKiBUaGUgY29tYmluZWQgZm9ybSBjb250cm9sIHZhbGlkYXRvciBmb3IgdGhpcyBpbnB1dC4gKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRvcjogVmFsaWRhdG9yRm4gfCBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBkYXRlRm9ybWF0czogTWF0RGF0ZUZvcm1hdHMsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHByaXZhdGUgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRhdGVBZGFwdGVyLCBkYXRlRm9ybWF0cyk7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRvciA9IFZhbGlkYXRvcnMuY29tcG9zZShzdXBlci5fZ2V0VmFsaWRhdG9ycygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBlbGVtZW50IHRoYXQgdGhlIGRhdGVwaWNrZXIgcG9wdXAgc2hvdWxkIGJlIGNvbm5lY3RlZCB0by5cbiAgICAgKiBAcmV0dXJuIFRoZSBlbGVtZW50IHRvIGNvbm5lY3QgdGhlIHBvcHVwIHRvLlxuICAgICAqL1xuICAgIGdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGQgPyB0aGlzLl9mb3JtRmllbGQuZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpIDogdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcGFsZXR0ZSB1c2VkIGJ5IHRoZSBpbnB1dCdzIGZvcm0gZmllbGQsIGlmIGFueS4gKi9cbiAgICBnZXRUaGVtZVBhbGV0dGUoKTogVGhlbWVQYWxldHRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5jb2xvciA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogR2V0cyB0aGUgdmFsdWUgYXQgd2hpY2ggdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydC4gKi9cbiAgICBnZXRTdGFydFZhbHVlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAYnJlYWtpbmctY2hhbmdlIDguMC4wIFVzZSBgZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbmAgaW5zdGVhZFxuICAgICAqL1xuICAgIGdldFBvcHVwQ29ubmVjdGlvbkVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbnMgdGhlIGFzc29jaWF0ZWQgZGF0ZXBpY2tlci4gKi9cbiAgICBwcm90ZWN0ZWQgX29wZW5Qb3B1cCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGVwaWNrZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGVwaWNrZXIub3BlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9nZXRWYWx1ZUZyb21Nb2RlbChtb2RlbFZhbHVlOiBEIHwgbnVsbCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIG1vZGVsVmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9hc3NpZ25WYWx1ZVRvTW9kZWwodmFsdWU6IEQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWwudXBkYXRlU2VsZWN0aW9uKHZhbHVlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBHZXRzIHRoZSBpbnB1dCdzIG1pbmltdW0gZGF0ZS4gKi9cbiAgICBfZ2V0TWluRGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG5cbiAgICAvKiogR2V0cyB0aGUgaW5wdXQncyBtYXhpbXVtIGRhdGUuICovXG4gICAgX2dldE1heERhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuXG4gICAgLyoqIEdldHMgdGhlIGlucHV0J3MgZGF0ZSBmaWx0ZXJpbmcgZnVuY3Rpb24uICovXG4gICAgcHJvdGVjdGVkIF9nZXREYXRlRmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NhbkVtaXRDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gVW5uZWNlc3Nhcnkgd2hlbiBzZWxlY3RpbmcgYSBzaW5nbGUgZGF0ZS5cbiAgICBwcm90ZWN0ZWQgX291dHNpZGVWYWx1ZUNoYW5nZWQ6IHVuZGVmaW5lZDtcblxufVxuIl19
@@ -1,51 +0,0 @@
1
- import { __decorate } from "tslib";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.io/license
8
- */
9
- import { Injectable } from '@angular/core';
10
- import { Subject } from 'rxjs';
11
- import * as i0 from "@angular/core";
12
- /** Datepicker data that requires internationalization. */
13
- let MatDatepickerIntl = class MatDatepickerIntl {
14
- constructor() {
15
- /**
16
- * Stream that emits whenever the labels here are changed. Use this to notify
17
- * components if the labels have changed after initialization.
18
- */
19
- this.changes = new Subject();
20
- /** A label for the calendar popup (used by screen readers). */
21
- this.calendarLabel = 'Calendar';
22
- /** A label for the button used to open the calendar popup (used by screen readers). */
23
- this.openCalendarLabel = 'Open calendar';
24
- /** A label for the previous month button (used by screen readers). */
25
- this.prevMonthLabel = 'Previous month';
26
- /** A label for the next month button (used by screen readers). */
27
- this.nextMonthLabel = 'Next month';
28
- /** A label for the previous year button (used by screen readers). */
29
- this.prevYearLabel = 'Previous year';
30
- /** A label for the next year button (used by screen readers). */
31
- this.nextYearLabel = 'Next year';
32
- /** A label for the previous multi-year button (used by screen readers). */
33
- this.prevMultiYearLabel = 'Previous 20 years';
34
- /** A label for the next multi-year button (used by screen readers). */
35
- this.nextMultiYearLabel = 'Next 20 years';
36
- /** A label for the 'switch to month view' button (used by screen readers). */
37
- this.switchToMonthViewLabel = 'Choose date';
38
- /** A label for the 'switch to year view' button (used by screen readers). */
39
- this.switchToMultiYearViewLabel = 'Choose month and year';
40
- }
41
- /** Formats a range of years. */
42
- formatYearRange(start, end) {
43
- return `${start} \u2013 ${end}`;
44
- }
45
- };
46
- MatDatepickerIntl.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function MatDatepickerIntl_Factory() { return new MatDatepickerIntl(); }, token: MatDatepickerIntl, providedIn: "root" });
47
- MatDatepickerIntl = __decorate([
48
- Injectable({ providedIn: 'root' })
49
- ], MatDatepickerIntl);
50
- export { MatDatepickerIntl };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnRsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRlcGlja2VyL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItaW50bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQiwwREFBMEQ7QUFFMUQsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7SUFBOUI7UUFDSTs7O1dBR0c7UUFDTSxZQUFPLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEQsK0RBQStEO1FBQy9ELGtCQUFhLEdBQVcsVUFBVSxDQUFDO1FBRW5DLHVGQUF1RjtRQUN2RixzQkFBaUIsR0FBVyxlQUFlLENBQUM7UUFFNUMsc0VBQXNFO1FBQ3RFLG1CQUFjLEdBQVcsZ0JBQWdCLENBQUM7UUFFMUMsa0VBQWtFO1FBQ2xFLG1CQUFjLEdBQVcsWUFBWSxDQUFDO1FBRXRDLHFFQUFxRTtRQUNyRSxrQkFBYSxHQUFXLGVBQWUsQ0FBQztRQUV4QyxpRUFBaUU7UUFDakUsa0JBQWEsR0FBVyxXQUFXLENBQUM7UUFFcEMsMkVBQTJFO1FBQzNFLHVCQUFrQixHQUFXLG1CQUFtQixDQUFDO1FBRWpELHVFQUF1RTtRQUN2RSx1QkFBa0IsR0FBVyxlQUFlLENBQUM7UUFFN0MsOEVBQThFO1FBQzlFLDJCQUFzQixHQUFXLGFBQWEsQ0FBQztRQUUvQyw2RUFBNkU7UUFDN0UsK0JBQTBCLEdBQVcsdUJBQXVCLENBQUM7S0FNaEU7SUFKRyxnQ0FBZ0M7SUFDaEMsZUFBZSxDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQ3RDLE9BQU8sR0FBRyxLQUFLLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUE7O0FBekNZLGlCQUFpQjtJQUQ3QixVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7R0FDdEIsaUJBQWlCLENBeUM3QjtTQXpDWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5cbi8qKiBEYXRlcGlja2VyIGRhdGEgdGhhdCByZXF1aXJlcyBpbnRlcm5hdGlvbmFsaXphdGlvbi4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZXBpY2tlckludGwge1xuICAgIC8qKlxuICAgICAqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW5ldmVyIHRoZSBsYWJlbHMgaGVyZSBhcmUgY2hhbmdlZC4gVXNlIHRoaXMgdG8gbm90aWZ5XG4gICAgICogY29tcG9uZW50cyBpZiB0aGUgbGFiZWxzIGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBjaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgY2FsZW5kYXIgcG9wdXAgKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIGNhbGVuZGFyTGFiZWw6IHN0cmluZyA9ICdDYWxlbmRhcic7XG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIGJ1dHRvbiB1c2VkIHRvIG9wZW4gdGhlIGNhbGVuZGFyIHBvcHVwICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gKi9cbiAgICBvcGVuQ2FsZW5kYXJMYWJlbDogc3RyaW5nID0gJ09wZW4gY2FsZW5kYXInO1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBtb250aCBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIHByZXZNb250aExhYmVsOiBzdHJpbmcgPSAnUHJldmlvdXMgbW9udGgnO1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBuZXh0IG1vbnRoIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgbmV4dE1vbnRoTGFiZWw6IHN0cmluZyA9ICdOZXh0IG1vbnRoJztcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgcHJldmlvdXMgeWVhciBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIHByZXZZZWFyTGFiZWw6IHN0cmluZyA9ICdQcmV2aW91cyB5ZWFyJztcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgbmV4dCB5ZWFyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgbmV4dFllYXJMYWJlbDogc3RyaW5nID0gJ05leHQgeWVhcic7XG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIHByZXZpb3VzIG11bHRpLXllYXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gKi9cbiAgICBwcmV2TXVsdGlZZWFyTGFiZWw6IHN0cmluZyA9ICdQcmV2aW91cyAyMCB5ZWFycyc7XG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIG5leHQgbXVsdGkteWVhciBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIG5leHRNdWx0aVllYXJMYWJlbDogc3RyaW5nID0gJ05leHQgMjAgeWVhcnMnO1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSAnc3dpdGNoIHRvIG1vbnRoIHZpZXcnIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgc3dpdGNoVG9Nb250aFZpZXdMYWJlbDogc3RyaW5nID0gJ0Nob29zZSBkYXRlJztcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgJ3N3aXRjaCB0byB5ZWFyIHZpZXcnIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgc3dpdGNoVG9NdWx0aVllYXJWaWV3TGFiZWw6IHN0cmluZyA9ICdDaG9vc2UgbW9udGggYW5kIHllYXInO1xuXG4gICAgLyoqIEZvcm1hdHMgYSByYW5nZSBvZiB5ZWFycy4gKi9cbiAgICBmb3JtYXRZZWFyUmFuZ2Uoc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7c3RhcnR9IFxcdTIwMTMgJHtlbmR9YDtcbiAgICB9XG59XG4iXX0=