@ptsecurity/mosaic 8.5.3 → 8.5.7
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/bundles/mosaic-list.umd.js +68 -26
- package/bundles/mosaic-list.umd.js.map +1 -1
- package/bundles/mosaic-list.umd.min.js +1 -1
- package/bundles/mosaic-list.umd.min.js.map +1 -1
- package/bundles/mosaic-select.umd.js +27 -10
- package/bundles/mosaic-select.umd.js.map +1 -1
- package/bundles/mosaic-select.umd.min.js +1 -1
- package/bundles/mosaic-select.umd.min.js.map +1 -1
- package/bundles/mosaic-splitter.umd.js +12 -6
- package/bundles/mosaic-splitter.umd.js.map +1 -1
- package/bundles/mosaic-splitter.umd.min.js +1 -1
- package/bundles/mosaic-splitter.umd.min.js.map +1 -1
- package/bundles/mosaic-toggle.umd.js +4 -5
- package/bundles/mosaic-toggle.umd.js.map +1 -1
- package/bundles/mosaic-toggle.umd.min.js +1 -1
- package/bundles/mosaic-toggle.umd.min.js.map +1 -1
- package/bundles/mosaic.umd.js +112 -48
- package/bundles/mosaic.umd.js.map +1 -1
- package/bundles/mosaic.umd.min.js +9 -9
- package/bundles/mosaic.umd.min.js.map +1 -1
- package/esm2015/list.js +64 -26
- package/esm2015/list.js.map +1 -1
- package/esm2015/mosaic.js +2 -2
- package/esm2015/mosaic.js.map +1 -1
- package/esm2015/select.js +28 -11
- package/esm2015/select.js.map +1 -1
- package/esm2015/splitter.js +12 -7
- package/esm2015/splitter.js.map +1 -1
- package/esm2015/toggle.js +4 -5
- package/esm2015/toggle.js.map +1 -1
- package/esm5/list.es5.js +68 -26
- package/esm5/list.es5.js.map +1 -1
- package/esm5/mosaic.es5.js +2 -2
- package/esm5/mosaic.es5.js.map +1 -1
- package/esm5/select.es5.js +28 -11
- package/esm5/select.es5.js.map +1 -1
- package/esm5/splitter.es5.js +12 -7
- package/esm5/splitter.es5.js.map +1 -1
- package/esm5/toggle.es5.js +4 -5
- package/esm5/toggle.es5.js.map +1 -1
- package/list/typings/index.metadata.json +1 -1
- package/list/typings/list-selection.component.d.ts +13 -1
- package/package.json +3 -3
- package/select/typings/index.metadata.json +1 -1
- package/splitter/typings/splitter.component.d.ts +1 -1
- package/toggle/typings/index.metadata.json +1 -1
- package/toggle/typings/toggle.component.d.ts +1 -1
- package/typings/esm5/index.metadata.json +1 -1
- package/typings/esm5/list/index.metadata.json +1 -1
- package/typings/esm5/list/list-selection.component.d.ts +13 -1
- package/typings/esm5/select/index.metadata.json +1 -1
- package/typings/esm5/splitter/splitter.component.d.ts +1 -1
- package/typings/esm5/toggle/index.metadata.json +1 -1
- package/typings/esm5/toggle/toggle.component.d.ts +1 -1
- package/typings/index.metadata.json +1 -1
- package/typings/list/index.metadata.json +1 -1
- package/typings/list/list-selection.component.d.ts +13 -1
- package/typings/select/index.metadata.json +1 -1
- package/typings/splitter/splitter.component.d.ts +1 -1
- package/typings/toggle/index.metadata.json +1 -1
- package/typings/toggle/toggle.component.d.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mosaic-select.umd.js","sources":["../../packages/mosaic/select/select.module.ts","../../packages/mosaic/select/select.component.ts","../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MC_SELECT_SCROLL_STRATEGY_PROVIDER, McOptionModule } from '@ptsecurity/mosaic/core';\nimport { McFormFieldModule } from '@ptsecurity/mosaic/form-field';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\nimport { McTagsModule } from '@ptsecurity/mosaic/tags';\n\nimport { McSelect, McSelectSearch, McSelectSearchEmptyResult, McSelectTrigger } from './select.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n McOptionModule,\n McIconModule,\n McTagsModule\n ],\n exports: [\n McFormFieldModule,\n McSelect,\n McSelectSearch,\n McSelectSearchEmptyResult,\n McSelectTrigger,\n McOptionModule,\n CommonModule\n ],\n declarations: [\n McSelect,\n McSelectSearch,\n McSelectSearchEmptyResult,\n McSelectTrigger],\n providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER]\n})\nexport class McSelectModule {}\n","/* tslint:disable:no-empty */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n CdkConnectedOverlay,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n isDevMode,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n Self,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n A,\n ESCAPE,\n PAGE_UP,\n PAGE_DOWN\n} from '@ptsecurity/cdk/keycodes';\nimport {\n countGroupLabelsBeforeOption,\n getOptionScrollPosition,\n CanDisable,\n CanDisableCtor,\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n HasTabIndex,\n HasTabIndexCtor,\n MC_OPTION_PARENT_COMPONENT,\n McOptgroup,\n McOption,\n McOptionSelectionChange,\n mixinDisabled,\n mixinErrorState,\n mixinTabIndex,\n mcSelectAnimations,\n\n SELECT_PANEL_INDENT_PADDING_X,\n SELECT_PANEL_MAX_HEIGHT,\n SELECT_PANEL_PADDING_X,\n SELECT_PANEL_VIEWPORT_PADDING,\n MC_SELECT_SCROLL_STRATEGY,\n\n getMcSelectDynamicMultipleError,\n getMcSelectNonFunctionValueError,\n getMcSelectNonArrayValueError,\n\n setMosaicValidation,\n MC_VALIDATION,\n McValidationOptions\n} from '@ptsecurity/mosaic/core';\nimport { McCleaner, McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McInput } from '@ptsecurity/mosaic/input';\nimport { McTag } from '@ptsecurity/mosaic/tags';\nimport { defer, merge, Observable, Subject, Subscription } from 'rxjs';\nimport {\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n distinctUntilChanged\n} from 'rxjs/operators';\n\n\nlet nextUniqueId = 0;\n\n/** Change event object that is emitted when the select value has changed. */\nexport class McSelectChange {\n constructor(public source: McSelect, public value: any) {}\n}\n\nexport class McSelectBase {\n constructor(\n public elementRef: ElementRef,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nconst McSelectMixinBase: CanDisableCtor & HasTabIndexCtor & CanUpdateErrorStateCtor &\n typeof McSelectBase = mixinTabIndex(mixinDisabled(mixinErrorState(McSelectBase)));\n\n\n@Directive({\n selector: '[mcSelectSearch]',\n exportAs: 'mcSelectSearch',\n host: {\n '(keydown)': 'handleKeydown($event)'\n }\n})\nexport class McSelectSearch implements AfterContentInit, OnDestroy {\n @ContentChild(McInput, { static: false }) input: McInput;\n\n searchChangesSubscription: Subscription = new Subscription();\n\n isSearchChanged: boolean = false;\n\n constructor(formField: McFormField) {\n formField.canCleanerClearByEsc = false;\n }\n\n focus(): void {\n this.input.focus();\n }\n\n reset(): void {\n this.input.ngControl.reset();\n }\n\n ngAfterContentInit(): void {\n if (!this.input) {\n throw Error('McSelectSearch does not work without mcInput');\n }\n\n if (!this.input.ngControl) {\n throw Error('McSelectSearch does not work without ngControl');\n }\n\n this.searchChangesSubscription = this.input.ngControl.valueChanges!.subscribe(() => {\n this.isSearchChanged = true;\n });\n }\n\n ngOnDestroy(): void {\n this.searchChangesSubscription.unsubscribe();\n }\n\n handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n if (event.keyCode === ESCAPE) {\n if (this.input.value) {\n this.reset();\n event.stopPropagation();\n }\n }\n }\n}\n\n@Directive({\n selector: '[mc-select-search-empty-result]',\n exportAs: 'mcSelectSearchEmptyResult'\n})\nexport class McSelectSearchEmptyResult {}\n\n\n@Directive({ selector: 'mc-select-trigger' })\nexport class McSelectTrigger {}\n\n\n@Component({\n selector: 'mc-select',\n exportAs: 'mcSelect',\n templateUrl: 'select.html',\n styleUrls: ['./select.css'],\n inputs: ['disabled'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n '[tabindex]': 'tabIndex',\n\n class: 'mc-select',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-select-invalid]': 'errorState',\n\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(window:resize)': 'calculateHiddenItems()'\n },\n animations: [\n mcSelectAnimations.transformPanel,\n mcSelectAnimations.fadeInContent\n ],\n providers: [\n { provide: McFormFieldControl, useExisting: McSelect },\n { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McSelect }\n ]\n})\nexport class McSelect extends McSelectMixinBase implements\n AfterContentInit, AfterViewInit, OnChanges, OnDestroy, OnInit, DoCheck, ControlValueAccessor, CanDisable,\n HasTabIndex, McFormFieldControl<any>, CanUpdateErrorState {\n\n /** A name for this control that can be used by `mc-form-field`. */\n controlType = 'mc-select';\n\n hiddenItems: number = 0;\n\n /** The last measured value for the trigger's client bounding rect. */\n triggerRect: ClientRect;\n\n /** The cached font-size of the trigger element. */\n triggerFontSize = 0;\n\n /** Deals with the selection logic. */\n selectionModel: SelectionModel<McOption>;\n\n previousSelectionModelSelected: McOption[] = [];\n\n /** Manages keyboard events for options in the panel. */\n keyManager: ActiveDescendantKeyManager<McOption>;\n\n /** The value of the select panel's transform-origin property. */\n transformOrigin: string = 'top';\n\n /** Whether the panel's animation is done. */\n panelDoneAnimating: boolean = false;\n\n /** Emits when the panel element is finished transforming in. */\n panelDoneAnimatingStream = new Subject<string>();\n\n /** Strategy that will be used to handle scrolling while the select panel is open. */\n scrollStrategy = this._scrollStrategyFactory();\n\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n offsetY = 0;\n\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n positions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n\n @ViewChild('trigger', { static: false }) trigger: ElementRef;\n\n @ViewChild('panel', { static: false }) panel: ElementRef;\n\n @ViewChild('optionsContainer', { static: false }) optionsContainer: ElementRef;\n\n @ViewChild(CdkConnectedOverlay, { static: false }) overlayDir: CdkConnectedOverlay;\n\n @ViewChildren(McTag) tags: QueryList<McTag>;\n\n /** User-supplied override of the trigger element. */\n @ContentChild(McSelectTrigger, { static: false }) customTrigger: McSelectTrigger;\n\n @ContentChild('mcSelectCleaner', { static: true }) cleaner: McCleaner;\n\n /** All of the defined select options. */\n @ContentChildren(McOption, { descendants: true }) options: QueryList<McOption>;\n\n /** All of the defined groups of options. */\n @ContentChildren(McOptgroup) optionGroups: QueryList<McOptgroup>;\n\n @ContentChild(McSelectSearch, { static: false }) search: McSelectSearch;\n\n @Input() hiddenItemsText: string = '...ещё';\n\n /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n @Input() panelClass: string | string[] | Set<string> | { [key: string]: any };\n\n /** Object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Function used to sort the values in a select in multiple mode.\n * Follows the same logic as `Array.prototype.sort`.\n */\n @Input() sortComparator: (a: McOption, b: McOption, options: McOption[]) => number;\n\n /** Combined stream of all of the child options' change events. */\n readonly optionSelectionChanges: Observable<McOptionSelectionChange> = defer(() => {\n if (this.options) {\n return merge(\n ...this.options.map((option) => option.onSelectionChange),\n ...this.selectionModel.selected.map((option) => option.onSelectionChange)\n );\n }\n\n return this._ngZone.onStable\n .asObservable()\n .pipe(take(1), switchMap(() => this.optionSelectionChanges));\n }) as Observable<McOptionSelectionChange>;\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly openedStream: Observable<void> =\n this.openedChange.pipe(filter((o) => o), map(() => {}));\n\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly closedStream: Observable<void> =\n this.openedChange.pipe(filter((o) => !o), map(() => {}));\n\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange: EventEmitter<McSelectChange> = new EventEmitter<McSelectChange>();\n\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n\n this.stateChanges.next();\n }\n\n private _required: boolean = false;\n\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n if (this.selectionModel) {\n throw getMcSelectDynamicMultipleError();\n }\n\n this._multiple = coerceBooleanProperty(value);\n }\n\n private _multiple: boolean = false;\n\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n /* tslint:disable-next-line:strict-type-predicates */\n if (typeof fn !== 'function') {\n throw getMcSelectNonFunctionValueError();\n }\n\n this._compareWith = fn;\n\n if (this.selectionModel) {\n // A different comparator means the selection could change.\n this.initializeSelection();\n }\n }\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(newValue: any) {\n if (newValue !== this._value) {\n this.writeValue(newValue);\n this._value = newValue;\n }\n }\n\n private _value: any;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n this.stateChanges.next();\n }\n\n private _id: string;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this._panelOpen;\n }\n\n /**\n * @deprecated Setter to be removed as this property is intended to be readonly.\n * @breaking-change 8.0.0\n */\n set focused(value: boolean) {\n this._focused = value;\n }\n\n private _focused = false;\n\n get panelOpen(): boolean {\n return this._panelOpen;\n }\n\n private _panelOpen = false;\n\n get isEmptySearchResult(): boolean {\n return this.search && this.options.length === 0 && !!this.search.input.value;\n }\n\n get canShowCleaner(): boolean {\n return this.cleaner && this.selectionModel.hasValue();\n }\n\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n private scrollTop = 0;\n\n /** Unique id for this input. */\n private readonly uid = `mc-select-${nextUniqueId++}`;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroy = new Subject<void>();\n\n constructor(\n private readonly _viewportRuler: ViewportRuler,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n private readonly _renderer: Renderer2,\n defaultErrorStateMatcher: ErrorStateMatcher,\n elementRef: ElementRef,\n @Optional() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() private readonly _dir: Directionality,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n @Optional() private readonly _parentFormField: McFormField,\n @Self() @Optional() ngControl: NgControl,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName,\n @Attribute('tabindex') tabIndex: string,\n @Inject(MC_SELECT_SCROLL_STRATEGY) private readonly _scrollStrategyFactory,\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions\n ) {\n super(elementRef, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n this.tabIndex = parseInt(tabIndex) || 0;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<McOption>(this.multiple);\n this.stateChanges.next();\n\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this.panelDoneAnimatingStream\n .pipe(distinctUntilChanged(), takeUntil(this.destroy))\n .subscribe(() => {\n if (this.panelOpen) {\n this.scrollTop = 0;\n this.openedChange.emit(true);\n } else {\n this.openedChange.emit(false);\n this.panelDoneAnimating = false;\n this.overlayDir.offsetX = 0;\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n\n ngAfterContentInit() {\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n\n this.initKeyManager();\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroy))\n .subscribe((event) => {\n event.added.forEach((option) => option.select());\n event.removed.forEach((option) => option.deselect());\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroy))\n .subscribe(() => {\n this.resetOptions();\n this.initializeSelection();\n });\n }\n\n ngAfterViewInit(): void {\n this.tags.changes\n .subscribe(() => {\n setTimeout(() => this.calculateHiddenItems(), 0);\n });\n }\n\n ngDoCheck() {\n if (this.ngControl) { this.updateErrorState(); }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes.disabled) {\n this.stateChanges.next();\n }\n }\n\n ngOnDestroy() {\n this.destroy.next();\n this.destroy.complete();\n this.stateChanges.complete();\n }\n\n @Input()\n hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string {\n return `${hiddenItemsText} ${hiddenItems}`;\n }\n\n clearValue($event): void {\n $event.stopPropagation();\n\n this.selectionModel.clear();\n this.keyManager.setActiveItem(-1);\n\n this.propagateChanges();\n }\n\n /** `View -> model callback called when value changes` */\n onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n onTouched = () => {};\n\n resetSearch(): void {\n if (this.search) {\n this.search.reset();\n /*\n todo the incorrect behaviour of keyManager is possible here\n to avoid first item selection (to provide correct options flipping on closed select)\n we should process options update like it is the first options appearance\n */\n this.search.isSearchChanged = false;\n }\n }\n\n /** Toggles the overlay panel open or closed. */\n toggle(): void {\n if (this.panelOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the overlay panel. */\n open(): void {\n if (this.disabled || !this.options || !this.options.length || this._panelOpen) { return; }\n\n this.triggerRect = this.trigger.nativeElement.getBoundingClientRect();\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this.triggerFontSize = parseInt(getComputedStyle(this.trigger.nativeElement)['font-size']);\n\n this._panelOpen = true;\n this.keyManager.withHorizontalOrientation(null);\n this.highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n\n // Set the font size on the panel element once it exists.\n this._ngZone.onStable.asObservable()\n .pipe(take(1))\n .subscribe(() => {\n if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {\n this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;\n }\n });\n }\n\n /** Closes the overlay panel and focuses the host element. */\n close(): void {\n if (!this._panelOpen) { return; }\n\n // the order of calls is important\n this.resetSearch();\n this._panelOpen = false;\n this.keyManager.withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this._changeDetectorRef.markForCheck();\n this.onTouched();\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n if (this.options) {\n this.setSelectionByValue(value);\n }\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n get selected(): McOption | McOption[] {\n return this.multiple ? this.selectionModel.selected : this.selectionModel.selected[0];\n }\n\n get triggerValue(): string {\n if (this.empty) { return ''; }\n\n return this.selectionModel.selected[0].viewValue;\n }\n\n get triggerValues(): McOption[] {\n if (this.empty) { return []; }\n\n const selectedOptions = this.selectionModel.selected;\n\n if (this.isRtl()) { selectedOptions.reverse(); }\n\n return selectedOptions;\n }\n\n get empty(): boolean {\n return !this.selectionModel || this.selectionModel.isEmpty();\n }\n\n isRtl(): boolean {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled) {\n if (this.panelOpen) {\n this.handleOpenKeydown(event);\n } else {\n this.handleClosedKeydown(event);\n }\n }\n }\n\n /**\n * When the panel content is done fading in, the panelDoneAnimating property is\n * set so the proper class can be added to the panel.\n */\n onFadeInDone(): void {\n this.panelDoneAnimating = this.panelOpen;\n this._changeDetectorRef.markForCheck();\n\n if (this.search && this._panelOpen) {\n this.search.focus();\n }\n }\n\n onFocus() {\n if (!this.disabled) {\n this._focused = true;\n\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n onBlur() {\n this._focused = false;\n\n if (!this.disabled && !this.panelOpen) {\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n onAttached(): void {\n this.overlayDir.positionChange\n .pipe(take(1))\n .subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this.calculateOverlayOffsetX();\n this.optionsContainer.nativeElement.scrollTop = this.scrollTop;\n\n this.updateScrollSize();\n });\n }\n\n /** Returns the theme to be used on the panel. */\n getPanelTheme(): string {\n return this._parentFormField ? `mc-${this._parentFormField.color}` : '';\n }\n\n /** Focuses the select element. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n this.open();\n }\n\n /** Invoked when an option is clicked. */\n onRemoveMatcherItem(option: McOption, $event): void {\n $event.stopPropagation();\n\n option.deselect();\n }\n\n calculateHiddenItems(): void {\n if (this.customTrigger || this.empty || !this.multiple) { return; }\n\n let visibleItems: number = 0;\n const totalItemsWidth = this.getTotalItemsWidthInMatcher();\n let totalVisibleItemsWidth: number = 0;\n\n this.tags.forEach((tag) => {\n if (tag.nativeElement.offsetTop < tag.nativeElement.offsetHeight) {\n totalVisibleItemsWidth += this.getItemWidth(tag.nativeElement);\n visibleItems++;\n }\n });\n\n this.hiddenItems = (this.selected as ArrayLike<McOption>).length - visibleItems;\n\n if (this.hiddenItems) {\n const itemsCounter = this.trigger.nativeElement.querySelector('.mc-select__match-hidden-text');\n const matcherList = this.trigger.nativeElement.querySelector('.mc-select__match-list');\n\n const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;\n // const itemsCounterWidth: number = itemsCounter.getBoundingClientRect().width;\n const itemsCounterWidth: number = 86;\n\n const matcherListWidth: number = matcherList.getBoundingClientRect().width;\n const matcherWidth: number = matcherListWidth + itemsCounterWidth;\n\n if (itemsCounterShowed && (totalItemsWidth < matcherWidth)) { this.hiddenItems = 0; }\n\n if (\n totalVisibleItemsWidth === matcherListWidth ||\n (totalVisibleItemsWidth + itemsCounterWidth) < matcherListWidth\n ) {\n this._changeDetectorRef.markForCheck();\n\n return ;\n } else if (!itemsCounterShowed && (totalItemsWidth + itemsCounterWidth) > matcherWidth) {\n this.hiddenItems++;\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n getItemHeight(): number {\n return this.options.first ? this.options.first.getHeight() : 0;\n }\n\n private getHeightOfOptionsContainer(): number {\n return this.optionsContainer.nativeElement.getClientRects()[0].height;\n }\n\n private updateScrollSize(): void {\n if (!this.options.first) { return; }\n\n this.keyManager.withScrollSize(\n Math.floor(this.getHeightOfOptionsContainer() / this.options.first.getHeight())\n );\n }\n\n private getTotalItemsWidthInMatcher(): number {\n const triggerClone = this.trigger.nativeElement.cloneNode(true);\n triggerClone.querySelector('.mc-select__match-hidden-text').remove();\n\n this._renderer.setStyle(triggerClone, 'position', 'absolute');\n this._renderer.setStyle(triggerClone, 'visibility', 'hidden');\n this._renderer.setStyle(triggerClone, 'top', '-100%');\n this._renderer.setStyle(triggerClone, 'left', '0');\n\n this._renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let totalItemsWidth: number = 0;\n triggerClone.querySelectorAll('mc-tag').forEach((item) => {\n totalItemsWidth += this.getItemWidth(item);\n });\n\n triggerClone.remove();\n\n return totalItemsWidth;\n }\n\n private getItemWidth(element: HTMLElement): number {\n const computedStyle = window.getComputedStyle(element);\n\n const width: number = parseInt(computedStyle.width as string);\n const marginLeft: number = parseInt(computedStyle.marginLeft as string);\n const marginRight: number = parseInt(computedStyle.marginRight as string);\n\n return width + marginLeft + marginRight;\n }\n\n /** Handles keyboard events while the select is closed. */\n private handleClosedKeydown(event: KeyboardEvent): void {\n /* tslint:disable-next-line */\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW ||\n keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n\n // Open the select on ALT + arrow key to match the native <select>\n if (isOpenKey || ((this.multiple || event.altKey) && isArrowKey)) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiple) {\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Handles keyboard events when the selected is open. */\n private handleOpenKeydown(event: KeyboardEvent): void {\n /* tslint:disable-next-line */\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n const manager = this.keyManager;\n\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this.close();\n } else if (keyCode === HOME) {\n event.preventDefault();\n\n manager.setFirstItemActive();\n } else if (keyCode === END) {\n event.preventDefault();\n\n manager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n event.preventDefault();\n\n manager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n event.preventDefault();\n\n manager.setNextPageItemActive();\n } else if ((keyCode === ENTER || keyCode === SPACE) && manager.activeItem) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (this._multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some((option) => !option.selected);\n this.options.forEach((option) => {\n if (hasDeselectedOptions && !option.disabled) {\n option.select();\n } else {\n option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n\n manager.onKeydown(event);\n\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem &&\n manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem.selectViaInteraction();\n }\n }\n }\n\n private initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private setSelectionByValue(value: any | any[]): void {\n this.previousSelectionModelSelected = this.selectionModel.selected;\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw getMcSelectNonArrayValueError();\n }\n\n this.selectionModel.clear();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n this.sortValues();\n } else {\n this.selectionModel.clear();\n const correspondingOption = this.selectValue(value);\n\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this.keyManager.setActiveItem(correspondingOption);\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n private getCorrespondOption(value: any): McOption | undefined {\n return [\n ...this.options.toArray(),\n ...this.previousSelectionModelSelected\n ].find((option: McOption) => {\n try {\n // Treat null as a special reset value.\n return option.value != null && this.compareWith(option.value, value);\n } catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n\n return false;\n }\n });\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private selectValue(value: any): McOption | undefined {\n const correspondingOption = this.getCorrespondOption(value);\n\n if (correspondingOption) {\n this.selectionModel.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private initKeyManager() {\n const typeAheadDebounce = 200;\n\n this.keyManager = new ActiveDescendantKeyManager<McOption>(this.options)\n .withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)\n .withVerticalOrientation()\n .withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n });\n\n this.keyManager.change\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n if (this._panelOpen && this.panel) {\n this.scrollActiveOptionIntoView();\n } else if (!this._panelOpen && !this.multiple && this.keyManager.activeItem) {\n this.keyManager.activeItem.selectViaInteraction();\n }\n });\n }\n\n /** Drops current option subscriptions and IDs and resets from scratch. */\n private resetOptions(): void {\n const changedOrDestroyed = merge(this.options.changes, this.destroy);\n\n this.optionSelectionChanges\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe((event) => {\n this.onSelect(event.source, event.isUserInput);\n\n if (this.search && this.search.isSearchChanged) {\n Promise.resolve().then(() => this.keyManager.setFirstItemActive());\n\n this.search.isSearchChanged = false;\n }\n\n if (event.isUserInput && !this.multiple && this._panelOpen) {\n this.close();\n this.focus();\n }\n });\n\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map((option) => option.stateChanges))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n });\n }\n\n /** Invoked when an option is clicked. */\n private onSelect(option: McOption, isUserInput: boolean): void {\n const wasSelected = this.selectionModel.isSelected(option);\n\n if (option.value == null && !this._multiple) {\n option.deselect();\n this.selectionModel.clear();\n this.propagateChanges(option.value);\n } else {\n if (option.selected) {\n this.selectionModel.select(option);\n } else {\n this.selectionModel.deselect(option);\n }\n\n if (isUserInput) {\n this.keyManager.setActiveItem(option);\n }\n\n if (this.multiple) {\n this.sortValues();\n\n if (isUserInput) {\n // In case the user selected the option with their mouse, we\n // want to restore focus back to the trigger, in order to\n // prevent the select keyboard controls from clashing with\n // the ones from `mc-option`.\n // If search is avaliable then we focus search again.\n if (this.search) {\n this.search.focus();\n } else {\n this.focus();\n }\n }\n }\n }\n\n if (wasSelected !== this.selectionModel.isSelected(option)) {\n this.propagateChanges();\n }\n\n this.stateChanges.next();\n }\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n\n this.selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) :\n options.indexOf(a) - options.indexOf(b);\n });\n this.stateChanges.next();\n }\n }\n\n /** Emits change event to set the model value. */\n private propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any = null;\n\n if (this.multiple) {\n valueToEmit = (this.selected as McOption[]).map((option) => option.value);\n } else {\n valueToEmit = this.selected ? (this.selected as McOption).value : fallbackValue;\n }\n\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this.onChange(valueToEmit);\n this.selectionChange.emit(new McSelectChange(this, valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private highlightCorrectOption(): void {\n if (this.keyManager) {\n if (this.empty) {\n this.keyManager.setFirstItemActive();\n } else {\n this.keyManager.setActiveItem(this.selectionModel.selected[0]);\n }\n }\n }\n\n /** Scrolls the active option into view. */\n private scrollActiveOptionIntoView(): void {\n const activeOptionIndex = this.keyManager.activeItemIndex || 0;\n const labelCount = countGroupLabelsBeforeOption(activeOptionIndex, this.options, this.optionGroups);\n\n this.optionsContainer.nativeElement.scrollTop = getOptionScrollPosition(\n activeOptionIndex + labelCount,\n this.getItemHeight(),\n this.optionsContainer.nativeElement.scrollTop,\n SELECT_PANEL_MAX_HEIGHT\n );\n }\n\n /**\n * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text when\n * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n * can't be calculated until the panel has been attached, because we need to know the\n * content width in order to constrain the panel within the viewport.\n */\n private calculateOverlayOffsetX(): void {\n const overlayRect = this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n const viewportSize = this._viewportRuler.getViewportSize();\n const isRtl = this.isRtl();\n /* tslint:disable-next-line:no-magic-numbers */\n const paddingWidth = SELECT_PANEL_PADDING_X * 2;\n let offsetX: number;\n\n const selected = this.selectionModel.selected[0] || this.options.first;\n offsetX = selected && selected.group ? SELECT_PANEL_INDENT_PADDING_X : SELECT_PANEL_PADDING_X;\n\n // Invert the offset in LTR.\n if (!isRtl) { offsetX *= -1; }\n\n // Determine how much the select overflows on each side.\n const leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));\n const rightOverflow = overlayRect.right + offsetX - viewportSize.width\n + (isRtl ? 0 : paddingWidth);\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0) {\n offsetX += leftOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n } else if (rightOverflow > 0) {\n offsetX -= rightOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n"],"names":["MC_SELECT_SCROLL_STRATEGY_PROVIDER","CommonModule","McOptionModule","McFormFieldModule","McTagsModule","McIconModule","OverlayModule","NgModule","Input","Output","ContentChild","ContentChildren","McOptgroup","McOption","ViewChildren","McTag","ViewChild","CdkConnectedOverlay","Optional","Inject","MC_VALIDATION","MC_SELECT_SCROLL_STRATEGY","Attribute","FormControlName","Self","NgModel","NgControl","McFormField","FormGroupDirective","NgForm","Directionality","NG_VALIDATORS","ElementRef","ErrorStateMatcher","Renderer2","NgZone","ChangeDetectorRef","ViewportRuler","MC_OPTION_PARENT_COMPONENT","McFormFieldControl","mcSelectAnimations","ChangeDetectionStrategy","ViewEncapsulation","Component","SELECT_PANEL_VIEWPORT_PADDING","SELECT_PANEL_INDENT_PADDING_X","SELECT_PANEL_PADDING_X","getOptionScrollPosition","SELECT_PANEL_MAX_HEIGHT","countGroupLabelsBeforeOption","takeUntil","merge","ActiveDescendantKeyManager","isDevMode","getMcSelectNonArrayValueError","A","ENTER","SPACE","PAGE_DOWN","PAGE_UP","END","HOME","DOWN_ARROW","UP_ARROW","LEFT_ARROW","RIGHT_ARROW","take","startWith","setMosaicValidation","distinctUntilChanged","SelectionModel","getMcSelectNonFunctionValueError","coerceBooleanProperty","getMcSelectDynamicMultipleError","Subject","EventEmitter","map","filter","switchMap","defer","tslib_1.__extends","Directive","McInput","ESCAPE","Subscription","mixinTabIndex","mixinDisabled","mixinErrorState"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"mosaic-select.umd.js","sources":["../../packages/mosaic/select/select.module.ts","../../packages/mosaic/select/select.component.ts","../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MC_SELECT_SCROLL_STRATEGY_PROVIDER, McOptionModule } from '@ptsecurity/mosaic/core';\nimport { McFormFieldModule } from '@ptsecurity/mosaic/form-field';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\nimport { McTagsModule } from '@ptsecurity/mosaic/tags';\n\nimport { McSelect, McSelectSearch, McSelectSearchEmptyResult, McSelectTrigger } from './select.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n McOptionModule,\n McIconModule,\n McTagsModule\n ],\n exports: [\n McFormFieldModule,\n McSelect,\n McSelectSearch,\n McSelectSearchEmptyResult,\n McSelectTrigger,\n McOptionModule,\n CommonModule\n ],\n declarations: [\n McSelect,\n McSelectSearch,\n McSelectSearchEmptyResult,\n McSelectTrigger],\n providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER]\n})\nexport class McSelectModule {}\n","/* tslint:disable:no-empty */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n CdkConnectedOverlay,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n isDevMode,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n Self,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n A,\n ESCAPE,\n PAGE_UP,\n PAGE_DOWN\n} from '@ptsecurity/cdk/keycodes';\nimport {\n countGroupLabelsBeforeOption,\n getOptionScrollPosition,\n CanDisable,\n CanDisableCtor,\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n HasTabIndex,\n HasTabIndexCtor,\n MC_OPTION_PARENT_COMPONENT,\n McOptgroup,\n McOption,\n McOptionSelectionChange,\n mixinDisabled,\n mixinErrorState,\n mixinTabIndex,\n mcSelectAnimations,\n\n SELECT_PANEL_INDENT_PADDING_X,\n SELECT_PANEL_MAX_HEIGHT,\n SELECT_PANEL_PADDING_X,\n SELECT_PANEL_VIEWPORT_PADDING,\n MC_SELECT_SCROLL_STRATEGY,\n\n getMcSelectDynamicMultipleError,\n getMcSelectNonFunctionValueError,\n getMcSelectNonArrayValueError,\n\n setMosaicValidation,\n MC_VALIDATION,\n McValidationOptions\n} from '@ptsecurity/mosaic/core';\nimport { McCleaner, McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McInput } from '@ptsecurity/mosaic/input';\nimport { McTag } from '@ptsecurity/mosaic/tags';\nimport { defer, merge, Observable, Subject, Subscription } from 'rxjs';\nimport {\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n distinctUntilChanged\n} from 'rxjs/operators';\n\n\nlet nextUniqueId = 0;\n\n/** Change event object that is emitted when the select value has changed. */\nexport class McSelectChange {\n constructor(public source: McSelect, public value: any) {}\n}\n\nexport class McSelectBase {\n constructor(\n public elementRef: ElementRef,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nconst McSelectMixinBase: CanDisableCtor & HasTabIndexCtor & CanUpdateErrorStateCtor &\n typeof McSelectBase = mixinTabIndex(mixinDisabled(mixinErrorState(McSelectBase)));\n\n\n@Directive({\n selector: '[mcSelectSearch]',\n exportAs: 'mcSelectSearch',\n host: {\n '(keydown)': 'handleKeydown($event)'\n }\n})\nexport class McSelectSearch implements AfterContentInit, OnDestroy {\n @ContentChild(McInput, { static: false }) input: McInput;\n\n searchChangesSubscription: Subscription = new Subscription();\n\n isSearchChanged: boolean = false;\n\n constructor(formField: McFormField) {\n formField.canCleanerClearByEsc = false;\n }\n\n focus(): void {\n this.input.focus();\n }\n\n reset(): void {\n this.input.ngControl.reset();\n }\n\n ngAfterContentInit(): void {\n if (!this.input) {\n throw Error('McSelectSearch does not work without mcInput');\n }\n\n if (!this.input.ngControl) {\n throw Error('McSelectSearch does not work without ngControl');\n }\n\n Promise.resolve().then(() => {\n this.searchChangesSubscription = this.input.ngControl.valueChanges!.subscribe(() => {\n this.isSearchChanged = true;\n });\n });\n }\n\n ngOnDestroy(): void {\n this.searchChangesSubscription.unsubscribe();\n }\n\n handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n if (event.keyCode === ESCAPE) {\n if (this.input.value) {\n this.reset();\n event.stopPropagation();\n }\n }\n\n // tslint:disable-next-line:deprecation\n if ([SPACE, HOME, END].some((keyCode) => keyCode === event.keyCode)) {\n event.stopPropagation();\n }\n }\n}\n\n@Directive({\n selector: '[mc-select-search-empty-result]',\n exportAs: 'mcSelectSearchEmptyResult'\n})\nexport class McSelectSearchEmptyResult {}\n\n\n@Directive({ selector: 'mc-select-trigger' })\nexport class McSelectTrigger {}\n\n\n@Component({\n selector: 'mc-select',\n exportAs: 'mcSelect',\n templateUrl: 'select.html',\n styleUrls: ['./select.css'],\n inputs: ['disabled'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n '[tabindex]': 'tabIndex',\n\n class: 'mc-select',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-select-invalid]': 'errorState',\n\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(window:resize)': 'calculateHiddenItems()'\n },\n animations: [\n mcSelectAnimations.transformPanel,\n mcSelectAnimations.fadeInContent\n ],\n providers: [\n { provide: McFormFieldControl, useExisting: McSelect },\n { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McSelect }\n ]\n})\nexport class McSelect extends McSelectMixinBase implements\n AfterContentInit, AfterViewInit, OnChanges, OnDestroy, OnInit, DoCheck, ControlValueAccessor, CanDisable,\n HasTabIndex, McFormFieldControl<any>, CanUpdateErrorState {\n\n /** A name for this control that can be used by `mc-form-field`. */\n controlType = 'mc-select';\n\n hiddenItems: number = 0;\n\n /** The last measured value for the trigger's client bounding rect. */\n triggerRect: ClientRect;\n\n /** The cached font-size of the trigger element. */\n triggerFontSize = 0;\n\n /** Deals with the selection logic. */\n selectionModel: SelectionModel<McOption>;\n\n previousSelectionModelSelected: McOption[] = [];\n\n /** Manages keyboard events for options in the panel. */\n keyManager: ActiveDescendantKeyManager<McOption>;\n\n /** The value of the select panel's transform-origin property. */\n transformOrigin: string = 'top';\n\n /** Whether the panel's animation is done. */\n panelDoneAnimating: boolean = false;\n\n /** Emits when the panel element is finished transforming in. */\n panelDoneAnimatingStream = new Subject<string>();\n\n /** Strategy that will be used to handle scrolling while the select panel is open. */\n scrollStrategy = this._scrollStrategyFactory();\n\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n offsetY = 0;\n\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n positions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n\n @ViewChild('trigger', { static: false }) trigger: ElementRef;\n\n @ViewChild('panel', { static: false }) panel: ElementRef;\n\n @ViewChild('optionsContainer', { static: false }) optionsContainer: ElementRef;\n\n @ViewChild(CdkConnectedOverlay, { static: false }) overlayDir: CdkConnectedOverlay;\n\n @ViewChildren(McTag) tags: QueryList<McTag>;\n\n /** User-supplied override of the trigger element. */\n @ContentChild(McSelectTrigger, { static: false }) customTrigger: McSelectTrigger;\n\n @ContentChild('mcSelectCleaner', { static: true }) cleaner: McCleaner;\n\n /** All of the defined select options. */\n @ContentChildren(McOption, { descendants: true }) options: QueryList<McOption>;\n\n /** All of the defined groups of options. */\n @ContentChildren(McOptgroup) optionGroups: QueryList<McOptgroup>;\n\n @ContentChild(McSelectSearch, { static: false }) search: McSelectSearch;\n\n @Input() hiddenItemsText: string = '...ещё';\n\n /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n @Input() panelClass: string | string[] | Set<string> | { [key: string]: any };\n\n /** Object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Function used to sort the values in a select in multiple mode.\n * Follows the same logic as `Array.prototype.sort`.\n */\n @Input() sortComparator: (a: McOption, b: McOption, options: McOption[]) => number;\n\n /** Combined stream of all of the child options' change events. */\n readonly optionSelectionChanges: Observable<McOptionSelectionChange> = defer(() => {\n if (this.options) {\n return merge(\n ...this.options.map((option) => option.onSelectionChange),\n ...this.selectionModel.selected.map((option) => option.onSelectionChange)\n );\n }\n\n return this._ngZone.onStable\n .asObservable()\n .pipe(take(1), switchMap(() => this.optionSelectionChanges));\n }) as Observable<McOptionSelectionChange>;\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly openedStream: Observable<void> =\n this.openedChange.pipe(filter((o) => o), map(() => {}));\n\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly closedStream: Observable<void> =\n this.openedChange.pipe(filter((o) => !o), map(() => {}));\n\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange: EventEmitter<McSelectChange> = new EventEmitter<McSelectChange>();\n\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n\n this.stateChanges.next();\n }\n\n private _required: boolean = false;\n\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n if (this.selectionModel) {\n throw getMcSelectDynamicMultipleError();\n }\n\n this._multiple = coerceBooleanProperty(value);\n }\n\n private _multiple: boolean = false;\n\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n /* tslint:disable-next-line:strict-type-predicates */\n if (typeof fn !== 'function') {\n throw getMcSelectNonFunctionValueError();\n }\n\n this._compareWith = fn;\n\n if (this.selectionModel) {\n // A different comparator means the selection could change.\n this.initializeSelection();\n }\n }\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(newValue: any) {\n if (newValue !== this._value) {\n this.writeValue(newValue);\n this._value = newValue;\n }\n }\n\n private _value: any;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n this.stateChanges.next();\n }\n\n private _id: string;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this._panelOpen;\n }\n\n /**\n * @deprecated Setter to be removed as this property is intended to be readonly.\n * @breaking-change 8.0.0\n */\n set focused(value: boolean) {\n this._focused = value;\n }\n\n private _focused = false;\n\n get panelOpen(): boolean {\n return this._panelOpen;\n }\n\n private _panelOpen = false;\n\n get isEmptySearchResult(): boolean {\n return this.search && this.options.length === 0 && !!this.search.input.value;\n }\n\n get canShowCleaner(): boolean {\n return this.cleaner && this.selectionModel.hasValue();\n }\n\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n private scrollTop = 0;\n\n /** Unique id for this input. */\n private readonly uid = `mc-select-${nextUniqueId++}`;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroy = new Subject<void>();\n\n constructor(\n private readonly _viewportRuler: ViewportRuler,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n private readonly _renderer: Renderer2,\n defaultErrorStateMatcher: ErrorStateMatcher,\n elementRef: ElementRef,\n @Optional() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() private readonly _dir: Directionality,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n @Optional() private readonly _parentFormField: McFormField,\n @Self() @Optional() ngControl: NgControl,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName,\n @Attribute('tabindex') tabIndex: string,\n @Inject(MC_SELECT_SCROLL_STRATEGY) private readonly _scrollStrategyFactory,\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions\n ) {\n super(elementRef, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n this.tabIndex = parseInt(tabIndex) || 0;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<McOption>(this.multiple);\n this.stateChanges.next();\n\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this.panelDoneAnimatingStream\n .pipe(distinctUntilChanged(), takeUntil(this.destroy))\n .subscribe(() => {\n if (this.panelOpen) {\n this.scrollTop = 0;\n this.openedChange.emit(true);\n } else {\n this.openedChange.emit(false);\n this.panelDoneAnimating = false;\n this.overlayDir.offsetX = 0;\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n\n ngAfterContentInit() {\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n\n this.initKeyManager();\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroy))\n .subscribe((event) => {\n event.added.forEach((option) => option.select());\n event.removed.forEach((option) => option.deselect());\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroy))\n .subscribe(() => {\n this.resetOptions();\n this.initializeSelection();\n });\n }\n\n ngAfterViewInit(): void {\n this.tags.changes\n .subscribe(() => {\n setTimeout(() => this.calculateHiddenItems(), 0);\n });\n }\n\n ngDoCheck() {\n if (this.ngControl) { this.updateErrorState(); }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes.disabled) {\n this.stateChanges.next();\n }\n }\n\n ngOnDestroy() {\n this.destroy.next();\n this.destroy.complete();\n this.stateChanges.complete();\n }\n\n @Input()\n hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string {\n return `${hiddenItemsText} ${hiddenItems}`;\n }\n\n clearValue($event): void {\n $event.stopPropagation();\n\n this.selectionModel.clear();\n this.keyManager.setActiveItem(-1);\n\n this.propagateChanges();\n }\n\n /** `View -> model callback called when value changes` */\n onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n onTouched = () => {};\n\n resetSearch(): void {\n if (this.search) {\n this.search.reset();\n /*\n todo the incorrect behaviour of keyManager is possible here\n to avoid first item selection (to provide correct options flipping on closed select)\n we should process options update like it is the first options appearance\n */\n this.search.isSearchChanged = false;\n }\n }\n\n /** Toggles the overlay panel open or closed. */\n toggle(): void {\n if (this.panelOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the overlay panel. */\n open(): void {\n if (this.disabled || !this.options || !this.options.length || this._panelOpen) { return; }\n\n this.triggerRect = this.trigger.nativeElement.getBoundingClientRect();\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this.triggerFontSize = parseInt(getComputedStyle(this.trigger.nativeElement)['font-size']);\n\n this._panelOpen = true;\n this.keyManager.withHorizontalOrientation(null);\n this.highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n\n // Set the font size on the panel element once it exists.\n this._ngZone.onStable.asObservable()\n .pipe(take(1))\n .subscribe(() => {\n if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {\n this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;\n }\n });\n }\n\n /** Closes the overlay panel and focuses the host element. */\n close(): void {\n if (!this._panelOpen) { return; }\n\n // the order of calls is important\n this.resetSearch();\n this._panelOpen = false;\n this.keyManager.withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this._changeDetectorRef.markForCheck();\n this.onTouched();\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n if (this.options) {\n this.setSelectionByValue(value);\n }\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n get selected(): McOption | McOption[] {\n return this.multiple ? this.selectionModel.selected : this.selectionModel.selected[0];\n }\n\n get triggerValue(): string {\n if (this.empty) { return ''; }\n\n return this.selectionModel.selected[0].viewValue;\n }\n\n get triggerValues(): McOption[] {\n if (this.empty) { return []; }\n\n const selectedOptions = this.selectionModel.selected;\n\n if (this.isRtl()) { selectedOptions.reverse(); }\n\n return selectedOptions;\n }\n\n get empty(): boolean {\n return !this.selectionModel || this.selectionModel.isEmpty();\n }\n\n isRtl(): boolean {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (this.disabled) { return; }\n\n if (this.panelOpen) {\n this.handleOpenKeydown(event);\n } else {\n this.handleClosedKeydown(event);\n }\n }\n\n /**\n * When the panel content is done fading in, the panelDoneAnimating property is\n * set so the proper class can be added to the panel.\n */\n onFadeInDone(): void {\n this.panelDoneAnimating = this.panelOpen;\n this._changeDetectorRef.markForCheck();\n\n if (this.search && this._panelOpen) {\n this.search.focus();\n }\n }\n\n onFocus() {\n if (!this.disabled) {\n this._focused = true;\n\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n onBlur() {\n this._focused = false;\n\n if (!this.disabled && !this.panelOpen) {\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n onAttached(): void {\n this.overlayDir.positionChange\n .pipe(take(1))\n .subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this.calculateOverlayOffsetX();\n this.optionsContainer.nativeElement.scrollTop = this.scrollTop;\n\n this.updateScrollSize();\n });\n }\n\n /** Returns the theme to be used on the panel. */\n getPanelTheme(): string {\n return this._parentFormField ? `mc-${this._parentFormField.color}` : '';\n }\n\n /** Focuses the select element. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n this.open();\n }\n\n /** Invoked when an option is clicked. */\n onRemoveMatcherItem(option: McOption, $event): void {\n $event.stopPropagation();\n\n option.deselect();\n }\n\n calculateHiddenItems(): void {\n if (this.customTrigger || this.empty || !this.multiple) { return; }\n\n let visibleItems: number = 0;\n const totalItemsWidth = this.getTotalItemsWidthInMatcher();\n let totalVisibleItemsWidth: number = 0;\n\n this.tags.forEach((tag) => {\n if (tag.nativeElement.offsetTop < tag.nativeElement.offsetHeight) {\n totalVisibleItemsWidth += this.getItemWidth(tag.nativeElement);\n visibleItems++;\n }\n });\n\n this.hiddenItems = (this.selected as ArrayLike<McOption>).length - visibleItems;\n\n if (this.hiddenItems) {\n const itemsCounter = this.trigger.nativeElement.querySelector('.mc-select__match-hidden-text');\n const matcherList = this.trigger.nativeElement.querySelector('.mc-select__match-list');\n\n const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;\n // const itemsCounterWidth: number = itemsCounter.getBoundingClientRect().width;\n const itemsCounterWidth: number = 86;\n\n const matcherListWidth: number = matcherList.getBoundingClientRect().width;\n const matcherWidth: number = matcherListWidth + itemsCounterWidth;\n\n if (itemsCounterShowed && (totalItemsWidth < matcherWidth)) { this.hiddenItems = 0; }\n\n if (\n totalVisibleItemsWidth === matcherListWidth ||\n (totalVisibleItemsWidth + itemsCounterWidth) < matcherListWidth\n ) {\n this._changeDetectorRef.markForCheck();\n\n return ;\n } else if (!itemsCounterShowed && (totalItemsWidth + itemsCounterWidth) > matcherWidth) {\n this.hiddenItems++;\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n getItemHeight(): number {\n return this.options.first ? this.options.first.getHeight() : 0;\n }\n\n private getHeightOfOptionsContainer(): number {\n return this.optionsContainer.nativeElement.getClientRects()[0].height;\n }\n\n private updateScrollSize(): void {\n if (!this.options.first) { return; }\n\n this.keyManager.withScrollSize(\n Math.floor(this.getHeightOfOptionsContainer() / this.options.first.getHeight())\n );\n }\n\n private getTotalItemsWidthInMatcher(): number {\n const triggerClone = this.trigger.nativeElement.cloneNode(true);\n triggerClone.querySelector('.mc-select__match-hidden-text').remove();\n\n this._renderer.setStyle(triggerClone, 'position', 'absolute');\n this._renderer.setStyle(triggerClone, 'visibility', 'hidden');\n this._renderer.setStyle(triggerClone, 'top', '-100%');\n this._renderer.setStyle(triggerClone, 'left', '0');\n\n this._renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let totalItemsWidth: number = 0;\n triggerClone.querySelectorAll('mc-tag').forEach((item) => {\n totalItemsWidth += this.getItemWidth(item);\n });\n\n triggerClone.remove();\n\n return totalItemsWidth;\n }\n\n private getItemWidth(element: HTMLElement): number {\n const computedStyle = window.getComputedStyle(element);\n\n const width: number = parseInt(computedStyle.width as string);\n const marginLeft: number = parseInt(computedStyle.marginLeft as string);\n const marginRight: number = parseInt(computedStyle.marginRight as string);\n\n return width + marginLeft + marginRight;\n }\n\n /** Handles keyboard events while the select is closed. */\n private handleClosedKeydown(event: KeyboardEvent): void {\n /* tslint:disable-next-line */\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW ||\n keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n\n // Open the select on ALT + arrow key to match the native <select>\n if (isOpenKey || ((this.multiple || event.altKey) && isArrowKey)) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiple) {\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Handles keyboard events when the selected is open. */\n private handleOpenKeydown(event: KeyboardEvent): void {\n /* tslint:disable-next-line */\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n const manager = this.keyManager;\n\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this.close();\n } else if (keyCode === HOME) {\n event.preventDefault();\n\n manager.setFirstItemActive();\n } else if (keyCode === END) {\n event.preventDefault();\n\n manager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n event.preventDefault();\n\n manager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n event.preventDefault();\n\n manager.setNextPageItemActive();\n } else if ((keyCode === ENTER || keyCode === SPACE) && manager.activeItem) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (this._multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some((option) => !option.selected);\n this.options.forEach((option) => {\n if (hasDeselectedOptions && !option.disabled) {\n option.select();\n } else {\n option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n\n manager.onKeydown(event);\n\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem &&\n manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem.selectViaInteraction();\n }\n\n if (this.search) {\n this.search.focus();\n }\n }\n }\n\n private initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private setSelectionByValue(value: any | any[]): void {\n this.previousSelectionModelSelected = this.selectionModel.selected;\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw getMcSelectNonArrayValueError();\n }\n\n this.selectionModel.clear();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n this.sortValues();\n } else {\n this.selectionModel.clear();\n const correspondingOption = this.selectValue(value);\n\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this.keyManager.setActiveItem(correspondingOption);\n }\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n private getCorrespondOption(value: any): McOption | undefined {\n return [\n ...this.options.toArray(),\n ...this.previousSelectionModelSelected\n ].find((option: McOption) => {\n try {\n // Treat null as a special reset value.\n return option.value != null && this.compareWith(option.value, value);\n } catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n\n return false;\n }\n });\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private selectValue(value: any): McOption | undefined {\n const correspondingOption = this.getCorrespondOption(value);\n\n if (correspondingOption) {\n this.selectionModel.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private initKeyManager() {\n const typeAheadDebounce = 200;\n\n this.keyManager = new ActiveDescendantKeyManager<McOption>(this.options)\n .withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)\n .withVerticalOrientation()\n .withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n });\n\n this.keyManager.change\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n if (this._panelOpen && this.panel) {\n this.scrollActiveOptionIntoView();\n } else if (!this._panelOpen && !this.multiple && this.keyManager.activeItem) {\n this.keyManager.activeItem.selectViaInteraction();\n }\n });\n }\n\n /** Drops current option subscriptions and IDs and resets from scratch. */\n private resetOptions(): void {\n const changedOrDestroyed = merge(this.options.changes, this.destroy);\n\n this.optionSelectionChanges\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe((event) => {\n this.onSelect(event.source, event.isUserInput);\n\n if (this.search && this.search.isSearchChanged) {\n Promise.resolve().then(() => this.keyManager.updateActiveItem(0));\n\n this.search.isSearchChanged = false;\n }\n\n if (event.isUserInput && !this.multiple && this._panelOpen) {\n this.close();\n this.focus();\n }\n });\n\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map((option) => option.stateChanges))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n });\n }\n\n /** Invoked when an option is clicked. */\n private onSelect(option: McOption, isUserInput: boolean): void {\n const wasSelected = this.selectionModel.isSelected(option);\n\n if (option.value == null && !this._multiple) {\n option.deselect();\n this.selectionModel.clear();\n this.propagateChanges(option.value);\n } else {\n if (option.selected) {\n this.selectionModel.select(option);\n } else {\n this.selectionModel.deselect(option);\n }\n\n if (isUserInput) {\n this.keyManager.setActiveItem(option);\n }\n\n if (this.multiple) {\n this.sortValues();\n\n if (isUserInput) {\n // In case the user selected the option with their mouse, we\n // want to restore focus back to the trigger, in order to\n // prevent the select keyboard controls from clashing with\n // the ones from `mc-option`.\n // If search is avaliable then we focus search again.\n if (this.search) {\n this.search.focus();\n } else {\n this.focus();\n }\n }\n }\n }\n\n if (wasSelected !== this.selectionModel.isSelected(option)) {\n this.propagateChanges();\n }\n\n this.stateChanges.next();\n }\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n\n this.selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) :\n options.indexOf(a) - options.indexOf(b);\n });\n this.stateChanges.next();\n }\n }\n\n /** Emits change event to set the model value. */\n private propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any = null;\n\n if (this.multiple) {\n valueToEmit = (this.selected as McOption[]).map((option) => option.value);\n } else {\n valueToEmit = this.selected ? (this.selected as McOption).value : fallbackValue;\n }\n\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this.onChange(valueToEmit);\n this.selectionChange.emit(new McSelectChange(this, valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private highlightCorrectOption(): void {\n if (this.keyManager) {\n if (this.empty) {\n this.keyManager.setFirstItemActive();\n } else {\n this.keyManager.setActiveItem(this.selectionModel.selected[0]);\n }\n }\n }\n\n /** Scrolls the active option into view. */\n private scrollActiveOptionIntoView(): void {\n const activeOptionIndex = this.keyManager.activeItemIndex || 0;\n const labelCount = countGroupLabelsBeforeOption(activeOptionIndex, this.options, this.optionGroups);\n\n this.optionsContainer.nativeElement.scrollTop = getOptionScrollPosition(\n activeOptionIndex + labelCount,\n this.getItemHeight(),\n this.optionsContainer.nativeElement.scrollTop,\n SELECT_PANEL_MAX_HEIGHT\n );\n }\n\n /**\n * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text when\n * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n * can't be calculated until the panel has been attached, because we need to know the\n * content width in order to constrain the panel within the viewport.\n */\n private calculateOverlayOffsetX(): void {\n const overlayRect = this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n const viewportSize = this._viewportRuler.getViewportSize();\n const isRtl = this.isRtl();\n /* tslint:disable-next-line:no-magic-numbers */\n const paddingWidth = SELECT_PANEL_PADDING_X * 2;\n let offsetX: number;\n\n const selected = this.selectionModel.selected[0] || this.options.first;\n offsetX = selected && selected.group ? SELECT_PANEL_INDENT_PADDING_X : SELECT_PANEL_PADDING_X;\n\n // Invert the offset in LTR.\n if (!isRtl) { offsetX *= -1; }\n\n // Determine how much the select overflows on each side.\n const leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));\n const rightOverflow = overlayRect.right + offsetX - viewportSize.width\n + (isRtl ? 0 : paddingWidth);\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0) {\n offsetX += leftOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n } else if (rightOverflow > 0) {\n offsetX -= rightOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n"],"names":["MC_SELECT_SCROLL_STRATEGY_PROVIDER","CommonModule","McOptionModule","McFormFieldModule","McTagsModule","McIconModule","OverlayModule","NgModule","Input","Output","ContentChild","ContentChildren","McOptgroup","McOption","ViewChildren","McTag","ViewChild","CdkConnectedOverlay","Optional","Inject","MC_VALIDATION","MC_SELECT_SCROLL_STRATEGY","Attribute","FormControlName","Self","NgModel","NgControl","McFormField","FormGroupDirective","NgForm","Directionality","NG_VALIDATORS","ElementRef","ErrorStateMatcher","Renderer2","NgZone","ChangeDetectorRef","ViewportRuler","MC_OPTION_PARENT_COMPONENT","McFormFieldControl","mcSelectAnimations","ChangeDetectionStrategy","ViewEncapsulation","Component","SELECT_PANEL_VIEWPORT_PADDING","SELECT_PANEL_INDENT_PADDING_X","SELECT_PANEL_PADDING_X","getOptionScrollPosition","SELECT_PANEL_MAX_HEIGHT","countGroupLabelsBeforeOption","takeUntil","merge","ActiveDescendantKeyManager","isDevMode","getMcSelectNonArrayValueError","A","ENTER","SPACE","PAGE_DOWN","PAGE_UP","END","HOME","DOWN_ARROW","UP_ARROW","LEFT_ARROW","RIGHT_ARROW","take","startWith","setMosaicValidation","distinctUntilChanged","SelectionModel","getMcSelectNonFunctionValueError","coerceBooleanProperty","getMcSelectDynamicMultipleError","Subject","EventEmitter","map","filter","switchMap","defer","tslib_1.__extends","Directive","McInput","ESCAPE","Subscription","mixinTabIndex","mixinDisabled","mixinErrorState"],"mappings":"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"}
|