@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,374 +0,0 @@
1
- var GIPIInputSearchComponent_1;
2
- import { __decorate, __metadata, __param } from "tslib";
3
- import { A, DOWN_ARROW, END, ENTER, ESCAPE, HOME, NINE, SPACE, UP_ARROW, Z, ZERO } from '@angular/cdk/keycodes';
4
- import { ViewportRuler } from '@angular/cdk/scrolling';
5
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Inject, Input, OnChanges, OnDestroy, OnInit, Optional, QueryList, SimpleChanges, ViewChild, forwardRef } from '@angular/core';
6
- import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { MatFormField, MatOption, MatSelect } from '@angular/material';
8
- import { BehaviorSubject, Subject, combineLatest, of } from 'rxjs';
9
- import { delay, filter, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';
10
- let GIPIInputSearchComponent = GIPIInputSearchComponent_1 = class GIPIInputSearchComponent {
11
- constructor(matSelect, changeDetectorRef, _viewportRuler, matOption = null, matFormField = null) {
12
- this.matSelect = matSelect;
13
- this.changeDetectorRef = changeDetectorRef;
14
- this._viewportRuler = _viewportRuler;
15
- this.matOption = matOption;
16
- this.matFormField = matFormField;
17
- // Referência às opções MatSelect
18
- this._options$ = new BehaviorSubject(null);
19
- this.optionsList$ = this._options$.pipe(switchMap((_options) => _options
20
- ? _options.changes.pipe(map((options) => options.toArray()), startWith(_options.toArray()))
21
- : of(null)));
22
- this.optionsLength$ = this.optionsList$.pipe(map((options) => options ? options.length : 0));
23
- this._formControl = new FormControl('');
24
- // Se deve mostrar a mensagem sem entradas encontradas
25
- this._showNoEntriesFound$ = combineLatest([
26
- this._formControl.valueChanges,
27
- this.optionsLength$
28
- ]).pipe(map(([value, optionsLength]) => value && optionsLength === this.getOptionsLengthOffset()));
29
- // Subject emitido quando o componente foi destruído
30
- this._onDestroy = new Subject();
31
- this.placeholderLabel = 'Pesquisar';
32
- this.clearSearchInput = true;
33
- // Se deve mostrar o indicador de pesquisa em andamento
34
- this.searching = false;
35
- // Desativa o foco inicial do campo de entrada
36
- this.disableInitialFocus = false;
37
- // Ativar limpar input ao pressionar escape
38
- this.enableClearOnEscapePressed = false;
39
- /**
40
- * Impede que a chave home/end seja propagada para mat-select,
41
- * permitindo mover o cursor dentro da entrada de pesquisa em vez de navegar pelas opções
42
- */
43
- this.preventHomeEndKeyPropagation = false;
44
- // Desativa a rolagem para as opções ativas quando a lista de opções é alterada. Útil para pesquisa do lado do servidor
45
- this.disableScrollToActiveOnOptionsChanged = false;
46
- // Mostrar/ocultar o botão limpar pesquisa da entrada de pesquisa
47
- this.hideClearSearchButton = false;
48
- this.onTouched = (_) => { };
49
- }
50
- // Valor de pesquisa atual
51
- get value() {
52
- return this._formControl.value;
53
- }
54
- set _options(_options) {
55
- this._options$.next(_options);
56
- }
57
- get _options() {
58
- return this._options$.getValue();
59
- }
60
- // Adiciona a classe mat-select-search-inside-mat-option se o itss-input-search estiver
61
- // dentro do mat-option
62
- get isInsideMatOption() {
63
- return !!this.matOption;
64
- }
65
- ngOnInit() {
66
- // Definir classe de opção mat personalizada se o componente foi colocado dentro de uma opção mat
67
- if (this.matOption) {
68
- this.matOption.disabled = true;
69
- this.matOption._getHostElement().classList.add('contains-mat-select-search');
70
- this.matOption._getHostElement().setAttribute('aria-hidden', 'true');
71
- }
72
- else {
73
- console.error('<gipi-select-search> deve ser colocado dentro de um elemento <mat-option>');
74
- }
75
- // Quando o painel suspenso de seleção é aberto ou fechado
76
- this.matSelect.openedChange
77
- .pipe(delay(1), takeUntil(this._onDestroy))
78
- .subscribe((opened) => {
79
- if (opened) {
80
- this.updateInputWidth();
81
- // Focar o campo de pesquisa ao abrir
82
- if (!this.disableInitialFocus) {
83
- this._focus();
84
- }
85
- }
86
- else {
87
- // Limpá-lo ao fechar
88
- if (this.clearSearchInput) {
89
- this._reset();
90
- }
91
- }
92
- });
93
- // Definir o primeiro item ativo após as opções alteradas
94
- this.matSelect.openedChange
95
- .pipe(take(1), switchMap(() => {
96
- this._options = this.matSelect.options;
97
- // Variável de fechamento para rastrear a primeira opção mais recente.
98
- // Para evitar que a lista role para o topo quando as opções são adicionadas ao final da lista
99
- // (por exemplo: rolagem infinita), comparamos apenas as alterações nas primeiras opções para
100
- // determinar se devemos definir o primeiro item como ativo. Isso evita a rolagem desnecessária
101
- // para o topo da lista quando as opções são anexadas, mas permite que o primeiro item da lista
102
- // seja definido como ativo por padrão quando não há seleção ativa.
103
- let previousFirstOption = this._options.toArray()[this.getOptionsLengthOffset()];
104
- return this._options.changes
105
- .pipe(tap(() => {
106
- // Evitar o erro "expression has been changed"
107
- setTimeout(() => {
108
- // Converter a QueryList em uma matriz
109
- const options = this._options.toArray();
110
- // O verdadeiro primeiro item é compensado por 1
111
- const currentFirstOption = options[this.getOptionsLengthOffset()];
112
- const keyManager = this.matSelect._keyManager;
113
- if (keyManager && this.matSelect.panelOpen) {
114
- // Definir primeiro item ativo e largura de entrada
115
- // Verifique se a primeira opção nessas alterações é diferente da anterior.
116
- const firstOptionIsChanged = !this.matSelect.compareWith(previousFirstOption, currentFirstOption);
117
- // CASO: A primeira opção é diferente agora.
118
- // Indica que devemos defini-lo como ativo e rolar para o topo.
119
- if (firstOptionIsChanged
120
- || !keyManager.activeItem
121
- || !options.find((option) => this.matSelect.compareWith(option, keyManager.activeItem))) {
122
- keyManager.setFirstItemActive();
123
- }
124
- // Aguarde as alterações na largura do painel
125
- setTimeout(() => {
126
- this.updateInputWidth();
127
- });
128
- }
129
- // Atualize nossa referência
130
- previousFirstOption = currentFirstOption;
131
- });
132
- }));
133
- }))
134
- .pipe(takeUntil(this._onDestroy))
135
- .subscribe();
136
- // Adicione ou remova a classe css dependendo se deseja mostrar a mensagem sem entradas encontradas
137
- // obs: isso é hacky
138
- this._showNoEntriesFound$.pipe(takeUntil(this._onDestroy)).subscribe((showNoEntriesFound) => {
139
- // Definir nenhuma classe de entrada encontrada na mat-option
140
- if (this.matOption) {
141
- if (showNoEntriesFound) {
142
- this.matOption._getHostElement().classList.add('mat-select-search-no-entries-found');
143
- }
144
- else {
145
- this.matOption._getHostElement().classList.remove('mat-select-search-no-entries-found');
146
- }
147
- }
148
- });
149
- // Redimensione a largura de entrada quando a viewport for redimensionada,
150
- // ou seja, a largura do acionador pode ser redimensionada.
151
- this._viewportRuler.change()
152
- .pipe(takeUntil(this._onDestroy))
153
- .subscribe(() => {
154
- if (this.matSelect.panelOpen) {
155
- this.updateInputWidth();
156
- }
157
- });
158
- this.optionsList$.pipe(takeUntil(this._onDestroy)).subscribe(() => {
159
- // Atualizar visualização quando as opções disponíveis mudarem
160
- this.changeDetectorRef.markForCheck();
161
- });
162
- }
163
- ngOnChanges(changes) {
164
- if (this.searching) {
165
- this._formControl.disable();
166
- }
167
- else {
168
- this._formControl.enable();
169
- this._focus();
170
- }
171
- }
172
- ngOnDestroy() {
173
- this._onDestroy.next();
174
- this._onDestroy.complete();
175
- }
176
- registerOnChange(fn) {
177
- this._formControl.valueChanges.pipe(filter((value) => value !== this._lastExternalInputValue), tap(() => this._lastExternalInputValue = undefined), takeUntil(this._onDestroy)).subscribe(fn);
178
- }
179
- registerOnTouched(fn) {
180
- this.onTouched = fn;
181
- }
182
- writeValue(value) {
183
- this._lastExternalInputValue = value;
184
- this._formControl.setValue(value);
185
- this.changeDetectorRef.markForCheck();
186
- }
187
- /**
188
- * Manipula o evento de tecla pressionada com MatSelect.
189
- * Permite, por ex. selecionando com a tecla enter, navegando com as teclas de seta, etc.
190
- * @param event
191
- */
192
- _handleKeydown(event) {
193
- // Evite a propagação de todos os caracteres alfanuméricos para evitar problemas de seleção
194
- if ((event.key && event.key.length === 1) ||
195
- (event.keyCode >= A && event.keyCode <= Z) ||
196
- (event.keyCode >= ZERO && event.keyCode <= NINE) ||
197
- (event.keyCode === SPACE)
198
- || (this.preventHomeEndKeyPropagation && (event.keyCode === HOME || event.keyCode === END))) {
199
- event.stopPropagation();
200
- }
201
- if (this.matSelect.multiple && event.key && event.keyCode === ENTER) {
202
- // Recupere o foco após a seleção múltipla, para que possamos digitar ainda mais
203
- setTimeout(() => this._focus());
204
- }
205
- // Caso especial, se clicar em Escape, se a entrada estiver vazia, feche o menu suspenso, caso contrário, esvazie o campo de pesquisa
206
- if (this.enableClearOnEscapePressed === true && event.keyCode === ESCAPE && this.value) {
207
- this._reset(true);
208
- event.stopPropagation();
209
- }
210
- }
211
- /**
212
- * Manipula o evento de ativação de chave com MatSelect.
213
- * Permite, por ex. o anúncio do Descendente atualmente ativo por leitores de tela.
214
- */
215
- _handleKeyup(event) {
216
- if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {
217
- const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();
218
- const index = this._options.toArray().findIndex((item) => item.id === ariaActiveDescendantId);
219
- if (index !== -1) {
220
- this.unselectActiveDescendant();
221
- this.activeDescendant = this._options.toArray()[index]._getHostElement();
222
- this.activeDescendant.setAttribute('aria-selected', 'true');
223
- this.searchSelectInput.nativeElement.setAttribute('aria-activedescendant', ariaActiveDescendantId);
224
- }
225
- }
226
- }
227
- onBlur() {
228
- this.unselectActiveDescendant();
229
- this.onTouched();
230
- }
231
- /**
232
- * Focaliza o campo de entrada de pesquisa
233
- */
234
- _focus() {
235
- if (!this.searchSelectInput || !this.matSelect.panel) {
236
- return;
237
- }
238
- // salve e restaure o scrollTop do painel, pois será redefinido por focus ()
239
- // obs: isso é hacky
240
- const panel = this.matSelect.panel.nativeElement;
241
- const scrollTop = panel.scrollTop;
242
- // Seta o foco
243
- this.searchSelectInput.nativeElement.focus();
244
- panel.scrollTop = scrollTop;
245
- }
246
- /**
247
- * Redefine o valor de pesquisa atual
248
- * @param focus se deve focar após a redefinição
249
- */
250
- _reset(focus) {
251
- this._formControl.setValue('');
252
- if (focus) {
253
- this._focus();
254
- }
255
- }
256
- /**
257
- * Defina a largura do innerSelectSearch para ajustar até mesmo as barras de rolagem personalizadas
258
- * E apoiar todos os sistemas de operação
259
- */
260
- updateInputWidth() {
261
- if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {
262
- return;
263
- }
264
- let element = this.innerSelectSearch.nativeElement;
265
- let panelElement;
266
- while (element = element.parentElement) {
267
- if (element.classList.contains('mat-select-panel')) {
268
- panelElement = element;
269
- break;
270
- }
271
- }
272
- if (panelElement) {
273
- this.innerSelectSearch.nativeElement.style.width = panelElement.clientWidth + 'px';
274
- }
275
- }
276
- /**
277
- * Determine o deslocamento para o comprimento que pode ser causado pelo matOption opcional usado como uma entrada de pesquisa.
278
- */
279
- getOptionsLengthOffset() {
280
- if (this.matOption) {
281
- return 1;
282
- }
283
- else {
284
- return 0;
285
- }
286
- }
287
- unselectActiveDescendant() {
288
- if (this.activeDescendant) {
289
- this.activeDescendant.removeAttribute('aria-selected');
290
- }
291
- this.searchSelectInput.nativeElement.removeAttribute('aria-activedescendant');
292
- }
293
- };
294
- GIPIInputSearchComponent.ctorParameters = () => [
295
- { type: MatSelect, decorators: [{ type: Inject, args: [MatSelect,] }] },
296
- { type: ChangeDetectorRef },
297
- { type: ViewportRuler },
298
- { type: MatOption, decorators: [{ type: Optional }, { type: Inject, args: [MatOption,] }] },
299
- { type: MatFormField, decorators: [{ type: Optional }, { type: Inject, args: [MatFormField,] }] }
300
- ];
301
- __decorate([
302
- Input(),
303
- __metadata("design:type", String)
304
- ], GIPIInputSearchComponent.prototype, "placeholderLabel", void 0);
305
- __decorate([
306
- Input(),
307
- __metadata("design:type", Boolean)
308
- ], GIPIInputSearchComponent.prototype, "clearSearchInput", void 0);
309
- __decorate([
310
- Input(),
311
- __metadata("design:type", Boolean)
312
- ], GIPIInputSearchComponent.prototype, "searching", void 0);
313
- __decorate([
314
- Input(),
315
- __metadata("design:type", Boolean)
316
- ], GIPIInputSearchComponent.prototype, "disableInitialFocus", void 0);
317
- __decorate([
318
- Input(),
319
- __metadata("design:type", Boolean)
320
- ], GIPIInputSearchComponent.prototype, "enableClearOnEscapePressed", void 0);
321
- __decorate([
322
- Input(),
323
- __metadata("design:type", Boolean)
324
- ], GIPIInputSearchComponent.prototype, "preventHomeEndKeyPropagation", void 0);
325
- __decorate([
326
- Input(),
327
- __metadata("design:type", Boolean)
328
- ], GIPIInputSearchComponent.prototype, "disableScrollToActiveOnOptionsChanged", void 0);
329
- __decorate([
330
- Input(),
331
- __metadata("design:type", Boolean)
332
- ], GIPIInputSearchComponent.prototype, "hideClearSearchButton", void 0);
333
- __decorate([
334
- ViewChild('searchSelectInput', { read: ElementRef, static: true }),
335
- __metadata("design:type", ElementRef)
336
- ], GIPIInputSearchComponent.prototype, "searchSelectInput", void 0);
337
- __decorate([
338
- ViewChild('innerSelectSearch', { read: ElementRef, static: true }),
339
- __metadata("design:type", ElementRef)
340
- ], GIPIInputSearchComponent.prototype, "innerSelectSearch", void 0);
341
- __decorate([
342
- HostBinding('class.mat-select-search-inside-mat-option'),
343
- __metadata("design:type", Boolean),
344
- __metadata("design:paramtypes", [])
345
- ], GIPIInputSearchComponent.prototype, "isInsideMatOption", null);
346
- GIPIInputSearchComponent = GIPIInputSearchComponent_1 = __decorate([
347
- Component({
348
- selector: `gipi-input-search`,
349
- exportAs: 'gipiInputSearch',
350
- template: "<!-- Espa\u00E7o reservado para ajustar o deslocamento vertical dos elementos mat-option -->\n<input matInput\n class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: o mat-datepicker-content mat-tab-header \u00E9 necess\u00E1rio para herdar as cores do tema do material, consulte PR n\u00BA 22 -->\n<div #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\">\n\n <input class=\"mat-select-search-input mat-input-element\"\n aria-label=\"Pesquisa suspensa\"\n autocomplete=\"off\"\n type=\"text\"\n #searchSelectInput\n [placeholder]=\"placeholderLabel\"\n [formControl]=\"_formControl\"\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\">\n\n <mat-spinner *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\">\n </mat-spinner>\n\n <button *ngIf=\"!hideClearSearchButton && value && !searching\"\n class=\"mat-select-search-clear\"\n aria-label=\"Limpar\"\n mat-icon-button\n (click)=\"_reset(true)\">\n <mat-icon> close </mat-icon>\n </button>\n\n <mat-divider> </mat-divider>\n</div>\n\n<div *ngIf=\"(_showNoEntriesFound$ | async) && !searching\"\n class=\"mat-select-search-no-entries-found\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n Nenhum registro foi encontrado\n</div>",
351
- providers: [
352
- {
353
- provide: NG_VALUE_ACCESSOR,
354
- useExisting: forwardRef(() => GIPIInputSearchComponent_1),
355
- multi: true
356
- }
357
- ],
358
- host: {
359
- 'class': 'gipi-input-search',
360
- },
361
- changeDetection: ChangeDetectionStrategy.OnPush,
362
- styles: ["@charset \"UTF-8\";.mat-select-search-hidden{visibility:hidden}.mat-select-search-inner{position:absolute;top:0;left:0;width:100%;height:3em;border-bottom:none!important;z-index:100;font-size:inherit;box-shadow:none;border-radius:4px 4px 0 0}.mat-select-search-inner.mat-select-search-inner-multiple{width:100%}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all{display:flex;align-items:center}.mat-select-search-inner .mat-input-element{flex-basis:auto}.mat-select-search-inner .mat-input-element:-ms-input-placeholder{-ms-user-select:text}::ng-deep .mat-select-search-panel{transform:none!important;overflow-x:hidden}.mat-select-search-input{padding:16px 44px 16px 16px;box-sizing:border-box;width:100%}:host-context([dir=rtl]) .mat-select-search-input{padding-right:16px;padding-left:44px}.mat-select-search-no-entries-found{padding:16px}.mat-select-search-clear{position:absolute;right:4px;top:0}:host-context([dir=rtl]) .mat-select-search-clear{right:auto;left:4px}.mat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) .mat-select-search-spinner{right:auto;left:16px}:host.mat-select-search-inside-mat-option .mat-select-search-input{padding-top:0;padding-bottom:0;height:3em;line-height:3em}:host.mat-select-search-inside-mat-option .mat-select-search-clear{top:0}::ng-deep .mat-option[aria-disabled=true].contains-mat-select-search{position:-webkit-sticky;position:sticky;top:0;padding:0;left:0;z-index:1;border-bottom:1px solid rgba(0,0,0,.12)}::ng-deep .mat-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0}::ng-deep .mat-option[aria-disabled=true].contains-mat-select-search.mat-select-search-no-entries-found{height:6em}.mat-select-search-loading{height:3em;width:100%;padding:0;display:flex;flex-direction:row;align-items:center;justify-content:center}.dot-pulse{position:relative;left:-9999px;width:5px;height:5px;border-radius:50%;background-color:#e0313e;color:#e0313e;box-shadow:9999px 0 0 -5px;-webkit-animation:1.5s linear .25s infinite dot-pulse;animation:1.5s linear .25s infinite dot-pulse}.dot-pulse::after,.dot-pulse::before{content:\"\";display:inline-block;position:absolute;top:0;width:5px;height:5px;border-radius:50%;background-color:#e0313e;color:#e0313e}.dot-pulse::before{box-shadow:9984px 0 0 -5px;-webkit-animation:1.5s linear infinite dot-pulse-before;animation:1.5s linear infinite dot-pulse-before}.dot-pulse::after{box-shadow:10014px 0 0 -5px;-webkit-animation:1.5s linear .5s infinite dot-pulse-after;animation:1.5s linear .5s infinite dot-pulse-after}@-webkit-keyframes dot-pulse-before{0%,100%,60%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}}@keyframes dot-pulse-before{0%,100%,60%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}}@-webkit-keyframes dot-pulse{0%,100%,60%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}}@keyframes dot-pulse{0%,100%,60%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}}@-webkit-keyframes dot-pulse-after{0%,100%,60%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}}@keyframes dot-pulse-after{0%,100%,60%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}}"]
363
- }),
364
- __param(0, Inject(MatSelect)),
365
- __param(3, Optional()), __param(3, Inject(MatOption)),
366
- __param(4, Optional()), __param(4, Inject(MatFormField)),
367
- __metadata("design:paramtypes", [MatSelect,
368
- ChangeDetectorRef,
369
- ViewportRuler,
370
- MatOption,
371
- MatFormField])
372
- ], GIPIInputSearchComponent);
373
- export { GIPIInputSearchComponent };
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0LXBhZ2VkL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2TixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQW1CaEcsSUFBYSx3QkFB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QUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFvQyxFQUFFLENBQUMsMEJBQXdCLENBQUM7Z0JBQ3hGLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjtRQUNELElBQUksRUFBRTtZQUNGLE9BQU8sRUFBRSxtQkFBbUI7U0FDL0I7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDbEQsQ0FBQztJQXVGTyxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUdqQixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDN0IsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO3FDQUpJLFNBQVM7UUFDcEIsaUJBQWlCO1FBQ25CLGFBQWE7UUFDWSxTQUFTO1FBQ0gsWUFBWTtHQTFGOUQsd0JBQXdCLENBZ1hwQztTQWhYWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEEsIERPV05fQVJST1csIEVORCwgRU5URVIsIEVTQ0FQRSwgSE9NRSwgTklORSwgU1BBQ0UsIFVQX0FSUk9XLCBaLCBaRVJPIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRPcHRpb24sIE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktaW5wdXQtc2VhcmNoYCxcbiAgICBleHBvcnRBczogJ2dpcGlJbnB1dFNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCk6IHR5cGVvZiBHSVBJSW5wdXRTZWFyY2hDb21wb25lbnQgPT4gR0lQSUlucHV0U2VhcmNoQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktaW5wdXQtc2VhcmNoJyxcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEdJUElJbnB1dFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIC8vIFZhbG9yIGRlIHBlc3F1aXNhIGF0dWFsXG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9sYXN0RXh0ZXJuYWxJbnB1dFZhbHVlOiBzdHJpbmc7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSDDoHMgb3DDp8O1ZXMgTWF0U2VsZWN0XG4gICAgcHVibGljIF9vcHRpb25zJDogQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxNYXRPcHRpb24+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnlMaXN0PE1hdE9wdGlvbj4+KG51bGwpO1xuICAgIHB1YmxpYyBzZXQgX29wdGlvbnMoX29wdGlvbnM6IFF1ZXJ5TGlzdDxNYXRPcHRpb24+KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMkLm5leHQoX29wdGlvbnMpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IF9vcHRpb25zKCk6IFF1ZXJ5TGlzdDxNYXRPcHRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcHRpb25zTGlzdCQ6IE9ic2VydmFibGU8TWF0T3B0aW9uW10+ID0gdGhpcy5fb3B0aW9ucyQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChfb3B0aW9uczogUXVlcnlMaXN0PE1hdE9wdGlvbj4pOiBPYnNlcnZhYmxlPGFueT4gPT4gX29wdGlvbnNcbiAgICAgICAgICAgID8gX29wdGlvbnMuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgob3B0aW9uczogYW55KTogYW55ID0+IG9wdGlvbnMudG9BcnJheSgpKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGg8TWF0T3B0aW9uW10+KF9vcHRpb25zLnRvQXJyYXkoKSksKVxuICAgICAgICAgICAgOiBvZihudWxsKVxuICAgICAgICApXG4gICAgKTtcblxuICAgIHByaXZhdGUgb3B0aW9uc0xlbmd0aCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMub3B0aW9uc0xpc3QkLnBpcGUoXG4gICAgICAgIG1hcCgob3B0aW9uczogTWF0T3B0aW9uW10pOiBudW1iZXIgPT4gb3B0aW9ucyA/IG9wdGlvbnMubGVuZ3RoIDogMClcbiAgICApO1xuXG4gICAgcHVibGljIF9mb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLy8gU2UgZGV2ZSBtb3N0cmFyIGEgbWVuc2FnZW0gc2VtIGVudHJhZGFzIGVuY29udHJhZGFzXG4gICAgcHVibGljIF9zaG93Tm9FbnRyaWVzRm91bmQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlQ2hhbmdlcyxcbiAgICAgICAgdGhpcy5vcHRpb25zTGVuZ3RoJFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3ZhbHVlLCBvcHRpb25zTGVuZ3RoXTogW2FueSwgbnVtYmVyXSk6IGJvb2xlYW4gPT4gdmFsdWUgJiYgb3B0aW9uc0xlbmd0aCA9PT0gdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCkpXG4gICAgKTtcblxuICAgIC8vIFN1YmplY3QgZW1pdGlkbyBxdWFuZG8gbyBjb21wb25lbnRlIGZvaSBkZXN0cnXDrWRvXG4gICAgcHJpdmF0ZSBfb25EZXN0cm95OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8vIFJlZmVyw6puY2lhIGFvIGRlc2NlbmRlbnRlIGF0aXZvIHBhcmEgc3Vwb3J0ZSBBUklBLlxuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlckxhYmVsOiBzdHJpbmcgPSAnUGVzcXVpc2FyJztcblxuICAgIEBJbnB1dCgpIGNsZWFyU2VhcmNoSW5wdXQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLy8gU2UgZGV2ZSBtb3N0cmFyIG8gaW5kaWNhZG9yIGRlIHBlc3F1aXNhIGVtIGFuZGFtZW50b1xuICAgIEBJbnB1dCgpIHNlYXJjaGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGVzYXRpdmEgbyBmb2NvIGluaWNpYWwgZG8gY2FtcG8gZGUgZW50cmFkYVxuICAgIEBJbnB1dCgpIGRpc2FibGVJbml0aWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEF0aXZhciBsaW1wYXIgaW5wdXQgYW8gcHJlc3Npb25hciBlc2NhcGVcbiAgICBASW5wdXQoKSBlbmFibGVDbGVhck9uRXNjYXBlUHJlc3NlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW1wZWRlIHF1ZSBhIGNoYXZlIGhvbWUvZW5kIHNlamEgcHJvcGFnYWRhIHBhcmEgbWF0LXNlbGVjdCxcbiAgICAgKiBwZXJtaXRpbmRvIG1vdmVyIG8gY3Vyc29yIGRlbnRybyBkYSBlbnRyYWRhIGRlIHBlc3F1aXNhIGVtIHZleiBkZSBuYXZlZ2FyIHBlbGFzIG9ww6fDtWVzXG4gICAgICovXG4gICAgQElucHV0KCkgcHJldmVudEhvbWVFbmRLZXlQcm9wYWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGVzYXRpdmEgYSByb2xhZ2VtIHBhcmEgYXMgb3DDp8O1ZXMgYXRpdmFzIHF1YW5kbyBhIGxpc3RhIGRlIG9ww6fDtWVzIMOpIGFsdGVyYWRhLiDDmnRpbCBwYXJhIHBlc3F1aXNhIGRvIGxhZG8gZG8gc2Vydmlkb3JcbiAgICBASW5wdXQoKSBkaXNhYmxlU2Nyb2xsVG9BY3RpdmVPbk9wdGlvbnNDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBNb3N0cmFyL29jdWx0YXIgbyBib3TDo28gbGltcGFyIHBlc3F1aXNhIGRhIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBASW5wdXQoKSBoaWRlQ2xlYXJTZWFyY2hCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIFJlZmVyw6puY2lhIGFvIGNhbXBvIGRlIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBAVmlld0NoaWxkKCdzZWFyY2hTZWxlY3RJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHNlYXJjaFNlbGVjdElucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgYW8gY2FtcG8gZGUgZW50cmFkYSBkZSBwZXNxdWlzYVxuICAgIEBWaWV3Q2hpbGQoJ2lubmVyU2VsZWN0U2VhcmNoJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaW5uZXJTZWxlY3RTZWFyY2g6IEVsZW1lbnRSZWY7XG5cbiAgICAvLyBBZGljaW9uYSBhIGNsYXNzZSBtYXQtc2VsZWN0LXNlYXJjaC1pbnNpZGUtbWF0LW9wdGlvbiBzZSBvIGl0c3MtaW5wdXQtc2VhcmNoIGVzdGl2ZXJcbiAgICAvLyBkZW50cm8gZG8gbWF0LW9wdGlvblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1zZWFyY2gtaW5zaWRlLW1hdC1vcHRpb24nKVxuICAgIGdldCBpc0luc2lkZU1hdE9wdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tYXRPcHRpb247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTWF0U2VsZWN0KSBwdWJsaWMgbWF0U2VsZWN0OiBNYXRTZWxlY3QsXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTWF0T3B0aW9uKSBwdWJsaWMgbWF0T3B0aW9uOiBNYXRPcHRpb24gPSBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1hdEZvcm1GaWVsZCkgcHVibGljIG1hdEZvcm1GaWVsZDogTWF0Rm9ybUZpZWxkID0gbnVsbCxcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIERlZmluaXIgY2xhc3NlIGRlIG9ww6fDo28gbWF0IHBlcnNvbmFsaXphZGEgc2UgbyBjb21wb25lbnRlIGZvaSBjb2xvY2FkbyBkZW50cm8gZGUgdW1hIG9ww6fDo28gbWF0XG4gICAgICAgIGlmICh0aGlzLm1hdE9wdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnY29udGFpbnMtbWF0LXNlbGVjdC1zZWFyY2gnKTtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignPGdpcGktc2VsZWN0LXNlYXJjaD4gZGV2ZSBzZXIgY29sb2NhZG8gZGVudHJvIGRlIHVtIGVsZW1lbnRvIDxtYXQtb3B0aW9uPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUXVhbmRvIG8gcGFpbmVsIHN1c3BlbnNvIGRlIHNlbGXDp8OjbyDDqSBhYmVydG8gb3UgZmVjaGFkb1xuICAgICAgICB0aGlzLm1hdFNlbGVjdC5vcGVuZWRDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlbGF5KDEpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEZvY2FyIG8gY2FtcG8gZGUgcGVzcXVpc2EgYW8gYWJyaXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVJbml0aWFsRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBMaW1ww6EtbG8gYW8gZmVjaGFyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWFyU2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBEZWZpbmlyIG8gcHJpbWVpcm8gaXRlbSBhdGl2byBhcMOzcyBhcyBvcMOnw7VlcyBhbHRlcmFkYXNcbiAgICAgICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Lm9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVmFyacOhdmVsIGRlIGZlY2hhbWVudG8gcGFyYSByYXN0cmVhciBhIHByaW1laXJhIG9ww6fDo28gbWFpcyByZWNlbnRlLlxuICAgICAgICAgICAgICAgICAgICAvLyBQYXJhIGV2aXRhciBxdWUgYSBsaXN0YSByb2xlIHBhcmEgbyB0b3BvIHF1YW5kbyBhcyBvcMOnw7VlcyBzw6NvIGFkaWNpb25hZGFzIGFvIGZpbmFsIGRhIGxpc3RhXG4gICAgICAgICAgICAgICAgICAgIC8vIChwb3IgZXhlbXBsbzogcm9sYWdlbSBpbmZpbml0YSksIGNvbXBhcmFtb3MgYXBlbmFzIGFzIGFsdGVyYcOnw7VlcyBuYXMgcHJpbWVpcmFzIG9ww6fDtWVzIHBhcmFcbiAgICAgICAgICAgICAgICAgICAgLy8gZGV0ZXJtaW5hciBzZSBkZXZlbW9zIGRlZmluaXIgbyBwcmltZWlybyBpdGVtIGNvbW8gYXRpdm8uIElzc28gZXZpdGEgYSByb2xhZ2VtIGRlc25lY2Vzc8OhcmlhXG4gICAgICAgICAgICAgICAgICAgIC8vIHBhcmEgbyB0b3BvIGRhIGxpc3RhIHF1YW5kbyBhcyBvcMOnw7VlcyBzw6NvIGFuZXhhZGFzLCBtYXMgcGVybWl0ZSBxdWUgbyBwcmltZWlybyBpdGVtIGRhIGxpc3RhXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlamEgZGVmaW5pZG8gY29tbyBhdGl2byBwb3IgcGFkcsOjbyBxdWFuZG8gbsOjbyBow6Egc2VsZcOnw6NvIGF0aXZhLlxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNGaXJzdE9wdGlvbjogTWF0T3B0aW9uID0gdGhpcy5fb3B0aW9ucy50b0FycmF5KClbdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCldO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV2aXRhciBvIGVycm8gXCJleHByZXNzaW9uIGhhcyBiZWVuIGNoYW5nZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnRlciBhIFF1ZXJ5TGlzdCBlbSB1bWEgbWF0cml6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBNYXRPcHRpb25bXSA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPIHZlcmRhZGVpcm8gcHJpbWVpcm8gaXRlbSDDqSBjb21wZW5zYWRvIHBvciAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rmlyc3RPcHRpb246IE1hdE9wdGlvbiA9IG9wdGlvbnNbdGhpcy5nZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlNYW5hZ2VyOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxNYXRPcHRpb24+ID0gdGhpcy5tYXRTZWxlY3QuX2tleU1hbmFnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5TWFuYWdlciAmJiB0aGlzLm1hdFNlbGVjdC5wYW5lbE9wZW4pIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERlZmluaXIgcHJpbWVpcm8gaXRlbSBhdGl2byBlIGxhcmd1cmEgZGUgZW50cmFkYVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmVyaWZpcXVlIHNlIGEgcHJpbWVpcmEgb3DDp8OjbyBuZXNzYXMgYWx0ZXJhw6fDtWVzIMOpIGRpZmVyZW50ZSBkYSBhbnRlcmlvci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE9wdGlvbklzQ2hhbmdlZDogYm9vbGVhbiA9ICF0aGlzLm1hdFNlbGVjdC5jb21wYXJlV2l0aChwcmV2aW91c0ZpcnN0T3B0aW9uLCBjdXJyZW50Rmlyc3RPcHRpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ0FTTzogQSBwcmltZWlyYSBvcMOnw6NvIMOpIGRpZmVyZW50ZSBhZ29yYS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIGRldmVtb3MgZGVmaW5pLWxvIGNvbW8gYXRpdm8gZSByb2xhciBwYXJhIG8gdG9wby5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RPcHRpb25Jc0NoYW5nZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIWtleU1hbmFnZXIuYWN0aXZlSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhb3B0aW9ucy5maW5kKChvcHRpb246IE1hdE9wdGlvbik6IGJvb2xlYW4gPT4gdGhpcy5tYXRTZWxlY3QuY29tcGFyZVdpdGgob3B0aW9uLCBrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFndWFyZGUgYXMgYWx0ZXJhw6fDtWVzIG5hIGxhcmd1cmEgZG8gcGFpbmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHVhbGl6ZSBub3NzYSByZWZlcsOqbmNpYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNGaXJzdE9wdGlvbiA9IGN1cnJlbnRGaXJzdE9wdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgIC8vIEFkaWNpb25lIG91IHJlbW92YSBhIGNsYXNzZSBjc3MgZGVwZW5kZW5kbyBzZSBkZXNlamEgbW9zdHJhciBhIG1lbnNhZ2VtIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgICAgICAvLyBvYnM6IGlzc28gw6kgaGFja3lcbiAgICAgICAgdGhpcy5fc2hvd05vRW50cmllc0ZvdW5kJC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKHNob3dOb0VudHJpZXNGb3VuZDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gRGVmaW5pciBuZW5odW1hIGNsYXNzZSBkZSBlbnRyYWRhIGVuY29udHJhZGEgbmEgbWF0LW9wdGlvblxuICAgICAgICAgICAgaWYgKHRoaXMubWF0T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNob3dOb0VudHJpZXNGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdtYXQtc2VsZWN0LXNlYXJjaC1uby1lbnRyaWVzLWZvdW5kJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnbWF0LXNlbGVjdC1zZWFyY2gtbm8tZW50cmllcy1mb3VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVkaW1lbnNpb25lIGEgbGFyZ3VyYSBkZSBlbnRyYWRhIHF1YW5kbyBhIHZpZXdwb3J0IGZvciByZWRpbWVuc2lvbmFkYSxcbiAgICAgICAgLy8gb3Ugc2VqYSwgYSBsYXJndXJhIGRvIGFjaW9uYWRvciBwb2RlIHNlciByZWRpbWVuc2lvbmFkYS5cbiAgICAgICAgdGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXRTZWxlY3QucGFuZWxPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3B0aW9uc0xpc3QkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KVxuICAgICAgICApLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAvLyBBdHVhbGl6YXIgdmlzdWFsaXphw6fDo28gcXVhbmRvIGFzIG9ww6fDtWVzIGRpc3BvbsOtdmVpcyBtdWRhcmVtXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGluZykge1xuICAgICAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLl9mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoXzogYW55KTogdm9pZCA9PiB7IH07XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4gdmFsdWUgIT09IHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUpLFxuICAgICAgICAgICAgdGFwKCgpOiBhbnkgPT4gdGhpcy5fbGFzdEV4dGVybmFsSW5wdXRWYWx1ZSA9IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KVxuICAgICAgICApLnN1YnNjcmliZShmbik7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbmlwdWxhIG8gZXZlbnRvIGRlIHRlY2xhIHByZXNzaW9uYWRhIGNvbSBNYXRTZWxlY3QuXG4gICAgICogUGVybWl0ZSwgcG9yIGV4LiBzZWxlY2lvbmFuZG8gY29tIGEgdGVjbGEgZW50ZXIsIG5hdmVnYW5kbyBjb20gYXMgdGVjbGFzIGRlIHNldGEsIGV0Yy5cbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBFdml0ZSBhIHByb3BhZ2HDp8OjbyBkZSB0b2RvcyBvcyBjYXJhY3RlcmVzIGFsZmFudW3DqXJpY29zIHBhcmEgZXZpdGFyIHByb2JsZW1hcyBkZSBzZWxlw6fDo29cbiAgICAgICAgaWYgKChldmVudC5rZXkgJiYgZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkgfHxcbiAgICAgICAgICAgIChldmVudC5rZXlDb2RlID49IEEgJiYgZXZlbnQua2V5Q29kZSA8PSBaKSB8fFxuICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPj0gWkVSTyAmJiBldmVudC5rZXlDb2RlIDw9IE5JTkUpIHx8XG4gICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA9PT0gU1BBQ0UpXG4gICAgICAgICAgICB8fCAodGhpcy5wcmV2ZW50SG9tZUVuZEtleVByb3BhZ2F0aW9uICYmIChldmVudC5rZXlDb2RlID09PSBIT01FIHx8IGV2ZW50LmtleUNvZGUgPT09IEVORCkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tYXRTZWxlY3QubXVsdGlwbGUgJiYgZXZlbnQua2V5ICYmIGV2ZW50LmtleUNvZGUgPT09IEVOVEVSKSB7XG4gICAgICAgICAgICAvLyBSZWN1cGVyZSBvIGZvY28gYXDDs3MgYSBzZWxlw6fDo28gbcO6bHRpcGxhLCBwYXJhIHF1ZSBwb3NzYW1vcyBkaWdpdGFyIGFpbmRhIG1haXNcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4gdGhpcy5fZm9jdXMoKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDYXNvIGVzcGVjaWFsLCBzZSBjbGljYXIgZW0gRXNjYXBlLCBzZSBhIGVudHJhZGEgZXN0aXZlciB2YXppYSwgZmVjaGUgbyBtZW51IHN1c3BlbnNvLCBjYXNvIGNvbnRyw6FyaW8sIGVzdmF6aWUgbyBjYW1wbyBkZSBwZXNxdWlzYVxuICAgICAgICBpZiAodGhpcy5lbmFibGVDbGVhck9uRXNjYXBlUHJlc3NlZCA9PT0gdHJ1ZSAmJiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcmVzZXQodHJ1ZSk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbmlwdWxhIG8gZXZlbnRvIGRlIGF0aXZhw6fDo28gZGUgY2hhdmUgY29tIE1hdFNlbGVjdC5cbiAgICAgKiBQZXJtaXRlLCBwb3IgZXguIG8gYW7Dum5jaW8gZG8gRGVzY2VuZGVudGUgYXR1YWxtZW50ZSBhdGl2byBwb3IgbGVpdG9yZXMgZGUgdGVsYS5cbiAgICAgKi9cbiAgICBfaGFuZGxlS2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFVQX0FSUk9XIHx8IGV2ZW50LmtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyaWFBY3RpdmVEZXNjZW5kYW50SWQ6IHN0cmluZyA9IHRoaXMubWF0U2VsZWN0Ll9nZXRBcmlhQWN0aXZlRGVzY2VuZGFudCgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpLmZpbmRJbmRleCgoaXRlbTogTWF0T3B0aW9uKTogYm9vbGVhbiA9PiBpdGVtLmlkID09PSBhcmlhQWN0aXZlRGVzY2VuZGFudElkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuc2VsZWN0QWN0aXZlRGVzY2VuZGFudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudCA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpW2luZGV4XS5fZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFNlbGVjdElucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBhcmlhQWN0aXZlRGVzY2VuZGFudElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnNlbGVjdEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2NhbGl6YSBvIGNhbXBvIGRlIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICAgKi9cbiAgICBwdWJsaWMgX2ZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoU2VsZWN0SW5wdXQgfHwgIXRoaXMubWF0U2VsZWN0LnBhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2FsdmUgZSByZXN0YXVyZSBvIHNjcm9sbFRvcCBkbyBwYWluZWwsIHBvaXMgc2Vyw6EgcmVkZWZpbmlkbyBwb3IgZm9jdXMgKClcbiAgICAgICAgLy8gb2JzOiBpc3NvIMOpIGhhY2t5XG4gICAgICAgIGNvbnN0IHBhbmVsOiBhbnkgPSB0aGlzLm1hdFNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzY3JvbGxUb3A6IGFueSA9IHBhbmVsLnNjcm9sbFRvcDtcblxuICAgICAgICAvLyBTZXRhIG8gZm9jb1xuICAgICAgICB0aGlzLnNlYXJjaFNlbGVjdElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICBwYW5lbC5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVkZWZpbmUgbyB2YWxvciBkZSBwZXNxdWlzYSBhdHVhbFxuICAgICAqIEBwYXJhbSBmb2N1cyBzZSBkZXZlIGZvY2FyIGFww7NzIGEgcmVkZWZpbmnDp8Ojb1xuICAgICAqL1xuICAgIHB1YmxpYyBfcmVzZXQoZm9jdXM/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgICAgaWYgKGZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIERlZmluYSBhIGxhcmd1cmEgZG8gaW5uZXJTZWxlY3RTZWFyY2ggcGFyYSBhanVzdGFyIGF0w6kgbWVzbW8gYXMgYmFycmFzIGRlIHJvbGFnZW0gcGVyc29uYWxpemFkYXNcbiAgICAgKiAgRSBhcG9pYXIgdG9kb3Mgb3Mgc2lzdGVtYXMgZGUgb3BlcmHDp8Ojb1xuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVJbnB1dFdpZHRoKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5uZXJTZWxlY3RTZWFyY2ggfHwgIXRoaXMuaW5uZXJTZWxlY3RTZWFyY2gubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuaW5uZXJTZWxlY3RTZWFyY2gubmF0aXZlRWxlbWVudDtcbiAgICAgICAgbGV0IHBhbmVsRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgICAgIHdoaWxlIChlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1zZWxlY3QtcGFuZWwnKSkge1xuICAgICAgICAgICAgICAgIHBhbmVsRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhbmVsRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclNlbGVjdFNlYXJjaC5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gcGFuZWxFbGVtZW50LmNsaWVudFdpZHRoICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSBvIGRlc2xvY2FtZW50byBwYXJhIG8gY29tcHJpbWVudG8gcXVlIHBvZGUgc2VyIGNhdXNhZG8gcGVsbyBtYXRPcHRpb24gb3BjaW9uYWwgdXNhZG8gY29tbyB1bWEgZW50cmFkYSBkZSBwZXNxdWlzYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldE9wdGlvbnNMZW5ndGhPZmZzZXQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMubWF0T3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnNlbGVjdEFjdGl2ZURlc2NlbmRhbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlYXJjaFNlbGVjdElucHV0Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgICB9XG5cbn1cbiJdfQ==