ecabs-components 1.1.74 → 1.1.76
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/README.md +145 -142
- package/esm2022/lib/base/adapters/date.adapter.mjs +1 -1
- package/esm2022/lib/base/consts/buttons.consts.mjs +1 -1
- package/esm2022/lib/base/consts/country-codes.mjs +1 -1
- package/esm2022/lib/base/consts/error-messages.consts.mjs +1 -1
- package/esm2022/lib/base/consts/images.consts.mjs +1 -1
- package/esm2022/lib/base/consts/translations.consts.mjs +1 -1
- package/esm2022/lib/base/consts/waypoint.consts.mjs +1 -1
- package/esm2022/lib/base/directives/attach-embedded-view.directive.mjs +1 -1
- package/esm2022/lib/base/directives/attach-embedded-view.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/check-permissions.directive.mjs +1 -1
- package/esm2022/lib/base/directives/check-permissions.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/date-mask.directive.mjs +1 -1
- package/esm2022/lib/base/directives/date-mask.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/digits-only.directive.mjs +1 -1
- package/esm2022/lib/base/directives/digits-only.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/dom-observer.directive.mjs +1 -1
- package/esm2022/lib/base/directives/dom-observer.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/dynamic-bg-color.directive.mjs +1 -1
- package/esm2022/lib/base/directives/dynamic-bg-color.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/element-multiplier.directive.mjs +1 -1
- package/esm2022/lib/base/directives/element-multiplier.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/file-drop.directive.mjs +1 -1
- package/esm2022/lib/base/directives/file-drop.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/min-max.directive.mjs +1 -1
- package/esm2022/lib/base/directives/min-max.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/number-border.directive.mjs +1 -1
- package/esm2022/lib/base/directives/number-border.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/paginator.directive.mjs +1 -1
- package/esm2022/lib/base/directives/paginator.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/show-on-truncated.directive.mjs +1 -1
- package/esm2022/lib/base/directives/show-on-truncated.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/time-mask.directive.mjs +1 -1
- package/esm2022/lib/base/directives/time-mask.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/time-range.directive.mjs +1 -1
- package/esm2022/lib/base/directives/time-range.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/tooltip-if-truncated.directive.mjs +1 -1
- package/esm2022/lib/base/directives/tooltip-if-truncated.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/uppercase-mask.directive.mjs +1 -1
- package/esm2022/lib/base/directives/uppercase-mask.directive.module.mjs +1 -1
- package/esm2022/lib/base/element-base.mjs +1 -1
- package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +3 -3
- package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +1 -1
- package/esm2022/lib/base/models/bread-crumb.models.mjs +1 -1
- package/esm2022/lib/base/models/ecabs-date-picker-translations.models.mjs +1 -1
- package/esm2022/lib/base/models/element.models.mjs +1 -1
- package/esm2022/lib/base/models/header.models.mjs +1 -1
- package/esm2022/lib/base/models/phone.models.mjs +1 -1
- package/esm2022/lib/base/models/select.models.mjs +1 -1
- package/esm2022/lib/base/models/sidebar.models.mjs +1 -1
- package/esm2022/lib/base/models/slider.models.mjs +1 -1
- package/esm2022/lib/base/models/timepicker.models.mjs +1 -1
- package/esm2022/lib/base/models/user-claim.models.mjs +1 -1
- package/esm2022/lib/base/models/validation.models.mjs +1 -1
- package/esm2022/lib/base/models/waypoint.models.mjs +1 -4
- package/esm2022/lib/base/pipes/phone-number-country-code.pipe.mjs +1 -1
- package/esm2022/lib/base/pipes/pipes.module.mjs +1 -1
- package/esm2022/lib/base/pipes/search.pipe.mjs +1 -1
- package/esm2022/lib/base/pipes/separator-append.pipe.mjs +1 -1
- package/esm2022/lib/base/pipes/truncate.pipe.mjs +1 -1
- package/esm2022/lib/base/services/ecabs-components.service.mjs +1 -1
- package/esm2022/lib/base/services/ecabs-date-picker-translations.service.mjs +1 -1
- package/esm2022/lib/base/services/header.service.mjs +1 -1
- package/esm2022/lib/base/services/unsubscribe.service.mjs +1 -1
- package/esm2022/lib/base/utils/menu-utils.mjs +1 -1
- package/esm2022/lib/base/utils/object-utils.mjs +1 -1
- package/esm2022/lib/base/utils/phone-number.utils.mjs +1 -1
- package/esm2022/lib/base/utils/time-mask.util.mjs +1 -1
- package/esm2022/lib/base/validation/validation.component.mjs +3 -3
- package/esm2022/lib/base/validation/validation.module.mjs +1 -1
- package/esm2022/lib/base/validators/date-range.validator.mjs +1 -1
- package/esm2022/lib/base/validators/phone-number.validator.mjs +1 -1
- package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.mjs +3 -3
- package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.mjs +1 -1
- package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.component.mjs +3 -3
- package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.module.mjs +1 -1
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +3 -3
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +1 -1
- package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.component.mjs +3 -3
- package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.module.mjs +1 -1
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +3 -3
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +1 -1
- package/esm2022/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-buttons-v2/ecabs-buttons-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +3 -3
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +1 -1
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.mjs +3 -5
- package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.component.mjs +3 -3
- package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-range-picker-v2/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +1 -1
- package/esm2022/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module.mjs +1 -1
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +1 -1
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +3 -3
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +1 -1
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +3 -3
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +1 -1
- package/esm2022/lib/ecabs-header/ecabs-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-header/ecabs-header.module.mjs +1 -1
- package/esm2022/lib/ecabs-hint/ecabs-hint.component.mjs +3 -3
- package/esm2022/lib/ecabs-hint/ecabs-hint.module.mjs +1 -1
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +3 -3
- package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +1 -1
- package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +3 -3
- package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +1 -1
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.component.mjs +3 -3
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.module.mjs +1 -1
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +3 -3
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +1 -1
- package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +3 -3
- package/esm2022/lib/ecabs-loading/ecabs-loading.module.mjs +1 -1
- package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/ecabs-logo/ecabs-logo.component.mjs +3 -3
- package/esm2022/lib/ecabs-logo/ecabs-logo.module.mjs +1 -1
- package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.component.mjs +3 -3
- package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.module.mjs +1 -1
- package/esm2022/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +3 -3
- package/esm2022/lib/ecabs-note/ecabs-note.module.mjs +1 -1
- package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +3 -3
- package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +1 -1
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +1 -1
- package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.mjs +3 -3
- package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.module.mjs +1 -1
- package/esm2022/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.mjs +93 -61
- package/esm2022/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-profile/ecabs-profile.component.mjs +3 -3
- package/esm2022/lib/ecabs-profile/ecabs-profile.module.mjs +1 -1
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +3 -3
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +1 -1
- package/esm2022/lib/ecabs-segment/ecabs-segment.component.mjs +3 -3
- package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +4 -4
- package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +1 -1
- package/esm2022/lib/ecabs-select-v2/ecabs-select-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-select-v2/ecabs-select-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-sidebar/ecabs-sidebar.component.mjs +3 -3
- package/esm2022/lib/ecabs-sidebar/ecabs-sidebar.module.mjs +1 -1
- package/esm2022/lib/ecabs-slider/ecabs-slider.component.mjs +3 -3
- package/esm2022/lib/ecabs-slider/ecabs-slider.module.mjs +1 -1
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +3 -3
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +1 -1
- package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +3 -3
- package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +1 -1
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +3 -3
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.module.mjs +1 -1
- package/esm2022/lib/ecabs-time-range-input-v2/config.model.mjs +1 -1
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +3 -3
- package/esm2022/lib/ecabs-timepicker/config.model.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +3 -3
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +1 -1
- package/esm2022/lib/ecabs-validation/ecabs-validation.component.mjs +3 -3
- package/esm2022/lib/ecabs-validation/ecabs-validation.module.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ecabs-components.mjs +208 -182
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/models/waypoint.models.d.ts +1 -2
- package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.d.ts +21 -13
- package/package.json +1 -1
- package/src/assets/images/nothing-here.svg +22 -22
- package/src/assets/images/promotions.svg +3 -3
- package/src/assets/styles/material/_theme.scss +100 -100
- package/src/assets/styles/material/overrides/_autocomplete.scss +34 -34
- package/src/assets/styles/material/overrides/_button.scss +134 -134
- package/src/assets/styles/material/overrides/_card.scss +55 -55
- package/src/assets/styles/material/overrides/_chip.scss +240 -240
- package/src/assets/styles/material/overrides/_datepicker.scss +178 -178
- package/src/assets/styles/material/overrides/_dialog.scss +25 -25
- package/src/assets/styles/material/overrides/_divider.scss +5 -5
- package/src/assets/styles/material/overrides/_expansion.scss +32 -32
- package/src/assets/styles/material/overrides/_form.scss +90 -90
- package/src/assets/styles/material/overrides/_icon.scss +8 -8
- package/src/assets/styles/material/overrides/_menu.scss +13 -9
- package/src/assets/styles/material/overrides/_paginator.scss +75 -75
- package/src/assets/styles/material/overrides/_phone.scss +55 -55
- package/src/assets/styles/material/overrides/_progress.scss +7 -7
- package/src/assets/styles/material/overrides/_select.scss +199 -199
- package/src/assets/styles/material/overrides/_sidebar.scss +6 -6
- package/src/assets/styles/material/overrides/_tab.scss +41 -41
- package/src/assets/styles/material/overrides/_table.scss +27 -27
- package/src/assets/styles/material/overrides/_toaster.scss +36 -36
- package/src/assets/styles/material/overrides/_toggle.scss +54 -54
- package/src/assets/styles/material/overrides/_toolbar.scss +3 -3
- package/src/assets/styles/material/overrides/_tooltip.scss +7 -7
- package/src/assets/styles/material/overrides/index.scss +22 -22
- package/src/assets/styles/scss/base/_heading.scss +17 -17
- package/src/assets/styles/scss/base/_normalize.scss +99 -99
- package/src/assets/styles/scss/base/index.scss +2 -2
- package/src/assets/styles/scss/modules/_autocomplete.scss +42 -42
- package/src/assets/styles/scss/modules/_button.scss +272 -272
- package/src/assets/styles/scss/modules/_card.scss +46 -46
- package/src/assets/styles/scss/modules/_chip.scss +64 -64
- package/src/assets/styles/scss/modules/_datepicker.scss +435 -435
- package/src/assets/styles/scss/modules/_dialog.scss +15 -15
- package/src/assets/styles/scss/modules/_divider.scss +4 -4
- package/src/assets/styles/scss/modules/_form.scss +312 -312
- package/src/assets/styles/scss/modules/_icon.scss +30 -30
- package/src/assets/styles/scss/modules/_img.scss +32 -32
- package/src/assets/styles/scss/modules/_legend.scss +64 -64
- package/src/assets/styles/scss/modules/_list.scss +17 -17
- package/src/assets/styles/scss/modules/_map.scss +221 -221
- package/src/assets/styles/scss/modules/_percentage.scss +41 -41
- package/src/assets/styles/scss/modules/_phone.scss +32 -32
- package/src/assets/styles/scss/modules/_select.scss +17 -17
- package/src/assets/styles/scss/modules/_statuses.scss +36 -36
- package/src/assets/styles/scss/modules/_tab.scss +16 -16
- package/src/assets/styles/scss/modules/_table.scss +132 -132
- package/src/assets/styles/scss/modules/_timepicker.scss +91 -91
- package/src/assets/styles/scss/modules/_toaster.scss +53 -53
- package/src/assets/styles/scss/modules/_tooltip.scss +10 -10
- package/src/assets/styles/scss/modules/drag-drop.scss +31 -31
- package/src/assets/styles/scss/modules/index.scss +23 -23
- package/src/assets/styles/scss/utilities/_colors.scss +58 -58
- package/src/assets/styles/scss/utilities/_fonts.scss +31 -31
- package/src/assets/styles/scss/utilities/_functions.scss +27 -27
- package/src/assets/styles/scss/utilities/_helpers.scss +14 -14
- package/src/assets/styles/scss/utilities/_mixins.scss +65 -65
- package/src/assets/styles/scss/utilities/_variables.scss +32 -32
- package/src/assets/styles/scss/utilities/index.scss +6 -6
- package/src/assets/styles/styles.scss +5 -5
- package/src/assets/styles/tailwind/index.scss +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, EventEmitter, inject, Injector, Input, NgZone, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
|
|
3
3
|
import EcabsElementBaseComponent from '../base/element-base';
|
|
4
|
-
import { BehaviorSubject, combineLatest, debounceTime, map, Observable, of, } from 'rxjs';
|
|
4
|
+
import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, map, Observable, of, startWith, Subject, tap, } from 'rxjs';
|
|
5
5
|
import { switchMap } from 'rxjs/operators';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/common";
|
|
8
9
|
import * as i2 from "../base/element-wrapper/element-wrapper.component";
|
|
@@ -11,28 +12,36 @@ import * as i4 from "@angular/material/icon";
|
|
|
11
12
|
import * as i5 from "@angular/cdk/overlay";
|
|
12
13
|
import * as i6 from "../base/pipes/separator-append.pipe";
|
|
13
14
|
export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent {
|
|
14
|
-
ngZone;
|
|
15
|
-
injector;
|
|
16
15
|
matCustomInput;
|
|
17
16
|
showDeleteItem = false;
|
|
18
|
-
waypointsHistory
|
|
17
|
+
set waypointsHistory(value) {
|
|
18
|
+
this.waypointsHistory$.next(value ?? []);
|
|
19
|
+
}
|
|
19
20
|
showSuffix = false;
|
|
20
21
|
countryCode = 'MT';
|
|
21
22
|
googleLoaded;
|
|
22
23
|
waypointType;
|
|
23
|
-
|
|
24
|
+
debounceMs = 240;
|
|
24
25
|
placeResult = new EventEmitter();
|
|
25
26
|
deleteItem = new EventEmitter();
|
|
26
27
|
queryChanged = new EventEmitter();
|
|
27
28
|
isFocused$ = new BehaviorSubject(false);
|
|
28
|
-
value$ = new BehaviorSubject('');
|
|
29
29
|
waypointSuggestions$;
|
|
30
|
+
value$ = new BehaviorSubject('');
|
|
30
31
|
selectedIndex = -1;
|
|
31
32
|
displayedSuggestions = [];
|
|
33
|
+
inputQuery$ = new Subject();
|
|
34
|
+
waypointsHistory$ = new BehaviorSubject([]);
|
|
32
35
|
_value = '';
|
|
33
|
-
|
|
36
|
+
autocompleteService;
|
|
34
37
|
placesService;
|
|
35
38
|
sessionToken;
|
|
39
|
+
isResolvingPlace = false;
|
|
40
|
+
MAX_SUGGESTIONS = 10;
|
|
41
|
+
emptySuggestions = [];
|
|
42
|
+
ngZone = inject(NgZone);
|
|
43
|
+
injector = inject(Injector);
|
|
44
|
+
destroyRef = inject(DestroyRef);
|
|
36
45
|
get value() {
|
|
37
46
|
return this._value;
|
|
38
47
|
}
|
|
@@ -44,10 +53,8 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
44
53
|
this.value$.next(value);
|
|
45
54
|
this.onChange(value);
|
|
46
55
|
}
|
|
47
|
-
constructor(
|
|
56
|
+
constructor() {
|
|
48
57
|
super();
|
|
49
|
-
this.ngZone = ngZone;
|
|
50
|
-
this.injector = injector;
|
|
51
58
|
}
|
|
52
59
|
ngOnChanges(changes) {
|
|
53
60
|
const { googleLoaded } = changes ?? {};
|
|
@@ -60,41 +67,42 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
60
67
|
if (ngControl) {
|
|
61
68
|
this.control = ngControl.control;
|
|
62
69
|
}
|
|
70
|
+
this.inputQuery$
|
|
71
|
+
.pipe(debounceTime(this.debounceMs), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
|
|
72
|
+
.subscribe((query) => {
|
|
73
|
+
this.queryChanged.emit({
|
|
74
|
+
waypoint_type: this.waypointType,
|
|
75
|
+
place_name: query,
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
const googleSuggestions$ = combineLatest([
|
|
79
|
+
this.isFocused$,
|
|
80
|
+
this.value$.pipe(debounceTime(this.debounceMs), distinctUntilChanged()),
|
|
81
|
+
]).pipe(switchMap(([isFocused, value]) => this.autocompleteService && isFocused && value
|
|
82
|
+
? this.getPlacesResults(value)
|
|
83
|
+
: of(this.emptySuggestions)), startWith(this.emptySuggestions));
|
|
63
84
|
this.waypointSuggestions$ = combineLatest([
|
|
64
85
|
this.isFocused$,
|
|
65
|
-
this.
|
|
66
|
-
|
|
86
|
+
this.waypointsHistory$,
|
|
87
|
+
googleSuggestions$,
|
|
88
|
+
]).pipe(map(([isFocused, history, google]) => {
|
|
67
89
|
if (!isFocused) {
|
|
68
|
-
return
|
|
69
|
-
}
|
|
70
|
-
if (!value) {
|
|
71
|
-
return of(this.waypointsHistory);
|
|
90
|
+
return this.emptySuggestions;
|
|
72
91
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.
|
|
77
|
-
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
onChange = () => { };
|
|
81
|
-
onTouch = () => { };
|
|
82
|
-
getWaypointResults(query) {
|
|
83
|
-
this.queryChanged.emit({
|
|
84
|
-
waypoint_type: this.waypointType,
|
|
85
|
-
place_name: query,
|
|
86
|
-
});
|
|
87
|
-
return combineLatest([
|
|
88
|
-
of(this.waypointsHistory),
|
|
89
|
-
this.getPlacesResults(query),
|
|
90
|
-
]).pipe(map(([history, google]) => {
|
|
91
|
-
const historyItems = history ?? [], googleItems = google ?? [];
|
|
92
|
-
return [...historyItems, ...googleItems];
|
|
92
|
+
const merged = [...(history ?? []), ...(google ?? [])];
|
|
93
|
+
return merged.slice(0, this.MAX_SUGGESTIONS); // Dropdown shows max 10 items total
|
|
94
|
+
}), tap((cappedSuggestions) => {
|
|
95
|
+
this.displayedSuggestions = cappedSuggestions;
|
|
96
|
+
this.selectedIndex = cappedSuggestions?.length ? 0 : -1;
|
|
93
97
|
}));
|
|
94
98
|
}
|
|
99
|
+
onChange = () => {
|
|
100
|
+
};
|
|
101
|
+
onTouch = () => {
|
|
102
|
+
};
|
|
95
103
|
getPlacesResults(query) {
|
|
96
104
|
return new Observable((observer) => {
|
|
97
|
-
this.
|
|
105
|
+
this.autocompleteService.getPlacePredictions({
|
|
98
106
|
input: query,
|
|
99
107
|
componentRestrictions: { country: this.countryCode },
|
|
100
108
|
sessionToken: this.sessionToken,
|
|
@@ -107,32 +115,53 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
107
115
|
});
|
|
108
116
|
}
|
|
109
117
|
toWaypointSuggestions(predictions) {
|
|
110
|
-
return (predictions ?? [])
|
|
118
|
+
return ((predictions ?? [])
|
|
119
|
+
// Drops predictions without a place_id because selection and booking both require it
|
|
120
|
+
.filter((prediction) => !!prediction.place_id)
|
|
121
|
+
.map((prediction) => ({
|
|
111
122
|
additional_info: prediction.description,
|
|
112
123
|
place_id: prediction.place_id,
|
|
113
|
-
source: 'google',
|
|
114
124
|
prediction_term: prediction.terms,
|
|
115
|
-
}));
|
|
125
|
+
})));
|
|
126
|
+
}
|
|
127
|
+
onUserInput(query) {
|
|
128
|
+
this.inputQuery$.next(query);
|
|
129
|
+
}
|
|
130
|
+
trackBySuggestion(index, suggestion) {
|
|
131
|
+
const id = suggestion.suggestion_id ??
|
|
132
|
+
suggestion.place_id ??
|
|
133
|
+
suggestion.additional_info ??
|
|
134
|
+
`${index}`;
|
|
135
|
+
return suggestion.prediction_term ? `google:${id}` : `history:${id}`;
|
|
116
136
|
}
|
|
117
137
|
onSelectSuggestion(suggestion) {
|
|
138
|
+
if (this.isResolvingPlace) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
118
141
|
const { additional_info, place_id } = suggestion ?? {};
|
|
142
|
+
if (!place_id) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
this.isResolvingPlace = true;
|
|
119
146
|
this.value = additional_info;
|
|
147
|
+
this.isFocused$.next(false);
|
|
148
|
+
this.resolveByPlaceId(place_id, additional_info);
|
|
149
|
+
}
|
|
150
|
+
resolveByPlaceId(placeId, text) {
|
|
120
151
|
this.placesService.getDetails({
|
|
121
|
-
placeId
|
|
152
|
+
placeId,
|
|
122
153
|
sessionToken: this.sessionToken,
|
|
123
154
|
fields: ['address_components', 'geometry.location', 'place_id'],
|
|
124
155
|
}, (place, status) => {
|
|
125
156
|
this.ngZone.run(() => {
|
|
126
157
|
if (status === google.maps.places.PlacesServiceStatus.OK && place) {
|
|
127
|
-
this.placeResult.emit({
|
|
128
|
-
place,
|
|
129
|
-
text: additional_info,
|
|
130
|
-
});
|
|
158
|
+
this.placeResult.emit({ place, text });
|
|
131
159
|
}
|
|
132
160
|
else {
|
|
133
|
-
console.warn('Place details lookup failed', { status,
|
|
161
|
+
console.warn('Place details lookup failed', { status, placeId });
|
|
134
162
|
}
|
|
135
163
|
this.resetSessionToken();
|
|
164
|
+
this.isResolvingPlace = false;
|
|
136
165
|
});
|
|
137
166
|
});
|
|
138
167
|
}
|
|
@@ -169,17 +198,18 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
169
198
|
this.onTouch();
|
|
170
199
|
}
|
|
171
200
|
onFocus() {
|
|
172
|
-
if (!this.value) {
|
|
201
|
+
if (!this.value && this.autocompleteService) {
|
|
173
202
|
this.resetSessionToken();
|
|
174
203
|
}
|
|
175
204
|
setTimeout(() => this.ngZone.run(() => this.isFocused$.next(true)));
|
|
176
205
|
}
|
|
177
206
|
writeValue(nextValue = '') {
|
|
178
|
-
|
|
207
|
+
const next = nextValue ?? '';
|
|
208
|
+
if (this._value === next) {
|
|
179
209
|
return;
|
|
180
210
|
}
|
|
181
|
-
this._value =
|
|
182
|
-
this.value$.next(
|
|
211
|
+
this._value = next;
|
|
212
|
+
this.value$.next(next);
|
|
183
213
|
}
|
|
184
214
|
registerOnChange(fn) {
|
|
185
215
|
this.onChange = fn;
|
|
@@ -187,29 +217,31 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
187
217
|
registerOnTouched(fn) {
|
|
188
218
|
this.onTouch = fn;
|
|
189
219
|
}
|
|
190
|
-
|
|
220
|
+
delete() {
|
|
191
221
|
this.deleteItem.emit();
|
|
192
222
|
}
|
|
193
|
-
|
|
223
|
+
clear() {
|
|
194
224
|
this.value = '';
|
|
225
|
+
this.inputQuery$.next('');
|
|
195
226
|
this.onTouch();
|
|
227
|
+
this.matCustomInput?.nativeElement?.focus();
|
|
196
228
|
}
|
|
197
229
|
initGoogle() {
|
|
198
|
-
this.
|
|
230
|
+
this.autocompleteService = new google.maps.places.AutocompleteService();
|
|
199
231
|
this.placesService = new google.maps.places.PlacesService(document.createElement('div'));
|
|
200
232
|
this.resetSessionToken();
|
|
201
233
|
}
|
|
202
234
|
resetSessionToken() {
|
|
203
235
|
this.sessionToken = new google.maps.places.AutocompleteSessionToken();
|
|
204
236
|
}
|
|
205
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, deps: [
|
|
206
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteV2Component, selector: "ecabs-place-autocomplete-v2", inputs: { showDeleteItem: "showDeleteItem", waypointsHistory: "waypointsHistory", showSuffix: "showSuffix", countryCode: "countryCode", googleLoaded: "googleLoaded", waypointType: "waypointType",
|
|
237
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteV2Component, selector: "ecabs-place-autocomplete-v2", inputs: { showDeleteItem: "showDeleteItem", waypointsHistory: "waypointsHistory", showSuffix: "showSuffix", countryCode: "countryCode", googleLoaded: "googleLoaded", waypointType: "waypointType", debounceMs: "debounceMs" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem", queryChanged: "queryChanged" }, providers: [
|
|
207
239
|
{
|
|
208
240
|
provide: NG_VALUE_ACCESSOR,
|
|
209
241
|
useExisting: EcabsPlaceAutocompleteV2Component,
|
|
210
242
|
multi: true,
|
|
211
243
|
},
|
|
212
|
-
], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"autocomplete-ui w-full\">\n <section class=\"form-field__input--wrapper w-full\">\n <input #matCustomAutocompleteInput\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [id]=\"name\"\n class=\"form-field__input w-full\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"off\"\n (focus)=\"onFocus()\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\"\n />\n <div class=\"form-field__input--suffix\"
|
|
244
|
+
], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"autocomplete-ui w-full\">\r\n <section class=\"form-field__input--wrapper w-full\">\r\n <input #matCustomAutocompleteInput\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (focus)=\"onFocus()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (ngModelChange)=\"onUserInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <div *ngIf=\"showSuffix\"\r\n class=\"form-field__input--suffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (keydown.enter)=\"delete()\"\r\n (click)=\"delete()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon *ngIf=\"!showDeleteItem && value\"\r\n class=\"suffix cursor-pointer\"\r\n (keydown.enter)=\"clear()\"\r\n (click)=\"clear()\">\r\n close\r\n </mat-icon>\r\n </div>\r\n </section>\r\n <!-- Custom dropdown -->\r\n <ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"false\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isFocused$ | async\">\r\n <ul class=\"autocomplete-ui__container\">\r\n <li *ngFor=\"let suggestion of waypointSuggestions$ | async; let i = index; trackBy: trackBySuggestion\"\r\n class=\"autocomplete-ui--item flex items-center justify-between hover:bg-gray-100\"\r\n [class.active]=\"i === selectedIndex\"\r\n (mousedown)=\"onSelectSuggestion(suggestion)\">\r\n <ng-container *ngIf=\"!suggestion?.prediction_term; else purePlaceResultTpl\">\r\n <div class=\"w-full truncate\">\r\n {{ suggestion?.additional_info }}\r\n </div>\r\n <mat-icon svgIcon=\"ph-regular:clock-counter\"\r\n class=\"w-5 h-5 text-xl text-gray-400 hover:!text-gray-400\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <ng-template #purePlaceResultTpl>\r\n <ul class=\"w-full flex items-center gap-x-1 leading-0 overflow-hidden whitespace-nowrap\">\r\n <li>\r\n {{ suggestion?.prediction_term?.[0]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[1]?.value\"\r\n class=\"text-xs text-gray-600 truncate\">\r\n {{ suggestion?.prediction_term?.[1]?.value | separatorAppend: suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[2]?.value\"\r\n class=\"text-xs text-gray-600 font-semibold truncate\">\r\n {{ suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400)}mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.SeparatorAppendPipe, name: "separatorAppend" }] });
|
|
213
245
|
}
|
|
214
246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, decorators: [{
|
|
215
247
|
type: Component,
|
|
@@ -219,8 +251,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
219
251
|
useExisting: EcabsPlaceAutocompleteV2Component,
|
|
220
252
|
multi: true,
|
|
221
253
|
},
|
|
222
|
-
], template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"autocomplete-ui w-full\">\n <section class=\"form-field__input--wrapper w-full\">\n <input #matCustomAutocompleteInput\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [id]=\"name\"\n class=\"form-field__input w-full\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"off\"\n (focus)=\"onFocus()\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\"\n />\n <div class=\"form-field__input--suffix\"
|
|
223
|
-
}], ctorParameters: function () { return [
|
|
254
|
+
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"autocomplete-ui w-full\">\r\n <section class=\"form-field__input--wrapper w-full\">\r\n <input #matCustomAutocompleteInput\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (focus)=\"onFocus()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (ngModelChange)=\"onUserInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <div *ngIf=\"showSuffix\"\r\n class=\"form-field__input--suffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (keydown.enter)=\"delete()\"\r\n (click)=\"delete()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon *ngIf=\"!showDeleteItem && value\"\r\n class=\"suffix cursor-pointer\"\r\n (keydown.enter)=\"clear()\"\r\n (click)=\"clear()\">\r\n close\r\n </mat-icon>\r\n </div>\r\n </section>\r\n <!-- Custom dropdown -->\r\n <ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"false\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isFocused$ | async\">\r\n <ul class=\"autocomplete-ui__container\">\r\n <li *ngFor=\"let suggestion of waypointSuggestions$ | async; let i = index; trackBy: trackBySuggestion\"\r\n class=\"autocomplete-ui--item flex items-center justify-between hover:bg-gray-100\"\r\n [class.active]=\"i === selectedIndex\"\r\n (mousedown)=\"onSelectSuggestion(suggestion)\">\r\n <ng-container *ngIf=\"!suggestion?.prediction_term; else purePlaceResultTpl\">\r\n <div class=\"w-full truncate\">\r\n {{ suggestion?.additional_info }}\r\n </div>\r\n <mat-icon svgIcon=\"ph-regular:clock-counter\"\r\n class=\"w-5 h-5 text-xl text-gray-400 hover:!text-gray-400\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <ng-template #purePlaceResultTpl>\r\n <ul class=\"w-full flex items-center gap-x-1 leading-0 overflow-hidden whitespace-nowrap\">\r\n <li>\r\n {{ suggestion?.prediction_term?.[0]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[1]?.value\"\r\n class=\"text-xs text-gray-600 truncate\">\r\n {{ suggestion?.prediction_term?.[1]?.value | separatorAppend: suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[2]?.value\"\r\n class=\"text-xs text-gray-600 font-semibold truncate\">\r\n {{ suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400)}mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"] }]
|
|
255
|
+
}], ctorParameters: function () { return []; }, propDecorators: { matCustomInput: [{
|
|
224
256
|
type: ViewChild,
|
|
225
257
|
args: ['matCustomAutocompleteInput', { static: false }]
|
|
226
258
|
}], showDeleteItem: [{
|
|
@@ -235,7 +267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
235
267
|
type: Input
|
|
236
268
|
}], waypointType: [{
|
|
237
269
|
type: Input
|
|
238
|
-
}],
|
|
270
|
+
}], debounceMs: [{
|
|
239
271
|
type: Input
|
|
240
272
|
}], placeResult: [{
|
|
241
273
|
type: Output
|
|
@@ -244,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
244
276
|
}], queryChanged: [{
|
|
245
277
|
type: Output
|
|
246
278
|
}] } });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQU83RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osR0FBRyxFQUNILFVBQVUsRUFDVixFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLHlCQUF5QjtJQWdFZDtJQUNBO0lBN0RuQixjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUd2QixnQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO0lBRzVDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUduQixZQUFZLENBQVU7SUFHdEIsWUFBWSxDQUFtQjtJQUcvQixZQUFZLEdBQUcsR0FBRyxDQUFDO0lBR1Ys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QUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO3dHQXZSVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywyWEFSakM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysb01DL0NILDZqR0FvRUE7OzRGRG5CYSxpQ0FBaUM7a0JBWjdDLFNBQVM7K0JBQ0UsNkJBQTZCLGFBRzVCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUNBQW1DOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvSEFPRCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUkxRCxjQUFjO3NCQURiLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJRyxXQUFXO3NCQURuQixNQUFNO2dCQUlFLFVBQVU7c0JBRGxCLE1BQU07Z0JBSUUsWUFBWTtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcbmltcG9ydCB7XG4gIEdvb2dsZVBsYWNlUmVzdWx0LFxuICBXYXlwb2ludFF1ZXJ5Q2hhbmdlLFxuICBXYXlwb2ludFN1Z2dlc3Rpb24sXG59IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgQXV0b2NvbXBsZXRlUHJlZGljdGlvbiA9IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVQcmVkaWN0aW9uO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudFxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBWaWV3Q2hpbGQoJ21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1hdEN1c3RvbUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dEZWxldGVJdGVtID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgd2F5cG9pbnRzSGlzdG9yeTogV2F5cG9pbnRTdWdnZXN0aW9uW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBzaG93U3VmZml4ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgY291bnRyeUNvZGUgPSAnTVQnO1xuXG4gIEBJbnB1dCgpXG4gIGdvb2dsZUxvYWRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICB3YXlwb2ludFR5cGU6IFdheXBvaW50VHlwZUVudW07XG5cbiAgQElucHV0KClcbiAgZGVib3VuY2VUaW1lID0gMjQwO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBwbGFjZVJlc3VsdDogRXZlbnRFbWl0dGVyPEdvb2dsZVBsYWNlUmVzdWx0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxXYXlwb2ludFF1ZXJ5Q2hhbmdlPigpO1xuXG4gIGlzRm9jdXNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgd2F5cG9pbnRTdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+O1xuXG4gIHNlbGVjdGVkSW5kZXggPSAtMTtcbiAgZGlzcGxheWVkU3VnZ2VzdGlvbnM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBfdmFsdWUgPSAnJztcblxuICBwcml2YXRlIG1hcEF1dG9jb21wbGV0ZVNlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlO1xuICBwcml2YXRlIHBsYWNlc1NlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlO1xuICBwcml2YXRlIHNlc3Npb25Ub2tlbjogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbjtcblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IGdvb2dsZUxvYWRlZCB9ID0gY2hhbmdlcyA/PyB7fTtcblxuICAgIGlmIChnb29nbGVMb2FkZWQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5pbml0R29vZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoXG4gICAgICBOZ0NvbnRyb2wsXG4gICAgICBudWxsLFxuICAgICkgYXMgTmdDb250cm9sO1xuXG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHRoaXMud2F5cG9pbnRTdWdnZXN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaXNGb2N1c2VkJCxcbiAgICAgIHRoaXMudmFsdWUkLFxuICAgIF0pLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgc3dpdGNoTWFwKChbaXNGb2N1c2VkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0ZvY3VzZWQpIHtcbiAgICAgICAgICByZXR1cm4gb2YoW10gYXMgV2F5cG9pbnRTdWdnZXN0aW9uW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBvZih0aGlzLndheXBvaW50c0hpc3RvcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2F5cG9pbnRSZXN1bHRzKHZhbHVlKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXN1bHRzKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSByZXN1bHRzPy5sZW5ndGggPyAwIDogLTE7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBnZXRXYXlwb2ludFJlc3VsdHMocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+IHtcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlZC5lbWl0KHtcbiAgICAgIHdheXBvaW50X3R5cGU6IHRoaXMud2F5cG9pbnRUeXBlLFxuICAgICAgcGxhY2VfbmFtZTogcXVlcnksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBvZih0aGlzLndheXBvaW50c0hpc3RvcnkpLFxuICAgICAgdGhpcy5nZXRQbGFjZXNSZXN1bHRzKHF1ZXJ5KSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbaGlzdG9yeSwgZ29vZ2xlXSkgPT4ge1xuICAgICAgICBjb25zdCBoaXN0b3J5SXRlbXMgPSBoaXN0b3J5ID8/IFtdLFxuICAgICAgICAgIGdvb2dsZUl0ZW1zID0gZ29vZ2xlID8/IFtdO1xuXG4gICAgICAgIHJldHVybiBbLi4uaGlzdG9yeUl0ZW1zLCAuLi5nb29nbGVJdGVtc107XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZXNSZXN1bHRzKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgdGhpcy5tYXBBdXRvY29tcGxldGVTZXJ2aWNlLmdldFBsYWNlUHJlZGljdGlvbnMoXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dDogcXVlcnksXG4gICAgICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6IHRoaXMuY291bnRyeUNvZGUgfSxcbiAgICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxuICAgICAgICB9LFxuICAgICAgICAocHJlZGljdGlvbnMpID0+IHtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLnRvV2F5cG9pbnRTdWdnZXN0aW9ucyhwcmVkaWN0aW9ucykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvV2F5cG9pbnRTdWdnZXN0aW9ucyhcbiAgICBwcmVkaWN0aW9uczogQXV0b2NvbXBsZXRlUHJlZGljdGlvbltdIHwgbnVsbCxcbiAgKTogV2F5cG9pbnRTdWdnZXN0aW9uW10ge1xuICAgIHJldHVybiAocHJlZGljdGlvbnMgPz8gW10pLm1hcCgocHJlZGljdGlvbikgPT4gKHtcbiAgICAgIGFkZGl0aW9uYWxfaW5mbzogcHJlZGljdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgIHBsYWNlX2lkOiBwcmVkaWN0aW9uLnBsYWNlX2lkLFxuICAgICAgc291cmNlOiAnZ29vZ2xlJyxcbiAgICAgIHByZWRpY3Rpb25fdGVybTogcHJlZGljdGlvbi50ZXJtcyxcbiAgICB9KSk7XG4gIH1cblxuICBvblNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogV2F5cG9pbnRTdWdnZXN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgeyBhZGRpdGlvbmFsX2luZm8sIHBsYWNlX2lkIH0gPSBzdWdnZXN0aW9uID8/IHt9O1xuXG4gICAgdGhpcy52YWx1ZSA9IGFkZGl0aW9uYWxfaW5mbztcbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UuZ2V0RGV0YWlscyhcbiAgICAgIHtcbiAgICAgICAgcGxhY2VJZDogcGxhY2VfaWQsXG4gICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXG4gICAgICAgIGZpZWxkczogWydhZGRyZXNzX2NvbXBvbmVudHMnLCAnZ2VvbWV0cnkubG9jYXRpb24nLCAncGxhY2VfaWQnXSxcbiAgICAgIH0sXG4gICAgICAocGxhY2UsIHN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgPT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LICYmIHBsYWNlKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlUmVzdWx0LmVtaXQoe1xuICAgICAgICAgICAgICBwbGFjZSxcbiAgICAgICAgICAgICAgdGV4dDogYWRkaXRpb25hbF9pbmZvLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignUGxhY2UgZGV0YWlscyBsb29rdXAgZmFpbGVkJywgeyBzdGF0dXMsIHBsYWNlX2lkIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPVxuICAgICAgICAgICh0aGlzLnNlbGVjdGVkSW5kZXggKyAxKSAlIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgKHRoaXMuc2VsZWN0ZWRJbmRleCAtIDEgKyB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zLmxlbmd0aCkgJVxuICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgIHRoaXMub25TZWxlY3RTdWdnZXN0aW9uKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaXNGb2N1c2VkJC5uZXh0KHRydWUpKSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG5leHRWYWx1ZSA9ICcnKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlID09PSBuZXh0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IG5leHRWYWx1ZTtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KG5leHRWYWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBvbkRlbGV0ZUl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVJdGVtLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ2xlYW4oKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0R29vZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMubWFwQXV0b2NvbXBsZXRlU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xuXG4gICAgdGhpcy5wbGFjZXNTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlKFxuICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXG4gICAgKTtcblxuICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTZXNzaW9uVG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy5zZXNzaW9uVG9rZW4gPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbigpO1xuICB9XG59XG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpIHctZnVsbFwiPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXdyYXBwZXIgdy1mdWxsXCI+XG4gICAgICA8aW5wdXQgI21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0XG4gICAgICAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICAgICAgICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgICAgIFtpZF09XCJuYW1lXCJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbFwiXG4gICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICBzcGVsbGNoZWNrPVwib2ZmXCJcbiAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0tc3VmZml4XCIgKm5nSWY9XCJzaG93U3VmZml4XCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNob3dEZWxldGVJdGVtXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyIGRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlSXRlbSgpXCI+XG4gICAgICAgICAgZGVsZXRlXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiIXNob3dEZWxldGVJdGVtICYmIHZhbHVlXCIgKGNsaWNrKT1cIm9uQ2xlYW4oKVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8IS0tIEN1c3RvbSBkcm9wZG93biAtLT5cbiAgICA8bmctdGVtcGxhdGUgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cInRyaWdnZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzRm9jdXNlZCQgfCBhc3luY1wiPlxuICAgICAgPHVsIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpX19jb250YWluZXJcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIHdheXBvaW50U3VnZ2VzdGlvbnMkIHwgYXN5bmMgfCBzbGljZTowOjEwOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpLS1pdGVtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBob3ZlcjpiZy1ncmF5LTEwMFwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IHNlbGVjdGVkSW5kZXhcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbilcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VnZ2VzdGlvbj8uc291cmNlID09PSAnaGlzdG9yeSc7IGVsc2UgcHVyZVBsYWNlUmVzdWx0VHBsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LmFkZGl0aW9uYWxfaW5mbyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWdnZXN0aW9uPy5zb3VyY2UgPT09ICdoaXN0b3J5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTUgaC01IHRleHQteGwgdGV4dC1ncmF5LTQwMCAhaG92ZXI6dGV4dC1ncmF5LTQwMFwiPlxuICAgICAgICAgICAgICBoaXN0b3J5XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwdXJlUGxhY2VSZXN1bHRUcGw+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMSBsZWFkaW5nLTAgb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMF0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsxXT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMV0/LnZhbHVlIHwgc2VwYXJhdG9yQXBwZW5kOiBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMl0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgZm9udC1zZW1pYm9sZCB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cbiJdfQ==
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGlCQUFpQixFQUFFLFNBQVMsR0FBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLHlCQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBRzdELE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFVBQVUsRUFDVixFQUFFLEVBQ0YsU0FBUyxFQUNULE9BQU8sRUFDUCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBZTlELE1BQU0sT0FBTyxpQ0FDWCxTQUFRLHlCQUF5QjtJQUdqQyxjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUNJLGdCQUFnQixDQUFDLEtBQTJC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MkVBOzs0RkQ1QmEsaUNBQWlDO2tCQVo3QyxTQUFTOytCQUNFLDZCQUE2QixhQUc1Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLG1DQUFtQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7MEVBTUQsY0FBYztzQkFEYixTQUFTO3VCQUFDLDRCQUE0QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFJeEQsY0FBYztzQkFEYixLQUFLO2dCQUlGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFNTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLE1BQU07Z0JBSUUsVUFBVTtzQkFEbEIsTUFBTTtnQkFJRSxZQUFZO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBEZXN0cm95UmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sLH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7V2F5cG9pbnRUeXBlRW51bX0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcclxuaW1wb3J0IHtHb29nbGVQbGFjZVJlc3VsdCwgV2F5cG9pbnRRdWVyeUNoYW5nZSwgV2F5cG9pbnRTdWdnZXN0aW9uLH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvd2F5cG9pbnQubW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgY29tYmluZUxhdGVzdCxcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgbWFwLFxyXG4gIE9ic2VydmFibGUsXHJcbiAgb2YsXHJcbiAgc3RhcnRXaXRoLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFwLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgQXV0b2NvbXBsZXRlUHJlZGljdGlvbiA9IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVQcmVkaWN0aW9uO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS12Mi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1BsYWNlQXV0b2NvbXBsZXRlVjJDb21wb25lbnRcclxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBWaWV3Q2hpbGQoJ21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0Jywge3N0YXRpYzogZmFsc2V9KVxyXG4gIG1hdEN1c3RvbUlucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dEZWxldGVJdGVtID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHdheXBvaW50c0hpc3RvcnkodmFsdWU6IFdheXBvaW50U3VnZ2VzdGlvbltdKSB7XHJcbiAgICB0aGlzLndheXBvaW50c0hpc3RvcnkkLm5leHQodmFsdWUgPz8gW10pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzaG93U3VmZml4ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY291bnRyeUNvZGUgPSAnTVQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdvb2dsZUxvYWRlZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICB3YXlwb2ludFR5cGU6IFdheXBvaW50VHlwZUVudW07XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGVib3VuY2VNcyA9IDI0MDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgcGxhY2VSZXN1bHQ6IEV2ZW50RW1pdHRlcjxHb29nbGVQbGFjZVJlc3VsdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJlYWRvbmx5IGRlbGV0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJlYWRvbmx5IHF1ZXJ5Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8V2F5cG9pbnRRdWVyeUNoYW5nZT4oKTtcclxuXHJcbiAgaXNGb2N1c2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHdheXBvaW50U3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPjtcclxuICB2YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBzZWxlY3RlZEluZGV4ID0gLTE7XHJcbiAgZGlzcGxheWVkU3VnZ2VzdGlvbnM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRRdWVyeSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB3YXlwb2ludHNIaXN0b3J5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XHJcbiAgICBXYXlwb2ludFN1Z2dlc3Rpb25bXVxyXG4gID4oW10pO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgYXV0b2NvbXBsZXRlU2VydmljZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBwbGFjZXNTZXJ2aWNlOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZTtcclxuICBwcml2YXRlIHNlc3Npb25Ub2tlbjogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbjtcclxuICBwcml2YXRlIGlzUmVzb2x2aW5nUGxhY2UgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfU1VHR0VTVElPTlMgPSAxMDtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVtcHR5U3VnZ2VzdGlvbnM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy52YWx1ZSQubmV4dCh2YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHtnb29nbGVMb2FkZWR9ID0gY2hhbmdlcyA/PyB7fTtcclxuXHJcbiAgICBpZiAoZ29vZ2xlTG9hZGVkPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5pbml0R29vZ2xlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG5cclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5wdXRRdWVyeSRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VNcyksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeSkgPT4ge1xyXG4gICAgICAgIHRoaXMucXVlcnlDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgd2F5cG9pbnRfdHlwZTogdGhpcy53YXlwb2ludFR5cGUsXHJcbiAgICAgICAgICBwbGFjZV9uYW1lOiBxdWVyeSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3QgZ29vZ2xlU3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPiA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLmlzRm9jdXNlZCQsXHJcbiAgICAgIHRoaXMudmFsdWUkLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VNcyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChbaXNGb2N1c2VkLCB2YWx1ZV0pID0+XHJcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlICYmIGlzRm9jdXNlZCAmJiB2YWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLmdldFBsYWNlc1Jlc3VsdHModmFsdWUpXHJcbiAgICAgICAgICA6IG9mKHRoaXMuZW1wdHlTdWdnZXN0aW9ucyksXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmVtcHR5U3VnZ2VzdGlvbnMpLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLndheXBvaW50U3VnZ2VzdGlvbnMkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkJCxcclxuICAgICAgdGhpcy53YXlwb2ludHNIaXN0b3J5JCxcclxuICAgICAgZ29vZ2xlU3VnZ2VzdGlvbnMkLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKChbaXNGb2N1c2VkLCBoaXN0b3J5LCBnb29nbGVdKSA9PiB7XHJcbiAgICAgICAgaWYgKCFpc0ZvY3VzZWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVtcHR5U3VnZ2VzdGlvbnM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtZXJnZWQgPSBbLi4uKGhpc3RvcnkgPz8gW10pLCAuLi4oZ29vZ2xlID8/IFtdKV07XHJcblxyXG4gICAgICAgIHJldHVybiBtZXJnZWQuc2xpY2UoMCwgdGhpcy5NQVhfU1VHR0VTVElPTlMpOyAvLyBEcm9wZG93biBzaG93cyBtYXggMTAgaXRlbXMgdG90YWxcclxuICAgICAgfSksXHJcbiAgICAgIHRhcCgoY2FwcGVkU3VnZ2VzdGlvbnMpID0+IHtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zID0gY2FwcGVkU3VnZ2VzdGlvbnM7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gY2FwcGVkU3VnZ2VzdGlvbnM/Lmxlbmd0aCA/IDAgOiAtMTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZ2V0UGxhY2VzUmVzdWx0cyhxdWVyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxXYXlwb2ludFN1Z2dlc3Rpb25bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xyXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UuZ2V0UGxhY2VQcmVkaWN0aW9ucyhcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbnB1dDogcXVlcnksXHJcbiAgICAgICAgICBjb21wb25lbnRSZXN0cmljdGlvbnM6IHtjb3VudHJ5OiB0aGlzLmNvdW50cnlDb2RlfSxcclxuICAgICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAocHJlZGljdGlvbnMpID0+IHtcclxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy50b1dheXBvaW50U3VnZ2VzdGlvbnMocHJlZGljdGlvbnMpKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9XYXlwb2ludFN1Z2dlc3Rpb25zKFxyXG4gICAgcHJlZGljdGlvbnM6IEF1dG9jb21wbGV0ZVByZWRpY3Rpb25bXSB8IG51bGwsXHJcbiAgKTogV2F5cG9pbnRTdWdnZXN0aW9uW10ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKHByZWRpY3Rpb25zID8/IFtdKVxyXG4gICAgICAgIC8vIERyb3BzIHByZWRpY3Rpb25zIHdpdGhvdXQgYSBwbGFjZV9pZCBiZWNhdXNlIHNlbGVjdGlvbiBhbmQgYm9va2luZyBib3RoIHJlcXVpcmUgaXRcclxuICAgICAgICAuZmlsdGVyKFxyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICBwcmVkaWN0aW9uLFxyXG4gICAgICAgICAgKTogcHJlZGljdGlvbiBpcyBBdXRvY29tcGxldGVQcmVkaWN0aW9uICYgeyBwbGFjZV9pZDogc3RyaW5nIH0gPT5cclxuICAgICAgICAgICAgISFwcmVkaWN0aW9uLnBsYWNlX2lkLFxyXG4gICAgICAgIClcclxuICAgICAgICAubWFwKChwcmVkaWN0aW9uKSA9PiAoe1xyXG4gICAgICAgICAgYWRkaXRpb25hbF9pbmZvOiBwcmVkaWN0aW9uLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgcGxhY2VfaWQ6IHByZWRpY3Rpb24ucGxhY2VfaWQsXHJcbiAgICAgICAgICBwcmVkaWN0aW9uX3Rlcm06IHByZWRpY3Rpb24udGVybXMsXHJcbiAgICAgICAgfSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25Vc2VySW5wdXQocXVlcnk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dFF1ZXJ5JC5uZXh0KHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlTdWdnZXN0aW9uKGluZGV4OiBudW1iZXIsIHN1Z2dlc3Rpb246IFdheXBvaW50U3VnZ2VzdGlvbik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpZCA9XHJcbiAgICAgIHN1Z2dlc3Rpb24uc3VnZ2VzdGlvbl9pZCA/P1xyXG4gICAgICBzdWdnZXN0aW9uLnBsYWNlX2lkID8/XHJcbiAgICAgIHN1Z2dlc3Rpb24uYWRkaXRpb25hbF9pbmZvID8/XHJcbiAgICAgIGAke2luZGV4fWA7XHJcblxyXG4gICAgcmV0dXJuIHN1Z2dlc3Rpb24ucHJlZGljdGlvbl90ZXJtID8gYGdvb2dsZToke2lkfWAgOiBgaGlzdG9yeToke2lkfWA7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogV2F5cG9pbnRTdWdnZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1Jlc29sdmluZ1BsYWNlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7YWRkaXRpb25hbF9pbmZvLCBwbGFjZV9pZH0gPSBzdWdnZXN0aW9uID8/IHt9O1xyXG5cclxuICAgIGlmICghcGxhY2VfaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNSZXNvbHZpbmdQbGFjZSA9IHRydWU7XHJcbiAgICB0aGlzLnZhbHVlID0gYWRkaXRpb25hbF9pbmZvO1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQkLm5leHQoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMucmVzb2x2ZUJ5UGxhY2VJZChwbGFjZV9pZCwgYWRkaXRpb25hbF9pbmZvKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZUJ5UGxhY2VJZChwbGFjZUlkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5wbGFjZXNTZXJ2aWNlLmdldERldGFpbHMoXHJcbiAgICAgIHtcclxuICAgICAgICBwbGFjZUlkLFxyXG4gICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXHJcbiAgICAgICAgZmllbGRzOiBbJ2FkZHJlc3NfY29tcG9uZW50cycsICdnZW9tZXRyeS5sb2NhdGlvbicsICdwbGFjZV9pZCddLFxyXG4gICAgICB9LFxyXG4gICAgICAocGxhY2UsIHN0YXR1cykgPT4ge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSyAmJiBwbGFjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYWNlUmVzdWx0LmVtaXQoe3BsYWNlLCB0ZXh0fSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BsYWNlIGRldGFpbHMgbG9va3VwIGZhaWxlZCcsIHtzdGF0dXMsIHBsYWNlSWR9KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLnJlc2V0U2Vzc2lvblRva2VuKCk7XHJcbiAgICAgICAgICB0aGlzLmlzUmVzb2x2aW5nUGxhY2UgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID1cclxuICAgICAgICAgICh0aGlzLnNlbGVjdGVkSW5kZXggKyAxKSAlIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPVxyXG4gICAgICAgICAgKHRoaXMuc2VsZWN0ZWRJbmRleCAtIDEgKyB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zLmxlbmd0aCkgJVxyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0U3VnZ2VzdGlvbihcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgIHRoaXMuaXNGb2N1c2VkJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb2N1c2VkJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy52YWx1ZSAmJiB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaXNGb2N1c2VkJC5uZXh0KHRydWUpKSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG5leHRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9ICcnKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXh0ID0gbmV4dFZhbHVlID8/ICcnO1xyXG5cclxuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gbmV4dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdmFsdWUgPSBuZXh0O1xyXG4gICAgdGhpcy52YWx1ZSQubmV4dChuZXh0KTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBkZWxldGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmlucHV0UXVlcnkkLm5leHQoJycpO1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm1hdEN1c3RvbUlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0R29vZ2xlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XHJcblxyXG4gICAgdGhpcy5wbGFjZXNTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlKFxyXG4gICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldFNlc3Npb25Ub2tlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvblRva2VuID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW4oKTtcclxuICB9XHJcbn1cclxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpIHctZnVsbFwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0td3JhcHBlciB3LWZ1bGxcIj5cclxuICAgICAgPGlucHV0ICNtYXRDdXN0b21BdXRvY29tcGxldGVJbnB1dFxyXG4gICAgICAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxyXG4gICAgICAgICAgICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbFwiXHJcbiAgICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXHJcbiAgICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICBzcGVsbGNoZWNrPVwib2ZmXCJcclxuICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxyXG4gICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Vc2VySW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93U3VmZml4XCJcclxuICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS1zdWZmaXhcIj5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzaG93RGVsZXRlSXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyIGRlbGV0ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJkZWxldGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUoKVwiPlxyXG4gICAgICAgICAgZGVsZXRlXHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhc2hvd0RlbGV0ZUl0ZW0gJiYgdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsZWFyKClcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiPlxyXG4gICAgICAgICAgY2xvc2VcclxuICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDwhLS0gQ3VzdG9tIGRyb3Bkb3duIC0tPlxyXG4gICAgPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXlcclxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cInRyaWdnZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXCJcclxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9uc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXHJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzRm9jdXNlZCQgfCBhc3luY1wiPlxyXG4gICAgICA8dWwgY2xhc3M9XCJhdXRvY29tcGxldGUtdWlfX2NvbnRhaW5lclwiPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiB3YXlwb2ludFN1Z2dlc3Rpb25zJCB8IGFzeW5jOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5U3VnZ2VzdGlvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpLS1pdGVtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBob3ZlcjpiZy1ncmF5LTEwMFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gc2VsZWN0ZWRJbmRleFwiXHJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25TZWxlY3RTdWdnZXN0aW9uKHN1Z2dlc3Rpb24pXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybTsgZWxzZSBwdXJlUGxhY2VSZXN1bHRUcGxcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCB0cnVuY2F0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LmFkZGl0aW9uYWxfaW5mbyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJwaC1yZWd1bGFyOmNsb2NrLWNvdW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTUgaC01IHRleHQteGwgdGV4dC1ncmF5LTQwMCBob3ZlcjohdGV4dC1ncmF5LTQwMFwiPlxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwdXJlUGxhY2VSZXN1bHRUcGw+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0xIGxlYWRpbmctMCBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm0/LlswXT8udmFsdWUgfX1cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzFdPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNjAwIHRydW5jYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm0/LlsxXT8udmFsdWUgfCBzZXBhcmF0b3JBcHBlbmQ6IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzJdPy52YWx1ZSB9fVxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtPy5bMl0/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgZm9udC1zZW1pYm9sZCB0cnVuY2F0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtPy5bMl0/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
|
|
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
37
37
|
exports: [EcabsPlaceAutocompleteV2Component],
|
|
38
38
|
}]
|
|
39
39
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWU3RSxNQUFNLE9BQU8sOEJBQThCO3dHQUE5Qiw4QkFBOEI7eUdBQTlCLDhCQUE4QixpQkFaMUIsaUNBQWlDLGFBRTlDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLG1CQUFtQixhQUVYLGlDQUFpQzt5R0FFaEMsOEJBQThCLFlBVnZDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGFBQWE7OzRGQU9KLDhCQUE4QjtrQkFiMUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDakQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50IH0gZnJvbSAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRWxlbWVudFdyYXBwZXJNb2R1bGUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgU2VwYXJhdG9yQXBwZW5kUGlwZSB9IGZyb20gJy4uL2Jhc2UvcGlwZXMvc2VwYXJhdG9yLWFwcGVuZC5waXBlJztcclxuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBFbGVtZW50V3JhcHBlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFNlcGFyYXRvckFwcGVuZFBpcGUsXHJcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxyXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtFY2Fic1BsYWNlQXV0b2NvbXBsZXRlVjJDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -22,11 +22,11 @@ export class EcabsProfileComponent {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsProfileComponent, selector: "ecabs-profile", inputs: { avatar: "avatar", name: "name", title: "title" }, outputs: { avatarChange: "avatarChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable-next-line -->\n<ul (click)=\"avatarChange.emit()\" class=\"flex text-black cursor-pointer\">\n <li class=\"md:mr-3\">\n <div *ngIf=\"!useAvatar; else avatarTpl\" ecabsDynamicBgColor [params]=\"name\"\n class=\"flex h-12 w-12 rounded-full bg-gray-50 items-center justify-center text-white\">\n <span class=\"text-xl font-medium\">{{ initials }}</span>\n </div>\n </li>\n\n <li class=\"hidden md:flex flex-1 flex-col justify-center\">\n <div class=\"font-semibold\">{{ name }}</div>\n <div class=\"text-xs\">{{ title }}</div>\n </li>\n</ul>\n\n<ng-template #avatarTpl>\n <!-- eslint-disable-next-line -->\n <img [src]=\"avatar\" class=\"rounded-full\"/>\n</ng-template>\n\n", styles: ["img{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.EcabsDynamicBgColorDirective, selector: "[ecabsDynamicBgColor]", inputs: ["params", "saturation", "lightness"] }] });
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsProfileComponent, selector: "ecabs-profile", inputs: { avatar: "avatar", name: "name", title: "title" }, outputs: { avatarChange: "avatarChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable-next-line -->\r\n<ul (click)=\"avatarChange.emit()\" class=\"flex text-black cursor-pointer\">\r\n <li class=\"md:mr-3\">\r\n <div *ngIf=\"!useAvatar; else avatarTpl\" ecabsDynamicBgColor [params]=\"name\"\r\n class=\"flex h-12 w-12 rounded-full bg-gray-50 items-center justify-center text-white\">\r\n <span class=\"text-xl font-medium\">{{ initials }}</span>\r\n </div>\r\n </li>\r\n\r\n <li class=\"hidden md:flex flex-1 flex-col justify-center\">\r\n <div class=\"font-semibold\">{{ name }}</div>\r\n <div class=\"text-xs\">{{ title }}</div>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #avatarTpl>\r\n <!-- eslint-disable-next-line -->\r\n <img [src]=\"avatar\" class=\"rounded-full\"/>\r\n</ng-template>\r\n\r\n", styles: ["img{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.EcabsDynamicBgColorDirective, selector: "[ecabsDynamicBgColor]", inputs: ["params", "saturation", "lightness"] }] });
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsProfileComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
|
-
args: [{ selector: 'ecabs-profile', template: "<!-- eslint-disable-next-line -->\n<ul (click)=\"avatarChange.emit()\" class=\"flex text-black cursor-pointer\">\n <li class=\"md:mr-3\">\n <div *ngIf=\"!useAvatar; else avatarTpl\" ecabsDynamicBgColor [params]=\"name\"\n class=\"flex h-12 w-12 rounded-full bg-gray-50 items-center justify-center text-white\">\n <span class=\"text-xl font-medium\">{{ initials }}</span>\n </div>\n </li>\n\n <li class=\"hidden md:flex flex-1 flex-col justify-center\">\n <div class=\"font-semibold\">{{ name }}</div>\n <div class=\"text-xs\">{{ title }}</div>\n </li>\n</ul>\n\n<ng-template #avatarTpl>\n <!-- eslint-disable-next-line -->\n <img [src]=\"avatar\" class=\"rounded-full\"/>\n</ng-template>\n\n", styles: ["img{width:40px;height:40px}\n"] }]
|
|
29
|
+
args: [{ selector: 'ecabs-profile', template: "<!-- eslint-disable-next-line -->\r\n<ul (click)=\"avatarChange.emit()\" class=\"flex text-black cursor-pointer\">\r\n <li class=\"md:mr-3\">\r\n <div *ngIf=\"!useAvatar; else avatarTpl\" ecabsDynamicBgColor [params]=\"name\"\r\n class=\"flex h-12 w-12 rounded-full bg-gray-50 items-center justify-center text-white\">\r\n <span class=\"text-xl font-medium\">{{ initials }}</span>\r\n </div>\r\n </li>\r\n\r\n <li class=\"hidden md:flex flex-1 flex-col justify-center\">\r\n <div class=\"font-semibold\">{{ name }}</div>\r\n <div class=\"text-xs\">{{ title }}</div>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #avatarTpl>\r\n <!-- eslint-disable-next-line -->\r\n <img [src]=\"avatar\" class=\"rounded-full\"/>\r\n</ng-template>\r\n\r\n", styles: ["img{width:40px;height:40px}\n"] }]
|
|
30
30
|
}], propDecorators: { avatar: [{
|
|
31
31
|
type: Input
|
|
32
32
|
}], name: [{
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36
36
|
}], avatarChange: [{
|
|
37
37
|
type: Output
|
|
38
38
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtcHJvZmlsZS9lY2Ficy1wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wcm9maWxlL2VjYWJzLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7OztBQU92QixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLE1BQU0sR0FBRyxpQ0FBaUMsQ0FBQztJQUVsQyxJQUFJLENBQVM7SUFDYixLQUFLLENBQVM7SUFHdkIsWUFBWSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXpELFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsUUFBUSxDQUFTO0lBRWpCLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztRQUV4QyxJQUFJLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDdEIsK0RBQStEO1lBQy9ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXRFLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUztpQkFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2lCQUM3QyxpQkFBaUIsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzt3R0EzQlUscUJBQXFCOzRGQUFyQixxQkFBcUIsaUxDZGxDLDR2QkFvQkE7OzRGRE5hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzhCQU16QixNQUFNO3NCQURMLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1wcm9maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtcHJvZmlsZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKVxyXG4gIGF2YXRhciA9ICcvYXNzZXRzL2ltYWdlcy9wcm9maWxlLWljb24ucG5nJztcclxuXHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGF2YXRhckNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICB1c2VBdmF0YXIgPSBmYWxzZTtcclxuICBpbml0aWFsczogc3RyaW5nO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGF2YXRhciwgbmFtZSB9ID0gY2hhbmdlcyA/PyB7fTtcclxuXHJcbiAgICB0aGlzLnVzZUF2YXRhciA9ICEhYXZhdGFyPy5jdXJyZW50VmFsdWU7XHJcblxyXG4gICAgaWYgKG5hbWU/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAvLyBnZXQgb25seSBmaXJzdCBhbmQgbGFzdCBuYW1lIGluIGNhc2UgbmFtZSBoYXMgbXVsdGlwbGUgd29yZHNcclxuICAgICAgY29uc3Qgc2hvcnROYW1lID0gdGhpcy5uYW1lLnJlcGxhY2UoLyhbYS16XSspIC4qIChbYS16XSspL2ksICckMSAkMicpO1xyXG5cclxuICAgICAgdGhpcy5pbml0aWFscyA9IHNob3J0TmFtZVxyXG4gICAgICAgIC5zcGxpdCgvXFxzLylcclxuICAgICAgICAucmVkdWNlKChfLCB3b3JkKSA9PiBfICsgd29yZC5zbGljZSgwLCAxKSwgJycpXHJcbiAgICAgICAgLnRvTG9jYWxlVXBwZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIC0tPlxyXG48dWwgKGNsaWNrKT1cImF2YXRhckNoYW5nZS5lbWl0KClcIiBjbGFzcz1cImZsZXggdGV4dC1ibGFjayBjdXJzb3ItcG9pbnRlclwiPlxyXG4gIDxsaSBjbGFzcz1cIm1kOm1yLTNcIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhdXNlQXZhdGFyOyBlbHNlIGF2YXRhclRwbFwiIGVjYWJzRHluYW1pY0JnQ29sb3IgW3BhcmFtc109XCJuYW1lXCJcclxuICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTIgdy0xMiByb3VuZGVkLWZ1bGwgYmctZ3JheS01MCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1tZWRpdW1cIj57eyBpbml0aWFscyB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbGk+XHJcblxyXG4gIDxsaSBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IGZsZXgtMSBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyBuYW1lIH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC14c1wiPnt7IHRpdGxlIH19PC9kaXY+XHJcbiAgPC9saT5cclxuPC91bD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYXZhdGFyVHBsPlxyXG4gIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIC0tPlxyXG4gIDxpbWcgW3NyY109XCJhdmF0YXJcIiBjbGFzcz1cInJvdW5kZWQtZnVsbFwiLz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiJdfQ==
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
16
16
|
exports: [EcabsProfileComponent],
|
|
17
17
|
}]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcHJvZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtcHJvZmlsZS9lY2Ficy1wcm9maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFPMUcsTUFBTSxPQUFPLGtCQUFrQjt3R0FBbEIsa0JBQWtCO3lHQUFsQixrQkFBa0IsaUJBSmQscUJBQXFCLGFBQzFCLFlBQVksRUFBRSxrQ0FBa0MsYUFDaEQscUJBQXFCO3lHQUVwQixrQkFBa0IsWUFIbkIsWUFBWSxFQUFFLGtDQUFrQzs7NEZBRy9DLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtDQUFrQyxDQUFDO29CQUMzRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFY2Fic1Byb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2VjYWJzLXByb2ZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWNhYnNEeW5hbWljQmdDb2xvckRpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9keW5hbWljLWJnLWNvbG9yLmRpcmVjdGl2ZS5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic1Byb2ZpbGVDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVjYWJzRHluYW1pY0JnQ29sb3JEaXJlY3RpdmVNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtFY2Fic1Byb2ZpbGVDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNQcm9maWxlTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -52,7 +52,7 @@ export class EcabsRadioButtonListComponent extends EcabsElementBaseComponent {
|
|
|
52
52
|
useExisting: EcabsRadioButtonListComponent,
|
|
53
53
|
multi: true,
|
|
54
54
|
},
|
|
55
|
-
], viewQueries: [{ propertyName: "matRadioGroup", first: true, predicate: MatRadioGroup, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <mat-radio-group\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [id]=\"name\"\n [name]=\"name\"\n (change)=\"changed.emit($event)\"\n >\n <mat-radio-button\n [disabled]=\"item.disabled\"\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\n class=\"mr-4\"\n *ngFor=\"let item of items\"\n [value]=\"item.value\"\n >\n {{ item.label }}\n </mat-radio-button>\n </mat-radio-group>\n</ecabs-element-wrapper>\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
55
|
+
], viewQueries: [{ propertyName: "matRadioGroup", first: true, predicate: MatRadioGroup, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [id]=\"name\"\r\n [name]=\"name\"\r\n (change)=\"changed.emit($event)\"\r\n >\r\n <mat-radio-button\r\n [disabled]=\"item.disabled\"\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n</ecabs-element-wrapper>\r\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
56
56
|
}
|
|
57
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsRadioButtonListComponent, decorators: [{
|
|
58
58
|
type: Component,
|
|
@@ -62,7 +62,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
62
62
|
useExisting: EcabsRadioButtonListComponent,
|
|
63
63
|
multi: true,
|
|
64
64
|
},
|
|
65
|
-
], template: "<ecabs-element-wrapper [data]=\"getData()\">\n <mat-radio-group\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [id]=\"name\"\n [name]=\"name\"\n (change)=\"changed.emit($event)\"\n >\n <mat-radio-button\n [disabled]=\"item.disabled\"\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\n class=\"mr-4\"\n *ngFor=\"let item of items\"\n [value]=\"item.value\"\n >\n {{ item.label }}\n </mat-radio-button>\n </mat-radio-group>\n</ecabs-element-wrapper>\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"] }]
|
|
65
|
+
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [id]=\"name\"\r\n [name]=\"name\"\r\n (change)=\"changed.emit($event)\"\r\n >\r\n <mat-radio-button\r\n [disabled]=\"item.disabled\"\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n</ecabs-element-wrapper>\r\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"] }]
|
|
66
66
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { matRadioGroup: [{
|
|
67
67
|
type: ViewChild,
|
|
68
68
|
args: [MatRadioGroup, { static: false }]
|
|
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
73
73
|
}], changed: [{
|
|
74
74
|
type: Output
|
|
75
75
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcmFkaW8tYnV0dG9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0L2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1yYWRpby1idXR0b24tbGlzdC9lY2Ficy1yYWRpby1idXR0b24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFFN0QsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBY3hFLE1BQU0sT0FBTyw2QkFDWCxTQUFRLHlCQUF5QjtJQTZCYjtJQXpCcEIsYUFBYSxDQUFnQjtJQUc3QixLQUFLLENBQWlCO0lBR3RCLFNBQVMsR0FBOEIsWUFBWSxDQUFDO0lBRzNDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUV0RCxHQUFHLENBQVM7SUFFWixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEdBQUc7UUFDWCxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsWUFBb0IsUUFBa0I7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBRXRDLENBQUM7SUFFRCxRQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFeEIsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQTZCLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQzt3R0F0RFUsNkJBQTZCOzRGQUE3Qiw2QkFBNkIsdUlBUjdCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtnQkFDMUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHlFQU1VLGFBQWEsdUVDbkMxQixtbkJBb0JBOzs0RkRXYSw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBQ0UseUJBQXlCLGFBR3hCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsK0JBQStCOzRCQUMxQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjsrRkFPRCxhQUFhO3NCQURaLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJM0MsS0FBSztzQkFESixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJRyxPQUFPO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3NlbGVjdC5tb2RlbHMnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb0NoYW5nZSwgTWF0UmFkaW9Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtcmFkaW8tYnV0dG9uLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1yYWRpby1idXR0b24tbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNSYWRpb0J1dHRvbkxpc3RDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNSYWRpb0J1dHRvbkxpc3RDb21wb25lbnRcclxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAVmlld0NoaWxkKE1hdFJhZGlvR3JvdXAsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIG1hdFJhZGlvR3JvdXA6IE1hdFJhZGlvR3JvdXA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaXRlbXM6IFNlbGVjdE9wdGlvbltdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgY2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0UmFkaW9DaGFuZ2U+KCk7XHJcblxyXG4gIHZhbDogc3RyaW5nO1xyXG5cclxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnZhbDtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWwpIHtcclxuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnZhbCAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMudmFsID0gdmFsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaCh2YWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxyXG4gIDxtYXQtcmFkaW8tZ3JvdXBcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2ZsZXggZmxleC1jb2wgbXktMSc6IGRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyB9XCJcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtpZF09XCJuYW1lXCJcclxuICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgKGNoYW5nZSk9XCJjaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPG1hdC1yYWRpby1idXR0b25cclxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdteS0xJzogZGlyZWN0aW9uID09PSAndmVydGljYWwnIH1cIlxyXG4gICAgICBjbGFzcz1cIm1yLTRcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCJcclxuICAgID5cclxuICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|