@elderbyte/ngx-starter 14.5.4 → 14.6.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 (269) hide show
  1. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  2. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  3. package/esm2020/lib/common/forms/elder-from-field-base.mjs +3 -3
  4. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  5. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  6. package/esm2020/lib/common/forms/form-field-base.component.mjs +3 -3
  7. package/esm2020/lib/common/forms/multi-model-base.component.mjs +3 -3
  8. package/esm2020/lib/common/forms/template-composite-control.mjs +3 -3
  9. package/esm2020/lib/common/forms/value-accessor-base.mjs +3 -3
  10. package/esm2020/lib/common/http/http-client-builder.service.mjs +3 -3
  11. package/esm2020/lib/common/http/http-client-pristine.mjs +3 -3
  12. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  13. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  14. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  15. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  16. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  17. package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
  18. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  19. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
  20. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  21. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  22. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  23. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  24. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  25. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  26. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  27. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  28. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  29. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  30. package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
  31. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  32. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  33. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  34. package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
  35. package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
  36. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
  37. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  38. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  39. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  40. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  41. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  42. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  43. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  44. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  45. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  46. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  47. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  48. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  49. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  50. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  51. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  52. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  53. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  54. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  55. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  56. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  57. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  58. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  59. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  60. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  61. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  62. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  63. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  64. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -4
  65. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  66. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  67. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +7 -7
  68. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  69. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  70. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  71. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  72. package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
  73. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  74. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  75. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  76. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  77. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  78. package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
  79. package/esm2020/lib/components/files/elder-file.module.mjs +4 -4
  80. package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
  81. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  82. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  83. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  84. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  85. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  86. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  87. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  88. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  89. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  90. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +13 -13
  91. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  92. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  93. package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +3 -3
  94. package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +3 -3
  95. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  96. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  97. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  98. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  99. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  100. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  101. package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +3 -3
  102. package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +3 -3
  103. package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
  104. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  105. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +9 -15
  106. package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
  107. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  108. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  109. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
  110. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
  111. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
  112. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  113. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  114. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  115. package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
  116. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +3 -3
  117. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  118. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  119. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  120. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  121. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  122. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  123. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  124. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  125. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  126. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  127. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  128. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
  129. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
  130. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  131. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  132. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  133. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  134. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +4 -4
  135. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
  136. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  137. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  138. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  139. package/esm2020/lib/components/iframes/iframe.service.mjs +3 -3
  140. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  141. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  142. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +7 -7
  143. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +9 -0
  144. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +42 -27
  145. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +197 -0
  146. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +11 -11
  147. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +22 -11
  148. package/esm2020/lib/components/input/autocomplete/many/word-position-finder.mjs +58 -0
  149. package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
  150. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  151. package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  152. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  153. package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
  154. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  155. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  156. package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
  157. package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +3 -3
  158. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  159. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  160. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  161. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  162. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  163. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  164. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  165. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  166. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  167. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  168. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  169. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  170. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  171. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  172. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  173. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
  174. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
  175. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  176. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  177. package/esm2020/lib/components/panels/elder-panel.module.mjs +4 -4
  178. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  179. package/esm2020/lib/components/public_api.mjs +1 -2
  180. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  181. package/esm2020/lib/components/select/elder-select-base.mjs +3 -3
  182. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +9 -9
  183. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  184. package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
  185. package/esm2020/lib/components/select/elder-select.module.mjs +4 -4
  186. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  187. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
  188. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  189. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  190. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  191. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  192. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +10 -9
  193. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +3 -3
  194. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  195. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  196. package/esm2020/lib/components/select-list/elder-select-list.module.mjs +4 -4
  197. package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +3 -3
  198. package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +3 -3
  199. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  200. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  201. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  202. package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
  203. package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
  204. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  205. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  206. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  207. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  208. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  209. package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
  210. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  211. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  212. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  213. package/esm2020/lib/components/theme/elder-theme.directive.mjs +3 -3
  214. package/esm2020/lib/components/theme/elder-theme.module.mjs +4 -4
  215. package/esm2020/lib/components/theme/elder-theme.service.mjs +3 -3
  216. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  217. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  218. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  219. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  220. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  221. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  222. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  223. package/esm2020/lib/components/time/elder-time.module.mjs +8 -8
  224. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  225. package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -4
  226. package/esm2020/lib/components/toasts/elder-toast.service.mjs +9 -9
  227. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  228. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  229. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  230. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  231. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
  232. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
  233. package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
  234. package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
  235. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
  236. package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
  237. package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
  238. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  239. package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
  240. package/esm2020/lib/pipes/elder-pipes.module.mjs +10 -10
  241. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
  242. package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
  243. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  244. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +3 -3
  245. package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
  246. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  247. package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
  248. package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
  249. package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
  250. package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
  251. package/fesm2015/elderbyte-ngx-starter.mjs +1197 -1088
  252. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  253. package/fesm2020/elderbyte-ngx-starter.mjs +1194 -1088
  254. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  255. package/lib/components/forms/search/elder-search-input.directive.d.ts +6 -7
  256. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +8 -0
  257. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +14 -14
  258. package/lib/components/{multi-autocomplete/elder-multi-autocomplete.component.d.ts → input/autocomplete/elder-autocomplete-many.directive.d.ts} +46 -27
  259. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
  260. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +11 -7
  261. package/lib/components/{multi-autocomplete/word-position.d.ts → input/autocomplete/many/word-position-finder.d.ts} +0 -0
  262. package/lib/components/public_api.d.ts +0 -1
  263. package/lib/components/select/single/elder-select/elder-select.component.d.ts +2 -1
  264. package/package.json +1 -1
  265. package/esm2020/lib/components/multi-autocomplete/elder-multi-auto-complete.module.mjs +0 -30
  266. package/esm2020/lib/components/multi-autocomplete/elder-multi-autocomplete.component.mjs +0 -122
  267. package/esm2020/lib/components/multi-autocomplete/word-position.mjs +0 -38
  268. package/lib/components/multi-autocomplete/elder-multi-auto-complete.module.d.ts +0 -14
  269. package/src/lib/components/multi-autocomplete/elder-multi-autocomplete.component.scss +0 -0
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import { ElderSearchContextDirective } from './elder-search-context.directive';
3
3
  import { Observable } from 'rxjs/internal/Observable';
4
4
  import { NgModel } from '@angular/forms';
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
8
8
  /**
9
9
  * Search name adapter for input controls.
10
10
  */
11
- export declare class ElderSearchInputDirective implements OnInit, OnDestroy, AfterViewInit, SearchInput {
11
+ export declare class ElderSearchInputDirective implements OnDestroy, AfterViewInit, SearchInput {
12
12
  private searchContext;
13
13
  private ngModel;
14
14
  /***************************************************************************
@@ -16,10 +16,6 @@ export declare class ElderSearchInputDirective implements OnInit, OnDestroy, Aft
16
16
  * Fields *
17
17
  * *
18
18
  **************************************************************************/
19
- private readonly logger;
20
- private readonly _state;
21
- private _extractedName;
22
- private readonly unsubscribe$;
23
19
  /**
24
20
  * (Optional) Usually the control name is used, this allows a custom query key
25
21
  */
@@ -37,6 +33,10 @@ export declare class ElderSearchInputDirective implements OnInit, OnDestroy, Aft
37
33
  * (Optional) Use this value for the query if none is provided.
38
34
  */
39
35
  fallbackValue: string | string[];
36
+ private readonly _state;
37
+ private _extractedName;
38
+ private readonly destroy$;
39
+ private readonly log;
40
40
  /***************************************************************************
41
41
  * *
42
42
  * Constructor *
@@ -48,7 +48,6 @@ export declare class ElderSearchInputDirective implements OnInit, OnDestroy, Aft
48
48
  * Life Cycle *
49
49
  * *
50
50
  **************************************************************************/
51
- ngOnInit(): void;
52
51
  ngAfterViewInit(): void;
53
52
  ngOnDestroy(): void;
54
53
  /***************************************************************************
@@ -0,0 +1,8 @@
1
+ import { ElderAutocompleteComponent } from './elder-autocomplete.component';
2
+ export declare class ElderAutocompleteOptionSelected<T = any, TId = any> {
3
+ readonly source: ElderAutocompleteComponent<T, TId>;
4
+ readonly entityId: TId;
5
+ readonly entity: T;
6
+ readonly optionValue: any;
7
+ constructor(source: ElderAutocompleteComponent<T, TId>, entityId: TId, entity: T, optionValue: any);
8
+ }
@@ -1,11 +1,12 @@
1
- import { OnInit, TemplateRef, NgZone } from '@angular/core';
1
+ import { NgZone, TemplateRef } from '@angular/core';
2
2
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
3
  import { IDataContext } from '../../../../common/data/data-context/data-context';
4
4
  import { DataContextStatus } from '../../../../common/data/data-context/data-context-status';
5
5
  import { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
6
+ import { ElderAutocompleteOptionSelected } from './elder-autocomplete-option-selected';
6
7
  import * as i0 from "@angular/core";
7
8
  declare type TextResolverFn = (value: any) => string;
8
- export declare class ElderAutocompleteComponent<T = any, TId = any> implements OnInit {
9
+ export declare class ElderAutocompleteComponent<T = any, TId = any> {
9
10
  private readonly zone;
10
11
  /***************************************************************************
11
12
  * *
@@ -29,25 +30,22 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> implements O
29
30
  set matAutocomplete(auto: MatAutocomplete);
30
31
  isOptionDisabledFn: (option: T) => boolean;
31
32
  isOptionHiddenFn: (option: T) => boolean;
32
- /** Underlying data context. */
33
- readonly suggestionsDc$: BehaviorSubject<IDataContext<T>>;
33
+ optionValueConverterFn: (option: T) => any;
34
+ /**
35
+ * The DataContext which holds the autocomplete suggestions.
36
+ */
37
+ readonly dataContext$: BehaviorSubject<IDataContext<T>>;
34
38
  readonly triggerReload$: Subject<any>;
35
39
  readonly displayPropertyResolver$: BehaviorSubject<TextResolverFn>;
36
40
  readonly dataState$: Observable<DataContextStatus>;
37
41
  readonly availableSuggestions$: Observable<T[]>;
38
- readonly optionSelected: Subject<unknown>;
42
+ readonly optionSelected: Subject<ElderAutocompleteOptionSelected<any, any>>;
39
43
  /***************************************************************************
40
44
  * *
41
45
  * Constructor *
42
46
  * *
43
47
  **************************************************************************/
44
48
  constructor(zone: NgZone);
45
- /***************************************************************************
46
- * *
47
- * Life Cycle *
48
- * *
49
- **************************************************************************/
50
- ngOnInit(): void;
51
49
  /***************************************************************************
52
50
  * *
53
51
  * Properties *
@@ -57,8 +55,8 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> implements O
57
55
  get enabled(): boolean;
58
56
  set valueTemplate(template: TemplateRef<any>);
59
57
  get valueTemplate(): TemplateRef<any>;
60
- set suggestionsDc(data: IDataContext<T>);
61
- get suggestionsDc(): IDataContext<T>;
58
+ set dataContext(data: IDataContext<T>);
59
+ get dataContext(): IDataContext<T>;
62
60
  set displayPropertyResolver(resolver: TextResolverFn);
63
61
  /***************************************************************************
64
62
  * *
@@ -66,12 +64,14 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> implements O
66
64
  * *
67
65
  **************************************************************************/
68
66
  onOptionSelected(event: MatAutocompleteSelectedEvent): void;
67
+ private getEntityById;
69
68
  onAutocompleteOpened(event: any): void;
70
69
  onAutoCompleteCloseToEnd(event: UIEvent): void;
71
70
  getIdAsString(value: T): string;
72
71
  getId(value: T): TId;
73
72
  isOptionAvailable(option: T): boolean;
74
73
  isOptionVisible(option: T): boolean;
74
+ toOptionValue(option: T): any;
75
75
  /***************************************************************************
76
76
  * *
77
77
  * Private methods *
@@ -82,6 +82,6 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> implements O
82
82
  */
83
83
  private propertyStringValue;
84
84
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderAutocompleteComponent<any, any>, never>;
85
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderAutocompleteComponent<any, any>, "elder-autocomplete", ["elderAutocomplete"], { "isOptionDisabledFn": "isOptionDisabledFn"; "isOptionHiddenFn": "isOptionHiddenFn"; "enabled": "enabled"; "valueTemplate": "valueTemplate"; "suggestionsDc": "suggestionsDc"; "displayPropertyResolver": "displayPropertyResolver"; }, { "optionSelected": "optionSelected"; }, ["valueTemplateQuery"], never, false>;
85
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderAutocompleteComponent<any, any>, "elder-autocomplete", ["elderAutocomplete"], { "isOptionDisabledFn": "isOptionDisabledFn"; "isOptionHiddenFn": "isOptionHiddenFn"; "optionValueConverterFn": "optionValueConverterFn"; "enabled": "enabled"; "valueTemplate": "valueTemplate"; "dataContext": "dataContext"; "displayPropertyResolver": "displayPropertyResolver"; }, { "optionSelected": "optionSelected"; }, ["valueTemplateQuery"], never, false>;
86
86
  }
87
87
  export {};
@@ -1,59 +1,78 @@
1
- import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { UntypedFormControl } from '@angular/forms';
3
- import { Observable } from 'rxjs';
4
- import { ISuggestionProvider } from '../../common/suggestion-provider';
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { ElderAutocompleteComponent } from './elder-autocomplete/elder-autocomplete.component';
4
+ import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
+ import { Filter } from '../../../common/data/filter';
6
+ import { Sort } from '../../../common/data/sort';
7
+ import { TextResolverFn } from '../../select/elder-select-base';
5
8
  import * as i0 from "@angular/core";
6
- export declare class ElderMultiAutocompleteComponent implements OnInit, OnDestroy {
9
+ export declare class ElderAutocompleteManyDirective<T> implements OnInit, OnDestroy {
10
+ private readonly autoCompleteTrigger;
11
+ private readonly inputRef;
7
12
  /***************************************************************************
8
13
  * *
9
14
  * Fields *
10
15
  * *
11
16
  **************************************************************************/
12
- private readonly logger;
13
- private _sub;
14
- placeholder: string;
15
- suggestionProvider: ISuggestionProvider<string>;
17
+ queryFilter: string;
18
+ filters: Filter[];
19
+ sorts: Sort[];
16
20
  /**
17
- * Occurs when the value has been changed and committed
21
+ * The property on a suggestion object which is used
22
+ * as the display and insert value.
18
23
  */
19
- valueChanged: EventEmitter<string>;
20
- suggestionInput: ElementRef<HTMLInputElement>;
21
- formControl: UntypedFormControl;
22
- availableSuggestions: Observable<string[]>;
23
- private wordFinder;
24
+ textProperty: string;
25
+ textPropertyResolverFn: TextResolverFn;
26
+ readonly inputKeyup$: Subject<KeyboardEvent>;
27
+ private readonly ignoreKeys;
28
+ private readonly log;
29
+ private readonly wordFinder;
30
+ private _elderAutocomplete;
31
+ private readonly destroy$;
32
+ private readonly destroyAutocompleteBinding$;
24
33
  /***************************************************************************
25
34
  * *
26
35
  * Constructor *
27
36
  * *
28
37
  **************************************************************************/
29
- constructor();
38
+ constructor(autoCompleteTrigger: MatAutocompleteTrigger, inputRef: ElementRef<HTMLInputElement>);
30
39
  /***************************************************************************
31
40
  * *
32
- * Life-Cycle *
41
+ * Properties *
33
42
  * *
34
43
  **************************************************************************/
35
- ngOnInit(): void;
36
- ngOnDestroy(): void;
44
+ set autocomplete(auto: ElderAutocompleteComponent);
45
+ get autocomplete(): ElderAutocompleteComponent;
46
+ private get cursorPosition();
47
+ private set cursorPosition(value);
48
+ private get dataContext();
37
49
  /***************************************************************************
38
50
  * *
39
- * Properties *
51
+ * Host Listener *
40
52
  * *
41
53
  **************************************************************************/
54
+ onKeyUp(event: KeyboardEvent): void;
42
55
  /***************************************************************************
43
56
  * *
44
- * Public API *
57
+ * Life Cycle *
45
58
  * *
46
59
  **************************************************************************/
47
- onValueChanged(value: string): void;
48
- insertSuggestion(suggestion: string): string;
60
+ ngOnInit(): void;
61
+ ngOnDestroy(): void;
49
62
  /***************************************************************************
50
63
  * *
51
64
  * Private methods *
52
65
  * *
53
66
  **************************************************************************/
54
- private getSuggestions;
55
- private get cursorPosition();
67
+ private extractWordAtCursor;
68
+ private cursorBeforeAutocomplete;
69
+ private rememberCursorPosition;
56
70
  private extractWordFrom;
57
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderMultiAutocompleteComponent, never>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderMultiAutocompleteComponent, "elder-multi-autocomplete", never, { "placeholder": "placeholder"; "suggestionProvider": "suggestionProvider"; }, { "valueChanged": "modify"; }, never, never, false>;
71
+ private updateSuggestions;
72
+ private insertSuggestion;
73
+ private currentInputValue;
74
+ private resolveSuggestionText;
75
+ private onOptionSelected;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderAutocompleteManyDirective<any>, never>;
77
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderAutocompleteManyDirective<any>, "[elderAutocompleteMany]", never, { "queryFilter": "queryFilter"; "filters": "filters"; "sorts": "sorts"; "textProperty": "textProperty"; "textPropertyResolverFn": "textPropertyResolverFn"; "autocomplete": "elderAutocompleteMany"; }, {}, never, never, false>;
59
78
  }
@@ -28,7 +28,6 @@ export declare class ElderAutocompleteDirective implements OnInit, OnDestroy {
28
28
  * *
29
29
  **************************************************************************/
30
30
  constructor(autoCompleteTrigger: MatAutocompleteTrigger);
31
- ngOnDestroy(): void;
32
31
  /***************************************************************************
33
32
  * *
34
33
  * Host Listener *
@@ -41,6 +40,7 @@ export declare class ElderAutocompleteDirective implements OnInit, OnDestroy {
41
40
  * *
42
41
  **************************************************************************/
43
42
  ngOnInit(): void;
43
+ ngOnDestroy(): void;
44
44
  /***************************************************************************
45
45
  * *
46
46
  * Properties *
@@ -1,16 +1,20 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./elder-autocomplete/elder-autocomplete.component";
3
3
  import * as i2 from "./elder-autocomplete.directive";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/material/autocomplete";
6
- import * as i5 from "../../infinitescroll/elder-infinite-scroll.module";
7
- import * as i6 from "@angular/material/icon";
8
- import * as i7 from "@angular/flex-layout";
9
- import * as i8 from "@angular/material/progress-bar";
4
+ import * as i3 from "./elder-autocomplete-many.directive";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@angular/material/input";
8
+ import * as i7 from "@angular/material/autocomplete";
9
+ import * as i8 from "../../infinitescroll/elder-infinite-scroll.module";
10
+ import * as i9 from "@angular/material/icon";
11
+ import * as i10 from "@angular/flex-layout";
12
+ import * as i11 from "@angular/material/progress-bar";
10
13
  export { ElderAutocompleteComponent } from './elder-autocomplete/elder-autocomplete.component';
14
+ export { ElderAutocompleteManyDirective } from './elder-autocomplete-many.directive';
11
15
  export { ElderAutocompleteDirective } from './elder-autocomplete.directive';
12
16
  export declare class ElderAutocompleteModule {
13
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderAutocompleteModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElderAutocompleteModule, [typeof i1.ElderAutocompleteComponent, typeof i2.ElderAutocompleteDirective], [typeof i3.CommonModule, typeof i4.MatAutocompleteModule, typeof i5.ElderInfiniteScrollModule, typeof i6.MatIconModule, typeof i7.FlexModule, typeof i8.MatProgressBarModule], [typeof i1.ElderAutocompleteComponent, typeof i2.ElderAutocompleteDirective]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElderAutocompleteModule, [typeof i1.ElderAutocompleteComponent, typeof i2.ElderAutocompleteDirective, typeof i3.ElderAutocompleteManyDirective], [typeof i4.CommonModule, typeof i5.ReactiveFormsModule, typeof i6.MatInputModule, typeof i7.MatAutocompleteModule, typeof i8.ElderInfiniteScrollModule, typeof i9.MatIconModule, typeof i10.FlexModule, typeof i11.MatProgressBarModule], [typeof i1.ElderAutocompleteComponent, typeof i2.ElderAutocompleteDirective, typeof i3.ElderAutocompleteManyDirective]>;
15
19
  static ɵinj: i0.ɵɵInjectorDeclaration<ElderAutocompleteModule>;
16
20
  }
@@ -1,7 +1,6 @@
1
1
  export * from './theme/public_api';
2
2
  export * from './access-denied/elder-access-denied.module';
3
3
  export * from './expand-toggle-button/elder-expand-toggle-button.module';
4
- export * from './multi-autocomplete/elder-multi-auto-complete.module';
5
4
  export * from './labels/elder-labels.module';
6
5
  export * from './panels/elder-panel.module';
7
6
  export * from './files/elder-file.module';
@@ -8,6 +8,7 @@ import { IElderEntityValueAccessor } from '../../../../common/forms/elder-entity
8
8
  import { NgControl } from '@angular/forms';
9
9
  import { FocusMonitor } from '@angular/cdk/a11y';
10
10
  import { TranslateService } from '@ngx-translate/core';
11
+ import { ElderAutocompleteOptionSelected } from '../../../input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected';
11
12
  import * as i0 from "@angular/core";
12
13
  declare class EntityContext<T> {
13
14
  readonly value: T;
@@ -114,7 +115,7 @@ export declare class ElderSelectComponent<TEntity = any, TId = any, TValue = TEn
114
115
  togglePanel(autoTrigger: MatAutocompleteTrigger): void;
115
116
  openPanel(autoTrigger: MatAutocompleteTrigger): void;
116
117
  onInputClicked(autoTrigger: MatAutocompleteTrigger): void;
117
- onOptionSelected(selectedValue: TEntity): void;
118
+ onOptionSelected(optionSelected: ElderAutocompleteOptionSelected<TEntity, TId>): void;
118
119
  openSelectionPopup(event: Event): void;
119
120
  clear(event?: Event): void;
120
121
  forceReloadFirst(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "14.5.4",
3
+ "version": "14.6.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0",
@@ -1,30 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ElderMultiAutocompleteComponent } from './elder-multi-autocomplete.component';
3
- import { CommonModule } from '@angular/common';
4
- import { FlexLayoutModule } from '@angular/flex-layout';
5
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
6
- import { MatInputModule } from '@angular/material/input';
7
- import { ReactiveFormsModule } from '@angular/forms';
8
- import * as i0 from "@angular/core";
9
- export { ElderMultiAutocompleteComponent } from './elder-multi-autocomplete.component';
10
- export * from './word-position';
11
- export class ElderMultiAutoCompleteModule {
12
- }
13
- ElderMultiAutoCompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiAutoCompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- ElderMultiAutoCompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiAutoCompleteModule, declarations: [ElderMultiAutocompleteComponent], imports: [CommonModule, ReactiveFormsModule, MatInputModule, MatAutocompleteModule, FlexLayoutModule], exports: [ElderMultiAutocompleteComponent] });
15
- ElderMultiAutoCompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiAutoCompleteModule, imports: [CommonModule, ReactiveFormsModule, MatInputModule, MatAutocompleteModule, FlexLayoutModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiAutoCompleteModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- imports: [
20
- CommonModule, ReactiveFormsModule, MatInputModule, MatAutocompleteModule, FlexLayoutModule
21
- ],
22
- declarations: [
23
- ElderMultiAutocompleteComponent
24
- ],
25
- exports: [
26
- ElderMultiAutocompleteComponent
27
- ]
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktYXV0by1jb21wbGV0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL211bHRpLWF1dG9jb21wbGV0ZS9lbGRlci1tdWx0aS1hdXRvLWNvbXBsZXRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBRW5ELE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JGLGNBQWMsaUJBQWlCLENBQUM7QUFjaEMsTUFBTSxPQUFPLDRCQUE0Qjs7eUhBQTVCLDRCQUE0QjswSEFBNUIsNEJBQTRCLGlCQU5qQywrQkFBK0IsYUFIL0IsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsYUFNMUYsK0JBQStCOzBIQUcxQiw0QkFBNEIsWUFUakMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0I7MkZBU3JGLDRCQUE0QjtrQkFYeEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0I7cUJBQzdGO29CQUNELFlBQVksRUFBRTt3QkFDViwrQkFBK0I7cUJBQ2xDO29CQUNELE9BQU8sRUFBRzt3QkFDTiwrQkFBK0I7cUJBQ2xDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJNdWx0aUF1dG9jb21wbGV0ZUNvbXBvbmVudH0gZnJvbSAnLi9lbGRlci1tdWx0aS1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtGbGV4TGF5b3V0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IHtFbGRlck11bHRpQXV0b2NvbXBsZXRlQ29tcG9uZW50fSBmcm9tICcuL2VsZGVyLW11bHRpLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi93b3JkLXBvc2l0aW9uJztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBGbGV4TGF5b3V0TW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRWxkZXJNdWx0aUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0cyA6IFtcbiAgICAgICAgRWxkZXJNdWx0aUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNdWx0aUF1dG9Db21wbGV0ZU1vZHVsZSB7XG5cbn1cbiJdfQ==
@@ -1,122 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { UntypedFormControl } from '@angular/forms';
3
- import { WordPositionFinder } from './word-position';
4
- import { LoggerFactory } from '@elderbyte/ts-logger';
5
- import { EMPTY, of } from 'rxjs';
6
- import { debounceTime, switchMap } from 'rxjs/operators';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "@angular/material/form-field";
11
- import * as i4 from "@angular/material/input";
12
- import * as i5 from "@angular/material/autocomplete";
13
- import * as i6 from "@angular/material/core";
14
- import * as i7 from "@angular/flex-layout/flex";
15
- export class ElderMultiAutocompleteComponent {
16
- /***************************************************************************
17
- * *
18
- * Constructor *
19
- * *
20
- **************************************************************************/
21
- constructor() {
22
- /***************************************************************************
23
- * *
24
- * Fields *
25
- * *
26
- **************************************************************************/
27
- this.logger = LoggerFactory.getLogger(this.constructor.name);
28
- /**
29
- * Occurs when the value has been changed and committed
30
- */
31
- this.valueChanged = new EventEmitter();
32
- this.formControl = new UntypedFormControl();
33
- this.wordFinder = new WordPositionFinder();
34
- }
35
- /***************************************************************************
36
- * *
37
- * Life-Cycle *
38
- * *
39
- **************************************************************************/
40
- ngOnInit() {
41
- this.availableSuggestions = this.formControl.valueChanges.pipe(debounceTime(150), switchMap((value) => {
42
- if (this.cursorPosition) {
43
- const cursor = this.cursorPosition;
44
- const word = this.extractWordFrom(value, cursor);
45
- return this.getSuggestions(word);
46
- }
47
- else {
48
- return EMPTY;
49
- }
50
- }));
51
- this._sub = this.formControl.valueChanges.
52
- subscribe(value => this.onValueChanged(value));
53
- }
54
- ngOnDestroy() {
55
- this._sub.unsubscribe();
56
- }
57
- /***************************************************************************
58
- * *
59
- * Properties *
60
- * *
61
- **************************************************************************/
62
- /***************************************************************************
63
- * *
64
- * Public API *
65
- * *
66
- **************************************************************************/
67
- onValueChanged(value) {
68
- this.logger.debug('value changed', value);
69
- this.valueChanged.next(value);
70
- }
71
- insertSuggestion(suggestion) {
72
- const full = this.formControl.value != null ? this.formControl.value : '';
73
- if (this.cursorPosition) {
74
- const cursor = this.cursorPosition;
75
- const replacement = this.wordFinder.replaceWord(full, cursor, suggestion + ' ');
76
- return replacement.newText;
77
- }
78
- else {
79
- this.logger.warn('Insert not possible as no cursor-position was available!');
80
- }
81
- }
82
- /***************************************************************************
83
- * *
84
- * Private methods *
85
- * *
86
- **************************************************************************/
87
- getSuggestions(input) {
88
- if (this.suggestionProvider) {
89
- return this.suggestionProvider.loadSuggestions(input);
90
- }
91
- else {
92
- return of([]);
93
- }
94
- }
95
- get cursorPosition() {
96
- if (this.suggestionInput) {
97
- return this.suggestionInput.nativeElement.selectionStart;
98
- }
99
- return null;
100
- }
101
- extractWordFrom(text, position) {
102
- const word = this.wordFinder.findWord(text, position);
103
- return word.value;
104
- }
105
- }
106
- ElderMultiAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
- ElderMultiAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ElderMultiAutocompleteComponent, selector: "elder-multi-autocomplete", inputs: { placeholder: "placeholder", suggestionProvider: "suggestionProvider" }, outputs: { valueChanged: "modify" }, viewQueries: [{ propertyName: "suggestionInput", first: true, predicate: ["suggestionInput"], descendants: true, static: true }], ngImport: i0, template: "\n<!--\n TODO This should probably be refactored to a directive\n-->\n\n<mat-form-field fxFlex\n\n>\n\n\n <input matInput\n #suggestionInput\n type=\"text\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"formControl\"\n name=\"multiinput\" [placeholder]=\"placeholder\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" >\n <mat-option *ngFor=\"let suggestion of availableSuggestions | async\" [value]=\"insertSuggestion(suggestion)\">\n {{ suggestion }}\n </mat-option>\n </mat-autocomplete>\n</mat-form-field>\n\n\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.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: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiAutocompleteComponent, decorators: [{
109
- type: Component,
110
- args: [{ selector: 'elder-multi-autocomplete', template: "\n<!--\n TODO This should probably be refactored to a directive\n-->\n\n<mat-form-field fxFlex\n\n>\n\n\n <input matInput\n #suggestionInput\n type=\"text\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"formControl\"\n name=\"multiinput\" [placeholder]=\"placeholder\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" >\n <mat-option *ngFor=\"let suggestion of availableSuggestions | async\" [value]=\"insertSuggestion(suggestion)\">\n {{ suggestion }}\n </mat-option>\n </mat-autocomplete>\n</mat-form-field>\n\n\n\n\n" }]
111
- }], ctorParameters: function () { return []; }, propDecorators: { placeholder: [{
112
- type: Input
113
- }], suggestionProvider: [{
114
- type: Input
115
- }], valueChanged: [{
116
- type: Output,
117
- args: ['modify']
118
- }], suggestionInput: [{
119
- type: ViewChild,
120
- args: ['suggestionInput', { static: true }]
121
- }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktYXV0b2NvbXBsZXRlL2VsZGVyLW11bHRpLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL211bHRpLWF1dG9jb21wbGV0ZS9lbGRlci1tdWx0aS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsS0FBSyxFQUE0QixFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFDLFlBQVksRUFBVyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTywrQkFBK0I7SUFpQ3hDOzs7O2dGQUk0RTtJQUU1RTtRQXJDQTs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQVd6RTs7V0FFRztRQUVJLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUsxQyxnQkFBVyxHQUF1QixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFZOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRO1FBQ1gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDMUQsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUVoQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUNsRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0gsT0FBTyxLQUFLLENBQUM7YUFDaEI7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVk7WUFDekMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRzVFOzs7O2dGQUk0RTtJQUdyRSxjQUFjLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFVBQWtCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNoRixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7U0FDaEY7SUFDTCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLGNBQWMsQ0FBQyxLQUFhO1FBRWhDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRUQsSUFBWSxjQUFjO1FBQ3hCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztTQUMxRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOzs0SEE5SFEsK0JBQStCO2dIQUEvQiwrQkFBK0IseVRDZDVDLCtrQkEyQkE7MkZEYmEsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNJLDBCQUEwQjswRUFrQjdCLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQU9DLFlBQVk7c0JBRGxCLE1BQU07dUJBQUMsUUFBUTtnQkFJVCxlQUFlO3NCQURyQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7V29yZFBvc2l0aW9uRmluZGVyfSBmcm9tICcuL3dvcmQtcG9zaXRpb24nO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmbGF0TWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SVN1Z2dlc3Rpb25Qcm92aWRlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3N1Z2dlc3Rpb24tcHJvdmlkZXInO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItbXVsdGktYXV0b2NvbXBsZXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItbXVsdGktYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci1tdWx0aS1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck11bHRpQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAgIHByaXZhdGUgX3N1YjogU3Vic2NyaXB0aW9uO1xuXG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3VnZ2VzdGlvblByb3ZpZGVyOiBJU3VnZ2VzdGlvblByb3ZpZGVyPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBPY2N1cnMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhbmQgY29tbWl0dGVkXG4gICAgICovXG4gICAgQE91dHB1dCgnbW9kaWZ5JylcbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdzdWdnZXN0aW9uSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBzdWdnZXN0aW9uSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwdWJsaWMgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgYXZhaWxhYmxlU3VnZ2VzdGlvbnM6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gICAgcHJpdmF0ZSB3b3JkRmluZGVyOiBXb3JkUG9zaXRpb25GaW5kZXI7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMud29yZEZpbmRlciA9IG5ldyBXb3JkUG9zaXRpb25GaW5kZXIoKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIExpZmUtQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxNTApLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jdXJzb3JQb3NpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd29yZCA9IHRoaXMuZXh0cmFjdFdvcmRGcm9tKHZhbHVlLCAgY3Vyc29yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3VnZ2VzdGlvbnMod29yZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3N1YiA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLlxuICAgICAgICBzdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5vblZhbHVlQ2hhbmdlZCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gICAgcHVibGljIG9uVmFsdWVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbHVlIGNoYW5nZWQnLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbnNlcnRTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IHN0cmluZykge1xuICAgICAgICBjb25zdCBmdWxsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPSBudWxsID8gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA6ICcnO1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jdXJzb3JQb3NpdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gdGhpcy53b3JkRmluZGVyLnJlcGxhY2VXb3JkKGZ1bGwsIGN1cnNvciwgc3VnZ2VzdGlvbiArICcgJyk7XG4gICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQubmV3VGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0luc2VydCBub3QgcG9zc2libGUgYXMgbm8gY3Vyc29yLXBvc2l0aW9uIHdhcyBhdmFpbGFibGUhJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHJpdmF0ZSBnZXRTdWdnZXN0aW9ucyhpbnB1dDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuXG4gICAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25Qcm92aWRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvblByb3ZpZGVyLmxvYWRTdWdnZXN0aW9ucyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY3Vyc29yUG9zaXRpb24oKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICBpZiAodGhpcy5zdWdnZXN0aW9uSW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvbklucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RXb3JkRnJvbSh0ZXh0OiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB3b3JkID0gdGhpcy53b3JkRmluZGVyLmZpbmRXb3JkKHRleHQsIHBvc2l0aW9uKTtcbiAgICAgICAgcmV0dXJuIHdvcmQudmFsdWU7XG4gICAgfVxuXG59XG4iLCJcbjwhLS1cbiAgICAgICAgICAgICAgICBUT0RPIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHJlZmFjdG9yZWQgdG8gYSBkaXJlY3RpdmVcbi0tPlxuXG48bWF0LWZvcm0tZmllbGQgZnhGbGV4XG5cbj5cblxuXG4gIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgI3N1Z2dlc3Rpb25JbnB1dFxuICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgICBuYW1lPVwibXVsdGlpbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPlxuXG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIGF2YWlsYWJsZVN1Z2dlc3Rpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwiaW5zZXJ0U3VnZ2VzdGlvbihzdWdnZXN0aW9uKVwiPlxuICAgICAge3sgc3VnZ2VzdGlvbiB9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuPC9tYXQtZm9ybS1maWVsZD5cblxuXG5cblxuIl19
@@ -1,38 +0,0 @@
1
- export class TextRange {
2
- constructor(start, end, value) {
3
- this.start = start;
4
- this.end = end;
5
- this.value = value;
6
- }
7
- }
8
- export class ReplacementResult {
9
- constructor(newText, replaced) {
10
- this.newText = newText;
11
- this.replaced = replaced;
12
- }
13
- }
14
- export class WordPositionFinder {
15
- findWord(text, position) {
16
- // Search for the word's beginning and end.
17
- const left = text.slice(0, position).search(/\S+$/);
18
- let right = text.slice(position).search(/\s/);
19
- // The last word in the string is a special case.
20
- if (right < 0) {
21
- right = text.length;
22
- }
23
- else {
24
- right += position;
25
- }
26
- const word = text.substring(left, right);
27
- return new TextRange(left, right, word);
28
- }
29
- replaceWord(text, position, replacement) {
30
- const current = this.findWord(text, position);
31
- const beforePos = current.start;
32
- const before = text.substring(0, beforePos);
33
- const after = text.substring(current.end, text.length);
34
- const newText = before + replacement + after;
35
- return new ReplacementResult(newText, new TextRange(beforePos, beforePos + replacement.length, replacement));
36
- }
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1wb3NpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktYXV0b2NvbXBsZXRlL3dvcmQtcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFNBQVM7SUFDcEIsWUFDUyxLQUFhLEVBQ2IsR0FBVyxFQUNYLEtBQWE7UUFGYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFVBQUssR0FBTCxLQUFLLENBQVE7SUFFdEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNTLE9BQWUsRUFDZixRQUFtQjtRQURuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUU1QixDQUFDO0NBQ0Y7QUFJRCxNQUFNLE9BQU8sa0JBQWtCO0lBRXRCLFFBQVEsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFFNUMsMkNBQTJDO1FBQzNDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxpREFBaUQ7UUFDakQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckI7YUFBTTtZQUNMLEtBQUssSUFBSSxRQUFRLENBQUM7U0FDbkI7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUdNLFdBQVcsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQjtRQUVwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0MsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixPQUFPLEVBQ1AsSUFBSSxTQUFTLENBQ1gsU0FBUyxFQUNULFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FDNUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCBjbGFzcyBUZXh0UmFuZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3RhcnQ6IG51bWJlcixcbiAgICBwdWJsaWMgZW5kOiBudW1iZXIsXG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmdcbiAgKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcGxhY2VtZW50UmVzdWx0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5ld1RleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVwbGFjZWQ6IFRleHRSYW5nZVxuICApIHtcbiAgfVxufVxuXG5cblxuZXhwb3J0IGNsYXNzIFdvcmRQb3NpdGlvbkZpbmRlciB7XG5cbiAgcHVibGljIGZpbmRXb3JkKHRleHQ6IHN0cmluZywgcG9zaXRpb246IG51bWJlcik6IFRleHRSYW5nZSB7XG5cbiAgICAvLyBTZWFyY2ggZm9yIHRoZSB3b3JkJ3MgYmVnaW5uaW5nIGFuZCBlbmQuXG4gICAgY29uc3QgbGVmdCA9IHRleHQuc2xpY2UoMCwgcG9zaXRpb24pLnNlYXJjaCgvXFxTKyQvKTtcbiAgICBsZXQgcmlnaHQgPSB0ZXh0LnNsaWNlKHBvc2l0aW9uKS5zZWFyY2goL1xccy8pO1xuXG4gICAgLy8gVGhlIGxhc3Qgd29yZCBpbiB0aGUgc3RyaW5nIGlzIGEgc3BlY2lhbCBjYXNlLlxuICAgIGlmIChyaWdodCA8IDApIHtcbiAgICAgIHJpZ2h0ID0gdGV4dC5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJpZ2h0ICs9IHBvc2l0aW9uO1xuICAgIH1cbiAgICBjb25zdCB3b3JkID0gdGV4dC5zdWJzdHJpbmcobGVmdCwgcmlnaHQpO1xuICAgIHJldHVybiBuZXcgVGV4dFJhbmdlKGxlZnQsIHJpZ2h0LCB3b3JkKTtcbiAgfVxuXG5cbiAgcHVibGljIHJlcGxhY2VXb3JkKHRleHQ6IHN0cmluZywgcG9zaXRpb246IG51bWJlciwgcmVwbGFjZW1lbnQ6IHN0cmluZyk6IFJlcGxhY2VtZW50UmVzdWx0IHtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmZpbmRXb3JkKHRleHQsIHBvc2l0aW9uKTtcbiAgICBjb25zdCBiZWZvcmVQb3MgPSBjdXJyZW50LnN0YXJ0O1xuICAgIGNvbnN0IGJlZm9yZSA9IHRleHQuc3Vic3RyaW5nKDAsIGJlZm9yZVBvcyk7XG4gICAgY29uc3QgYWZ0ZXIgPSB0ZXh0LnN1YnN0cmluZyhjdXJyZW50LmVuZCwgdGV4dC5sZW5ndGgpO1xuXG4gICAgY29uc3QgbmV3VGV4dCA9IGJlZm9yZSArIHJlcGxhY2VtZW50ICsgYWZ0ZXI7XG5cbiAgICByZXR1cm4gbmV3IFJlcGxhY2VtZW50UmVzdWx0KFxuICAgICAgbmV3VGV4dCxcbiAgICAgIG5ldyBUZXh0UmFuZ2UoXG4gICAgICAgIGJlZm9yZVBvcyxcbiAgICAgICAgYmVmb3JlUG9zICsgcmVwbGFjZW1lbnQubGVuZ3RoLCByZXBsYWNlbWVudFxuICAgICAgKVxuICAgICk7XG4gIH1cblxufVxuIl19
@@ -1,14 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./elder-multi-autocomplete.component";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "@angular/forms";
5
- import * as i4 from "@angular/material/input";
6
- import * as i5 from "@angular/material/autocomplete";
7
- import * as i6 from "@angular/flex-layout";
8
- export { ElderMultiAutocompleteComponent } from './elder-multi-autocomplete.component';
9
- export * from './word-position';
10
- export declare class ElderMultiAutoCompleteModule {
11
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderMultiAutoCompleteModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElderMultiAutoCompleteModule, [typeof i1.ElderMultiAutocompleteComponent], [typeof i2.CommonModule, typeof i3.ReactiveFormsModule, typeof i4.MatInputModule, typeof i5.MatAutocompleteModule, typeof i6.FlexLayoutModule], [typeof i1.ElderMultiAutocompleteComponent]>;
13
- static ɵinj: i0.ɵɵInjectorDeclaration<ElderMultiAutoCompleteModule>;
14
- }