{"version":3,"sources":["apps/frontend/src/app/shared/services/card-login-listener.service.ts","node_modules/@angular/material/fesm2022/legacy-chips.mjs","apps/frontend/src/app/shared/components/login-form.component.ts","apps/frontend/src/app/shared/components/change-password-form.component.ts","apps/frontend/src/app/shared/components/login.component.ts","apps/frontend/src/app/shared/components/login-verification-dialog.component.ts","apps/frontend/src/app/login/login.module.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\nimport { ToastService } from '@proman/services/toast.service';\nimport { Entity } from '@proman/services/entity.service';\nimport { AuthService } from '@proman/services/auth.service';\nimport $ from 'jquery';\nimport { CurrUser, LoginProject } from '@proman/interfaces/object-interfaces';\nimport { Store } from '@ngrx/store';\nimport { UserEntityInterface } from '@proman/resources/user';\nimport { getCurrUser } from '@proman/store/curr-user';\nimport { PromanStateService } from '@frontend/shared/services/proman-state.service';\n\n@Injectable()\nexport class CardLoginListenerService {\n timer: any = null;\n keyLength: number = 10;\n buffer: any = [];\n logged: boolean;\n userEntity: UserEntityInterface;\n currUser: CurrUser;\n\n constructor(\n private Entity: Entity,\n private Auth: AuthService,\n private Injector: Injector,\n private Toast: ToastService,\n private PromanState: PromanStateService,\n private store: Store,\n ) {\n this.userEntity = this.Entity.get('user');\n this.store.select(getCurrUser)\n .subscribe((value) => this.currUser = value);\n }\n\n start = () => {\n let threshold = 30; // ms\n\n $('body').on('keydown.cardlogin', (event) => {\n let allowedKeyCodes;\n\n if (this.timer) {\n clearTimeout(this.timer);\n }\n\n this.timer = setTimeout(this.notify, threshold);\n // allowedKeyCodes = return, 0-9, =\n allowedKeyCodes = [13, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 187];\n if (allowedKeyCodes.indexOf(event.keyCode) >= 0) {\n this.buffer.push(String.fromCharCode(event.keyCode));\n } else {\n this.buffer.length = 0;\n }\n });\n };\n\n notify = () => {\n let input = this.buffer.join('').trim();\n\n clearTimeout(this.timer);\n\n this.buffer.length = 0;\n\n if (input.length === this.keyLength) {\n\n this.handleCard(input);\n\n this.logged = true;\n\n }\n\n };\n\n handleCard = (token: string, project: LoginProject = LoginProject.FRONTEND) => {\n let disabled = () => this.Toast.pop('error', 'this_function_is_disabled');\n\n let credentials = { _token: token, project };\n\n if (this.currUser && this.Auth.getToken()) {\n let _username = this.currUser.username;\n\n this.userEntity\n .checkCardOwner(Object.assign({_username}, credentials))\n .then((response: any) => {\n let skipRedirect = !response.result;\n\n this.Auth.clearToken();\n\n this.Auth.logout(skipRedirect);\n\n if (skipRedirect) {\n this.Auth.login(credentials);\n\n }\n\n }, (error: any) => {\n if (error.status === 401) {\n this.Auth.clearToken();\n return this.handleCard(token);\n } else {\n disabled();\n }\n });\n\n } else {\n this.Auth\n .login(credentials)\n .then(() => {\n this.PromanState.go(true);\n })\n .catch(disabled);\n\n }\n\n };\n\n suspend = () => $('body').off('keydown.cardlogin');\n\n isCardLogin = async () => {\n let result: any;\n\n await setTimeout(() => {\n\n if (this.logged) {\n this.logged = false;\n result = Promise.resolve();\n\n } else {\n result = Promise.reject('error');\n\n }\n\n }, 350);\n\n return result;\n };\n}\n","import { SPACE, BACKSPACE, DELETE, TAB, hasModifierKey, ENTER } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, EventEmitter, Optional, Inject, Attribute, ContentChild, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, Self, ContentChildren, NgModule } from '@angular/core';\nimport * as i3 from '@angular/material/core';\nimport { mixinTabIndex, mixinColor, mixinDisableRipple, RippleRenderer, MAT_RIPPLE_GLOBAL_OPTIONS, mixinErrorState, MatCommonModule, ErrorStateMatcher } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subject, merge } from 'rxjs';\nimport { take, takeUntil, startWith } from 'rxjs/operators';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport * as i1$1 from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport { MatLegacyFormFieldControl } from '@angular/material/legacy-form-field';\n\n/**\n * Event object emitted by MatChip when selected or deselected.\n * @deprecated Use `MatChipSelectionChange` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst _c0 = [\"*\"];\nclass MatLegacyChipSelectionChange {\n constructor( /** Reference to the chip that emitted the event. */\n source, /** Whether the chip that emitted the event is selected. */\n selected, /** Whether the selection change was a result of a user interaction. */\n isUserInput = false) {\n this.source = source;\n this.selected = selected;\n this.isUserInput = isUserInput;\n }\n}\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n * @deprecated Use `MAT_CHIP_REMOVE` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIP_REMOVE = /*#__PURE__*/new InjectionToken('MatChipRemove');\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n * @deprecated Use `MAT_CHIP_AVATAR` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIP_AVATAR = /*#__PURE__*/new InjectionToken('MatChipAvatar');\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n * @deprecated Use `MAT_CHIP_TRAILING_ICON` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIP_TRAILING_ICON = /*#__PURE__*/new InjectionToken('MatChipTrailingIcon');\n// Boilerplate for applying mixins to MatChip.\n/** @docs-private */\nclass MatChipBase {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}\nconst _MatChipMixinBase = /*#__PURE__*/mixinTabIndex( /*#__PURE__*/mixinColor( /*#__PURE__*/mixinDisableRipple(MatChipBase), 'primary'), -1);\n/**\n * Dummy directive to add CSS class to chip avatar.\n * @docs-private\n * @deprecated Use `MatChipAvatar` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChipAvatar = /*#__PURE__*/(() => {\n class MatLegacyChipAvatar {\n static {\n this.ɵfac = function MatLegacyChipAvatar_Factory(t) {\n return new (t || MatLegacyChipAvatar)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipAvatar,\n selectors: [[\"mat-chip-avatar\"], [\"\", \"matChipAvatar\", \"\"]],\n hostAttrs: [1, \"mat-chip-avatar\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_CHIP_AVATAR,\n useExisting: MatLegacyChipAvatar\n }])]\n });\n }\n }\n return MatLegacyChipAvatar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Dummy directive to add CSS class to chip trailing icon.\n * @docs-private\n * @deprecated Use `MatChipTrailingIcon` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChipTrailingIcon = /*#__PURE__*/(() => {\n class MatLegacyChipTrailingIcon {\n static {\n this.ɵfac = function MatLegacyChipTrailingIcon_Factory(t) {\n return new (t || MatLegacyChipTrailingIcon)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipTrailingIcon,\n selectors: [[\"mat-chip-trailing-icon\"], [\"\", \"matChipTrailingIcon\", \"\"]],\n hostAttrs: [1, \"mat-chip-trailing-icon\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_CHIP_TRAILING_ICON,\n useExisting: MatLegacyChipTrailingIcon\n }])]\n });\n }\n }\n return MatLegacyChipTrailingIcon;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design styled chip directive. Used inside the MatChipList component.\n * @deprecated Use `MatChip` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChip = /*#__PURE__*/(() => {\n class MatLegacyChip extends _MatChipMixinBase {\n /**\n * Whether ripples are disabled on interaction\n * @docs-private\n */\n get rippleDisabled() {\n return this.disabled || this.disableRipple || this._animationsDisabled || !!this.rippleConfig.disabled;\n }\n /** Whether the chip is selected. */\n get selected() {\n return this._selected;\n }\n set selected(value) {\n const coercedValue = coerceBooleanProperty(value);\n if (coercedValue !== this._selected) {\n this._selected = coercedValue;\n this._dispatchSelectionChange();\n }\n }\n /** The value of the chip. Defaults to the content inside `` tags. */\n get value() {\n return this._value !== undefined ? this._value : this._elementRef.nativeElement.textContent;\n }\n set value(value) {\n this._value = value;\n }\n /**\n * Whether or not the chip is selectable. When a chip is not selectable,\n * changes to its selected state are always ignored. By default a chip is\n * selectable, and it becomes non-selectable if its parent chip list is\n * not selectable.\n */\n get selectable() {\n return this._selectable && this.chipListSelectable;\n }\n set selectable(value) {\n this._selectable = coerceBooleanProperty(value);\n }\n /** Whether the chip is disabled. */\n get disabled() {\n return this._chipListDisabled || this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /**\n * Determines whether or not the chip displays the remove styling and emits (removed) events.\n */\n get removable() {\n return this._removable;\n }\n set removable(value) {\n this._removable = coerceBooleanProperty(value);\n }\n /** The ARIA selected applied to the chip. */\n get ariaSelected() {\n // Remove the `aria-selected` when the chip is deselected in single-selection mode, because\n // it adds noise to NVDA users where \"not selected\" will be read out for each chip.\n return this.selectable && (this._chipListMultiple || this.selected) ? this.selected.toString() : null;\n }\n constructor(elementRef, _ngZone, platform, globalRippleOptions, _changeDetectorRef, _document, animationMode, tabIndex) {\n super(elementRef);\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n /** Whether the chip has focus. */\n this._hasFocus = false;\n /** Whether the chip list is selectable */\n this.chipListSelectable = true;\n /** Whether the chip list is in multi-selection mode. */\n this._chipListMultiple = false;\n /** Whether the chip list as a whole is disabled. */\n this._chipListDisabled = false;\n /** ARIA role that should be applied to the chip. */\n this.role = 'option';\n this._selected = false;\n this._selectable = true;\n this._disabled = false;\n this._removable = true;\n /** Emits when the chip is focused. */\n this._onFocus = new Subject();\n /** Emits when the chip is blurred. */\n this._onBlur = new Subject();\n /** Emitted when the chip is selected or deselected. */\n this.selectionChange = new EventEmitter();\n /** Emitted when the chip is destroyed. */\n this.destroyed = new EventEmitter();\n /** Emitted when a chip is to be removed. */\n this.removed = new EventEmitter();\n this._addHostClassName();\n // Dynamically create the ripple target, append it within the chip, and use it as the\n // chip's ripple target. Adding the class '.mat-chip-ripple' ensures that it will have\n // the proper styles.\n this._chipRippleTarget = _document.createElement('div');\n this._chipRippleTarget.classList.add('mat-chip-ripple');\n this._elementRef.nativeElement.appendChild(this._chipRippleTarget);\n this._chipRipple = new RippleRenderer(this, _ngZone, this._chipRippleTarget, platform);\n this._chipRipple.setupTriggerEvents(elementRef);\n this.rippleConfig = globalRippleOptions || {};\n this._animationsDisabled = animationMode === 'NoopAnimations';\n this.tabIndex = tabIndex != null ? parseInt(tabIndex) || -1 : -1;\n }\n _addHostClassName() {\n const basicChipAttrName = 'mat-basic-chip';\n const element = this._elementRef.nativeElement;\n if (element.hasAttribute(basicChipAttrName) || element.tagName.toLowerCase() === basicChipAttrName) {\n element.classList.add(basicChipAttrName);\n return;\n } else {\n element.classList.add('mat-standard-chip');\n }\n }\n ngOnDestroy() {\n this.destroyed.emit({\n chip: this\n });\n this._chipRipple._removeTriggerEvents();\n }\n /** Selects the chip. */\n select() {\n if (!this._selected) {\n this._selected = true;\n this._dispatchSelectionChange();\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Deselects the chip. */\n deselect() {\n if (this._selected) {\n this._selected = false;\n this._dispatchSelectionChange();\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Select this chip and emit selected event */\n selectViaInteraction() {\n if (!this._selected) {\n this._selected = true;\n this._dispatchSelectionChange(true);\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Toggles the current selected state of this chip. */\n toggleSelected(isUserInput = false) {\n this._selected = !this.selected;\n this._dispatchSelectionChange(isUserInput);\n this._changeDetectorRef.markForCheck();\n return this.selected;\n }\n /** Allows for programmatic focusing of the chip. */\n focus() {\n if (!this._hasFocus) {\n this._elementRef.nativeElement.focus();\n this._onFocus.next({\n chip: this\n });\n }\n this._hasFocus = true;\n }\n /**\n * Allows for programmatic removal of the chip. Called by the MatChipList when the DELETE or\n * BACKSPACE keys are pressed.\n *\n * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n */\n remove() {\n if (this.removable) {\n this.removed.emit({\n chip: this\n });\n }\n }\n /** Handles click events on the chip. */\n _handleClick(event) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n /** Handle custom key presses. */\n _handleKeydown(event) {\n if (this.disabled) {\n return;\n }\n switch (event.keyCode) {\n case DELETE:\n case BACKSPACE:\n // If we are removable, remove the focused chip\n this.remove();\n // Always prevent so page navigation does not occur\n event.preventDefault();\n break;\n case SPACE:\n // If we are selectable, toggle the focused chip\n if (this.selectable) {\n this.toggleSelected(true);\n }\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n }\n }\n _blur() {\n // When animations are enabled, Angular may end up removing the chip from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the chip list\n // that moves focus not the next item. To work around the issue, we defer marking the chip\n // as not focused until the next time the zone stabilizes.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._ngZone.run(() => {\n this._hasFocus = false;\n this._onBlur.next({\n chip: this\n });\n });\n });\n }\n _dispatchSelectionChange(isUserInput = false) {\n this.selectionChange.emit({\n source: this,\n isUserInput,\n selected: this._selected\n });\n }\n static {\n this.ɵfac = function MatLegacyChip_Factory(t) {\n return new (t || MatLegacyChip)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵinjectAttribute('tabindex'));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChip,\n selectors: [[\"mat-basic-chip\"], [\"\", \"mat-basic-chip\", \"\"], [\"mat-chip\"], [\"\", \"mat-chip\", \"\"]],\n contentQueries: function MatLegacyChip_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_CHIP_AVATAR, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_CHIP_TRAILING_ICON, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_CHIP_REMOVE, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.avatar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trailingIcon = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeIcon = _t.first);\n }\n },\n hostAttrs: [1, \"mat-chip\", \"mat-focus-indicator\"],\n hostVars: 15,\n hostBindings: function MatLegacyChip_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatLegacyChip_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n })(\"keydown\", function MatLegacyChip_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatLegacyChip_focus_HostBindingHandler() {\n return ctx.focus();\n })(\"blur\", function MatLegacyChip_blur_HostBindingHandler() {\n return ctx._blur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx.tabIndex)(\"role\", ctx.role)(\"disabled\", ctx.disabled || null)(\"aria-disabled\", ctx.disabled.toString())(\"aria-selected\", ctx.ariaSelected);\n i0.ɵɵclassProp(\"mat-chip-selected\", ctx.selected)(\"mat-chip-with-avatar\", ctx.avatar)(\"mat-chip-with-trailing-icon\", ctx.trailingIcon || ctx.removeIcon)(\"mat-chip-disabled\", ctx.disabled)(\"_mat-animation-noopable\", ctx._animationsDisabled);\n }\n },\n inputs: {\n color: \"color\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\",\n role: \"role\",\n selected: \"selected\",\n value: \"value\",\n selectable: \"selectable\",\n disabled: \"disabled\",\n removable: \"removable\"\n },\n outputs: {\n selectionChange: \"selectionChange\",\n destroyed: \"destroyed\",\n removed: \"removed\"\n },\n exportAs: [\"matChip\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatLegacyChip;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Applies proper (click) support and adds styling for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n * `\n * cancel\n * `\n *\n * You *may* use a custom icon, but you may need to override the `mat-chip-remove` positioning\n * styles to properly center the icon within the chip.\n *\n * @deprecated Use `MatChipRemove` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChipRemove = /*#__PURE__*/(() => {\n class MatLegacyChipRemove {\n constructor(_parentChip, elementRef) {\n this._parentChip = _parentChip;\n if (elementRef.nativeElement.nodeName === 'BUTTON') {\n elementRef.nativeElement.setAttribute('type', 'button');\n }\n }\n /** Calls the parent chip's public `remove()` method if applicable. */\n _handleClick(event) {\n const parentChip = this._parentChip;\n if (parentChip.removable && !parentChip.disabled) {\n parentChip.remove();\n }\n // We need to stop event propagation because otherwise the event will bubble up to the\n // form field and cause the `onContainerClick` method to be invoked. This method would then\n // reset the focused chip that has been focused after chip removal. Usually the parent\n // the parent click listener of the `MatChip` would prevent propagation, but it can happen\n // that the chip is being removed before the event bubbles up.\n event.stopPropagation();\n event.preventDefault();\n }\n static {\n this.ɵfac = function MatLegacyChipRemove_Factory(t) {\n return new (t || MatLegacyChipRemove)(i0.ɵɵdirectiveInject(MatLegacyChip), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipRemove,\n selectors: [[\"\", \"matChipRemove\", \"\"]],\n hostAttrs: [1, \"mat-chip-remove\", \"mat-chip-trailing-icon\"],\n hostBindings: function MatLegacyChipRemove_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatLegacyChipRemove_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_CHIP_REMOVE,\n useExisting: MatLegacyChipRemove\n }])]\n });\n }\n }\n return MatLegacyChipRemove;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token to be used to override the default options for the chips module.\n * @deprecated Use `MAT_CHIPS_DEFAULT_OPTIONS` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIPS_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-chips-default-options');\n\n// Boilerplate for applying mixins to MatChipList.\n/** @docs-private */\nconst _MatChipListBase = /*#__PURE__*/mixinErrorState(class {\n constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n});\n// Increasing integer for generating unique ids for chip-list components.\nlet nextUniqueId$1 = 0;\n/**\n * Change event object that is emitted when the chip list value has changed.\n * @deprecated Use `MatChipListChange` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipListChange {\n constructor( /** Chip list that emitted the event. */\n source, /** Value of the chip list when the event was emitted. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n/**\n * A material design chips component (named ChipList for its similarity to the List component).\n * @deprecated Use `MatChipList` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChipList = /*#__PURE__*/(() => {\n class MatLegacyChipList extends _MatChipListBase {\n /** The array of selected chips inside chip list. */\n get selected() {\n return this.multiple ? this._selectionModel?.selected || [] : this._selectionModel?.selected[0];\n }\n /** The ARIA role applied to the chip list. */\n get role() {\n if (this._explicitRole) {\n return this._explicitRole;\n }\n return this.empty ? null : 'listbox';\n }\n set role(role) {\n this._explicitRole = role;\n }\n /** Whether the user should be allowed to select multiple chips. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n this._multiple = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n /**\n * A 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 get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._value;\n }\n set value(value) {\n this.writeValue(value);\n this._value = value;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._chipInput ? this._chipInput.id : this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get placeholder() {\n return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n }\n set placeholder(value) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n /** Whether any chips or the matChipInput inside of this chip-list has focus. */\n get focused() {\n return this._chipInput && this._chipInput.focused || this._hasFocusedChip();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return (!this._chipInput || this._chipInput.empty) && (!this.chips || this.chips.length === 0);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n return !this.empty || this.focused;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n /**\n * Whether or not this chip list is selectable. When a chip list is not selectable,\n * the selected states for all the chips inside the chip list are always ignored.\n */\n get selectable() {\n return this._selectable;\n }\n set selectable(value) {\n this._selectable = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n set tabIndex(value) {\n this._userTabIndex = value;\n this._tabIndex = value;\n }\n /** Combined stream of all of the child chips' selection change events. */\n get chipSelectionChanges() {\n return merge(...this.chips.map(chip => chip.selectionChange));\n }\n /** Combined stream of all of the child chips' focus change events. */\n get chipFocusChanges() {\n return merge(...this.chips.map(chip => chip._onFocus));\n }\n /** Combined stream of all of the child chips' blur change events. */\n get chipBlurChanges() {\n return merge(...this.chips.map(chip => chip._onBlur));\n }\n /** Combined stream of all of the child chips' remove change events. */\n get chipRemoveChanges() {\n return merge(...this.chips.map(chip => chip.destroyed));\n }\n constructor(_elementRef, _changeDetectorRef, _dir, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, ngControl) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-chip-list';\n /**\n * When a chip is destroyed, we store the index of the destroyed chip until the chips\n * query list notifies about the update. This is necessary because we cannot determine an\n * appropriate chip that should receive focus until the array of chips updated completely.\n */\n this._lastDestroyedChipIndex = null;\n /** Subject that emits when the component has been destroyed. */\n this._destroyed = new Subject();\n /** Uid of the chip list */\n this._uid = `mat-chip-list-${nextUniqueId$1++}`;\n /** Tab index for the chip list. */\n this._tabIndex = 0;\n /**\n * User defined tab index.\n * When it is not null, use user defined tab index. Otherwise use _tabIndex\n */\n this._userTabIndex = null;\n /** Function when touched */\n this._onTouched = () => {};\n /** Function when changed */\n this._onChange = () => {};\n this._multiple = false;\n this._compareWith = (o1, o2) => o1 === o2;\n this._disabled = false;\n /** Orientation of the chip list. */\n this.ariaOrientation = 'horizontal';\n this._selectable = true;\n /** Event emitted when the selected chip list value has been changed by the user. */\n this.change = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the chip-list changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager(this.chips).withWrap().withVerticalOrientation().withHomeAndEnd().withHorizontalOrientation(this._dir ? this._dir.value : 'ltr');\n if (this._dir) {\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(dir => this._keyManager.withHorizontalOrientation(dir));\n }\n this._keyManager.tabOut.subscribe(() => this._allowFocusEscape());\n // When the list changes, re-subscribe\n this.chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n if (this.disabled || !this.selectable) {\n // Since this happens after the content has been\n // checked, we need to defer it to the next tick.\n Promise.resolve().then(() => {\n this._syncChipsState();\n });\n }\n this._resetChips();\n // Reset chips selected/deselected status\n this._initializeSelection();\n // Check to see if we need to update our tab index\n this._updateTabIndex();\n // Check to see if we have a destroyed chip and need to refocus\n this._updateFocusForDestroyedChips();\n this.stateChanges.next();\n });\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n this.stateChanges.next();\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n if (this.ngControl.disabled !== this._disabled) {\n this.disabled = !!this.ngControl.disabled;\n }\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.stateChanges.complete();\n this._dropSubscriptions();\n }\n /** Associates an HTML input element with this chip list. */\n registerInput(inputElement) {\n this._chipInput = inputElement;\n // We use this attribute to match the chip list to its input in test harnesses.\n // Set the attribute directly here to avoid \"changed after checked\" errors.\n this._elementRef.nativeElement.setAttribute('data-mat-chip-input', inputElement.id);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n // Implemented as part of ControlValueAccessor.\n writeValue(value) {\n if (this.chips) {\n this._setSelectionByValue(value, false);\n }\n }\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn) {\n this._onChange = fn;\n }\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick(event) {\n if (!this._originatesFromChip(event)) {\n this.focus();\n }\n }\n /**\n * Focuses the first non-disabled chip in this chip list, or the associated input when there\n * are no eligible chips.\n */\n focus(options) {\n if (this.disabled) {\n return;\n }\n // TODO: ARIA says this should focus the first `selected` chip if any are selected.\n // Focus on first element if there's no chipInput inside chip-list\n if (this._chipInput && this._chipInput.focused) {\n // do nothing\n } else if (this.chips.length > 0) {\n this._keyManager.setFirstItemActive();\n this.stateChanges.next();\n } else {\n this._focusInput(options);\n this.stateChanges.next();\n }\n }\n /** Attempt to focus an input if we have one. */\n _focusInput(options) {\n if (this._chipInput) {\n this._chipInput.focus(options);\n }\n }\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n _keydown(event) {\n const target = event.target;\n if (target && target.classList.contains('mat-chip')) {\n this._keyManager.onKeydown(event);\n this.stateChanges.next();\n }\n }\n /**\n * Check the tab index as you should not be allowed to focus an empty list.\n */\n _updateTabIndex() {\n // If we have 0 chips, we should not allow keyboard focus\n this._tabIndex = this._userTabIndex || (this.chips.length === 0 ? -1 : 0);\n }\n /**\n * If the amount of chips changed, we need to update the\n * key manager state and focus the next closest chip.\n */\n _updateFocusForDestroyedChips() {\n // Move focus to the closest chip. If no other chips remain, focus the chip-list itself.\n if (this._lastDestroyedChipIndex != null) {\n if (this.chips.length) {\n const newChipIndex = Math.min(this._lastDestroyedChipIndex, this.chips.length - 1);\n this._keyManager.setActiveItem(newChipIndex);\n } else {\n this.focus();\n }\n }\n this._lastDestroyedChipIndex = null;\n }\n /**\n * Utility to ensure all indexes are valid.\n *\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of chips.\n */\n _isValidIndex(index) {\n return index >= 0 && index < this.chips.length;\n }\n _setSelectionByValue(value, isUserInput = true) {\n this._clearSelection();\n this.chips.forEach(chip => chip.deselect());\n if (Array.isArray(value)) {\n value.forEach(currentValue => this._selectValue(currentValue, isUserInput));\n this._sortValues();\n } else {\n const correspondingChip = this._selectValue(value, isUserInput);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what chip the user interacted with last.\n if (correspondingChip) {\n if (isUserInput) {\n this._keyManager.setActiveItem(correspondingChip);\n }\n }\n }\n }\n /**\n * Finds and selects the chip based on its value.\n * @returns Chip that has the corresponding value.\n */\n _selectValue(value, isUserInput = true) {\n const correspondingChip = this.chips.find(chip => {\n return chip.value != null && this._compareWith(chip.value, value);\n });\n if (correspondingChip) {\n isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();\n this._selectionModel.select(correspondingChip);\n }\n return correspondingChip;\n }\n _initializeSelection() {\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 if (this.ngControl || this._value) {\n this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._value, false);\n this.stateChanges.next();\n }\n });\n }\n /**\n * Deselects every chip in the list.\n * @param skip Chip that should not be deselected.\n */\n _clearSelection(skip) {\n this._selectionModel.clear();\n this.chips.forEach(chip => {\n if (chip !== skip) {\n chip.deselect();\n }\n });\n this.stateChanges.next();\n }\n /**\n * Sorts the model values, ensuring that they keep the same\n * order that they have in the panel.\n */\n _sortValues() {\n if (this._multiple) {\n this._selectionModel.clear();\n this.chips.forEach(chip => {\n if (chip.selected) {\n this._selectionModel.select(chip);\n }\n });\n this.stateChanges.next();\n }\n }\n /** Emits change event to set the model value. */\n _propagateChanges(fallbackValue) {\n let valueToEmit = null;\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map(chip => chip.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.change.emit(new MatLegacyChipListChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this._changeDetectorRef.markForCheck();\n }\n /** When blurred, mark the field as touched when focus moved outside the chip list. */\n _blur() {\n if (!this._hasFocusedChip()) {\n this._keyManager.setActiveItem(-1);\n }\n if (!this.disabled) {\n if (this._chipInput) {\n // If there's a chip input, we should check whether the focus moved to chip input.\n // If the focus is not moved to chip input, mark the field as touched. If the focus moved\n // to chip input, do nothing.\n // Timeout is needed to wait for the focus() event trigger on chip input.\n setTimeout(() => {\n if (!this.focused) {\n this._markAsTouched();\n }\n });\n } else {\n // If there's no chip input, then mark the field as touched.\n this._markAsTouched();\n }\n }\n }\n /** Mark the field as touched */\n _markAsTouched() {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n /**\n * Removes the `tabindex` from the chip list and resets it back afterwards, allowing the\n * user to tab out of it. This prevents the list from capturing focus and redirecting\n * it back to the first chip, creating a focus trap, if it user tries to tab away.\n */\n _allowFocusEscape() {\n if (this._tabIndex !== -1) {\n this._tabIndex = -1;\n setTimeout(() => {\n this._tabIndex = this._userTabIndex || 0;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n _resetChips() {\n this._dropSubscriptions();\n this._listenToChipsFocus();\n this._listenToChipsSelection();\n this._listenToChipsRemoved();\n }\n _dropSubscriptions() {\n if (this._chipFocusSubscription) {\n this._chipFocusSubscription.unsubscribe();\n this._chipFocusSubscription = null;\n }\n if (this._chipBlurSubscription) {\n this._chipBlurSubscription.unsubscribe();\n this._chipBlurSubscription = null;\n }\n if (this._chipSelectionSubscription) {\n this._chipSelectionSubscription.unsubscribe();\n this._chipSelectionSubscription = null;\n }\n if (this._chipRemoveSubscription) {\n this._chipRemoveSubscription.unsubscribe();\n this._chipRemoveSubscription = null;\n }\n }\n /** Listens to user-generated selection events on each chip. */\n _listenToChipsSelection() {\n this._chipSelectionSubscription = this.chipSelectionChanges.subscribe(event => {\n event.source.selected ? this._selectionModel.select(event.source) : this._selectionModel.deselect(event.source);\n // For single selection chip list, make sure the deselected value is unselected.\n if (!this.multiple) {\n this.chips.forEach(chip => {\n if (!this._selectionModel.isSelected(chip) && chip.selected) {\n chip.deselect();\n }\n });\n }\n if (event.isUserInput) {\n this._propagateChanges();\n }\n });\n }\n /** Listens to user-generated selection events on each chip. */\n _listenToChipsFocus() {\n this._chipFocusSubscription = this.chipFocusChanges.subscribe(event => {\n let chipIndex = this.chips.toArray().indexOf(event.chip);\n if (this._isValidIndex(chipIndex)) {\n this._keyManager.updateActiveItem(chipIndex);\n }\n this.stateChanges.next();\n });\n this._chipBlurSubscription = this.chipBlurChanges.subscribe(() => {\n this._blur();\n this.stateChanges.next();\n });\n }\n _listenToChipsRemoved() {\n this._chipRemoveSubscription = this.chipRemoveChanges.subscribe(event => {\n const chip = event.chip;\n const chipIndex = this.chips.toArray().indexOf(event.chip);\n // In case the chip that will be removed is currently focused, we temporarily store\n // the index in order to be able to determine an appropriate sibling chip that will\n // receive focus.\n if (this._isValidIndex(chipIndex) && chip._hasFocus) {\n this._lastDestroyedChipIndex = chipIndex;\n }\n });\n }\n /** Checks whether an event comes from inside a chip element. */\n _originatesFromChip(event) {\n let currentElement = event.target;\n while (currentElement && currentElement !== this._elementRef.nativeElement) {\n if (currentElement.classList.contains('mat-chip')) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n return false;\n }\n /** Checks whether any of the chips is focused. */\n _hasFocusedChip() {\n return this.chips && this.chips.some(chip => chip._hasFocus);\n }\n /** Syncs the list's state with the individual chips. */\n _syncChipsState() {\n if (this.chips) {\n this.chips.forEach(chip => {\n chip._chipListDisabled = this._disabled;\n chip._chipListMultiple = this.multiple;\n chip.chipListSelectable = this._selectable;\n });\n }\n }\n static {\n this.ɵfac = function MatLegacyChipList_Factory(t) {\n return new (t || MatLegacyChipList)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.Directionality, 8), i0.ɵɵdirectiveInject(i2.NgForm, 8), i0.ɵɵdirectiveInject(i2.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i3.ErrorStateMatcher), i0.ɵɵdirectiveInject(i2.NgControl, 10));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyChipList,\n selectors: [[\"mat-chip-list\"]],\n contentQueries: function MatLegacyChipList_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyChip, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chips = _t);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"true\", 1, \"mat-chip-list\"],\n hostVars: 14,\n hostBindings: function MatLegacyChipList_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatLegacyChipList_focus_HostBindingHandler() {\n return ctx.focus();\n })(\"blur\", function MatLegacyChipList_blur_HostBindingHandler() {\n return ctx._blur();\n })(\"keydown\", function MatLegacyChipList_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx._uid);\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx._tabIndex)(\"aria-required\", ctx.role ? ctx.required : null)(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-multiselectable\", ctx.multiple)(\"role\", ctx.role)(\"aria-orientation\", ctx.ariaOrientation);\n i0.ɵɵclassProp(\"mat-chip-list-disabled\", ctx.disabled)(\"mat-chip-list-invalid\", ctx.errorState)(\"mat-chip-list-required\", ctx.required);\n }\n },\n inputs: {\n role: \"role\",\n userAriaDescribedBy: [\"aria-describedby\", \"userAriaDescribedBy\"],\n errorStateMatcher: \"errorStateMatcher\",\n multiple: \"multiple\",\n compareWith: \"compareWith\",\n value: \"value\",\n required: \"required\",\n placeholder: \"placeholder\",\n disabled: \"disabled\",\n ariaOrientation: [\"aria-orientation\", \"ariaOrientation\"],\n selectable: \"selectable\",\n tabIndex: \"tabIndex\"\n },\n outputs: {\n change: \"change\",\n valueChange: \"valueChange\"\n },\n exportAs: [\"matChipList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacyChipList\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 0,\n consts: [[1, \"mat-chip-list-wrapper\"]],\n template: function MatLegacyChipList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\".mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-chip::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}.mat-standard-chip._mat-animation-noopable{transition:none !important;animation:none !important}.mat-standard-chip .mat-chip-remove{border:none;-webkit-appearance:none;-moz-appearance:none;padding:0;background:none}.mat-standard-chip .mat-chip-remove.mat-icon,.mat-standard-chip .mat-chip-remove .mat-icon{width:18px;height:18px;font-size:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:\\\"\\\";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip.mat-chip-selected{outline-width:3px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden;transform:translateZ(0)}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatLegacyChipList;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// Increasing integer for generating unique ids.\nlet nextUniqueId = 0;\n/**\n * Directive that adds chip-specific behaviors to an input element inside ``.\n * May be placed inside or outside of an ``.\n * @deprecated Use `MatChipInput` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChipInput = /*#__PURE__*/(() => {\n class MatLegacyChipInput {\n /** Register input for chip list */\n set chipList(value) {\n if (value) {\n this._chipList = value;\n this._chipList.registerInput(this);\n }\n }\n /**\n * Whether or not the chipEnd event will be emitted when the input is blurred.\n */\n get addOnBlur() {\n return this._addOnBlur;\n }\n set addOnBlur(value) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n /** Whether the input is disabled. */\n get disabled() {\n return this._disabled || this._chipList && this._chipList.disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /** Whether the input is empty. */\n get empty() {\n return !this.inputElement.value;\n }\n constructor(_elementRef, defaultOptions) {\n this._elementRef = _elementRef;\n /** Whether the control is focused. */\n this.focused = false;\n this._addOnBlur = false;\n /** Emitted when a chip is to be added. */\n this.chipEnd = new EventEmitter();\n /** The input's placeholder text. */\n this.placeholder = '';\n /** Unique id for the input. */\n this.id = `mat-chip-list-input-${nextUniqueId++}`;\n this._disabled = false;\n this.inputElement = this._elementRef.nativeElement;\n this.separatorKeyCodes = defaultOptions.separatorKeyCodes;\n }\n ngOnChanges() {\n this._chipList.stateChanges.next();\n }\n ngOnDestroy() {\n this.chipEnd.complete();\n }\n ngAfterContentInit() {\n this._focusLastChipOnBackspace = this.empty;\n }\n /** Utility method to make host definition/tests more clear. */\n _keydown(event) {\n if (event) {\n // Allow the user's focus to escape when they're tabbing forward. Note that we don't\n // want to do this when going backwards, because focus should go back to the first chip.\n if (event.keyCode === TAB && !hasModifierKey(event, 'shiftKey')) {\n this._chipList._allowFocusEscape();\n }\n // To prevent the user from accidentally deleting chips when pressing BACKSPACE continuously,\n // We focus the last chip on backspace only after the user has released the backspace button,\n // and the input is empty (see behaviour in _keyup)\n if (event.keyCode === BACKSPACE && this._focusLastChipOnBackspace) {\n this._chipList._keyManager.setLastItemActive();\n event.preventDefault();\n return;\n } else {\n this._focusLastChipOnBackspace = false;\n }\n }\n this._emitChipEnd(event);\n }\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n _keyup(event) {\n // Allow user to move focus to chips next time he presses backspace\n if (!this._focusLastChipOnBackspace && event.keyCode === BACKSPACE && this.empty) {\n this._focusLastChipOnBackspace = true;\n event.preventDefault();\n }\n }\n /** Checks to see if the blur should emit the (chipEnd) event. */\n _blur() {\n if (this.addOnBlur) {\n this._emitChipEnd();\n }\n this.focused = false;\n // Blur the chip list if it is not focused\n if (!this._chipList.focused) {\n this._chipList._blur();\n }\n this._chipList.stateChanges.next();\n }\n _focus() {\n this.focused = true;\n this._focusLastChipOnBackspace = this.empty;\n this._chipList.stateChanges.next();\n }\n /** Checks to see if the (chipEnd) event needs to be emitted. */\n _emitChipEnd(event) {\n if (!this.inputElement.value && !!event) {\n this._chipList._keydown(event);\n }\n if (!event || this._isSeparatorKey(event)) {\n this.chipEnd.emit({\n input: this.inputElement,\n value: this.inputElement.value,\n chipInput: this\n });\n event?.preventDefault();\n }\n }\n _onInput() {\n // Let chip list know whenever the value changes.\n this._chipList.stateChanges.next();\n }\n /** Focuses the input. */\n focus(options) {\n this.inputElement.focus(options);\n }\n /** Clears the input */\n clear() {\n this.inputElement.value = '';\n this._focusLastChipOnBackspace = true;\n }\n /** Checks whether a keycode is one of the configured separators. */\n _isSeparatorKey(event) {\n return !hasModifierKey(event) && new Set(this.separatorKeyCodes).has(event.keyCode);\n }\n static {\n this.ɵfac = function MatLegacyChipInput_Factory(t) {\n return new (t || MatLegacyChipInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_LEGACY_CHIPS_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipInput,\n selectors: [[\"input\", \"matChipInputFor\", \"\"]],\n hostAttrs: [1, \"mat-chip-input\", \"mat-input-element\"],\n hostVars: 5,\n hostBindings: function MatLegacyChipInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatLegacyChipInput_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n })(\"keyup\", function MatLegacyChipInput_keyup_HostBindingHandler($event) {\n return ctx._keyup($event);\n })(\"blur\", function MatLegacyChipInput_blur_HostBindingHandler() {\n return ctx._blur();\n })(\"focus\", function MatLegacyChipInput_focus_HostBindingHandler() {\n return ctx._focus();\n })(\"input\", function MatLegacyChipInput_input_HostBindingHandler() {\n return ctx._onInput();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"placeholder\", ctx.placeholder || null)(\"aria-invalid\", ctx._chipList && ctx._chipList.ngControl ? ctx._chipList.ngControl.invalid : null)(\"aria-required\", ctx._chipList && ctx._chipList.required || null);\n }\n },\n inputs: {\n chipList: [\"matChipInputFor\", \"chipList\"],\n addOnBlur: [\"matChipInputAddOnBlur\", \"addOnBlur\"],\n separatorKeyCodes: [\"matChipInputSeparatorKeyCodes\", \"separatorKeyCodes\"],\n placeholder: \"placeholder\",\n id: \"id\",\n disabled: \"disabled\"\n },\n outputs: {\n chipEnd: \"matChipInputTokenEnd\"\n },\n exportAs: [\"matChipInput\", \"matChipInputFor\"],\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return MatLegacyChipInput;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst CHIP_DECLARATIONS = [MatLegacyChipList, MatLegacyChip, MatLegacyChipInput, MatLegacyChipRemove, MatLegacyChipAvatar, MatLegacyChipTrailingIcon];\n/**\n * @deprecated Use `MatChipsModule` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyChipsModule = /*#__PURE__*/(() => {\n class MatLegacyChipsModule {\n static {\n this.ɵfac = function MatLegacyChipsModule_Factory(t) {\n return new (t || MatLegacyChipsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyChipsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ErrorStateMatcher, {\n provide: MAT_LEGACY_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n separatorKeyCodes: [ENTER]\n }\n }],\n imports: [MatCommonModule]\n });\n }\n }\n return MatLegacyChipsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_CHIPS_DEFAULT_OPTIONS, MAT_LEGACY_CHIP_AVATAR, MAT_LEGACY_CHIP_REMOVE, MAT_LEGACY_CHIP_TRAILING_ICON, MatLegacyChip, MatLegacyChipAvatar, MatLegacyChipInput, MatLegacyChipList, MatLegacyChipListChange, MatLegacyChipRemove, MatLegacyChipSelectionChange, MatLegacyChipTrailingIcon, MatLegacyChipsModule };\n","import { Component, Output, Input, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl, Validators, FormGroupDirective } from '@angular/forms';\n\n@Component({\n selector: 'pm-login-form',\n template: `\n
\n
\n \n \n
\n \n
\n
\n
\n `\n})\n\nexport class LoginFormComponent implements OnInit, OnDestroy {\n @Output() onSubmit: EventEmitter = new EventEmitter();\n @Output() onInput: EventEmitter = new EventEmitter();\n @Input() credentials: any;\n @Input() isPadding: boolean;\n userConfig: any;\n passConfig: any;\n form: UntypedFormGroup;\n controls: any;\n\n constructor() {\n this.userConfig = { key: 'username', label: 'username', required: true };\n this.passConfig = {\n key: 'password',\n label: 'password',\n required: true,\n type: 'password',\n debounce: 0\n };\n }\n\n ngOnInit() {\n this.controls = {\n username: new UntypedFormControl(this.credentials.username || '', Validators.required),\n password: new UntypedFormControl('', Validators.required)\n };\n this.form = new UntypedFormGroup(this.controls);\n\n window.addEventListener('keydown', this.handleEnter);\n }\n\n handleEnter = (event: KeyboardEvent) => {\n\n if (event.code === 'Enter' || event.key === 'Enter' || event.code === 'Enter') {\n this.onSubmit.emit(this.credentials);\n }\n\n };\n\n ngOnDestroy() {\n window.removeEventListener('keydown', this.handleEnter);\n }\n\n onChange(property: string, value: string) {\n this.credentials[property] = value;\n this.onInput.emit();\n }\n\n handleSubmit(form: FormGroupDirective) {\n\n if (form.valid) {\n this.onSubmit.emit(this.credentials);\n\n }\n\n }\n}\n","import { Component, Output, EventEmitter, OnInit } from '@angular/core';\nimport { UntypedFormGroup, Validators, UntypedFormControl } from '@angular/forms';\n\n@Component({\n selector: 'pm-change-password-form',\n template: `\n
\n \n \n \n
\n {{ 'passwords_dont_match' | translate }}\n
\n
\n \n
\n
\n `\n})\n\nexport class ChangePasswordFormComponent implements OnInit {\n @Output() onSubmit: EventEmitter = new EventEmitter();\n\n passOneConfig = { variant: 'input', label: 'password', required: true, type: 'password', debounce: 0 };\n passTwoConfig = { variant: 'input', label: 'repeat_password', required: true, type: 'password', debounce: 0 };\n passCurrentConfig = { variant: 'input', label: 'current_password', required: true, type: 'password' };\n pass: any = { one: '', two: '', current: '' };\n controls: any;\n form: UntypedFormGroup;\n\n ngOnInit() {\n this.controls = {\n current: new UntypedFormControl('', Validators.required),\n one: new UntypedFormControl('', Validators.required),\n two: new UntypedFormControl('', Validators.required)\n };\n this.form = new UntypedFormGroup(this.controls);\n }\n\n onChange(property: string, value: string) {\n this.pass[property] = value;\n }\n\n handleSubmit(form: any) {\n\n if (form.valid && this.pass.one === this.pass.two) {\n this.onSubmit.emit({ new_password: this.pass.one, old_password: this.pass.current });\n\n }\n\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { PreferencesService } from '@proman/services/preferences.service';\nimport { AuthService } from '@proman/services/auth.service';\nimport { Entity } from '@proman/services/entity.service';\nimport { AppLoader } from '@proman/services/app-loader.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CardLoginListenerService } from '../services/card-login-listener.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { CONFIG } from '@proman/config';\nimport { RequestService } from '@proman/services/request.service';\nimport { isLocalhost, isSmarton, uniqBy } from \"@proman/utils\";\nimport { PublicSystemOptions } from '@proman/interfaces/entity-interfaces';\nimport { COOKIE_AUTHORIZATION, CookiesService } from '@proman/services/cookies.service';\nimport { UserEntityInterface } from '@proman/resources/user';\nimport { LastUser, LoginProject } from '@proman/interfaces/object-interfaces';\nimport { Store } from '@ngrx/store';\nimport { getPublicSystemOptions } from '@proman/store/system-options';\nimport { ToastService } from '@proman/services/toast.service';\nimport { PromanStateService } from '../services/proman-state.service';\nimport { ImagePathService } from '@proman/services/image-path.service';\n\n@Component({\n selector: 'pm-login',\n template: `\n
\n
\n \n
\n \n
\n
\n
\n @switch (!!imgUrl) {\n @case (true) {\n \n }\n @default {\n \n }\n }\n
\n
\n \n {{ user.name }}\n \n \n \n
\n\n

{{ 'waiting_two_factor_authentication' | translate }}

\n
\n
\n
\n {{ 'must_change_password' | translate }}\n \n
\n
\n
\n \n

{{ 'login_using_card' | translate }}

\n
\n
\n
\n
\n
\n `\n})\n\nexport class LoginComponent implements OnInit {\n @Input() publicSystemOptions: PublicSystemOptions;\n @ViewChild('element', { static: true }) element: ElementRef;\n\n isSmarton: boolean = isSmarton();\n isLocal: boolean = isLocalhost();\n isChangePassword: boolean;\n isLogin: boolean;\n error: any;\n credentials: { _username?: string; _password?: string } = {};\n isRfid: boolean;\n users: LastUser[];\n userEntity: UserEntityInterface;\n twoFactorLoginEnabled: boolean = false;\n imgUrl: string = null;\n\n constructor(\n private Preferences: PreferencesService,\n private Auth: AuthService,\n private Entity: Entity,\n private AppLoader: AppLoader,\n private store: Store,\n private Translate: TranslateService,\n private CardLogin: CardLoginListenerService,\n private route: ActivatedRoute,\n private Request: RequestService,\n private Cookies: CookiesService,\n private PromanState: PromanStateService,\n private ImagePath: ImagePathService,\n private Toast: ToastService,\n ) {\n this.store.select(getPublicSystemOptions)\n .subscribe((value) => {\n this.publicSystemOptions = value;\n if (value.logo) this.imgUrl = this.ImagePath.getFile(value.logo);\n if (value.loginToShopRedirectToUrl && value.loginToShopRedirectFromUrl) {\n console.log(value, window.location.href);\n if (window.location.href.includes(value.loginToShopRedirectFromUrl)\n && !window.location.href.includes(`${value.loginToShopRedirectFromUrl}/shop`)) window.location.href = value.loginToShopRedirectToUrl;\n }\n this.Translate.use(this.Preferences?.language() || this.publicSystemOptions?.defaultLanguage);\n if (value.seoKeywords?.length > 0) {\n const script: HTMLMetaElement = document.createElement('meta');\n script.name = 'keywords';\n script.content = value.seoKeywords;\n document.head.insertBefore(script, document.head.firstChild);\n }\n });\n this.userEntity = this.Entity.get('user') as UserEntityInterface;\n this.credentials = { _username: '', _password: '' };\n this.AppLoader.remove();\n\n this.handleQueryParams(this.route.snapshot.queryParams);\n }\n\n ngOnInit() {\n this.isRfid = this.publicSystemOptions?.isCardLoginEnabled;\n this.users = (this.Preferences?.users() || []).filter((user: unknown) => typeof user === 'object');\n\n if (this.isRfid) {\n this.CardLogin.suspend();\n this.CardLogin.start();\n }\n\n this.setActiveUser();\n }\n\n setUser(user: LastUser) {\n this.setLastUsedUsername(user);\n this.credentials._username = user.username;\n\n this.focusPasswordInput();\n }\n\n setActiveUser() {\n\n if (this.users?.length) {\n this.credentials = { _username: this.users[0].username, _password: '' };\n\n this.focusPasswordInput();\n }\n\n }\n\n focusPasswordInput() {\n const passInputElement = this.element.nativeElement.querySelector('input[type=\"password\"]');\n\n if (passInputElement) passInputElement.focus();\n\n }\n\n setLastUsedUsername(user: LastUser) {\n const users = this.users.slice();\n\n users.unshift(user);\n\n this.Preferences.users(uniqBy(users, 'name').slice(0, 3));\n }\n\n handleLogin(credentials: any) {\n\n if (this.isLogin) return;\n\n // only first 14 characters of the message string\n const errors = ['IP not allowed', 'Bad credential', 'Login disabled', 'Empty password'];\n this.error = null;\n\n if (credentials._username.length === 0 || credentials._password.length === 0) return;\n\n this.isLogin = true;\n\n this.Auth\n .login(credentials, LoginProject.FRONTEND, true).then((response: any) => {\n this.setLastUsedUsername({ name: response.person.firstName, username: credentials._username });\n\n if (response?.twoFactorLoginEnabled) {\n this.twoFactorLoginEnabled = true;\n this.handleTwoFactorLoginEnabled(response, credentials);\n }\n\n if (response?.mustChangePassword) {\n this.isChangePassword = true;\n this.handleResponse(response);\n } else {\n this.PromanState.go(true);\n }\n })\n .catch((response: any) => {\n const error = response.error;\n this.handleResponse(error?.message ?? error?.error ?? error);\n if (errors.includes(this.error?.substring(0, 14))) this.Toast.pop('info', this.error);\n\n this.isLogin = false;\n });\n }\n\n handleTwoFactorLoginEnabled(response: any, credentials: any) {\n this.Request.post(`${CONFIG.api}user/two_factor_confirmation`, { person: response.person.id})\n .then((response: any) => {\n if (response.message === 'Confirmed') {\n this.Auth.login(credentials, LoginProject.FRONTEND, true, false);\n }\n })\n }\n\n handleResponse(error: any) {\n this.error = error;\n\n this.isLogin = false;\n this.credentials._password = '';\n }\n\n changePassword(data: any) {\n this.userEntity\n .changePassword(data)\n .then(this.setPasswordChanged);\n }\n\n setPasswordChanged = () => {\n this.error = null;\n this.isChangePassword = false;\n\n this.PromanState.go(true);\n };\n\n handleQueryParams = (params: any) => {\n if (params.companyToken) {\n this.Cookies.set(COOKIE_AUTHORIZATION, params.companyToken);\n const bareToken = params.companyToken;\n\n this.Request\n .loadUser()\n .then((response) => {\n this.Auth.switchToken(response.token, response.username);\n }).then(() => {\n this.PromanState.go(true);\n })\n .catch((response: any) => {\n const error = response.error;\n\n this.handleResponse(error && error.message || error);\n });\n }\n\n };\n\n clearUserHistory() {\n this.users = [];\n this.Preferences?.users([]);\n }\n\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_LEGACY_DIALOG_DATA, MatLegacyDialogRef } from '@angular/material/legacy-dialog';\nimport { CONFIG } from '@proman/config';\nimport { RequestService } from '@proman/services/request.service';\nimport { ToastService } from '@proman/services/toast.service';\nimport { CurrUser } from '@proman/interfaces/object-interfaces';\nimport { Store } from '@ngrx/store';\nimport { getCurrUser } from '@proman/store/curr-user';\nimport { take } from 'rxjs/internal/operators/take';\n\n@Component({\n selector: 'pm-login-verification-dialog',\n template: `\n \n @if (!login) {\n
\n \n
\n }\n `\n})\n\nexport class LoginVerificationDialogComponent {\n credentials = { username: '', password: '' };\n currUser: CurrUser;\n login = false;\n\n constructor(\n @Inject(MAT_LEGACY_DIALOG_DATA) public data: { data: any[] },\n private dialogRef: MatLegacyDialogRef,\n private Request: RequestService,\n private Toast: ToastService,\n private store: Store,\n ) {\n this.store.select(getCurrUser).pipe(take(1)).subscribe((value) => this.currUser = value);\n }\n\n handleSubmit = (val: any) => {\n this.login = true;\n return this.Request\n .post(`${CONFIG.api}login`, val)\n .then((response: any) => {\n if (response.employee.id === this.currUser.person.id) {\n this.dialogRef.close(6);\n } else {\n this.Toast.pop('error', 'wrong_user');\n this.dialogRef.close(1);\n }\n })\n .catch((err) => {\n this.Toast.pop('error', err.error.message);\n this.dialogRef.close(1);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoginComponent } from '@frontend/shared/components/login.component';\nimport { LoginFormComponent } from '@frontend/shared/components/login-form.component';\nimport { ChangePasswordFormComponent } from '@frontend/shared/components/change-password-form.component';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatLegacyButtonModule } from '@angular/material/legacy-button';\nimport { MatLegacyChipsModule } from '@angular/material/legacy-chips';\nimport { SharedComponentsModule } from '../shared-components/shared-components.module';\nimport { PipesModule } from '@proman/shared/pipes/pipes.module';\nimport { InputsModule } from '../inputs/inputs.module';\nimport { PromanCommonComponentsModule } from '@proman/common-components/proman-common-components.module';\nimport { FlexLayoutModule } from 'ngx-flexible-layout';\nimport { FrontendPipesModule } from '@frontend/shared/pipes/frontend-pipes.module';\nimport { Fa6Module } from '@proman/fa/fa6.module';\nimport { MatLegacyProgressBarModule } from '@angular/material/legacy-progress-bar';\nimport { LoginVerificationDialogComponent } from '@frontend/shared/components/login-verification-dialog.component';\nimport { PromanWarningComponent } from '@proman/common-components/components/warning.component';\n\nconst COMPONENTS = [\n LoginComponent,\n LoginFormComponent,\n ChangePasswordFormComponent,\n LoginVerificationDialogComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatLegacyChipsModule,\n MatLegacyProgressBarModule,\n PipesModule,\n InputsModule,\n MatLegacyButtonModule,\n FlexLayoutModule,\n PromanCommonComponentsModule,\n SharedComponentsModule,\n // GapiModule,\n FrontendPipesModule,\n Fa6Module,\n PromanWarningComponent,\n ],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class LoginModule {}\n"],"mappings":"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","names":["import_jquery","CardLoginListenerService","constructor","Entity","Auth","Injector","Toast","PromanState","store","timer","keyLength","buffer","start","threshold","$","on","event","allowedKeyCodes","clearTimeout","setTimeout","notify","indexOf","keyCode","push","String","fromCharCode","length","input","join","trim","handleCard","logged","token","project","LoginProject","FRONTEND","disabled","pop","credentials","_token","currUser","getToken","_username","username","userEntity","checkCardOwner","Object","assign","then","response","skipRedirect","result","clearToken","logout","login","error","status","go","catch","suspend","off","isCardLogin","__async","Promise","resolve","reject","get","select","getCurrUser","subscribe","value","ɵɵinject","AuthService","ToastService","PromanStateService","Store","factory","ɵfac","_CardLoginListenerService","init_operators","_c0","MAT_LEGACY_CHIP_REMOVE","InjectionToken","MAT_LEGACY_CHIP_AVATAR","MAT_LEGACY_CHIP_TRAILING_ICON","MatChipBase","_elementRef","_MatChipMixinBase","mixinTabIndex","mixinColor","mixinDisableRipple","MatLegacyChip","_MatLegacyChip","_MatChipMixinBase","value","coercedValue","coerceBooleanProperty","elementRef","_ngZone","platform","globalRippleOptions","_changeDetectorRef","_document","animationMode","tabIndex","Subject","EventEmitter","RippleRenderer","basicChipAttrName","element","isUserInput","event","take","t","ɵɵdirectiveInject","ElementRef","NgZone","Platform","MAT_RIPPLE_GLOBAL_OPTIONS","ChangeDetectorRef","DOCUMENT","ANIMATION_MODULE_TYPE","ɵɵinjectAttribute","ɵɵdefineDirective","rf","ctx","dirIndex","ɵɵcontentQuery","MAT_LEGACY_CHIP_AVATAR","MAT_LEGACY_CHIP_TRAILING_ICON","MAT_LEGACY_CHIP_REMOVE","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","$event","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","MAT_LEGACY_CHIPS_DEFAULT_OPTIONS","InjectionToken","_MatChipListBase","mixinErrorState","_defaultErrorStateMatcher","_parentForm","_parentFormGroup","ngControl","Subject","nextUniqueId$1","MatLegacyChipListChange","source","value","MatLegacyChipList","_MatLegacyChipList","role","coerceBooleanProperty","fn","Validators","merge","chip","_elementRef","_changeDetectorRef","_dir","o1","o2","EventEmitter","FocusKeyManager","takeUntil","dir","startWith","SelectionModel","inputElement","ids","isDisabled","event","options","target","newChipIndex","index","isUserInput","currentValue","correspondingChip","skip","fallbackValue","valueToEmit","chipIndex","currentElement","t","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","Directionality","NgForm","FormGroupDirective","ErrorStateMatcher","NgControl","ɵɵdefineComponent","rf","ctx","dirIndex","ɵɵcontentQuery","MatLegacyChip","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","$event","ɵɵhostProperty","ɵɵattribute","ɵɵclassProp","ɵɵProvidersFeature","MatFormFieldControl","ɵɵInheritDefinitionFeature","_c0","ɵɵprojectionDef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","MatLegacyChipsModule","_MatLegacyChipsModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","ErrorStateMatcher","MAT_LEGACY_CHIPS_DEFAULT_OPTIONS","MatCommonModule","LoginFormComponent","constructor","onSubmit","EventEmitter","onInput","handleEnter","event","code","key","emit","credentials","userConfig","label","required","passConfig","type","debounce","ngOnInit","controls","username","UntypedFormControl","Validators","password","form","UntypedFormGroup","window","addEventListener","ngOnDestroy","removeEventListener","onChange","property","value","handleSubmit","valid","selectors","inputs","isPadding","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","_r0","ɵɵreference","ɵɵresetView","$event","ɵɵelementEnd","ɵɵelement","ɵɵproperty","ɵɵadvance","ɵɵpureFunction1","_c0","_username","_password","_LoginFormComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ChangePasswordFormComponent","constructor","onSubmit","EventEmitter","passOneConfig","variant","label","required","type","debounce","passTwoConfig","passCurrentConfig","pass","one","two","current","ngOnInit","controls","UntypedFormControl","Validators","form","UntypedFormGroup","onChange","property","value","handleSubmit","valid","emit","new_password","old_password","selectors","outputs","decls","vars","consts","template","rf","ctx","ɵɵlistener","ɵɵrestoreView","_r2","_r0","ɵɵreference","ɵɵresetView","$event","ɵɵtemplate","ChangePasswordFormComponent_div_5_Template","ɵɵelement","ɵɵproperty","submitted","ɵɵpropertyInterpolate","_ChangePasswordFormComponent","ɵɵelement","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","ɵɵresetView","clearUserHistory","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","ctx_r2","imgUrl","ɵɵsanitizeUrl","_r10","ctx_r9","user_r14","_r16","$implicit","ctx_r15","setUser","ɵɵtext","ctx_r13","credentials","_username","username","ɵɵadvance","ɵɵtextInterpolate1","name","ɵɵtemplate","LoginComponent_div_10_mat_chip_list_1_mat_chip_1_Template","ctx_r11","users","LoginComponent_div_10_mat_chip_list_1_Template","$event","_r18","ctx_r17","handleLogin","LoginComponent_div_10_p_4_Template","ctx_r4","length","twoFactorLoginEnabled","_r20","ctx_r19","changePassword","ɵɵtextInterpolate","LoginComponent","constructor","Preferences","Auth","Entity","AppLoader","store","Translate","CardLogin","route","Request","Cookies","PromanState","ImagePath","Toast","isSmarton","isLocal","isLocalhost","setPasswordChanged","error","isChangePassword","go","handleQueryParams","params","companyToken","set","COOKIE_AUTHORIZATION","bareToken","loadUser","then","response","switchToken","token","catch","handleResponse","message","select","getPublicSystemOptions","subscribe","value","publicSystemOptions","logo","getFile","loginToShopRedirectToUrl","loginToShopRedirectFromUrl","console","log","window","location","href","includes","use","language","defaultLanguage","seoKeywords","script","document","createElement","content","head","insertBefore","firstChild","userEntity","get","_password","remove","snapshot","queryParams","ngOnInit","isRfid","isCardLoginEnabled","filter","user","suspend","start","setActiveUser","setLastUsedUsername","focusPasswordInput","passInputElement","element","nativeElement","querySelector","focus","slice","unshift","uniqBy","isLogin","errors","login","LoginProject","FRONTEND","person","firstName","handleTwoFactorLoginEnabled","mustChangePassword","substring","pop","post","CONFIG","api","id","data","ɵɵdirectiveInject","PreferencesService","AuthService","Store","TranslateService","CardLoginListenerService","ActivatedRoute","RequestService","CookiesService","PromanStateService","ImagePathService","ToastService","selectors","viewQuery","rf","ctx","LoginComponent_mat_progress_bar_4_Template","LoginComponent_Case_8_Template","LoginComponent_Case_9_Template","LoginComponent_div_10_Template","LoginComponent_div_11_Template","LoginComponent_div_13_Template","ɵɵconditional","LoginComponent_contFlowTmp","_LoginComponent","import_take","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r1","ɵɵnextContext","ɵɵresetView","handleSubmit","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","credentials","LoginVerificationDialogComponent","constructor","data","dialogRef","Request","Toast","store","username","password","login","val","post","CONFIG","api","then","response","employee","id","currUser","person","close","pop","catch","err","error","message","select","getCurrUser","pipe","take","subscribe","value","ɵɵdirectiveInject","MAT_LEGACY_DIALOG_DATA","MatLegacyDialogRef","RequestService","ToastService","Store","selectors","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","LoginVerificationDialogComponent_Conditional_1_Template","ɵɵconditional","_LoginVerificationDialogComponent","LoginModule","CommonModule","ReactiveFormsModule","MatLegacyChipsModule","MatLegacyProgressBarModule","PipesModule","InputsModule","MatLegacyButtonModule","FlexLayoutModule","PromanCommonComponentsModule","SharedComponentsModule","FrontendPipesModule","Fa6Module","PromanWarningComponent","_LoginModule"],"x_google_ignoreList":[1]}