@tekus/design-system 4.0.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/assets/img/avatar.png +0 -0
  2. package/assets/img/pexels-jodaarba-4250980.jpg +0 -0
  3. package/assets/img/shadown.png +0 -0
  4. package/assets/img/tk-logo-compound-dark.svg +9 -0
  5. package/assets/img/tk-logo-minimal-dark.svg +16 -0
  6. package/assets/img/tk-logo-minimal-light.svg +16 -0
  7. package/assets/img/tk-logo-normal-dark.svg +12 -0
  8. package/assets/img/tk-logo-normal-light.svg +12 -0
  9. package/assets/styles/_index.scss +10 -0
  10. package/assets/styles/docs/_branding.doc.scss +69 -0
  11. package/assets/styles/docs/_grids.doc.scss +13 -0
  12. package/assets/styles/docs/_icons.doc.scss +102 -0
  13. package/assets/styles/docs/_illustrations.doc.scss +86 -0
  14. package/assets/styles/docs/_paginador.doc.scss +16 -0
  15. package/assets/styles/docs/_table-of-content.scss +22 -0
  16. package/components/{tk-typography → branding}/index.d.ts +1 -1
  17. package/components/branding/public-api.d.ts +1 -0
  18. package/components/branding/src/branding-register-logo.d.ts +22 -0
  19. package/components/branding/src/branding.component.d.ts +54 -0
  20. package/components/{tk-search-bar → button}/index.d.ts +1 -1
  21. package/components/button/public-api.d.ts +1 -0
  22. package/components/button/src/button.component.d.ts +99 -0
  23. package/components/{tk-dropdown-list → dropdown-list}/index.d.ts +1 -1
  24. package/components/dropdown-list/public-api.d.ts +1 -0
  25. package/components/{tk-dropdown-list/tk-dropdown-list.component.d.ts → dropdown-list/src/dropdown-list.component.d.ts} +7 -7
  26. package/components/fallback-view/index.d.ts +5 -0
  27. package/components/fallback-view/public-api.d.ts +1 -0
  28. package/components/fallback-view/src/fallback-view.component.d.ts +149 -0
  29. package/components/forms/form-autocomplete-field/index.d.ts +5 -0
  30. package/components/forms/form-autocomplete-field/public-api.d.ts +1 -0
  31. package/components/forms/{tk-form-autocomplete-field/tk-form-autocomplete-field.component.d.ts → form-autocomplete-field/src/form-autocomplete-field.component.d.ts} +16 -6
  32. package/components/forms/form-chips-autocomplete-field/index.d.ts +5 -0
  33. package/components/forms/form-chips-autocomplete-field/public-api.d.ts +1 -0
  34. package/components/forms/{tk-form-chips-autocomplete-field/tk-form-chips-autocomplete-field.component.d.ts → form-chips-autocomplete-field/src/form-chips-autocomplete-field.component.d.ts} +18 -8
  35. package/components/forms/form-input-field/index.d.ts +5 -0
  36. package/components/forms/form-input-field/public-api.d.ts +1 -0
  37. package/components/forms/{tk-form-input-field/tk-form-input-field.component.d.ts → form-input-field/src/form-input-field.component.d.ts} +4 -4
  38. package/components/forms/public-api.d.ts +3 -3
  39. package/components/grid-container/index.d.ts +5 -0
  40. package/components/grid-container/public-api.d.ts +1 -0
  41. package/components/grid-container/src/grid-container.component.d.ts +121 -0
  42. package/components/icon/core/icon-catalog.d.ts +76 -0
  43. package/components/icon/core/icons/ads.icons.d.ts +2 -0
  44. package/components/icon/core/icons/angle.icons.d.ts +2 -0
  45. package/components/icon/core/icons/arrow.icons.d.ts +2 -0
  46. package/components/icon/core/icons/bars.icons.d.ts +2 -0
  47. package/components/icon/core/icons/bolt.icons.d.ts +2 -0
  48. package/components/icon/core/icons/book.icons.d.ts +2 -0
  49. package/components/icon/core/icons/calendar.icons.d.ts +2 -0
  50. package/components/icon/core/icons/camera.icons.d.ts +2 -0
  51. package/components/icon/core/icons/chart.icons.d.ts +2 -0
  52. package/components/icon/core/icons/check.icons.d.ts +2 -0
  53. package/components/icon/core/icons/chevron.icons.d.ts +2 -0
  54. package/components/icon/core/icons/circle.icons.d.ts +2 -0
  55. package/components/icon/core/icons/clock.icons.d.ts +2 -0
  56. package/components/icon/core/icons/clone.icons.d.ts +2 -0
  57. package/components/icon/core/icons/download.icons.d.ts +2 -0
  58. package/components/icon/core/icons/ellipsis.icons.d.ts +2 -0
  59. package/components/icon/core/icons/eye.icons.d.ts +2 -0
  60. package/components/icon/core/icons/filter.icons.d.ts +2 -0
  61. package/components/icon/core/icons/folders.icons.d.ts +2 -0
  62. package/components/icon/core/icons/gears.icons.d.ts +2 -0
  63. package/components/icon/core/icons/hand.icons.d.ts +2 -0
  64. package/components/icon/core/icons/language.icons.d.ts +2 -0
  65. package/components/icon/core/icons/layer.icons.d.ts +2 -0
  66. package/components/icon/core/icons/link.icons.d.ts +2 -0
  67. package/components/icon/core/icons/list.icons.d.ts +2 -0
  68. package/components/icon/core/icons/location.icons.d.ts +2 -0
  69. package/components/icon/core/icons/lock.icons.d.ts +2 -0
  70. package/components/icon/core/icons/magnifying-glass.icons.d.ts +2 -0
  71. package/components/icon/core/icons/media.icons.d.ts +2 -0
  72. package/components/icon/core/icons/megaphone.icons.d.ts +2 -0
  73. package/components/icon/core/icons/money.icons.d.ts +2 -0
  74. package/components/icon/core/icons/pen.icons.d.ts +2 -0
  75. package/components/icon/core/icons/pencil.icons.d.ts +2 -0
  76. package/components/icon/core/icons/plug.icons.d.ts +2 -0
  77. package/components/icon/core/icons/plus.icons.d.ts +2 -0
  78. package/components/icon/core/icons/qr-code.icons.d.ts +2 -0
  79. package/components/icon/core/icons/screwdriver-wrench.icons.d.ts +2 -0
  80. package/components/icon/core/icons/shuffle.icons.d.ts +2 -0
  81. package/components/icon/core/icons/square.icons.d.ts +2 -0
  82. package/components/icon/core/icons/tag.icons.d.ts +2 -0
  83. package/components/icon/core/icons/thumbs.icons.d.ts +2 -0
  84. package/components/icon/core/icons/trash.icons.d.ts +2 -0
  85. package/components/icon/core/icons/triangle.icons.d.ts +2 -0
  86. package/components/icon/core/icons/user.icons.d.ts +2 -0
  87. package/components/icon/core/icons/xmark.icons.d.ts +2 -0
  88. package/components/icon/core/svg-icons/ads-icon.svg.d.ts +2 -0
  89. package/components/icon/core/svg-icons/index.d.ts +1 -0
  90. package/components/icon/index.d.ts +5 -0
  91. package/components/icon/public-api.d.ts +2 -0
  92. package/components/icon/src/icon.component.d.ts +79 -0
  93. package/components/illustration/assets/illustrations/tk-catalogs.svg.d.ts +2 -0
  94. package/components/illustration/assets/illustrations/tk-categories.svg.d.ts +2 -0
  95. package/components/illustration/assets/illustrations/tk-confirmation-action.svg.d.ts +2 -0
  96. package/components/illustration/assets/illustrations/tk-create-an-account.svg.d.ts +2 -0
  97. package/components/illustration/assets/illustrations/tk-custom-design.svg.d.ts +2 -0
  98. package/components/illustration/assets/illustrations/tk-delete.svg.d.ts +2 -0
  99. package/components/illustration/assets/illustrations/tk-download-AKF.svg.d.ts +2 -0
  100. package/components/illustration/assets/illustrations/tk-error.svg.d.ts +2 -0
  101. package/components/illustration/assets/illustrations/tk-graphics.svg.d.ts +2 -0
  102. package/components/illustration/assets/illustrations/tk-items.svg.d.ts +2 -0
  103. package/components/illustration/assets/illustrations/tk-kiosk.svg.d.ts +2 -0
  104. package/components/illustration/assets/illustrations/tk-list.svg.d.ts +2 -0
  105. package/components/illustration/assets/illustrations/tk-locations.svg.d.ts +2 -0
  106. package/components/illustration/assets/illustrations/tk-login.svg.d.ts +2 -0
  107. package/components/illustration/assets/illustrations/tk-multimedia.svg.d.ts +2 -0
  108. package/components/illustration/assets/illustrations/tk-no-connection.svg.d.ts +2 -0
  109. package/components/illustration/assets/illustrations/tk-no-found.svg.d.ts +2 -0
  110. package/components/illustration/assets/illustrations/tk-order.svg.d.ts +2 -0
  111. package/components/illustration/assets/illustrations/tk-playlist.svg.d.ts +2 -0
  112. package/components/illustration/assets/illustrations/tk-screens.svg.d.ts +2 -0
  113. package/components/illustration/assets/illustrations/tk-success.svg.d.ts +2 -0
  114. package/components/illustration/assets/illustrations/tk-support.svg.d.ts +2 -0
  115. package/components/illustration/assets/illustrations/tk-technical-failure.svg.d.ts +2 -0
  116. package/components/illustration/assets/illustrations/tk-tip.svg.d.ts +2 -0
  117. package/components/illustration/assets/illustrations/tk-upload.svg.d.ts +2 -0
  118. package/components/illustration/assets/illustrations/tk-void.svg.d.ts +2 -0
  119. package/components/illustration/assets/illustrations/tk-warning.svg.d.ts +2 -0
  120. package/components/illustration/assets/illustrations/tk-welcome.svg.d.ts +2 -0
  121. package/components/illustration/assets/illustrations/tk-without-catalogs.svg.d.ts +2 -0
  122. package/components/illustration/illustrations.registry.d.ts +5 -0
  123. package/components/illustration/index.d.ts +5 -0
  124. package/components/illustration/public-api.d.ts +1 -0
  125. package/components/illustration/src/illustration.component.d.ts +117 -0
  126. package/components/search-bar/index.d.ts +5 -0
  127. package/components/search-bar/public-api.d.ts +1 -0
  128. package/components/{tk-search-bar/tk-search-bar.component.d.ts → search-bar/src/search-bar.component.d.ts} +3 -3
  129. package/components/typography/index.d.ts +5 -0
  130. package/components/typography/public-api.d.ts +1 -0
  131. package/components/typography/src/typography.component.d.ts +10 -0
  132. package/core/index.d.ts +5 -0
  133. package/core/public-api.d.ts +1 -0
  134. package/core/types/index.d.ts +5 -0
  135. package/core/types/public-api.d.ts +9 -0
  136. package/core/types/src/branding/branding.types.d.ts +15 -0
  137. package/core/types/src/branding/index.d.ts +1 -0
  138. package/core/types/src/breakpoints/breakpoints.d.ts +10 -0
  139. package/core/types/src/breakpoints/index.d.ts +1 -0
  140. package/core/types/src/grids/grid.enum.d.ts +18 -0
  141. package/core/types/src/grids/grid.model.d.ts +10 -0
  142. package/core/types/src/grids/grid.type.d.ts +40 -0
  143. package/core/types/src/grids/index.d.ts +3 -0
  144. package/core/types/src/illustration-config/illustration-config.model.d.ts +4 -0
  145. package/core/types/src/illustration-config/index.d.ts +1 -0
  146. package/core/types/src/option/index.d.ts +1 -0
  147. package/core/types/src/option/option.model.d.ts +8 -0
  148. package/core/types/src/theme/theme.provider.d.ts +1 -0
  149. package/core/types/src/theme/tk-preset.d.ts +1 -0
  150. package/core/types/src/typography-styles/index.d.ts +1 -0
  151. package/core/types/src/validator-with-message/index.d.ts +1 -0
  152. package/directives/gird-item/index.d.ts +5 -0
  153. package/directives/gird-item/public-api.d.ts +1 -0
  154. package/directives/gird-item/src/grid-item.directive.d.ts +42 -0
  155. package/fesm2022/tekus-design-system-components-branding.mjs +93 -0
  156. package/fesm2022/tekus-design-system-components-branding.mjs.map +1 -0
  157. package/fesm2022/tekus-design-system-components-button.mjs +129 -0
  158. package/fesm2022/tekus-design-system-components-button.mjs.map +1 -0
  159. package/fesm2022/tekus-design-system-components-dropdown-list.mjs +147 -0
  160. package/fesm2022/tekus-design-system-components-dropdown-list.mjs.map +1 -0
  161. package/fesm2022/tekus-design-system-components-fallback-view.mjs +187 -0
  162. package/fesm2022/tekus-design-system-components-fallback-view.mjs.map +1 -0
  163. package/fesm2022/tekus-design-system-components-forms-form-autocomplete-field.mjs +268 -0
  164. package/fesm2022/tekus-design-system-components-forms-form-autocomplete-field.mjs.map +1 -0
  165. package/fesm2022/{tekus-design-system-components-forms-tk-form-chips-autocomplete-field.mjs → tekus-design-system-components-forms-form-chips-autocomplete-field.mjs} +34 -15
  166. package/fesm2022/tekus-design-system-components-forms-form-chips-autocomplete-field.mjs.map +1 -0
  167. package/fesm2022/{tekus-design-system-components-forms-tk-form-input-field.mjs → tekus-design-system-components-forms-form-input-field.mjs} +8 -9
  168. package/fesm2022/tekus-design-system-components-forms-form-input-field.mjs.map +1 -0
  169. package/fesm2022/tekus-design-system-components-forms.mjs +257 -221
  170. package/fesm2022/tekus-design-system-components-forms.mjs.map +1 -1
  171. package/fesm2022/tekus-design-system-components-grid-container.mjs +193 -0
  172. package/fesm2022/tekus-design-system-components-grid-container.mjs.map +1 -0
  173. package/fesm2022/tekus-design-system-components-icon.mjs +1206 -0
  174. package/fesm2022/tekus-design-system-components-icon.mjs.map +1 -0
  175. package/fesm2022/tekus-design-system-components-illustration.mjs +3893 -0
  176. package/fesm2022/tekus-design-system-components-illustration.mjs.map +1 -0
  177. package/fesm2022/tekus-design-system-components-search-bar.mjs +56 -0
  178. package/fesm2022/tekus-design-system-components-search-bar.mjs.map +1 -0
  179. package/fesm2022/tekus-design-system-components-typography.mjs +36 -0
  180. package/fesm2022/tekus-design-system-components-typography.mjs.map +1 -0
  181. package/fesm2022/tekus-design-system-core-types.mjs +307 -0
  182. package/fesm2022/tekus-design-system-core-types.mjs.map +1 -0
  183. package/fesm2022/tekus-design-system-core.mjs +307 -0
  184. package/fesm2022/tekus-design-system-core.mjs.map +1 -0
  185. package/fesm2022/tekus-design-system-directives-gird-item.mjs +95 -0
  186. package/fesm2022/tekus-design-system-directives-gird-item.mjs.map +1 -0
  187. package/fesm2022/tekus-design-system-services-design-tokens.mjs +47 -0
  188. package/fesm2022/tekus-design-system-services-design-tokens.mjs.map +1 -0
  189. package/fesm2022/tekus-design-system-services-typography.mjs +3 -3
  190. package/fesm2022/tekus-design-system-services-typography.mjs.map +1 -1
  191. package/fesm2022/tekus-design-system-utils-sanitizer-utils.mjs +53 -0
  192. package/fesm2022/tekus-design-system-utils-sanitizer-utils.mjs.map +1 -0
  193. package/package.json +65 -39
  194. package/services/design-tokens/index.d.ts +5 -0
  195. package/services/design-tokens/public-api.d.ts +1 -0
  196. package/services/design-tokens/src/design-tokens.service.d.ts +10 -0
  197. package/services/typography/public-api.d.ts +1 -1
  198. package/services/typography/{typography.service.d.ts → src/typography.service.d.ts} +1 -1
  199. package/tokens/blur/_blur.scss +11 -0
  200. package/tokens/colors/_colors.scss +97 -0
  201. package/tokens/index.scss +6 -0
  202. package/tokens/shadow/_shadow.scss +10 -0
  203. package/tokens/shapes/_shapes.scss +9 -0
  204. package/tokens/spacing/_spacing.scss +25 -0
  205. package/tokens/typography/_typography.scss +6 -0
  206. package/tokens/typography/font-size/_font-size.scss +16 -0
  207. package/tokens/typography/font-weight/_font-weight.scss +14 -0
  208. package/tokens/typography/letter-spacing/_letter-spacing.scss +12 -0
  209. package/tokens/typography/line-height/_line-height.scss +16 -0
  210. package/tokens/typography/variants/_variants.scss +211 -0
  211. package/utils/sanitizer-utils/index.d.ts +5 -0
  212. package/utils/sanitizer-utils/public-api.d.ts +1 -0
  213. package/utils/sanitizer-utils/src/sanitizer-utils.d.ts +20 -0
  214. package/components/forms/tk-form-autocomplete-field/index.d.ts +0 -5
  215. package/components/forms/tk-form-autocomplete-field/models/option.model.d.ts +0 -4
  216. package/components/forms/tk-form-autocomplete-field/public-api.d.ts +0 -1
  217. package/components/forms/tk-form-chips-autocomplete-field/index.d.ts +0 -5
  218. package/components/forms/tk-form-chips-autocomplete-field/models/option.model.d.ts +0 -4
  219. package/components/forms/tk-form-chips-autocomplete-field/public-api.d.ts +0 -1
  220. package/components/forms/tk-form-input-field/index.d.ts +0 -5
  221. package/components/forms/tk-form-input-field/public-api.d.ts +0 -1
  222. package/components/tk-dropdown-list/models/dropdown-list-item.model.d.ts +0 -4
  223. package/components/tk-dropdown-list/public-api.d.ts +0 -1
  224. package/components/tk-search-bar/public-api.d.ts +0 -1
  225. package/components/tk-typography/public-api.d.ts +0 -1
  226. package/components/tk-typography/tk-typography.component.d.ts +0 -10
  227. package/esm2022/components/forms/public-api.mjs +0 -4
  228. package/esm2022/components/forms/tekus-design-system-components-forms.mjs +0 -5
  229. package/esm2022/components/forms/tk-form-autocomplete-field/models/option.model.mjs +0 -2
  230. package/esm2022/components/forms/tk-form-autocomplete-field/public-api.mjs +0 -2
  231. package/esm2022/components/forms/tk-form-autocomplete-field/tekus-design-system-components-forms-tk-form-autocomplete-field.mjs +0 -5
  232. package/esm2022/components/forms/tk-form-autocomplete-field/tk-form-autocomplete-field.component.mjs +0 -245
  233. package/esm2022/components/forms/tk-form-chips-autocomplete-field/models/option.model.mjs +0 -2
  234. package/esm2022/components/forms/tk-form-chips-autocomplete-field/public-api.mjs +0 -2
  235. package/esm2022/components/forms/tk-form-chips-autocomplete-field/tekus-design-system-components-forms-tk-form-chips-autocomplete-field.mjs +0 -5
  236. package/esm2022/components/forms/tk-form-chips-autocomplete-field/tk-form-chips-autocomplete-field.component.mjs +0 -167
  237. package/esm2022/components/forms/tk-form-input-field/models/validator-with-message.model.mjs +0 -2
  238. package/esm2022/components/forms/tk-form-input-field/public-api.mjs +0 -2
  239. package/esm2022/components/forms/tk-form-input-field/tekus-design-system-components-forms-tk-form-input-field.mjs +0 -5
  240. package/esm2022/components/forms/tk-form-input-field/tk-form-input-field.component.mjs +0 -206
  241. package/esm2022/components/tk-dropdown-list/models/dropdown-list-item.model.mjs +0 -2
  242. package/esm2022/components/tk-dropdown-list/public-api.mjs +0 -2
  243. package/esm2022/components/tk-dropdown-list/tekus-design-system-components-tk-dropdown-list.mjs +0 -5
  244. package/esm2022/components/tk-dropdown-list/tk-dropdown-list.component.mjs +0 -137
  245. package/esm2022/components/tk-search-bar/public-api.mjs +0 -2
  246. package/esm2022/components/tk-search-bar/tekus-design-system-components-tk-search-bar.mjs +0 -5
  247. package/esm2022/components/tk-search-bar/tk-search-bar.component.mjs +0 -49
  248. package/esm2022/components/tk-typography/public-api.mjs +0 -2
  249. package/esm2022/components/tk-typography/tekus-design-system-components-tk-typography.mjs +0 -5
  250. package/esm2022/components/tk-typography/tk-typography.component.mjs +0 -29
  251. package/esm2022/index.mjs +0 -2
  252. package/esm2022/services/typography/models/typographyStyles.model.mjs +0 -2
  253. package/esm2022/services/typography/public-api.mjs +0 -2
  254. package/esm2022/services/typography/tekus-design-system-services-typography.mjs +0 -5
  255. package/esm2022/services/typography/typography.service.mjs +0 -84
  256. package/esm2022/tekus-design-system.mjs +0 -5
  257. package/fesm2022/tekus-design-system-components-forms-tk-form-autocomplete-field.mjs +0 -252
  258. package/fesm2022/tekus-design-system-components-forms-tk-form-autocomplete-field.mjs.map +0 -1
  259. package/fesm2022/tekus-design-system-components-forms-tk-form-chips-autocomplete-field.mjs.map +0 -1
  260. package/fesm2022/tekus-design-system-components-forms-tk-form-input-field.mjs.map +0 -1
  261. package/fesm2022/tekus-design-system-components-tk-dropdown-list.mjs +0 -144
  262. package/fesm2022/tekus-design-system-components-tk-dropdown-list.mjs.map +0 -1
  263. package/fesm2022/tekus-design-system-components-tk-search-bar.mjs +0 -56
  264. package/fesm2022/tekus-design-system-components-tk-search-bar.mjs.map +0 -1
  265. package/fesm2022/tekus-design-system-components-tk-typography.mjs +0 -36
  266. package/fesm2022/tekus-design-system-components-tk-typography.mjs.map +0 -1
  267. /package/{services/typography/models → core/types/src/typography-styles}/typographyStyles.model.d.ts +0 -0
  268. /package/{components/forms/tk-form-input-field/models → core/types/src/validator-with-message}/validator-with-message.model.d.ts +0 -0
@@ -1,4 +0,0 @@
1
- export interface Option {
2
- ViewValue: string;
3
- Value: string | number;
4
- }
@@ -1 +0,0 @@
1
- export * from './tk-form-chips-autocomplete-field.component';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@tekus/design-system/components/forms/tk-form-input-field" />
5
- export * from './public-api';
@@ -1 +0,0 @@
1
- export * from './tk-form-input-field.component';
@@ -1,4 +0,0 @@
1
- export interface DropdownListItem {
2
- Value: any;
3
- ViewValue: any;
4
- }
@@ -1 +0,0 @@
1
- export * from './tk-dropdown-list.component';
@@ -1 +0,0 @@
1
- export * from './tk-search-bar.component';
@@ -1 +0,0 @@
1
- export * from './tk-typography.component';
@@ -1,10 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class TkTypographyComponent {
3
- size: string;
4
- color: string;
5
- weight: string;
6
- type: 'h1-heading' | 'h2-heading' | 'h3-heading' | 'h4-heading' | 'h5-heading' | 'h6-heading' | 'subtitle1' | 'subtitle2' | 'body1' | 'body2' | 'p1-paragraph' | 'underline-text';
7
- lineBreak: boolean;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<TkTypographyComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<TkTypographyComponent, "lib-tk-typography", never, { "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "type": { "alias": "type"; "required": false; }; "lineBreak": { "alias": "lineBreak"; "required": false; }; }, {}, never, ["*"], true, never>;
10
- }
@@ -1,4 +0,0 @@
1
- export * from './tk-form-input-field/tk-form-input-field.component';
2
- export * from './tk-form-autocomplete-field/tk-form-autocomplete-field.component';
3
- export * from './tk-form-chips-autocomplete-field/tk-form-chips-autocomplete-field.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLCtFQUErRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90ay1mb3JtLWlucHV0LWZpZWxkL3RrLWZvcm0taW5wdXQtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGstZm9ybS1hdXRvY29tcGxldGUtZmllbGQvdGstZm9ybS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGstZm9ybS1jaGlwcy1hdXRvY29tcGxldGUtZmllbGQvdGstZm9ybS1jaGlwcy1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVrdXMtZGVzaWduLXN5c3RlbS1jb21wb25lbnRzLWZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3Rla3VzLWRlc2lnbi1zeXN0ZW0tY29tcG9uZW50cy1mb3Jtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3RrLWZvcm0tYXV0b2NvbXBsZXRlLWZpZWxkL21vZGVscy9vcHRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uIHtcbiAgVmlld1ZhbHVlOiBzdHJpbmc7XG4gIFZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './tk-form-autocomplete-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy90ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RrLWZvcm0tYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVrdXMtZGVzaWduLXN5c3RlbS1jb21wb25lbnRzLWZvcm1zLXRrLWZvcm0tYXV0b2NvbXBsZXRlLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3RrLWZvcm0tYXV0b2NvbXBsZXRlLWZpZWxkL3Rla3VzLWRlc2lnbi1zeXN0ZW0tY29tcG9uZW50cy1mb3Jtcy10ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,245 +0,0 @@
1
- import { Input, Output, Component, ViewChild, EventEmitter, } from '@angular/core';
2
- import { MatFormFieldModule, } from '@angular/material/form-field';
3
- import { MatAutocompleteModule, } from '@angular/material/autocomplete';
4
- import { AsyncPipe, NgStyle } from '@angular/common';
5
- import { MatInputModule } from '@angular/material/input';
6
- import { map, startWith, Subscription } from 'rxjs';
7
- import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/material/input";
11
- import * as i3 from "@angular/material/form-field";
12
- import * as i4 from "@angular/material/autocomplete";
13
- import * as i5 from "@angular/material/core";
14
- export class TkFormAutocompleteFieldComponent {
15
- constructor() {
16
- /**
17
- * Input field control
18
- * @ignore
19
- */
20
- this.formControl = new FormControl('');
21
- /**
22
- * What color palette to use
23
- * @default 'accent'
24
- */
25
- this.theme = 'accent';
26
- /**
27
- * Form field appearance
28
- * @default 'fill'
29
- */
30
- this.appearance = 'fill';
31
- /**
32
- * Form field reserved space for one line by default.
33
- * @default 'dynamic'
34
- */
35
- this.subscriptSizing = 'dynamic';
36
- /**
37
- * Whether the first option should be highlighted when the autocomplete panel is opened
38
- * @default true
39
- */
40
- this.autoActiveFirstOption = true;
41
- /**
42
- * Whether the active option should be selected as the user is navigating.
43
- * @default true
44
- */
45
- this.autoSelectActiveOption = true;
46
- /**
47
- * Optional field input type
48
- * @default 'text'
49
- */
50
- this.type = 'text';
51
- /**
52
- * Whether the field is required
53
- * @default true
54
- */
55
- this.required = true;
56
- /**
57
- * Input field label
58
- */
59
- this.fieldLabel = '';
60
- /**
61
- * Input field placeholder
62
- * @default ''
63
- */
64
- this.placeHolder = '';
65
- /**
66
- * Options to be displayed
67
- * @ignore
68
- */
69
- this.options = [];
70
- /**
71
- * Option changes handler
72
- */
73
- this.optionSelected = new EventEmitter();
74
- /**
75
- * Input field changes handler
76
- */
77
- this.inputStatus = new EventEmitter();
78
- /**
79
- * Autocomplete bottom reached handler
80
- */
81
- this.bottomReached = new EventEmitter();
82
- /**
83
- * Subscriptions property to handle all subscriptions
84
- * @ignore
85
- */
86
- this.subscriptions = new Subscription();
87
- }
88
- /**
89
- * Component lifecycle method
90
- * @ignore
91
- */
92
- ngOnInit() {
93
- this.filteredOptions = this.formControl.valueChanges.pipe(startWith(''), map(value => {
94
- const option = typeof value === 'string' ? value : value?.ViewValue;
95
- return option ? this._filterOptions(option) : this.options.slice();
96
- }));
97
- }
98
- /**
99
- * Component lifecycle method
100
- * @ignore
101
- */
102
- ngAfterViewInit() {
103
- this.initAutocompleteListener();
104
- }
105
- /**
106
- * Starts the autocomplete subscriptions
107
- * @ignore
108
- */
109
- initAutocompleteListener() {
110
- const openedSubscription = this.onAutocompleteOpened();
111
- const closedSubscription = this.onAutocompleteClosed();
112
- this.subscriptions.add(openedSubscription);
113
- this.subscriptions.add(closedSubscription);
114
- }
115
- /**
116
- * Handles the autocomplete opened event
117
- * @ignore
118
- */
119
- onAutocompleteOpened() {
120
- return this.matAutocomplete.opened.subscribe(() => {
121
- setTimeout(() => {
122
- const panel = this.matAutocomplete.panel?.nativeElement;
123
- if (panel) {
124
- panel.addEventListener('scroll', this.onScroll.bind(this));
125
- }
126
- });
127
- });
128
- }
129
- /**
130
- * Handles the autocomplete closed event
131
- * @ignore
132
- */
133
- onAutocompleteClosed() {
134
- return this.matAutocomplete.closed.subscribe(() => {
135
- const panel = this.matAutocomplete.panel?.nativeElement;
136
- if (panel) {
137
- panel.removeEventListener('scroll', this.onScroll.bind(this));
138
- }
139
- });
140
- }
141
- /**
142
- * Handles the scrolling event
143
- * @ignore
144
- */
145
- onScroll(event) {
146
- const panel = event.target;
147
- const scrollTop = panel.scrollTop;
148
- const scrollHeight = panel.scrollHeight;
149
- const offsetHeight = panel.offsetHeight;
150
- if (scrollTop + offsetHeight >= scrollHeight) {
151
- this.onScrolledToEnd();
152
- }
153
- }
154
- /**
155
- * Emits the bottomReached when the user reaches the end of the autocomplete panel
156
- * @ignore
157
- */
158
- onScrolledToEnd() {
159
- this.bottomReached.emit();
160
- }
161
- /**
162
- * Conditions the options' view to display the view value
163
- * @ignore
164
- */
165
- displayFn(option) {
166
- return option?.ViewValue ? option.ViewValue : '';
167
- }
168
- /**
169
- * Filters the options according to the input value
170
- * @ignore
171
- */
172
- _filterOptions(value) {
173
- const filterValue = value.toLowerCase();
174
- return this.options.filter(option => option.ViewValue.toLowerCase().includes(filterValue));
175
- }
176
- /**
177
- * Emits the selected option every time it changes
178
- * @ignore
179
- */
180
- onSelectionChanged(option) {
181
- this.optionSelected.emit(option.Value);
182
- }
183
- /**
184
- * Emits the formControl variable every time the input value changes
185
- * @ignore
186
- */
187
- onInputChanged() {
188
- this.inputStatus.emit(this.formControl);
189
- }
190
- /**
191
- * Unsubscribe from all subscriptions when the component is destroyed
192
- * @ignore
193
- */
194
- ngOnDestroy() {
195
- this.subscriptions?.unsubscribe();
196
- }
197
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TkFormAutocompleteFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
198
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: TkFormAutocompleteFieldComponent, isStandalone: true, selector: "lib-tk-form-autocomplete-field", inputs: { fieldWidth: "fieldWidth", theme: "theme", appearance: "appearance", subscriptSizing: "subscriptSizing", autoActiveFirstOption: "autoActiveFirstOption", autoSelectActiveOption: "autoSelectActiveOption", type: "type", required: "required", fieldTitle: "fieldTitle", fieldLabel: "fieldLabel", placeHolder: "placeHolder", options: "options" }, outputs: { optionSelected: "optionSelected", inputStatus: "inputStatus", bottomReached: "bottomReached" }, viewQueries: [{ propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div class=\"section\" [ngStyle]=\"{ width: fieldWidth ? 'fit-content' : '100%' }\">\n @if (fieldTitle) {\n <h1 class=\"field__title\">{{ fieldTitle }}</h1>\n }\n <mat-form-field\n class=\"form__field\"\n [color]=\"theme\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [ngStyle]=\"{ width: fieldWidth ? fieldWidth : '100%' }\">\n <mat-label class=\"form__field__label\">{{ fieldLabel }}</mat-label>\n <input\n matInput\n [type]=\"type\"\n aria-label=\"Option\"\n [required]=\"required\"\n [matAutocomplete]=\"auto\"\n (input)=\"onInputChanged()\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeHolder\" />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayFn\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n [autoSelectActiveOption]=\"autoSelectActiveOption\"\n (optionSelected)=\"onSelectionChanged($event.option.value)\">\n @for (option of filteredOptions | async; track option.Value) {\n <mat-option [value]=\"option\">\n <span>{{ option.ViewValue }}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".section{gap:.5rem;display:flex;flex-wrap:wrap;max-width:100%;align-items:center;justify-content:flex-start}.form__field{flex:1;height:100%;width:20rem;display:flex;max-width:100%;min-width:10rem;font-size:clamp(.8rem,.657rem + .381vw,1rem)}.form__field__label{font-weight:400;font-style:normal;line-height:.98438em;font-size:clamp(.688rem,.554rem + .357vw,.875rem)}.field__title{margin:0;padding:0;max-width:100%;font-weight:500;overflow:hidden;font-style:normal;align-self:center;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.9rem,.852rem + .276vw,1.1rem)}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }] }); }
199
- }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TkFormAutocompleteFieldComponent, decorators: [{
201
- type: Component,
202
- args: [{ selector: 'lib-tk-form-autocomplete-field', standalone: true, imports: [
203
- NgStyle,
204
- AsyncPipe,
205
- FormsModule,
206
- MatInputModule,
207
- MatFormFieldModule,
208
- ReactiveFormsModule,
209
- MatAutocompleteModule,
210
- ], template: "<div class=\"section\" [ngStyle]=\"{ width: fieldWidth ? 'fit-content' : '100%' }\">\n @if (fieldTitle) {\n <h1 class=\"field__title\">{{ fieldTitle }}</h1>\n }\n <mat-form-field\n class=\"form__field\"\n [color]=\"theme\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [ngStyle]=\"{ width: fieldWidth ? fieldWidth : '100%' }\">\n <mat-label class=\"form__field__label\">{{ fieldLabel }}</mat-label>\n <input\n matInput\n [type]=\"type\"\n aria-label=\"Option\"\n [required]=\"required\"\n [matAutocomplete]=\"auto\"\n (input)=\"onInputChanged()\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeHolder\" />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayFn\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n [autoSelectActiveOption]=\"autoSelectActiveOption\"\n (optionSelected)=\"onSelectionChanged($event.option.value)\">\n @for (option of filteredOptions | async; track option.Value) {\n <mat-option [value]=\"option\">\n <span>{{ option.ViewValue }}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".section{gap:.5rem;display:flex;flex-wrap:wrap;max-width:100%;align-items:center;justify-content:flex-start}.form__field{flex:1;height:100%;width:20rem;display:flex;max-width:100%;min-width:10rem;font-size:clamp(.8rem,.657rem + .381vw,1rem)}.form__field__label{font-weight:400;font-style:normal;line-height:.98438em;font-size:clamp(.688rem,.554rem + .357vw,.875rem)}.field__title{margin:0;padding:0;max-width:100%;font-weight:500;overflow:hidden;font-style:normal;align-self:center;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.9rem,.852rem + .276vw,1.1rem)}\n"] }]
211
- }], propDecorators: { fieldWidth: [{
212
- type: Input
213
- }], theme: [{
214
- type: Input
215
- }], appearance: [{
216
- type: Input
217
- }], subscriptSizing: [{
218
- type: Input
219
- }], autoActiveFirstOption: [{
220
- type: Input
221
- }], autoSelectActiveOption: [{
222
- type: Input
223
- }], type: [{
224
- type: Input
225
- }], required: [{
226
- type: Input
227
- }], fieldTitle: [{
228
- type: Input
229
- }], fieldLabel: [{
230
- type: Input
231
- }], placeHolder: [{
232
- type: Input
233
- }], options: [{
234
- type: Input
235
- }], optionSelected: [{
236
- type: Output
237
- }], inputStatus: [{
238
- type: Output
239
- }], bottomReached: [{
240
- type: Output
241
- }], matAutocomplete: [{
242
- type: ViewChild,
243
- args: ['auto']
244
- }] } });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGstZm9ybS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3RrLWZvcm0tYXV0b2NvbXBsZXRlLWZpZWxkL3RrLWZvcm0tYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy90ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZC90ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxFQUVULFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsa0JBQWtCLEdBRW5CLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUVMLHFCQUFxQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBaUIvRSxNQUFNLE9BQU8sZ0NBQWdDO0lBZjdDO1FBa0JFOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsSUFBSSxXQUFXLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBUzFEOzs7V0FHRztRQUVJLFVBQUssR0FBa0IsUUFBUSxDQUFDO1FB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bnQsXG4gIFZpZXdDaGlsZCxcbiAgT25EZXN0cm95LFxuICBFdmVudEVtaXR0ZXIsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU3Vic2NyaXB0U2l6aW5nLFxuICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuL21vZGVscy9vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1N0eWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ay1mb3JtLWF1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFRrRm9ybUF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgLyoqXG4gICAqIElucHV0IGZpZWxkIGNvbnRyb2xcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IE9wdGlvbj4oJycpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpbnB1dCBmaWVsZCB3aWR0aFxuICAgKiBAZGVmYXVsdCAxMDAlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmllbGRXaWR0aD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCBjb2xvciBwYWxldHRlIHRvIHVzZVxuICAgKiBAZGVmYXVsdCAnYWNjZW50J1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRoZW1lPzogVGhlbWVQYWxldHRlID0gJ2FjY2VudCc7XG5cbiAgLyoqXG4gICAqIEZvcm0gZmllbGQgYXBwZWFyYW5jZVxuICAgKiBAZGVmYXVsdCAnZmlsbCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gJ2ZpbGwnO1xuXG4gIC8qKlxuICAgKiBGb3JtIGZpZWxkIHJlc2VydmVkIHNwYWNlIGZvciBvbmUgbGluZSBieSBkZWZhdWx0LlxuICAgKiBAZGVmYXVsdCAnZHluYW1pYydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWJzY3JpcHRTaXppbmc6IFN1YnNjcmlwdFNpemluZyA9ICdkeW5hbWljJztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlyc3Qgb3B0aW9uIHNob3VsZCBiZSBoaWdobGlnaHRlZCB3aGVuIHRoZSBhdXRvY29tcGxldGUgcGFuZWwgaXMgb3BlbmVkXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvQWN0aXZlRmlyc3RPcHRpb24/OiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWN0aXZlIG9wdGlvbiBzaG91bGQgYmUgc2VsZWN0ZWQgYXMgdGhlIHVzZXIgaXMgbmF2aWdhdGluZy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9TZWxlY3RBY3RpdmVPcHRpb24/OiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmllbGQgaW5wdXQgdHlwZVxuICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0eXBlID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyByZXF1aXJlZFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVxdWlyZWQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpbnB1dCBmaWVsZCB0aXRsZVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmllbGRUaXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgZmllbGQgbGFiZWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWVsZExhYmVsID0gJyc7XG5cbiAgLyoqXG4gICAqIElucHV0IGZpZWxkIHBsYWNlaG9sZGVyXG4gICAqIEBkZWZhdWx0ICcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2VIb2xkZXIgPSAnJztcblxuICAvKipcbiAgICogRmlsdGVyZWQgb3B0aW9uc1xuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgZmlsdGVyZWRPcHRpb25zITogT2JzZXJ2YWJsZTxPcHRpb25bXT47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gYmUgZGlzcGxheWVkXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBPcHRpb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb24gY2hhbmdlcyBoYW5kbGVyXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIElucHV0IGZpZWxkIGNoYW5nZXMgaGFuZGxlclxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnB1dFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUNvbnRyb2w+KCk7XG5cbiAgLyoqXG4gICAqIEF1dG9jb21wbGV0ZSBib3R0b20gcmVhY2hlZCBoYW5kbGVyXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGJvdHRvbVJlYWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgcHJvcGVydHkgdG8gaGFuZGxlIGFsbCBzdWJzY3JpcHRpb25zXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIC8qKlxuICAgKiBNYXQtYXV0b2NvbXBsZXRlIHJlZmVyZW5jZVxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdhdXRvJykgbWF0QXV0b2NvbXBsZXRlITogTWF0QXV0b2NvbXBsZXRlO1xuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgbGlmZWN5Y2xlIG1ldGhvZFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogdmFsdWU/LlZpZXdWYWx1ZTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbiA/IHRoaXMuX2ZpbHRlck9wdGlvbnMob3B0aW9uKSA6IHRoaXMub3B0aW9ucy5zbGljZSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBsaWZlY3ljbGUgbWV0aG9kXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRBdXRvY29tcGxldGVMaXN0ZW5lcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgYXV0b2NvbXBsZXRlIHN1YnNjcmlwdGlvbnNcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGluaXRBdXRvY29tcGxldGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBvcGVuZWRTdWJzY3JpcHRpb24gPSB0aGlzLm9uQXV0b2NvbXBsZXRlT3BlbmVkKCk7XG4gICAgY29uc3QgY2xvc2VkU3Vic2NyaXB0aW9uID0gdGhpcy5vbkF1dG9jb21wbGV0ZUNsb3NlZCgpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChvcGVuZWRTdWJzY3JpcHRpb24pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoY2xvc2VkU3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBhdXRvY29tcGxldGUgb3BlbmVkIGV2ZW50XG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgb25BdXRvY29tcGxldGVPcGVuZWQoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5tYXRBdXRvY29tcGxldGUub3BlbmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcGFuZWwgPSB0aGlzLm1hdEF1dG9jb21wbGV0ZS5wYW5lbD8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKHBhbmVsKSB7XG4gICAgICAgICAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYXV0b2NvbXBsZXRlIGNsb3NlZCBldmVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIG9uQXV0b2NvbXBsZXRlQ2xvc2VkKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubWF0QXV0b2NvbXBsZXRlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgcGFuZWwgPSB0aGlzLm1hdEF1dG9jb21wbGV0ZS5wYW5lbD8ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmIChwYW5lbCkge1xuICAgICAgICBwYW5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIHNjcm9sbGluZyBldmVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIG9uU2Nyb2xsKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHBhbmVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHBhbmVsLnNjcm9sbFRvcDtcbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gcGFuZWwub2Zmc2V0SGVpZ2h0O1xuXG4gICAgaWYgKHNjcm9sbFRvcCArIG9mZnNldEhlaWdodCA+PSBzY3JvbGxIZWlnaHQpIHtcbiAgICAgIHRoaXMub25TY3JvbGxlZFRvRW5kKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBib3R0b21SZWFjaGVkIHdoZW4gdGhlIHVzZXIgcmVhY2hlcyB0aGUgZW5kIG9mIHRoZSBhdXRvY29tcGxldGUgcGFuZWxcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBvblNjcm9sbGVkVG9FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5ib3R0b21SZWFjaGVkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25kaXRpb25zIHRoZSBvcHRpb25zJyB2aWV3IHRvIGRpc3BsYXkgdGhlIHZpZXcgdmFsdWVcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGRpc3BsYXlGbihvcHRpb246IE9wdGlvbiB8IG51bGwpOiBzdHJpbmcge1xuICAgIHJldHVybiBvcHRpb24/LlZpZXdWYWx1ZSA/IG9wdGlvbi5WaWV3VmFsdWUgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRoZSBvcHRpb25zIGFjY29yZGluZyB0byB0aGUgaW5wdXQgdmFsdWVcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfZmlsdGVyT3B0aW9ucyh2YWx1ZTogc3RyaW5nKTogT3B0aW9uW10ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PlxuICAgICAgb3B0aW9uLlZpZXdWYWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG9wdGlvbiBldmVyeSB0aW1lIGl0IGNoYW5nZXNcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlZChvcHRpb246IE9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChvcHRpb24uVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBmb3JtQ29udHJvbCB2YXJpYWJsZSBldmVyeSB0aW1lIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdHVzLmVtaXQodGhpcy5mb3JtQ29udHJvbCk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSBhbGwgc3Vic2NyaXB0aW9ucyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucz8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlY3Rpb25cIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiBmaWVsZFdpZHRoID8gJ2ZpdC1jb250ZW50JyA6ICcxMDAlJyB9XCI+XG4gIEBpZiAoZmllbGRUaXRsZSkge1xuICAgIDxoMSBjbGFzcz1cImZpZWxkX190aXRsZVwiPnt7IGZpZWxkVGl0bGUgfX08L2gxPlxuICB9XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIGNsYXNzPVwiZm9ybV9fZmllbGRcIlxuICAgIFtjb2xvcl09XCJ0aGVtZVwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGZpZWxkV2lkdGggPyBmaWVsZFdpZHRoIDogJzEwMCUnIH1cIj5cbiAgICA8bWF0LWxhYmVsIGNsYXNzPVwiZm9ybV9fZmllbGRfX2xhYmVsXCI+e3sgZmllbGRMYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgYXJpYS1sYWJlbD1cIk9wdGlvblwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlZCgpXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiAvPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCJcbiAgICAgIFthdXRvQWN0aXZlRmlyc3RPcHRpb25dPVwiYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXCJcbiAgICAgIFthdXRvU2VsZWN0QWN0aXZlT3B0aW9uXT1cImF1dG9TZWxlY3RBY3RpdmVPcHRpb25cIlxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQub3B0aW9uLnZhbHVlKVwiPlxuICAgICAgQGZvciAob3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jOyB0cmFjayBvcHRpb24uVmFsdWUpIHtcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi5WaWV3VmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3RrLWZvcm0tY2hpcHMtYXV0b2NvbXBsZXRlLWZpZWxkL21vZGVscy9vcHRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uIHtcbiAgVmlld1ZhbHVlOiBzdHJpbmc7XG4gIFZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './tk-form-chips-autocomplete-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy90ay1mb3JtLWNoaXBzLWF1dG9jb21wbGV0ZS1maWVsZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOENBQThDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RrLWZvcm0tY2hpcHMtYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVrdXMtZGVzaWduLXN5c3RlbS1jb21wb25lbnRzLWZvcm1zLXRrLWZvcm0tY2hpcHMtYXV0b2NvbXBsZXRlLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3RrLWZvcm0tY2hpcHMtYXV0b2NvbXBsZXRlLWZpZWxkL3Rla3VzLWRlc2lnbi1zeXN0ZW0tY29tcG9uZW50cy1mb3Jtcy10ay1mb3JtLWNoaXBzLWF1dG9jb21wbGV0ZS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,167 +0,0 @@
1
- import { Input, Output, Component, ViewChild, EventEmitter, ChangeDetectionStrategy, } from '@angular/core';
2
- import { MatFormFieldModule, } from '@angular/material/form-field';
3
- import { MatAutocompleteModule, } from '@angular/material/autocomplete';
4
- import { map, startWith } from 'rxjs';
5
- import { AsyncPipe, NgStyle } from '@angular/common';
6
- import { COMMA, ENTER } from '@angular/cdk/keycodes';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { MatChipsModule } from '@angular/material/chips';
9
- import { MatButtonModule } from '@angular/material/button';
10
- import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/forms";
13
- import * as i2 from "@angular/material/icon";
14
- import * as i3 from "@angular/material/chips";
15
- import * as i4 from "@angular/material/form-field";
16
- import * as i5 from "@angular/material/autocomplete";
17
- import * as i6 from "@angular/material/core";
18
- export class TkFormChipsAutocompleteFieldComponent {
19
- /**
20
- * @ignore
21
- * Class constructor
22
- */
23
- constructor() {
24
- /**
25
- * Input field label
26
- */
27
- this.fieldLabel = '';
28
- /**
29
- * Input field placeholder
30
- * @default ''
31
- */
32
- this.placeHolder = '';
33
- /**
34
- * What color palette to use
35
- * @default 'accent'
36
- */
37
- this.theme = 'accent';
38
- /**
39
- * Form field reserved space for one line by default.
40
- * @default 'dynamic'
41
- */
42
- this.subscriptSizing = 'dynamic';
43
- /**
44
- * Form field appearance
45
- * @default 'fill'
46
- */
47
- this.appearance = 'fill';
48
- /**
49
- * Input field control
50
- * @ignore
51
- */
52
- this.formControl = new FormControl('');
53
- /**
54
- * Selected keywords
55
- * @ignore
56
- */
57
- this.keywords = [];
58
- /**
59
- * Input field changes handler
60
- */
61
- this.inputStatus = new EventEmitter();
62
- /**
63
- * Keywords changes handler
64
- */
65
- this.selectedKeywords = new EventEmitter();
66
- /**
67
- * Separator constants
68
- * @ignore
69
- */
70
- this.separatorKeysCodes = [ENTER, COMMA];
71
- /**
72
- * Options to be displayed
73
- * @ignore
74
- */
75
- this.allKeywords = [];
76
- this.filteredKeywords = this.formControl.valueChanges.pipe(startWith(null), map((keyword) => keyword ? this._filter(String(keyword)) : this.allKeywords.slice()));
77
- }
78
- /**
79
- * Handles every keyword deletion
80
- * @ignore
81
- */
82
- remove(keyword) {
83
- const index = this.keywords.indexOf(keyword);
84
- if (index >= 0) {
85
- this.keywords.splice(index, 1);
86
- this.onKeywordsChanged();
87
- }
88
- }
89
- /**
90
- * Emits the formControl variable every time the field value changes
91
- * @ignore
92
- */
93
- onInputChanged() {
94
- this.inputStatus.emit(this.formControl);
95
- }
96
- /**
97
- * Emits the selected keywords every time they changed
98
- * @ignore
99
- */
100
- onKeywordsChanged() {
101
- this.selectedKeywords.emit(this.keywords.map(keyword => keyword.Value));
102
- }
103
- /**
104
- * Handles the autocomplete selection
105
- * @ignore
106
- */
107
- selected(event) {
108
- const value = event.option.value;
109
- const selectedKeyword = this.allKeywords.find(option => option.Value === value);
110
- if (selectedKeyword &&
111
- !this.keywords.some(keyword => keyword.Value === selectedKeyword.Value)) {
112
- this.keywords.push(selectedKeyword);
113
- this.onKeywordsChanged();
114
- }
115
- this.keywordInput.nativeElement.value = '';
116
- this.formControl.setValue(null);
117
- }
118
- /**
119
- * Filters the keywords based on the input
120
- * @ignore
121
- */
122
- _filter(value) {
123
- this.onInputChanged();
124
- const filterValue = value.toLowerCase();
125
- return this.allKeywords.filter(keyword => keyword.ViewValue.toLowerCase().includes(filterValue));
126
- }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TkFormChipsAutocompleteFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: TkFormChipsAutocompleteFieldComponent, isStandalone: true, selector: "lib-tk-form-chips-autocomplete-field", inputs: { fieldLabel: "fieldLabel", placeHolder: "placeHolder", fieldTitle: "fieldTitle", theme: "theme", subscriptSizing: "subscriptSizing", fieldWidth: "fieldWidth", appearance: "appearance", allKeywords: "allKeywords" }, outputs: { inputStatus: "inputStatus", selectedKeywords: "selectedKeywords" }, viewQueries: [{ propertyName: "keywordInput", first: true, predicate: ["keywordInput"], descendants: true }], ngImport: i0, template: "<div class=\"section\" [ngStyle]=\"{ width: fieldWidth ? 'fit-content' : '100%' }\">\n @if (fieldTitle) {\n <h1 class=\"field__title\">{{ fieldTitle }}</h1>\n }\n <mat-form-field\n class=\"form__field\"\n [color]=\"theme\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [ngStyle]=\"{ width: fieldWidth ? fieldWidth : '100%' }\">\n <mat-label class=\"form__field__label\">{{ fieldLabel }}</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"Keyword selection\">\n @for (keyword of keywords; track keyword.Value) {\n <mat-chip-row (removed)=\"remove(keyword)\">\n {{ keyword.ViewValue }}\n <button\n matChipRemove\n [attr.aria-label]=\"'remove ' + keyword.ViewValue\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input\n #keywordInput\n [matAutocomplete]=\"auto\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeHolder\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n @for (keyword of filteredKeywords | async; track keyword.Value) {\n <mat-option [value]=\"keyword.Value\">{{ keyword.ViewValue }}</mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".section{gap:.5rem;display:flex;flex-wrap:wrap;max-width:100%;align-items:center;justify-content:flex-start}.form__field{flex:1;height:100%;width:20rem;display:flex;max-width:100%;min-width:10rem;font-size:clamp(.8rem,.657rem + .381vw,1rem)}.form__field__label{font-weight:400;font-style:normal;line-height:.98438em;font-size:clamp(.688rem,.554rem + .357vw,.875rem)}.field__title{margin:0;padding:0;max-width:100%;font-weight:500;overflow:hidden;font-style:normal;align-self:center;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.9rem,.852rem + .276vw,1.1rem)}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
- }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TkFormChipsAutocompleteFieldComponent, decorators: [{
131
- type: Component,
132
- args: [{ selector: 'lib-tk-form-chips-autocomplete-field', standalone: true, imports: [
133
- NgStyle,
134
- AsyncPipe,
135
- FormsModule,
136
- MatIconModule,
137
- MatChipsModule,
138
- MatButtonModule,
139
- MatFormFieldModule,
140
- ReactiveFormsModule,
141
- MatAutocompleteModule,
142
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"section\" [ngStyle]=\"{ width: fieldWidth ? 'fit-content' : '100%' }\">\n @if (fieldTitle) {\n <h1 class=\"field__title\">{{ fieldTitle }}</h1>\n }\n <mat-form-field\n class=\"form__field\"\n [color]=\"theme\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [ngStyle]=\"{ width: fieldWidth ? fieldWidth : '100%' }\">\n <mat-label class=\"form__field__label\">{{ fieldLabel }}</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"Keyword selection\">\n @for (keyword of keywords; track keyword.Value) {\n <mat-chip-row (removed)=\"remove(keyword)\">\n {{ keyword.ViewValue }}\n <button\n matChipRemove\n [attr.aria-label]=\"'remove ' + keyword.ViewValue\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input\n #keywordInput\n [matAutocomplete]=\"auto\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeHolder\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n @for (keyword of filteredKeywords | async; track keyword.Value) {\n <mat-option [value]=\"keyword.Value\">{{ keyword.ViewValue }}</mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".section{gap:.5rem;display:flex;flex-wrap:wrap;max-width:100%;align-items:center;justify-content:flex-start}.form__field{flex:1;height:100%;width:20rem;display:flex;max-width:100%;min-width:10rem;font-size:clamp(.8rem,.657rem + .381vw,1rem)}.form__field__label{font-weight:400;font-style:normal;line-height:.98438em;font-size:clamp(.688rem,.554rem + .357vw,.875rem)}.field__title{margin:0;padding:0;max-width:100%;font-weight:500;overflow:hidden;font-style:normal;align-self:center;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.9rem,.852rem + .276vw,1.1rem)}\n"] }]
143
- }], ctorParameters: () => [], propDecorators: { fieldLabel: [{
144
- type: Input
145
- }], placeHolder: [{
146
- type: Input
147
- }], fieldTitle: [{
148
- type: Input
149
- }], theme: [{
150
- type: Input
151
- }], subscriptSizing: [{
152
- type: Input
153
- }], fieldWidth: [{
154
- type: Input
155
- }], appearance: [{
156
- type: Input
157
- }], inputStatus: [{
158
- type: Output
159
- }], selectedKeywords: [{
160
- type: Output
161
- }], allKeywords: [{
162
- type: Input
163
- }], keywordInput: [{
164
- type: ViewChild,
165
- args: ['keywordInput']
166
- }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGstZm9ybS1jaGlwcy1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLXN5c3RlbS9jb21wb25lbnRzL2Zvcm1zL3RrLWZvcm0tY2hpcHMtYXV0b2NvbXBsZXRlLWZpZWxkL3RrLWZvcm0tY2hpcHMtYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy90ay1mb3JtLWNoaXBzLWF1dG9jb21wbGV0ZS1maWVsZC90ay1mb3JtLWNoaXBzLWF1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVULFlBQVksRUFDWix1QkFBdUIsR0FDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGtCQUFrQixHQUVuQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFX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QUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTdWJzY3JpcHRTaXppbmcsXG4gIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge1xuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuL21vZGVscy9vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10ay1mb3JtLWNoaXBzLWF1dG9jb21wbGV0ZS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1N0eWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZVVybDogJy4vdGstZm9ybS1jaGlwcy1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGstZm9ybS1jaGlwcy1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBUa0Zvcm1DaGlwc0F1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIElucHV0IGZpZWxkIGxhYmVsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmllbGRMYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBmaWVsZCBwbGFjZWhvbGRlclxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlSG9sZGVyID0gJyc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGlucHV0IGZpZWxkIHRpdGxlXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWVsZFRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGF0IGNvbG9yIHBhbGV0dGUgdG8gdXNlXG4gICAqIEBkZWZhdWx0ICdhY2NlbnQnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGhlbWU/OiBUaGVtZVBhbGV0dGUgPSAnYWNjZW50JztcblxuICAvKipcbiAgICogRm9ybSBmaWVsZCByZXNlcnZlZCBzcGFjZSBmb3Igb25lIGxpbmUgYnkgZGVmYXVsdC5cbiAgICogQGRlZmF1bHQgJ2R5bmFtaWMnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3Vic2NyaXB0U2l6aW5nOiBTdWJzY3JpcHRTaXppbmcgPSAnZHluYW1pYyc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGlucHV0IGZpZWxkIHdpZHRoXG4gICAqIEBkZWZhdWx0IDEwMCVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWVsZFdpZHRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGb3JtIGZpZWxkIGFwcGVhcmFuY2VcbiAgICogQGRlZmF1bHQgJ2ZpbGwnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSA9ICdmaWxsJztcblxuICAvKipcbiAgICogSW5wdXQgZmllbGQgY29udHJvbFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAvKipcbiAgICogU2VsZWN0ZWQga2V5d29yZHNcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIGtleXdvcmRzOiBPcHRpb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBmaWVsZCBjaGFuZ2VzIGhhbmRsZXJcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaW5wdXRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Db250cm9sPigpO1xuXG4gIC8qKlxuICAgKiBLZXl3b3JkcyBjaGFuZ2VzIGhhbmRsZXJcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRLZXl3b3JkcyA9IG5ldyBFdmVudEVtaXR0ZXI8KHN0cmluZyB8IG51bWJlcilbXT4oKTtcblxuICAvKipcbiAgICogU2VwYXJhdG9yIGNvbnN0YW50c1xuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGJlIGRpc3BsYXllZFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsS2V5d29yZHM6IE9wdGlvbltdID0gW107XG5cbiAgLyoqXG4gICAqIEZpbHRlcmVkIGtleXdvcmRzIGFmdGVyIHRoZSBpbnB1dCBmaWVsZCBjaGFuZ2VzXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJlZEtleXdvcmRzOiBPYnNlcnZhYmxlPE9wdGlvbltdPjtcblxuICAvKipcbiAgICogS2V5d29yZCBJbnB1dCBlbGVtZW50IHJlZmVyZW5jZVxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdrZXl3b3JkSW5wdXQnKSBrZXl3b3JkSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqIENsYXNzIGNvbnN0cnVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZpbHRlcmVkS2V5d29yZHMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgbWFwKChrZXl3b3JkOiBzdHJpbmcgfCBudWxsKSA9PlxuICAgICAgICBrZXl3b3JkID8gdGhpcy5fZmlsdGVyKFN0cmluZyhrZXl3b3JkKSkgOiB0aGlzLmFsbEtleXdvcmRzLnNsaWNlKClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZXZlcnkga2V5d29yZCBkZWxldGlvblxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlKGtleXdvcmQ6IE9wdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5rZXl3b3Jkcy5pbmRleE9mKGtleXdvcmQpO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMua2V5d29yZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHRoaXMub25LZXl3b3Jkc0NoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIGZvcm1Db250cm9sIHZhcmlhYmxlIGV2ZXJ5IHRpbWUgdGhlIGZpZWxkIHZhbHVlIGNoYW5nZXNcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIG9uSW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0dXMuZW1pdCh0aGlzLmZvcm1Db250cm9sKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2VsZWN0ZWQga2V5d29yZHMgZXZlcnkgdGltZSB0aGV5IGNoYW5nZWRcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIG9uS2V5d29yZHNDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRLZXl3b3Jkcy5lbWl0KHRoaXMua2V5d29yZHMubWFwKGtleXdvcmQgPT4ga2V5d29yZC5WYWx1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGF1dG9jb21wbGV0ZSBzZWxlY3Rpb25cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5vcHRpb24udmFsdWU7XG4gICAgY29uc3Qgc2VsZWN0ZWRLZXl3b3JkID0gdGhpcy5hbGxLZXl3b3Jkcy5maW5kKFxuICAgICAgb3B0aW9uID0+IG9wdGlvbi5WYWx1ZSA9PT0gdmFsdWVcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0ZWRLZXl3b3JkICYmXG4gICAgICAhdGhpcy5rZXl3b3Jkcy5zb21lKGtleXdvcmQgPT4ga2V5d29yZC5WYWx1ZSA9PT0gc2VsZWN0ZWRLZXl3b3JkLlZhbHVlKVxuICAgICkge1xuICAgICAgdGhpcy5rZXl3b3Jkcy5wdXNoKHNlbGVjdGVkS2V5d29yZCk7XG4gICAgICB0aGlzLm9uS2V5d29yZHNDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXl3b3JkSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0aGUga2V5d29yZHMgYmFzZWQgb24gdGhlIGlucHV0XG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2ZpbHRlcih2YWx1ZTogc3RyaW5nKTogT3B0aW9uW10ge1xuICAgIHRoaXMub25JbnB1dENoYW5nZWQoKTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gdGhpcy5hbGxLZXl3b3Jkcy5maWx0ZXIoa2V5d29yZCA9PlxuICAgICAga2V5d29yZC5WaWV3VmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VjdGlvblwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGZpZWxkV2lkdGggPyAnZml0LWNvbnRlbnQnIDogJzEwMCUnIH1cIj5cbiAgQGlmIChmaWVsZFRpdGxlKSB7XG4gICAgPGgxIGNsYXNzPVwiZmllbGRfX3RpdGxlXCI+e3sgZmllbGRUaXRsZSB9fTwvaDE+XG4gIH1cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgY2xhc3M9XCJmb3JtX19maWVsZFwiXG4gICAgW2NvbG9yXT1cInRoZW1lXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogZmllbGRXaWR0aCA/IGZpZWxkV2lkdGggOiAnMTAwJScgfVwiPlxuICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJmb3JtX19maWVsZF9fbGFiZWxcIj57eyBmaWVsZExhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBHcmlkIGFyaWEtbGFiZWw9XCJLZXl3b3JkIHNlbGVjdGlvblwiPlxuICAgICAgQGZvciAoa2V5d29yZCBvZiBrZXl3b3JkczsgdHJhY2sga2V5d29yZC5WYWx1ZSkge1xuICAgICAgICA8bWF0LWNoaXAtcm93IChyZW1vdmVkKT1cInJlbW92ZShrZXl3b3JkKVwiPlxuICAgICAgICAgIHt7IGtleXdvcmQuVmlld1ZhbHVlIH19XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0Q2hpcFJlbW92ZVxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncmVtb3ZlICcgKyBrZXl3b3JkLlZpZXdWYWx1ZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWNoaXAtcm93PlxuICAgICAgfVxuICAgIDwvbWF0LWNoaXAtZ3JpZD5cbiAgICA8aW5wdXRcbiAgICAgICNrZXl3b3JkSW5wdXRcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcbiAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcEdyaWRcIlxuICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiIC8+XG4gICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICBAZm9yIChrZXl3b3JkIG9mIGZpbHRlcmVkS2V5d29yZHMgfCBhc3luYzsgdHJhY2sga2V5d29yZC5WYWx1ZSkge1xuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwia2V5d29yZC5WYWx1ZVwiPnt7IGtleXdvcmQuVmlld1ZhbHVlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLXdpdGgtbWVzc2FnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy90ay1mb3JtLWlucHV0LWZpZWxkL21vZGVscy92YWxpZGF0b3Itd2l0aC1tZXNzYWdlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0b3JXaXRoTWVzc2FnZSB7XG4gIHZhbGlkYXRvcjogVmFsaWRhdG9yRm47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './tk-form-input-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9mb3Jtcy90ay1mb3JtLWlucHV0LWZpZWxkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGstZm9ybS1pbnB1dC1maWVsZC5jb21wb25lbnQnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVrdXMtZGVzaWduLXN5c3RlbS1jb21wb25lbnRzLWZvcm1zLXRrLWZvcm0taW5wdXQtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMvZm9ybXMvdGstZm9ybS1pbnB1dC1maWVsZC90ZWt1cy1kZXNpZ24tc3lzdGVtLWNvbXBvbmVudHMtZm9ybXMtdGstZm9ybS1pbnB1dC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19