@gipisistemas/ng-core 1.0.68 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (782) hide show
  1. package/README.md +38 -0
  2. package/_ITSS-NG-CI-CD.yml +53 -0
  3. package/_ITSS-NG-CI-PR.yml +53 -0
  4. package/angular-cli.json +42 -0
  5. package/azure-pipelines.yml +35 -0
  6. package/package.json +83 -31
  7. package/projects/itss-ng/ng-package.json +7 -0
  8. package/projects/itss-ng/package.json +25 -0
  9. package/assets/styles/colors.scss +0 -261
  10. package/assets/styles/layout-grid.scss +0 -146
  11. package/assets/styles/styles.scss +0 -149
  12. package/assets/styles/theme.scss +0 -22
  13. package/assets/styles/typography.scss +0 -54
  14. package/assets/styles/variable.scss +0 -41
  15. package/bundles/gipisistemas-ng-core.umd.js +0 -28311
  16. package/bundles/gipisistemas-ng-core.umd.js.map +0 -1
  17. package/bundles/gipisistemas-ng-core.umd.min.js +0 -66
  18. package/bundles/gipisistemas-ng-core.umd.min.js.map +0 -1
  19. package/core/app-messages.d.ts +0 -9
  20. package/core/app.messages.d.ts +0 -4
  21. package/core/components/abstract-crud.component.d.ts +0 -27
  22. package/core/components/abstract-find.component.d.ts +0 -43
  23. package/core/components/abstract.component.d.ts +0 -23
  24. package/core/components/alert/alert.component.d.ts +0 -7
  25. package/core/core.module.d.ts +0 -17
  26. package/core/custom-breakpoints.d.ts +0 -7
  27. package/core/enums/local-time.enum.d.ts +0 -5
  28. package/core/extensions/string.extension.d.ts +0 -3
  29. package/core/gipi-components/components/abstract-crud.component.d.ts +0 -25
  30. package/core/gipi-components/components/abstract-find.component.d.ts +0 -73
  31. package/core/gipi-components/components/abstract.component.d.ts +0 -38
  32. package/core/gipi-components/decorators/autowired.decorator.d.ts +0 -7
  33. package/core/gipi-components/enums/sort-direction.enum.d.ts +0 -5
  34. package/core/gipi-components/interface/abstract-crud.interface.d.ts +0 -5
  35. package/core/gipi-components/interface/abstract-find.interface.d.ts +0 -12
  36. package/core/gipi-components/interface/abstract.interface.d.ts +0 -11
  37. package/core/gipi-components/interface/base-permission.interface.d.ts +0 -9
  38. package/core/gipi-components/models/abstract-filter.model.d.ts +0 -9
  39. package/core/gipi-components/models/abstract.model.d.ts +0 -7
  40. package/core/gipi-components/models/applied-filter.model.d.ts +0 -9
  41. package/core/gipi-components/models/dto/abstract.dto.d.ts +0 -7
  42. package/core/gipi-components/models/page-event.model.d.ts +0 -18
  43. package/core/gipi-components/models/page.model.d.ts +0 -7
  44. package/core/gipi-components/models/sort.model.d.ts +0 -6
  45. package/core/gipi-components/services/abstract-crud.service.d.ts +0 -83
  46. package/core/gipi-components/services/abstract.service.d.ts +0 -19
  47. package/core/gipi-components/services/base.service.d.ts +0 -35
  48. package/core/gipi-components/services/file.service.d.ts +0 -6
  49. package/core/gipi-components/services/session-storage.service.d.ts +0 -8
  50. package/core/gipi-components/types/generic.type.d.ts +0 -1
  51. package/core/gipi-components/types/uuid.type.d.ts +0 -1
  52. package/core/guards/auth.guard.d.ts +0 -11
  53. package/core/guards/permission.guard.d.ts +0 -14
  54. package/core/guards/public.guard.d.ts +0 -11
  55. package/core/interceptors/auth.interceptor.d.ts +0 -9
  56. package/core/interceptors/error.interceptor.d.ts +0 -11
  57. package/core/models/abstract.model.d.ts +0 -3
  58. package/core/models/archive.model.d.ts +0 -4
  59. package/core/models/authority.model.d.ts +0 -3
  60. package/core/models/base-user.model.d.ts +0 -12
  61. package/core/models/dto/abstract.dto.d.ts +0 -2
  62. package/core/models/dto/api-error.dto.d.ts +0 -9
  63. package/core/models/dto/api-sub-error.dto.d.ts +0 -7
  64. package/core/models/dto/chart.dto.d.ts +0 -5
  65. package/core/models/dto/confirmation.dto.d.ts +0 -10
  66. package/core/models/dto/dialog.dto.d.ts +0 -36
  67. package/core/models/dto/filter.dto.d.ts +0 -8
  68. package/core/models/dto/input-listbox.dto.d.ts +0 -6
  69. package/core/models/dto/menu.dto.d.ts +0 -15
  70. package/core/models/dto/message.dto.d.ts +0 -7
  71. package/core/models/dto/page.dto.d.ts +0 -8
  72. package/core/models/dto/sort.dto.d.ts +0 -7
  73. package/core/models/dto/tab.dto.d.ts +0 -12
  74. package/core/models/dto/table-column.dto.d.ts +0 -21
  75. package/core/models/dto/table-group-header.dto.d.ts +0 -7
  76. package/core/models/dto/table-page-event.dto.d.ts +0 -6
  77. package/core/models/dto/token.dto.d.ts +0 -8
  78. package/core/models/enums/criteria-operation.enum.d.ts +0 -13
  79. package/core/models/enums/criteria-sort-direction.enum.d.ts +0 -4
  80. package/core/models/enums/menu-type.enum.d.ts +0 -6
  81. package/core/models/enums/radio-button.enum.d.ts +0 -6
  82. package/core/models/enums/sort-direction.enum.d.ts +0 -4
  83. package/core/models/multitenant.model.d.ts +0 -4
  84. package/core/models/permission.model.d.ts +0 -8
  85. package/core/models/role.model.d.ts +0 -7
  86. package/core/pipes/local-time.pipe.d.ts +0 -6
  87. package/core/services/abstract-crud.service.d.ts +0 -15
  88. package/core/services/abstract-find.service.d.ts +0 -30
  89. package/core/services/abstract.service.d.ts +0 -13
  90. package/core/services/authentication.service.d.ts +0 -23
  91. package/core/services/breakpoint-observer.service.d.ts +0 -9
  92. package/core/services/confirmation.service.d.ts +0 -8
  93. package/core/services/dialog.service.d.ts +0 -8
  94. package/core/services/message.service.d.ts +0 -8
  95. package/core/services/nav.service.d.ts +0 -16
  96. package/core/services/svg-register.service.d.ts +0 -22
  97. package/core/types/local-time.type.d.ts +0 -5
  98. package/core/types/ng-class.type.d.ts +0 -10
  99. package/core/utils/array.util.d.ts +0 -14
  100. package/core/utils/browser.util.d.ts +0 -4
  101. package/core/utils/currency.util.d.ts +0 -6
  102. package/core/utils/date.util.d.ts +0 -39
  103. package/core/utils/document.util.d.ts +0 -11
  104. package/core/utils/email.util.d.ts +0 -4
  105. package/core/utils/number.util.d.ts +0 -8
  106. package/core/utils/object.util.d.ts +0 -20
  107. package/core/utils/password.util.d.ts +0 -11
  108. package/core/utils/phone.util.d.ts +0 -13
  109. package/core/utils/string.util.d.ts +0 -9
  110. package/core/utils/table-column-builder.d.ts +0 -40
  111. package/core/utils/time.util.d.ts +0 -9
  112. package/core/utils/url-params.util.d.ts +0 -7
  113. package/core/utils/uuid.util.d.ts +0 -5
  114. package/core/utils/zindex.util.d.ts +0 -7
  115. package/core.d.ts +0 -88
  116. package/esm2015/core/app-messages.js +0 -1
  117. package/esm2015/core/app.messages.js +0 -12
  118. package/esm2015/core/components/abstract-crud.component.js +0 -97
  119. package/esm2015/core/components/abstract-find.component.js +0 -189
  120. package/esm2015/core/components/abstract.component.js +0 -110
  121. package/esm2015/core/components/alert/alert.component.js +0 -24
  122. package/esm2015/core/core.module.js +0 -103
  123. package/esm2015/core/custom-breakpoints.js +0 -87
  124. package/esm2015/core/enums/local-time.enum.js +0 -6
  125. package/esm2015/core/extensions/string.extension.js +0 -37
  126. package/esm2015/core/gipi-components/components/abstract-crud.component.js +0 -110
  127. package/esm2015/core/gipi-components/components/abstract-find.component.js +0 -471
  128. package/esm2015/core/gipi-components/components/abstract.component.js +0 -140
  129. package/esm2015/core/gipi-components/decorators/autowired.decorator.js +0 -47
  130. package/esm2015/core/gipi-components/enums/sort-direction.enum.js +0 -6
  131. package/esm2015/core/gipi-components/interface/abstract-crud.interface.js +0 -1
  132. package/esm2015/core/gipi-components/interface/abstract-find.interface.js +0 -1
  133. package/esm2015/core/gipi-components/interface/abstract.interface.js +0 -1
  134. package/esm2015/core/gipi-components/interface/base-permission.interface.js +0 -1
  135. package/esm2015/core/gipi-components/models/abstract-filter.model.js +0 -3
  136. package/esm2015/core/gipi-components/models/abstract.model.js +0 -3
  137. package/esm2015/core/gipi-components/models/applied-filter.model.js +0 -19
  138. package/esm2015/core/gipi-components/models/dto/abstract.dto.js +0 -3
  139. package/esm2015/core/gipi-components/models/page-event.model.js +0 -35
  140. package/esm2015/core/gipi-components/models/page.model.js +0 -7
  141. package/esm2015/core/gipi-components/models/sort.model.js +0 -7
  142. package/esm2015/core/gipi-components/services/abstract-crud.service.js +0 -109
  143. package/esm2015/core/gipi-components/services/abstract.service.js +0 -47
  144. package/esm2015/core/gipi-components/services/base.service.js +0 -102
  145. package/esm2015/core/gipi-components/services/file.service.js +0 -51
  146. package/esm2015/core/gipi-components/services/session-storage.service.js +0 -44
  147. package/esm2015/core/gipi-components/types/generic.type.js +0 -1
  148. package/esm2015/core/gipi-components/types/uuid.type.js +0 -1
  149. package/esm2015/core/guards/auth.guard.js +0 -48
  150. package/esm2015/core/guards/permission.guard.js +0 -61
  151. package/esm2015/core/guards/public.guard.js +0 -45
  152. package/esm2015/core/interceptors/auth.interceptor.js +0 -28
  153. package/esm2015/core/interceptors/error.interceptor.js +0 -110
  154. package/esm2015/core/models/abstract.model.js +0 -3
  155. package/esm2015/core/models/archive.model.js +0 -3
  156. package/esm2015/core/models/authority.model.js +0 -3
  157. package/esm2015/core/models/base-user.model.js +0 -8
  158. package/esm2015/core/models/dto/abstract.dto.js +0 -3
  159. package/esm2015/core/models/dto/api-error.dto.js +0 -8
  160. package/esm2015/core/models/dto/api-sub-error.dto.js +0 -4
  161. package/esm2015/core/models/dto/chart.dto.js +0 -4
  162. package/esm2015/core/models/dto/confirmation.dto.js +0 -8
  163. package/esm2015/core/models/dto/dialog.dto.js +0 -4
  164. package/esm2015/core/models/dto/filter.dto.js +0 -4
  165. package/esm2015/core/models/dto/input-listbox.dto.js +0 -7
  166. package/esm2015/core/models/dto/menu.dto.js +0 -9
  167. package/esm2015/core/models/dto/message.dto.js +0 -4
  168. package/esm2015/core/models/dto/page.dto.js +0 -9
  169. package/esm2015/core/models/dto/sort.dto.js +0 -9
  170. package/esm2015/core/models/dto/tab.dto.js +0 -10
  171. package/esm2015/core/models/dto/table-column.dto.js +0 -24
  172. package/esm2015/core/models/dto/table-group-header.dto.js +0 -10
  173. package/esm2015/core/models/dto/table-page-event.dto.js +0 -7
  174. package/esm2015/core/models/dto/token.dto.js +0 -4
  175. package/esm2015/core/models/enums/criteria-operation.enum.js +0 -15
  176. package/esm2015/core/models/enums/criteria-sort-direction.enum.js +0 -6
  177. package/esm2015/core/models/enums/menu-type.enum.js +0 -7
  178. package/esm2015/core/models/enums/radio-button.enum.js +0 -8
  179. package/esm2015/core/models/enums/sort-direction.enum.js +0 -6
  180. package/esm2015/core/models/multitenant.model.js +0 -4
  181. package/esm2015/core/models/permission.model.js +0 -11
  182. package/esm2015/core/models/role.model.js +0 -8
  183. package/esm2015/core/pipes/local-time.pipe.js +0 -21
  184. package/esm2015/core/services/abstract-crud.service.js +0 -24
  185. package/esm2015/core/services/abstract-find.service.js +0 -65
  186. package/esm2015/core/services/abstract.service.js +0 -30
  187. package/esm2015/core/services/authentication.service.js +0 -100
  188. package/esm2015/core/services/breakpoint-observer.service.js +0 -42
  189. package/esm2015/core/services/confirmation.service.js +0 -55
  190. package/esm2015/core/services/dialog.service.js +0 -41
  191. package/esm2015/core/services/message.service.js +0 -33
  192. package/esm2015/core/services/nav.service.js +0 -48
  193. package/esm2015/core/services/svg-register.service.js +0 -55
  194. package/esm2015/core/types/local-time.type.js +0 -1
  195. package/esm2015/core/types/ng-class.type.js +0 -1
  196. package/esm2015/core/utils/array.util.js +0 -110
  197. package/esm2015/core/utils/browser.util.js +0 -13
  198. package/esm2015/core/utils/currency.util.js +0 -21
  199. package/esm2015/core/utils/date.util.js +0 -257
  200. package/esm2015/core/utils/document.util.js +0 -153
  201. package/esm2015/core/utils/email.util.js +0 -25
  202. package/esm2015/core/utils/number.util.js +0 -28
  203. package/esm2015/core/utils/object.util.js +0 -199
  204. package/esm2015/core/utils/password.util.js +0 -38
  205. package/esm2015/core/utils/phone.util.js +0 -125
  206. package/esm2015/core/utils/string.util.js +0 -40
  207. package/esm2015/core/utils/table-column-builder.js +0 -85
  208. package/esm2015/core/utils/time.util.js +0 -59
  209. package/esm2015/core/utils/url-params.util.js +0 -12
  210. package/esm2015/core/utils/uuid.util.js +0 -17
  211. package/esm2015/core/utils/zindex.util.js +0 -35
  212. package/esm2015/core.js +0 -89
  213. package/esm2015/gipi-components.js +0 -105
  214. package/esm2015/gipisistemas-ng-core.js +0 -21
  215. package/esm2015/public_api.js +0 -4
  216. package/esm2015/shared/api/generate-id-component.js +0 -12
  217. package/esm2015/shared/api/gipi-ng-config.js +0 -76
  218. package/esm2015/shared/api/overlay-message.js +0 -1
  219. package/esm2015/shared/api/throttle.js +0 -60
  220. package/esm2015/shared/api/translation.js +0 -1
  221. package/esm2015/shared/components/button/button.component.js +0 -110
  222. package/esm2015/shared/components/card/card.component.js +0 -44
  223. package/esm2015/shared/components/checkbox/checkbox.component.js +0 -79
  224. package/esm2015/shared/components/dom/connected-overlay-scroll-handler.js +0 -27
  225. package/esm2015/shared/components/dom/dom-handler.js +0 -538
  226. package/esm2015/shared/components/icon/icon.component.js +0 -35
  227. package/esm2015/shared/components/input/input.component.js +0 -235
  228. package/esm2015/shared/components/input-currency/input-currency.component.js +0 -115
  229. package/esm2015/shared/components/input-file/input-file.component.js +0 -161
  230. package/esm2015/shared/components/loading/loading.component.js +0 -15
  231. package/esm2015/shared/components/loading-overlay/loading-overlay.component.js +0 -21
  232. package/esm2015/shared/components/overlay-panel/overlay-panel.component.js +0 -361
  233. package/esm2015/shared/components/popover/popover-ref.js +0 -25
  234. package/esm2015/shared/components/popover/popover.component.js +0 -34
  235. package/esm2015/shared/components/popover/popover.service.js +0 -85
  236. package/esm2015/shared/components/radio-group-entity/radio-group-entity.component.js +0 -74
  237. package/esm2015/shared/components/radio-group-enum/radio-group-enum.component.js +0 -126
  238. package/esm2015/shared/components/select-button/select-button.component.js +0 -181
  239. package/esm2015/shared/components/select-entity/select-entity.component.js +0 -262
  240. package/esm2015/shared/components/select-entity-paged/select-entity-paged.component.js +0 -419
  241. package/esm2015/shared/components/select-entity-paged/shared/default-options.js +0 -35
  242. package/esm2015/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +0 -69
  243. package/esm2015/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +0 -59
  244. package/esm2015/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +0 -20
  245. package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +0 -547
  246. package/esm2015/shared/components/select-entity-paged/shared/select-search-clear.directive.js +0 -18
  247. package/esm2015/shared/components/select-enum/select-enum.component.js +0 -117
  248. package/esm2015/shared/components/select-month-period/select-month-period.component.js +0 -87
  249. package/esm2015/shared/components/slide-toggle/slide-toggle.component.js +0 -75
  250. package/esm2015/shared/components/stepper/stepper.component.js +0 -32
  251. package/esm2015/shared/components/tab/tab.component.js +0 -57
  252. package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
  253. package/esm2015/shared/components/table/table.component.js +0 -523
  254. package/esm2015/shared/components/table-scrolled/table-scrolled.component.js +0 -105
  255. package/esm2015/shared/components/textarea/textarea.component.js +0 -156
  256. package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
  257. package/esm2015/shared/directives/generic-template.directive.js +0 -30
  258. package/esm2015/shared/directives/input-select-infinite-scroll.directive.js +0 -109
  259. package/esm2015/shared/directives/lower-case.directive.js +0 -47
  260. package/esm2015/shared/directives/phone-mask.directive.js +0 -60
  261. package/esm2015/shared/directives/space-drop.directive.js +0 -47
  262. package/esm2015/shared/directives/upper-case.directive.js +0 -47
  263. package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +0 -119
  264. package/esm2015/shared/gipi-components/action-row/action-row.component.js +0 -30
  265. package/esm2015/shared/gipi-components/badge/badge.component.js +0 -44
  266. package/esm2015/shared/gipi-components/button/button.component.js +0 -251
  267. package/esm2015/shared/gipi-components/chips/chips.component.js +0 -149
  268. package/esm2015/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +0 -44
  269. package/esm2015/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +0 -324
  270. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +0 -41
  271. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +0 -35
  272. package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +0 -259
  273. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +0 -218
  274. package/esm2015/shared/gipi-components/datepicker/datepicker.module.js +0 -130
  275. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +0 -341
  276. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar.js +0 -397
  277. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +0 -325
  278. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +0 -329
  279. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +0 -41
  280. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +0 -61
  281. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +0 -159
  282. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +0 -35
  283. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +0 -555
  284. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +0 -14
  285. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +0 -303
  286. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +0 -179
  287. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +0 -51
  288. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +0 -124
  289. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +0 -29
  290. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/month-view.js +0 -365
  291. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +0 -305
  292. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +0 -116
  293. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +0 -10
  294. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +0 -294
  295. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +0 -19
  296. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +0 -81
  297. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/year-view.js +0 -294
  298. package/esm2015/shared/gipi-components/dom/connected-overlay-scroll-handler.js +0 -27
  299. package/esm2015/shared/gipi-components/dom/dom-handler.js +0 -645
  300. package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +0 -185
  301. package/esm2015/shared/gipi-components/expansion-panel/expansion-panel.component.js +0 -81
  302. package/esm2015/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +0 -240
  303. package/esm2015/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +0 -92
  304. package/esm2015/shared/gipi-components/footer/footer.component.js +0 -29
  305. package/esm2015/shared/gipi-components/form-field/form-field.component.js +0 -262
  306. package/esm2015/shared/gipi-components/helpful-tip/helpful-tip.component.js +0 -62
  307. package/esm2015/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +0 -103
  308. package/esm2015/shared/gipi-components/input-checkbox/input-checkbox.component.js +0 -112
  309. package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +0 -197
  310. package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +0 -408
  311. package/esm2015/shared/gipi-components/input-select/input-select.component.js +0 -655
  312. package/esm2015/shared/gipi-components/input-select-enum/input-select-enum.component.js +0 -311
  313. package/esm2015/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +0 -422
  314. package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +0 -374
  315. package/esm2015/shared/gipi-components/input-select-paged/input-select-paged.component.js +0 -350
  316. package/esm2015/shared/gipi-components/input-select-radio/input-select-radio.component.js +0 -269
  317. package/esm2015/shared/gipi-components/layout-grid/col.directive.js +0 -161
  318. package/esm2015/shared/gipi-components/layout-grid/row.directive.js +0 -124
  319. package/esm2015/shared/gipi-components/layout-grid/services/breakpoint.service.js +0 -87
  320. package/esm2015/shared/gipi-components/layout-grid/services/resize.service.js +0 -64
  321. package/esm2015/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +0 -193
  322. package/esm2015/shared/gipi-components/month-year-picker/mont-year-picker.module.js +0 -47
  323. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +0 -460
  324. package/esm2015/shared/gipi-components/notification/notification.component.js +0 -104
  325. package/esm2015/shared/gipi-components/novelties/novelties.component.js +0 -109
  326. package/esm2015/shared/gipi-components/overlay/overlay.component.js +0 -565
  327. package/esm2015/shared/gipi-components/overlay/shared/overlay-service.js +0 -21
  328. package/esm2015/shared/gipi-components/overlay/shared/overlay_options.js +0 -1
  329. package/esm2015/shared/gipi-components/password-requeriments/password-requeriments.component.js +0 -127
  330. package/esm2015/shared/gipi-components/popover/popover.component.js +0 -397
  331. package/esm2015/shared/gipi-components/popover/shared/popover-animations.js +0 -29
  332. package/esm2015/shared/gipi-components/popover/shared/popover-errors.js +0 -27
  333. package/esm2015/shared/gipi-components/popover/shared/popover-interfaces.js +0 -1
  334. package/esm2015/shared/gipi-components/popover/shared/popover-target.js +0 -19
  335. package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +0 -514
  336. package/esm2015/shared/gipi-components/popover/shared/popover-types.js +0 -1
  337. package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +0 -143
  338. package/esm2015/shared/gipi-components/range-page/range-page.component.js +0 -254
  339. package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +0 -345
  340. package/esm2015/shared/gipi-components/select/select.component.js +0 -211
  341. package/esm2015/shared/gipi-components/select-button/select-button.component.js +0 -187
  342. package/esm2015/shared/gipi-components/sidebar/container/container.component.js +0 -83
  343. package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +0 -240
  344. package/esm2015/shared/gipi-components/stepper/stepper.component.js +0 -37
  345. package/esm2015/shared/gipi-components/table/components/table-body/table-body.component.js +0 -203
  346. package/esm2015/shared/gipi-components/table/components/table-footer/table-footer.component.js +0 -30
  347. package/esm2015/shared/gipi-components/table/components/table-header/table-header.component.js +0 -152
  348. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +0 -122
  349. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +0 -225
  350. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +0 -1
  351. package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +0 -105
  352. package/esm2015/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +0 -102
  353. package/esm2015/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +0 -30
  354. package/esm2015/shared/gipi-components/table/models/pipe-transform.model.js +0 -1
  355. package/esm2015/shared/gipi-components/table/models/sort.model.js +0 -19
  356. package/esm2015/shared/gipi-components/table/models/sorted-column.model.js +0 -2
  357. package/esm2015/shared/gipi-components/table/models/table-column-builder.model.js +0 -104
  358. package/esm2015/shared/gipi-components/table/models/table-column.model.js +0 -162
  359. package/esm2015/shared/gipi-components/table/table.component.js +0 -159
  360. package/esm2015/shared/gipi-components/table/types/sort-direction.type.js +0 -1
  361. package/esm2015/shared/gipi-components/table/types/sort.type.js +0 -1
  362. package/esm2015/shared/gipi-components/template/template.directive.js +0 -33
  363. package/esm2015/shared/gipi-components/toolbar/toolbar.component.js +0 -53
  364. package/esm2015/shared/gipi-components/top-nav/top-nav.component.js +0 -38
  365. package/esm2015/shared/gipi-components/user-profile/user-profile.component.js +0 -109
  366. package/esm2015/shared/material.module.js +0 -102
  367. package/esm2015/shared/shared.module.js +0 -339
  368. package/esm2015/shared.js +0 -36
  369. package/esm5/core/app-messages.js +0 -1
  370. package/esm5/core/app.messages.js +0 -12
  371. package/esm5/core/components/abstract-crud.component.js +0 -108
  372. package/esm5/core/components/abstract-find.component.js +0 -201
  373. package/esm5/core/components/abstract.component.js +0 -112
  374. package/esm5/core/components/alert/alert.component.js +0 -25
  375. package/esm5/core/core.module.js +0 -107
  376. package/esm5/core/custom-breakpoints.js +0 -87
  377. package/esm5/core/enums/local-time.enum.js +0 -6
  378. package/esm5/core/extensions/string.extension.js +0 -37
  379. package/esm5/core/gipi-components/components/abstract-crud.component.js +0 -122
  380. package/esm5/core/gipi-components/components/abstract-find.component.js +0 -507
  381. package/esm5/core/gipi-components/components/abstract.component.js +0 -152
  382. package/esm5/core/gipi-components/decorators/autowired.decorator.js +0 -52
  383. package/esm5/core/gipi-components/enums/sort-direction.enum.js +0 -6
  384. package/esm5/core/gipi-components/interface/abstract-crud.interface.js +0 -1
  385. package/esm5/core/gipi-components/interface/abstract-find.interface.js +0 -1
  386. package/esm5/core/gipi-components/interface/abstract.interface.js +0 -1
  387. package/esm5/core/gipi-components/interface/base-permission.interface.js +0 -1
  388. package/esm5/core/gipi-components/models/abstract-filter.model.js +0 -7
  389. package/esm5/core/gipi-components/models/abstract.model.js +0 -7
  390. package/esm5/core/gipi-components/models/applied-filter.model.js +0 -29
  391. package/esm5/core/gipi-components/models/dto/abstract.dto.js +0 -7
  392. package/esm5/core/gipi-components/models/page-event.model.js +0 -49
  393. package/esm5/core/gipi-components/models/page.model.js +0 -9
  394. package/esm5/core/gipi-components/models/sort.model.js +0 -9
  395. package/esm5/core/gipi-components/services/abstract-crud.service.js +0 -114
  396. package/esm5/core/gipi-components/services/abstract.service.js +0 -49
  397. package/esm5/core/gipi-components/services/base.service.js +0 -143
  398. package/esm5/core/gipi-components/services/file.service.js +0 -53
  399. package/esm5/core/gipi-components/services/session-storage.service.js +0 -45
  400. package/esm5/core/gipi-components/types/generic.type.js +0 -1
  401. package/esm5/core/gipi-components/types/uuid.type.js +0 -1
  402. package/esm5/core/guards/auth.guard.js +0 -50
  403. package/esm5/core/guards/permission.guard.js +0 -74
  404. package/esm5/core/guards/public.guard.js +0 -47
  405. package/esm5/core/interceptors/auth.interceptor.js +0 -29
  406. package/esm5/core/interceptors/error.interceptor.js +0 -129
  407. package/esm5/core/models/abstract.model.js +0 -7
  408. package/esm5/core/models/archive.model.js +0 -7
  409. package/esm5/core/models/authority.model.js +0 -7
  410. package/esm5/core/models/base-user.model.js +0 -13
  411. package/esm5/core/models/dto/abstract.dto.js +0 -7
  412. package/esm5/core/models/dto/api-error.dto.js +0 -13
  413. package/esm5/core/models/dto/api-sub-error.dto.js +0 -11
  414. package/esm5/core/models/dto/chart.dto.js +0 -11
  415. package/esm5/core/models/dto/confirmation.dto.js +0 -13
  416. package/esm5/core/models/dto/dialog.dto.js +0 -11
  417. package/esm5/core/models/dto/filter.dto.js +0 -11
  418. package/esm5/core/models/dto/input-listbox.dto.js +0 -11
  419. package/esm5/core/models/dto/menu.dto.js +0 -14
  420. package/esm5/core/models/dto/message.dto.js +0 -11
  421. package/esm5/core/models/dto/page.dto.js +0 -14
  422. package/esm5/core/models/dto/sort.dto.js +0 -14
  423. package/esm5/core/models/dto/tab.dto.js +0 -15
  424. package/esm5/core/models/dto/table-column.dto.js +0 -29
  425. package/esm5/core/models/dto/table-group-header.dto.js +0 -15
  426. package/esm5/core/models/dto/table-page-event.dto.js +0 -11
  427. package/esm5/core/models/dto/token.dto.js +0 -11
  428. package/esm5/core/models/enums/criteria-operation.enum.js +0 -15
  429. package/esm5/core/models/enums/criteria-sort-direction.enum.js +0 -6
  430. package/esm5/core/models/enums/menu-type.enum.js +0 -7
  431. package/esm5/core/models/enums/radio-button.enum.js +0 -8
  432. package/esm5/core/models/enums/sort-direction.enum.js +0 -6
  433. package/esm5/core/models/multitenant.model.js +0 -11
  434. package/esm5/core/models/permission.model.js +0 -16
  435. package/esm5/core/models/role.model.js +0 -13
  436. package/esm5/core/pipes/local-time.pipe.js +0 -26
  437. package/esm5/core/services/abstract-crud.service.js +0 -30
  438. package/esm5/core/services/abstract-find.service.js +0 -71
  439. package/esm5/core/services/abstract.service.js +0 -32
  440. package/esm5/core/services/authentication.service.js +0 -121
  441. package/esm5/core/services/breakpoint-observer.service.js +0 -52
  442. package/esm5/core/services/confirmation.service.js +0 -66
  443. package/esm5/core/services/dialog.service.js +0 -44
  444. package/esm5/core/services/message.service.js +0 -36
  445. package/esm5/core/services/nav.service.js +0 -51
  446. package/esm5/core/services/svg-register.service.js +0 -67
  447. package/esm5/core/types/local-time.type.js +0 -1
  448. package/esm5/core/types/ng-class.type.js +0 -1
  449. package/esm5/core/utils/array.util.js +0 -120
  450. package/esm5/core/utils/browser.util.js +0 -17
  451. package/esm5/core/utils/currency.util.js +0 -26
  452. package/esm5/core/utils/date.util.js +0 -269
  453. package/esm5/core/utils/document.util.js +0 -157
  454. package/esm5/core/utils/email.util.js +0 -29
  455. package/esm5/core/utils/number.util.js +0 -32
  456. package/esm5/core/utils/object.util.js +0 -204
  457. package/esm5/core/utils/password.util.js +0 -42
  458. package/esm5/core/utils/phone.util.js +0 -135
  459. package/esm5/core/utils/string.util.js +0 -44
  460. package/esm5/core/utils/table-column-builder.js +0 -87
  461. package/esm5/core/utils/time.util.js +0 -65
  462. package/esm5/core/utils/url-params.util.js +0 -16
  463. package/esm5/core/utils/uuid.util.js +0 -21
  464. package/esm5/core/utils/zindex.util.js +0 -35
  465. package/esm5/core.js +0 -89
  466. package/esm5/gipi-components.js +0 -105
  467. package/esm5/gipisistemas-ng-core.js +0 -21
  468. package/esm5/public_api.js +0 -4
  469. package/esm5/shared/api/generate-id-component.js +0 -16
  470. package/esm5/shared/api/gipi-ng-config.js +0 -77
  471. package/esm5/shared/api/overlay-message.js +0 -1
  472. package/esm5/shared/api/throttle.js +0 -60
  473. package/esm5/shared/api/translation.js +0 -1
  474. package/esm5/shared/components/button/button.component.js +0 -111
  475. package/esm5/shared/components/card/card.component.js +0 -45
  476. package/esm5/shared/components/checkbox/checkbox.component.js +0 -85
  477. package/esm5/shared/components/dom/connected-overlay-scroll-handler.js +0 -30
  478. package/esm5/shared/components/dom/dom-handler.js +0 -573
  479. package/esm5/shared/components/icon/icon.component.js +0 -38
  480. package/esm5/shared/components/input/input.component.js +0 -242
  481. package/esm5/shared/components/input-currency/input-currency.component.js +0 -121
  482. package/esm5/shared/components/input-file/input-file.component.js +0 -165
  483. package/esm5/shared/components/loading/loading.component.js +0 -18
  484. package/esm5/shared/components/loading-overlay/loading-overlay.component.js +0 -23
  485. package/esm5/shared/components/overlay-panel/overlay-panel.component.js +0 -366
  486. package/esm5/shared/components/popover/popover-ref.js +0 -28
  487. package/esm5/shared/components/popover/popover.component.js +0 -35
  488. package/esm5/shared/components/popover/popover.service.js +0 -88
  489. package/esm5/shared/components/radio-group-entity/radio-group-entity.component.js +0 -80
  490. package/esm5/shared/components/radio-group-enum/radio-group-enum.component.js +0 -138
  491. package/esm5/shared/components/select-button/select-button.component.js +0 -195
  492. package/esm5/shared/components/select-entity/select-entity.component.js +0 -269
  493. package/esm5/shared/components/select-entity-paged/select-entity-paged.component.js +0 -453
  494. package/esm5/shared/components/select-entity-paged/shared/default-options.js +0 -35
  495. package/esm5/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +0 -72
  496. package/esm5/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +0 -62
  497. package/esm5/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +0 -23
  498. package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +0 -590
  499. package/esm5/shared/components/select-entity-paged/shared/select-search-clear.directive.js +0 -21
  500. package/esm5/shared/components/select-enum/select-enum.component.js +0 -124
  501. package/esm5/shared/components/select-month-period/select-month-period.component.js +0 -91
  502. package/esm5/shared/components/slide-toggle/slide-toggle.component.js +0 -81
  503. package/esm5/shared/components/stepper/stepper.component.js +0 -36
  504. package/esm5/shared/components/tab/tab.component.js +0 -58
  505. package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
  506. package/esm5/shared/components/table/table.component.js +0 -538
  507. package/esm5/shared/components/table-scrolled/table-scrolled.component.js +0 -107
  508. package/esm5/shared/components/textarea/textarea.component.js +0 -174
  509. package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
  510. package/esm5/shared/directives/generic-template.directive.js +0 -31
  511. package/esm5/shared/directives/input-select-infinite-scroll.directive.js +0 -113
  512. package/esm5/shared/directives/lower-case.directive.js +0 -48
  513. package/esm5/shared/directives/phone-mask.directive.js +0 -61
  514. package/esm5/shared/directives/space-drop.directive.js +0 -48
  515. package/esm5/shared/directives/upper-case.directive.js +0 -48
  516. package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +0 -141
  517. package/esm5/shared/gipi-components/action-row/action-row.component.js +0 -33
  518. package/esm5/shared/gipi-components/badge/badge.component.js +0 -46
  519. package/esm5/shared/gipi-components/button/button.component.js +0 -257
  520. package/esm5/shared/gipi-components/chips/chips.component.js +0 -159
  521. package/esm5/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +0 -46
  522. package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +0 -378
  523. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +0 -42
  524. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +0 -40
  525. package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +0 -291
  526. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +0 -252
  527. package/esm5/shared/gipi-components/datepicker/datepicker.module.js +0 -133
  528. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +0 -349
  529. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar.js +0 -441
  530. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +0 -339
  531. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +0 -376
  532. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +0 -46
  533. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +0 -62
  534. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +0 -167
  535. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +0 -35
  536. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +0 -586
  537. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +0 -14
  538. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +0 -327
  539. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +0 -199
  540. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +0 -52
  541. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +0 -133
  542. package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +0 -34
  543. package/esm5/shared/gipi-components/datepicker/mat-datepicker/month-view.js +0 -384
  544. package/esm5/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +0 -324
  545. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +0 -118
  546. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +0 -10
  547. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +0 -300
  548. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +0 -19
  549. package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +0 -82
  550. package/esm5/shared/gipi-components/datepicker/mat-datepicker/year-view.js +0 -313
  551. package/esm5/shared/gipi-components/dom/connected-overlay-scroll-handler.js +0 -30
  552. package/esm5/shared/gipi-components/dom/dom-handler.js +0 -681
  553. package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +0 -191
  554. package/esm5/shared/gipi-components/expansion-panel/expansion-panel.component.js +0 -83
  555. package/esm5/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +0 -255
  556. package/esm5/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +0 -93
  557. package/esm5/shared/gipi-components/footer/footer.component.js +0 -32
  558. package/esm5/shared/gipi-components/form-field/form-field.component.js +0 -276
  559. package/esm5/shared/gipi-components/helpful-tip/helpful-tip.component.js +0 -68
  560. package/esm5/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +0 -106
  561. package/esm5/shared/gipi-components/input-checkbox/input-checkbox.component.js +0 -118
  562. package/esm5/shared/gipi-components/input-currency/input-currency.component.js +0 -207
  563. package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +0 -426
  564. package/esm5/shared/gipi-components/input-select/input-select.component.js +0 -698
  565. package/esm5/shared/gipi-components/input-select-enum/input-select-enum.component.js +0 -351
  566. package/esm5/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +0 -437
  567. package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +0 -397
  568. package/esm5/shared/gipi-components/input-select-paged/input-select-paged.component.js +0 -384
  569. package/esm5/shared/gipi-components/input-select-radio/input-select-radio.component.js +0 -286
  570. package/esm5/shared/gipi-components/layout-grid/col.directive.js +0 -164
  571. package/esm5/shared/gipi-components/layout-grid/row.directive.js +0 -127
  572. package/esm5/shared/gipi-components/layout-grid/services/breakpoint.service.js +0 -90
  573. package/esm5/shared/gipi-components/layout-grid/services/resize.service.js +0 -68
  574. package/esm5/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +0 -200
  575. package/esm5/shared/gipi-components/month-year-picker/mont-year-picker.module.js +0 -50
  576. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +0 -505
  577. package/esm5/shared/gipi-components/notification/notification.component.js +0 -106
  578. package/esm5/shared/gipi-components/novelties/novelties.component.js +0 -111
  579. package/esm5/shared/gipi-components/overlay/overlay.component.js +0 -670
  580. package/esm5/shared/gipi-components/overlay/shared/overlay-service.js +0 -22
  581. package/esm5/shared/gipi-components/overlay/shared/overlay_options.js +0 -1
  582. package/esm5/shared/gipi-components/password-requeriments/password-requeriments.component.js +0 -157
  583. package/esm5/shared/gipi-components/popover/popover.component.js +0 -473
  584. package/esm5/shared/gipi-components/popover/shared/popover-animations.js +0 -29
  585. package/esm5/shared/gipi-components/popover/shared/popover-errors.js +0 -21
  586. package/esm5/shared/gipi-components/popover/shared/popover-interfaces.js +0 -1
  587. package/esm5/shared/gipi-components/popover/shared/popover-target.js +0 -20
  588. package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +0 -529
  589. package/esm5/shared/gipi-components/popover/shared/popover-types.js +0 -1
  590. package/esm5/shared/gipi-components/radio-group/radio-group.component.js +0 -155
  591. package/esm5/shared/gipi-components/range-page/range-page.component.js +0 -283
  592. package/esm5/shared/gipi-components/range-slider/range-slider.component.js +0 -364
  593. package/esm5/shared/gipi-components/select/select.component.js +0 -222
  594. package/esm5/shared/gipi-components/select-button/select-button.component.js +0 -206
  595. package/esm5/shared/gipi-components/sidebar/container/container.component.js +0 -96
  596. package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +0 -267
  597. package/esm5/shared/gipi-components/stepper/stepper.component.js +0 -43
  598. package/esm5/shared/gipi-components/table/components/table-body/table-body.component.js +0 -209
  599. package/esm5/shared/gipi-components/table/components/table-footer/table-footer.component.js +0 -33
  600. package/esm5/shared/gipi-components/table/components/table-header/table-header.component.js +0 -155
  601. package/esm5/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +0 -123
  602. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +0 -228
  603. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +0 -1
  604. package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +0 -108
  605. package/esm5/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +0 -116
  606. package/esm5/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +0 -33
  607. package/esm5/shared/gipi-components/table/models/pipe-transform.model.js +0 -1
  608. package/esm5/shared/gipi-components/table/models/sort.model.js +0 -29
  609. package/esm5/shared/gipi-components/table/models/sorted-column.model.js +0 -2
  610. package/esm5/shared/gipi-components/table/models/table-column-builder.model.js +0 -106
  611. package/esm5/shared/gipi-components/table/models/table-column.model.js +0 -252
  612. package/esm5/shared/gipi-components/table/table.component.js +0 -161
  613. package/esm5/shared/gipi-components/table/types/sort-direction.type.js +0 -1
  614. package/esm5/shared/gipi-components/table/types/sort.type.js +0 -1
  615. package/esm5/shared/gipi-components/template/template.directive.js +0 -34
  616. package/esm5/shared/gipi-components/toolbar/toolbar.component.js +0 -56
  617. package/esm5/shared/gipi-components/top-nav/top-nav.component.js +0 -40
  618. package/esm5/shared/gipi-components/user-profile/user-profile.component.js +0 -115
  619. package/esm5/shared/material.module.js +0 -101
  620. package/esm5/shared/shared.module.js +0 -340
  621. package/esm5/shared.js +0 -36
  622. package/fesm2015/gipisistemas-ng-core.js +0 -25879
  623. package/fesm2015/gipisistemas-ng-core.js.map +0 -1
  624. package/fesm5/gipisistemas-ng-core.js +0 -27905
  625. package/fesm5/gipisistemas-ng-core.js.map +0 -1
  626. package/gipi-components.d.ts +0 -97
  627. package/gipisistemas-ng-core.d.ts +0 -20
  628. package/gipisistemas-ng-core.metadata.json +0 -1
  629. package/public_api.d.ts +0 -3
  630. package/shared/api/generate-id-component.d.ts +0 -3
  631. package/shared/api/gipi-ng-config.d.ts +0 -18
  632. package/shared/api/overlay-message.d.ts +0 -14
  633. package/shared/api/throttle.d.ts +0 -17
  634. package/shared/api/translation.d.ts +0 -45
  635. package/shared/components/button/button.component.d.ts +0 -26
  636. package/shared/components/card/card.component.d.ts +0 -10
  637. package/shared/components/checkbox/checkbox.component.d.ts +0 -20
  638. package/shared/components/dom/connected-overlay-scroll-handler.d.ts +0 -9
  639. package/shared/components/dom/dom-handler.d.ts +0 -74
  640. package/shared/components/icon/icon.component.d.ts +0 -9
  641. package/shared/components/input/input.component.d.ts +0 -52
  642. package/shared/components/input-currency/input-currency.component.d.ts +0 -29
  643. package/shared/components/input-file/input-file.component.d.ts +0 -28
  644. package/shared/components/loading/loading.component.d.ts +0 -4
  645. package/shared/components/loading-overlay/loading-overlay.component.d.ts +0 -6
  646. package/shared/components/overlay-panel/overlay-panel.component.d.ts +0 -67
  647. package/shared/components/popover/popover-ref.d.ts +0 -17
  648. package/shared/components/popover/popover.component.d.ts +0 -10
  649. package/shared/components/popover/popover.service.d.ts +0 -23
  650. package/shared/components/radio-group-entity/radio-group-entity.component.d.ts +0 -19
  651. package/shared/components/radio-group-enum/radio-group-enum.component.d.ts +0 -30
  652. package/shared/components/select-button/select-button.component.d.ts +0 -35
  653. package/shared/components/select-entity/select-entity.component.d.ts +0 -52
  654. package/shared/components/select-entity-paged/select-entity-paged.component.d.ts +0 -78
  655. package/shared/components/select-entity-paged/shared/default-options.d.ts +0 -25
  656. package/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.d.ts +0 -18
  657. package/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.d.ts +0 -16
  658. package/shared/components/select-entity-paged/shared/select-no-entries-found.directive.d.ts +0 -11
  659. package/shared/components/select-entity-paged/shared/select-search/select-search.component.d.ts +0 -119
  660. package/shared/components/select-entity-paged/shared/select-search-clear.directive.d.ts +0 -9
  661. package/shared/components/select-enum/select-enum.component.d.ts +0 -29
  662. package/shared/components/select-month-period/select-month-period.component.d.ts +0 -20
  663. package/shared/components/slide-toggle/slide-toggle.component.d.ts +0 -19
  664. package/shared/components/stepper/stepper.component.d.ts +0 -7
  665. package/shared/components/tab/tab.component.d.ts +0 -14
  666. package/shared/components/tab-group/tab-group.component.d.ts +0 -22
  667. package/shared/components/table/table.component.d.ts +0 -86
  668. package/shared/components/table-scrolled/table-scrolled.component.d.ts +0 -31
  669. package/shared/components/textarea/textarea.component.d.ts +0 -35
  670. package/shared/directives/dynamic-tab.directive.d.ts +0 -5
  671. package/shared/directives/generic-template.directive.d.ts +0 -8
  672. package/shared/directives/input-select-infinite-scroll.directive.d.ts +0 -35
  673. package/shared/directives/lower-case.directive.d.ts +0 -9
  674. package/shared/directives/phone-mask.directive.d.ts +0 -8
  675. package/shared/directives/space-drop.directive.d.ts +0 -9
  676. package/shared/directives/upper-case.directive.d.ts +0 -9
  677. package/shared/gipi-components/abstract-form/abstract-form.component.d.ts +0 -21
  678. package/shared/gipi-components/action-row/action-row.component.d.ts +0 -5
  679. package/shared/gipi-components/badge/badge.component.d.ts +0 -8
  680. package/shared/gipi-components/button/button.component.d.ts +0 -56
  681. package/shared/gipi-components/chips/chips.component.d.ts +0 -37
  682. package/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -11
  683. package/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.d.ts +0 -71
  684. package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.d.ts +0 -11
  685. package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.d.ts +0 -6
  686. package/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.d.ts +0 -40
  687. package/shared/gipi-components/datepicker/datepicker/datepicker.component.d.ts +0 -49
  688. package/shared/gipi-components/datepicker/datepicker.module.d.ts +0 -2
  689. package/shared/gipi-components/datepicker/mat-datepicker/calendar-body.d.ts +0 -143
  690. package/shared/gipi-components/datepicker/mat-datepicker/calendar.d.ts +0 -152
  691. package/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.d.ts +0 -102
  692. package/shared/gipi-components/datepicker/mat-datepicker/date-range-input.d.ts +0 -124
  693. package/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.d.ts +0 -21
  694. package/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.d.ts +0 -45
  695. package/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.d.ts +0 -106
  696. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.d.ts +0 -16
  697. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.d.ts +0 -209
  698. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.d.ts +0 -9
  699. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.d.ts +0 -136
  700. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.d.ts +0 -68
  701. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.d.ts +0 -38
  702. package/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.d.ts +0 -39
  703. package/shared/gipi-components/datepicker/mat-datepicker/datepicker.d.ts +0 -11
  704. package/shared/gipi-components/datepicker/mat-datepicker/month-view.d.ts +0 -120
  705. package/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.d.ts +0 -85
  706. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.d.ts +0 -225
  707. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.d.ts +0 -20
  708. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.d.ts +0 -76
  709. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.d.ts +0 -9
  710. package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.d.ts +0 -33
  711. package/shared/gipi-components/datepicker/mat-datepicker/year-view.d.ts +0 -97
  712. package/shared/gipi-components/dom/connected-overlay-scroll-handler.d.ts +0 -9
  713. package/shared/gipi-components/dom/dom-handler.d.ts +0 -85
  714. package/shared/gipi-components/dropdown-menu/dropdown-menu.component.d.ts +0 -36
  715. package/shared/gipi-components/expansion-panel/expansion-panel.component.d.ts +0 -16
  716. package/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.d.ts +0 -43
  717. package/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.d.ts +0 -13
  718. package/shared/gipi-components/footer/footer.component.d.ts +0 -5
  719. package/shared/gipi-components/form-field/form-field.component.d.ts +0 -61
  720. package/shared/gipi-components/helpful-tip/helpful-tip.component.d.ts +0 -13
  721. package/shared/gipi-components/infinite-scroll/infinite-scroll.directive.d.ts +0 -27
  722. package/shared/gipi-components/input-checkbox/input-checkbox.component.d.ts +0 -28
  723. package/shared/gipi-components/input-currency/input-currency.component.d.ts +0 -48
  724. package/shared/gipi-components/input-monthpicker/input-monthpicker.component.d.ts +0 -89
  725. package/shared/gipi-components/input-select/input-select.component.d.ts +0 -120
  726. package/shared/gipi-components/input-select-enum/input-select-enum.component.d.ts +0 -65
  727. package/shared/gipi-components/input-select-listbox/input-select-listbox.component.d.ts +0 -85
  728. package/shared/gipi-components/input-select-paged/input-search/input-search.component.d.ts +0 -77
  729. package/shared/gipi-components/input-select-paged/input-select-paged.component.d.ts +0 -66
  730. package/shared/gipi-components/input-select-radio/input-select-radio.component.d.ts +0 -53
  731. package/shared/gipi-components/layout-grid/col.directive.d.ts +0 -38
  732. package/shared/gipi-components/layout-grid/row.directive.d.ts +0 -28
  733. package/shared/gipi-components/layout-grid/services/breakpoint.service.d.ts +0 -30
  734. package/shared/gipi-components/layout-grid/services/resize.service.d.ts +0 -17
  735. package/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.d.ts +0 -37
  736. package/shared/gipi-components/month-year-picker/mont-year-picker.module.d.ts +0 -2
  737. package/shared/gipi-components/month-year-picker/month-year-picker.component.d.ts +0 -104
  738. package/shared/gipi-components/notification/notification.component.d.ts +0 -21
  739. package/shared/gipi-components/novelties/novelties.component.d.ts +0 -22
  740. package/shared/gipi-components/overlay/overlay.component.d.ts +0 -113
  741. package/shared/gipi-components/overlay/shared/overlay-service.d.ts +0 -6
  742. package/shared/gipi-components/overlay/shared/overlay_options.d.ts +0 -50
  743. package/shared/gipi-components/password-requeriments/password-requeriments.component.d.ts +0 -27
  744. package/shared/gipi-components/popover/popover.component.d.ts +0 -133
  745. package/shared/gipi-components/popover/shared/popover-animations.d.ts +0 -13
  746. package/shared/gipi-components/popover/shared/popover-errors.d.ts +0 -14
  747. package/shared/gipi-components/popover/shared/popover-interfaces.d.ts +0 -43
  748. package/shared/gipi-components/popover/shared/popover-target.d.ts +0 -5
  749. package/shared/gipi-components/popover/shared/popover-trigger.d.ts +0 -140
  750. package/shared/gipi-components/popover/shared/popover-types.d.ts +0 -4
  751. package/shared/gipi-components/radio-group/radio-group.component.d.ts +0 -33
  752. package/shared/gipi-components/range-page/range-page.component.d.ts +0 -55
  753. package/shared/gipi-components/range-slider/range-slider.component.d.ts +0 -57
  754. package/shared/gipi-components/select/select.component.d.ts +0 -45
  755. package/shared/gipi-components/select-button/select-button.component.d.ts +0 -39
  756. package/shared/gipi-components/sidebar/container/container.component.d.ts +0 -15
  757. package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +0 -40
  758. package/shared/gipi-components/stepper/stepper.component.d.ts +0 -8
  759. package/shared/gipi-components/table/components/table-body/table-body.component.d.ts +0 -36
  760. package/shared/gipi-components/table/components/table-footer/table-footer.component.d.ts +0 -5
  761. package/shared/gipi-components/table/components/table-header/table-header.component.d.ts +0 -28
  762. package/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.d.ts +0 -40
  763. package/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.d.ts +0 -81
  764. package/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.d.ts +0 -24
  765. package/shared/gipi-components/table/components/table-pagination/shared/pagination.service.d.ts +0 -45
  766. package/shared/gipi-components/table/components/table-pagination/table-pagination.component.d.ts +0 -21
  767. package/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.d.ts +0 -5
  768. package/shared/gipi-components/table/models/pipe-transform.model.d.ts +0 -3
  769. package/shared/gipi-components/table/models/sort.model.d.ts +0 -10
  770. package/shared/gipi-components/table/models/sorted-column.model.d.ts +0 -6
  771. package/shared/gipi-components/table/models/table-column-builder.model.d.ts +0 -52
  772. package/shared/gipi-components/table/models/table-column.model.d.ts +0 -74
  773. package/shared/gipi-components/table/table.component.d.ts +0 -37
  774. package/shared/gipi-components/table/types/sort-direction.type.d.ts +0 -1
  775. package/shared/gipi-components/table/types/sort.type.d.ts +0 -1
  776. package/shared/gipi-components/template/template.directive.d.ts +0 -8
  777. package/shared/gipi-components/toolbar/toolbar.component.d.ts +0 -11
  778. package/shared/gipi-components/top-nav/top-nav.component.d.ts +0 -8
  779. package/shared/gipi-components/user-profile/user-profile.component.d.ts +0 -24
  780. package/shared/material.module.d.ts +0 -2
  781. package/shared/shared.module.d.ts +0 -6
  782. package/shared.d.ts +0 -35
@@ -1,441 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { __decorate, __metadata, __param } from "tslib";
9
- import { AfterContentInit, AfterViewChecked, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnChanges, OnDestroy, Optional, Output, SimpleChanges, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
10
- import { Subject } from 'rxjs';
11
- import { DateRange, MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER } from './date-selection-model';
12
- import { createMissingDateImplError } from './datepicker-errors';
13
- import { MatDatepickerIntl } from './datepicker-intl';
14
- import { MatMonthView } from './month-view';
15
- import { getActiveOffset, isSameMultiYearView, MatMultiYearView, yearsPerPage } from './multi-year-view';
16
- import { DateAdapter } from './shared/adapter/date-adapter';
17
- import { MAT_DATE_FORMATS } from './shared/adapter/date-formats';
18
- import { MatYearView } from './year-view';
19
- /**
20
- * A calendar that is used as part of the datepicker.
21
- * @docs-private
22
- */
23
- var MatCalendar = /** @class */ (function () {
24
- function MatCalendar(_intl, _dateAdapter, _dateFormats, _changeDetectorRef) {
25
- var _this = this;
26
- this._dateAdapter = _dateAdapter;
27
- this._dateFormats = _dateFormats;
28
- this._changeDetectorRef = _changeDetectorRef;
29
- this.matCalendarRef = this;
30
- /**
31
- * Used for scheduling that focus should be moved to the active cell on the next tick.
32
- * We need to schedule it, rather than do it immediately, because we have to wait
33
- * for Angular to re-evaluate the view children.
34
- */
35
- this._moveFocusOnNextTick = false;
36
- /** Whether the calendar should be started in month or year view. */
37
- this.startView = 'month';
38
- /**
39
- * Emits when the currently selected date changes.
40
- * @breaking-change 11.0.0 Emitted value to change to `D | null`.
41
- */
42
- this.selectedChange = new EventEmitter();
43
- /**
44
- * Emits the year chosen in multiyear view.
45
- * This doesn't imply a change on the selected date.
46
- */
47
- this.yearSelected = new EventEmitter();
48
- /**
49
- * Emits the month chosen in year view.
50
- * This doesn't imply a change on the selected date.
51
- */
52
- this.monthSelected = new EventEmitter();
53
- /** Emits when any date is selected. */
54
- this._userSelection = new EventEmitter();
55
- /**
56
- * Emits whenever there is a state change that the header may need to respond to.
57
- */
58
- this.stateChanges = new Subject();
59
- if (!this._dateAdapter) {
60
- throw createMissingDateImplError('DateAdapter');
61
- }
62
- if (!this._dateFormats) {
63
- throw createMissingDateImplError('MAT_DATE_FORMATS');
64
- }
65
- this._intlChanges = _intl.changes.subscribe(function () {
66
- _changeDetectorRef.markForCheck();
67
- _this.stateChanges.next();
68
- });
69
- }
70
- Object.defineProperty(MatCalendar.prototype, "startAt", {
71
- /** A date representing the period (month or year) to start the calendar in. */
72
- get: function () { return this._startAt; },
73
- set: function (value) {
74
- this._startAt = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
75
- },
76
- enumerable: false,
77
- configurable: true
78
- });
79
- Object.defineProperty(MatCalendar.prototype, "selected", {
80
- /** The currently selected date. */
81
- get: function () { return this._selected; },
82
- set: function (value) {
83
- if (value instanceof DateRange) {
84
- this._selected = value;
85
- }
86
- else {
87
- this._selected = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
88
- }
89
- },
90
- enumerable: false,
91
- configurable: true
92
- });
93
- Object.defineProperty(MatCalendar.prototype, "minDate", {
94
- /** The minimum selectable date. */
95
- get: function () { return this._minDate; },
96
- set: function (value) {
97
- this._minDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
98
- },
99
- enumerable: false,
100
- configurable: true
101
- });
102
- Object.defineProperty(MatCalendar.prototype, "maxDate", {
103
- /** The maximum selectable date. */
104
- get: function () { return this._maxDate; },
105
- set: function (value) {
106
- this._maxDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
107
- },
108
- enumerable: false,
109
- configurable: true
110
- });
111
- Object.defineProperty(MatCalendar.prototype, "activeDate", {
112
- /**
113
- * The current active date. This determines which time period is shown and which date is
114
- * highlighted when using keyboard navigation.
115
- */
116
- get: function () { return this._clampedActiveDate; },
117
- set: function (value) {
118
- this._clampedActiveDate = this._dateAdapter.clampDate(value, this.minDate, this.maxDate);
119
- this.stateChanges.next();
120
- this._changeDetectorRef.markForCheck();
121
- },
122
- enumerable: false,
123
- configurable: true
124
- });
125
- Object.defineProperty(MatCalendar.prototype, "currentView", {
126
- /** Whether the calendar is in month view. */
127
- get: function () { return this._currentView; },
128
- set: function (value) {
129
- this._currentView = value;
130
- this._moveFocusOnNextTick = true;
131
- this._changeDetectorRef.markForCheck();
132
- },
133
- enumerable: false,
134
- configurable: true
135
- });
136
- MatCalendar.prototype.ngAfterContentInit = function () {
137
- this.activeDate = this.startAt || this._dateAdapter.today();
138
- // Assign to the private property since we don't want to move focus on init.
139
- this._currentView = this.startView;
140
- };
141
- MatCalendar.prototype.ngAfterViewChecked = function () {
142
- if (this._moveFocusOnNextTick) {
143
- this._moveFocusOnNextTick = false;
144
- this.focusActiveCell();
145
- }
146
- };
147
- MatCalendar.prototype.ngOnDestroy = function () {
148
- this._intlChanges.unsubscribe();
149
- this.stateChanges.complete();
150
- };
151
- MatCalendar.prototype.ngOnChanges = function (changes) {
152
- var change = changes['minDate'] || changes['maxDate'] || changes['dateFilter'];
153
- if (change && !change.firstChange) {
154
- var view = this._getCurrentViewComponent();
155
- if (view) {
156
- // We need to `detectChanges` manually here, because the `minDate`, `maxDate` etc. are
157
- // passed down to the view via data bindings which won't be up-to-date when we call `_init`.
158
- this._changeDetectorRef.detectChanges();
159
- view._init();
160
- }
161
- }
162
- this.stateChanges.next();
163
- };
164
- MatCalendar.prototype.focusActiveCell = function () {
165
- this._getCurrentViewComponent()._focusActiveCell(false);
166
- };
167
- /** Updates today's date after an update of the active date */
168
- MatCalendar.prototype.updateTodaysDate = function () {
169
- var currentView = this.currentView;
170
- var view;
171
- if (currentView === 'month') {
172
- view = this.monthView;
173
- }
174
- else if (currentView === 'year') {
175
- view = this.yearView;
176
- }
177
- else {
178
- view = this.multiYearView;
179
- }
180
- view._init();
181
- };
182
- /** Handles date selection in the month view. */
183
- MatCalendar.prototype._dateSelected = function (event) {
184
- var date = event.value;
185
- if (this.selected instanceof DateRange || (date && !this._dateAdapter.sameDate(date, this.selected))) {
186
- // @breaking-change 11.0.0 remove non-null assertion
187
- // once the `selectedChange` is allowed to be null.
188
- this.selectedChange.emit(date);
189
- }
190
- this._userSelection.emit(event);
191
- };
192
- /** Handles year selection in the multiyear view. */
193
- MatCalendar.prototype._yearSelectedInMultiYearView = function (normalizedYear) {
194
- this.yearSelected.emit(normalizedYear);
195
- };
196
- /** Handles month selection in the year view. */
197
- MatCalendar.prototype._monthSelectedInYearView = function (normalizedMonth) {
198
- this.monthSelected.emit(normalizedMonth);
199
- };
200
- /** Handles year/month selection in the multi-year/year views. */
201
- MatCalendar.prototype._goToDateInView = function (date, view) {
202
- this.activeDate = date;
203
- this.currentView = view;
204
- };
205
- /** Returns the component instance that corresponds to the current calendar view. */
206
- MatCalendar.prototype._getCurrentViewComponent = function () {
207
- return this.monthView || this.yearView || this.multiYearView;
208
- };
209
- MatCalendar.ctorParameters = function () { return [
210
- { type: MatDatepickerIntl },
211
- { type: DateAdapter, decorators: [{ type: Optional }] },
212
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_FORMATS,] }] },
213
- { type: ChangeDetectorRef }
214
- ]; };
215
- __decorate([
216
- Input(),
217
- __metadata("design:type", TemplateRef)
218
- ], MatCalendar.prototype, "templatePresetRange", void 0);
219
- __decorate([
220
- Input(),
221
- __metadata("design:type", Object),
222
- __metadata("design:paramtypes", [Object])
223
- ], MatCalendar.prototype, "startAt", null);
224
- __decorate([
225
- Input(),
226
- __metadata("design:type", String)
227
- ], MatCalendar.prototype, "startView", void 0);
228
- __decorate([
229
- Input(),
230
- __metadata("design:type", Object),
231
- __metadata("design:paramtypes", [Object])
232
- ], MatCalendar.prototype, "selected", null);
233
- __decorate([
234
- Input(),
235
- __metadata("design:type", Object),
236
- __metadata("design:paramtypes", [Object])
237
- ], MatCalendar.prototype, "minDate", null);
238
- __decorate([
239
- Input(),
240
- __metadata("design:type", Object),
241
- __metadata("design:paramtypes", [Object])
242
- ], MatCalendar.prototype, "maxDate", null);
243
- __decorate([
244
- Input(),
245
- __metadata("design:type", Function)
246
- ], MatCalendar.prototype, "dateFilter", void 0);
247
- __decorate([
248
- Input(),
249
- __metadata("design:type", Function)
250
- ], MatCalendar.prototype, "dateClass", void 0);
251
- __decorate([
252
- Input(),
253
- __metadata("design:type", Object)
254
- ], MatCalendar.prototype, "comparisonStart", void 0);
255
- __decorate([
256
- Input(),
257
- __metadata("design:type", Object)
258
- ], MatCalendar.prototype, "comparisonEnd", void 0);
259
- __decorate([
260
- Output(),
261
- __metadata("design:type", EventEmitter)
262
- ], MatCalendar.prototype, "selectedChange", void 0);
263
- __decorate([
264
- Output(),
265
- __metadata("design:type", EventEmitter)
266
- ], MatCalendar.prototype, "yearSelected", void 0);
267
- __decorate([
268
- Output(),
269
- __metadata("design:type", EventEmitter)
270
- ], MatCalendar.prototype, "monthSelected", void 0);
271
- __decorate([
272
- Output(),
273
- __metadata("design:type", EventEmitter)
274
- ], MatCalendar.prototype, "_userSelection", void 0);
275
- __decorate([
276
- ViewChild(MatMonthView, { static: false }),
277
- __metadata("design:type", MatMonthView)
278
- ], MatCalendar.prototype, "monthView", void 0);
279
- __decorate([
280
- ViewChild(MatYearView, { static: false }),
281
- __metadata("design:type", MatYearView)
282
- ], MatCalendar.prototype, "yearView", void 0);
283
- __decorate([
284
- ViewChild(MatMultiYearView, { static: false }),
285
- __metadata("design:type", MatMultiYearView)
286
- ], MatCalendar.prototype, "multiYearView", void 0);
287
- MatCalendar = __decorate([
288
- Component({
289
- selector: 'gipi-mat-calendar',
290
- template: "<div class=\"gipi-mat-calendar-wrapper\">\n <ng-container *ngIf=\"templatePresetRange\"\n [ngTemplateOutlet]=\"templatePresetRange\"\n [ngTemplateOutletContext]=\"{$implicit: matCalendarRef}\">\n </ng-container>\n\n <div class=\"gipi-mat-calendar-content\">\n <!-- <ng-template [cdkPortalOutlet]=\"_calendarHeaderPortal\"> </ng-template> -->\n <gipi-mat-calendar-header [matCalendar]=\"matCalendarRef\"> </gipi-mat-calendar-header>\n\n <div class=\"mat-calendar-content\"\n [ngSwitch]=\"currentView\"\n cdkMonitorSubtreeFocus\n tabindex=\"-1\">\n <gipi-mat-month-view *ngSwitchCase=\"'month'\"\n [(activeDate)]=\"activeDate\"\n [selected]=\"selected\"\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [dateClass]=\"dateClass\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\"\n (_userSelection)=\"_dateSelected($event)\">\n </gipi-mat-month-view>\n\n <gipi-mat-year-view *ngSwitchCase=\"'year'\"\n [(activeDate)]=\"activeDate\"\n [selected]=\"selected\"\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [dateClass]=\"dateClass\"\n (monthSelected)=\"_monthSelectedInYearView($event)\"\n (selectedChange)=\"_goToDateInView($event, 'month')\">\n </gipi-mat-year-view>\n\n <gipi-mat-multi-year-view *ngSwitchCase=\"'multi-year'\"\n [(activeDate)]=\"activeDate\"\n [selected]=\"selected\"\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [dateClass]=\"dateClass\"\n (yearSelected)=\"_yearSelectedInMultiYearView($event)\"\n (selectedChange)=\"_goToDateInView($event, 'year')\">\n </gipi-mat-multi-year-view>\n </div>\n </div>\n</div>",
291
- host: {
292
- 'class': 'mat-calendar',
293
- },
294
- exportAs: 'gipiMatCalendar',
295
- encapsulation: ViewEncapsulation.None,
296
- changeDetection: ChangeDetectionStrategy.OnPush,
297
- providers: [
298
- MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER
299
- ],
300
- styles: [".mat-calendar{display:block}.mat-calendar-header{padding:8px 8px 0}.mat-calendar-content{padding:0 8px 8px;outline:0}.mat-calendar-controls{display:flex;margin:5% calc(33% / 7 - 16px)}.mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:.04}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0}.mat-calendar-arrow{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top-width:5px;border-top-style:solid;margin:0 0 0 5px;vertical-align:middle}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}.mat-calendar-next-button,.mat-calendar-previous-button{position:relative}.mat-calendar-next-button::after,.mat-calendar-previous-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:'';margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .mat-calendar-next-button,[dir=rtl] .mat-calendar-previous-button{transform:rotate(180deg)}.mat-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.mat-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:'';position:absolute;top:0;left:-8px;right:-8px;height:1px}.gipi-mat-calendar-wrapper{display:flex;flex-direction:row}"]
301
- }),
302
- __param(1, Optional()),
303
- __param(2, Optional()), __param(2, Inject(MAT_DATE_FORMATS)),
304
- __metadata("design:paramtypes", [MatDatepickerIntl,
305
- DateAdapter, Object, ChangeDetectorRef])
306
- ], MatCalendar);
307
- return MatCalendar;
308
- }());
309
- export { MatCalendar };
310
- /** Default header for MatCalendar */
311
- var MatCalendarHeader = /** @class */ (function () {
312
- function MatCalendarHeader(_intl, _dateAdapter, _dateFormats, _changeDetectorRef) {
313
- this._intl = _intl;
314
- this._dateAdapter = _dateAdapter;
315
- this._dateFormats = _dateFormats;
316
- this._changeDetectorRef = _changeDetectorRef;
317
- }
318
- MatCalendarHeader.prototype.ngAfterViewInit = function () {
319
- var _this = this;
320
- this.matCalendar.stateChanges.subscribe(function () { return _this._changeDetectorRef.markForCheck(); });
321
- };
322
- Object.defineProperty(MatCalendarHeader.prototype, "periodButtonText", {
323
- /** The label for the current matCalendar view. */
324
- get: function () {
325
- if (this.matCalendar.currentView == 'month') {
326
- return this._dateAdapter
327
- .format(this.matCalendar.activeDate, this._dateFormats.display.monthYearLabel)
328
- .toLocaleUpperCase();
329
- }
330
- if (this.matCalendar.currentView == 'year') {
331
- return this._dateAdapter.getYearName(this.matCalendar.activeDate);
332
- }
333
- // The offset from the active year to the "slot" for the starting year is the
334
- // *actual* first rendered year in the multi-year view, and the last year is
335
- // just yearsPerPage - 1 away.
336
- var activeYear = this._dateAdapter.getYear(this.matCalendar.activeDate);
337
- var minYearOfPage = activeYear - getActiveOffset(this._dateAdapter, this.matCalendar.activeDate, this.matCalendar.minDate, this.matCalendar.maxDate);
338
- var maxYearOfPage = minYearOfPage + yearsPerPage - 1;
339
- var minYearName = this._dateAdapter.getYearName(this._dateAdapter.createDate(minYearOfPage, 0, 1));
340
- var maxYearName = this._dateAdapter.getYearName(this._dateAdapter.createDate(maxYearOfPage, 0, 1));
341
- return this._intl.formatYearRange(minYearName, maxYearName);
342
- },
343
- enumerable: false,
344
- configurable: true
345
- });
346
- Object.defineProperty(MatCalendarHeader.prototype, "periodButtonLabel", {
347
- get: function () {
348
- return this.matCalendar.currentView == 'month' ? this._intl.switchToMultiYearViewLabel : this._intl.switchToMonthViewLabel;
349
- },
350
- enumerable: false,
351
- configurable: true
352
- });
353
- Object.defineProperty(MatCalendarHeader.prototype, "prevButtonLabel", {
354
- /** The label for the previous button. */
355
- get: function () {
356
- return {
357
- 'month': this._intl.prevMonthLabel,
358
- 'year': this._intl.prevYearLabel,
359
- 'multi-year': this._intl.prevMultiYearLabel
360
- }[this.matCalendar.currentView];
361
- },
362
- enumerable: false,
363
- configurable: true
364
- });
365
- Object.defineProperty(MatCalendarHeader.prototype, "nextButtonLabel", {
366
- /** The label for the next button. */
367
- get: function () {
368
- return {
369
- 'month': this._intl.nextMonthLabel,
370
- 'year': this._intl.nextYearLabel,
371
- 'multi-year': this._intl.nextMultiYearLabel
372
- }[this.matCalendar.currentView];
373
- },
374
- enumerable: false,
375
- configurable: true
376
- });
377
- /** Handles user clicks on the period label. */
378
- MatCalendarHeader.prototype.currentPeriodClicked = function () {
379
- this.matCalendar.currentView = this.matCalendar.currentView == 'month' ? 'multi-year' : 'month';
380
- };
381
- /** Handles user clicks on the previous button. */
382
- MatCalendarHeader.prototype.previousClicked = function () {
383
- this.matCalendar.activeDate = this.matCalendar.currentView == 'month'
384
- ? this._dateAdapter.addCalendarMonths(this.matCalendar.activeDate, -1)
385
- : this._dateAdapter.addCalendarYears(this.matCalendar.activeDate, this.matCalendar.currentView == 'year' ? -1 : -yearsPerPage);
386
- };
387
- /** Handles user clicks on the next button. */
388
- MatCalendarHeader.prototype.nextClicked = function () {
389
- this.matCalendar.activeDate = this.matCalendar.currentView == 'month'
390
- ? this._dateAdapter.addCalendarMonths(this.matCalendar.activeDate, 1)
391
- : this._dateAdapter.addCalendarYears(this.matCalendar.activeDate, this.matCalendar.currentView == 'year' ? 1 : yearsPerPage);
392
- };
393
- /** Whether the previous period button is enabled. */
394
- MatCalendarHeader.prototype.previousEnabled = function () {
395
- if (!this.matCalendar.minDate) {
396
- return true;
397
- }
398
- return !this.matCalendar.minDate || !this._isSameView(this.matCalendar.activeDate, this.matCalendar.minDate);
399
- };
400
- /** Whether the next period button is enabled. */
401
- MatCalendarHeader.prototype.nextEnabled = function () {
402
- return !this.matCalendar.maxDate || !this._isSameView(this.matCalendar.activeDate, this.matCalendar.maxDate);
403
- };
404
- /** Whether the two dates represent the same view in the current view mode (month or year). */
405
- MatCalendarHeader.prototype._isSameView = function (date1, date2) {
406
- if (this.matCalendar.currentView == 'month') {
407
- return this._dateAdapter.getYear(date1) == this._dateAdapter.getYear(date2) && this._dateAdapter.getMonth(date1) == this._dateAdapter.getMonth(date2);
408
- }
409
- if (this.matCalendar.currentView == 'year') {
410
- return this._dateAdapter.getYear(date1) == this._dateAdapter.getYear(date2);
411
- }
412
- // Otherwise we are in 'multi-year' view.
413
- return isSameMultiYearView(this._dateAdapter, date1, date2, this.matCalendar.minDate, this.matCalendar.maxDate);
414
- };
415
- MatCalendarHeader.ctorParameters = function () { return [
416
- { type: MatDatepickerIntl },
417
- { type: DateAdapter, decorators: [{ type: Optional }] },
418
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_FORMATS,] }] },
419
- { type: ChangeDetectorRef }
420
- ]; };
421
- __decorate([
422
- Input(),
423
- __metadata("design:type", MatCalendar)
424
- ], MatCalendarHeader.prototype, "matCalendar", void 0);
425
- MatCalendarHeader = __decorate([
426
- Component({
427
- selector: 'gipi-mat-calendar-header',
428
- template: "<div class=\"mat-calendar-header\">\n <div class=\"mat-calendar-controls\">\n <button mat-button\n type=\"button\"\n class=\"mat-calendar-period-button\"\n (click)=\"currentPeriodClicked()\"\n [attr.aria-label]=\"periodButtonLabel\"\n cdkAriaLive=\"polite\">\n {{ periodButtonText }}\n <div class=\"mat-calendar-arrow\"\n [class.mat-calendar-invert]=\"matCalendar.currentView != 'month'\">\n </div>\n </button>\n\n <div class=\"mat-calendar-spacer\"> </div>\n\n <ng-content> </ng-content>\n\n <button mat-icon-button\n type=\"button\"\n class=\"mat-calendar-previous-button\"\n [disabled]=\"!previousEnabled()\"\n (click)=\"previousClicked()\"\n [attr.aria-label]=\"prevButtonLabel\">\n </button>\n\n <button mat-icon-button\n type=\"button\"\n class=\"mat-calendar-next-button\"\n [disabled]=\"!nextEnabled()\"\n (click)=\"nextClicked()\"\n [attr.aria-label]=\"nextButtonLabel\">\n </button>\n </div>\n</div>",
429
- exportAs: 'gipiMatCalendarHeader',
430
- encapsulation: ViewEncapsulation.None,
431
- changeDetection: ChangeDetectionStrategy.OnPush
432
- }),
433
- __param(1, Optional()),
434
- __param(2, Optional()), __param(2, Inject(MAT_DATE_FORMATS)),
435
- __metadata("design:paramtypes", [MatDatepickerIntl,
436
- DateAdapter, Object, ChangeDetectorRef])
437
- ], MatCalendarHeader);
438
- return MatCalendarHeader;
439
- }());
440
- export { MatCalendarHeader };
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvbWF0LWRhdGVwaWNrZXIvY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4USxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVExQzs7O0dBR0c7QUFlSDtJQTJISSxxQkFDSSxLQUF3QixFQUNKLFlBQTRCLEVBQ0YsWUFBNEIsRUFDbEUs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QkFBaUI7T0FSeEMsaUJBQWlCLENBc0c3QjtJQUFELHdCQUFDO0NBQUEsQUF0R0QsSUFzR0M7U0F0R1ksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPcHRpb25hbCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhckNlbGxDbGFzc0Z1bmN0aW9uLCBNYXRDYWxlbmRhclVzZXJFdmVudCB9IGZyb20gJy4vY2FsZW5kYXItYm9keSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2UsIE1BVF9TSU5HTEVfREFURV9TRUxFQ1RJT05fTU9ERUxfUFJPVklERVIgfSBmcm9tICcuL2RhdGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yIH0gZnJvbSAnLi9kYXRlcGlja2VyLWVycm9ycyc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VySW50bCB9IGZyb20gJy4vZGF0ZXBpY2tlci1pbnRsJztcbmltcG9ydCB7IE1hdE1vbnRoVmlldyB9IGZyb20gJy4vbW9udGgtdmlldyc7XG5pbXBvcnQgeyBnZXRBY3RpdmVPZmZzZXQsIGlzU2FtZU11bHRpWWVhclZpZXcsIE1hdE11bHRpWWVhclZpZXcsIHllYXJzUGVyUGFnZSB9IGZyb20gJy4vbXVsdGkteWVhci12aWV3JztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi9zaGFyZWQvYWRhcHRlci9kYXRlLWFkYXB0ZXInO1xuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUywgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICcuL3NoYXJlZC9hZGFwdGVyL2RhdGUtZm9ybWF0cyc7XG5pbXBvcnQgeyBNYXRZZWFyVmlldyB9IGZyb20gJy4veWVhci12aWV3JztcblxuLyoqXG4gKiBQb3NzaWJsZSB2aWV3cyBmb3IgdGhlIGNhbGVuZGFyLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgdHlwZSBNYXRDYWxlbmRhclZpZXcgPSAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXInO1xuXG4vKipcbiAqIEEgY2FsZW5kYXIgdGhhdCBpcyB1c2VkIGFzIHBhcnQgb2YgdGhlIGRhdGVwaWNrZXIuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1tYXQtY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FsZW5kYXIuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2NhbGVuZGFyLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdtYXQtY2FsZW5kYXInLFxuICAgIH0sXG4gICAgZXhwb3J0QXM6ICdnaXBpTWF0Q2FsZW5kYXInLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1BVF9TSU5HTEVfREFURV9TRUxFQ1RJT05fTU9ERUxfUFJPVklERVJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdENhbGVuZGFyPEQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gICAgcHVibGljIG1hdENhbGVuZGFyUmVmOiBNYXRDYWxlbmRhcjxEPiA9IHRoaXM7XG5cbiAgICAvKiogQ3JlYXRlZCBieSBHSVBJIFNpc3RlbWFzICovXG4gICAgQElucHV0KCkgdGVtcGxhdGVQcmVzZXRSYW5nZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByaXZhdGUgX2ludGxDaGFuZ2VzOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGZvciBzY2hlZHVsaW5nIHRoYXQgZm9jdXMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBhY3RpdmUgY2VsbCBvbiB0aGUgbmV4dCB0aWNrLlxuICAgICAqIFdlIG5lZWQgdG8gc2NoZWR1bGUgaXQsIHJhdGhlciB0aGFuIGRvIGl0IGltbWVkaWF0ZWx5LCBiZWNhdXNlIHdlIGhhdmUgdG8gd2FpdFxuICAgICAqIGZvciBBbmd1bGFyIHRvIHJlLWV2YWx1YXRlIHRoZSB2aWV3IGNoaWxkcmVuLlxuICAgICAqL1xuICAgIHByaXZhdGUgX21vdmVGb2N1c09uTmV4dFRpY2sgPSBmYWxzZTtcblxuICAgIC8qKiBBIGRhdGUgcmVwcmVzZW50aW5nIHRoZSBwZXJpb2QgKG1vbnRoIG9yIHllYXIpIHRvIHN0YXJ0IHRoZSBjYWxlbmRhciBpbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzdGFydEF0KCk6IEQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX3N0YXJ0QXQ7IH1cbiAgICBzZXQgc3RhcnRBdCh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fc3RhcnRBdCA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zdGFydEF0OiBEIHwgbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBzaG91bGQgYmUgc3RhcnRlZCBpbiBtb250aCBvciB5ZWFyIHZpZXcuICovXG4gICAgQElucHV0KCkgc3RhcnRWaWV3OiBNYXRDYWxlbmRhclZpZXcgPSAnbW9udGgnO1xuXG4gICAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzZWxlY3RlZCgpOiBEYXRlUmFuZ2U8RD4gfCBEIHwgbnVsbCB7IHJldHVybiB0aGlzLl9zZWxlY3RlZDsgfVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZTogRGF0ZVJhbmdlPEQ+IHwgRCB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9zZWxlY3RlZDogRGF0ZVJhbmdlPEQ+IHwgRCB8IG51bGw7XG5cbiAgICAvKiogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1pbkRhdGUoKTogRCB8IG51bGwgeyByZXR1cm4gdGhpcy5fbWluRGF0ZTsgfVxuICAgIHNldCBtaW5EYXRlKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9taW5EYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgfVxuICAgIHByaXZhdGUgX21pbkRhdGU6IEQgfCBudWxsO1xuXG4gICAgLyoqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBtYXhEYXRlKCk6IEQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX21heERhdGU7IH1cbiAgICBzZXQgbWF4RGF0ZSh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbWF4RGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIH1cbiAgICBwcml2YXRlIF9tYXhEYXRlOiBEIHwgbnVsbDtcblxuICAgIC8qKiBGdW5jdGlvbiB1c2VkIHRvIGZpbHRlciB3aGljaCBkYXRlcyBhcmUgc2VsZWN0YWJsZS4gKi9cbiAgICBASW5wdXQoKSBkYXRlRmlsdGVyOiAoZGF0ZTogRCkgPT4gYm9vbGVhbjtcblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGFkZCBjdXN0b20gQ1NTIGNsYXNzZXMgdG8gZGF0ZXMuICovXG4gICAgQElucHV0KCkgZGF0ZUNsYXNzOiBNYXRDYWxlbmRhckNlbGxDbGFzc0Z1bmN0aW9uPEQ+O1xuXG4gICAgLyoqIFN0YXJ0IG9mIHRoZSBjb21wYXJpc29uIHJhbmdlLiAqL1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25TdGFydDogRCB8IG51bGw7XG5cbiAgICAvKiogRW5kIG9mIHRoZSBjb21wYXJpc29uIHJhbmdlLiAqL1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25FbmQ6IEQgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgY2hhbmdlcy5cbiAgICAgKiBAYnJlYWtpbmctY2hhbmdlIDExLjAuMCBFbWl0dGVkIHZhbHVlIHRvIGNoYW5nZSB0byBgRCB8IG51bGxgLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIHllYXIgY2hvc2VuIGluIG11bHRpeWVhciB2aWV3LlxuICAgICAqIFRoaXMgZG9lc24ndCBpbXBseSBhIGNoYW5nZSBvbiB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgeWVhclNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8RD4gPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB0aGUgbW9udGggY2hvc2VuIGluIHllYXIgdmlldy5cbiAgICAgKiBUaGlzIGRvZXNuJ3QgaW1wbHkgYSBjaGFuZ2Ugb24gdGhlIHNlbGVjdGVkIGRhdGUuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG1vbnRoU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxEPiA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIGFueSBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBfdXNlclNlbGVjdGlvbjogRXZlbnRFbWl0dGVyPE1hdENhbGVuZGFyVXNlckV2ZW50PEQgfCBudWxsPj4gPSBuZXcgRXZlbnRFbWl0dGVyPE1hdENhbGVuZGFyVXNlckV2ZW50PEQgfCBudWxsPj4oKTtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgbW9udGggdmlldyBjb21wb25lbnQuICovXG4gICAgQFZpZXdDaGlsZChNYXRNb250aFZpZXcsIHsgc3RhdGljOiBmYWxzZSB9KSBtb250aFZpZXc6IE1hdE1vbnRoVmlldzxEPjtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgeWVhciB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKE1hdFllYXJWaWV3LCB7IHN0YXRpYzogZmFsc2UgfSkgeWVhclZpZXc6IE1hdFllYXJWaWV3PEQ+O1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBtdWx0aS15ZWFyIHZpZXcgY29tcG9uZW50LiAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0TXVsdGlZZWFyVmlldywgeyBzdGF0aWM6IGZhbHNlIH0pIG11bHRpWWVhclZpZXc6IE1hdE11bHRpWWVhclZpZXc8RD47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCBhY3RpdmUgZGF0ZS4gVGhpcyBkZXRlcm1pbmVzIHdoaWNoIHRpbWUgcGVyaW9kIGlzIHNob3duIGFuZCB3aGljaCBkYXRlIGlzXG4gICAgICogaGlnaGxpZ2h0ZWQgd2hlbiB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIGdldCBhY3RpdmVEYXRlKCk6IEQgeyByZXR1cm4gdGhpcy5fY2xhbXBlZEFjdGl2ZURhdGU7IH1cbiAgICBzZXQgYWN0aXZlRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLl9jbGFtcGVkQWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmNsYW1wRGF0ZSh2YWx1ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jbGFtcGVkQWN0aXZlRGF0ZTogRDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBpcyBpbiBtb250aCB2aWV3LiAqL1xuICAgIGdldCBjdXJyZW50VmlldygpOiBNYXRDYWxlbmRhclZpZXcgeyByZXR1cm4gdGhpcy5fY3VycmVudFZpZXc7IH1cbiAgICBzZXQgY3VycmVudFZpZXcodmFsdWU6IE1hdENhbGVuZGFyVmlldykge1xuICAgICAgICB0aGlzLl9jdXJyZW50VmlldyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9tb3ZlRm9jdXNPbk5leHRUaWNrID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1cnJlbnRWaWV3OiBNYXRDYWxlbmRhclZpZXc7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuZXZlciB0aGVyZSBpcyBhIHN0YXRlIGNoYW5nZSB0aGF0IHRoZSBoZWFkZXIgbWF5IG5lZWQgdG8gcmVzcG9uZCB0by5cbiAgICAgKi9cbiAgICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF9pbnRsOiBNYXREYXRlcGlja2VySW50bCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZUFkYXB0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKCdEYXRlQWRhcHRlcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9kYXRlRm9ybWF0cykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsRXJyb3IoJ01BVF9EQVRFX0ZPUk1BVFMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2ludGxDaGFuZ2VzID0gX2ludGwuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuc3RhcnRBdCB8fCB0aGlzLl9kYXRlQWRhcHRlci50b2RheSgpO1xuXG4gICAgICAgIC8vIEFzc2lnbiB0byB0aGUgcHJpdmF0ZSBwcm9wZXJ0eSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIG1vdmUgZm9jdXMgb24gaW5pdC5cbiAgICAgICAgdGhpcy5fY3VycmVudFZpZXcgPSB0aGlzLnN0YXJ0VmlldztcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9tb3ZlRm9jdXNPbk5leHRUaWNrKSB7XG4gICAgICAgICAgICB0aGlzLl9tb3ZlRm9jdXNPbk5leHRUaWNrID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQWN0aXZlQ2VsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2ludGxDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VzWydtaW5EYXRlJ10gfHwgY2hhbmdlc1snbWF4RGF0ZSddIHx8IGNoYW5nZXNbJ2RhdGVGaWx0ZXInXTtcblxuICAgICAgICBpZiAoY2hhbmdlICYmICFjaGFuZ2UuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpO1xuXG4gICAgICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gYGRldGVjdENoYW5nZXNgIG1hbnVhbGx5IGhlcmUsIGJlY2F1c2UgdGhlIGBtaW5EYXRlYCwgYG1heERhdGVgIGV0Yy4gYXJlXG4gICAgICAgICAgICAgICAgLy8gcGFzc2VkIGRvd24gdG8gdGhlIHZpZXcgdmlhIGRhdGEgYmluZGluZ3Mgd2hpY2ggd29uJ3QgYmUgdXAtdG8tZGF0ZSB3aGVuIHdlIGNhbGwgYF9pbml0YC5cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgdmlldy5faW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIGZvY3VzQWN0aXZlQ2VsbCgpIHtcbiAgICAgICAgdGhpcy5fZ2V0Q3VycmVudFZpZXdDb21wb25lbnQoKS5fZm9jdXNBY3RpdmVDZWxsKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlcyB0b2RheSdzIGRhdGUgYWZ0ZXIgYW4gdXBkYXRlIG9mIHRoZSBhY3RpdmUgZGF0ZSAqL1xuICAgIHVwZGF0ZVRvZGF5c0RhdGUoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWaWV3ID0gdGhpcy5jdXJyZW50VmlldztcbiAgICAgICAgbGV0IHZpZXc6IE1hdE1vbnRoVmlldzxEPiB8IE1hdFllYXJWaWV3PEQ+IHwgTWF0TXVsdGlZZWFyVmlldzxEPjtcblxuICAgICAgICBpZiAoY3VycmVudFZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgIHZpZXcgPSB0aGlzLm1vbnRoVmlldztcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmlldyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB2aWV3ID0gdGhpcy55ZWFyVmlldztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZpZXcgPSB0aGlzLm11bHRpWWVhclZpZXc7XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3Ll9pbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgZGF0ZSBzZWxlY3Rpb24gaW4gdGhlIG1vbnRoIHZpZXcuICovXG4gICAgX2RhdGVTZWxlY3RlZChldmVudDogTWF0Q2FsZW5kYXJVc2VyRXZlbnQ8RCB8IG51bGw+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBldmVudC52YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCBpbnN0YW5jZW9mIERhdGVSYW5nZSB8fCAoZGF0ZSAmJiAhdGhpcy5fZGF0ZUFkYXB0ZXIuc2FtZURhdGUoZGF0ZSwgdGhpcy5zZWxlY3RlZCkpKSB7XG4gICAgICAgICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDExLjAuMCByZW1vdmUgbm9uLW51bGwgYXNzZXJ0aW9uXG4gICAgICAgICAgICAvLyBvbmNlIHRoZSBgc2VsZWN0ZWRDaGFuZ2VgIGlzIGFsbG93ZWQgdG8gYmUgbnVsbC5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChkYXRlISk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl91c2VyU2VsZWN0aW9uLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHllYXIgc2VsZWN0aW9uIGluIHRoZSBtdWx0aXllYXIgdmlldy4gKi9cbiAgICBfeWVhclNlbGVjdGVkSW5NdWx0aVllYXJWaWV3KG5vcm1hbGl6ZWRZZWFyOiBEKSB7XG4gICAgICAgIHRoaXMueWVhclNlbGVjdGVkLmVtaXQobm9ybWFsaXplZFllYXIpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIG1vbnRoIHNlbGVjdGlvbiBpbiB0aGUgeWVhciB2aWV3LiAqL1xuICAgIF9tb250aFNlbGVjdGVkSW5ZZWFyVmlldyhub3JtYWxpemVkTW9udGg6IEQpIHtcbiAgICAgICAgdGhpcy5tb250aFNlbGVjdGVkLmVtaXQobm9ybWFsaXplZE1vbnRoKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB5ZWFyL21vbnRoIHNlbGVjdGlvbiBpbiB0aGUgbXVsdGkteWVhci95ZWFyIHZpZXdzLiAqL1xuICAgIF9nb1RvRGF0ZUluVmlldyhkYXRlOiBELCB2aWV3OiAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXInKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXcgPSB2aWV3O1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3LiAqL1xuICAgIHByaXZhdGUgX2dldEN1cnJlbnRWaWV3Q29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aFZpZXcgfHwgdGhpcy55ZWFyVmlldyB8fCB0aGlzLm11bHRpWWVhclZpZXc7XG4gICAgfVxufVxuXG4vKiogRGVmYXVsdCBoZWFkZXIgZm9yIE1hdENhbGVuZGFyICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktbWF0LWNhbGVuZGFyLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICdjYWxlbmRhci1oZWFkZXIuaHRtbCcsXG4gICAgZXhwb3J0QXM6ICdnaXBpTWF0Q2FsZW5kYXJIZWFkZXInLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdENhbGVuZGFySGVhZGVyPEQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASW5wdXQoKSBtYXRDYWxlbmRhcjogTWF0Q2FsZW5kYXI8RD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfaW50bDogTWF0RGF0ZXBpY2tlckludGwsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlRm9ybWF0czogTWF0RGF0ZUZvcm1hdHMsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHsgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1hdENhbGVuZGFyLnN0YXRlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgbGFiZWwgZm9yIHRoZSBjdXJyZW50IG1hdENhbGVuZGFyIHZpZXcuICovXG4gICAgZ2V0IHBlcmlvZEJ1dHRvblRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubWF0Q2FsZW5kYXIuY3VycmVudFZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVBZGFwdGVyXG4gICAgICAgICAgICAgICAgLmZvcm1hdCh0aGlzLm1hdENhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpXG4gICAgICAgICAgICAgICAgLnRvTG9jYWxlVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWF0Q2FsZW5kYXIuY3VycmVudFZpZXcgPT0gJ3llYXInKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5tYXRDYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBvZmZzZXQgZnJvbSB0aGUgYWN0aXZlIHllYXIgdG8gdGhlIFwic2xvdFwiIGZvciB0aGUgc3RhcnRpbmcgeWVhciBpcyB0aGVcbiAgICAgICAgLy8gKmFjdHVhbCogZmlyc3QgcmVuZGVyZWQgeWVhciBpbiB0aGUgbXVsdGkteWVhciB2aWV3LCBhbmQgdGhlIGxhc3QgeWVhciBpc1xuICAgICAgICAvLyBqdXN0IHllYXJzUGVyUGFnZSAtIDEgYXdheS5cbiAgICAgICAgY29uc3QgYWN0aXZlWWVhciA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFllYXIodGhpcy5tYXRDYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgY29uc3QgbWluWWVhck9mUGFnZSA9IGFjdGl2ZVllYXIgLSBnZXRBY3RpdmVPZmZzZXQodGhpcy5fZGF0ZUFkYXB0ZXIsIHRoaXMubWF0Q2FsZW5kYXIuYWN0aXZlRGF0ZSwgdGhpcy5tYXRDYWxlbmRhci5taW5EYXRlLCB0aGlzLm1hdENhbGVuZGFyLm1heERhdGUpO1xuICAgICAgICBjb25zdCBtYXhZZWFyT2ZQYWdlID0gbWluWWVhck9mUGFnZSArIHllYXJzUGVyUGFnZSAtIDE7XG4gICAgICAgIGNvbnN0IG1pblllYXJOYW1lID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5fZGF0ZUFkYXB0ZXIuY3JlYXRlRGF0ZShtaW5ZZWFyT2ZQYWdlLCAwLCAxKSk7XG4gICAgICAgIGNvbnN0IG1heFllYXJOYW1lID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5fZGF0ZUFkYXB0ZXIuY3JlYXRlRGF0ZShtYXhZZWFyT2ZQYWdlLCAwLCAxKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnRsLmZvcm1hdFllYXJSYW5nZShtaW5ZZWFyTmFtZSwgbWF4WWVhck5hbWUpO1xuICAgIH1cblxuICAgIGdldCBwZXJpb2RCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXRDYWxlbmRhci5jdXJyZW50VmlldyA9PSAnbW9udGgnID8gdGhpcy5faW50bC5zd2l0Y2hUb011bHRpWWVhclZpZXdMYWJlbCA6IHRoaXMuX2ludGwuc3dpdGNoVG9Nb250aFZpZXdMYWJlbDtcbiAgICB9XG5cbiAgICAvKiogVGhlIGxhYmVsIGZvciB0aGUgcHJldmlvdXMgYnV0dG9uLiAqL1xuICAgIGdldCBwcmV2QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdtb250aCc6IHRoaXMuX2ludGwucHJldk1vbnRoTGFiZWwsXG4gICAgICAgICAgICAneWVhcic6IHRoaXMuX2ludGwucHJldlllYXJMYWJlbCxcbiAgICAgICAgICAgICdtdWx0aS15ZWFyJzogdGhpcy5faW50bC5wcmV2TXVsdGlZZWFyTGFiZWxcbiAgICAgICAgfVt0aGlzLm1hdENhbGVuZGFyLmN1cnJlbnRWaWV3XTtcbiAgICB9XG5cbiAgICAvKiogVGhlIGxhYmVsIGZvciB0aGUgbmV4dCBidXR0b24uICovXG4gICAgZ2V0IG5leHRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ21vbnRoJzogdGhpcy5faW50bC5uZXh0TW9udGhMYWJlbCxcbiAgICAgICAgICAgICd5ZWFyJzogdGhpcy5faW50bC5uZXh0WWVhckxhYmVsLFxuICAgICAgICAgICAgJ211bHRpLXllYXInOiB0aGlzLl9pbnRsLm5leHRNdWx0aVllYXJMYWJlbFxuICAgICAgICB9W3RoaXMubWF0Q2FsZW5kYXIuY3VycmVudFZpZXddO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBwZXJpb2QgbGFiZWwuICovXG4gICAgY3VycmVudFBlcmlvZENsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWF0Q2FsZW5kYXIuY3VycmVudFZpZXcgPSB0aGlzLm1hdENhbGVuZGFyLmN1cnJlbnRWaWV3ID09ICdtb250aCcgPyAnbXVsdGkteWVhcicgOiAnbW9udGgnO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBwcmV2aW91cyBidXR0b24uICovXG4gICAgcHJldmlvdXNDbGlja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1hdENhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLm1hdENhbGVuZGFyLmN1cnJlbnRWaWV3ID09ICdtb250aCdcbiAgICAgICAgICAgID8gdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5tYXRDYWxlbmRhci5hY3RpdmVEYXRlLCAtMSlcbiAgICAgICAgICAgIDogdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLm1hdENhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMubWF0Q2FsZW5kYXIuY3VycmVudFZpZXcgPT0gJ3llYXInID8gLTEgOiAteWVhcnNQZXJQYWdlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgbmV4dCBidXR0b24uICovXG4gICAgbmV4dENsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWF0Q2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMubWF0Q2FsZW5kYXIuY3VycmVudFZpZXcgPT0gJ21vbnRoJ1xuICAgICAgICAgICAgPyB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLm1hdENhbGVuZGFyLmFjdGl2ZURhdGUsIDEpXG4gICAgICAgICAgICA6IHRoaXMuX2RhdGVBZGFwdGVyLmFkZENhbGVuZGFyWWVhcnModGhpcy5tYXRDYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLm1hdENhbGVuZGFyLmN1cnJlbnRWaWV3ID09ICd5ZWFyJyA/IDEgOiB5ZWFyc1BlclBhZ2UpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwcmV2aW91cyBwZXJpb2QgYnV0dG9uIGlzIGVuYWJsZWQuICovXG4gICAgcHJldmlvdXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubWF0Q2FsZW5kYXIubWluRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICF0aGlzLm1hdENhbGVuZGFyLm1pbkRhdGUgfHwgIXRoaXMuX2lzU2FtZVZpZXcodGhpcy5tYXRDYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLm1hdENhbGVuZGFyLm1pbkRhdGUpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBuZXh0IHBlcmlvZCBidXR0b24gaXMgZW5hYmxlZC4gKi9cbiAgICBuZXh0RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm1hdENhbGVuZGFyLm1heERhdGUgfHwgIXRoaXMuX2lzU2FtZVZpZXcodGhpcy5tYXRDYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLm1hdENhbGVuZGFyLm1heERhdGUpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSB0d28gZGF0ZXMgcmVwcmVzZW50IHRoZSBzYW1lIHZpZXcgaW4gdGhlIGN1cnJlbnQgdmlldyBtb2RlIChtb250aCBvciB5ZWFyKS4gKi9cbiAgICBwcml2YXRlIF9pc1NhbWVWaWV3KGRhdGUxOiBELCBkYXRlMjogRCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5tYXRDYWxlbmRhci5jdXJyZW50VmlldyA9PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0WWVhcihkYXRlMSkgPT0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0WWVhcihkYXRlMikgJiYgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgoZGF0ZTEpID09IHRoaXMuX2RhdGVBZGFwdGVyLmdldE1vbnRoKGRhdGUyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXRDYWxlbmRhci5jdXJyZW50VmlldyA9PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKGRhdGUxKSA9PSB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKGRhdGUyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2Ugd2UgYXJlIGluICdtdWx0aS15ZWFyJyB2aWV3LlxuICAgICAgICByZXR1cm4gaXNTYW1lTXVsdGlZZWFyVmlldyh0aGlzLl9kYXRlQWRhcHRlciwgZGF0ZTEsIGRhdGUyLCB0aGlzLm1hdENhbGVuZGFyLm1pbkRhdGUsIHRoaXMubWF0Q2FsZW5kYXIubWF4RGF0ZSk7XG4gICAgfVxufVxuIl19