@gipisistemas/ng-core 1.0.67 → 1.0.68

Sign up to get free protection for your applications and to get access to all the features.
Files changed (782) hide show
  1. package/assets/styles/colors.scss +261 -0
  2. package/assets/styles/layout-grid.scss +146 -0
  3. package/assets/styles/styles.scss +149 -0
  4. package/assets/styles/theme.scss +22 -0
  5. package/assets/styles/typography.scss +54 -0
  6. package/assets/styles/variable.scss +41 -0
  7. package/bundles/gipisistemas-ng-core.umd.js +28311 -0
  8. package/bundles/gipisistemas-ng-core.umd.js.map +1 -0
  9. package/bundles/gipisistemas-ng-core.umd.min.js +66 -0
  10. package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -0
  11. package/core/app-messages.d.ts +9 -0
  12. package/core/app.messages.d.ts +4 -0
  13. package/core/components/abstract-crud.component.d.ts +27 -0
  14. package/core/components/abstract-find.component.d.ts +43 -0
  15. package/core/components/abstract.component.d.ts +23 -0
  16. package/core/components/alert/alert.component.d.ts +7 -0
  17. package/core/core.module.d.ts +17 -0
  18. package/core/custom-breakpoints.d.ts +7 -0
  19. package/core/enums/local-time.enum.d.ts +5 -0
  20. package/core/extensions/string.extension.d.ts +3 -0
  21. package/core/gipi-components/components/abstract-crud.component.d.ts +25 -0
  22. package/core/gipi-components/components/abstract-find.component.d.ts +73 -0
  23. package/core/gipi-components/components/abstract.component.d.ts +38 -0
  24. package/core/gipi-components/decorators/autowired.decorator.d.ts +7 -0
  25. package/core/gipi-components/enums/sort-direction.enum.d.ts +5 -0
  26. package/core/gipi-components/interface/abstract-crud.interface.d.ts +5 -0
  27. package/core/gipi-components/interface/abstract-find.interface.d.ts +12 -0
  28. package/core/gipi-components/interface/abstract.interface.d.ts +11 -0
  29. package/core/gipi-components/interface/base-permission.interface.d.ts +9 -0
  30. package/core/gipi-components/models/abstract-filter.model.d.ts +9 -0
  31. package/core/gipi-components/models/abstract.model.d.ts +7 -0
  32. package/core/gipi-components/models/applied-filter.model.d.ts +9 -0
  33. package/core/gipi-components/models/dto/abstract.dto.d.ts +7 -0
  34. package/core/gipi-components/models/page-event.model.d.ts +18 -0
  35. package/core/gipi-components/models/page.model.d.ts +7 -0
  36. package/core/gipi-components/models/sort.model.d.ts +6 -0
  37. package/core/gipi-components/services/abstract-crud.service.d.ts +83 -0
  38. package/core/gipi-components/services/abstract.service.d.ts +19 -0
  39. package/core/gipi-components/services/base.service.d.ts +35 -0
  40. package/core/gipi-components/services/file.service.d.ts +6 -0
  41. package/core/gipi-components/services/session-storage.service.d.ts +8 -0
  42. package/core/gipi-components/types/generic.type.d.ts +1 -0
  43. package/core/gipi-components/types/uuid.type.d.ts +1 -0
  44. package/core/guards/auth.guard.d.ts +11 -0
  45. package/core/guards/permission.guard.d.ts +14 -0
  46. package/core/guards/public.guard.d.ts +11 -0
  47. package/core/interceptors/auth.interceptor.d.ts +9 -0
  48. package/core/interceptors/error.interceptor.d.ts +11 -0
  49. package/core/models/abstract.model.d.ts +3 -0
  50. package/core/models/archive.model.d.ts +4 -0
  51. package/core/models/authority.model.d.ts +3 -0
  52. package/core/models/base-user.model.d.ts +12 -0
  53. package/core/models/dto/abstract.dto.d.ts +2 -0
  54. package/core/models/dto/api-error.dto.d.ts +9 -0
  55. package/core/models/dto/api-sub-error.dto.d.ts +7 -0
  56. package/core/models/dto/chart.dto.d.ts +5 -0
  57. package/core/models/dto/confirmation.dto.d.ts +10 -0
  58. package/core/models/dto/dialog.dto.d.ts +36 -0
  59. package/core/models/dto/filter.dto.d.ts +8 -0
  60. package/core/models/dto/input-listbox.dto.d.ts +6 -0
  61. package/core/models/dto/menu.dto.d.ts +15 -0
  62. package/core/models/dto/message.dto.d.ts +7 -0
  63. package/core/models/dto/page.dto.d.ts +8 -0
  64. package/core/models/dto/sort.dto.d.ts +7 -0
  65. package/core/models/dto/tab.dto.d.ts +12 -0
  66. package/core/models/dto/table-column.dto.d.ts +21 -0
  67. package/core/models/dto/table-group-header.dto.d.ts +7 -0
  68. package/core/models/dto/table-page-event.dto.d.ts +6 -0
  69. package/core/models/dto/token.dto.d.ts +8 -0
  70. package/core/models/enums/criteria-operation.enum.d.ts +13 -0
  71. package/core/models/enums/criteria-sort-direction.enum.d.ts +4 -0
  72. package/core/models/enums/menu-type.enum.d.ts +6 -0
  73. package/core/models/enums/radio-button.enum.d.ts +6 -0
  74. package/core/models/enums/sort-direction.enum.d.ts +4 -0
  75. package/core/models/multitenant.model.d.ts +4 -0
  76. package/core/models/permission.model.d.ts +8 -0
  77. package/core/models/role.model.d.ts +7 -0
  78. package/core/pipes/local-time.pipe.d.ts +6 -0
  79. package/core/services/abstract-crud.service.d.ts +15 -0
  80. package/core/services/abstract-find.service.d.ts +30 -0
  81. package/core/services/abstract.service.d.ts +13 -0
  82. package/core/services/authentication.service.d.ts +23 -0
  83. package/core/services/breakpoint-observer.service.d.ts +9 -0
  84. package/core/services/confirmation.service.d.ts +8 -0
  85. package/core/services/dialog.service.d.ts +8 -0
  86. package/core/services/message.service.d.ts +8 -0
  87. package/core/services/nav.service.d.ts +16 -0
  88. package/core/services/svg-register.service.d.ts +22 -0
  89. package/core/types/local-time.type.d.ts +5 -0
  90. package/core/types/ng-class.type.d.ts +10 -0
  91. package/core/utils/array.util.d.ts +14 -0
  92. package/core/utils/browser.util.d.ts +4 -0
  93. package/core/utils/currency.util.d.ts +6 -0
  94. package/core/utils/date.util.d.ts +39 -0
  95. package/core/utils/document.util.d.ts +11 -0
  96. package/core/utils/email.util.d.ts +4 -0
  97. package/core/utils/number.util.d.ts +8 -0
  98. package/core/utils/object.util.d.ts +20 -0
  99. package/core/utils/password.util.d.ts +11 -0
  100. package/core/utils/phone.util.d.ts +13 -0
  101. package/core/utils/string.util.d.ts +9 -0
  102. package/core/utils/table-column-builder.d.ts +40 -0
  103. package/core/utils/time.util.d.ts +9 -0
  104. package/core/utils/url-params.util.d.ts +7 -0
  105. package/core/utils/uuid.util.d.ts +5 -0
  106. package/core/utils/zindex.util.d.ts +7 -0
  107. package/core.d.ts +88 -0
  108. package/esm2015/core/app-messages.js +1 -0
  109. package/esm2015/core/app.messages.js +12 -0
  110. package/esm2015/core/components/abstract-crud.component.js +97 -0
  111. package/esm2015/core/components/abstract-find.component.js +189 -0
  112. package/esm2015/core/components/abstract.component.js +110 -0
  113. package/esm2015/core/components/alert/alert.component.js +24 -0
  114. package/esm2015/core/core.module.js +103 -0
  115. package/esm2015/core/custom-breakpoints.js +87 -0
  116. package/esm2015/core/enums/local-time.enum.js +6 -0
  117. package/esm2015/core/extensions/string.extension.js +37 -0
  118. package/esm2015/core/gipi-components/components/abstract-crud.component.js +110 -0
  119. package/esm2015/core/gipi-components/components/abstract-find.component.js +471 -0
  120. package/esm2015/core/gipi-components/components/abstract.component.js +140 -0
  121. package/esm2015/core/gipi-components/decorators/autowired.decorator.js +47 -0
  122. package/esm2015/core/gipi-components/enums/sort-direction.enum.js +6 -0
  123. package/esm2015/core/gipi-components/interface/abstract-crud.interface.js +1 -0
  124. package/esm2015/core/gipi-components/interface/abstract-find.interface.js +1 -0
  125. package/esm2015/core/gipi-components/interface/abstract.interface.js +1 -0
  126. package/esm2015/core/gipi-components/interface/base-permission.interface.js +1 -0
  127. package/esm2015/core/gipi-components/models/abstract-filter.model.js +3 -0
  128. package/esm2015/core/gipi-components/models/abstract.model.js +3 -0
  129. package/esm2015/core/gipi-components/models/applied-filter.model.js +19 -0
  130. package/esm2015/core/gipi-components/models/dto/abstract.dto.js +3 -0
  131. package/esm2015/core/gipi-components/models/page-event.model.js +35 -0
  132. package/esm2015/core/gipi-components/models/page.model.js +7 -0
  133. package/esm2015/core/gipi-components/models/sort.model.js +7 -0
  134. package/esm2015/core/gipi-components/services/abstract-crud.service.js +109 -0
  135. package/esm2015/core/gipi-components/services/abstract.service.js +47 -0
  136. package/esm2015/core/gipi-components/services/base.service.js +102 -0
  137. package/esm2015/core/gipi-components/services/file.service.js +51 -0
  138. package/esm2015/core/gipi-components/services/session-storage.service.js +44 -0
  139. package/esm2015/core/gipi-components/types/generic.type.js +1 -0
  140. package/esm2015/core/gipi-components/types/uuid.type.js +1 -0
  141. package/esm2015/core/guards/auth.guard.js +48 -0
  142. package/esm2015/core/guards/permission.guard.js +61 -0
  143. package/esm2015/core/guards/public.guard.js +45 -0
  144. package/esm2015/core/interceptors/auth.interceptor.js +28 -0
  145. package/esm2015/core/interceptors/error.interceptor.js +110 -0
  146. package/esm2015/core/models/abstract.model.js +3 -0
  147. package/esm2015/core/models/archive.model.js +3 -0
  148. package/esm2015/core/models/authority.model.js +3 -0
  149. package/esm2015/core/models/base-user.model.js +8 -0
  150. package/esm2015/core/models/dto/abstract.dto.js +3 -0
  151. package/esm2015/core/models/dto/api-error.dto.js +8 -0
  152. package/esm2015/core/models/dto/api-sub-error.dto.js +4 -0
  153. package/esm2015/core/models/dto/chart.dto.js +4 -0
  154. package/esm2015/core/models/dto/confirmation.dto.js +8 -0
  155. package/esm2015/core/models/dto/dialog.dto.js +4 -0
  156. package/esm2015/core/models/dto/filter.dto.js +4 -0
  157. package/esm2015/core/models/dto/input-listbox.dto.js +7 -0
  158. package/esm2015/core/models/dto/menu.dto.js +9 -0
  159. package/esm2015/core/models/dto/message.dto.js +4 -0
  160. package/esm2015/core/models/dto/page.dto.js +9 -0
  161. package/esm2015/core/models/dto/sort.dto.js +9 -0
  162. package/esm2015/core/models/dto/tab.dto.js +10 -0
  163. package/esm2015/core/models/dto/table-column.dto.js +24 -0
  164. package/esm2015/core/models/dto/table-group-header.dto.js +10 -0
  165. package/esm2015/core/models/dto/table-page-event.dto.js +7 -0
  166. package/esm2015/core/models/dto/token.dto.js +4 -0
  167. package/esm2015/core/models/enums/criteria-operation.enum.js +15 -0
  168. package/esm2015/core/models/enums/criteria-sort-direction.enum.js +6 -0
  169. package/esm2015/core/models/enums/menu-type.enum.js +7 -0
  170. package/esm2015/core/models/enums/radio-button.enum.js +8 -0
  171. package/esm2015/core/models/enums/sort-direction.enum.js +6 -0
  172. package/esm2015/core/models/multitenant.model.js +4 -0
  173. package/esm2015/core/models/permission.model.js +11 -0
  174. package/esm2015/core/models/role.model.js +8 -0
  175. package/esm2015/core/pipes/local-time.pipe.js +21 -0
  176. package/esm2015/core/services/abstract-crud.service.js +24 -0
  177. package/esm2015/core/services/abstract-find.service.js +65 -0
  178. package/esm2015/core/services/abstract.service.js +30 -0
  179. package/esm2015/core/services/authentication.service.js +100 -0
  180. package/esm2015/core/services/breakpoint-observer.service.js +42 -0
  181. package/esm2015/core/services/confirmation.service.js +55 -0
  182. package/esm2015/core/services/dialog.service.js +41 -0
  183. package/esm2015/core/services/message.service.js +33 -0
  184. package/esm2015/core/services/nav.service.js +48 -0
  185. package/esm2015/core/services/svg-register.service.js +55 -0
  186. package/esm2015/core/types/local-time.type.js +1 -0
  187. package/esm2015/core/types/ng-class.type.js +1 -0
  188. package/esm2015/core/utils/array.util.js +110 -0
  189. package/esm2015/core/utils/browser.util.js +13 -0
  190. package/esm2015/core/utils/currency.util.js +21 -0
  191. package/esm2015/core/utils/date.util.js +257 -0
  192. package/esm2015/core/utils/document.util.js +153 -0
  193. package/esm2015/core/utils/email.util.js +25 -0
  194. package/esm2015/core/utils/number.util.js +28 -0
  195. package/esm2015/core/utils/object.util.js +199 -0
  196. package/esm2015/core/utils/password.util.js +38 -0
  197. package/esm2015/core/utils/phone.util.js +125 -0
  198. package/esm2015/core/utils/string.util.js +40 -0
  199. package/esm2015/core/utils/table-column-builder.js +85 -0
  200. package/esm2015/core/utils/time.util.js +59 -0
  201. package/esm2015/core/utils/url-params.util.js +12 -0
  202. package/esm2015/core/utils/uuid.util.js +17 -0
  203. package/esm2015/core/utils/zindex.util.js +35 -0
  204. package/esm2015/core.js +89 -0
  205. package/esm2015/gipi-components.js +105 -0
  206. package/esm2015/gipisistemas-ng-core.js +21 -0
  207. package/esm2015/public_api.js +4 -0
  208. package/esm2015/shared/api/generate-id-component.js +12 -0
  209. package/esm2015/shared/api/gipi-ng-config.js +76 -0
  210. package/esm2015/shared/api/overlay-message.js +1 -0
  211. package/esm2015/shared/api/throttle.js +60 -0
  212. package/esm2015/shared/api/translation.js +1 -0
  213. package/esm2015/shared/components/button/button.component.js +110 -0
  214. package/esm2015/shared/components/card/card.component.js +44 -0
  215. package/esm2015/shared/components/checkbox/checkbox.component.js +79 -0
  216. package/esm2015/shared/components/dom/connected-overlay-scroll-handler.js +27 -0
  217. package/esm2015/shared/components/dom/dom-handler.js +538 -0
  218. package/esm2015/shared/components/icon/icon.component.js +35 -0
  219. package/esm2015/shared/components/input/input.component.js +235 -0
  220. package/esm2015/shared/components/input-currency/input-currency.component.js +115 -0
  221. package/esm2015/shared/components/input-file/input-file.component.js +161 -0
  222. package/esm2015/shared/components/loading/loading.component.js +15 -0
  223. package/esm2015/shared/components/loading-overlay/loading-overlay.component.js +21 -0
  224. package/esm2015/shared/components/overlay-panel/overlay-panel.component.js +361 -0
  225. package/esm2015/shared/components/popover/popover-ref.js +25 -0
  226. package/esm2015/shared/components/popover/popover.component.js +34 -0
  227. package/esm2015/shared/components/popover/popover.service.js +85 -0
  228. package/esm2015/shared/components/radio-group-entity/radio-group-entity.component.js +74 -0
  229. package/esm2015/shared/components/radio-group-enum/radio-group-enum.component.js +126 -0
  230. package/esm2015/shared/components/select-button/select-button.component.js +181 -0
  231. package/esm2015/shared/components/select-entity/select-entity.component.js +262 -0
  232. package/esm2015/shared/components/select-entity-paged/select-entity-paged.component.js +419 -0
  233. package/esm2015/shared/components/select-entity-paged/shared/default-options.js +35 -0
  234. package/esm2015/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +69 -0
  235. package/esm2015/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +59 -0
  236. package/esm2015/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +20 -0
  237. package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +547 -0
  238. package/esm2015/shared/components/select-entity-paged/shared/select-search-clear.directive.js +18 -0
  239. package/esm2015/shared/components/select-enum/select-enum.component.js +117 -0
  240. package/esm2015/shared/components/select-month-period/select-month-period.component.js +87 -0
  241. package/esm2015/shared/components/slide-toggle/slide-toggle.component.js +75 -0
  242. package/esm2015/shared/components/stepper/stepper.component.js +32 -0
  243. package/esm2015/shared/components/tab/tab.component.js +57 -0
  244. package/esm2015/shared/components/tab-group/tab-group.component.js +117 -0
  245. package/esm2015/shared/components/table/table.component.js +523 -0
  246. package/esm2015/shared/components/table-scrolled/table-scrolled.component.js +105 -0
  247. package/esm2015/shared/components/textarea/textarea.component.js +156 -0
  248. package/esm2015/shared/directives/dynamic-tab.directive.js +18 -0
  249. package/esm2015/shared/directives/generic-template.directive.js +30 -0
  250. package/esm2015/shared/directives/input-select-infinite-scroll.directive.js +109 -0
  251. package/esm2015/shared/directives/lower-case.directive.js +47 -0
  252. package/esm2015/shared/directives/phone-mask.directive.js +60 -0
  253. package/esm2015/shared/directives/space-drop.directive.js +47 -0
  254. package/esm2015/shared/directives/upper-case.directive.js +47 -0
  255. package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +119 -0
  256. package/esm2015/shared/gipi-components/action-row/action-row.component.js +30 -0
  257. package/esm2015/shared/gipi-components/badge/badge.component.js +44 -0
  258. package/esm2015/shared/gipi-components/button/button.component.js +251 -0
  259. package/esm2015/shared/gipi-components/chips/chips.component.js +149 -0
  260. package/esm2015/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +44 -0
  261. package/esm2015/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +324 -0
  262. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +41 -0
  263. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +35 -0
  264. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +259 -0
  265. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +218 -0
  266. package/esm2015/shared/gipi-components/datepicker/datepicker.module.js +130 -0
  267. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +341 -0
  268. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar.js +397 -0
  269. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +325 -0
  270. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +329 -0
  271. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +41 -0
  272. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +61 -0
  273. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +159 -0
  274. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +35 -0
  275. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +555 -0
  276. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +14 -0
  277. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +303 -0
  278. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +179 -0
  279. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +51 -0
  280. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +124 -0
  281. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +29 -0
  282. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/month-view.js +365 -0
  283. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +305 -0
  284. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +116 -0
  285. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +10 -0
  286. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +294 -0
  287. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +19 -0
  288. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +81 -0
  289. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/year-view.js +294 -0
  290. package/esm2015/shared/gipi-components/dom/connected-overlay-scroll-handler.js +27 -0
  291. package/esm2015/shared/gipi-components/dom/dom-handler.js +645 -0
  292. package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +185 -0
  293. package/esm2015/shared/gipi-components/expansion-panel/expansion-panel.component.js +81 -0
  294. package/esm2015/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +240 -0
  295. package/esm2015/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +92 -0
  296. package/esm2015/shared/gipi-components/footer/footer.component.js +29 -0
  297. package/esm2015/shared/gipi-components/form-field/form-field.component.js +262 -0
  298. package/esm2015/shared/gipi-components/helpful-tip/helpful-tip.component.js +62 -0
  299. package/esm2015/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +103 -0
  300. package/esm2015/shared/gipi-components/input-checkbox/input-checkbox.component.js +112 -0
  301. package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +197 -0
  302. package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +408 -0
  303. package/esm2015/shared/gipi-components/input-select/input-select.component.js +655 -0
  304. package/esm2015/shared/gipi-components/input-select-enum/input-select-enum.component.js +311 -0
  305. package/esm2015/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +422 -0
  306. package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +374 -0
  307. package/esm2015/shared/gipi-components/input-select-paged/input-select-paged.component.js +350 -0
  308. package/esm2015/shared/gipi-components/input-select-radio/input-select-radio.component.js +269 -0
  309. package/esm2015/shared/gipi-components/layout-grid/col.directive.js +161 -0
  310. package/esm2015/shared/gipi-components/layout-grid/row.directive.js +124 -0
  311. package/esm2015/shared/gipi-components/layout-grid/services/breakpoint.service.js +87 -0
  312. package/esm2015/shared/gipi-components/layout-grid/services/resize.service.js +64 -0
  313. package/esm2015/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +193 -0
  314. package/esm2015/shared/gipi-components/month-year-picker/mont-year-picker.module.js +47 -0
  315. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +460 -0
  316. package/esm2015/shared/gipi-components/notification/notification.component.js +104 -0
  317. package/esm2015/shared/gipi-components/novelties/novelties.component.js +109 -0
  318. package/esm2015/shared/gipi-components/overlay/overlay.component.js +565 -0
  319. package/esm2015/shared/gipi-components/overlay/shared/overlay-service.js +21 -0
  320. package/esm2015/shared/gipi-components/overlay/shared/overlay_options.js +1 -0
  321. package/esm2015/shared/gipi-components/password-requeriments/password-requeriments.component.js +127 -0
  322. package/esm2015/shared/gipi-components/popover/popover.component.js +397 -0
  323. package/esm2015/shared/gipi-components/popover/shared/popover-animations.js +29 -0
  324. package/esm2015/shared/gipi-components/popover/shared/popover-errors.js +27 -0
  325. package/esm2015/shared/gipi-components/popover/shared/popover-interfaces.js +1 -0
  326. package/esm2015/shared/gipi-components/popover/shared/popover-target.js +19 -0
  327. package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +514 -0
  328. package/esm2015/shared/gipi-components/popover/shared/popover-types.js +1 -0
  329. package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +143 -0
  330. package/esm2015/shared/gipi-components/range-page/range-page.component.js +254 -0
  331. package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +345 -0
  332. package/esm2015/shared/gipi-components/select/select.component.js +211 -0
  333. package/esm2015/shared/gipi-components/select-button/select-button.component.js +187 -0
  334. package/esm2015/shared/gipi-components/sidebar/container/container.component.js +83 -0
  335. package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +240 -0
  336. package/esm2015/shared/gipi-components/stepper/stepper.component.js +37 -0
  337. package/esm2015/shared/gipi-components/table/components/table-body/table-body.component.js +203 -0
  338. package/esm2015/shared/gipi-components/table/components/table-footer/table-footer.component.js +30 -0
  339. package/esm2015/shared/gipi-components/table/components/table-header/table-header.component.js +152 -0
  340. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +122 -0
  341. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +225 -0
  342. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +1 -0
  343. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +105 -0
  344. package/esm2015/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +102 -0
  345. package/esm2015/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +30 -0
  346. package/esm2015/shared/gipi-components/table/models/pipe-transform.model.js +1 -0
  347. package/esm2015/shared/gipi-components/table/models/sort.model.js +19 -0
  348. package/esm2015/shared/gipi-components/table/models/sorted-column.model.js +2 -0
  349. package/esm2015/shared/gipi-components/table/models/table-column-builder.model.js +104 -0
  350. package/esm2015/shared/gipi-components/table/models/table-column.model.js +162 -0
  351. package/esm2015/shared/gipi-components/table/table.component.js +159 -0
  352. package/esm2015/shared/gipi-components/table/types/sort-direction.type.js +1 -0
  353. package/esm2015/shared/gipi-components/table/types/sort.type.js +1 -0
  354. package/esm2015/shared/gipi-components/template/template.directive.js +33 -0
  355. package/esm2015/shared/gipi-components/toolbar/toolbar.component.js +53 -0
  356. package/esm2015/shared/gipi-components/top-nav/top-nav.component.js +38 -0
  357. package/esm2015/shared/gipi-components/user-profile/user-profile.component.js +109 -0
  358. package/esm2015/shared/material.module.js +102 -0
  359. package/esm2015/shared/shared.module.js +339 -0
  360. package/esm2015/shared.js +36 -0
  361. package/esm5/core/app-messages.js +1 -0
  362. package/esm5/core/app.messages.js +12 -0
  363. package/esm5/core/components/abstract-crud.component.js +108 -0
  364. package/esm5/core/components/abstract-find.component.js +201 -0
  365. package/esm5/core/components/abstract.component.js +112 -0
  366. package/esm5/core/components/alert/alert.component.js +25 -0
  367. package/esm5/core/core.module.js +107 -0
  368. package/esm5/core/custom-breakpoints.js +87 -0
  369. package/esm5/core/enums/local-time.enum.js +6 -0
  370. package/esm5/core/extensions/string.extension.js +37 -0
  371. package/esm5/core/gipi-components/components/abstract-crud.component.js +122 -0
  372. package/esm5/core/gipi-components/components/abstract-find.component.js +507 -0
  373. package/esm5/core/gipi-components/components/abstract.component.js +152 -0
  374. package/esm5/core/gipi-components/decorators/autowired.decorator.js +52 -0
  375. package/esm5/core/gipi-components/enums/sort-direction.enum.js +6 -0
  376. package/esm5/core/gipi-components/interface/abstract-crud.interface.js +1 -0
  377. package/esm5/core/gipi-components/interface/abstract-find.interface.js +1 -0
  378. package/esm5/core/gipi-components/interface/abstract.interface.js +1 -0
  379. package/esm5/core/gipi-components/interface/base-permission.interface.js +1 -0
  380. package/esm5/core/gipi-components/models/abstract-filter.model.js +7 -0
  381. package/esm5/core/gipi-components/models/abstract.model.js +7 -0
  382. package/esm5/core/gipi-components/models/applied-filter.model.js +29 -0
  383. package/esm5/core/gipi-components/models/dto/abstract.dto.js +7 -0
  384. package/esm5/core/gipi-components/models/page-event.model.js +49 -0
  385. package/esm5/core/gipi-components/models/page.model.js +9 -0
  386. package/esm5/core/gipi-components/models/sort.model.js +9 -0
  387. package/esm5/core/gipi-components/services/abstract-crud.service.js +114 -0
  388. package/esm5/core/gipi-components/services/abstract.service.js +49 -0
  389. package/esm5/core/gipi-components/services/base.service.js +143 -0
  390. package/esm5/core/gipi-components/services/file.service.js +53 -0
  391. package/esm5/core/gipi-components/services/session-storage.service.js +45 -0
  392. package/esm5/core/gipi-components/types/generic.type.js +1 -0
  393. package/esm5/core/gipi-components/types/uuid.type.js +1 -0
  394. package/esm5/core/guards/auth.guard.js +50 -0
  395. package/esm5/core/guards/permission.guard.js +74 -0
  396. package/esm5/core/guards/public.guard.js +47 -0
  397. package/esm5/core/interceptors/auth.interceptor.js +29 -0
  398. package/esm5/core/interceptors/error.interceptor.js +129 -0
  399. package/esm5/core/models/abstract.model.js +7 -0
  400. package/esm5/core/models/archive.model.js +7 -0
  401. package/esm5/core/models/authority.model.js +7 -0
  402. package/esm5/core/models/base-user.model.js +13 -0
  403. package/esm5/core/models/dto/abstract.dto.js +7 -0
  404. package/esm5/core/models/dto/api-error.dto.js +13 -0
  405. package/esm5/core/models/dto/api-sub-error.dto.js +11 -0
  406. package/esm5/core/models/dto/chart.dto.js +11 -0
  407. package/esm5/core/models/dto/confirmation.dto.js +13 -0
  408. package/esm5/core/models/dto/dialog.dto.js +11 -0
  409. package/esm5/core/models/dto/filter.dto.js +11 -0
  410. package/esm5/core/models/dto/input-listbox.dto.js +11 -0
  411. package/esm5/core/models/dto/menu.dto.js +14 -0
  412. package/esm5/core/models/dto/message.dto.js +11 -0
  413. package/esm5/core/models/dto/page.dto.js +14 -0
  414. package/esm5/core/models/dto/sort.dto.js +14 -0
  415. package/esm5/core/models/dto/tab.dto.js +15 -0
  416. package/esm5/core/models/dto/table-column.dto.js +29 -0
  417. package/esm5/core/models/dto/table-group-header.dto.js +15 -0
  418. package/esm5/core/models/dto/table-page-event.dto.js +11 -0
  419. package/esm5/core/models/dto/token.dto.js +11 -0
  420. package/esm5/core/models/enums/criteria-operation.enum.js +15 -0
  421. package/esm5/core/models/enums/criteria-sort-direction.enum.js +6 -0
  422. package/esm5/core/models/enums/menu-type.enum.js +7 -0
  423. package/esm5/core/models/enums/radio-button.enum.js +8 -0
  424. package/esm5/core/models/enums/sort-direction.enum.js +6 -0
  425. package/esm5/core/models/multitenant.model.js +11 -0
  426. package/esm5/core/models/permission.model.js +16 -0
  427. package/esm5/core/models/role.model.js +13 -0
  428. package/esm5/core/pipes/local-time.pipe.js +26 -0
  429. package/esm5/core/services/abstract-crud.service.js +30 -0
  430. package/esm5/core/services/abstract-find.service.js +71 -0
  431. package/esm5/core/services/abstract.service.js +32 -0
  432. package/esm5/core/services/authentication.service.js +121 -0
  433. package/esm5/core/services/breakpoint-observer.service.js +52 -0
  434. package/esm5/core/services/confirmation.service.js +66 -0
  435. package/esm5/core/services/dialog.service.js +44 -0
  436. package/esm5/core/services/message.service.js +36 -0
  437. package/esm5/core/services/nav.service.js +51 -0
  438. package/esm5/core/services/svg-register.service.js +67 -0
  439. package/esm5/core/types/local-time.type.js +1 -0
  440. package/esm5/core/types/ng-class.type.js +1 -0
  441. package/esm5/core/utils/array.util.js +120 -0
  442. package/esm5/core/utils/browser.util.js +17 -0
  443. package/esm5/core/utils/currency.util.js +26 -0
  444. package/esm5/core/utils/date.util.js +269 -0
  445. package/esm5/core/utils/document.util.js +157 -0
  446. package/esm5/core/utils/email.util.js +29 -0
  447. package/esm5/core/utils/number.util.js +32 -0
  448. package/esm5/core/utils/object.util.js +204 -0
  449. package/esm5/core/utils/password.util.js +42 -0
  450. package/esm5/core/utils/phone.util.js +135 -0
  451. package/esm5/core/utils/string.util.js +44 -0
  452. package/esm5/core/utils/table-column-builder.js +87 -0
  453. package/esm5/core/utils/time.util.js +65 -0
  454. package/esm5/core/utils/url-params.util.js +16 -0
  455. package/esm5/core/utils/uuid.util.js +21 -0
  456. package/esm5/core/utils/zindex.util.js +35 -0
  457. package/esm5/core.js +89 -0
  458. package/esm5/gipi-components.js +105 -0
  459. package/esm5/gipisistemas-ng-core.js +21 -0
  460. package/esm5/public_api.js +4 -0
  461. package/esm5/shared/api/generate-id-component.js +16 -0
  462. package/esm5/shared/api/gipi-ng-config.js +77 -0
  463. package/esm5/shared/api/overlay-message.js +1 -0
  464. package/esm5/shared/api/throttle.js +60 -0
  465. package/esm5/shared/api/translation.js +1 -0
  466. package/esm5/shared/components/button/button.component.js +111 -0
  467. package/esm5/shared/components/card/card.component.js +45 -0
  468. package/esm5/shared/components/checkbox/checkbox.component.js +85 -0
  469. package/esm5/shared/components/dom/connected-overlay-scroll-handler.js +30 -0
  470. package/esm5/shared/components/dom/dom-handler.js +573 -0
  471. package/esm5/shared/components/icon/icon.component.js +38 -0
  472. package/esm5/shared/components/input/input.component.js +242 -0
  473. package/esm5/shared/components/input-currency/input-currency.component.js +121 -0
  474. package/esm5/shared/components/input-file/input-file.component.js +165 -0
  475. package/esm5/shared/components/loading/loading.component.js +18 -0
  476. package/esm5/shared/components/loading-overlay/loading-overlay.component.js +23 -0
  477. package/esm5/shared/components/overlay-panel/overlay-panel.component.js +366 -0
  478. package/esm5/shared/components/popover/popover-ref.js +28 -0
  479. package/esm5/shared/components/popover/popover.component.js +35 -0
  480. package/esm5/shared/components/popover/popover.service.js +88 -0
  481. package/esm5/shared/components/radio-group-entity/radio-group-entity.component.js +80 -0
  482. package/esm5/shared/components/radio-group-enum/radio-group-enum.component.js +138 -0
  483. package/esm5/shared/components/select-button/select-button.component.js +195 -0
  484. package/esm5/shared/components/select-entity/select-entity.component.js +269 -0
  485. package/esm5/shared/components/select-entity-paged/select-entity-paged.component.js +453 -0
  486. package/esm5/shared/components/select-entity-paged/shared/default-options.js +35 -0
  487. package/esm5/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +72 -0
  488. package/esm5/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +62 -0
  489. package/esm5/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +23 -0
  490. package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +590 -0
  491. package/esm5/shared/components/select-entity-paged/shared/select-search-clear.directive.js +21 -0
  492. package/esm5/shared/components/select-enum/select-enum.component.js +124 -0
  493. package/esm5/shared/components/select-month-period/select-month-period.component.js +91 -0
  494. package/esm5/shared/components/slide-toggle/slide-toggle.component.js +81 -0
  495. package/esm5/shared/components/stepper/stepper.component.js +36 -0
  496. package/esm5/shared/components/tab/tab.component.js +58 -0
  497. package/esm5/shared/components/tab-group/tab-group.component.js +125 -0
  498. package/esm5/shared/components/table/table.component.js +538 -0
  499. package/esm5/shared/components/table-scrolled/table-scrolled.component.js +107 -0
  500. package/esm5/shared/components/textarea/textarea.component.js +174 -0
  501. package/esm5/shared/directives/dynamic-tab.directive.js +19 -0
  502. package/esm5/shared/directives/generic-template.directive.js +31 -0
  503. package/esm5/shared/directives/input-select-infinite-scroll.directive.js +113 -0
  504. package/esm5/shared/directives/lower-case.directive.js +48 -0
  505. package/esm5/shared/directives/phone-mask.directive.js +61 -0
  506. package/esm5/shared/directives/space-drop.directive.js +48 -0
  507. package/esm5/shared/directives/upper-case.directive.js +48 -0
  508. package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +141 -0
  509. package/esm5/shared/gipi-components/action-row/action-row.component.js +33 -0
  510. package/esm5/shared/gipi-components/badge/badge.component.js +46 -0
  511. package/esm5/shared/gipi-components/button/button.component.js +257 -0
  512. package/esm5/shared/gipi-components/chips/chips.component.js +159 -0
  513. package/esm5/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +46 -0
  514. package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +378 -0
  515. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +42 -0
  516. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +40 -0
  517. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +291 -0
  518. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +252 -0
  519. package/esm5/shared/gipi-components/datepicker/datepicker.module.js +133 -0
  520. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +349 -0
  521. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar.js +441 -0
  522. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +339 -0
  523. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +376 -0
  524. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +46 -0
  525. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +62 -0
  526. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +167 -0
  527. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +35 -0
  528. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +586 -0
  529. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +14 -0
  530. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +327 -0
  531. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +199 -0
  532. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +52 -0
  533. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +133 -0
  534. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +34 -0
  535. package/esm5/shared/gipi-components/datepicker/mat-datepicker/month-view.js +384 -0
  536. package/esm5/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +324 -0
  537. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +118 -0
  538. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +10 -0
  539. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +300 -0
  540. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +19 -0
  541. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +82 -0
  542. package/esm5/shared/gipi-components/datepicker/mat-datepicker/year-view.js +313 -0
  543. package/esm5/shared/gipi-components/dom/connected-overlay-scroll-handler.js +30 -0
  544. package/esm5/shared/gipi-components/dom/dom-handler.js +681 -0
  545. package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +191 -0
  546. package/esm5/shared/gipi-components/expansion-panel/expansion-panel.component.js +83 -0
  547. package/esm5/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +255 -0
  548. package/esm5/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +93 -0
  549. package/esm5/shared/gipi-components/footer/footer.component.js +32 -0
  550. package/esm5/shared/gipi-components/form-field/form-field.component.js +276 -0
  551. package/esm5/shared/gipi-components/helpful-tip/helpful-tip.component.js +68 -0
  552. package/esm5/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +106 -0
  553. package/esm5/shared/gipi-components/input-checkbox/input-checkbox.component.js +118 -0
  554. package/esm5/shared/gipi-components/input-currency/input-currency.component.js +207 -0
  555. package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +426 -0
  556. package/esm5/shared/gipi-components/input-select/input-select.component.js +698 -0
  557. package/esm5/shared/gipi-components/input-select-enum/input-select-enum.component.js +351 -0
  558. package/esm5/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +437 -0
  559. package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +397 -0
  560. package/esm5/shared/gipi-components/input-select-paged/input-select-paged.component.js +384 -0
  561. package/esm5/shared/gipi-components/input-select-radio/input-select-radio.component.js +286 -0
  562. package/esm5/shared/gipi-components/layout-grid/col.directive.js +164 -0
  563. package/esm5/shared/gipi-components/layout-grid/row.directive.js +127 -0
  564. package/esm5/shared/gipi-components/layout-grid/services/breakpoint.service.js +90 -0
  565. package/esm5/shared/gipi-components/layout-grid/services/resize.service.js +68 -0
  566. package/esm5/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +200 -0
  567. package/esm5/shared/gipi-components/month-year-picker/mont-year-picker.module.js +50 -0
  568. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +505 -0
  569. package/esm5/shared/gipi-components/notification/notification.component.js +106 -0
  570. package/esm5/shared/gipi-components/novelties/novelties.component.js +111 -0
  571. package/esm5/shared/gipi-components/overlay/overlay.component.js +670 -0
  572. package/esm5/shared/gipi-components/overlay/shared/overlay-service.js +22 -0
  573. package/esm5/shared/gipi-components/overlay/shared/overlay_options.js +1 -0
  574. package/esm5/shared/gipi-components/password-requeriments/password-requeriments.component.js +157 -0
  575. package/esm5/shared/gipi-components/popover/popover.component.js +473 -0
  576. package/esm5/shared/gipi-components/popover/shared/popover-animations.js +29 -0
  577. package/esm5/shared/gipi-components/popover/shared/popover-errors.js +21 -0
  578. package/esm5/shared/gipi-components/popover/shared/popover-interfaces.js +1 -0
  579. package/esm5/shared/gipi-components/popover/shared/popover-target.js +20 -0
  580. package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +529 -0
  581. package/esm5/shared/gipi-components/popover/shared/popover-types.js +1 -0
  582. package/esm5/shared/gipi-components/radio-group/radio-group.component.js +155 -0
  583. package/esm5/shared/gipi-components/range-page/range-page.component.js +283 -0
  584. package/esm5/shared/gipi-components/range-slider/range-slider.component.js +364 -0
  585. package/esm5/shared/gipi-components/select/select.component.js +222 -0
  586. package/esm5/shared/gipi-components/select-button/select-button.component.js +206 -0
  587. package/esm5/shared/gipi-components/sidebar/container/container.component.js +96 -0
  588. package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +267 -0
  589. package/esm5/shared/gipi-components/stepper/stepper.component.js +43 -0
  590. package/esm5/shared/gipi-components/table/components/table-body/table-body.component.js +209 -0
  591. package/esm5/shared/gipi-components/table/components/table-footer/table-footer.component.js +33 -0
  592. package/esm5/shared/gipi-components/table/components/table-header/table-header.component.js +155 -0
  593. package/esm5/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +123 -0
  594. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +228 -0
  595. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +1 -0
  596. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +108 -0
  597. package/esm5/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +116 -0
  598. package/esm5/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +33 -0
  599. package/esm5/shared/gipi-components/table/models/pipe-transform.model.js +1 -0
  600. package/esm5/shared/gipi-components/table/models/sort.model.js +29 -0
  601. package/esm5/shared/gipi-components/table/models/sorted-column.model.js +2 -0
  602. package/esm5/shared/gipi-components/table/models/table-column-builder.model.js +106 -0
  603. package/esm5/shared/gipi-components/table/models/table-column.model.js +252 -0
  604. package/esm5/shared/gipi-components/table/table.component.js +161 -0
  605. package/esm5/shared/gipi-components/table/types/sort-direction.type.js +1 -0
  606. package/esm5/shared/gipi-components/table/types/sort.type.js +1 -0
  607. package/esm5/shared/gipi-components/template/template.directive.js +34 -0
  608. package/esm5/shared/gipi-components/toolbar/toolbar.component.js +56 -0
  609. package/esm5/shared/gipi-components/top-nav/top-nav.component.js +40 -0
  610. package/esm5/shared/gipi-components/user-profile/user-profile.component.js +115 -0
  611. package/esm5/shared/material.module.js +101 -0
  612. package/esm5/shared/shared.module.js +340 -0
  613. package/esm5/shared.js +36 -0
  614. package/fesm2015/gipisistemas-ng-core.js +25879 -0
  615. package/fesm2015/gipisistemas-ng-core.js.map +1 -0
  616. package/fesm5/gipisistemas-ng-core.js +27905 -0
  617. package/fesm5/gipisistemas-ng-core.js.map +1 -0
  618. package/gipi-components.d.ts +97 -0
  619. package/gipisistemas-ng-core.d.ts +20 -0
  620. package/gipisistemas-ng-core.metadata.json +1 -0
  621. package/package.json +31 -83
  622. package/public_api.d.ts +3 -0
  623. package/shared/api/generate-id-component.d.ts +3 -0
  624. package/shared/api/gipi-ng-config.d.ts +18 -0
  625. package/shared/api/overlay-message.d.ts +14 -0
  626. package/shared/api/throttle.d.ts +17 -0
  627. package/shared/api/translation.d.ts +45 -0
  628. package/shared/components/button/button.component.d.ts +26 -0
  629. package/shared/components/card/card.component.d.ts +10 -0
  630. package/shared/components/checkbox/checkbox.component.d.ts +20 -0
  631. package/shared/components/dom/connected-overlay-scroll-handler.d.ts +9 -0
  632. package/shared/components/dom/dom-handler.d.ts +74 -0
  633. package/shared/components/icon/icon.component.d.ts +9 -0
  634. package/shared/components/input/input.component.d.ts +52 -0
  635. package/shared/components/input-currency/input-currency.component.d.ts +29 -0
  636. package/shared/components/input-file/input-file.component.d.ts +28 -0
  637. package/shared/components/loading/loading.component.d.ts +4 -0
  638. package/shared/components/loading-overlay/loading-overlay.component.d.ts +6 -0
  639. package/shared/components/overlay-panel/overlay-panel.component.d.ts +67 -0
  640. package/shared/components/popover/popover-ref.d.ts +17 -0
  641. package/shared/components/popover/popover.component.d.ts +10 -0
  642. package/shared/components/popover/popover.service.d.ts +23 -0
  643. package/shared/components/radio-group-entity/radio-group-entity.component.d.ts +19 -0
  644. package/shared/components/radio-group-enum/radio-group-enum.component.d.ts +30 -0
  645. package/shared/components/select-button/select-button.component.d.ts +35 -0
  646. package/shared/components/select-entity/select-entity.component.d.ts +52 -0
  647. package/shared/components/select-entity-paged/select-entity-paged.component.d.ts +78 -0
  648. package/shared/components/select-entity-paged/shared/default-options.d.ts +25 -0
  649. package/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.d.ts +18 -0
  650. package/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.d.ts +16 -0
  651. package/shared/components/select-entity-paged/shared/select-no-entries-found.directive.d.ts +11 -0
  652. package/shared/components/select-entity-paged/shared/select-search/select-search.component.d.ts +119 -0
  653. package/shared/components/select-entity-paged/shared/select-search-clear.directive.d.ts +9 -0
  654. package/shared/components/select-enum/select-enum.component.d.ts +29 -0
  655. package/shared/components/select-month-period/select-month-period.component.d.ts +20 -0
  656. package/shared/components/slide-toggle/slide-toggle.component.d.ts +19 -0
  657. package/shared/components/stepper/stepper.component.d.ts +7 -0
  658. package/shared/components/tab/tab.component.d.ts +14 -0
  659. package/shared/components/tab-group/tab-group.component.d.ts +22 -0
  660. package/shared/components/table/table.component.d.ts +86 -0
  661. package/shared/components/table-scrolled/table-scrolled.component.d.ts +31 -0
  662. package/shared/components/textarea/textarea.component.d.ts +35 -0
  663. package/shared/directives/dynamic-tab.directive.d.ts +5 -0
  664. package/shared/directives/generic-template.directive.d.ts +8 -0
  665. package/shared/directives/input-select-infinite-scroll.directive.d.ts +35 -0
  666. package/shared/directives/lower-case.directive.d.ts +9 -0
  667. package/shared/directives/phone-mask.directive.d.ts +8 -0
  668. package/shared/directives/space-drop.directive.d.ts +9 -0
  669. package/shared/directives/upper-case.directive.d.ts +9 -0
  670. package/shared/gipi-components/abstract-form/abstract-form.component.d.ts +21 -0
  671. package/shared/gipi-components/action-row/action-row.component.d.ts +5 -0
  672. package/shared/gipi-components/badge/badge.component.d.ts +8 -0
  673. package/shared/gipi-components/button/button.component.d.ts +56 -0
  674. package/shared/gipi-components/chips/chips.component.d.ts +37 -0
  675. package/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.d.ts +11 -0
  676. package/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.d.ts +71 -0
  677. package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.d.ts +11 -0
  678. package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.d.ts +6 -0
  679. package/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.d.ts +40 -0
  680. package/shared/gipi-components/datepicker/datepicker/datepicker.component.d.ts +49 -0
  681. package/shared/gipi-components/datepicker/datepicker.module.d.ts +2 -0
  682. package/shared/gipi-components/datepicker/mat-datepicker/calendar-body.d.ts +143 -0
  683. package/shared/gipi-components/datepicker/mat-datepicker/calendar.d.ts +152 -0
  684. package/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.d.ts +102 -0
  685. package/shared/gipi-components/datepicker/mat-datepicker/date-range-input.d.ts +124 -0
  686. package/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.d.ts +21 -0
  687. package/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.d.ts +45 -0
  688. package/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.d.ts +106 -0
  689. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.d.ts +16 -0
  690. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.d.ts +209 -0
  691. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.d.ts +9 -0
  692. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.d.ts +136 -0
  693. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.d.ts +68 -0
  694. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.d.ts +38 -0
  695. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.d.ts +39 -0
  696. package/shared/gipi-components/datepicker/mat-datepicker/datepicker.d.ts +11 -0
  697. package/shared/gipi-components/datepicker/mat-datepicker/month-view.d.ts +120 -0
  698. package/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.d.ts +85 -0
  699. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.d.ts +225 -0
  700. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.d.ts +20 -0
  701. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.d.ts +76 -0
  702. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.d.ts +9 -0
  703. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.d.ts +33 -0
  704. package/shared/gipi-components/datepicker/mat-datepicker/year-view.d.ts +97 -0
  705. package/shared/gipi-components/dom/connected-overlay-scroll-handler.d.ts +9 -0
  706. package/shared/gipi-components/dom/dom-handler.d.ts +85 -0
  707. package/shared/gipi-components/dropdown-menu/dropdown-menu.component.d.ts +36 -0
  708. package/shared/gipi-components/expansion-panel/expansion-panel.component.d.ts +16 -0
  709. package/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.d.ts +43 -0
  710. package/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.d.ts +13 -0
  711. package/shared/gipi-components/footer/footer.component.d.ts +5 -0
  712. package/shared/gipi-components/form-field/form-field.component.d.ts +61 -0
  713. package/shared/gipi-components/helpful-tip/helpful-tip.component.d.ts +13 -0
  714. package/shared/gipi-components/infinite-scroll/infinite-scroll.directive.d.ts +27 -0
  715. package/shared/gipi-components/input-checkbox/input-checkbox.component.d.ts +28 -0
  716. package/shared/gipi-components/input-currency/input-currency.component.d.ts +48 -0
  717. package/shared/gipi-components/input-monthpicker/input-monthpicker.component.d.ts +89 -0
  718. package/shared/gipi-components/input-select/input-select.component.d.ts +120 -0
  719. package/shared/gipi-components/input-select-enum/input-select-enum.component.d.ts +65 -0
  720. package/shared/gipi-components/input-select-listbox/input-select-listbox.component.d.ts +85 -0
  721. package/shared/gipi-components/input-select-paged/input-search/input-search.component.d.ts +77 -0
  722. package/shared/gipi-components/input-select-paged/input-select-paged.component.d.ts +66 -0
  723. package/shared/gipi-components/input-select-radio/input-select-radio.component.d.ts +53 -0
  724. package/shared/gipi-components/layout-grid/col.directive.d.ts +38 -0
  725. package/shared/gipi-components/layout-grid/row.directive.d.ts +28 -0
  726. package/shared/gipi-components/layout-grid/services/breakpoint.service.d.ts +30 -0
  727. package/shared/gipi-components/layout-grid/services/resize.service.d.ts +17 -0
  728. package/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.d.ts +37 -0
  729. package/shared/gipi-components/month-year-picker/mont-year-picker.module.d.ts +2 -0
  730. package/shared/gipi-components/month-year-picker/month-year-picker.component.d.ts +104 -0
  731. package/shared/gipi-components/notification/notification.component.d.ts +21 -0
  732. package/shared/gipi-components/novelties/novelties.component.d.ts +22 -0
  733. package/shared/gipi-components/overlay/overlay.component.d.ts +113 -0
  734. package/shared/gipi-components/overlay/shared/overlay-service.d.ts +6 -0
  735. package/shared/gipi-components/overlay/shared/overlay_options.d.ts +50 -0
  736. package/shared/gipi-components/password-requeriments/password-requeriments.component.d.ts +27 -0
  737. package/shared/gipi-components/popover/popover.component.d.ts +133 -0
  738. package/shared/gipi-components/popover/shared/popover-animations.d.ts +13 -0
  739. package/shared/gipi-components/popover/shared/popover-errors.d.ts +14 -0
  740. package/shared/gipi-components/popover/shared/popover-interfaces.d.ts +43 -0
  741. package/shared/gipi-components/popover/shared/popover-target.d.ts +5 -0
  742. package/shared/gipi-components/popover/shared/popover-trigger.d.ts +140 -0
  743. package/shared/gipi-components/popover/shared/popover-types.d.ts +4 -0
  744. package/shared/gipi-components/radio-group/radio-group.component.d.ts +33 -0
  745. package/shared/gipi-components/range-page/range-page.component.d.ts +55 -0
  746. package/shared/gipi-components/range-slider/range-slider.component.d.ts +57 -0
  747. package/shared/gipi-components/select/select.component.d.ts +45 -0
  748. package/shared/gipi-components/select-button/select-button.component.d.ts +39 -0
  749. package/shared/gipi-components/sidebar/container/container.component.d.ts +15 -0
  750. package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +40 -0
  751. package/shared/gipi-components/stepper/stepper.component.d.ts +8 -0
  752. package/shared/gipi-components/table/components/table-body/table-body.component.d.ts +36 -0
  753. package/shared/gipi-components/table/components/table-footer/table-footer.component.d.ts +5 -0
  754. package/shared/gipi-components/table/components/table-header/table-header.component.d.ts +28 -0
  755. package/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.d.ts +40 -0
  756. package/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.d.ts +81 -0
  757. package/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.d.ts +24 -0
  758. package/shared/gipi-components/table/components/table-pagination/shared/pagination.service.d.ts +45 -0
  759. package/shared/gipi-components/table/components/table-pagination/table-pagination.component.d.ts +21 -0
  760. package/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.d.ts +5 -0
  761. package/shared/gipi-components/table/models/pipe-transform.model.d.ts +3 -0
  762. package/shared/gipi-components/table/models/sort.model.d.ts +10 -0
  763. package/shared/gipi-components/table/models/sorted-column.model.d.ts +6 -0
  764. package/shared/gipi-components/table/models/table-column-builder.model.d.ts +52 -0
  765. package/shared/gipi-components/table/models/table-column.model.d.ts +74 -0
  766. package/shared/gipi-components/table/table.component.d.ts +37 -0
  767. package/shared/gipi-components/table/types/sort-direction.type.d.ts +1 -0
  768. package/shared/gipi-components/table/types/sort.type.d.ts +1 -0
  769. package/shared/gipi-components/template/template.directive.d.ts +8 -0
  770. package/shared/gipi-components/toolbar/toolbar.component.d.ts +11 -0
  771. package/shared/gipi-components/top-nav/top-nav.component.d.ts +8 -0
  772. package/shared/gipi-components/user-profile/user-profile.component.d.ts +24 -0
  773. package/shared/material.module.d.ts +2 -0
  774. package/shared/shared.module.d.ts +6 -0
  775. package/shared.d.ts +35 -0
  776. package/README.md +0 -38
  777. package/_ITSS-NG-CI-CD.yml +0 -53
  778. package/_ITSS-NG-CI-PR.yml +0 -53
  779. package/angular-cli.json +0 -42
  780. package/azure-pipelines.yml +0 -35
  781. package/projects/itss-ng/ng-package.json +0 -7
  782. package/projects/itss-ng/package.json +0 -25
@@ -0,0 +1,124 @@
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 { AfterContentInit, Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Directive, Input, OnChanges, OnDestroy, SimpleChanges, ViewChild, ViewEncapsulation, } from '@angular/core';
10
+ import { MatButton } from '@angular/material/button';
11
+ import { merge, of as observableOf, Subscription } from 'rxjs';
12
+ import { MatDatepickerBase } from './datepicker-base';
13
+ import { MatDatepickerIntl } from './datepicker-intl';
14
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
15
+ /** Can be used to override the icon of a `matDatepickerToggle`. */
16
+ let MatDatepickerToggleIcon = class MatDatepickerToggleIcon {
17
+ };
18
+ MatDatepickerToggleIcon = __decorate([
19
+ Directive({ selector: '[gipiDatepickerToggleIcon]' })
20
+ ], MatDatepickerToggleIcon);
21
+ export { MatDatepickerToggleIcon };
22
+ let MatDatepickerToggle = class MatDatepickerToggle {
23
+ constructor(_intl, _changeDetectorRef, defaultTabIndex) {
24
+ this._intl = _intl;
25
+ this._changeDetectorRef = _changeDetectorRef;
26
+ this._stateChanges = Subscription.EMPTY;
27
+ const parsedTabIndex = Number(defaultTabIndex);
28
+ this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;
29
+ }
30
+ /** Whether the toggle button is disabled. */
31
+ get disabled() {
32
+ if (this._disabled === undefined && this.datepicker) {
33
+ return this.datepicker.disabled;
34
+ }
35
+ return !!this._disabled;
36
+ }
37
+ set disabled(value) {
38
+ this._disabled = coerceBooleanProperty(value);
39
+ }
40
+ ngOnChanges(changes) {
41
+ if (changes['datepicker']) {
42
+ this._watchStateChanges();
43
+ }
44
+ }
45
+ ngOnDestroy() {
46
+ this._stateChanges.unsubscribe();
47
+ }
48
+ ngAfterContentInit() {
49
+ this._watchStateChanges();
50
+ }
51
+ _open(event) {
52
+ if (this.datepicker && !this.disabled) {
53
+ this.datepicker.open();
54
+ event.stopPropagation();
55
+ }
56
+ }
57
+ _watchStateChanges() {
58
+ const datepickerStateChanged = this.datepicker ? this.datepicker._stateChanges : observableOf();
59
+ const inputStateChanged = this.datepicker && this.datepicker._datepickerInput ?
60
+ this.datepicker._datepickerInput.stateChanges : observableOf();
61
+ const datepickerToggled = this.datepicker ?
62
+ merge(this.datepicker.openedStream, this.datepicker.closedStream) :
63
+ observableOf();
64
+ this._stateChanges.unsubscribe();
65
+ this._stateChanges = merge(this._intl.changes, datepickerStateChanged, inputStateChanged, datepickerToggled).subscribe(() => this._changeDetectorRef.markForCheck());
66
+ }
67
+ };
68
+ MatDatepickerToggle.ctorParameters = () => [
69
+ { type: MatDatepickerIntl },
70
+ { type: ChangeDetectorRef },
71
+ { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] }
72
+ ];
73
+ __decorate([
74
+ Input('for'),
75
+ __metadata("design:type", MatDatepickerBase)
76
+ ], MatDatepickerToggle.prototype, "datepicker", void 0);
77
+ __decorate([
78
+ Input(),
79
+ __metadata("design:type", Number)
80
+ ], MatDatepickerToggle.prototype, "tabIndex", void 0);
81
+ __decorate([
82
+ Input(),
83
+ __metadata("design:type", Boolean),
84
+ __metadata("design:paramtypes", [Boolean])
85
+ ], MatDatepickerToggle.prototype, "disabled", null);
86
+ __decorate([
87
+ Input(),
88
+ __metadata("design:type", Boolean)
89
+ ], MatDatepickerToggle.prototype, "disableRipple", void 0);
90
+ __decorate([
91
+ ContentChild(MatDatepickerToggleIcon, { static: true }),
92
+ __metadata("design:type", MatDatepickerToggleIcon)
93
+ ], MatDatepickerToggle.prototype, "_customIcon", void 0);
94
+ __decorate([
95
+ ViewChild('button', { static: true }),
96
+ __metadata("design:type", MatButton)
97
+ ], MatDatepickerToggle.prototype, "_button", void 0);
98
+ MatDatepickerToggle = __decorate([
99
+ Component({
100
+ selector: 'gipi-mat-datepicker-toggle',
101
+ template: "<button #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"datepicker ? 'dialog' : null\"\n [attr.aria-label]=\"_intl.openCalendarLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n (click)=\"_open($event)\">\n\n <svg *ngIf=\"!_customIcon\"\n class=\"mat-datepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\" />\n </svg>\n\n <ng-content select=\"[gipiMatDatepickerToggleIcon]\"> </ng-content>\n</button>",
102
+ host: {
103
+ 'class': 'mat-datepicker-toggle',
104
+ // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the
105
+ // consumer may have provided, while still being able to receive focus.
106
+ '[attr.tabindex]': 'disabled ? null : -1',
107
+ '[class.mat-datepicker-toggle-active]': 'datepicker && datepicker.opened',
108
+ '[class.mat-accent]': 'datepicker && datepicker.color === "accent"',
109
+ '[class.mat-warn]': 'datepicker && datepicker.color === "warn"',
110
+ // Used by the test harness to tie this toggle to its datepicker.
111
+ '[attr.data-mat-calendar]': 'datepicker ? datepicker.id : null',
112
+ '(focus)': '_button.focus()',
113
+ },
114
+ exportAs: 'gipiMatDatepickerToggle',
115
+ encapsulation: ViewEncapsulation.None,
116
+ changeDetection: ChangeDetectionStrategy.OnPush,
117
+ styles: [".mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-datepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-datepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-datepicker-toggle-default-icon{margin:auto}"]
118
+ }),
119
+ __param(2, Attribute('tabindex')),
120
+ __metadata("design:paramtypes", [MatDatepickerIntl,
121
+ ChangeDetectorRef, String])
122
+ ], MatDatepickerToggle);
123
+ export { MatDatepickerToggle };
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci10b2dnbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUN2TixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sbUJBQW1CLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsbUVBQW1FO0FBRW5FLElBQWEsdUJBQXVCLEdBQXBDLE1BQWEsdUJBQXVCO0NBQUksQ0FBQTtBQUEzQix1QkFBdUI7SUFEbkMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFLENBQUM7R0FDekMsdUJBQXVCLENBQUk7U0FBM0IsdUJBQXVCO0FBc0JwQyxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQWlDNUIsWUFDVyxLQUF3QixFQUN2QixrQkFBcUMsRUFDdEIsZUFBdUI7UUFGdkMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDdkIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQWpDekMsa0JBQWEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBcUN2QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLGNBQWMsSUFBSSxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUEvQkQsNkNBQTZDO0lBRTdDLElBQUksUUFBUTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ25DO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFzQkQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25FLFlBQVksRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUNsQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixDQUNwQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBR0osQ0FBQTs7WUFoRHFCLGlCQUFpQjtZQUNILGlCQUFpQjt5Q0FDNUMsU0FBUyxTQUFDLFVBQVU7O0FBL0JYO0lBQWIsS0FBSyxDQUFDLEtBQUssQ0FBQzs4QkFBYSxpQkFBaUI7dURBQStCO0FBR2pFO0lBQVIsS0FBSyxFQUFFOztxREFBeUI7QUFJakM7SUFEQyxLQUFLLEVBQUU7OzttREFPUDtBQU9RO0lBQVIsS0FBSyxFQUFFOzswREFBd0I7QUFHeUI7SUFBeEQsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzhCQUFjLHVCQUF1Qjt3REFBQztBQUd2RDtJQUF0QyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzhCQUFVLFNBQVM7b0RBQUM7QUEvQmpELG1CQUFtQjtJQXBCL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLDRCQUE0QjtRQUN0QyxrMkJBQXFDO1FBRXJDLElBQUksRUFBRTtZQUNGLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsd0ZBQXdGO1lBQ3hGLHVFQUF1RTtZQUN2RSxpQkFBaUIsRUFBRSxzQkFBc0I7WUFDekMsc0NBQXNDLEVBQUUsaUNBQWlDO1lBQ3pFLG9CQUFvQixFQUFFLDZDQUE2QztZQUNuRSxrQkFBa0IsRUFBRSwyQ0FBMkM7WUFDL0QsaUVBQWlFO1lBQ2pFLDBCQUEwQixFQUFFLG1DQUFtQztZQUMvRCxTQUFTLEVBQUUsaUJBQWlCO1NBQy9CO1FBQ0QsUUFBUSxFQUFFLHlCQUF5QjtRQUNuQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDbEQsQ0FBQztJQXFDTyxXQUFBLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtxQ0FGUixpQkFBaUI7UUFDSCxpQkFBaUI7R0FuQ3hDLG1CQUFtQixDQWtGL0I7U0FsRlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgbWVyZ2UsIG9mIGFzIG9ic2VydmFibGVPZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyQmFzZSwgTWF0RGF0ZXBpY2tlckNvbnRyb2wgfSBmcm9tICcuL2RhdGVwaWNrZXItYmFzZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VySW50bCB9IGZyb20gJy4vZGF0ZXBpY2tlci1pbnRsJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbi8qKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgaWNvbiBvZiBhIGBtYXREYXRlcGlja2VyVG9nZ2xlYC4gKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tnaXBpRGF0ZXBpY2tlclRvZ2dsZUljb25dJyB9KVxuZXhwb3J0IGNsYXNzIE1hdERhdGVwaWNrZXJUb2dnbGVJY29uIHsgfVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktbWF0LWRhdGVwaWNrZXItdG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RhdGVwaWNrZXItdG9nZ2xlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydkYXRlcGlja2VyLXRvZ2dsZS5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnbWF0LWRhdGVwaWNrZXItdG9nZ2xlJyxcbiAgICAgICAgLy8gQWx3YXlzIHNldCB0aGUgdGFiaW5kZXggdG8gLTEgc28gdGhhdCBpdCBkb2Vzbid0IG92ZXJsYXAgd2l0aCBhbnkgY3VzdG9tIHRhYmluZGV4IHRoZVxuICAgICAgICAvLyBjb25zdW1lciBtYXkgaGF2ZSBwcm92aWRlZCwgd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0byByZWNlaXZlIGZvY3VzLlxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ2Rpc2FibGVkID8gbnVsbCA6IC0xJyxcbiAgICAgICAgJ1tjbGFzcy5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlXSc6ICdkYXRlcGlja2VyICYmIGRhdGVwaWNrZXIub3BlbmVkJyxcbiAgICAgICAgJ1tjbGFzcy5tYXQtYWNjZW50XSc6ICdkYXRlcGlja2VyICYmIGRhdGVwaWNrZXIuY29sb3IgPT09IFwiYWNjZW50XCInLFxuICAgICAgICAnW2NsYXNzLm1hdC13YXJuXSc6ICdkYXRlcGlja2VyICYmIGRhdGVwaWNrZXIuY29sb3IgPT09IFwid2FyblwiJyxcbiAgICAgICAgLy8gVXNlZCBieSB0aGUgdGVzdCBoYXJuZXNzIHRvIHRpZSB0aGlzIHRvZ2dsZSB0byBpdHMgZGF0ZXBpY2tlci5cbiAgICAgICAgJ1thdHRyLmRhdGEtbWF0LWNhbGVuZGFyXSc6ICdkYXRlcGlja2VyID8gZGF0ZXBpY2tlci5pZCA6IG51bGwnLFxuICAgICAgICAnKGZvY3VzKSc6ICdfYnV0dG9uLmZvY3VzKCknLFxuICAgIH0sXG4gICAgZXhwb3J0QXM6ICdnaXBpTWF0RGF0ZXBpY2tlclRvZ2dsZScsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZXBpY2tlclRvZ2dsZTxEPiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICAgIHByaXZhdGUgX3N0YXRlQ2hhbmdlcyA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAgIC8qKiBEYXRlcGlja2VyIGluc3RhbmNlIHRoYXQgdGhlIGJ1dHRvbiB3aWxsIHRvZ2dsZS4gKi9cbiAgICBASW5wdXQoJ2ZvcicpIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXJCYXNlPE1hdERhdGVwaWNrZXJDb250cm9sPGFueT4sIEQ+O1xuXG4gICAgLyoqIFRhYmluZGV4IGZvciB0aGUgdG9nZ2xlLiAqL1xuICAgIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZSBidXR0b24gaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCA9PT0gdW5kZWZpbmVkICYmIHRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlci5kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhIXRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHJpcHBsZXMgb24gdGhlIHRvZ2dsZSBzaG91bGQgYmUgZGlzYWJsZWQuICovXG4gICAgQElucHV0KCkgZGlzYWJsZVJpcHBsZTogYm9vbGVhbjtcblxuICAgIC8qKiBDdXN0b20gaWNvbiBzZXQgYnkgdGhlIGNvbnN1bWVyLiAqL1xuICAgIEBDb250ZW50Q2hpbGQoTWF0RGF0ZXBpY2tlclRvZ2dsZUljb24sIHsgc3RhdGljOiB0cnVlIH0pIF9jdXN0b21JY29uOiBNYXREYXRlcGlja2VyVG9nZ2xlSWNvbjtcblxuICAgIC8qKiBVbmRlcmx5aW5nIGJ1dHRvbiBlbGVtZW50LiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pIF9idXR0b246IE1hdEJ1dHRvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgX2ludGw6IE1hdERhdGVwaWNrZXJJbnRsLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RhYmluZGV4JykgZGVmYXVsdFRhYkluZGV4OiBzdHJpbmdcbiAgICApIHtcblxuICAgICAgICBjb25zdCBwYXJzZWRUYWJJbmRleCA9IE51bWJlcihkZWZhdWx0VGFiSW5kZXgpO1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gKHBhcnNlZFRhYkluZGV4IHx8IHBhcnNlZFRhYkluZGV4ID09PSAwKSA/IHBhcnNlZFRhYkluZGV4IDogbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydkYXRlcGlja2VyJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX3dhdGNoU3RhdGVDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLl93YXRjaFN0YXRlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIF9vcGVuKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRlcGlja2VyICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXIub3BlbigpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF93YXRjaFN0YXRlQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3QgZGF0ZXBpY2tlclN0YXRlQ2hhbmdlZCA9IHRoaXMuZGF0ZXBpY2tlciA/IHRoaXMuZGF0ZXBpY2tlci5fc3RhdGVDaGFuZ2VzIDogb2JzZXJ2YWJsZU9mKCk7XG4gICAgICAgIGNvbnN0IGlucHV0U3RhdGVDaGFuZ2VkID0gdGhpcy5kYXRlcGlja2VyICYmIHRoaXMuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlcklucHV0ID9cbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlcklucHV0LnN0YXRlQ2hhbmdlcyA6IG9ic2VydmFibGVPZigpO1xuICAgICAgICBjb25zdCBkYXRlcGlja2VyVG9nZ2xlZCA9IHRoaXMuZGF0ZXBpY2tlciA/XG4gICAgICAgICAgICBtZXJnZSh0aGlzLmRhdGVwaWNrZXIub3BlbmVkU3RyZWFtLCB0aGlzLmRhdGVwaWNrZXIuY2xvc2VkU3RyZWFtKSA6XG4gICAgICAgICAgICBvYnNlcnZhYmxlT2YoKTtcblxuICAgICAgICB0aGlzLl9zdGF0ZUNoYW5nZXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzID0gbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLl9pbnRsLmNoYW5nZXMsXG4gICAgICAgICAgICBkYXRlcGlja2VyU3RhdGVDaGFuZ2VkLFxuICAgICAgICAgICAgaW5wdXRTdGF0ZUNoYW5nZWQsXG4gICAgICAgICAgICBkYXRlcGlja2VyVG9nZ2xlZFxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG5cbn1cbiJdfQ==
@@ -0,0 +1,29 @@
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 } from "tslib";
9
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
10
+ import { MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER } from './date-selection-model';
11
+ import { MatDatepickerBase } from './datepicker-base';
12
+ // TODO(mmalerba): We use a component instead of a directive here so the user can use implicit
13
+ // template reference variables (e.g. #d vs #d="matDatepicker"). We can change this to a directive
14
+ // if angular adds support for `exportAs: '$implicit'` on directives.
15
+ /** Component responsible for managing the datepicker popup/dialog. */
16
+ let MatDatepicker = class MatDatepicker extends MatDatepickerBase {
17
+ };
18
+ MatDatepicker = __decorate([
19
+ Component({
20
+ selector: 'gipi-mat-datepicker',
21
+ template: '',
22
+ exportAs: 'gipiMatDatepicker',
23
+ changeDetection: ChangeDetectionStrategy.OnPush,
24
+ encapsulation: ViewEncapsulation.None,
25
+ providers: [MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER]
26
+ })
27
+ ], MatDatepicker);
28
+ export { MatDatepicker };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUU1RSw4RkFBOEY7QUFDOUYsa0dBQWtHO0FBQ2xHLHFFQUFxRTtBQUNyRSxzRUFBc0U7QUFTdEUsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBaUIsU0FBUSxpQkFBdUQ7Q0FBSSxDQUFBO0FBQXBGLGFBQWE7SUFSekIsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQixRQUFRLEVBQUUsRUFBRTtRQUNaLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDckMsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7S0FDeEQsQ0FBQztHQUNXLGFBQWEsQ0FBdUU7U0FBcEYsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX1NJTkdMRV9EQVRFX1NFTEVDVElPTl9NT0RFTF9QUk9WSURFUiB9IGZyb20gJy4vZGF0ZS1zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlckJhc2UsIE1hdERhdGVwaWNrZXJDb250cm9sIH0gZnJvbSAnLi9kYXRlcGlja2VyLWJhc2UnO1xuXG4vLyBUT0RPKG1tYWxlcmJhKTogV2UgdXNlIGEgY29tcG9uZW50IGluc3RlYWQgb2YgYSBkaXJlY3RpdmUgaGVyZSBzbyB0aGUgdXNlciBjYW4gdXNlIGltcGxpY2l0XG4vLyB0ZW1wbGF0ZSByZWZlcmVuY2UgdmFyaWFibGVzIChlLmcuICNkIHZzICNkPVwibWF0RGF0ZXBpY2tlclwiKS4gV2UgY2FuIGNoYW5nZSB0aGlzIHRvIGEgZGlyZWN0aXZlXG4vLyBpZiBhbmd1bGFyIGFkZHMgc3VwcG9ydCBmb3IgYGV4cG9ydEFzOiAnJGltcGxpY2l0J2Agb24gZGlyZWN0aXZlcy5cbi8qKiBDb21wb25lbnQgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIHRoZSBkYXRlcGlja2VyIHBvcHVwL2RpYWxvZy4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1tYXQtZGF0ZXBpY2tlcicsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGV4cG9ydEFzOiAnZ2lwaU1hdERhdGVwaWNrZXInLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbTUFUX1NJTkdMRV9EQVRFX1NFTEVDVElPTl9NT0RFTF9QUk9WSURFUl1cbn0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZXBpY2tlcjxEPiBleHRlbmRzIE1hdERhdGVwaWNrZXJCYXNlPE1hdERhdGVwaWNrZXJDb250cm9sPEQ+LCBEIHwgbnVsbCwgRD4geyB9XG4iXX0=
@@ -0,0 +1,365 @@
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 { Directionality } from '@angular/cdk/bidi';
10
+ import { DOWN_ARROW, END, ENTER, ESCAPE, HOME, LEFT_ARROW, PAGE_DOWN, PAGE_UP, RIGHT_ARROW, SPACE, UP_ARROW, } from '@angular/cdk/keycodes';
11
+ import { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnChanges, OnDestroy, Optional, Output, SimpleChanges, ViewChild, ViewEncapsulation, } from '@angular/core';
12
+ import { MAT_DATE_FORMATS } from '@angular/material/core';
13
+ import { Subscription } from 'rxjs';
14
+ import { startWith } from 'rxjs/operators';
15
+ import { MatCalendarBody, MatCalendarCell, } from './calendar-body';
16
+ import { MAT_DATE_RANGE_SELECTION_STRATEGY, } from './date-range-selection-strategy';
17
+ import { DateRange } from './date-selection-model';
18
+ import { createMissingDateImplError } from './datepicker-errors';
19
+ import { DateAdapter } from './shared/adapter/date-adapter';
20
+ const DAYS_PER_WEEK = 7;
21
+ /**
22
+ * An internal component used to display a single month in the datepicker.
23
+ * @docs-private
24
+ */
25
+ let MatMonthView = class MatMonthView {
26
+ constructor(_changeDetectorRef, _dateFormats, _dateAdapter, _dir, _rangeStrategy) {
27
+ this._changeDetectorRef = _changeDetectorRef;
28
+ this._dateFormats = _dateFormats;
29
+ this._dateAdapter = _dateAdapter;
30
+ this._dir = _dir;
31
+ this._rangeStrategy = _rangeStrategy;
32
+ this._rerenderSubscription = Subscription.EMPTY;
33
+ /** Emits when a new date is selected. */
34
+ this.selectedChange = new EventEmitter();
35
+ /** Emits when any date is selected. */
36
+ this._userSelection = new EventEmitter();
37
+ /** Emits when any date is activated. */
38
+ this.activeDateChange = new EventEmitter();
39
+ if (!this._dateAdapter) {
40
+ throw createMissingDateImplError('DateAdapter');
41
+ }
42
+ if (!this._dateFormats) {
43
+ throw createMissingDateImplError('MAT_DATE_FORMATS');
44
+ }
45
+ this._activeDate = this._dateAdapter.today();
46
+ }
47
+ /**
48
+ * The date to display in this month view (everything other than the month and year is ignored).
49
+ */
50
+ get activeDate() { return this._activeDate; }
51
+ set activeDate(value) {
52
+ const oldActiveDate = this._activeDate;
53
+ const validDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value)) || this._dateAdapter.today();
54
+ this._activeDate = this._dateAdapter.clampDate(validDate, this.minDate, this.maxDate);
55
+ if (!this._hasSameMonthAndYear(oldActiveDate, this._activeDate)) {
56
+ this._init();
57
+ }
58
+ }
59
+ /** The currently selected date. */
60
+ get selected() { return this._selected; }
61
+ set selected(value) {
62
+ if (value instanceof DateRange) {
63
+ this._selected = value;
64
+ }
65
+ else {
66
+ this._selected = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
67
+ }
68
+ this._setRanges(this._selected);
69
+ }
70
+ /** The minimum selectable date. */
71
+ get minDate() { return this._minDate; }
72
+ set minDate(value) {
73
+ this._minDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
74
+ }
75
+ /** The maximum selectable date. */
76
+ get maxDate() { return this._maxDate; }
77
+ set maxDate(value) {
78
+ this._maxDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
79
+ }
80
+ ngAfterContentInit() {
81
+ this._rerenderSubscription = this._dateAdapter.localeChanges
82
+ .pipe(startWith(null))
83
+ .subscribe(() => this._init());
84
+ }
85
+ ngOnChanges(changes) {
86
+ const comparisonChange = changes['comparisonStart'] || changes['comparisonEnd'];
87
+ if (comparisonChange && !comparisonChange.firstChange) {
88
+ this._setRanges(this.selected);
89
+ }
90
+ }
91
+ ngOnDestroy() {
92
+ this._rerenderSubscription.unsubscribe();
93
+ }
94
+ /** Handles when a new date is selected. */
95
+ _dateSelected(event) {
96
+ const date = event.value;
97
+ const selectedYear = this._dateAdapter.getYear(this.activeDate);
98
+ const selectedMonth = this._dateAdapter.getMonth(this.activeDate);
99
+ const selectedDate = this._dateAdapter.createDate(selectedYear, selectedMonth, date);
100
+ let rangeStartDate;
101
+ let rangeEndDate;
102
+ if (this._selected instanceof DateRange) {
103
+ rangeStartDate = this._getDateInCurrentMonth(this._selected.start);
104
+ rangeEndDate = this._getDateInCurrentMonth(this._selected.end);
105
+ }
106
+ else {
107
+ rangeStartDate = rangeEndDate = this._getDateInCurrentMonth(this._selected);
108
+ }
109
+ if (rangeStartDate !== date || rangeEndDate !== date) {
110
+ this.selectedChange.emit(selectedDate);
111
+ }
112
+ this._userSelection.emit({ value: selectedDate, event: event.event });
113
+ }
114
+ /** Handles keydown events on the calendar body when calendar is in month view. */
115
+ _handleCalendarBodyKeydown(event) {
116
+ // TODO(mmalerba): We currently allow keyboard navigation to disabled dates, but just prevent
117
+ // disabled ones from being selected. This may not be ideal, we should look into whether
118
+ // navigation should skip over disabled dates, and if so, how to implement that efficiently.
119
+ const oldActiveDate = this._activeDate;
120
+ const isRtl = this._isRtl();
121
+ switch (event.keyCode) {
122
+ case LEFT_ARROW:
123
+ this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, isRtl ? 1 : -1);
124
+ break;
125
+ case RIGHT_ARROW:
126
+ this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, isRtl ? -1 : 1);
127
+ break;
128
+ case UP_ARROW:
129
+ this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, -7);
130
+ break;
131
+ case DOWN_ARROW:
132
+ this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, 7);
133
+ break;
134
+ case HOME:
135
+ this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, 1 - this._dateAdapter.getDate(this._activeDate));
136
+ break;
137
+ case END:
138
+ this.activeDate = this._dateAdapter.addCalendarDays(this._activeDate, (this._dateAdapter.getNumDaysInMonth(this._activeDate) -
139
+ this._dateAdapter.getDate(this._activeDate)));
140
+ break;
141
+ case PAGE_UP:
142
+ this.activeDate = event.altKey ?
143
+ this._dateAdapter.addCalendarYears(this._activeDate, -1) :
144
+ this._dateAdapter.addCalendarMonths(this._activeDate, -1);
145
+ break;
146
+ case PAGE_DOWN:
147
+ this.activeDate = event.altKey ?
148
+ this._dateAdapter.addCalendarYears(this._activeDate, 1) :
149
+ this._dateAdapter.addCalendarMonths(this._activeDate, 1);
150
+ break;
151
+ case ENTER:
152
+ case SPACE:
153
+ if (!this.dateFilter || this.dateFilter(this._activeDate)) {
154
+ this._dateSelected({ value: this._dateAdapter.getDate(this._activeDate), event });
155
+ // Prevent unexpected default actions such as form submission.
156
+ event.preventDefault();
157
+ }
158
+ return;
159
+ case ESCAPE:
160
+ // Abort the current range selection if the user presses escape mid-selection.
161
+ if (this._previewEnd != null) {
162
+ this._previewStart = this._previewEnd = null;
163
+ this.selectedChange.emit(null);
164
+ this._userSelection.emit({ value: null, event });
165
+ event.preventDefault();
166
+ event.stopPropagation(); // Prevents the overlay from closing.
167
+ }
168
+ return;
169
+ default:
170
+ // Don't prevent default or focus active cell on keys that we don't explicitly handle.
171
+ return;
172
+ }
173
+ if (this._dateAdapter.compareDate(oldActiveDate, this.activeDate)) {
174
+ this.activeDateChange.emit(this.activeDate);
175
+ }
176
+ this._focusActiveCell();
177
+ // Prevent unexpected default actions such as form submission.
178
+ event.preventDefault();
179
+ }
180
+ /** Initializes this month view. */
181
+ _init() {
182
+ this._setRanges(this.selected);
183
+ this._todayDate = this._getCellCompareValue(this._dateAdapter.today());
184
+ this._monthLabel = this._dateAdapter.getMonthNames('short')[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();
185
+ let firstOfMonth = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), this._dateAdapter.getMonth(this.activeDate), 1);
186
+ this._firstWeekOffset = (DAYS_PER_WEEK + this._dateAdapter.getDayOfWeek(firstOfMonth) - this._dateAdapter.getFirstDayOfWeek()) % DAYS_PER_WEEK;
187
+ this._initWeekdays();
188
+ this._createWeekCells();
189
+ this._changeDetectorRef.markForCheck();
190
+ }
191
+ /** Focuses the active cell after the microtask queue is empty. */
192
+ _focusActiveCell(movePreview) {
193
+ this._matCalendarBody._focusActiveCell(movePreview);
194
+ }
195
+ /** Called when the user has activated a new cell and the preview needs to be updated. */
196
+ _previewChanged({ event, value: cell }) {
197
+ if (this._rangeStrategy) {
198
+ // We can assume that this will be a range, because preview
199
+ // events aren't fired for single date selections.
200
+ const value = cell ? cell.rawValue : null;
201
+ const previewRange = this._rangeStrategy.createPreview(value, this.selected, event);
202
+ this._previewStart = this._getCellCompareValue(previewRange.start);
203
+ this._previewEnd = this._getCellCompareValue(previewRange.end);
204
+ // Note that here we need to use `detectChanges`, rather than `markForCheck`, because
205
+ // the way `_focusActiveCell` is set up at the moment makes it fire at the wrong time
206
+ // when navigating one month back using the keyboard which will cause this handler
207
+ // to throw a "changed after checked" error when updating the preview state.
208
+ this._changeDetectorRef.detectChanges();
209
+ }
210
+ }
211
+ /** Initializes the weekdays. */
212
+ _initWeekdays() {
213
+ const firstDayOfWeek = this._dateAdapter.getFirstDayOfWeek();
214
+ const narrowWeekdays = this._dateAdapter.getDayOfWeekNames('narrow');
215
+ const longWeekdays = this._dateAdapter.getDayOfWeekNames('long');
216
+ // Rotate the labels for days of the week based on the configured first day of the week.
217
+ let weekdays = longWeekdays.map((long, i) => {
218
+ return { long, narrow: narrowWeekdays[i] };
219
+ });
220
+ this._weekdays = weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek));
221
+ }
222
+ /** Creates MatCalendarCells for the dates in this month. */
223
+ _createWeekCells() {
224
+ const daysInMonth = this._dateAdapter.getNumDaysInMonth(this.activeDate);
225
+ const dateNames = this._dateAdapter.getDateNames();
226
+ this._weeks = [[]];
227
+ for (let i = 0, cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) {
228
+ if (cell == DAYS_PER_WEEK) {
229
+ this._weeks.push([]);
230
+ cell = 0;
231
+ }
232
+ const date = this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate), this._dateAdapter.getMonth(this.activeDate), i + 1);
233
+ const enabled = this._shouldEnableDate(date);
234
+ const ariaLabel = this._dateAdapter.format(date, this._dateFormats.display.dateA11yLabel);
235
+ const cellClasses = this.dateClass ? this.dateClass(date, 'month') : undefined;
236
+ this._weeks[this._weeks.length - 1].push(new MatCalendarCell(i + 1, dateNames[i], ariaLabel, enabled, cellClasses, this._getCellCompareValue(date), date));
237
+ }
238
+ }
239
+ /** Date filter for the month */
240
+ _shouldEnableDate(date) {
241
+ return !!date &&
242
+ (!this.minDate || this._dateAdapter.compareDate(date, this.minDate) >= 0) &&
243
+ (!this.maxDate || this._dateAdapter.compareDate(date, this.maxDate) <= 0) &&
244
+ (!this.dateFilter || this.dateFilter(date));
245
+ }
246
+ /**
247
+ * Gets the date in this month that the given Date falls on.
248
+ * Returns null if the given Date is in another month.
249
+ */
250
+ _getDateInCurrentMonth(date) {
251
+ return date && this._hasSameMonthAndYear(date, this.activeDate) ?
252
+ this._dateAdapter.getDate(date) : null;
253
+ }
254
+ /** Checks whether the 2 dates are non-null and fall within the same month of the same year. */
255
+ _hasSameMonthAndYear(d1, d2) {
256
+ return !!(d1 && d2 && this._dateAdapter.getMonth(d1) == this._dateAdapter.getMonth(d2) &&
257
+ this._dateAdapter.getYear(d1) == this._dateAdapter.getYear(d2));
258
+ }
259
+ /** Gets the value that will be used to one cell to another. */
260
+ _getCellCompareValue(date) {
261
+ if (date) {
262
+ // We use the time since the Unix epoch to compare dates in this view, rather than the
263
+ // cell values, because we need to support ranges that span across multiple months/years.
264
+ const year = this._dateAdapter.getYear(date);
265
+ const month = this._dateAdapter.getMonth(date);
266
+ const day = this._dateAdapter.getDate(date);
267
+ return new Date(year, month, day).getTime();
268
+ }
269
+ return null;
270
+ }
271
+ /** Determines whether the user has the RTL layout direction. */
272
+ _isRtl() {
273
+ return this._dir && this._dir.value === 'rtl';
274
+ }
275
+ /** Sets the current range based on a model value. */
276
+ _setRanges(selectedValue) {
277
+ if (selectedValue instanceof DateRange) {
278
+ this._rangeStart = this._getCellCompareValue(selectedValue.start);
279
+ this._rangeEnd = this._getCellCompareValue(selectedValue.end);
280
+ this._isRange = true;
281
+ }
282
+ else {
283
+ this._rangeStart = this._rangeEnd = this._getCellCompareValue(selectedValue);
284
+ this._isRange = false;
285
+ }
286
+ this._comparisonRangeStart = this._getCellCompareValue(this.comparisonStart);
287
+ this._comparisonRangeEnd = this._getCellCompareValue(this.comparisonEnd);
288
+ }
289
+ };
290
+ MatMonthView.ctorParameters = () => [
291
+ { type: ChangeDetectorRef },
292
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_FORMATS,] }] },
293
+ { type: DateAdapter, decorators: [{ type: Optional }] },
294
+ { type: Directionality, decorators: [{ type: Optional }] },
295
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DATE_RANGE_SELECTION_STRATEGY,] }, { type: Optional }] }
296
+ ];
297
+ __decorate([
298
+ Input(),
299
+ __metadata("design:type", Object),
300
+ __metadata("design:paramtypes", [Object])
301
+ ], MatMonthView.prototype, "activeDate", null);
302
+ __decorate([
303
+ Input(),
304
+ __metadata("design:type", Object),
305
+ __metadata("design:paramtypes", [Object])
306
+ ], MatMonthView.prototype, "selected", null);
307
+ __decorate([
308
+ Input(),
309
+ __metadata("design:type", Object),
310
+ __metadata("design:paramtypes", [Object])
311
+ ], MatMonthView.prototype, "minDate", null);
312
+ __decorate([
313
+ Input(),
314
+ __metadata("design:type", Object),
315
+ __metadata("design:paramtypes", [Object])
316
+ ], MatMonthView.prototype, "maxDate", null);
317
+ __decorate([
318
+ Input(),
319
+ __metadata("design:type", Function)
320
+ ], MatMonthView.prototype, "dateFilter", void 0);
321
+ __decorate([
322
+ Input(),
323
+ __metadata("design:type", Function)
324
+ ], MatMonthView.prototype, "dateClass", void 0);
325
+ __decorate([
326
+ Input(),
327
+ __metadata("design:type", Object)
328
+ ], MatMonthView.prototype, "comparisonStart", void 0);
329
+ __decorate([
330
+ Input(),
331
+ __metadata("design:type", Object)
332
+ ], MatMonthView.prototype, "comparisonEnd", void 0);
333
+ __decorate([
334
+ Output(),
335
+ __metadata("design:type", EventEmitter)
336
+ ], MatMonthView.prototype, "selectedChange", void 0);
337
+ __decorate([
338
+ Output(),
339
+ __metadata("design:type", EventEmitter)
340
+ ], MatMonthView.prototype, "_userSelection", void 0);
341
+ __decorate([
342
+ Output(),
343
+ __metadata("design:type", EventEmitter)
344
+ ], MatMonthView.prototype, "activeDateChange", void 0);
345
+ __decorate([
346
+ ViewChild(MatCalendarBody, { static: true }),
347
+ __metadata("design:type", MatCalendarBody)
348
+ ], MatMonthView.prototype, "_matCalendarBody", void 0);
349
+ MatMonthView = __decorate([
350
+ Component({
351
+ selector: 'gipi-mat-month-view',
352
+ template: "<table class=\"mat-calendar-table\"\n role=\"presentation\">\n <thead class=\"mat-calendar-table-header\">\n <tr>\n <th scope=\"col\"\n *ngFor=\"let day of _weekdays\"\n [attr.aria-label]=\"day.long\">\n {{ day.narrow }}\n </th>\n </tr>\n <tr>\n <th class=\"mat-calendar-table-header-divider\"\n colspan=\"7\"\n aria-hidden=\"true\">\n </th>\n </tr>\n </thead>\n <tbody gipi-mat-calendar-body\n [label]=\"_monthLabel\"\n [rows]=\"_weeks\"\n [todayValue]=\"_todayDate!\"\n [startValue]=\"_rangeStart!\"\n [endValue]=\"_rangeEnd!\"\n [comparisonStart]=\"_comparisonRangeStart\"\n [comparisonEnd]=\"_comparisonRangeEnd\"\n [previewStart]=\"_previewStart\"\n [previewEnd]=\"_previewEnd\"\n [isRange]=\"_isRange\"\n [labelMinRequiredCells]=\"3\"\n [activeCell]=\"_dateAdapter.getDate(activeDate) - 1\"\n (selectedValueChange)=\"_dateSelected($event)\"\n (previewChange)=\"_previewChanged($event)\"\n (keydown)=\"_handleCalendarBodyKeydown($event)\">\n </tbody>\n</table>",
353
+ exportAs: 'gipiMatMonthView',
354
+ encapsulation: ViewEncapsulation.None,
355
+ changeDetection: ChangeDetectionStrategy.OnPush
356
+ }),
357
+ __param(1, Optional()), __param(1, Inject(MAT_DATE_FORMATS)),
358
+ __param(2, Optional()),
359
+ __param(3, Optional()),
360
+ __param(4, Inject(MAT_DATE_RANGE_SELECTION_STRATEGY)), __param(4, Optional()),
361
+ __metadata("design:paramtypes", [ChangeDetectorRef, Object, DateAdapter,
362
+ Directionality, Object])
363
+ ], MatMonthView);
364
+ export { MatMonthView };
365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtdmlldy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9tYXQtZGF0ZXBpY2tlci9tb250aC12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQzNOLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsR0FBdUQsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsaUNBQWlDLEdBQWtDLE1BQU0saUNBQWlDLENBQUM7QUFDcEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVB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QUFDLGlDQUFpQyxDQUFDLENBQUEsRUFBRSxXQUFBLFFBQVEsRUFBRSxDQUFBO3FDQUoxQixpQkFBaUIsVUFFWixXQUFXO1FBQ2pCLGNBQWM7R0FqSHBDLFlBQVksQ0E4V3hCO1NBOVdZLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFTkQsIEVOVEVSLCBFU0NBUEUsIEhPTUUsIExFRlRfQVJST1csIFBBR0VfRE9XTiwgUEFHRV9VUCwgUklHSFRfQVJST1csIFNQQUNFLCBVUF9BUlJPVywgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhckJvZHksIE1hdENhbGVuZGFyQ2VsbCwgTWF0Q2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvbiwgTWF0Q2FsZW5kYXJVc2VyRXZlbnQsIH0gZnJvbSAnLi9jYWxlbmRhci1ib2R5JztcbmltcG9ydCB7IE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSwgTWF0RGF0ZVJhbmdlU2VsZWN0aW9uU3RyYXRlZ3ksIH0gZnJvbSAnLi9kYXRlLXJhbmdlLXNlbGVjdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2UgfSBmcm9tICcuL2RhdGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yIH0gZnJvbSAnLi9kYXRlcGlja2VyLWVycm9ycyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4vc2hhcmVkL2FkYXB0ZXIvZGF0ZS1hZGFwdGVyJztcblxuY29uc3QgREFZU19QRVJfV0VFSyA9IDc7XG5cbi8qKlxuICogQW4gaW50ZXJuYWwgY29tcG9uZW50IHVzZWQgdG8gZGlzcGxheSBhIHNpbmdsZSBtb250aCBpbiB0aGUgZGF0ZXBpY2tlci5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnaXBpLW1hdC1tb250aC12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJ21vbnRoLXZpZXcuaHRtbCcsXG4gICAgZXhwb3J0QXM6ICdnaXBpTWF0TW9udGhWaWV3JyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRNb250aFZpZXc8RD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfcmVyZW5kZXJTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF0ZSB0byBkaXNwbGF5IGluIHRoaXMgbW9udGggdmlldyAoZXZlcnl0aGluZyBvdGhlciB0aGFuIHRoZSBtb250aCBhbmQgeWVhciBpcyBpZ25vcmVkKS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBhY3RpdmVEYXRlKCk6IEQgeyByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTsgfVxuICAgIHNldCBhY3RpdmVEYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIGNvbnN0IG9sZEFjdGl2ZURhdGUgPSB0aGlzLl9hY3RpdmVEYXRlO1xuICAgICAgICBjb25zdCB2YWxpZERhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKSB8fCB0aGlzLl9kYXRlQWRhcHRlci50b2RheSgpO1xuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuY2xhbXBEYXRlKHZhbGlkRGF0ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpO1xuICAgICAgICBpZiAoIXRoaXMuX2hhc1NhbWVNb250aEFuZFllYXIob2xkQWN0aXZlRGF0ZSwgdGhpcy5fYWN0aXZlRGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9hY3RpdmVEYXRlOiBEO1xuXG4gICAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzZWxlY3RlZCgpOiBEYXRlUmFuZ2U8RD4gfCBEIHwgbnVsbCB7IHJldHVybiB0aGlzLl9zZWxlY3RlZDsgfVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZTogRGF0ZVJhbmdlPEQ+IHwgRCB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldFJhbmdlcyh0aGlzLl9zZWxlY3RlZCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NlbGVjdGVkOiBEYXRlUmFuZ2U8RD4gfCBEIHwgbnVsbDtcblxuICAgIC8qKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbWluRGF0ZSgpOiBEIHwgbnVsbCB7IHJldHVybiB0aGlzLl9taW5EYXRlOyB9XG4gICAgc2V0IG1pbkRhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbWluRGF0ZTogRCB8IG51bGw7XG5cbiAgICAvKiogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1heERhdGUoKTogRCB8IG51bGwgeyByZXR1cm4gdGhpcy5fbWF4RGF0ZTsgfVxuICAgIHNldCBtYXhEYXRlKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgfVxuICAgIHByaXZhdGUgX21heERhdGU6IEQgfCBudWxsO1xuXG4gICAgLyoqIEZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIHdoaWNoIGRhdGVzIGFyZSBzZWxlY3RhYmxlLiAqL1xuICAgIEBJbnB1dCgpIGRhdGVGaWx0ZXI6IChkYXRlOiBEKSA9PiBib29sZWFuO1xuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWRkIGN1c3RvbSBDU1MgY2xhc3NlcyB0byBkYXRlcy4gKi9cbiAgICBASW5wdXQoKSBkYXRlQ2xhc3M6IE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248RD47XG5cbiAgICAvKiogU3RhcnQgb2YgdGhlIGNvbXBhcmlzb24gcmFuZ2UuICovXG4gICAgQElucHV0KCkgY29tcGFyaXNvblN0YXJ0OiBEIHwgbnVsbDtcblxuICAgIC8qKiBFbmQgb2YgdGhlIGNvbXBhcmlzb24gcmFuZ2UuICovXG4gICAgQElucHV0KCkgY29tcGFyaXNvbkVuZDogRCB8IG51bGw7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhIG5ldyBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPEQgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RCB8IG51bGw+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbnkgZGF0ZSBpcyBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgX3VzZXJTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxNYXRDYWxlbmRhclVzZXJFdmVudDxEIHwgbnVsbD4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxNYXRDYWxlbmRhclVzZXJFdmVudDxEIHwgbnVsbD4+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbnkgZGF0ZSBpcyBhY3RpdmF0ZWQuICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFjdGl2ZURhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEPiA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcblxuICAgIC8qKiBUaGUgYm9keSBvZiBjYWxlbmRhciB0YWJsZSAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0Q2FsZW5kYXJCb2R5LCB7IHN0YXRpYzogdHJ1ZSB9KSBfbWF0Q2FsZW5kYXJCb2R5OiBNYXRDYWxlbmRhckJvZHk7XG5cbiAgICAvKiogVGhlIGxhYmVsIGZvciB0aGlzIG1vbnRoIChlLmcuIFwiSmFudWFyeSAyMDE3XCIpLiAqL1xuICAgIF9tb250aExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogR3JpZCBvZiBjYWxlbmRhciBjZWxscyByZXByZXNlbnRpbmcgdGhlIGRhdGVzIG9mIHRoZSBtb250aC4gKi9cbiAgICBfd2Vla3M6IE1hdENhbGVuZGFyQ2VsbFtdW107XG5cbiAgICAvKiogVGhlIG51bWJlciBvZiBibGFuayBjZWxscyBpbiB0aGUgZmlyc3Qgcm93IGJlZm9yZSB0aGUgMXN0IG9mIHRoZSBtb250aC4gKi9cbiAgICBfZmlyc3RXZWVrT2Zmc2V0OiBudW1iZXI7XG5cbiAgICAvKiogU3RhcnQgdmFsdWUgb2YgdGhlIGN1cnJlbnRseS1zaG93biBkYXRlIHJhbmdlLiAqL1xuICAgIF9yYW5nZVN0YXJ0OiBudW1iZXIgfCBudWxsO1xuXG4gICAgLyoqIEVuZCB2YWx1ZSBvZiB0aGUgY3VycmVudGx5LXNob3duIGRhdGUgcmFuZ2UuICovXG4gICAgX3JhbmdlRW5kOiBudW1iZXIgfCBudWxsO1xuXG4gICAgLyoqIFN0YXJ0IHZhbHVlIG9mIHRoZSBjdXJyZW50bHktc2hvd24gY29tcGFyaXNvbiBkYXRlIHJhbmdlLiAqL1xuICAgIF9jb21wYXJpc29uUmFuZ2VTdGFydDogbnVtYmVyIHwgbnVsbDtcblxuICAgIC8qKiBFbmQgdmFsdWUgb2YgdGhlIGN1cnJlbnRseS1zaG93biBjb21wYXJpc29uIGRhdGUgcmFuZ2UuICovXG4gICAgX2NvbXBhcmlzb25SYW5nZUVuZDogbnVtYmVyIHwgbnVsbDtcblxuICAgIC8qKiBTdGFydCBvZiB0aGUgcHJldmlldyByYW5nZS4gKi9cbiAgICBfcHJldmlld1N0YXJ0OiBudW1iZXIgfCBudWxsO1xuXG4gICAgLyoqIEVuZCBvZiB0aGUgcHJldmlldyByYW5nZS4gKi9cbiAgICBfcHJldmlld0VuZDogbnVtYmVyIHwgbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBzZWxlY3RpbmcgYSByYW5nZSBvZiBkYXRlcy4gKi9cbiAgICBfaXNSYW5nZTogYm9vbGVhbjtcblxuICAgIC8qKiBUaGUgZGF0ZSBvZiB0aGUgbW9udGggdGhhdCB0b2RheSBmYWxscyBvbi4gTnVsbCBpZiB0b2RheSBpcyBpbiBhbm90aGVyIG1vbnRoLiAqL1xuICAgIF90b2RheURhdGU6IG51bWJlciB8IG51bGw7XG5cbiAgICAvKiogVGhlIG5hbWVzIG9mIHRoZSB3ZWVrZGF5cy4gKi9cbiAgICBfd2Vla2RheXM6IHsgbG9uZzogc3RyaW5nLCBuYXJyb3c6IHN0cmluZyB9W107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Rpcj86IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICBASW5qZWN0KE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSkgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBfcmFuZ2VTdHJhdGVneT86IE1hdERhdGVSYW5nZVNlbGVjdGlvblN0cmF0ZWd5PEQ+XG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZUFkYXB0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKCdEYXRlQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZUZvcm1hdHMpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKCdNQVRfREFURV9GT1JNQVRTJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIudG9kYXkoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuX3JlcmVuZGVyU3Vic2NyaXB0aW9uID0gdGhpcy5fZGF0ZUFkYXB0ZXIubG9jYWxlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9pbml0KCkpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgY29tcGFyaXNvbkNoYW5nZSA9IGNoYW5nZXNbJ2NvbXBhcmlzb25TdGFydCddIHx8IGNoYW5nZXNbJ2NvbXBhcmlzb25FbmQnXTtcblxuICAgICAgICBpZiAoY29tcGFyaXNvbkNoYW5nZSAmJiAhY29tcGFyaXNvbkNoYW5nZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0UmFuZ2VzKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3JlcmVuZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgd2hlbiBhIG5ldyBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIF9kYXRlU2VsZWN0ZWQoZXZlbnQ6IE1hdENhbGVuZGFyVXNlckV2ZW50PG51bWJlcj4pIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFllYXIgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTW9udGggPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRNb250aCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5jcmVhdGVEYXRlKHNlbGVjdGVkWWVhciwgc2VsZWN0ZWRNb250aCwgZGF0ZSk7XG4gICAgICAgIGxldCByYW5nZVN0YXJ0RGF0ZTogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgbGV0IHJhbmdlRW5kRGF0ZTogbnVtYmVyIHwgbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgaW5zdGFuY2VvZiBEYXRlUmFuZ2UpIHtcbiAgICAgICAgICAgIHJhbmdlU3RhcnREYXRlID0gdGhpcy5fZ2V0RGF0ZUluQ3VycmVudE1vbnRoKHRoaXMuX3NlbGVjdGVkLnN0YXJ0KTtcbiAgICAgICAgICAgIHJhbmdlRW5kRGF0ZSA9IHRoaXMuX2dldERhdGVJbkN1cnJlbnRNb250aCh0aGlzLl9zZWxlY3RlZC5lbmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmFuZ2VTdGFydERhdGUgPSByYW5nZUVuZERhdGUgPSB0aGlzLl9nZXREYXRlSW5DdXJyZW50TW9udGgodGhpcy5fc2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJhbmdlU3RhcnREYXRlICE9PSBkYXRlIHx8IHJhbmdlRW5kRGF0ZSAhPT0gZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl91c2VyU2VsZWN0aW9uLmVtaXQoeyB2YWx1ZTogc2VsZWN0ZWREYXRlLCBldmVudDogZXZlbnQuZXZlbnQgfSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMga2V5ZG93biBldmVudHMgb24gdGhlIGNhbGVuZGFyIGJvZHkgd2hlbiBjYWxlbmRhciBpcyBpbiBtb250aCB2aWV3LiAqL1xuICAgIF9oYW5kbGVDYWxlbmRhckJvZHlLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE8obW1hbGVyYmEpOiBXZSBjdXJyZW50bHkgYWxsb3cga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBkaXNhYmxlZCBkYXRlcywgYnV0IGp1c3QgcHJldmVudFxuICAgICAgICAvLyBkaXNhYmxlZCBvbmVzIGZyb20gYmVpbmcgc2VsZWN0ZWQuIFRoaXMgbWF5IG5vdCBiZSBpZGVhbCwgd2Ugc2hvdWxkIGxvb2sgaW50byB3aGV0aGVyXG4gICAgICAgIC8vIG5hdmlnYXRpb24gc2hvdWxkIHNraXAgb3ZlciBkaXNhYmxlZCBkYXRlcywgYW5kIGlmIHNvLCBob3cgdG8gaW1wbGVtZW50IHRoYXQgZWZmaWNpZW50bHkuXG5cbiAgICAgICAgY29uc3Qgb2xkQWN0aXZlRGF0ZSA9IHRoaXMuX2FjdGl2ZURhdGU7XG4gICAgICAgIGNvbnN0IGlzUnRsID0gdGhpcy5faXNSdGwoKTtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgTEVGVF9BUlJPVzpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXModGhpcy5fYWN0aXZlRGF0ZSwgaXNSdGwgPyAxIDogLTEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSSUdIVF9BUlJPVzpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXModGhpcy5fYWN0aXZlRGF0ZSwgaXNSdGwgPyAtMSA6IDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBVUF9BUlJPVzpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXModGhpcy5fYWN0aXZlRGF0ZSwgLTcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyh0aGlzLl9hY3RpdmVEYXRlLCA3KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSE9NRTpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXModGhpcy5fYWN0aXZlRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgMSAtIHRoaXMuX2RhdGVBZGFwdGVyLmdldERhdGUodGhpcy5fYWN0aXZlRGF0ZSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFTkQ6XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJEYXlzKHRoaXMuX2FjdGl2ZURhdGUsXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl9kYXRlQWRhcHRlci5nZXROdW1EYXlzSW5Nb250aCh0aGlzLl9hY3RpdmVEYXRlKSAtXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXREYXRlKHRoaXMuX2FjdGl2ZURhdGUpKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBBR0VfVVA6XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gZXZlbnQuYWx0S2V5ID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLl9hY3RpdmVEYXRlLCAtMSkgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLl9hY3RpdmVEYXRlLCAtMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSBldmVudC5hbHRLZXkgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhclllYXJzKHRoaXMuX2FjdGl2ZURhdGUsIDEpIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5fYWN0aXZlRGF0ZSwgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVOVEVSOlxuICAgICAgICAgICAgY2FzZSBTUEFDRTpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0ZUZpbHRlciB8fCB0aGlzLmRhdGVGaWx0ZXIodGhpcy5fYWN0aXZlRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVNlbGVjdGVkKHsgdmFsdWU6IHRoaXMuX2RhdGVBZGFwdGVyLmdldERhdGUodGhpcy5fYWN0aXZlRGF0ZSksIGV2ZW50IH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IHVuZXhwZWN0ZWQgZGVmYXVsdCBhY3Rpb25zIHN1Y2ggYXMgZm9ybSBzdWJtaXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlIEVTQ0FQRTpcbiAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgY3VycmVudCByYW5nZSBzZWxlY3Rpb24gaWYgdGhlIHVzZXIgcHJlc3NlcyBlc2NhcGUgbWlkLXNlbGVjdGlvbi5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcHJldmlld0VuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ByZXZpZXdTdGFydCA9IHRoaXMuX3ByZXZpZXdFbmQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VzZXJTZWxlY3Rpb24uZW1pdCh7IHZhbHVlOiBudWxsLCBldmVudCB9KTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIFByZXZlbnRzIHRoZSBvdmVybGF5IGZyb20gY2xvc2luZy5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmV2ZW50IGRlZmF1bHQgb3IgZm9jdXMgYWN0aXZlIGNlbGwgb24ga2V5cyB0aGF0IHdlIGRvbid0IGV4cGxpY2l0bHkgaGFuZGxlLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShvbGRBY3RpdmVEYXRlLCB0aGlzLmFjdGl2ZURhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZm9jdXNBY3RpdmVDZWxsKCk7XG4gICAgICAgIC8vIFByZXZlbnQgdW5leHBlY3RlZCBkZWZhdWx0IGFjdGlvbnMgc3VjaCBhcyBmb3JtIHN1Ym1pc3Npb24uXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqIEluaXRpYWxpemVzIHRoaXMgbW9udGggdmlldy4gKi9cbiAgICBfaW5pdCgpIHtcbiAgICAgICAgdGhpcy5fc2V0UmFuZ2VzKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLl90b2RheURhdGUgPSB0aGlzLl9nZXRDZWxsQ29tcGFyZVZhbHVlKHRoaXMuX2RhdGVBZGFwdGVyLnRvZGF5KCkpO1xuICAgICAgICB0aGlzLl9tb250aExhYmVsID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGhOYW1lcygnc2hvcnQnKVt0aGlzLl9kYXRlQWRhcHRlci5nZXRNb250aCh0aGlzLmFjdGl2ZURhdGUpXS50b0xvY2FsZVVwcGVyQ2FzZSgpO1xuXG4gICAgICAgIGxldCBmaXJzdE9mTW9udGggPSB0aGlzLl9kYXRlQWRhcHRlci5jcmVhdGVEYXRlKHRoaXMuX2RhdGVBZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSwgMSk7XG4gICAgICAgIHRoaXMuX2ZpcnN0V2Vla09mZnNldCA9IChEQVlTX1BFUl9XRUVLICsgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0RGF5T2ZXZWVrKGZpcnN0T2ZNb250aCkgLSB0aGlzLl9kYXRlQWRhcHRlci5nZXRGaXJzdERheU9mV2VlaygpKSAlIERBWVNfUEVSX1dFRUs7XG5cbiAgICAgICAgdGhpcy5faW5pdFdlZWtkYXlzKCk7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVdlZWtDZWxscygpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogRm9jdXNlcyB0aGUgYWN0aXZlIGNlbGwgYWZ0ZXIgdGhlIG1pY3JvdGFzayBxdWV1ZSBpcyBlbXB0eS4gKi9cbiAgICBfZm9jdXNBY3RpdmVDZWxsKG1vdmVQcmV2aWV3PzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9tYXRDYWxlbmRhckJvZHkuX2ZvY3VzQWN0aXZlQ2VsbChtb3ZlUHJldmlldyk7XG4gICAgfVxuXG4gICAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIGhhcyBhY3RpdmF0ZWQgYSBuZXcgY2VsbCBhbmQgdGhlIHByZXZpZXcgbmVlZHMgdG8gYmUgdXBkYXRlZC4gKi9cbiAgICBfcHJldmlld0NoYW5nZWQoeyBldmVudCwgdmFsdWU6IGNlbGwgfTogTWF0Q2FsZW5kYXJVc2VyRXZlbnQ8TWF0Q2FsZW5kYXJDZWxsPEQ+IHwgbnVsbD4pIHtcbiAgICAgICAgaWYgKHRoaXMuX3JhbmdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIC8vIFdlIGNhbiBhc3N1bWUgdGhhdCB0aGlzIHdpbGwgYmUgYSByYW5nZSwgYmVjYXVzZSBwcmV2aWV3XG4gICAgICAgICAgICAvLyBldmVudHMgYXJlbid0IGZpcmVkIGZvciBzaW5nbGUgZGF0ZSBzZWxlY3Rpb25zLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjZWxsID8gY2VsbC5yYXdWYWx1ZSEgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgcHJldmlld1JhbmdlID0gdGhpcy5fcmFuZ2VTdHJhdGVneS5jcmVhdGVQcmV2aWV3KHZhbHVlLCB0aGlzLnNlbGVjdGVkIGFzIERhdGVSYW5nZTxEPiwgZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlld1N0YXJ0ID0gdGhpcy5fZ2V0Q2VsbENvbXBhcmVWYWx1ZShwcmV2aWV3UmFuZ2Uuc3RhcnQpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlld0VuZCA9IHRoaXMuX2dldENlbGxDb21wYXJlVmFsdWUocHJldmlld1JhbmdlLmVuZCk7XG5cbiAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBoZXJlIHdlIG5lZWQgdG8gdXNlIGBkZXRlY3RDaGFuZ2VzYCwgcmF0aGVyIHRoYW4gYG1hcmtGb3JDaGVja2AsIGJlY2F1c2VcbiAgICAgICAgICAgIC8vIHRoZSB3YXkgYF9mb2N1c0FjdGl2ZUNlbGxgIGlzIHNldCB1cCBhdCB0aGUgbW9tZW50IG1ha2VzIGl0IGZpcmUgYXQgdGhlIHdyb25nIHRpbWVcbiAgICAgICAgICAgIC8vIHdoZW4gbmF2aWdhdGluZyBvbmUgbW9udGggYmFjayB1c2luZyB0aGUga2V5Ym9hcmQgd2hpY2ggd2lsbCBjYXVzZSB0aGlzIGhhbmRsZXJcbiAgICAgICAgICAgIC8vIHRvIHRocm93IGEgXCJjaGFuZ2VkIGFmdGVyIGNoZWNrZWRcIiBlcnJvciB3aGVuIHVwZGF0aW5nIHRoZSBwcmV2aWV3IHN0YXRlLlxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEluaXRpYWxpemVzIHRoZSB3ZWVrZGF5cy4gKi9cbiAgICBwcml2YXRlIF9pbml0V2Vla2RheXMoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0RGF5T2ZXZWVrID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0Rmlyc3REYXlPZldlZWsoKTtcbiAgICAgICAgY29uc3QgbmFycm93V2Vla2RheXMgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXREYXlPZldlZWtOYW1lcygnbmFycm93Jyk7XG4gICAgICAgIGNvbnN0IGxvbmdXZWVrZGF5cyA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldERheU9mV2Vla05hbWVzKCdsb25nJyk7XG5cbiAgICAgICAgLy8gUm90YXRlIHRoZSBsYWJlbHMgZm9yIGRheXMgb2YgdGhlIHdlZWsgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICBsZXQgd2Vla2RheXMgPSBsb25nV2Vla2RheXMubWFwKChsb25nLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBsb25nLCBuYXJyb3c6IG5hcnJvd1dlZWtkYXlzW2ldIH07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl93ZWVrZGF5cyA9IHdlZWtkYXlzLnNsaWNlKGZpcnN0RGF5T2ZXZWVrKS5jb25jYXQod2Vla2RheXMuc2xpY2UoMCwgZmlyc3REYXlPZldlZWspKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlcyBNYXRDYWxlbmRhckNlbGxzIGZvciB0aGUgZGF0ZXMgaW4gdGhpcyBtb250aC4gKi9cbiAgICBwcml2YXRlIF9jcmVhdGVXZWVrQ2VsbHMoKSB7XG4gICAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgY29uc3QgZGF0ZU5hbWVzID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0RGF0ZU5hbWVzKCk7XG4gICAgICAgIHRoaXMuX3dlZWtzID0gW1tdXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGNlbGwgPSB0aGlzLl9maXJzdFdlZWtPZmZzZXQ7IGkgPCBkYXlzSW5Nb250aDsgaSsrLCBjZWxsKyspIHtcbiAgICAgICAgICAgIGlmIChjZWxsID09IERBWVNfUEVSX1dFRUspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrcy5wdXNoKFtdKTtcbiAgICAgICAgICAgICAgICBjZWxsID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5jcmVhdGVEYXRlKHRoaXMuX2RhdGVBZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSwgaSArIDEpO1xuICAgICAgICAgICAgY29uc3QgZW5hYmxlZCA9IHRoaXMuX3Nob3VsZEVuYWJsZURhdGUoZGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBhcmlhTGFiZWwgPSB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQoZGF0ZSwgdGhpcy5fZGF0ZUZvcm1hdHMuZGlzcGxheS5kYXRlQTExeUxhYmVsKTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxDbGFzc2VzID0gdGhpcy5kYXRlQ2xhc3MgPyB0aGlzLmRhdGVDbGFzcyhkYXRlLCAnbW9udGgnKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgdGhpcy5fd2Vla3NbdGhpcy5fd2Vla3MubGVuZ3RoIC0gMV0ucHVzaChuZXcgTWF0Q2FsZW5kYXJDZWxsPEQ+KGkgKyAxLCBkYXRlTmFtZXNbaV0sIGFyaWFMYWJlbCwgZW5hYmxlZCwgY2VsbENsYXNzZXMsIHRoaXMuX2dldENlbGxDb21wYXJlVmFsdWUoZGF0ZSkhLCBkYXRlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRGF0ZSBmaWx0ZXIgZm9yIHRoZSBtb250aCAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVuYWJsZURhdGUoZGF0ZTogRCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFkYXRlICYmXG4gICAgICAgICAgICAoIXRoaXMubWluRGF0ZSB8fCB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCB0aGlzLm1pbkRhdGUpID49IDApICYmXG4gICAgICAgICAgICAoIXRoaXMubWF4RGF0ZSB8fCB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCB0aGlzLm1heERhdGUpIDw9IDApICYmXG4gICAgICAgICAgICAoIXRoaXMuZGF0ZUZpbHRlciB8fCB0aGlzLmRhdGVGaWx0ZXIoZGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRhdGUgaW4gdGhpcyBtb250aCB0aGF0IHRoZSBnaXZlbiBEYXRlIGZhbGxzIG9uLlxuICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgZ2l2ZW4gRGF0ZSBpcyBpbiBhbm90aGVyIG1vbnRoLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldERhdGVJbkN1cnJlbnRNb250aChkYXRlOiBEIHwgbnVsbCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gZGF0ZSAmJiB0aGlzLl9oYXNTYW1lTW9udGhBbmRZZWFyKGRhdGUsIHRoaXMuYWN0aXZlRGF0ZSkgP1xuICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0RGF0ZShkYXRlKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSAyIGRhdGVzIGFyZSBub24tbnVsbCBhbmQgZmFsbCB3aXRoaW4gdGhlIHNhbWUgbW9udGggb2YgdGhlIHNhbWUgeWVhci4gKi9cbiAgICBwcml2YXRlIF9oYXNTYW1lTW9udGhBbmRZZWFyKGQxOiBEIHwgbnVsbCwgZDI6IEQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIShkMSAmJiBkMiAmJiB0aGlzLl9kYXRlQWRhcHRlci5nZXRNb250aChkMSkgPT0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgoZDIpICYmXG4gICAgICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKGQxKSA9PSB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKGQyKSk7XG4gICAgfVxuXG4gICAgLyoqIEdldHMgdGhlIHZhbHVlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIG9uZSBjZWxsIHRvIGFub3RoZXIuICovXG4gICAgcHJpdmF0ZSBfZ2V0Q2VsbENvbXBhcmVWYWx1ZShkYXRlOiBEIHwgbnVsbCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgLy8gV2UgdXNlIHRoZSB0aW1lIHNpbmNlIHRoZSBVbml4IGVwb2NoIHRvIGNvbXBhcmUgZGF0ZXMgaW4gdGhpcyB2aWV3LCByYXRoZXIgdGhhbiB0aGVcbiAgICAgICAgICAgIC8vIGNlbGwgdmFsdWVzLCBiZWNhdXNlIHdlIG5lZWQgdG8gc3VwcG9ydCByYW5nZXMgdGhhdCBzcGFuIGFjcm9zcyBtdWx0aXBsZSBtb250aHMveWVhcnMuXG4gICAgICAgICAgICBjb25zdCB5ZWFyID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0WWVhcihkYXRlKTtcbiAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgoZGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBkYXkgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXREYXRlKGRhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpLmdldFRpbWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSBSVEwgbGF5b3V0IGRpcmVjdGlvbi4gKi9cbiAgICBwcml2YXRlIF9pc1J0bCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpciAmJiB0aGlzLl9kaXIudmFsdWUgPT09ICdydGwnO1xuICAgIH1cblxuICAgIC8qKiBTZXRzIHRoZSBjdXJyZW50IHJhbmdlIGJhc2VkIG9uIGEgbW9kZWwgdmFsdWUuICovXG4gICAgcHJpdmF0ZSBfc2V0UmFuZ2VzKHNlbGVjdGVkVmFsdWU6IERhdGVSYW5nZTxEPiB8IEQgfCBudWxsKSB7XG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlIGluc3RhbmNlb2YgRGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9yYW5nZVN0YXJ0ID0gdGhpcy5fZ2V0Q2VsbENvbXBhcmVWYWx1ZShzZWxlY3RlZFZhbHVlLnN0YXJ0KTtcbiAgICAgICAgICAgIHRoaXMuX3JhbmdlRW5kID0gdGhpcy5fZ2V0Q2VsbENvbXBhcmVWYWx1ZShzZWxlY3RlZFZhbHVlLmVuZCk7XG4gICAgICAgICAgICB0aGlzLl9pc1JhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3JhbmdlU3RhcnQgPSB0aGlzLl9yYW5nZUVuZCA9IHRoaXMuX2dldENlbGxDb21wYXJlVmFsdWUoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9pc1JhbmdlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb21wYXJpc29uUmFuZ2VTdGFydCA9IHRoaXMuX2dldENlbGxDb21wYXJlVmFsdWUodGhpcy5jb21wYXJpc29uU3RhcnQpO1xuICAgICAgICB0aGlzLl9jb21wYXJpc29uUmFuZ2VFbmQgPSB0aGlzLl9nZXRDZWxsQ29tcGFyZVZhbHVlKHRoaXMuY29tcGFyaXNvbkVuZCk7XG4gICAgfVxufVxuIl19