ngx-bootstrap 18.1.3 → 19.0.1
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.
- package/accordion/fesm2022/ngx-bootstrap-accordion.mjs +13 -14
- package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -1
- package/alert/fesm2022/ngx-bootstrap-alert.mjs +10 -10
- package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -1
- package/buttons/fesm2022/ngx-bootstrap-buttons.mjs +13 -13
- package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -1
- package/carousel/fesm2022/ngx-bootstrap-carousel.mjs +13 -13
- package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -1
- package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -1
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs +7 -8
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -1
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs +3 -3
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -1
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs +85 -86
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -1
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs +22 -25
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -1
- package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs +19 -19
- package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -1
- package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
- package/modal/fesm2022/ngx-bootstrap-modal.mjs +22 -24
- package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -1
- package/package.json +5 -7
- package/pagination/fesm2022/ngx-bootstrap-pagination.mjs +13 -13
- package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -1
- package/popover/fesm2022/ngx-bootstrap-popover.mjs +13 -13
- package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -1
- package/positioning/fesm2022/ngx-bootstrap-positioning.mjs +3 -3
- package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -1
- package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs +13 -13
- package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -1
- package/rating/fesm2022/ngx-bootstrap-rating.mjs +10 -10
- package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -1
- package/schematics/ng-add/index.js +2 -3
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/utils/addStyles.js +1 -2
- package/schematics/utils/addStyles.js.map +1 -1
- package/schematics/utils/current_dependency_versions.json +1 -1
- package/schematics/utils/getVersions.js +2 -3
- package/schematics/utils/getVersions.js.map +1 -1
- package/schematics/utils/index.js +6 -7
- package/schematics/utils/index.js.map +1 -1
- package/schematics/utils/ng-module-imports.js +1 -2
- package/schematics/utils/ng-module-imports.js.map +1 -1
- package/schematics/utils/project-main-file.js +1 -2
- package/schematics/utils/project-main-file.js.map +1 -1
- package/schematics/utils/project-targets.js +1 -2
- package/schematics/utils/project-targets.js.map +1 -1
- package/sortable/fesm2022/ngx-bootstrap-sortable.mjs +12 -14
- package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -1
- package/tabs/fesm2022/ngx-bootstrap-tabs.mjs +19 -19
- package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -1
- package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs +16 -16
- package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -1
- package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs +13 -13
- package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -1
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs +13 -14
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -1
- package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -1
- package/accordion/esm2022/accordion-group.component.mjs +0 -85
- package/accordion/esm2022/accordion.component.mjs +0 -57
- package/accordion/esm2022/accordion.config.mjs +0 -22
- package/accordion/esm2022/accordion.module.mjs +0 -24
- package/accordion/esm2022/index.mjs +0 -2
- package/accordion/esm2022/ngx-bootstrap-accordion.mjs +0 -5
- package/accordion/esm2022/public_api.mjs +0 -5
- package/alert/esm2022/alert.component.mjs +0 -77
- package/alert/esm2022/alert.config.mjs +0 -21
- package/alert/esm2022/alert.module.mjs +0 -23
- package/alert/esm2022/index.mjs +0 -2
- package/alert/esm2022/ngx-bootstrap-alert.mjs +0 -5
- package/alert/esm2022/public_api.mjs +0 -4
- package/buttons/esm2022/button-checkbox.directive.mjs +0 -88
- package/buttons/esm2022/button-radio-group.directive.mjs +0 -158
- package/buttons/esm2022/button-radio.directive.mjs +0 -189
- package/buttons/esm2022/buttons.module.mjs +0 -25
- package/buttons/esm2022/index.mjs +0 -2
- package/buttons/esm2022/ngx-bootstrap-buttons.mjs +0 -5
- package/buttons/esm2022/public_api.mjs +0 -5
- package/carousel/esm2022/carousel.component.mjs +0 -712
- package/carousel/esm2022/carousel.config.mjs +0 -32
- package/carousel/esm2022/carousel.module.mjs +0 -24
- package/carousel/esm2022/index.mjs +0 -2
- package/carousel/esm2022/models/index.mjs +0 -2
- package/carousel/esm2022/ngx-bootstrap-carousel.mjs +0 -5
- package/carousel/esm2022/public_api.mjs +0 -5
- package/carousel/esm2022/slide.component.mjs +0 -65
- package/carousel/esm2022/utils.mjs +0 -32
- package/chronos/esm2022/create/check-overflow.mjs +0 -30
- package/chronos/esm2022/create/clone.mjs +0 -6
- package/chronos/esm2022/create/date-from-array.mjs +0 -19
- package/chronos/esm2022/create/from-anything.mjs +0 -106
- package/chronos/esm2022/create/from-array.mjs +0 -135
- package/chronos/esm2022/create/from-object.mjs +0 -17
- package/chronos/esm2022/create/from-string-and-array.mjs +0 -38
- package/chronos/esm2022/create/from-string-and-format.mjs +0 -106
- package/chronos/esm2022/create/from-string.mjs +0 -222
- package/chronos/esm2022/create/local.mjs +0 -16
- package/chronos/esm2022/create/parsing-flags.mjs +0 -26
- package/chronos/esm2022/create/parsing.types.mjs +0 -2
- package/chronos/esm2022/create/valid.mjs +0 -42
- package/chronos/esm2022/duration/bubble.mjs +0 -47
- package/chronos/esm2022/duration/constructor.mjs +0 -130
- package/chronos/esm2022/duration/create.mjs +0 -112
- package/chronos/esm2022/duration/humanize.mjs +0 -79
- package/chronos/esm2022/duration/valid.mjs +0 -43
- package/chronos/esm2022/format/format.mjs +0 -50
- package/chronos/esm2022/format.mjs +0 -46
- package/chronos/esm2022/i18n/ar.mjs +0 -132
- package/chronos/esm2022/i18n/bg.mjs +0 -90
- package/chronos/esm2022/i18n/ca.mjs +0 -87
- package/chronos/esm2022/i18n/cs.mjs +0 -175
- package/chronos/esm2022/i18n/da.mjs +0 -49
- package/chronos/esm2022/i18n/de.mjs +0 -67
- package/chronos/esm2022/i18n/en-gb.mjs +0 -57
- package/chronos/esm2022/i18n/es-do.mjs +0 -81
- package/chronos/esm2022/i18n/es-pr.mjs +0 -74
- package/chronos/esm2022/i18n/es-us.mjs +0 -75
- package/chronos/esm2022/i18n/es.mjs +0 -80
- package/chronos/esm2022/i18n/et.mjs +0 -69
- package/chronos/esm2022/i18n/fa.mjs +0 -130
- package/chronos/esm2022/i18n/fi.mjs +0 -96
- package/chronos/esm2022/i18n/fr-ca.mjs +0 -69
- package/chronos/esm2022/i18n/fr.mjs +0 -72
- package/chronos/esm2022/i18n/gl.mjs +0 -80
- package/chronos/esm2022/i18n/he.mjs +0 -94
- package/chronos/esm2022/i18n/hi.mjs +0 -119
- package/chronos/esm2022/i18n/hr.mjs +0 -58
- package/chronos/esm2022/i18n/hu.mjs +0 -100
- package/chronos/esm2022/i18n/id.mjs +0 -78
- package/chronos/esm2022/i18n/it.mjs +0 -61
- package/chronos/esm2022/i18n/ja.mjs +0 -71
- package/chronos/esm2022/i18n/ka.mjs +0 -83
- package/chronos/esm2022/i18n/kk.mjs +0 -76
- package/chronos/esm2022/i18n/ko.mjs +0 -72
- package/chronos/esm2022/i18n/lt.mjs +0 -112
- package/chronos/esm2022/i18n/lv.mjs +0 -52
- package/chronos/esm2022/i18n/mn.mjs +0 -94
- package/chronos/esm2022/i18n/nb.mjs +0 -53
- package/chronos/esm2022/i18n/nl-be.mjs +0 -77
- package/chronos/esm2022/i18n/nl.mjs +0 -76
- package/chronos/esm2022/i18n/pl.mjs +0 -122
- package/chronos/esm2022/i18n/pt-br.mjs +0 -52
- package/chronos/esm2022/i18n/ro.mjs +0 -66
- package/chronos/esm2022/i18n/ru.mjs +0 -177
- package/chronos/esm2022/i18n/sk.mjs +0 -153
- package/chronos/esm2022/i18n/sl.mjs +0 -179
- package/chronos/esm2022/i18n/sq.mjs +0 -50
- package/chronos/esm2022/i18n/sv.mjs +0 -59
- package/chronos/esm2022/i18n/th-be.mjs +0 -73
- package/chronos/esm2022/i18n/th.mjs +0 -58
- package/chronos/esm2022/i18n/tr.mjs +0 -78
- package/chronos/esm2022/i18n/uk.mjs +0 -143
- package/chronos/esm2022/i18n/vi.mjs +0 -70
- package/chronos/esm2022/i18n/zh-cn.mjs +0 -109
- package/chronos/esm2022/index.mjs +0 -2
- package/chronos/esm2022/locale/calendar.mjs +0 -9
- package/chronos/esm2022/locale/locale.class.mjs +0 -532
- package/chronos/esm2022/locale/locale.defaults.mjs +0 -40
- package/chronos/esm2022/locale/locales.mjs +0 -228
- package/chronos/esm2022/moment/add-subtract.mjs +0 -35
- package/chronos/esm2022/moment/calendar.mjs +0 -41
- package/chronos/esm2022/moment/diff.mjs +0 -70
- package/chronos/esm2022/moment/min-max.mjs +0 -38
- package/chronos/esm2022/ngx-bootstrap-chronos.mjs +0 -5
- package/chronos/esm2022/parse/regex.mjs +0 -47
- package/chronos/esm2022/parse/token.mjs +0 -31
- package/chronos/esm2022/public_api.mjs +0 -59
- package/chronos/esm2022/testing/chain.mjs +0 -708
- package/chronos/esm2022/types.mjs +0 -2
- package/chronos/esm2022/units/aliases.mjs +0 -35
- package/chronos/esm2022/units/constants.mjs +0 -11
- package/chronos/esm2022/units/day-of-month.mjs +0 -31
- package/chronos/esm2022/units/day-of-week.mjs +0 -129
- package/chronos/esm2022/units/day-of-year.mjs +0 -37
- package/chronos/esm2022/units/hour.mjs +0 -127
- package/chronos/esm2022/units/index.mjs +0 -19
- package/chronos/esm2022/units/millisecond.mjs +0 -59
- package/chronos/esm2022/units/minute.mjs +0 -23
- package/chronos/esm2022/units/month.mjs +0 -63
- package/chronos/esm2022/units/offset.mjs +0 -209
- package/chronos/esm2022/units/priorities.mjs +0 -21
- package/chronos/esm2022/units/quarter.mjs +0 -39
- package/chronos/esm2022/units/second.mjs +0 -23
- package/chronos/esm2022/units/timestamp.mjs +0 -28
- package/chronos/esm2022/units/timezone.mjs +0 -19
- package/chronos/esm2022/units/week-calendar-utils.mjs +0 -70
- package/chronos/esm2022/units/week-year.mjs +0 -101
- package/chronos/esm2022/units/week.mjs +0 -58
- package/chronos/esm2022/units/year.mjs +0 -60
- package/chronos/esm2022/utils/abs-ceil.mjs +0 -4
- package/chronos/esm2022/utils/abs-round.mjs +0 -4
- package/chronos/esm2022/utils/compare-arrays.mjs +0 -16
- package/chronos/esm2022/utils/date-compare.mjs +0 -55
- package/chronos/esm2022/utils/date-getters.mjs +0 -67
- package/chronos/esm2022/utils/date-setters.mjs +0 -75
- package/chronos/esm2022/utils/defaults.mjs +0 -11
- package/chronos/esm2022/utils/start-end-of.mjs +0 -57
- package/chronos/esm2022/utils/type-checks.mjs +0 -58
- package/chronos/esm2022/utils/zero-fill.mjs +0 -10
- package/chronos/esm2022/utils.mjs +0 -7
- package/collapse/esm2022/collapse-animations.mjs +0 -11
- package/collapse/esm2022/collapse.directive.mjs +0 -169
- package/collapse/esm2022/collapse.module.mjs +0 -23
- package/collapse/esm2022/index.mjs +0 -2
- package/collapse/esm2022/ngx-bootstrap-collapse.mjs +0 -5
- package/collapse/esm2022/public_api.mjs +0 -3
- package/component-loader/esm2022/bs-component-ref.class.mjs +0 -3
- package/component-loader/esm2022/component-loader.class.mjs +0 -292
- package/component-loader/esm2022/component-loader.factory.mjs +0 -35
- package/component-loader/esm2022/content-ref.class.mjs +0 -16
- package/component-loader/esm2022/index.mjs +0 -2
- package/component-loader/esm2022/listen-options.model.mjs +0 -2
- package/component-loader/esm2022/ngx-bootstrap-component-loader.mjs +0 -5
- package/component-loader/esm2022/public_api.mjs +0 -5
- package/datepicker/esm2022/base/bs-datepicker-container.mjs +0 -76
- package/datepicker/esm2022/bs-datepicker-inline.component.mjs +0 -163
- package/datepicker/esm2022/bs-datepicker-inline.config.mjs +0 -14
- package/datepicker/esm2022/bs-datepicker-input.directive.mjs +0 -172
- package/datepicker/esm2022/bs-datepicker.component.mjs +0 -307
- package/datepicker/esm2022/bs-datepicker.config.mjs +0 -101
- package/datepicker/esm2022/bs-datepicker.module.mjs +0 -105
- package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +0 -169
- package/datepicker/esm2022/bs-daterangepicker-inline.config.mjs +0 -21
- package/datepicker/esm2022/bs-daterangepicker-input.directive.mjs +0 -215
- package/datepicker/esm2022/bs-daterangepicker.component.mjs +0 -302
- package/datepicker/esm2022/bs-daterangepicker.config.mjs +0 -19
- package/datepicker/esm2022/bs-locale.service.mjs +0 -32
- package/datepicker/esm2022/datepicker-animations.mjs +0 -16
- package/datepicker/esm2022/engine/calc-days-calendar.mjs +0 -21
- package/datepicker/esm2022/engine/flag-days-calendar.mjs +0 -93
- package/datepicker/esm2022/engine/flag-months-calendar.mjs +0 -45
- package/datepicker/esm2022/engine/flag-years-calendar.mjs +0 -42
- package/datepicker/esm2022/engine/format-days-calendar.mjs +0 -33
- package/datepicker/esm2022/engine/format-months-calendar.mjs +0 -23
- package/datepicker/esm2022/engine/format-years-calendar.mjs +0 -39
- package/datepicker/esm2022/engine/view-mode.mjs +0 -4
- package/datepicker/esm2022/index.mjs +0 -2
- package/datepicker/esm2022/models/index.mjs +0 -9
- package/datepicker/esm2022/ngx-bootstrap-datepicker.mjs +0 -5
- package/datepicker/esm2022/public_api.mjs +0 -17
- package/datepicker/esm2022/reducer/_defaults.mjs +0 -6
- package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +0 -143
- package/datepicker/esm2022/reducer/bs-datepicker.effects.mjs +0 -182
- package/datepicker/esm2022/reducer/bs-datepicker.reducer.mjs +0 -378
- package/datepicker/esm2022/reducer/bs-datepicker.state.mjs +0 -18
- package/datepicker/esm2022/reducer/bs-datepicker.store.mjs +0 -22
- package/datepicker/esm2022/themes/bs/bs-calendar-layout.component.mjs +0 -49
- package/datepicker/esm2022/themes/bs/bs-current-date-view.component.mjs +0 -17
- package/datepicker/esm2022/themes/bs/bs-custom-dates-view.component.mjs +0 -55
- package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +0 -199
- package/datepicker/esm2022/themes/bs/bs-datepicker-day-decorator.directive.mjs +0 -48
- package/datepicker/esm2022/themes/bs/bs-datepicker-inline-container.component.mjs +0 -49
- package/datepicker/esm2022/themes/bs/bs-datepicker-navigation-view.component.mjs +0 -125
- package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +0 -275
- package/datepicker/esm2022/themes/bs/bs-daterangepicker-inline-container.component.mjs +0 -49
- package/datepicker/esm2022/themes/bs/bs-days-calendar-view.component.mjs +0 -233
- package/datepicker/esm2022/themes/bs/bs-months-calendar-view.component.mjs +0 -95
- package/datepicker/esm2022/themes/bs/bs-timepicker-view.component.mjs +0 -56
- package/datepicker/esm2022/themes/bs/bs-years-calendar-view.component.mjs +0 -96
- package/datepicker/esm2022/utils/bs-calendar-utils.mjs +0 -117
- package/datepicker/esm2022/utils/copy-time-utils.mjs +0 -10
- package/datepicker/esm2022/utils/matrix-utils.mjs +0 -14
- package/dropdown/esm2022/bs-dropdown-container.component.mjs +0 -81
- package/dropdown/esm2022/bs-dropdown-menu.directive.mjs +0 -23
- package/dropdown/esm2022/bs-dropdown-toggle.directive.mjs +0 -88
- package/dropdown/esm2022/bs-dropdown.config.mjs +0 -24
- package/dropdown/esm2022/bs-dropdown.directive.mjs +0 -343
- package/dropdown/esm2022/bs-dropdown.module.mjs +0 -40
- package/dropdown/esm2022/bs-dropdown.state.mjs +0 -25
- package/dropdown/esm2022/dropdown-animations.mjs +0 -7
- package/dropdown/esm2022/index.mjs +0 -2
- package/dropdown/esm2022/ngx-bootstrap-dropdown.mjs +0 -5
- package/dropdown/esm2022/public_api.mjs +0 -8
- package/esm2022/index.mjs +0 -2
- package/esm2022/ngx-bootstrap.mjs +0 -5
- package/focus-trap/esm2022/boolean-property.mjs +0 -12
- package/focus-trap/esm2022/focus-trap-manager.mjs +0 -54
- package/focus-trap/esm2022/focus-trap.mjs +0 -411
- package/focus-trap/esm2022/focus-trap.module.mjs +0 -24
- package/focus-trap/esm2022/index.mjs +0 -2
- package/focus-trap/esm2022/interactivity-checker.mjs +0 -241
- package/focus-trap/esm2022/ngx-bootstrap-focus-trap.mjs +0 -5
- package/focus-trap/esm2022/platform.mjs +0 -80
- package/focus-trap/esm2022/public_api.mjs +0 -4
- package/locale/esm2022/index.mjs +0 -2
- package/locale/esm2022/ngx-bootstrap-locale.mjs +0 -5
- package/locale/esm2022/public_api.mjs +0 -47
- package/mini-ngrx/esm2022/index.mjs +0 -2
- package/mini-ngrx/esm2022/ngx-bootstrap-mini-ngrx.mjs +0 -5
- package/mini-ngrx/esm2022/public_api.mjs +0 -3
- package/mini-ngrx/esm2022/state.class.mjs +0 -16
- package/mini-ngrx/esm2022/store.class.mjs +0 -42
- package/modal/esm2022/bs-modal-ref.service.mjs +0 -22
- package/modal/esm2022/bs-modal.service.mjs +0 -231
- package/modal/esm2022/index.mjs +0 -2
- package/modal/esm2022/modal-backdrop.component.mjs +0 -51
- package/modal/esm2022/modal-backdrop.options.mjs +0 -7
- package/modal/esm2022/modal-container.component.mjs +0 -156
- package/modal/esm2022/modal-options.class.mjs +0 -46
- package/modal/esm2022/modal.directive.mjs +0 -365
- package/modal/esm2022/modal.module.mjs +0 -44
- package/modal/esm2022/models/index.mjs +0 -2
- package/modal/esm2022/ngx-bootstrap-modal.mjs +0 -5
- package/modal/esm2022/public_api.mjs +0 -9
- package/pagination/esm2022/index.mjs +0 -2
- package/pagination/esm2022/models/index.mjs +0 -2
- package/pagination/esm2022/ngx-bootstrap-pagination.mjs +0 -5
- package/pagination/esm2022/pager.component.mjs +0 -256
- package/pagination/esm2022/pagination.component.mjs +0 -257
- package/pagination/esm2022/pagination.config.mjs +0 -35
- package/pagination/esm2022/pagination.module.mjs +0 -25
- package/pagination/esm2022/public_api.mjs +0 -5
- package/popover/esm2022/index.mjs +0 -2
- package/popover/esm2022/ngx-bootstrap-popover.mjs +0 -5
- package/popover/esm2022/popover-container.component.mjs +0 -45
- package/popover/esm2022/popover.config.mjs +0 -35
- package/popover/esm2022/popover.directive.mjs +0 -241
- package/popover/esm2022/popover.module.mjs +0 -25
- package/popover/esm2022/public_api.mjs +0 -5
- package/positioning/esm2022/index.mjs +0 -2
- package/positioning/esm2022/models/index.mjs +0 -53
- package/positioning/esm2022/modifiers/arrow.mjs +0 -56
- package/positioning/esm2022/modifiers/flip.mjs +0 -65
- package/positioning/esm2022/modifiers/index.mjs +0 -6
- package/positioning/esm2022/modifiers/initData.mjs +0 -44
- package/positioning/esm2022/modifiers/preventOverflow.mjs +0 -54
- package/positioning/esm2022/modifiers/shift.mjs +0 -24
- package/positioning/esm2022/ng-positioning.mjs +0 -39
- package/positioning/esm2022/ngx-bootstrap-positioning.mjs +0 -5
- package/positioning/esm2022/positioning.service.mjs +0 -71
- package/positioning/esm2022/public_api.mjs +0 -5
- package/positioning/esm2022/utils/checkMargin.mjs +0 -32
- package/positioning/esm2022/utils/computeAutoPlacement.mjs +0 -55
- package/positioning/esm2022/utils/findCommonOffsetParent.mjs +0 -40
- package/positioning/esm2022/utils/getBordersSize.mjs +0 -10
- package/positioning/esm2022/utils/getBoundaries.mjs +0 -70
- package/positioning/esm2022/utils/getBoundingClientRect.mjs +0 -56
- package/positioning/esm2022/utils/getClientRect.mjs +0 -8
- package/positioning/esm2022/utils/getFixedPositionOffsetParent.mjs +0 -16
- package/positioning/esm2022/utils/getOffsetParent.mjs +0 -33
- package/positioning/esm2022/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -50
- package/positioning/esm2022/utils/getOffsets.mjs +0 -11
- package/positioning/esm2022/utils/getOppositePlacement.mjs +0 -8
- package/positioning/esm2022/utils/getOppositeVariation.mjs +0 -13
- package/positioning/esm2022/utils/getOuterSizes.mjs +0 -12
- package/positioning/esm2022/utils/getParentNode.mjs +0 -12
- package/positioning/esm2022/utils/getReferenceOffsets.mjs +0 -13
- package/positioning/esm2022/utils/getRoot.mjs +0 -10
- package/positioning/esm2022/utils/getScroll.mjs +0 -14
- package/positioning/esm2022/utils/getScrollParent.mjs +0 -28
- package/positioning/esm2022/utils/getStyleComputedProperty.mjs +0 -12
- package/positioning/esm2022/utils/getTargetOffsets.mjs +0 -30
- package/positioning/esm2022/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -19
- package/positioning/esm2022/utils/getWindowSizes.mjs +0 -14
- package/positioning/esm2022/utils/index.mjs +0 -24
- package/positioning/esm2022/utils/isFixed.mjs +0 -16
- package/positioning/esm2022/utils/isModifierEnabled.mjs +0 -4
- package/positioning/esm2022/utils/isNumeric.mjs +0 -10
- package/positioning/esm2022/utils/isOffsetContainer.mjs +0 -11
- package/positioning/esm2022/utils/setStyles.mjs +0 -21
- package/positioning/esm2022/utils/updateContainerClass.mjs +0 -32
- package/progressbar/esm2022/bar.component.mjs +0 -72
- package/progressbar/esm2022/index.mjs +0 -2
- package/progressbar/esm2022/ngx-bootstrap-progressbar.mjs +0 -5
- package/progressbar/esm2022/progressbar-type.interface.mjs +0 -2
- package/progressbar/esm2022/progressbar.component.mjs +0 -53
- package/progressbar/esm2022/progressbar.config.mjs +0 -19
- package/progressbar/esm2022/progressbar.module.mjs +0 -24
- package/progressbar/esm2022/public_api.mjs +0 -5
- package/rating/esm2022/index.mjs +0 -2
- package/rating/esm2022/models/index.mjs +0 -2
- package/rating/esm2022/ngx-bootstrap-rating.mjs +0 -5
- package/rating/esm2022/public_api.mjs +0 -4
- package/rating/esm2022/rating.component.mjs +0 -121
- package/rating/esm2022/rating.config.mjs +0 -18
- package/rating/esm2022/rating.module.mjs +0 -23
- package/sortable/esm2022/draggable-item.mjs +0 -2
- package/sortable/esm2022/draggable-item.service.mjs +0 -36
- package/sortable/esm2022/index.mjs +0 -2
- package/sortable/esm2022/ngx-bootstrap-sortable.mjs +0 -5
- package/sortable/esm2022/public_api.mjs +0 -4
- package/sortable/esm2022/sortable.component.mjs +0 -270
- package/sortable/esm2022/sortable.module.mjs +0 -23
- package/tabs/esm2022/index.mjs +0 -2
- package/tabs/esm2022/ng-transclude.directive.mjs +0 -29
- package/tabs/esm2022/ngx-bootstrap-tabs.mjs +0 -5
- package/tabs/esm2022/public_api.mjs +0 -7
- package/tabs/esm2022/tab-heading.directive.mjs +0 -21
- package/tabs/esm2022/tab.directive.mjs +0 -118
- package/tabs/esm2022/tabs.module.mjs +0 -41
- package/tabs/esm2022/tabset.component.mjs +0 -216
- package/tabs/esm2022/tabset.config.mjs +0 -21
- package/timepicker/esm2022/index.mjs +0 -2
- package/timepicker/esm2022/models/index.mjs +0 -2
- package/timepicker/esm2022/ngx-bootstrap-timepicker.mjs +0 -5
- package/timepicker/esm2022/public_api.mjs +0 -6
- package/timepicker/esm2022/reducer/timepicker.actions.mjs +0 -53
- package/timepicker/esm2022/reducer/timepicker.reducer.mjs +0 -83
- package/timepicker/esm2022/reducer/timepicker.store.mjs +0 -21
- package/timepicker/esm2022/timepicker-controls.util.mjs +0 -123
- package/timepicker/esm2022/timepicker.component.mjs +0 -334
- package/timepicker/esm2022/timepicker.config.mjs +0 -54
- package/timepicker/esm2022/timepicker.models.mjs +0 -2
- package/timepicker/esm2022/timepicker.module.mjs +0 -23
- package/timepicker/esm2022/timepicker.utils.mjs +0 -152
- package/tooltip/esm2022/index.mjs +0 -2
- package/tooltip/esm2022/ngx-bootstrap-tooltip.mjs +0 -5
- package/tooltip/esm2022/public_api.mjs +0 -5
- package/tooltip/esm2022/tooltip-container.component.mjs +0 -48
- package/tooltip/esm2022/tooltip.config.mjs +0 -22
- package/tooltip/esm2022/tooltip.directive.mjs +0 -344
- package/tooltip/esm2022/tooltip.module.mjs +0 -25
- package/typeahead/esm2022/index.mjs +0 -2
- package/typeahead/esm2022/latin-map.mjs +0 -827
- package/typeahead/esm2022/models/index.mjs +0 -2
- package/typeahead/esm2022/ngx-bootstrap-typeahead.mjs +0 -5
- package/typeahead/esm2022/public_api.mjs +0 -9
- package/typeahead/esm2022/typeahead-animations.mjs +0 -16
- package/typeahead/esm2022/typeahead-container.component.mjs +0 -310
- package/typeahead/esm2022/typeahead-match.class.mjs +0 -15
- package/typeahead/esm2022/typeahead-options.class.mjs +0 -8
- package/typeahead/esm2022/typeahead-order.class.mjs +0 -2
- package/typeahead/esm2022/typeahead-utils.mjs +0 -77
- package/typeahead/esm2022/typeahead.config.mjs +0 -34
- package/typeahead/esm2022/typeahead.directive.mjs +0 -573
- package/typeahead/esm2022/typeahead.module.mjs +0 -25
- package/utils/esm2022/decorators.mjs +0 -23
- package/utils/esm2022/facade/browser.mjs +0 -26
- package/utils/esm2022/index.mjs +0 -2
- package/utils/esm2022/linked-list.class.mjs +0 -247
- package/utils/esm2022/ngx-bootstrap-utils.mjs +0 -5
- package/utils/esm2022/public_api.mjs +0 -10
- package/utils/esm2022/theme-provider.mjs +0 -48
- package/utils/esm2022/trigger.class.mjs +0 -14
- package/utils/esm2022/triggers.mjs +0 -120
- package/utils/esm2022/utils.class.mjs +0 -30
- package/utils/esm2022/warn-once.mjs +0 -11
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHlwZWFoZWFkTWF0Y2ggfSBmcm9tICcuLi90eXBlYWhlYWQtbWF0Y2guY2xhc3MnO1xuXG4vKipcbiAqIEEgY29udGV4dCBmb3IgdGhlIGBvcHRpb25zTGlzdFRlbXBsYXRlYFxuICogaW5wdXQgdGVtcGxhdGUgaW4gY2FzZSB5b3Ugd2FudCB0byBvdmVycmlkZSBkZWZhdWx0IG9uZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVhaGVhZE9wdGlvbkxpc3RDb250ZXh0IHtcbiAgLyoqIEFsbCBtYXRjaGVzICovXG4gIG1hdGNoZXM6IFR5cGVhaGVhZE1hdGNoW107XG4gIC8qKiBJdGVtIHRlbXBsYXRlICovXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8VHlwZWFoZWFkT3B0aW9uSXRlbUNvbnRleHQ+O1xuICAvKiogU2VhcmNoIHF1ZXJ5ICovXG4gIHF1ZXJ5OiBzdHJpbmdbXSB8IHN0cmluZztcbiAgLyoqIFR5cGVhaGVhZCB0ZW1wbGF0ZSBtZXRob2RzICovXG4gICRpbXBsaWNpdDogVHlwZWFoZWFkVGVtcGxhdGVNZXRob2RzO1xufVxuXG4vKipcbiAqIEEgY29udGV4dCBmb3IgdGhlIGB0eXBlYWhlYWRJdGVtVGVtcGxhdGVgXG4gKiBpbnB1dCB0ZW1wbGF0ZSBpbiBjYXNlIHlvdSB3YW50IHRvIG92ZXJyaWRlIGRlZmF1bHQgb25lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWFoZWFkT3B0aW9uSXRlbUNvbnRleHQge1xuICAvKiogSXRlbSAqL1xuICBpdGVtOiB1bmtub3duO1xuICAvKiogSXRlbSBpbmRleCAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogVHlwZWFoZWFkIG1hdGNoICovXG4gIG1hdGNoOiBUeXBlYWhlYWRNYXRjaDtcbiAgLyoqIFNlYXJjaCBxdWVyeSAqL1xuICBxdWVyeTogc3RyaW5nW10gfCBzdHJpbmc7XG59XG5cbi8qKlxuICogTWV0aG9kcyBmb3IgYG9wdGlvbnNMaXN0VGVtcGxhdGVgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlYWhlYWRUZW1wbGF0ZU1ldGhvZHMge1xuICAvKiogRnVuY3Rpb24gdG8gc2VsZWN0IGFuIG9wdGlvbiBieSBjbGljayBldmVudCAqL1xuICBzZWxlY3RNYXRjaCh2YWx1ZTogVHlwZWFoZWFkTWF0Y2gsIGU/OiBFdmVudCk6IHZvaWQ7XG4gIC8qKiBGdW5jdGlvbiB0byBzZWxlY3QgYW4gb3B0aW9uIGJ5IG1vdXNlZW50ZXIgZXZlbnQgKi9cbiAgc2VsZWN0QWN0aXZlKHZhbHVlOiBUeXBlYWhlYWRNYXRjaCk6IHZvaWQ7XG4gIC8qKiBGdW5jdGlvbiB0byBjaGVjayBpZiBhbiBvcHRpb24gaXMgYWN0aXZlICovXG4gIGlzQWN0aXZlKHZhbHVlOiBUeXBlYWhlYWRNYXRjaCk6IGJvb2xlYW47XG59XG4iXX0=
|
@@ -1,5 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
export * from './index';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC10eXBlYWhlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL25neC1ib290c3RyYXAtdHlwZWFoZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
@@ -1,9 +0,0 @@
|
|
1
|
-
export { latinMap } from './latin-map';
|
2
|
-
export { TypeaheadOptions } from './typeahead-options.class';
|
3
|
-
export { TypeaheadMatch } from './typeahead-match.class';
|
4
|
-
export { escapeRegexp, getValueFromObject, tokenize, latinize } from './typeahead-utils';
|
5
|
-
export { TypeaheadContainerComponent } from './typeahead-container.component';
|
6
|
-
export { TypeaheadDirective } from './typeahead.directive';
|
7
|
-
export { TypeaheadModule } from './typeahead.module';
|
8
|
-
export { TypeaheadConfig } from './typeahead.config';
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90eXBlYWhlYWQvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixRQUFRLEVBQ1IsUUFBUSxFQUNULE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGxhdGluTWFwIH0gZnJvbSAnLi9sYXRpbi1tYXAnO1xuZXhwb3J0IHsgVHlwZWFoZWFkT3B0aW9ucyB9IGZyb20gJy4vdHlwZWFoZWFkLW9wdGlvbnMuY2xhc3MnO1xuZXhwb3J0IHsgVHlwZWFoZWFkTWF0Y2ggfSBmcm9tICcuL3R5cGVhaGVhZC1tYXRjaC5jbGFzcyc7XG5leHBvcnQgeyBUeXBlYWhlYWRPcmRlciB9IGZyb20gJy4vdHlwZWFoZWFkLW9yZGVyLmNsYXNzJztcbmV4cG9ydCB7XG4gIGVzY2FwZVJlZ2V4cCxcbiAgZ2V0VmFsdWVGcm9tT2JqZWN0LFxuICB0b2tlbml6ZSxcbiAgbGF0aW5pemVcbn0gZnJvbSAnLi90eXBlYWhlYWQtdXRpbHMnO1xuZXhwb3J0IHsgVHlwZWFoZWFkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlYWhlYWQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUeXBlYWhlYWREaXJlY3RpdmUgfSBmcm9tICcuL3R5cGVhaGVhZC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgVHlwZWFoZWFkTW9kdWxlIH0gZnJvbSAnLi90eXBlYWhlYWQubW9kdWxlJztcbmV4cG9ydCB7IFR5cGVhaGVhZENvbmZpZyB9IGZyb20gJy4vdHlwZWFoZWFkLmNvbmZpZyc7XG5leHBvcnQgeyBUeXBlYWhlYWRPcHRpb25JdGVtQ29udGV4dCwgVHlwZWFoZWFkT3B0aW9uTGlzdENvbnRleHQsIFR5cGVhaGVhZFRlbXBsYXRlTWV0aG9kcyB9IGZyb20gJy4vbW9kZWxzJztcbiJdfQ==
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import { animate, style, state, transition, trigger } from '@angular/animations';
|
2
|
-
export const TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
|
3
|
-
export const typeaheadAnimation = trigger('typeaheadAnimation', [
|
4
|
-
state('animated-down', style({ height: '*', overflow: 'hidden' })),
|
5
|
-
transition('* => animated-down', [
|
6
|
-
style({ height: 0, overflow: 'hidden' }),
|
7
|
-
animate(TYPEAHEAD_ANIMATION_TIMING)
|
8
|
-
]),
|
9
|
-
state('animated-up', style({ height: '*', overflow: 'hidden' })),
|
10
|
-
transition('* => animated-up', [
|
11
|
-
style({ height: '*', overflow: 'hidden' }),
|
12
|
-
animate(TYPEAHEAD_ANIMATION_TIMING)
|
13
|
-
]),
|
14
|
-
transition('* => unanimated', animate('0s'))
|
15
|
-
]);
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWFuaW1hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL3R5cGVhaGVhZC1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUVMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsa0NBQWtDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQzdCLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM1QixLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDakUsVUFBVSxDQUFDLG9CQUFvQixFQUFFO1FBQy9CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQztLQUNwQyxDQUFDO0lBQ0YsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQy9ELFVBQVUsQ0FBQyxrQkFBa0IsRUFBRTtRQUM3QixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxPQUFPLENBQUMsMEJBQTBCLENBQUM7S0FDcEMsQ0FBQztJQUNGLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSxcbiAgc3RhdGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBUWVBFQUhFQURfQU5JTUFUSU9OX1RJTUlORyA9ICcyMjBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG5cbmV4cG9ydCBjb25zdCB0eXBlYWhlYWRBbmltYXRpb246IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9XG4gIHRyaWdnZXIoJ3R5cGVhaGVhZEFuaW1hdGlvbicsIFtcbiAgICBzdGF0ZSgnYW5pbWF0ZWQtZG93bicsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG92ZXJmbG93OiAnaGlkZGVuJ30pKSxcbiAgICB0cmFuc2l0aW9uKCcqID0+IGFuaW1hdGVkLWRvd24nLCBbXG4gICAgICBzdHlsZSh7IGhlaWdodDogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgYW5pbWF0ZShUWVBFQUhFQURfQU5JTUFUSU9OX1RJTUlORylcbiAgICBdKSxcbiAgICBzdGF0ZSgnYW5pbWF0ZWQtdXAnLCBzdHlsZSh7IGhlaWdodDogJyonLCBvdmVyZmxvdzogJ2hpZGRlbid9KSksXG4gICAgdHJhbnNpdGlvbignKiA9PiBhbmltYXRlZC11cCcsIFtcbiAgICAgIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcbiAgICAgIGFuaW1hdGUoVFlQRUFIRUFEX0FOSU1BVElPTl9USU1JTkcpXG4gICAgXSksXG4gICAgdHJhbnNpdGlvbignKiA9PiB1bmFuaW1hdGVkJywgYW5pbWF0ZSgnMHMnKSlcbiAgXSk7XG4iXX0=
|
@@ -1,310 +0,0 @@
|
|
1
|
-
import { ChangeDetectorRef, Component, ElementRef, HostListener, QueryList, Renderer2, ViewChild, ViewChildren, Output, EventEmitter } from '@angular/core';
|
2
|
-
import { Utils } from 'ngx-bootstrap/utils';
|
3
|
-
import { PositioningService } from 'ngx-bootstrap/positioning';
|
4
|
-
import { Subscription } from 'rxjs';
|
5
|
-
import { latinize } from './typeahead-utils';
|
6
|
-
import { typeaheadAnimation } from './typeahead-animations';
|
7
|
-
import { NgTemplateOutlet, NgFor, NgIf } from '@angular/common';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "ngx-bootstrap/positioning";
|
10
|
-
let nextWindowId = 0;
|
11
|
-
export class TypeaheadContainerComponent {
|
12
|
-
get typeaheadTemplateMethods() {
|
13
|
-
return {
|
14
|
-
selectMatch: this.selectMatch.bind(this),
|
15
|
-
selectActive: this.selectActive.bind(this),
|
16
|
-
isActive: this.isActive.bind(this)
|
17
|
-
};
|
18
|
-
}
|
19
|
-
constructor(positionService, renderer, element, changeDetectorRef) {
|
20
|
-
this.positionService = positionService;
|
21
|
-
this.renderer = renderer;
|
22
|
-
this.element = element;
|
23
|
-
this.changeDetectorRef = changeDetectorRef;
|
24
|
-
// eslint-disable-next-line @angular-eslint/no-output-rename
|
25
|
-
this.activeChangeEvent = new EventEmitter();
|
26
|
-
this.isFocused = false;
|
27
|
-
this.positionServiceSubscription = new Subscription();
|
28
|
-
this.height = 0;
|
29
|
-
this.popupId = `ngb-typeahead-${nextWindowId++}`;
|
30
|
-
this._matches = [];
|
31
|
-
this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);
|
32
|
-
this.positionServiceSubscription.add(this.positionService.event$?.subscribe(() => {
|
33
|
-
if (this.isAnimated) {
|
34
|
-
this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';
|
35
|
-
this.changeDetectorRef.detectChanges();
|
36
|
-
return;
|
37
|
-
}
|
38
|
-
this.animationState = 'unanimated';
|
39
|
-
this.changeDetectorRef.detectChanges();
|
40
|
-
}));
|
41
|
-
}
|
42
|
-
get active() {
|
43
|
-
return this._active;
|
44
|
-
}
|
45
|
-
set active(active) {
|
46
|
-
this._active = active;
|
47
|
-
this.activeChanged();
|
48
|
-
}
|
49
|
-
get matches() {
|
50
|
-
return this._matches;
|
51
|
-
}
|
52
|
-
set matches(value) {
|
53
|
-
this.positionService.setOptions({
|
54
|
-
modifiers: { flip: { enabled: this.adaptivePosition } },
|
55
|
-
allowedPositions: ['top', 'bottom']
|
56
|
-
});
|
57
|
-
this._matches = value;
|
58
|
-
this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;
|
59
|
-
if (this.typeaheadScrollable) {
|
60
|
-
setTimeout(() => {
|
61
|
-
this.setScrollableMode();
|
62
|
-
});
|
63
|
-
}
|
64
|
-
if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {
|
65
|
-
this.setActive(this._matches[0]);
|
66
|
-
if (this._active?.isHeader()) {
|
67
|
-
this.nextActiveMatch();
|
68
|
-
}
|
69
|
-
}
|
70
|
-
if (this._active && !this.typeaheadIsFirstItemActive) {
|
71
|
-
const concurrency = this._matches.find(match => match.value === this._active?.value);
|
72
|
-
if (concurrency) {
|
73
|
-
this.selectActive(concurrency);
|
74
|
-
return;
|
75
|
-
}
|
76
|
-
this.active = void 0;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
get isTopPosition() {
|
80
|
-
return this.element.nativeElement.classList.contains('top');
|
81
|
-
}
|
82
|
-
get optionsListTemplate() {
|
83
|
-
return this.parent ? this.parent.optionsListTemplate : undefined;
|
84
|
-
}
|
85
|
-
get isAnimated() {
|
86
|
-
return this.parent ? this.parent.isAnimated : false;
|
87
|
-
}
|
88
|
-
get adaptivePosition() {
|
89
|
-
return this.parent ? this.parent.adaptivePosition : false;
|
90
|
-
}
|
91
|
-
get typeaheadScrollable() {
|
92
|
-
return this.parent ? this.parent.typeaheadScrollable : false;
|
93
|
-
}
|
94
|
-
get typeaheadOptionsInScrollableView() {
|
95
|
-
return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;
|
96
|
-
}
|
97
|
-
get typeaheadIsFirstItemActive() {
|
98
|
-
return this.parent ? this.parent.typeaheadIsFirstItemActive : true;
|
99
|
-
}
|
100
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
101
|
-
get itemTemplate() {
|
102
|
-
return this.parent ? this.parent.typeaheadItemTemplate : undefined;
|
103
|
-
}
|
104
|
-
get canSelectItemsOnBlur() {
|
105
|
-
return !!this.parent?.selectItemOnBlur;
|
106
|
-
}
|
107
|
-
selectActiveMatch(isActiveItemChanged) {
|
108
|
-
if (this._active && this.parent?.typeaheadSelectFirstItem) {
|
109
|
-
this.selectMatch(this._active);
|
110
|
-
}
|
111
|
-
if (!this.parent?.typeaheadSelectFirstItem && isActiveItemChanged) {
|
112
|
-
this.selectMatch(this._active);
|
113
|
-
}
|
114
|
-
}
|
115
|
-
activeChanged() {
|
116
|
-
if (!this._active) {
|
117
|
-
return;
|
118
|
-
}
|
119
|
-
const index = this.matches.indexOf(this._active);
|
120
|
-
this.activeChangeEvent.emit(`${this.popupId}-${index}`);
|
121
|
-
}
|
122
|
-
prevActiveMatch() {
|
123
|
-
if (!this._active) {
|
124
|
-
return;
|
125
|
-
}
|
126
|
-
const index = this.matches.indexOf(this._active);
|
127
|
-
this.setActive(this.matches[index - 1 < 0 ? this.matches.length - 1 : index - 1]);
|
128
|
-
if (this._active.isHeader()) {
|
129
|
-
this.prevActiveMatch();
|
130
|
-
}
|
131
|
-
if (this.typeaheadScrollable) {
|
132
|
-
this.scrollPrevious(index);
|
133
|
-
}
|
134
|
-
}
|
135
|
-
nextActiveMatch() {
|
136
|
-
const index = this._active ? this.matches.indexOf(this._active) : -1;
|
137
|
-
this.setActive(this.matches[index + 1 > this.matches.length - 1 ? 0 : index + 1]);
|
138
|
-
if (this._active?.isHeader()) {
|
139
|
-
this.nextActiveMatch();
|
140
|
-
}
|
141
|
-
if (this.typeaheadScrollable) {
|
142
|
-
this.scrollNext(index);
|
143
|
-
}
|
144
|
-
}
|
145
|
-
selectActive(value) {
|
146
|
-
this.isFocused = true;
|
147
|
-
this.setActive(value);
|
148
|
-
}
|
149
|
-
highlight(match, query) {
|
150
|
-
let itemStr = match.value;
|
151
|
-
let itemStrHelper = (this.parent && this.parent.typeaheadLatinize
|
152
|
-
? latinize(itemStr)
|
153
|
-
: itemStr).toLowerCase();
|
154
|
-
let startIdx;
|
155
|
-
let tokenLen;
|
156
|
-
// Replaces the capture string with the same string inside of a "strong" tag
|
157
|
-
if (typeof query === 'object') {
|
158
|
-
const queryLen = query.length;
|
159
|
-
for (let i = 0; i < queryLen; i += 1) {
|
160
|
-
// query[i] is already latinized and lower case
|
161
|
-
startIdx = itemStrHelper.indexOf(query[i]);
|
162
|
-
tokenLen = query[i].length;
|
163
|
-
if (startIdx >= 0 && tokenLen > 0) {
|
164
|
-
itemStr =
|
165
|
-
`${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +
|
166
|
-
`${itemStr.substring(startIdx + tokenLen)}`;
|
167
|
-
itemStrHelper =
|
168
|
-
`${itemStrHelper.substring(0, startIdx)}????????${'??'.repeat(tokenLen)}??????????` +
|
169
|
-
`${itemStrHelper.substring(startIdx + tokenLen)}`;
|
170
|
-
}
|
171
|
-
}
|
172
|
-
}
|
173
|
-
else if (query) {
|
174
|
-
// query is already latinized and lower case
|
175
|
-
startIdx = itemStrHelper.indexOf(query);
|
176
|
-
tokenLen = query.length;
|
177
|
-
if (startIdx >= 0 && tokenLen > 0) {
|
178
|
-
itemStr =
|
179
|
-
`${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +
|
180
|
-
`${itemStr.substring(startIdx + tokenLen)}`;
|
181
|
-
}
|
182
|
-
}
|
183
|
-
return itemStr;
|
184
|
-
}
|
185
|
-
focusLost() {
|
186
|
-
this.isFocused = false;
|
187
|
-
if (!this.canSelectItemsOnBlur) {
|
188
|
-
this.setActive(void 0);
|
189
|
-
}
|
190
|
-
}
|
191
|
-
isActive(value) {
|
192
|
-
return this.active === value;
|
193
|
-
}
|
194
|
-
selectMatch(value, event) {
|
195
|
-
if (event) {
|
196
|
-
event.stopPropagation();
|
197
|
-
event.preventDefault();
|
198
|
-
}
|
199
|
-
this.parent?.changeModel(value);
|
200
|
-
setTimeout(() => this.parent?.typeaheadOnSelect.emit(value), 0);
|
201
|
-
return false;
|
202
|
-
}
|
203
|
-
setScrollableMode() {
|
204
|
-
if (!this.ulElement) {
|
205
|
-
this.ulElement = this.element;
|
206
|
-
}
|
207
|
-
if (this.liElements?.first) {
|
208
|
-
const ulStyles = Utils.getStyles(this.ulElement.nativeElement);
|
209
|
-
const liStyles = Utils.getStyles(this.liElements.first.nativeElement);
|
210
|
-
const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')
|
211
|
-
.replace('px', ''));
|
212
|
-
const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')
|
213
|
-
.replace('px', ''));
|
214
|
-
const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')
|
215
|
-
.replace('px', ''));
|
216
|
-
const height = this.typeaheadOptionsInScrollableView * optionHeight;
|
217
|
-
this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;
|
218
|
-
}
|
219
|
-
this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');
|
220
|
-
}
|
221
|
-
scrollPrevious(index) {
|
222
|
-
if (index === 0) {
|
223
|
-
this.scrollToBottom();
|
224
|
-
return;
|
225
|
-
}
|
226
|
-
if (this.liElements && this.ulElement) {
|
227
|
-
const liElement = this.liElements.toArray()[index - 1];
|
228
|
-
if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {
|
229
|
-
this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;
|
230
|
-
}
|
231
|
-
}
|
232
|
-
}
|
233
|
-
scrollNext(index) {
|
234
|
-
if (index + 1 > this.matches.length - 1) {
|
235
|
-
this.scrollToTop();
|
236
|
-
return;
|
237
|
-
}
|
238
|
-
if (this.liElements && this.ulElement) {
|
239
|
-
const liElement = this.liElements.toArray()[index + 1];
|
240
|
-
if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {
|
241
|
-
this.ulElement.nativeElement.scrollTop =
|
242
|
-
liElement.nativeElement.offsetTop -
|
243
|
-
Number(this.ulElement.nativeElement.offsetHeight) +
|
244
|
-
Number(liElement.nativeElement.offsetHeight);
|
245
|
-
}
|
246
|
-
}
|
247
|
-
}
|
248
|
-
ngOnDestroy() {
|
249
|
-
this.positionServiceSubscription.unsubscribe();
|
250
|
-
}
|
251
|
-
setActive(value) {
|
252
|
-
this._active = value;
|
253
|
-
let preview;
|
254
|
-
if (!(this._active == null || this._active.isHeader())) {
|
255
|
-
preview = value;
|
256
|
-
}
|
257
|
-
this.parent?.typeaheadOnPreview.emit(preview);
|
258
|
-
}
|
259
|
-
isScrolledIntoView(elem) {
|
260
|
-
if (!this.ulElement) {
|
261
|
-
return false;
|
262
|
-
}
|
263
|
-
const containerViewTop = this.ulElement.nativeElement.scrollTop;
|
264
|
-
const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);
|
265
|
-
const elemTop = elem.offsetTop;
|
266
|
-
const elemBottom = elemTop + elem.offsetHeight;
|
267
|
-
return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));
|
268
|
-
}
|
269
|
-
scrollToBottom() {
|
270
|
-
if (!this.ulElement?.nativeElement) {
|
271
|
-
return;
|
272
|
-
}
|
273
|
-
this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;
|
274
|
-
}
|
275
|
-
scrollToTop() {
|
276
|
-
if (!this.ulElement?.nativeElement) {
|
277
|
-
return;
|
278
|
-
}
|
279
|
-
this.ulElement.nativeElement.scrollTop = 0;
|
280
|
-
}
|
281
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TypeaheadContainerComponent, deps: [{ token: i1.PositioningService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
282
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TypeaheadContainerComponent, isStandalone: true, selector: "typeahead-container", outputs: { activeChangeEvent: "activeChange" }, host: { listeners: { "mouseleave": "focusLost()", "blur": "focusLost()" }, properties: { "style.height": "needScrollbar ? guiHeight: 'auto'", "style.visibility": "'inherit'", "class.dropup": "dropup", "attr.role": "'listbox'" }, styleAttribute: "position: absolute;display: block;", classAttribute: "dropdown open bottom dropdown-menu" }, providers: [PositioningService], viewQueries: [{ propertyName: "ulElement", first: true, predicate: ["ulElement"], descendants: true }, { propertyName: "liElements", predicate: ["liElements"], descendants: true }], ngImport: i0, template: "<!-- inject options list template -->\n<ng-template [ngTemplateOutlet]=\"optionsListTemplate || bs4Template\"\n [ngTemplateOutletContext]=\"{\n matches: matches,\n itemTemplate: itemTemplate || bsItemTemplate,\n query: query,\n $implicit: typeaheadTemplateMethods\n }\">\n</ng-template>\n\n<!-- default options item template -->\n<ng-template #bsItemTemplate let-match=\"match\" let-query=\"query\">\n <span [innerHtml]=\"highlight(match, query)\"></span>\n</ng-template>\n\n<!-- Bootstrap 4 options list template -->\n<ng-template #bs4Template>\n <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\n <h6 *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</h6>\n <ng-template [ngIf]=\"!match.isHeader()\">\n <button #liElements\n [id]=\"popupId + '-' + i\"\n role=\"option\"\n [@typeaheadAnimation]=\"animationState\"\n class=\"dropdown-item\"\n (click)=\"selectMatch(match, $event)\"\n (mouseenter)=\"selectActive(match)\"\n [class.active]=\"isActive(match)\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-template>\n </button>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host.dropdown{z-index:1000}:host.dropdown-menu,.dropdown-menu{overflow-y:auto;height:100px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [typeaheadAnimation] }); }
|
283
|
-
}
|
284
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TypeaheadContainerComponent, decorators: [{
|
285
|
-
type: Component,
|
286
|
-
args: [{ selector: 'typeahead-container', host: {
|
287
|
-
class: 'dropdown open bottom dropdown-menu',
|
288
|
-
'[style.height]': `needScrollbar ? guiHeight: 'auto'`,
|
289
|
-
'[style.visibility]': `'inherit'`,
|
290
|
-
'[class.dropup]': 'dropup',
|
291
|
-
style: 'position: absolute;display: block;',
|
292
|
-
'[attr.role]': `'listbox'`
|
293
|
-
}, animations: [typeaheadAnimation], standalone: true, imports: [NgTemplateOutlet, NgFor, NgIf], providers: [PositioningService], template: "<!-- inject options list template -->\n<ng-template [ngTemplateOutlet]=\"optionsListTemplate || bs4Template\"\n [ngTemplateOutletContext]=\"{\n matches: matches,\n itemTemplate: itemTemplate || bsItemTemplate,\n query: query,\n $implicit: typeaheadTemplateMethods\n }\">\n</ng-template>\n\n<!-- default options item template -->\n<ng-template #bsItemTemplate let-match=\"match\" let-query=\"query\">\n <span [innerHtml]=\"highlight(match, query)\"></span>\n</ng-template>\n\n<!-- Bootstrap 4 options list template -->\n<ng-template #bs4Template>\n <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\n <h6 *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</h6>\n <ng-template [ngIf]=\"!match.isHeader()\">\n <button #liElements\n [id]=\"popupId + '-' + i\"\n role=\"option\"\n [@typeaheadAnimation]=\"animationState\"\n class=\"dropdown-item\"\n (click)=\"selectMatch(match, $event)\"\n (mouseenter)=\"selectActive(match)\"\n [class.active]=\"isActive(match)\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-template>\n </button>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host.dropdown{z-index:1000}:host.dropdown-menu,.dropdown-menu{overflow-y:auto;height:100px}\n"] }]
|
294
|
-
}], ctorParameters: () => [{ type: i1.PositioningService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { activeChangeEvent: [{
|
295
|
-
type: Output,
|
296
|
-
args: ['activeChange']
|
297
|
-
}], ulElement: [{
|
298
|
-
type: ViewChild,
|
299
|
-
args: ['ulElement', { static: false }]
|
300
|
-
}], liElements: [{
|
301
|
-
type: ViewChildren,
|
302
|
-
args: ['liElements']
|
303
|
-
}], focusLost: [{
|
304
|
-
type: HostListener,
|
305
|
-
args: ['mouseleave']
|
306
|
-
}, {
|
307
|
-
type: HostListener,
|
308
|
-
args: ['blur']
|
309
|
-
}] } });
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL3R5cGVhaGVhZC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosU0FBUyxFQUNULFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVoRSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFnQ3JCLE1BQU0sT0FBTywyQkFBMkI7SUFtQnRDLElBQUksd0JBQXdCO1FBQzFCLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztT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Q0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQS9WVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixxY0FIekIsQ0FBQyxrQkFBa0IsQ0FBQyxnTkN2RG5DLHE3Q0FtQ0Esd0pEbUJjLGdCQUFnQixvSkFBRSxLQUFLLG1IQUFFLElBQUksK0VBRjNCLENBQUMsa0JBQWtCLENBQUM7OzJGQU12QiwyQkFBMkI7a0JBOUJ2QyxTQUFTOytCQUNJLHFCQUFxQixRQUd6Qjt3QkFDRixLQUFLLEVBQUUsb0NBQW9DO3dCQUMzQyxnQkFBZ0IsRUFBRSxtQ0FBbUM7d0JBQ3JELG9CQUFvQixFQUFFLFdBQVc7d0JBQ2pDLGdCQUFnQixFQUFFLFFBQVE7d0JBQzFCLEtBQUssRUFBRSxvQ0FBb0M7d0JBQzNDLGFBQWEsRUFBRSxXQUFXO3FCQUM3QixjQWFXLENBQUMsa0JBQWtCLENBQUMsY0FDcEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUM3QixDQUFDLGtCQUFrQixDQUFDO3dLQUtULGlCQUFpQjtzQkFBeEMsTUFBTTt1QkFBQyxjQUFjO2dCQTZCZCxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSWpDLFVBQVU7c0JBRGpCLFlBQVk7dUJBQUMsWUFBWTtnQkErTTFCLFNBQVM7c0JBRlIsWUFBWTt1QkFBQyxZQUFZOztzQkFDekIsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgbGF0aW5pemUgfSBmcm9tICcuL3R5cGVhaGVhZC11dGlscyc7XG5pbXBvcnQgeyBUeXBlYWhlYWRNYXRjaCB9IGZyb20gJy4vdHlwZWFoZWFkLW1hdGNoLmNsYXNzJztcbmltcG9ydCB7IFR5cGVhaGVhZERpcmVjdGl2ZSB9IGZyb20gJy4vdHlwZWFoZWFkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyB0eXBlYWhlYWRBbmltYXRpb24gfSBmcm9tICcuL3R5cGVhaGVhZC1hbmltYXRpb25zJztcbmltcG9ydCB7IFR5cGVhaGVhZE9wdGlvbkl0ZW1Db250ZXh0LCBUeXBlYWhlYWRPcHRpb25MaXN0Q29udGV4dCwgVHlwZWFoZWFkVGVtcGxhdGVNZXRob2RzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5sZXQgbmV4dFdpbmRvd0lkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0eXBlYWhlYWQtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHlwZWFoZWFkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2Ryb3Bkb3duIG9wZW4gYm90dG9tIGRyb3Bkb3duLW1lbnUnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodF0nOiBgbmVlZFNjcm9sbGJhciA/IGd1aUhlaWdodDogJ2F1dG8nYCxcbiAgICAgICAgJ1tzdHlsZS52aXNpYmlsaXR5XSc6IGAnaW5oZXJpdCdgLFxuICAgICAgICAnW2NsYXNzLmRyb3B1cF0nOiAnZHJvcHVwJyxcbiAgICAgICAgc3R5bGU6ICdwb3NpdGlvbjogYWJzb2x1dGU7ZGlzcGxheTogYmxvY2s7JyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogYCdsaXN0Ym94J2BcbiAgICB9LFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgOmhvc3QuZHJvcGRvd24ge1xuICAgICAgei1pbmRleDogMTAwMDtcbiAgICB9XG5cbiAgICA6aG9zdC5kcm9wZG93bi1tZW51LCAuZHJvcGRvd24tbWVudSB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICB9XG4gIGBcbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IFt0eXBlYWhlYWRBbmltYXRpb25dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nRm9yLCBOZ0lmXSxcbiAgICBwcm92aWRlcnM6IFtQb3NpdGlvbmluZ1NlcnZpY2VdXG59KVxuXG5leHBvcnQgY2xhc3MgVHlwZWFoZWFkQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gIEBPdXRwdXQoJ2FjdGl2ZUNoYW5nZScpIGFjdGl2ZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHBhcmVudD86IFR5cGVhaGVhZERpcmVjdGl2ZTtcbiAgcXVlcnk/OiBzdHJpbmdbXSB8IHN0cmluZztcbiAgaXNGb2N1c2VkID0gZmFsc2U7XG4gIHRvcD86IHN0cmluZztcbiAgbGVmdD86IHN0cmluZztcbiAgZGlzcGxheT86IHN0cmluZztcbiAgcGxhY2VtZW4/OiBzdHJpbmc7XG4gIGRyb3B1cD86IGJvb2xlYW47XG4gIGd1aUhlaWdodD86IHN0cmluZztcbiAgbmVlZFNjcm9sbGJhcj86IGJvb2xlYW47XG4gIGFuaW1hdGlvblN0YXRlPzogc3RyaW5nO1xuICBwb3NpdGlvblNlcnZpY2VTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGhlaWdodCA9IDA7XG4gIHBvcHVwSWQgPSBgbmdiLXR5cGVhaGVhZC0ke25leHRXaW5kb3dJZCsrfWA7XG5cbiAgZ2V0IHR5cGVhaGVhZFRlbXBsYXRlTWV0aG9kcygpOiBUeXBlYWhlYWRUZW1wbGF0ZU1ldGhvZHMge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RNYXRjaDogdGhpcy5zZWxlY3RNYXRjaC5iaW5kKHRoaXMpLFxuICAgICAgc2VsZWN0QWN0aXZlOiB0aGlzLnNlbGVjdEFjdGl2ZS5iaW5kKHRoaXMpLFxuICAgICAgaXNBY3RpdmU6IHRoaXMuaXNBY3RpdmUuYmluZCh0aGlzKVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgX2FjdGl2ZT86IFR5cGVhaGVhZE1hdGNoO1xuICBwcm90ZWN0ZWQgX21hdGNoZXM6IFR5cGVhaGVhZE1hdGNoW10gPSBbXTtcblxuICBAVmlld0NoaWxkKCd1bEVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSB1bEVsZW1lbnQ/OiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2xpRWxlbWVudHMnKVxuICBwcml2YXRlIGxpRWxlbWVudHM/OiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwb3NpdGlvblNlcnZpY2U6IFBvc2l0aW9uaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdpZCcsIHRoaXMucG9wdXBJZCk7XG4gICAgdGhpcy5wb3NpdGlvblNlcnZpY2VTdWJzY3JpcHRpb24uYWRkKHRoaXMucG9zaXRpb25TZXJ2aWNlLmV2ZW50JD8uc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0FuaW1hdGVkKSB7XG4gICAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9IHRoaXMuaXNUb3BQb3NpdGlvbiA/ICdhbmltYXRlZC11cCcgOiAnYW5pbWF0ZWQtZG93bic7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gJ3VuYW5pbWF0ZWQnO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIGdldCBhY3RpdmUoKTogVHlwZWFoZWFkTWF0Y2ggfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICBzZXQgYWN0aXZlKGFjdGl2ZTogVHlwZWFoZWFkTWF0Y2ggfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2VkKCk7XG4gIH1cblxuICBnZXQgbWF0Y2hlcygpOiBUeXBlYWhlYWRNYXRjaFtdIHtcbiAgICByZXR1cm4gdGhpcy5fbWF0Y2hlcztcbiAgfVxuXG4gIHNldCBtYXRjaGVzKHZhbHVlOiBUeXBlYWhlYWRNYXRjaFtdKSB7XG4gICAgdGhpcy5wb3NpdGlvblNlcnZpY2Uuc2V0T3B0aW9ucyh7XG4gICAgICBtb2RpZmllcnM6IHsgZmxpcDogeyBlbmFibGVkOiB0aGlzLmFkYXB0aXZlUG9zaXRpb24gfSB9LFxuICAgICAgYWxsb3dlZFBvc2l0aW9uczogWyd0b3AnLCAnYm90dG9tJ11cbiAgICB9KTtcblxuICAgIHRoaXMuX21hdGNoZXMgPSB2YWx1ZTtcblxuICAgIHRoaXMubmVlZFNjcm9sbGJhciA9IHRoaXMudHlwZWFoZWFkU2Nyb2xsYWJsZSAmJiB0aGlzLnR5cGVhaGVhZE9wdGlvbnNJblNjcm9sbGFibGVWaWV3IDwgdGhpcy5tYXRjaGVzLmxlbmd0aDtcblxuICAgIGlmICh0aGlzLnR5cGVhaGVhZFNjcm9sbGFibGUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFNjcm9sbGFibGVNb2RlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlYWhlYWRJc0ZpcnN0SXRlbUFjdGl2ZSAmJiB0aGlzLl9tYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlKHRoaXMuX21hdGNoZXNbMF0pO1xuXG4gICAgICBpZiAodGhpcy5fYWN0aXZlPy5pc0hlYWRlcigpKSB7XG4gICAgICAgIHRoaXMubmV4dEFjdGl2ZU1hdGNoKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZSAmJiAhdGhpcy50eXBlYWhlYWRJc0ZpcnN0SXRlbUFjdGl2ZSkge1xuICAgICAgY29uc3QgY29uY3VycmVuY3kgPSB0aGlzLl9tYXRjaGVzLmZpbmQobWF0Y2ggPT4gbWF0Y2gudmFsdWUgPT09IHRoaXMuX2FjdGl2ZT8udmFsdWUpO1xuXG4gICAgICBpZiAoY29uY3VycmVuY3kpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBY3RpdmUoY29uY3VycmVuY3kpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hY3RpdmUgPSB2b2lkIDA7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzVG9wUG9zaXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygndG9wJyk7XG4gIH1cblxuICBnZXQgb3B0aW9uc0xpc3RUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxUeXBlYWhlYWRPcHRpb25MaXN0Q29udGV4dD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50Lm9wdGlvbnNMaXN0VGVtcGxhdGUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgaXNBbmltYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5pc0FuaW1hdGVkIDogZmFsc2U7XG4gIH1cblxuICBnZXQgYWRhcHRpdmVQb3NpdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5hZGFwdGl2ZVBvc2l0aW9uIDogZmFsc2U7XG4gIH1cblxuICBnZXQgdHlwZWFoZWFkU2Nyb2xsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC50eXBlYWhlYWRTY3JvbGxhYmxlIDogZmFsc2U7XG4gIH1cblxuICBnZXQgdHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC50eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlldyA6IDU7XG4gIH1cblxuICBnZXQgdHlwZWFoZWFkSXNGaXJzdEl0ZW1BY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnQudHlwZWFoZWFkSXNGaXJzdEl0ZW1BY3RpdmUgOiB0cnVlO1xuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGdldCBpdGVtVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8VHlwZWFoZWFkT3B0aW9uSXRlbUNvbnRleHQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC50eXBlYWhlYWRJdGVtVGVtcGxhdGUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgY2FuU2VsZWN0SXRlbXNPbkJsdXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wYXJlbnQ/LnNlbGVjdEl0ZW1PbkJsdXI7XG4gIH1cblxuICBzZWxlY3RBY3RpdmVNYXRjaChpc0FjdGl2ZUl0ZW1DaGFuZ2VkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5wYXJlbnQ/LnR5cGVhaGVhZFNlbGVjdEZpcnN0SXRlbSkge1xuICAgICAgdGhpcy5zZWxlY3RNYXRjaCh0aGlzLl9hY3RpdmUpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wYXJlbnQ/LnR5cGVhaGVhZFNlbGVjdEZpcnN0SXRlbSAmJiBpc0FjdGl2ZUl0ZW1DaGFuZ2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdE1hdGNoKHRoaXMuX2FjdGl2ZSk7XG4gICAgfVxuICB9XG5cbiAgYWN0aXZlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWF0Y2hlcy5pbmRleE9mKHRoaXMuX2FjdGl2ZSk7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2VFdmVudC5lbWl0KGAke3RoaXMucG9wdXBJZH0tJHtpbmRleH1gKTtcbiAgfVxuXG4gIHByZXZBY3RpdmVNYXRjaCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tYXRjaGVzLmluZGV4T2YodGhpcy5fYWN0aXZlKTtcbiAgICB0aGlzLnNldEFjdGl2ZSh0aGlzLm1hdGNoZXNbXG4gICAgICBpbmRleCAtIDEgPCAwID8gdGhpcy5tYXRjaGVzLmxlbmd0aCAtIDEgOiBpbmRleCAtIDFcbiAgICAgIF0pO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZS5pc0hlYWRlcigpKSB7XG4gICAgICB0aGlzLnByZXZBY3RpdmVNYXRjaCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGVhaGVhZFNjcm9sbGFibGUpIHtcbiAgICAgIHRoaXMuc2Nyb2xsUHJldmlvdXMoaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIG5leHRBY3RpdmVNYXRjaCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX2FjdGl2ZSA/IHRoaXMubWF0Y2hlcy5pbmRleE9mKHRoaXMuX2FjdGl2ZSkgOiAtMTtcbiAgICB0aGlzLnNldEFjdGl2ZSh0aGlzLm1hdGNoZXNbXG4gICAgICBpbmRleCArIDEgPiB0aGlzLm1hdGNoZXMubGVuZ3RoIC0gMSA/IDAgOiBpbmRleCArIDFcbiAgICAgIF0pO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZT8uaXNIZWFkZXIoKSkge1xuICAgICAgdGhpcy5uZXh0QWN0aXZlTWF0Y2goKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlYWhlYWRTY3JvbGxhYmxlKSB7XG4gICAgICB0aGlzLnNjcm9sbE5leHQoaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFjdGl2ZSh2YWx1ZTogVHlwZWFoZWFkTWF0Y2gpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5zZXRBY3RpdmUodmFsdWUpO1xuICB9XG5cbiAgaGlnaGxpZ2h0KG1hdGNoOiBUeXBlYWhlYWRNYXRjaCwgcXVlcnk6IHN0cmluZ1tdIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgaXRlbVN0cjogc3RyaW5nID0gbWF0Y2gudmFsdWU7XG4gICAgbGV0IGl0ZW1TdHJIZWxwZXI6IHN0cmluZyA9ICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC50eXBlYWhlYWRMYXRpbml6ZVxuICAgICAgPyBsYXRpbml6ZShpdGVtU3RyKVxuICAgICAgOiBpdGVtU3RyKS50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCBzdGFydElkeDogbnVtYmVyO1xuICAgIGxldCB0b2tlbkxlbjogbnVtYmVyO1xuICAgIC8vIFJlcGxhY2VzIHRoZSBjYXB0dXJlIHN0cmluZyB3aXRoIHRoZSBzYW1lIHN0cmluZyBpbnNpZGUgb2YgYSBcInN0cm9uZ1wiIHRhZ1xuICAgIGlmICh0eXBlb2YgcXVlcnkgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBxdWVyeUxlbjogbnVtYmVyID0gcXVlcnkubGVuZ3RoO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVyeUxlbjsgaSArPSAxKSB7XG4gICAgICAgIC8vIHF1ZXJ5W2ldIGlzIGFscmVhZHkgbGF0aW5pemVkIGFuZCBsb3dlciBjYXNlXG4gICAgICAgIHN0YXJ0SWR4ID0gaXRlbVN0ckhlbHBlci5pbmRleE9mKHF1ZXJ5W2ldKTtcbiAgICAgICAgdG9rZW5MZW4gPSBxdWVyeVtpXS5sZW5ndGg7XG4gICAgICAgIGlmIChzdGFydElkeCA+PSAwICYmIHRva2VuTGVuID4gMCkge1xuICAgICAgICAgIGl0ZW1TdHIgPVxuICAgICAgICAgICAgYCR7aXRlbVN0ci5zdWJzdHJpbmcoMCwgc3RhcnRJZHgpfTxzdHJvbmc+JHtpdGVtU3RyLnN1YnN0cmluZyhzdGFydElkeCwgc3RhcnRJZHggKyB0b2tlbkxlbil9PC9zdHJvbmc+YCArXG4gICAgICAgICAgICBgJHtpdGVtU3RyLnN1YnN0cmluZyhzdGFydElkeCArIHRva2VuTGVuKX1gO1xuICAgICAgICAgIGl0ZW1TdHJIZWxwZXIgPVxuICAgICAgICAgICAgYCR7aXRlbVN0ckhlbHBlci5zdWJzdHJpbmcoMCwgc3RhcnRJZHgpfT8/Pz8/Pz8/JHsnPz8nLnJlcGVhdCh0b2tlbkxlbil9Pz8/Pz8/Pz8/P2AgK1xuICAgICAgICAgICAgYCR7aXRlbVN0ckhlbHBlci5zdWJzdHJpbmcoc3RhcnRJZHggKyB0b2tlbkxlbil9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocXVlcnkpIHtcbiAgICAgIC8vIHF1ZXJ5IGlzIGFscmVhZHkgbGF0aW5pemVkIGFuZCBsb3dlciBjYXNlXG4gICAgICBzdGFydElkeCA9IGl0ZW1TdHJIZWxwZXIuaW5kZXhPZihxdWVyeSk7XG4gICAgICB0b2tlbkxlbiA9IHF1ZXJ5Lmxlbmd0aDtcbiAgICAgIGlmIChzdGFydElkeCA+PSAwICYmIHRva2VuTGVuID4gMCkge1xuICAgICAgICBpdGVtU3RyID1cbiAgICAgICAgICBgJHtpdGVtU3RyLnN1YnN0cmluZygwLCBzdGFydElkeCl9PHN0cm9uZz4ke2l0ZW1TdHIuc3Vic3RyaW5nKHN0YXJ0SWR4LCBzdGFydElkeCArIHRva2VuTGVuKX08L3N0cm9uZz5gICtcbiAgICAgICAgICBgJHtpdGVtU3RyLnN1YnN0cmluZyhzdGFydElkeCArIHRva2VuTGVuKX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtU3RyO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBmb2N1c0xvc3QoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuY2FuU2VsZWN0SXRlbXNPbkJsdXIpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlKHZvaWQgMCk7XG4gICAgfVxuICB9XG5cbiAgaXNBY3RpdmUodmFsdWU6IFR5cGVhaGVhZE1hdGNoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlID09PSB2YWx1ZTtcbiAgfVxuXG4gIHNlbGVjdE1hdGNoKHZhbHVlPzogVHlwZWFoZWFkTWF0Y2gsIGV2ZW50PzogRXZlbnQpOiBib29sZWFuIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgdGhpcy5wYXJlbnQ/LmNoYW5nZU1vZGVsKHZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucGFyZW50Py50eXBlYWhlYWRPblNlbGVjdC5lbWl0KHZhbHVlKSwgMCk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXRTY3JvbGxhYmxlTW9kZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudWxFbGVtZW50KSB7XG4gICAgICB0aGlzLnVsRWxlbWVudCA9IHRoaXMuZWxlbWVudDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saUVsZW1lbnRzPy5maXJzdCkge1xuICAgICAgY29uc3QgdWxTdHlsZXMgPSBVdGlscy5nZXRTdHlsZXModGhpcy51bEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICBjb25zdCBsaVN0eWxlcyA9IFV0aWxzLmdldFN0eWxlcyh0aGlzLmxpRWxlbWVudHMuZmlyc3QubmF0aXZlRWxlbWVudCk7XG4gICAgICBjb25zdCB1bFBhZGRpbmdCb3R0b20gPSBwYXJzZUZsb2F0KCh1bFN0eWxlc1sncGFkZGluZy1ib3R0b20nXSA/IHVsU3R5bGVzWydwYWRkaW5nLWJvdHRvbSddIDogJycpXG4gICAgICAgIC5yZXBsYWNlKCdweCcsICcnKSk7XG4gICAgICBjb25zdCB1bFBhZGRpbmdUb3AgPSBwYXJzZUZsb2F0KCh1bFN0eWxlc1sncGFkZGluZy10b3AnXSA/IHVsU3R5bGVzWydwYWRkaW5nLXRvcCddIDogJzAnKVxuICAgICAgICAucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgY29uc3Qgb3B0aW9uSGVpZ2h0ID0gcGFyc2VGbG9hdCgobGlTdHlsZXMuaGVpZ2h0ID8gbGlTdHlsZXMuaGVpZ2h0IDogJzAnKVxuICAgICAgICAucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy50eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlldyAqIG9wdGlvbkhlaWdodDtcbiAgICAgIHRoaXMuZ3VpSGVpZ2h0ID0gYCR7aGVpZ2h0ICsgdWxQYWRkaW5nVG9wICsgdWxQYWRkaW5nQm90dG9tfXB4YDtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7XG4gIH1cblxuICBzY3JvbGxQcmV2aW91cyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGlFbGVtZW50cyAmJiB0aGlzLnVsRWxlbWVudCkge1xuICAgICAgY29uc3QgbGlFbGVtZW50ID0gdGhpcy5saUVsZW1lbnRzLnRvQXJyYXkoKVtpbmRleCAtIDFdO1xuICAgICAgaWYgKGxpRWxlbWVudCAmJiAhdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcobGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMudWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gbGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNjcm9sbE5leHQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChpbmRleCArIDEgPiB0aGlzLm1hdGNoZXMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmxpRWxlbWVudHMgJiYgdGhpcy51bEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGxpRWxlbWVudCA9IHRoaXMubGlFbGVtZW50cy50b0FycmF5KClbaW5kZXggKyAxXTtcbiAgICAgIGlmIChsaUVsZW1lbnQgJiYgIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGxpRWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgbGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wIC1cbiAgICAgICAgICBOdW1iZXIodGhpcy51bEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpICtcbiAgICAgICAgICBOdW1iZXIobGlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uU2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEFjdGl2ZSh2YWx1ZT86IFR5cGVhaGVhZE1hdGNoKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlID0gdmFsdWU7XG4gICAgbGV0IHByZXZpZXc7XG4gICAgaWYgKCEodGhpcy5fYWN0aXZlID09IG51bGwgfHwgdGhpcy5fYWN0aXZlLmlzSGVhZGVyKCkpKSB7XG4gICAgICBwcmV2aWV3ID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMucGFyZW50Py50eXBlYWhlYWRPblByZXZpZXcuZW1pdChwcmV2aWV3KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTY3JvbGxlZEludG9WaWV3KGVsZW06IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnVsRWxlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBjb250YWluZXJWaWV3VG9wOiBudW1iZXIgPSB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCBjb250YWluZXJWaWV3Qm90dG9tID0gY29udGFpbmVyVmlld1RvcCArIE51bWJlcih0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCk7XG4gICAgY29uc3QgZWxlbVRvcCA9IGVsZW0ub2Zmc2V0VG9wO1xuICAgIGNvbnN0IGVsZW1Cb3R0b20gPSBlbGVtVG9wICsgZWxlbS5vZmZzZXRIZWlnaHQ7XG5cbiAgICByZXR1cm4gKChlbGVtQm90dG9tIDw9IGNvbnRhaW5lclZpZXdCb3R0b20pICYmIChlbGVtVG9wID49IGNvbnRhaW5lclZpZXdUb3ApKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVsRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMudWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudWxFbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgfVxufVxuIiwiPCEtLSBpbmplY3Qgb3B0aW9ucyBsaXN0IHRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbnNMaXN0VGVtcGxhdGUgfHwgYnM0VGVtcGxhdGVcIlxuICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICBtYXRjaGVzOiBtYXRjaGVzLFxuICAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlOiBpdGVtVGVtcGxhdGUgfHwgYnNJdGVtVGVtcGxhdGUsXG4gICAgICAgICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgICAgICAgICAkaW1wbGljaXQ6IHR5cGVhaGVhZFRlbXBsYXRlTWV0aG9kc1xuICAgICAgICAgICAgIH1cIj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gZGVmYXVsdCBvcHRpb25zIGl0ZW0gdGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI2JzSXRlbVRlbXBsYXRlIGxldC1tYXRjaD1cIm1hdGNoXCIgbGV0LXF1ZXJ5PVwicXVlcnlcIj5cbiAgPHNwYW4gW2lubmVySHRtbF09XCJoaWdobGlnaHQobWF0Y2gsIHF1ZXJ5KVwiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gQm9vdHN0cmFwIDQgb3B0aW9ucyBsaXN0IHRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICNiczRUZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1tYXRjaCBsZXQtaT1cImluZGV4XCIgW25nRm9yT2ZdPVwibWF0Y2hlc1wiPlxuICAgIDxoNiAqbmdJZj1cIm1hdGNoLmlzSGVhZGVyKClcIiBjbGFzcz1cImRyb3Bkb3duLWhlYWRlclwiPnt7IG1hdGNoIH19PC9oNj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIW1hdGNoLmlzSGVhZGVyKClcIj5cbiAgICAgIDxidXR0b24gI2xpRWxlbWVudHNcbiAgICAgICAgICAgICAgW2lkXT1cInBvcHVwSWQgKyAnLScgKyBpXCJcbiAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgIFtAdHlwZWFoZWFkQW5pbWF0aW9uXT1cImFuaW1hdGlvblN0YXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1hdGNoKG1hdGNoLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2VsZWN0QWN0aXZlKG1hdGNoKVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXNBY3RpdmUobWF0Y2gpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGUgfHwgYnNJdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBtYXRjaC5pdGVtLCBpbmRleDogaSwgbWF0Y2g6IG1hdGNoLCBxdWVyeTogcXVlcnl9XCI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -1,15 +0,0 @@
|
|
1
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
2
|
-
export class TypeaheadMatch {
|
3
|
-
constructor(item, value = item, header = false) {
|
4
|
-
this.item = item;
|
5
|
-
this.value = value;
|
6
|
-
this.header = header;
|
7
|
-
}
|
8
|
-
isHeader() {
|
9
|
-
return this.header;
|
10
|
-
}
|
11
|
-
toString() {
|
12
|
-
return this.value;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLW1hdGNoLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtbWF0Y2guY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FBQzlELE1BQU0sT0FBTyxjQUFjO0lBTXpCLFlBQVksSUFBYyxFQUFFLFFBQVEsSUFBYyxFQUFFLE1BQU0sR0FBRyxLQUFLO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgVHlwZWFoZWFkTWF0Y2g8SXRlbVR5cGUgPSBhbnk+IHtcbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICByZWFkb25seSBpdGVtOiBJdGVtVHlwZTtcbiAgcHJvdGVjdGVkIGhlYWRlcjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBJdGVtVHlwZSwgdmFsdWUgPSBpdGVtIGFzIHN0cmluZywgaGVhZGVyID0gZmFsc2UpIHtcbiAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmhlYWRlciA9IGhlYWRlcjtcbiAgfVxuXG4gIGlzSGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhlYWRlcjtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,8 +0,0 @@
|
|
1
|
-
export class TypeaheadOptions {
|
2
|
-
constructor(options) {
|
3
|
-
this.placement = options.placement;
|
4
|
-
this.animation = options.animation;
|
5
|
-
this.typeaheadRef = options.typeaheadRef;
|
6
|
-
}
|
7
|
-
}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLW9wdGlvbnMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWFoZWFkL3R5cGVhaGVhZC1vcHRpb25zLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0IsWUFBWSxPQUF5QjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlYWhlYWREaXJlY3RpdmUgfSBmcm9tICcuL3R5cGVhaGVhZC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY2xhc3MgVHlwZWFoZWFkT3B0aW9ucyB7XG4gIHBsYWNlbWVudDogc3RyaW5nO1xuICBhbmltYXRpb246IGJvb2xlYW47XG4gIHR5cGVhaGVhZFJlZjogVHlwZWFoZWFkRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFR5cGVhaGVhZE9wdGlvbnMpIHtcbiAgICB0aGlzLnBsYWNlbWVudCA9IG9wdGlvbnMucGxhY2VtZW50O1xuICAgIHRoaXMuYW5pbWF0aW9uID0gb3B0aW9ucy5hbmltYXRpb247XG4gICAgdGhpcy50eXBlYWhlYWRSZWYgPSBvcHRpb25zLnR5cGVhaGVhZFJlZjtcbiAgfVxufVxuIl19
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLW9yZGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtb3JkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVHlwZWFoZWFkT3JkZXIge1xuICAvKiogZmllbGQgZm9yIHNvcnRpbmcgKi9cbiAgZmllbGQ/OiBzdHJpbmc7XG4gIC8qKiBvcmRlcmluZyBkaXJlY3Rpb24sIGNvdWxkIGJlICdhc2MnIG9yICdkZXNjJyAqL1xuICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnO1xufVxuIl19
|
@@ -1,77 +0,0 @@
|
|
1
|
-
import { latinMap } from './latin-map';
|
2
|
-
export function latinize(str) {
|
3
|
-
if (!str) {
|
4
|
-
return '';
|
5
|
-
}
|
6
|
-
return str.replace(/[^A-Za-z0-9[\] ]/g, function (a) {
|
7
|
-
return latinMap[a] || a;
|
8
|
-
});
|
9
|
-
}
|
10
|
-
export function escapeRegexp(queryToEscape) {
|
11
|
-
// Regex: capture the whole query string and replace it with the string
|
12
|
-
// that will be used to match the results, for example if the capture is
|
13
|
-
// 'a' the result will be \a
|
14
|
-
return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
|
15
|
-
}
|
16
|
-
export function tokenize(str, wordRegexDelimiters = ' ', phraseRegexDelimiters = '', delimitersForMultipleSearch) {
|
17
|
-
let result = [];
|
18
|
-
if (!delimitersForMultipleSearch) {
|
19
|
-
result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);
|
20
|
-
}
|
21
|
-
else {
|
22
|
-
const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;
|
23
|
-
const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));
|
24
|
-
const lastToken = delimitedTokens[delimitedTokens.length - 1];
|
25
|
-
if (lastToken > '') {
|
26
|
-
if (wordRegexDelimiters && phraseRegexDelimiters) {
|
27
|
-
result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);
|
28
|
-
}
|
29
|
-
else {
|
30
|
-
result.push(lastToken);
|
31
|
-
}
|
32
|
-
}
|
33
|
-
}
|
34
|
-
return result;
|
35
|
-
}
|
36
|
-
function tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters) {
|
37
|
-
const result = [];
|
38
|
-
const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +
|
39
|
-
`(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;
|
40
|
-
const preTokenized = str.split(new RegExp(regexStr, 'g'));
|
41
|
-
const preTokenizedLength = preTokenized.length;
|
42
|
-
let token;
|
43
|
-
const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');
|
44
|
-
for (let i = 0; i < preTokenizedLength; i += 1) {
|
45
|
-
token = preTokenized[i];
|
46
|
-
if (token && token.length && token !== wordRegexDelimiters) {
|
47
|
-
result.push(token.replace(replacePhraseDelimiters, ''));
|
48
|
-
}
|
49
|
-
}
|
50
|
-
return result;
|
51
|
-
}
|
52
|
-
// eslint-disable-next-line
|
53
|
-
export function getValueFromObject(object, option) {
|
54
|
-
if (!option || typeof object !== 'object') {
|
55
|
-
return object.toString();
|
56
|
-
}
|
57
|
-
if (option.endsWith('()')) {
|
58
|
-
const functionName = option.slice(0, option.length - 2);
|
59
|
-
return object[functionName]().toString();
|
60
|
-
}
|
61
|
-
const properties = option
|
62
|
-
.replace(/\[(\w+)\]/g, '.$1')
|
63
|
-
.replace(/^\./, '');
|
64
|
-
const propertiesArray = properties.split('.');
|
65
|
-
for (const property of propertiesArray) {
|
66
|
-
if (property in object) {
|
67
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
68
|
-
// @ts-ignore
|
69
|
-
object = object[property];
|
70
|
-
}
|
71
|
-
}
|
72
|
-
if (!object) {
|
73
|
-
return '';
|
74
|
-
}
|
75
|
-
return object.toString();
|
76
|
-
}
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVhaGVhZC90eXBlYWhlYWQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVc7SUFDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLFVBQVMsQ0FBUztRQUN4RCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxhQUFxQjtJQUNoRCx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLDRCQUE0QjtJQUM1QixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBVyxFQUNYLG1CQUFtQixHQUFHLEdBQUcsRUFDekIscUJBQXFCLEdBQUcsRUFBRSxFQUFFLDJCQUFvQztJQUV2RixJQUFJLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDMUIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxzQkFBc0IsR0FBRyxLQUFLLDJCQUEyQixLQUFLLENBQUM7UUFDckUsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksU0FBUyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25CLElBQUksbUJBQW1CLElBQUkscUJBQXFCLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxHQUFHLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQzFGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLEdBQVcsRUFBRSxtQkFBMkIsRUFBRSxxQkFBNkI7SUFDdEcsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLE1BQU0sUUFBUSxHQUFHLE9BQU8scUJBQXFCLFFBQVEscUJBQXFCLEtBQUs7UUFDN0UsT0FBTyxxQkFBcUIsU0FBUyxtQkFBbUIsS0FBSyxDQUFDO0lBQ2hFLE1BQU0sWUFBWSxHQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEUsTUFBTSxrQkFBa0IsR0FBVyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3ZELElBQUksS0FBYSxDQUFDO0lBQ2xCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxxQkFBcUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRS9FLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0MsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELDJCQUEyQjtBQUMzQixNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBNkMsRUFBRSxNQUFlO0lBQy9GLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFeEQsT0FBUSxNQUFNLENBQUMsWUFBWSxDQUFrQixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFXLE1BQU07U0FDOUIsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7U0FDNUIsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QixNQUFNLGVBQWUsR0FBYSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhELEtBQUssTUFBTSxRQUFRLElBQUksZUFBZSxFQUFFLENBQUM7UUFDdkMsSUFBSSxRQUFRLElBQUssTUFBa0MsRUFBRSxDQUFDO1lBQ3BELDZEQUE2RDtZQUM3RCxhQUFhO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsYXRpbk1hcCB9IGZyb20gJy4vbGF0aW4tbWFwJztcblxuZXhwb3J0IGZ1bmN0aW9uIGxhdGluaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFzdHIpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gc3RyLnJlcGxhY2UoL1teQS1aYS16MC05W1xcXSBdL2csIGZ1bmN0aW9uKGE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxhdGluTWFwW2FdIHx8IGE7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUmVnZXhwKHF1ZXJ5VG9Fc2NhcGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIFJlZ2V4OiBjYXB0dXJlIHRoZSB3aG9sZSBxdWVyeSBzdHJpbmcgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgc3RyaW5nXG4gIC8vIHRoYXQgd2lsbCBiZSB1c2VkIHRvIG1hdGNoIHRoZSByZXN1bHRzLCBmb3IgZXhhbXBsZSBpZiB0aGUgY2FwdHVyZSBpc1xuICAvLyAnYScgdGhlIHJlc3VsdCB3aWxsIGJlIFxcYVxuICByZXR1cm4gcXVlcnlUb0VzY2FwZS5yZXBsYWNlKC8oWy4/KiteJFtcXF1cXFxcKCl7fXwtXSkvZywgJ1xcXFwkMScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemUoc3RyOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgd29yZFJlZ2V4RGVsaW1pdGVycyA9ICcgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICBwaHJhc2VSZWdleERlbGltaXRlcnMgPSAnJywgZGVsaW1pdGVyc0Zvck11bHRpcGxlU2VhcmNoPzogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XG5cbiAgbGV0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgaWYgKCFkZWxpbWl0ZXJzRm9yTXVsdGlwbGVTZWFyY2gpIHtcbiAgICByZXN1bHQgPSB0b2tlbml6ZVdvcmRzQW5kUGhyYXNlcyhzdHIsIHdvcmRSZWdleERlbGltaXRlcnMsIHBocmFzZVJlZ2V4RGVsaW1pdGVycyk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbXVsdGlwbGVTZWFyY2hSZWdleFN0ciA9IGAoWyR7ZGVsaW1pdGVyc0Zvck11bHRpcGxlU2VhcmNofV0rKWA7XG4gICAgY29uc3QgZGVsaW1pdGVkVG9rZW5zID0gc3RyLnNwbGl0KG5ldyBSZWdFeHAobXVsdGlwbGVTZWFyY2hSZWdleFN0ciwgJ2cnKSk7XG4gICAgY29uc3QgbGFzdFRva2VuID0gZGVsaW1pdGVkVG9rZW5zW2RlbGltaXRlZFRva2Vucy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdFRva2VuID4gJycpIHtcbiAgICAgIGlmICh3b3JkUmVnZXhEZWxpbWl0ZXJzICYmIHBocmFzZVJlZ2V4RGVsaW1pdGVycykge1xuICAgICAgICByZXN1bHQgPSB0b2tlbml6ZVdvcmRzQW5kUGhyYXNlcyhsYXN0VG9rZW4sIHdvcmRSZWdleERlbGltaXRlcnMsIHBocmFzZVJlZ2V4RGVsaW1pdGVycyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChsYXN0VG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHRva2VuaXplV29yZHNBbmRQaHJhc2VzKHN0cjogc3RyaW5nLCB3b3JkUmVnZXhEZWxpbWl0ZXJzOiBzdHJpbmcsIHBocmFzZVJlZ2V4RGVsaW1pdGVyczogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgcmVnZXhTdHIgPSBgKD86WyR7cGhyYXNlUmVnZXhEZWxpbWl0ZXJzfV0pKFteJHtwaHJhc2VSZWdleERlbGltaXRlcnN9XSspYCArXG4gICAgYCg/Olske3BocmFzZVJlZ2V4RGVsaW1pdGVyc31dKXwoW14ke3dvcmRSZWdleERlbGltaXRlcnN9XSspYDtcbiAgY29uc3QgcHJlVG9rZW5pemVkOiBzdHJpbmdbXSA9IHN0ci5zcGxpdChuZXcgUmVnRXhwKHJlZ2V4U3RyLCAnZycpKTtcbiAgY29uc3QgcHJlVG9rZW5pemVkTGVuZ3RoOiBudW1iZXIgPSBwcmVUb2tlbml6ZWQubGVuZ3RoO1xuICBsZXQgdG9rZW46IHN0cmluZztcbiAgY29uc3QgcmVwbGFjZVBocmFzZURlbGltaXRlcnMgPSBuZXcgUmVnRXhwKGBbJHtwaHJhc2VSZWdleERlbGltaXRlcnN9XStgLCAnZycpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcHJlVG9rZW5pemVkTGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0b2tlbiA9IHByZVRva2VuaXplZFtpXTtcbiAgICBpZiAodG9rZW4gJiYgdG9rZW4ubGVuZ3RoICYmIHRva2VuICE9PSB3b3JkUmVnZXhEZWxpbWl0ZXJzKSB7XG4gICAgICByZXN1bHQucHVzaCh0b2tlbi5yZXBsYWNlKHJlcGxhY2VQaHJhc2VEZWxpbWl0ZXJzLCAnJykpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdChvYmplY3Q6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIGFueT4sIG9wdGlvbj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghb3B0aW9uIHx8IHR5cGVvZiBvYmplY3QgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG9iamVjdC50b1N0cmluZygpO1xuICB9XG5cbiAgaWYgKG9wdGlvbi5lbmRzV2l0aCgnKCknKSkge1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IG9wdGlvbi5zbGljZSgwLCBvcHRpb24ubGVuZ3RoIC0gMik7XG5cbiAgICByZXR1cm4gKG9iamVjdFtmdW5jdGlvbk5hbWVdIGFzICgpID0+IHN0cmluZykoKS50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3QgcHJvcGVydGllczogc3RyaW5nID0gb3B0aW9uXG4gICAgLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJylcbiAgICAucmVwbGFjZSgvXlxcLi8sICcnKTtcbiAgY29uc3QgcHJvcGVydGllc0FycmF5OiBzdHJpbmdbXSA9IHByb3BlcnRpZXMuc3BsaXQoJy4nKTtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXNBcnJheSkge1xuICAgIGlmIChwcm9wZXJ0eSBpbiAob2JqZWN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb2JqZWN0ID0gb2JqZWN0W3Byb3BlcnR5XTtcbiAgICB9XG4gIH1cbiAgaWYgKCFvYmplY3QpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7XG59XG4iXX0=
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
/** Default values provider for typeahead */
|
4
|
-
export class TypeaheadConfig {
|
5
|
-
constructor() {
|
6
|
-
/** sets use adaptive position */
|
7
|
-
this.adaptivePosition = false;
|
8
|
-
/** turn on/off animation */
|
9
|
-
this.isAnimated = false;
|
10
|
-
/** used to hide results on blur */
|
11
|
-
this.hideResultsOnBlur = true;
|
12
|
-
/** if true, typeahead will cancel async request on blur */
|
13
|
-
this.cancelRequestOnFocusLost = false;
|
14
|
-
/** used to choose the first item in typeahead container */
|
15
|
-
this.selectFirstItem = true;
|
16
|
-
/** used to active/inactive the first item in typeahead container */
|
17
|
-
this.isFirstItemActive = true;
|
18
|
-
/** used to choose set minimal no of characters that needs to
|
19
|
-
* be entered before typeahead kicks-in
|
20
|
-
*/
|
21
|
-
this.minLength = 1;
|
22
|
-
/**
|
23
|
-
* used to choose item on blur event
|
24
|
-
*/
|
25
|
-
this.selectItemOnBlur = false;
|
26
|
-
}
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TypeaheadConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TypeaheadConfig, providedIn: 'root' }); }
|
29
|
-
}
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TypeaheadConfig, decorators: [{
|
31
|
-
type: Injectable,
|
32
|
-
args: [{ providedIn: 'root' }]
|
33
|
-
}] });
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90eXBlYWhlYWQvdHlwZWFoZWFkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyw0Q0FBNEM7QUFFNUMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFRSxpQ0FBaUM7UUFDakMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDRCQUE0QjtRQUM1QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1DQUFtQztRQUNuQyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsMkRBQTJEO1FBQzNELDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUNqQywyREFBMkQ7UUFDM0Qsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsb0VBQW9FO1FBQ3BFLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6Qjs7V0FFRztRQUNILGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZDs7V0FFRztRQUNILHFCQUFnQixHQUFHLEtBQUssQ0FBQztLQUMxQjs4R0FyQlksZUFBZTtrSEFBZixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogRGVmYXVsdCB2YWx1ZXMgcHJvdmlkZXIgZm9yIHR5cGVhaGVhZCAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb25maWcge1xuICAvKiogc2V0cyB1c2UgYWRhcHRpdmUgcG9zaXRpb24gKi9cbiAgYWRhcHRpdmVQb3NpdGlvbiA9IGZhbHNlO1xuICAvKiogdHVybiBvbi9vZmYgYW5pbWF0aW9uICovXG4gIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbiAgLyoqIHVzZWQgdG8gaGlkZSByZXN1bHRzIG9uIGJsdXIgKi9cbiAgaGlkZVJlc3VsdHNPbkJsdXIgPSB0cnVlO1xuICAvKiogaWYgdHJ1ZSwgdHlwZWFoZWFkIHdpbGwgY2FuY2VsIGFzeW5jIHJlcXVlc3Qgb24gYmx1ciAqL1xuICBjYW5jZWxSZXF1ZXN0T25Gb2N1c0xvc3QgPSBmYWxzZTtcbiAgLyoqIHVzZWQgdG8gY2hvb3NlIHRoZSBmaXJzdCBpdGVtIGluIHR5cGVhaGVhZCBjb250YWluZXIgKi9cbiAgc2VsZWN0Rmlyc3RJdGVtID0gdHJ1ZTtcbiAgLyoqIHVzZWQgdG8gYWN0aXZlL2luYWN0aXZlIHRoZSBmaXJzdCBpdGVtIGluIHR5cGVhaGVhZCBjb250YWluZXIgKi9cbiAgaXNGaXJzdEl0ZW1BY3RpdmUgPSB0cnVlO1xuICAvKiogdXNlZCB0byBjaG9vc2Ugc2V0IG1pbmltYWwgbm8gb2YgY2hhcmFjdGVycyB0aGF0IG5lZWRzIHRvXG4gICAqIGJlIGVudGVyZWQgYmVmb3JlIHR5cGVhaGVhZCBraWNrcy1pblxuICAgKi9cbiAgbWluTGVuZ3RoID0gMTtcbiAgLyoqXG4gICAqIHVzZWQgdG8gY2hvb3NlIGl0ZW0gb24gYmx1ciBldmVudFxuICAgKi9cbiAgc2VsZWN0SXRlbU9uQmx1ciA9IGZhbHNlO1xufVxuIl19
|