@ptsecurity/mosaic 17.5.2 → 17.5.3

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.
@@ -1,7 +1,7 @@
1
1
  import * as i1$1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Directive, Input, forwardRef, ChangeDetectionStrategy, Optional, Inject, EventEmitter, Output, afterNextRender, ViewEncapsulation, ContentChild, ContentChildren, ViewChild, Attribute, Self, NgModule } from '@angular/core';
4
+ import { Component, Directive, Input, forwardRef, ChangeDetectionStrategy, Optional, Inject, EventEmitter, Output, afterNextRender, ViewEncapsulation, ContentChild, ContentChildren, ViewChild, Attribute, Self, Host, NgModule } from '@angular/core';
5
5
  import * as i1 from '@ptsecurity/mosaic/icon';
6
6
  import { McIconModule } from '@ptsecurity/mosaic/icon';
7
7
  import { ThemePalette, mixinColor, MC_FORM_FIELD_REF, MC_VALIDATION } from '@ptsecurity/mosaic/core';
@@ -560,7 +560,7 @@ class McValidateDirective {
560
560
  get hasNotSubmittedParent() {
561
561
  return this.parent && !this.parent.submitted;
562
562
  }
563
- constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr) {
563
+ constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr, parentFormField, elementRef) {
564
564
  this.formFieldControl = formFieldControl;
565
565
  this.rawValidators = rawValidators;
566
566
  this.ngControl = ngControl;
@@ -568,9 +568,13 @@ class McValidateDirective {
568
568
  this.parentFormGroup = parentFormGroup;
569
569
  this.mcValidation = mcValidation;
570
570
  this.cdr = cdr;
571
+ this.parentFormField = parentFormField;
572
+ this.elementRef = elementRef;
571
573
  }
572
574
  ngAfterContentInit() {
573
575
  if (this.mcValidation.useValidation) {
576
+ this.parentFormField?.elementRef.nativeElement.classList.add('mc-form-field_has-validate-directive');
577
+ this.elementRef.nativeElement.classList.add('mc-control_has-validate-directive');
574
578
  this.setMosaicValidation();
575
579
  }
576
580
  }
@@ -658,7 +662,7 @@ class McValidateDirective {
658
662
  }
659
663
  });
660
664
  }
661
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McValidateDirective, deps: [{ token: forwardRef(() => McFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1$3.NgControl, optional: true, self: true }, { token: i1$3.NgForm, optional: true }, { token: i1$3.FormGroupDirective, optional: true }, { token: MC_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
665
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McValidateDirective, deps: [{ token: forwardRef(() => McFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1$3.NgControl, optional: true, self: true }, { token: i1$3.NgForm, optional: true }, { token: i1$3.FormGroupDirective, optional: true }, { token: MC_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }, { token: McFormField, host: true, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
662
666
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: McValidateDirective, selector: "\n input[mcInput],\n input[mcInputPassword],\n input[mcTimepicker],\n input[mcDatepicker],\n textarea[mcTextarea],\n mc-select,\n mc-tree-select,\n mc-tag-list\n ", exportAs: ["McValidate"], ngImport: i0 }); }
663
667
  }
664
668
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McValidateDirective, decorators: [{
@@ -699,7 +703,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
699
703
  }, {
700
704
  type: Inject,
701
705
  args: [MC_VALIDATION]
702
- }] }, { type: i0.ChangeDetectorRef }] });
706
+ }] }, { type: i0.ChangeDetectorRef }, { type: McFormField, decorators: [{
707
+ type: Optional
708
+ }, {
709
+ type: Host
710
+ }] }, { type: i0.ElementRef }] });
703
711
 
704
712
  class McFormFieldModule {
705
713
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-form-field.mjs","sources":["../../../packages/mosaic/form-field/cleaner.ts","../../../packages/mosaic/form-field/form-field-control.ts","../../../packages/mosaic/form-field/form-field-errors.ts","../../../packages/mosaic/form-field/hint.ts","../../../packages/mosaic/form-field/password-hint.ts","../../../packages/mosaic/form-field/prefix.ts","../../../packages/mosaic/form-field/stepper.ts","../../../packages/mosaic/form-field/suffix.ts","../../../packages/mosaic/form-field/form-field.ts","../../../packages/mosaic/form-field/form-field.html","../../../packages/mosaic/form-field/validate.directive.ts","../../../packages/mosaic/form-field/form-field.module.ts","../../../packages/mosaic/form-field/ptsecurity-mosaic-form-field.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-cleaner',\n exportAs: 'mcCleaner',\n template: `<i class=\"mc-icon_light\" mc-icon=\"mc-close-circle_16\" [color]=\"themePalette.Secondary\"></i>`,\n host: {\n class: 'mc-cleaner'\n }\n})\nexport class McCleaner {\n themePalette = ThemePalette;\n}\n","import { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n\n/** An interface which allows a control to work inside of a `MсFormField`. */\n// tslint:disable-next-line:naming-convention\nexport abstract class McFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MсFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mc-form-field` elements\n * based on their control type. The form field will add a class,\n * `mc-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(): void;\n}\n","export function getMcFormFieldMissingControlError(): Error {\n return Error('mc-form-field must contain a McFormFieldControl.');\n}\n\nexport function getMcFormFieldYouCanNotUseCleanerInNumberInputError(): Error {\n return Error(`You can't use mc-cleaner with input that have type=\"number\"`);\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { CanColorCtor, mixinColor, ThemePalette } from '@ptsecurity/mosaic/core';\n\n\nlet nextHintUniqueId = 0;\n\n/** @docs-private */\nexport class McHintBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const McHintMixinBase: CanColorCtor & typeof McHintBase = mixinColor(McHintBase, ThemePalette.Empty);\n\n\n@Directive({\n selector: 'mc-hint',\n inputs: ['color'],\n host: {\n class: 'mc-hint',\n '[attr.id]': 'id'\n }\n})\nexport class McHint extends McHintMixinBase {\n @Input() id: string = `mc-hint-${nextHintUniqueId++}`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n QueryList\n} from '@angular/core';\nimport { MC_FORM_FIELD_REF } from '@ptsecurity/mosaic/core';\nimport { Subject } from 'rxjs';\n\nimport { McFormField } from './form-field';\n\n\nlet nextPasswordHintUniqueId = 0;\n\nexport enum PasswordRules {\n Length,\n UpperLatin,\n LowerLatin,\n Digit,\n LatinAndSpecialSymbols,\n Custom\n}\n\nexport const regExpPasswordValidator = {\n [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),\n [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),\n [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),\n [PasswordRules.LatinAndSpecialSymbols]: RegExp(/[^ !`\"'#№$%&()*+,-./\\\\:;<=>?@[\\]^_{|}~A-Za-z0-9]/)\n};\n\nexport const hasPasswordStrengthError = (passwordHints: QueryList<McPasswordHint>): boolean => {\n return passwordHints.some((hint) => hint.hasError);\n};\n\n\n@Component({\n selector: 'mc-password-hint',\n template: `\n <i *ngIf=\"!checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-close-M_16\"></i>\n <i *ngIf=\"checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-check_16\"></i>\n\n <span class=\"mc-password-hint__text\">\n <ng-content></ng-content>\n </span>\n `,\n host: {\n class: 'mc-password-hint',\n '[class.mc-password-hint_valid]': 'checked',\n '[class.mc-password-hint_invalid]': 'hasError',\n '[attr.id]': 'id'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McPasswordHint implements AfterContentInit {\n @Input() id: string = `mc-hint-${nextPasswordHintUniqueId++}`;\n\n @Input() rule: PasswordRules | any;\n\n @Input() min: number;\n @Input() max: number;\n @Input() regex: RegExp | null;\n @Input('checkRule') customCheckRule: (value: string) => boolean;\n\n @Input() viewFormField?: McFormField;\n\n hasError: boolean = false;\n checked: boolean = false;\n\n private checkRule: (value: string) => boolean;\n\n private get control() {\n return this.formField.control;\n }\n\n private lastControlValue: string;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(forwardRef(() => MC_FORM_FIELD_REF)) private formField: any\n ) {}\n\n ngAfterContentInit(): void {\n this.formField = this.formField || this.viewFormField;\n\n if (this.rule === null) {\n throw Error('You should set [rule] name');\n }\n\n if (this.rule === PasswordRules.Custom && this.regex === undefined && this.customCheckRule === undefined) {\n throw Error('You should set [regex] or [checkRule] for PasswordRules.Custom');\n }\n\n if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {\n throw Error('For [rule] \"Length\" need set [min] and [max]');\n }\n\n if (this.rule === PasswordRules.Length) {\n this.checkRule = this.checkLengthRule;\n } else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit].includes(this.rule)) {\n this.regex = regExpPasswordValidator[this.rule];\n this.checkRule = this.checkRegexRule;\n } else if (this.rule === PasswordRules.LatinAndSpecialSymbols) {\n this.regex = regExpPasswordValidator[this.rule];\n this.checkRule = this.checkSpecialSymbolsRegexRule;\n } else if (this.rule === PasswordRules.Custom) {\n this.checkRule = this.regex === undefined ? this.customCheckRule.bind(this) : this.checkRegexRule.bind(this);\n } else {\n throw Error(`Unknown [rule]=${this.rule}`);\n }\n\n this.formField.control.stateChanges\n .subscribe(this.checkValue);\n\n (this.formField.control as unknown as { checkRule: Subject<any> }).checkRule\n .subscribe(() => {\n this.checked = this.checkRule(this.control.value);\n this.hasError = !this.checkRule(this.control.value);\n });\n }\n\n private checkValue = () => {\n if (this.control.focused && this.isValueChanged()) {\n this.hasError = false;\n\n this.checked = this.checkRule(this.control.value);\n } else if (!this.control.focused && !this.isValueChanged()) {\n this.hasError = !this.checkRule(this.control.value);\n }\n\n if (!this.control.required && !this.control.value) {\n this.checked = this.hasError = false;\n }\n\n this.lastControlValue = this.control.value;\n this.changeDetectorRef.markForCheck();\n }\n\n private checkLengthRule(value: string): boolean {\n return value.length >= this.min && value.length <= this.max;\n }\n\n private checkRegexRule(value: string): boolean {\n return !!this.regex?.test(value);\n }\n\n private checkSpecialSymbolsRegexRule(value: string): boolean {\n return !!value && !this.regex?.test(value);\n }\n\n private isValueChanged(): boolean {\n return this.lastControlValue !== this.formField.control.value;\n }\n}\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: '[mcPrefix]'\n})\nexport class McPrefix {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n\n@Component({\n selector: 'mc-stepper',\n template: `\n <i class=\"mc mc-icon mc-icon_light mc-secondary mc-stepper-step-up mc-angle-down-L_16\"\n (mousedown)=\"onStepUp($event)\">\n </i>\n <i class=\"mc mc-icon mc-icon_light mc-secondary mc-stepper-step-down mc-angle-down-L_16\"\n (mousedown)=\"onStepDown($event)\">\n </i>\n `\n})\nexport class McStepper {\n @Output()\n readonly stepUp: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n readonly stepDown: EventEmitter<void> = new EventEmitter<void>();\n\n connectTo(numberInput: any) {\n if (!numberInput) { return; }\n\n this.stepUp.subscribe(() => {\n numberInput.stepUp(numberInput.step);\n });\n\n this.stepDown.subscribe(() => {\n numberInput.stepDown(numberInput.step);\n });\n }\n\n onStepUp($event: MouseEvent) {\n this.stepUp.emit();\n $event.preventDefault();\n }\n\n onStepDown($event: MouseEvent) {\n this.stepDown.emit();\n $event.preventDefault();\n }\n}\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: '[mcSuffix]'\n})\nexport class McSuffix {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n OnDestroy,\n Optional,\n QueryList,\n Self,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ESCAPE, F8 } from '@ptsecurity/cdk/keycodes';\nimport { CanColor, CanColorCtor, mixinColor, MC_FORM_FIELD_REF } from '@ptsecurity/mosaic/core';\nimport { EMPTY, merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { McCleaner } from './cleaner';\nimport { McFormFieldControl } from './form-field-control';\nimport {\n getMcFormFieldMissingControlError,\n getMcFormFieldYouCanNotUseCleanerInNumberInputError\n} from './form-field-errors';\nimport { McHint } from './hint';\nimport { hasPasswordStrengthError, McPasswordHint } from './password-hint';\nimport { McPrefix } from './prefix';\nimport { McStepper } from './stepper';\nimport { McSuffix } from './suffix';\n\n\nlet nextUniqueId = 0;\n\n\n/** @docs-private */\nexport class McFormFieldBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const McFormFieldMixinBase: CanColorCtor & typeof McFormFieldBase = mixinColor(McFormFieldBase);\n\n@Component({\n selector: 'mc-form-field',\n exportAs: 'mcFormField',\n templateUrl: 'form-field.html',\n // McInput is a directive and can't have styles, so we need to include its styles here.\n // The McInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using McInput.\n styleUrls: [\n 'form-field.scss',\n '../input/input.scss',\n '../timepicker/timepicker.scss',\n '../datepicker/datepicker-input.scss',\n '../textarea/textarea.scss'\n ],\n host: {\n class: 'mc-form-field',\n '[class.mc-form-field_invalid]': 'control.errorState',\n '[class.mc-form-field_has-prefix]': 'hasPrefix',\n '[class.mc-form-field_has-suffix]': 'hasSuffix',\n '[class.mc-form-field_has-cleaner]': 'canShowCleaner',\n '[class.mc-form-field_has-stepper]': 'canShowStepper',\n\n '[class.mc-disabled]': 'control.disabled',\n\n '[class.ng-untouched]': 'shouldForward(\"untouched\")',\n '[class.ng-touched]': 'shouldForward(\"touched\")',\n '[class.ng-pristine]': 'shouldForward(\"pristine\")',\n '[class.ng-dirty]': 'shouldForward(\"dirty\")',\n '[class.ng-valid]': 'shouldForward(\"valid\")',\n '[class.ng-invalid]': 'shouldForward(\"invalid\")',\n '[class.ng-pending]': 'shouldForward(\"pending\")',\n\n '(keydown)': 'onKeyDown($event)',\n '(mouseenter)': 'onHoverChanged(true)',\n '(mouseleave)': 'onHoverChanged(false)'\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MC_FORM_FIELD_REF, useExisting: McFormField }]\n})\nexport class McFormField extends McFormFieldMixinBase implements\n AfterContentInit, AfterContentChecked, AfterViewInit, CanColor, OnDestroy {\n\n @ContentChild(McFormFieldControl, { static: false }) control: McFormFieldControl<any>;\n @ContentChild(McStepper, { static: false }) stepper: McStepper;\n @ContentChild(McCleaner, { static: false }) cleaner: McCleaner | null;\n\n @ContentChildren(McHint) hint: QueryList<McHint>;\n @ContentChildren(McPasswordHint) passwordHints: QueryList<McPasswordHint>;\n @ContentChildren(McSuffix) suffix: QueryList<McSuffix>;\n @ContentChildren(McPrefix) prefix: QueryList<McPrefix>;\n\n @ViewChild('connectionContainer', { static: true }) connectionContainerRef: ElementRef;\n\n // Unique id for the internal form field label.\n labelId = `mc-form-field-label-${nextUniqueId++}`;\n\n hovered: boolean = false;\n\n\n canCleanerClearByEsc: boolean = true;\n\n private $unsubscribe = new Subject<void>();\n\n get hasFocus(): boolean {\n return this.control.focused;\n }\n\n get hasHint(): boolean {\n return this.hint?.length > 0;\n }\n\n get hasSuffix(): boolean {\n return this.suffix?.length > 0;\n }\n\n get hasPrefix(): boolean {\n return this.prefix?.length > 0;\n }\n\n get hasCleaner(): boolean {\n return !!this.cleaner;\n }\n\n get hasStepper(): boolean {\n return !!this.stepper;\n }\n\n get canShowCleaner(): boolean {\n return this.hasCleaner &&\n this.control?.ngControl\n ? this.control.ngControl.value && !this.control.disabled\n : false;\n }\n\n get disabled(): boolean {\n return this.control?.disabled;\n }\n\n get canShowStepper(): boolean {\n return this.hasStepper &&\n !this.disabled &&\n (this.control?.focused || this.hovered);\n }\n\n constructor(\n public elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor\n ) {\n super(elementRef);\n\n afterNextRender(this.runFocusMonitor);\n }\n\n ngAfterContentInit() {\n if ((this.control as any).numberInput && this.hasCleaner) {\n this.cleaner = null;\n throw getMcFormFieldYouCanNotUseCleanerInNumberInputError();\n }\n\n this.validateControlChild();\n\n if (this.control.controlType) {\n this.elementRef.nativeElement.classList.add(`mc-form-field-type-${this.control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this.control.stateChanges\n .pipe(startWith())\n .subscribe((state: any) => {\n if (this.passwordHints.length && !state?.focused && hasPasswordStrengthError(this.passwordHints)) {\n this.control.ngControl?.control?.setErrors({ passwordStrength: true });\n }\n\n this.changeDetectorRef.markForCheck();\n });\n\n if (this.hasStepper) {\n this.stepper.connectTo((this.control as any).numberInput);\n }\n\n // Run change detection if the value changes.\n const valueChanges = this.control.ngControl?.valueChanges || EMPTY;\n\n merge(valueChanges)\n .pipe(takeUntil(this.$unsubscribe))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n ngAfterContentChecked() {\n this.validateControlChild();\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this.changeDetectorRef.detectChanges();\n }\n\n focusViaKeyboard(): void {\n this.control.focus();\n }\n\n clearValue($event) {\n $event.stopPropagation();\n\n this.control?.ngControl?.reset();\n this.control?.focus();\n }\n\n onContainerClick($event) {\n if (this.control.onContainerClick) {\n this.control.onContainerClick($event);\n }\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line:deprecation\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\n (this.control as unknown as { toggleType(): void }).toggleType();\n }\n // tslint:disable-next-line:deprecation\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {\n this.control?.ngControl?.reset();\n\n event.preventDefault();\n }\n }\n\n onHoverChanged(isHovered: boolean) {\n if (isHovered !== this.hovered) {\n this.hovered = isHovered;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.connectionContainerRef || this.elementRef;\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this.control?.ngControl;\n\n return ngControl && ngControl[prop];\n }\n\n ngOnDestroy(): void {\n this.$unsubscribe.next();\n this.$unsubscribe.complete();\n\n this.stopFocusMonitor();\n }\n\n runFocusMonitor = () => {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n /** Throws an error if the form field's control is missing. */\n protected validateControlChild() {\n if (!this.control) {\n throw getMcFormFieldMissingControlError();\n }\n }\n}\n\n@Directive({\n selector: 'mc-form-field[mcFormFieldWithoutBorders]',\n exportAs: 'mcFormFieldWithoutBorders',\n host: { class: 'mc-form-field_without-borders' }\n})\nexport class McFormFieldWithoutBorders {}\n\n\n@Directive({\n selector: '[mcInput], [mcTextarea]',\n exportAs: 'McTrim',\n host: { class: 'mc-trim' }\n})\nexport class McTrim {\n private original: (fn: any) => void;\n\n constructor(\n @Attribute('no-trim') private readonly noTrim: boolean,\n @Optional() @Self() private ngControl: NgControl\n ) {\n this.noTrim = coerceBooleanProperty(noTrim);\n\n if (this.noTrim || !this.ngControl?.valueAccessor) { return; }\n\n this.original = this.ngControl.valueAccessor.registerOnChange;\n\n this.ngControl.valueAccessor.registerOnChange = this.registerOnChange;\n }\n\n trim(value) {\n if (this.noTrim) { return value; }\n\n return typeof value === 'string' ? value.trim() : value;\n }\n\n private registerOnChange = (fn) => {\n return this.original.call(this.ngControl.valueAccessor, (value) => fn(this.trim(value)));\n }\n}\n","<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\" #connectionContainer>\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"mc-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n forwardRef,\n Inject,\n Optional,\n Self, OnDestroy\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n RequiredValidator,\n ValidationErrors,\n Validator,\n ValidatorFn,\n FormControlDirective\n} from '@angular/forms';\nimport {\n McValidationOptions,\n MC_VALIDATION\n} from '@ptsecurity/mosaic/core';\nimport { Subscription } from 'rxjs';\n\n\nimport { McFormFieldControl } from './form-field-control';\n\n\n@Directive({\n selector: `\n input[mcInput],\n input[mcInputPassword],\n input[mcTimepicker],\n input[mcDatepicker],\n textarea[mcTextarea],\n mc-select,\n mc-tree-select,\n mc-tag-list\n `,\n exportAs: 'McValidate'\n})\nexport class McValidateDirective implements AfterContentInit, OnDestroy {\n get isNgModel(): boolean {\n return this.ngControl instanceof NgModel;\n }\n\n get isFormControlName(): boolean {\n return this.ngControl instanceof FormControlName;\n }\n\n get isFormControl(): boolean {\n return this.ngControl instanceof FormControlDirective;\n }\n\n get validationControl(): any {\n return this.ngControl?.control || this.ngControl;\n }\n\n get parent() {\n return this.parentForm || this.parentFormGroup;\n }\n\n get hasNotSubmittedParent(): boolean {\n return this.parent && !this.parent.submitted;\n }\n protected validationStatusChangesSubscription: Subscription;\n\n constructor(\n @Inject(forwardRef(() => McFormFieldControl)) private formFieldControl: McFormFieldControl<any>,\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Self() private ngControl: NgControl,\n @Optional() private parentForm: NgForm,\n @Optional() private parentFormGroup: FormGroupDirective,\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngAfterContentInit() {\n if (this.mcValidation.useValidation) {\n this.setMosaicValidation();\n }\n }\n\n ngOnDestroy() {\n this.validationStatusChangesSubscription?.unsubscribe();\n }\n\n setValidState(control: AbstractControl, validator: ValidatorFn): void {\n if (!control) { return; }\n\n control.clearValidators();\n control.updateValueAndValidity({ emitEvent: false });\n control.setValidators(validator);\n }\n\n /** This function do next:\n * - run validation on submitting parent form\n * - prevent validation in required validator if form doesn't submitted\n * - if control has focus validation will be prevented\n */\n setMosaicValidation(): void {\n if (!this.validationControl) { return; }\n\n if (this.parent?.onSubmit) {\n // tslint:disable-next-line: no-unbound-method\n const originalSubmit = this.parent.onSubmit;\n this.parent.onSubmit = ($event: Event) => {\n this.validationControl!.updateValueAndValidity({ emitEvent: false });\n\n return originalSubmit.call(this.parent, $event);\n };\n }\n\n if (this.isNgModel) {\n this.setMosaicValidationForModelControl();\n } else if (this.isFormControl || this.isFormControlName) {\n this.setMosaicValidationForFormControl();\n }\n }\n\n setMosaicValidationForModelControl() {\n if (!this.rawValidators) { return; }\n\n this.rawValidators.forEach((validator: Validator) => {\n // tslint:disable-next-line: no-unbound-method\n const originalValidate = validator.validate;\n\n if (validator instanceof RequiredValidator) {\n // changed required validation logic\n validator.validate = (control: AbstractControl): ValidationErrors | null => {\n if (this.hasNotSubmittedParent) { return null; }\n\n return originalValidate.call(validator, control);\n };\n } else {\n // changed all other validation logic\n validator.validate = (control: AbstractControl): ValidationErrors | null => {\n if (this.formFieldControl.focused) { return null; }\n\n return originalValidate.call(validator, control);\n };\n }\n });\n }\n\n setMosaicValidationForFormControl() {\n const originalValidator = this.validationControl.validator;\n\n // changed required validation logic after initialization\n if (this.validationControl.invalid && this.validationControl.errors!.required) {\n Promise.resolve().then(() => {\n this.setValidState(this.validationControl, originalValidator!);\n this.cdr.markForCheck();\n });\n }\n\n // check dynamic updates\n this.validationStatusChangesSubscription = this.validationControl.statusChanges!\n .subscribe(() => {\n // changed required validation logic\n if (this.validationControl.invalid && (this.hasNotSubmittedParent) && this.validationControl.errors!.required) {\n this.setValidState(this.validationControl, originalValidator!);\n }\n\n // changed all other validation logic\n if (this.validationControl.invalid && this.formFieldControl.focused) {\n this.setValidState(this.validationControl, originalValidator!);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McCleaner } from './cleaner';\nimport { McFormField, McFormFieldWithoutBorders, McTrim } from './form-field';\nimport { McHint } from './hint';\nimport { McPasswordHint } from './password-hint';\nimport { McPrefix } from './prefix';\nimport { McStepper } from './stepper';\nimport { McSuffix } from './suffix';\nimport { McValidateDirective } from './validate.directive';\n\n\n@NgModule({\n declarations: [\n McFormField,\n McFormFieldWithoutBorders,\n McHint,\n McPasswordHint,\n McPrefix,\n McSuffix,\n McCleaner,\n McStepper,\n McValidateDirective,\n McTrim\n ],\n imports: [CommonModule, McIconModule],\n exports: [\n McFormField,\n McFormFieldWithoutBorders,\n McHint,\n McPasswordHint,\n McPrefix,\n McSuffix,\n McCleaner,\n McStepper,\n McValidateDirective,\n McTrim\n ]\n})\nexport class McFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-form-field.mjs","sources":["../../../packages/mosaic/form-field/cleaner.ts","../../../packages/mosaic/form-field/form-field-control.ts","../../../packages/mosaic/form-field/form-field-errors.ts","../../../packages/mosaic/form-field/hint.ts","../../../packages/mosaic/form-field/password-hint.ts","../../../packages/mosaic/form-field/prefix.ts","../../../packages/mosaic/form-field/stepper.ts","../../../packages/mosaic/form-field/suffix.ts","../../../packages/mosaic/form-field/form-field.ts","../../../packages/mosaic/form-field/form-field.html","../../../packages/mosaic/form-field/validate.directive.ts","../../../packages/mosaic/form-field/form-field.module.ts","../../../packages/mosaic/form-field/ptsecurity-mosaic-form-field.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-cleaner',\n exportAs: 'mcCleaner',\n template: `<i class=\"mc-icon_light\" mc-icon=\"mc-close-circle_16\" [color]=\"themePalette.Secondary\"></i>`,\n host: {\n class: 'mc-cleaner'\n }\n})\nexport class McCleaner {\n themePalette = ThemePalette;\n}\n","import { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n\n/** An interface which allows a control to work inside of a `MсFormField`. */\n// tslint:disable-next-line:naming-convention\nexport abstract class McFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MсFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mc-form-field` elements\n * based on their control type. The form field will add a class,\n * `mc-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(): void;\n}\n","export function getMcFormFieldMissingControlError(): Error {\n return Error('mc-form-field must contain a McFormFieldControl.');\n}\n\nexport function getMcFormFieldYouCanNotUseCleanerInNumberInputError(): Error {\n return Error(`You can't use mc-cleaner with input that have type=\"number\"`);\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { CanColorCtor, mixinColor, ThemePalette } from '@ptsecurity/mosaic/core';\n\n\nlet nextHintUniqueId = 0;\n\n/** @docs-private */\nexport class McHintBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const McHintMixinBase: CanColorCtor & typeof McHintBase = mixinColor(McHintBase, ThemePalette.Empty);\n\n\n@Directive({\n selector: 'mc-hint',\n inputs: ['color'],\n host: {\n class: 'mc-hint',\n '[attr.id]': 'id'\n }\n})\nexport class McHint extends McHintMixinBase {\n @Input() id: string = `mc-hint-${nextHintUniqueId++}`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n QueryList\n} from '@angular/core';\nimport { MC_FORM_FIELD_REF } from '@ptsecurity/mosaic/core';\nimport { Subject } from 'rxjs';\n\nimport { McFormField } from './form-field';\n\n\nlet nextPasswordHintUniqueId = 0;\n\nexport enum PasswordRules {\n Length,\n UpperLatin,\n LowerLatin,\n Digit,\n LatinAndSpecialSymbols,\n Custom\n}\n\nexport const regExpPasswordValidator = {\n [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),\n [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),\n [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),\n [PasswordRules.LatinAndSpecialSymbols]: RegExp(/[^ !`\"'#№$%&()*+,-./\\\\:;<=>?@[\\]^_{|}~A-Za-z0-9]/)\n};\n\nexport const hasPasswordStrengthError = (passwordHints: QueryList<McPasswordHint>): boolean => {\n return passwordHints.some((hint) => hint.hasError);\n};\n\n\n@Component({\n selector: 'mc-password-hint',\n template: `\n <i *ngIf=\"!checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-close-M_16\"></i>\n <i *ngIf=\"checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-check_16\"></i>\n\n <span class=\"mc-password-hint__text\">\n <ng-content></ng-content>\n </span>\n `,\n host: {\n class: 'mc-password-hint',\n '[class.mc-password-hint_valid]': 'checked',\n '[class.mc-password-hint_invalid]': 'hasError',\n '[attr.id]': 'id'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McPasswordHint implements AfterContentInit {\n @Input() id: string = `mc-hint-${nextPasswordHintUniqueId++}`;\n\n @Input() rule: PasswordRules | any;\n\n @Input() min: number;\n @Input() max: number;\n @Input() regex: RegExp | null;\n @Input('checkRule') customCheckRule: (value: string) => boolean;\n\n @Input() viewFormField?: McFormField;\n\n hasError: boolean = false;\n checked: boolean = false;\n\n private checkRule: (value: string) => boolean;\n\n private get control() {\n return this.formField.control;\n }\n\n private lastControlValue: string;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(forwardRef(() => MC_FORM_FIELD_REF)) private formField: any\n ) {}\n\n ngAfterContentInit(): void {\n this.formField = this.formField || this.viewFormField;\n\n if (this.rule === null) {\n throw Error('You should set [rule] name');\n }\n\n if (this.rule === PasswordRules.Custom && this.regex === undefined && this.customCheckRule === undefined) {\n throw Error('You should set [regex] or [checkRule] for PasswordRules.Custom');\n }\n\n if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {\n throw Error('For [rule] \"Length\" need set [min] and [max]');\n }\n\n if (this.rule === PasswordRules.Length) {\n this.checkRule = this.checkLengthRule;\n } else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit].includes(this.rule)) {\n this.regex = regExpPasswordValidator[this.rule];\n this.checkRule = this.checkRegexRule;\n } else if (this.rule === PasswordRules.LatinAndSpecialSymbols) {\n this.regex = regExpPasswordValidator[this.rule];\n this.checkRule = this.checkSpecialSymbolsRegexRule;\n } else if (this.rule === PasswordRules.Custom) {\n this.checkRule = this.regex === undefined ? this.customCheckRule.bind(this) : this.checkRegexRule.bind(this);\n } else {\n throw Error(`Unknown [rule]=${this.rule}`);\n }\n\n this.formField.control.stateChanges\n .subscribe(this.checkValue);\n\n (this.formField.control as unknown as { checkRule: Subject<any> }).checkRule\n .subscribe(() => {\n this.checked = this.checkRule(this.control.value);\n this.hasError = !this.checkRule(this.control.value);\n });\n }\n\n private checkValue = () => {\n if (this.control.focused && this.isValueChanged()) {\n this.hasError = false;\n\n this.checked = this.checkRule(this.control.value);\n } else if (!this.control.focused && !this.isValueChanged()) {\n this.hasError = !this.checkRule(this.control.value);\n }\n\n if (!this.control.required && !this.control.value) {\n this.checked = this.hasError = false;\n }\n\n this.lastControlValue = this.control.value;\n this.changeDetectorRef.markForCheck();\n }\n\n private checkLengthRule(value: string): boolean {\n return value.length >= this.min && value.length <= this.max;\n }\n\n private checkRegexRule(value: string): boolean {\n return !!this.regex?.test(value);\n }\n\n private checkSpecialSymbolsRegexRule(value: string): boolean {\n return !!value && !this.regex?.test(value);\n }\n\n private isValueChanged(): boolean {\n return this.lastControlValue !== this.formField.control.value;\n }\n}\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: '[mcPrefix]'\n})\nexport class McPrefix {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n\n@Component({\n selector: 'mc-stepper',\n template: `\n <i class=\"mc mc-icon mc-icon_light mc-secondary mc-stepper-step-up mc-angle-down-L_16\"\n (mousedown)=\"onStepUp($event)\">\n </i>\n <i class=\"mc mc-icon mc-icon_light mc-secondary mc-stepper-step-down mc-angle-down-L_16\"\n (mousedown)=\"onStepDown($event)\">\n </i>\n `\n})\nexport class McStepper {\n @Output()\n readonly stepUp: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n readonly stepDown: EventEmitter<void> = new EventEmitter<void>();\n\n connectTo(numberInput: any) {\n if (!numberInput) { return; }\n\n this.stepUp.subscribe(() => {\n numberInput.stepUp(numberInput.step);\n });\n\n this.stepDown.subscribe(() => {\n numberInput.stepDown(numberInput.step);\n });\n }\n\n onStepUp($event: MouseEvent) {\n this.stepUp.emit();\n $event.preventDefault();\n }\n\n onStepDown($event: MouseEvent) {\n this.stepDown.emit();\n $event.preventDefault();\n }\n}\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: '[mcSuffix]'\n})\nexport class McSuffix {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n OnDestroy,\n Optional,\n QueryList,\n Self,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ESCAPE, F8 } from '@ptsecurity/cdk/keycodes';\nimport { CanColor, CanColorCtor, mixinColor, MC_FORM_FIELD_REF } from '@ptsecurity/mosaic/core';\nimport { EMPTY, merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { McCleaner } from './cleaner';\nimport { McFormFieldControl } from './form-field-control';\nimport {\n getMcFormFieldMissingControlError,\n getMcFormFieldYouCanNotUseCleanerInNumberInputError\n} from './form-field-errors';\nimport { McHint } from './hint';\nimport { hasPasswordStrengthError, McPasswordHint } from './password-hint';\nimport { McPrefix } from './prefix';\nimport { McStepper } from './stepper';\nimport { McSuffix } from './suffix';\n\n\nlet nextUniqueId = 0;\n\n\n/** @docs-private */\nexport class McFormFieldBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const McFormFieldMixinBase: CanColorCtor & typeof McFormFieldBase = mixinColor(McFormFieldBase);\n\n@Component({\n selector: 'mc-form-field',\n exportAs: 'mcFormField',\n templateUrl: 'form-field.html',\n // McInput is a directive and can't have styles, so we need to include its styles here.\n // The McInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using McInput.\n styleUrls: [\n 'form-field.scss',\n '../input/input.scss',\n '../timepicker/timepicker.scss',\n '../datepicker/datepicker-input.scss',\n '../textarea/textarea.scss'\n ],\n host: {\n class: 'mc-form-field',\n '[class.mc-form-field_invalid]': 'control.errorState',\n '[class.mc-form-field_has-prefix]': 'hasPrefix',\n '[class.mc-form-field_has-suffix]': 'hasSuffix',\n '[class.mc-form-field_has-cleaner]': 'canShowCleaner',\n '[class.mc-form-field_has-stepper]': 'canShowStepper',\n\n '[class.mc-disabled]': 'control.disabled',\n\n '[class.ng-untouched]': 'shouldForward(\"untouched\")',\n '[class.ng-touched]': 'shouldForward(\"touched\")',\n '[class.ng-pristine]': 'shouldForward(\"pristine\")',\n '[class.ng-dirty]': 'shouldForward(\"dirty\")',\n '[class.ng-valid]': 'shouldForward(\"valid\")',\n '[class.ng-invalid]': 'shouldForward(\"invalid\")',\n '[class.ng-pending]': 'shouldForward(\"pending\")',\n\n '(keydown)': 'onKeyDown($event)',\n '(mouseenter)': 'onHoverChanged(true)',\n '(mouseleave)': 'onHoverChanged(false)'\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MC_FORM_FIELD_REF, useExisting: McFormField }]\n})\nexport class McFormField extends McFormFieldMixinBase implements\n AfterContentInit, AfterContentChecked, AfterViewInit, CanColor, OnDestroy {\n\n @ContentChild(McFormFieldControl, { static: false }) control: McFormFieldControl<any>;\n @ContentChild(McStepper, { static: false }) stepper: McStepper;\n @ContentChild(McCleaner, { static: false }) cleaner: McCleaner | null;\n\n @ContentChildren(McHint) hint: QueryList<McHint>;\n @ContentChildren(McPasswordHint) passwordHints: QueryList<McPasswordHint>;\n @ContentChildren(McSuffix) suffix: QueryList<McSuffix>;\n @ContentChildren(McPrefix) prefix: QueryList<McPrefix>;\n\n @ViewChild('connectionContainer', { static: true }) connectionContainerRef: ElementRef;\n\n // Unique id for the internal form field label.\n labelId = `mc-form-field-label-${nextUniqueId++}`;\n\n hovered: boolean = false;\n\n\n canCleanerClearByEsc: boolean = true;\n\n private $unsubscribe = new Subject<void>();\n\n get hasFocus(): boolean {\n return this.control.focused;\n }\n\n get hasHint(): boolean {\n return this.hint?.length > 0;\n }\n\n get hasSuffix(): boolean {\n return this.suffix?.length > 0;\n }\n\n get hasPrefix(): boolean {\n return this.prefix?.length > 0;\n }\n\n get hasCleaner(): boolean {\n return !!this.cleaner;\n }\n\n get hasStepper(): boolean {\n return !!this.stepper;\n }\n\n get canShowCleaner(): boolean {\n return this.hasCleaner &&\n this.control?.ngControl\n ? this.control.ngControl.value && !this.control.disabled\n : false;\n }\n\n get disabled(): boolean {\n return this.control?.disabled;\n }\n\n get canShowStepper(): boolean {\n return this.hasStepper &&\n !this.disabled &&\n (this.control?.focused || this.hovered);\n }\n\n constructor(\n public elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor\n ) {\n super(elementRef);\n\n afterNextRender(this.runFocusMonitor);\n }\n\n ngAfterContentInit() {\n if ((this.control as any).numberInput && this.hasCleaner) {\n this.cleaner = null;\n throw getMcFormFieldYouCanNotUseCleanerInNumberInputError();\n }\n\n this.validateControlChild();\n\n if (this.control.controlType) {\n this.elementRef.nativeElement.classList.add(`mc-form-field-type-${this.control.controlType}`);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this.control.stateChanges\n .pipe(startWith())\n .subscribe((state: any) => {\n if (this.passwordHints.length && !state?.focused && hasPasswordStrengthError(this.passwordHints)) {\n this.control.ngControl?.control?.setErrors({ passwordStrength: true });\n }\n\n this.changeDetectorRef.markForCheck();\n });\n\n if (this.hasStepper) {\n this.stepper.connectTo((this.control as any).numberInput);\n }\n\n // Run change detection if the value changes.\n const valueChanges = this.control.ngControl?.valueChanges || EMPTY;\n\n merge(valueChanges)\n .pipe(takeUntil(this.$unsubscribe))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n ngAfterContentChecked() {\n this.validateControlChild();\n }\n\n ngAfterViewInit() {\n // Avoid animations on load.\n this.changeDetectorRef.detectChanges();\n }\n\n focusViaKeyboard(): void {\n this.control.focus();\n }\n\n clearValue($event) {\n $event.stopPropagation();\n\n this.control?.ngControl?.reset();\n this.control?.focus();\n }\n\n onContainerClick($event) {\n if (this.control.onContainerClick) {\n this.control.onContainerClick($event);\n }\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line:deprecation\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\n (this.control as unknown as { toggleType(): void }).toggleType();\n }\n // tslint:disable-next-line:deprecation\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {\n this.control?.ngControl?.reset();\n\n event.preventDefault();\n }\n }\n\n onHoverChanged(isHovered: boolean) {\n if (isHovered !== this.hovered) {\n this.hovered = isHovered;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.connectionContainerRef || this.elementRef;\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this.control?.ngControl;\n\n return ngControl && ngControl[prop];\n }\n\n ngOnDestroy(): void {\n this.$unsubscribe.next();\n this.$unsubscribe.complete();\n\n this.stopFocusMonitor();\n }\n\n runFocusMonitor = () => {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n /** Throws an error if the form field's control is missing. */\n protected validateControlChild() {\n if (!this.control) {\n throw getMcFormFieldMissingControlError();\n }\n }\n}\n\n@Directive({\n selector: 'mc-form-field[mcFormFieldWithoutBorders]',\n exportAs: 'mcFormFieldWithoutBorders',\n host: { class: 'mc-form-field_without-borders' }\n})\nexport class McFormFieldWithoutBorders {}\n\n\n@Directive({\n selector: '[mcInput], [mcTextarea]',\n exportAs: 'McTrim',\n host: { class: 'mc-trim' }\n})\nexport class McTrim {\n private original: (fn: any) => void;\n\n constructor(\n @Attribute('no-trim') private readonly noTrim: boolean,\n @Optional() @Self() private ngControl: NgControl\n ) {\n this.noTrim = coerceBooleanProperty(noTrim);\n\n if (this.noTrim || !this.ngControl?.valueAccessor) { return; }\n\n this.original = this.ngControl.valueAccessor.registerOnChange;\n\n this.ngControl.valueAccessor.registerOnChange = this.registerOnChange;\n }\n\n trim(value) {\n if (this.noTrim) { return value; }\n\n return typeof value === 'string' ? value.trim() : value;\n }\n\n private registerOnChange = (fn) => {\n return this.original.call(this.ngControl.valueAccessor, (value) => fn(this.trim(value)));\n }\n}\n","<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\" #connectionContainer>\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"mc-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Inject,\n Optional,\n Self, OnDestroy\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n RequiredValidator,\n ValidationErrors,\n Validator,\n ValidatorFn,\n FormControlDirective\n} from '@angular/forms';\nimport {\n McValidationOptions,\n MC_VALIDATION\n} from '@ptsecurity/mosaic/core';\nimport { Subscription } from 'rxjs';\n\nimport { McFormField } from './form-field';\nimport { McFormFieldControl } from './form-field-control';\n\n\n@Directive({\n selector: `\n input[mcInput],\n input[mcInputPassword],\n input[mcTimepicker],\n input[mcDatepicker],\n textarea[mcTextarea],\n mc-select,\n mc-tree-select,\n mc-tag-list\n `,\n exportAs: 'McValidate'\n})\nexport class McValidateDirective implements AfterContentInit, OnDestroy {\n get isNgModel(): boolean {\n return this.ngControl instanceof NgModel;\n }\n\n get isFormControlName(): boolean {\n return this.ngControl instanceof FormControlName;\n }\n\n get isFormControl(): boolean {\n return this.ngControl instanceof FormControlDirective;\n }\n\n get validationControl(): any {\n return this.ngControl?.control || this.ngControl;\n }\n\n get parent() {\n return this.parentForm || this.parentFormGroup;\n }\n\n get hasNotSubmittedParent(): boolean {\n return this.parent && !this.parent.submitted;\n }\n protected validationStatusChangesSubscription: Subscription;\n\n constructor(\n @Inject(forwardRef(() => McFormFieldControl)) private formFieldControl: McFormFieldControl<any>,\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Self() private ngControl: NgControl,\n @Optional() private parentForm: NgForm,\n @Optional() private parentFormGroup: FormGroupDirective,\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n private cdr: ChangeDetectorRef,\n @Optional() @Host() private readonly parentFormField: McFormField | null,\n private readonly elementRef: ElementRef<HTMLElement>\n ) { }\n\n ngAfterContentInit() {\n if (this.mcValidation.useValidation) {\n this.parentFormField?.elementRef.nativeElement.classList.add('mc-form-field_has-validate-directive');\n this.elementRef.nativeElement.classList.add('mc-control_has-validate-directive');\n\n this.setMosaicValidation();\n }\n }\n\n ngOnDestroy() {\n this.validationStatusChangesSubscription?.unsubscribe();\n }\n\n setValidState(control: AbstractControl, validator: ValidatorFn): void {\n if (!control) { return; }\n\n control.clearValidators();\n control.updateValueAndValidity({ emitEvent: false });\n control.setValidators(validator);\n }\n\n /** This function do next:\n * - run validation on submitting parent form\n * - prevent validation in required validator if form doesn't submitted\n * - if control has focus validation will be prevented\n */\n setMosaicValidation(): void {\n if (!this.validationControl) { return; }\n\n if (this.parent?.onSubmit) {\n // tslint:disable-next-line: no-unbound-method\n const originalSubmit = this.parent.onSubmit;\n this.parent.onSubmit = ($event: Event) => {\n this.validationControl!.updateValueAndValidity({ emitEvent: false });\n\n return originalSubmit.call(this.parent, $event);\n };\n }\n\n if (this.isNgModel) {\n this.setMosaicValidationForModelControl();\n } else if (this.isFormControl || this.isFormControlName) {\n this.setMosaicValidationForFormControl();\n }\n }\n\n setMosaicValidationForModelControl() {\n if (!this.rawValidators) { return; }\n\n this.rawValidators.forEach((validator: Validator) => {\n // tslint:disable-next-line: no-unbound-method\n const originalValidate = validator.validate;\n\n if (validator instanceof RequiredValidator) {\n // changed required validation logic\n validator.validate = (control: AbstractControl): ValidationErrors | null => {\n if (this.hasNotSubmittedParent) { return null; }\n\n return originalValidate.call(validator, control);\n };\n } else {\n // changed all other validation logic\n validator.validate = (control: AbstractControl): ValidationErrors | null => {\n if (this.formFieldControl.focused) { return null; }\n\n return originalValidate.call(validator, control);\n };\n }\n });\n }\n\n setMosaicValidationForFormControl() {\n const originalValidator = this.validationControl.validator;\n\n // changed required validation logic after initialization\n if (this.validationControl.invalid && this.validationControl.errors!.required) {\n Promise.resolve().then(() => {\n this.setValidState(this.validationControl, originalValidator!);\n this.cdr.markForCheck();\n });\n }\n\n // check dynamic updates\n this.validationStatusChangesSubscription = this.validationControl.statusChanges!\n .subscribe(() => {\n // changed required validation logic\n if (this.validationControl.invalid && (this.hasNotSubmittedParent) && this.validationControl.errors!.required) {\n this.setValidState(this.validationControl, originalValidator!);\n }\n\n // changed all other validation logic\n if (this.validationControl.invalid && this.formFieldControl.focused) {\n this.setValidState(this.validationControl, originalValidator!);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McCleaner } from './cleaner';\nimport { McFormField, McFormFieldWithoutBorders, McTrim } from './form-field';\nimport { McHint } from './hint';\nimport { McPasswordHint } from './password-hint';\nimport { McPrefix } from './prefix';\nimport { McStepper } from './stepper';\nimport { McSuffix } from './suffix';\nimport { McValidateDirective } from './validate.directive';\n\n\n@NgModule({\n declarations: [\n McFormField,\n McFormFieldWithoutBorders,\n McHint,\n McPasswordHint,\n McPrefix,\n McSuffix,\n McCleaner,\n McStepper,\n McValidateDirective,\n McTrim\n ],\n imports: [CommonModule, McIconModule],\n exports: [\n McFormField,\n McFormFieldWithoutBorders,\n McHint,\n McPasswordHint,\n McPrefix,\n McSuffix,\n McCleaner,\n McStepper,\n McValidateDirective,\n McTrim\n ]\n})\nexport class McFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i2.McFormField"],"mappings":"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"}
@@ -284,7 +284,7 @@ class McToastComponent {
284
284
  };
285
285
  }
286
286
  get hasDismiss() {
287
- return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;
287
+ return this.data.hasDismiss ?? true;
288
288
  }
289
289
  get isFocusedOrHovered() {
290
290
  return this.hovered.getValue() || this.focused.getValue();
@@ -338,7 +338,7 @@ class McToastComponent {
338
338
  this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
339
339
  }
340
340
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McToastComponent, deps: [{ token: McToastData }, { token: forwardRef(() => McToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
341
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: McToastComponent, selector: "mc-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
341
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: McToastComponent, selector: "mc-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column;white-space:pre-wrap}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin-top:6px;margin-right:-8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
342
342
  }
343
343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McToastComponent, decorators: [{
344
344
  type: Component,
@@ -352,7 +352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
352
352
  '(mouseenter)': 'hovered.next(true)',
353
353
  '(mouseleave)': 'hovered.next(false)',
354
354
  '(keydown.esc)': 'close()'
355
- }, animations: [mcToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"] }]
355
+ }, animations: [mcToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column;white-space:pre-wrap}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin-top:6px;margin-right:-8px}\n"] }]
356
356
  }], ctorParameters: () => [{ type: McToastData }, { type: McToastService, decorators: [{
357
357
  type: Inject,
358
358
  args: [forwardRef(() => McToastService)]
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-toast.mjs","sources":["../../../packages/mosaic/toast/toast.type.ts","../../../packages/mosaic/toast/toast-container.component.ts","../../../packages/mosaic/toast/toast.service.ts","../../../packages/mosaic/toast/toast-animations.ts","../../../packages/mosaic/toast/toast.component.ts","../../../packages/mosaic/toast/toast.component.html","../../../packages/mosaic/toast/toast.module.ts","../../../packages/mosaic/toast/ptsecurity-mosaic-toast.ts"],"sourcesContent":["import { TemplateRef, InjectionToken } from '@angular/core';\n\n\nexport type McToastStyle = 'default' | 'confirm' | 'custom' | 'success' | 'error' | 'warning' | 'info';\nexport enum McToastPosition {\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n TOP_CENTER = 'top-center',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_CENTER = 'bottom-center',\n CENTER = 'center'\n}\n\nexport class McToastData {\n style: McToastStyle;\n title: string | TemplateRef<any>;\n\n icon?: TemplateRef<any>;\n caption?: string | TemplateRef<any>;\n\n content?: string | TemplateRef<any>;\n actions?: TemplateRef<any>;\n\n hasDismiss?: boolean;\n}\n\n// tslint:disable-next-line:naming-convention\nexport interface McToastConfig {\n position: McToastPosition;\n duration: number;\n delay: number;\n onTop: boolean;\n}\n\nexport const MC_TOAST_CONFIG = new InjectionToken('mc-toast-config');\n","import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n forwardRef,\n Inject,\n Injector,\n NgZone,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n ViewRef\n} from '@angular/core';\n\nimport { McToastService } from './toast.service';\nimport { McToastData } from './toast.type';\n\n\n@Component({\n selector: 'mc-toast-container',\n template: '<ng-container #container></ng-container>',\n styleUrls: ['./toast-container.component.scss'],\n host: {\n class: 'mc-toast-container'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastContainerComponent extends CdkScrollable {\n @ViewChild('container', { static: true, read: ViewContainerRef }) viewContainer: ViewContainerRef;\n\n constructor(\n private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(forwardRef(() => McToastService)) readonly service: McToastService,\n\n elementRef: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone\n ) {\n super(elementRef, scrollDispatcher, ngZone);\n\n this.service.animation\n .subscribe(this.dispatchScrollEvent);\n }\n\n createToast<C>(data: McToastData, componentType, onTop: boolean): ComponentRef<C> {\n const injector = this.getInjector(data);\n const index = onTop ? 0 : undefined;\n\n this.changeDetectorRef.markForCheck();\n\n return this.viewContainer.createComponent(componentType, { injector, index });\n }\n\n createTemplate<C>(data: McToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C> {\n const index = onTop ? 0 : undefined;\n\n return this.viewContainer.createEmbeddedView(template, { $implicit: data }, index);\n }\n\n remove(viewRef: ViewRef) {\n const index = this.viewContainer.indexOf(viewRef);\n\n if (index < 0) { return; }\n\n this.viewContainer.remove(index);\n }\n\n getInjector(data: McToastData): Injector {\n return Injector.create({\n providers: [{ provide: McToastData, useValue: data }],\n parent: this.injector\n });\n }\n\n dispatchScrollEvent = () => {\n this.elementRef.nativeElement.dispatchEvent(new CustomEvent('scroll'));\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n Inject,\n ComponentRef,\n Optional,\n TemplateRef,\n EmbeddedViewRef,\n InjectionToken,\n NgZone, OnDestroy\n} from '@angular/core';\nimport { BehaviorSubject, shareReplay, Subscription, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { McToastData, MC_TOAST_CONFIG, McToastConfig, McToastPosition } from './toast.type';\n\n\nexport const MC_TOAST_FACTORY = new InjectionToken('McToastFactory');\n\nexport const defaultToastConfig: McToastConfig = {\n position: McToastPosition.TOP_RIGHT,\n duration: 5000,\n delay: 2000,\n onTop: false\n};\n\n\nconst INDENT_SIZE = 16;\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n@Injectable({ providedIn: 'root' })\nexport class McToastService<T extends McToastComponent = McToastComponent> implements OnDestroy {\n get toasts(): ComponentRef<T>[] {\n return Object.values(this.toastsDict)\n .filter((item) => !item.hostView.destroyed);\n }\n\n get templates(): EmbeddedViewRef<T>[] {\n return Object.values(this.templatesDict);\n }\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n readonly animation = new BehaviorSubject<AnimationEvent | null>(null);\n\n timer = timer(CHECK_INTERVAL, CHECK_INTERVAL)\n .pipe(\n filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()),\n shareReplay()\n );\n\n private containerInstance: McToastContainerComponent;\n private overlayRef: OverlayRef;\n private portal: ComponentPortal<McToastContainerComponent>;\n private timerSubscription: Subscription;\n\n private toastsDict: { [id: number]: ComponentRef<T> } = {};\n private templatesDict: { [id: number]: EmbeddedViewRef<T> } = {};\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private ngZone: NgZone,\n @Inject(MC_TOAST_FACTORY) private toastFactory: any,\n @Optional() @Inject(MC_TOAST_CONFIG) private toastConfig: McToastConfig\n ) {\n this.toastConfig = toastConfig || defaultToastConfig;\n\n this.ngZone.runOutsideAngular(\n () => this.timerSubscription = this.timer.subscribe(this.processToasts)\n );\n }\n\n ngOnDestroy(): void {\n this.timerSubscription.unsubscribe();\n }\n\n show(\n data: McToastData,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: ComponentRef<T>; id: number} {\n\n this.prepareContainer();\n\n const componentRef = this.containerInstance.createToast<T>(data, this.toastFactory, onTop);\n\n this.toastsDict[componentRef.instance.id] = componentRef;\n\n componentRef.instance.ttl = duration;\n componentRef.instance.delay = this.toastConfig.delay;\n\n return { ref: componentRef, id: componentRef.instance.id };\n }\n\n showTemplate(\n data: McToastData,\n template: TemplateRef<any>,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: EmbeddedViewRef<T>; id: number } {\n\n this.prepareContainer();\n\n const viewRef = this.containerInstance.createTemplate<T>(data, template, onTop);\n\n this.templatesDict[templateId] = viewRef;\n\n this.addRemoveTimer(templateId, duration);\n\n templateId++;\n\n return { ref: viewRef, id: templateId };\n }\n\n hide(id: number) {\n const componentRef = this.toastsDict[id];\n\n if (!componentRef) { return; }\n\n this.containerInstance.remove(componentRef.hostView);\n\n delete this.toastsDict[id];\n\n this.detachOverlay();\n }\n\n hideTemplate(id: number) {\n const viewRef = this.templatesDict[id];\n\n if (!viewRef) { return; }\n\n this.containerInstance.remove(viewRef);\n\n delete this.templatesDict[id];\n\n this.detachOverlay();\n }\n\n private detachOverlay() {\n if (this.toasts.length !== 0) { return; }\n\n this.overlayRef.detach();\n }\n\n private processToasts = () => {\n for (const toast of this.toasts.filter((item) => item.instance.ttl > 0)) {\n toast.instance.ttl -= CHECK_INTERVAL;\n\n if (toast.instance.ttl <= 0) {\n this.ngZone.run(() => {\n this.hide(toast.instance.id);\n\n this.updateTTLAfterDelete();\n });\n\n break;\n }\n }\n }\n\n private updateTTLAfterDelete() {\n this.toasts\n .filter((item) => item.instance.ttl > 0)\n .forEach((item) => item.instance.ttl = this.toastConfig.delay);\n }\n\n private addRemoveTimer(id: number, duration: number) {\n setTimeout(() => this.hideTemplate(id), duration);\n }\n\n private prepareContainer() {\n this.createOverlay();\n\n this.portal = this.portal || new ComponentPortal(McToastContainerComponent, null, this.injector);\n\n if (!this.overlayRef.hasAttached()) {\n this.containerInstance = this.overlayRef.attach(this.portal).instance;\n }\n }\n\n private createOverlay() {\n if (this.overlayRef) { return this.overlayRef; }\n\n const positionStrategy = this.getPositionStrategy(this.toastConfig.position);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n this.overlayRef.hostElement.classList.add('mc-toast-overlay');\n }\n\n private getPositionStrategy(position?: McToastPosition): GlobalPositionStrategy {\n switch (position) {\n case McToastPosition.CENTER:\n return this.getCenter();\n case McToastPosition.BOTTOM_CENTER:\n return this.getBottomCenter();\n case McToastPosition.BOTTOM_LEFT:\n return this.getBottomLeft();\n case McToastPosition.BOTTOM_RIGHT:\n return this.getBottomRight();\n case McToastPosition.TOP_CENTER:\n return this.getTopCenter();\n case McToastPosition.TOP_LEFT:\n return this.getTopLeft();\n case McToastPosition.TOP_RIGHT:\n return this.getTopRight();\n default:\n return this.getTopCenter();\n }\n }\n\n private getTopCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getTopLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getTopRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getBottomCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getBottomLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getBottomRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .centerVertically()\n .centerHorizontally();\n }\n\n private getGlobalOverlayPosition(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n}\n","import {\n animate,\n style,\n transition,\n trigger,\n state,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\n\nexport const mcToastAnimations: {\n readonly toastState: AnimationTriggerMetadata;\n} = {\n toastState: trigger('state', [\n state('void', style({ transform: 'translateX(100%)', opacity: 0 })),\n transition(\n '* => visible',\n animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))\n ),\n transition(\n '* => void',\n animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 }))\n )\n ])\n};\n\nexport const toastState = mcToastAnimations.toastState;\n","import { AnimationEvent } from '@angular/animations';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { BehaviorSubject, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { mcToastAnimations } from './toast-animations';\nimport { McToastService } from './toast.service';\nimport { McToastData } from './toast.type';\n\n\nlet id = 0;\n\n@Component({\n selector: 'mc-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n host: {\n class: 'mc-toast',\n '[class]': 'toastStyle',\n '[class.mc-toast_dismissible]': 'hasDismiss',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)',\n\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)',\n\n '(keydown.esc)': 'close()'\n },\n animations: [mcToastAnimations.toastState],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastComponent implements OnDestroy {\n themePalette = ThemePalette;\n\n animationState = 'void';\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n id = id++;\n ttl;\n delay;\n\n $implicit;\n\n get toastStyle() {\n return {\n [`mc-toast_${this.data.style || 'info'}`]: true\n };\n }\n\n get hasDismiss(): boolean {\n return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;\n }\n\n get isFocusedOrHovered(): boolean {\n return this.hovered.getValue() || this.focused.getValue();\n }\n\n private destroyed: Subject<boolean> = new Subject();\n\n constructor(\n readonly data: McToastData,\n @Inject(forwardRef(() => McToastService)) readonly service: McToastService,\n public elementRef: ElementRef,\n private focusMonitor: FocusMonitor\n ) {\n this.$implicit = this;\n\n this.animationState = 'visible';\n\n this.runFocusMonitor();\n\n this.hovered.subscribe(this.service.hovered);\n this.focused.subscribe(this.service.focused);\n\n merge(this.hovered, this.focused)\n .pipe(takeUntil(this.destroyed), filter((value) => value))\n .subscribe(() => {\n if (this.ttl === 0) { return; }\n\n this.ttl = this.ttl < this.delay ? this.delay : this.ttl;\n });\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n\n this.hovered.next(false);\n this.focused.next(false);\n\n this.destroyed.next(true);\n }\n\n close(): void {\n this.service.hide(this.id);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n onAnimation($event: AnimationEvent) {\n this.service.animation.next($event);\n }\n\n private runFocusMonitor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .subscribe((origin: FocusOrigin) => this.focused.next(!!origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { MC_TOAST_FACTORY, McToastService } from './toast.service';\n\n\n@NgModule({\n declarations: [\n McToastComponent,\n McToastContainerComponent\n ],\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n McIconModule,\n McButtonModule\n ],\n providers: [\n McToastService,\n { provide: MC_TOAST_FACTORY, useFactory: () => McToastComponent }\n ]\n})\nexport class McToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-toast.mjs","sources":["../../../packages/mosaic/toast/toast.type.ts","../../../packages/mosaic/toast/toast-container.component.ts","../../../packages/mosaic/toast/toast.service.ts","../../../packages/mosaic/toast/toast-animations.ts","../../../packages/mosaic/toast/toast.component.ts","../../../packages/mosaic/toast/toast.component.html","../../../packages/mosaic/toast/toast.module.ts","../../../packages/mosaic/toast/ptsecurity-mosaic-toast.ts"],"sourcesContent":["import { TemplateRef, InjectionToken } from '@angular/core';\n\n\nexport type McToastStyle = 'default' | 'confirm' | 'custom' | 'success' | 'error' | 'warning' | 'info';\nexport enum McToastPosition {\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n TOP_CENTER = 'top-center',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_CENTER = 'bottom-center',\n CENTER = 'center'\n}\n\nexport class McToastData {\n style: McToastStyle;\n title: string | TemplateRef<any>;\n\n icon?: TemplateRef<any>;\n caption?: string | TemplateRef<any>;\n\n content?: string | TemplateRef<any>;\n actions?: TemplateRef<any>;\n\n hasDismiss?: boolean;\n}\n\n// tslint:disable-next-line:naming-convention\nexport interface McToastConfig {\n position: McToastPosition;\n duration: number;\n delay: number;\n onTop: boolean;\n}\n\nexport const MC_TOAST_CONFIG = new InjectionToken('mc-toast-config');\n","import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n forwardRef,\n Inject,\n Injector,\n NgZone,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n ViewRef\n} from '@angular/core';\n\nimport { McToastService } from './toast.service';\nimport { McToastData } from './toast.type';\n\n\n@Component({\n selector: 'mc-toast-container',\n template: '<ng-container #container></ng-container>',\n styleUrls: ['./toast-container.component.scss'],\n host: {\n class: 'mc-toast-container'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastContainerComponent extends CdkScrollable {\n @ViewChild('container', { static: true, read: ViewContainerRef }) viewContainer: ViewContainerRef;\n\n constructor(\n private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(forwardRef(() => McToastService)) readonly service: McToastService,\n\n elementRef: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone\n ) {\n super(elementRef, scrollDispatcher, ngZone);\n\n this.service.animation\n .subscribe(this.dispatchScrollEvent);\n }\n\n createToast<C>(data: McToastData, componentType, onTop: boolean): ComponentRef<C> {\n const injector = this.getInjector(data);\n const index = onTop ? 0 : undefined;\n\n this.changeDetectorRef.markForCheck();\n\n return this.viewContainer.createComponent(componentType, { injector, index });\n }\n\n createTemplate<C>(data: McToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C> {\n const index = onTop ? 0 : undefined;\n\n return this.viewContainer.createEmbeddedView(template, { $implicit: data }, index);\n }\n\n remove(viewRef: ViewRef) {\n const index = this.viewContainer.indexOf(viewRef);\n\n if (index < 0) { return; }\n\n this.viewContainer.remove(index);\n }\n\n getInjector(data: McToastData): Injector {\n return Injector.create({\n providers: [{ provide: McToastData, useValue: data }],\n parent: this.injector\n });\n }\n\n dispatchScrollEvent = () => {\n this.elementRef.nativeElement.dispatchEvent(new CustomEvent('scroll'));\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n Inject,\n ComponentRef,\n Optional,\n TemplateRef,\n EmbeddedViewRef,\n InjectionToken,\n NgZone, OnDestroy\n} from '@angular/core';\nimport { BehaviorSubject, shareReplay, Subscription, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { McToastData, MC_TOAST_CONFIG, McToastConfig, McToastPosition } from './toast.type';\n\n\nexport const MC_TOAST_FACTORY = new InjectionToken('McToastFactory');\n\nexport const defaultToastConfig: McToastConfig = {\n position: McToastPosition.TOP_RIGHT,\n duration: 5000,\n delay: 2000,\n onTop: false\n};\n\n\nconst INDENT_SIZE = 16;\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n@Injectable({ providedIn: 'root' })\nexport class McToastService<T extends McToastComponent = McToastComponent> implements OnDestroy {\n get toasts(): ComponentRef<T>[] {\n return Object.values(this.toastsDict)\n .filter((item) => !item.hostView.destroyed);\n }\n\n get templates(): EmbeddedViewRef<T>[] {\n return Object.values(this.templatesDict);\n }\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n readonly animation = new BehaviorSubject<AnimationEvent | null>(null);\n\n timer = timer(CHECK_INTERVAL, CHECK_INTERVAL)\n .pipe(\n filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()),\n shareReplay()\n );\n\n private containerInstance: McToastContainerComponent;\n private overlayRef: OverlayRef;\n private portal: ComponentPortal<McToastContainerComponent>;\n private timerSubscription: Subscription;\n\n private toastsDict: { [id: number]: ComponentRef<T> } = {};\n private templatesDict: { [id: number]: EmbeddedViewRef<T> } = {};\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private ngZone: NgZone,\n @Inject(MC_TOAST_FACTORY) private toastFactory: any,\n @Optional() @Inject(MC_TOAST_CONFIG) private toastConfig: McToastConfig\n ) {\n this.toastConfig = toastConfig || defaultToastConfig;\n\n this.ngZone.runOutsideAngular(\n () => this.timerSubscription = this.timer.subscribe(this.processToasts)\n );\n }\n\n ngOnDestroy(): void {\n this.timerSubscription.unsubscribe();\n }\n\n show(\n data: McToastData,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: ComponentRef<T>; id: number} {\n\n this.prepareContainer();\n\n const componentRef = this.containerInstance.createToast<T>(data, this.toastFactory, onTop);\n\n this.toastsDict[componentRef.instance.id] = componentRef;\n\n componentRef.instance.ttl = duration;\n componentRef.instance.delay = this.toastConfig.delay;\n\n return { ref: componentRef, id: componentRef.instance.id };\n }\n\n showTemplate(\n data: McToastData,\n template: TemplateRef<any>,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: EmbeddedViewRef<T>; id: number } {\n\n this.prepareContainer();\n\n const viewRef = this.containerInstance.createTemplate<T>(data, template, onTop);\n\n this.templatesDict[templateId] = viewRef;\n\n this.addRemoveTimer(templateId, duration);\n\n templateId++;\n\n return { ref: viewRef, id: templateId };\n }\n\n hide(id: number) {\n const componentRef = this.toastsDict[id];\n\n if (!componentRef) { return; }\n\n this.containerInstance.remove(componentRef.hostView);\n\n delete this.toastsDict[id];\n\n this.detachOverlay();\n }\n\n hideTemplate(id: number) {\n const viewRef = this.templatesDict[id];\n\n if (!viewRef) { return; }\n\n this.containerInstance.remove(viewRef);\n\n delete this.templatesDict[id];\n\n this.detachOverlay();\n }\n\n private detachOverlay() {\n if (this.toasts.length !== 0) { return; }\n\n this.overlayRef.detach();\n }\n\n private processToasts = () => {\n for (const toast of this.toasts.filter((item) => item.instance.ttl > 0)) {\n toast.instance.ttl -= CHECK_INTERVAL;\n\n if (toast.instance.ttl <= 0) {\n this.ngZone.run(() => {\n this.hide(toast.instance.id);\n\n this.updateTTLAfterDelete();\n });\n\n break;\n }\n }\n }\n\n private updateTTLAfterDelete() {\n this.toasts\n .filter((item) => item.instance.ttl > 0)\n .forEach((item) => item.instance.ttl = this.toastConfig.delay);\n }\n\n private addRemoveTimer(id: number, duration: number) {\n setTimeout(() => this.hideTemplate(id), duration);\n }\n\n private prepareContainer() {\n this.createOverlay();\n\n this.portal = this.portal || new ComponentPortal(McToastContainerComponent, null, this.injector);\n\n if (!this.overlayRef.hasAttached()) {\n this.containerInstance = this.overlayRef.attach(this.portal).instance;\n }\n }\n\n private createOverlay() {\n if (this.overlayRef) { return this.overlayRef; }\n\n const positionStrategy = this.getPositionStrategy(this.toastConfig.position);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n this.overlayRef.hostElement.classList.add('mc-toast-overlay');\n }\n\n private getPositionStrategy(position?: McToastPosition): GlobalPositionStrategy {\n switch (position) {\n case McToastPosition.CENTER:\n return this.getCenter();\n case McToastPosition.BOTTOM_CENTER:\n return this.getBottomCenter();\n case McToastPosition.BOTTOM_LEFT:\n return this.getBottomLeft();\n case McToastPosition.BOTTOM_RIGHT:\n return this.getBottomRight();\n case McToastPosition.TOP_CENTER:\n return this.getTopCenter();\n case McToastPosition.TOP_LEFT:\n return this.getTopLeft();\n case McToastPosition.TOP_RIGHT:\n return this.getTopRight();\n default:\n return this.getTopCenter();\n }\n }\n\n private getTopCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getTopLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getTopRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getBottomCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getBottomLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getBottomRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .centerVertically()\n .centerHorizontally();\n }\n\n private getGlobalOverlayPosition(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n}\n","import {\n animate,\n style,\n transition,\n trigger,\n state,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\n\nexport const mcToastAnimations: {\n readonly toastState: AnimationTriggerMetadata;\n} = {\n toastState: trigger('state', [\n state('void', style({ transform: 'translateX(100%)', opacity: 0 })),\n transition(\n '* => visible',\n animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))\n ),\n transition(\n '* => void',\n animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 }))\n )\n ])\n};\n\nexport const toastState = mcToastAnimations.toastState;\n","import { AnimationEvent } from '@angular/animations';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { BehaviorSubject, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { mcToastAnimations } from './toast-animations';\nimport { McToastService } from './toast.service';\nimport { McToastData } from './toast.type';\n\n\nlet id = 0;\n\n@Component({\n selector: 'mc-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n host: {\n class: 'mc-toast',\n '[class]': 'toastStyle',\n '[class.mc-toast_dismissible]': 'hasDismiss',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)',\n\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)',\n\n '(keydown.esc)': 'close()'\n },\n animations: [mcToastAnimations.toastState],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastComponent implements OnDestroy {\n themePalette = ThemePalette;\n\n animationState = 'void';\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n id = id++;\n ttl;\n delay;\n\n $implicit;\n\n get toastStyle() {\n return {\n [`mc-toast_${this.data.style || 'info'}`]: true\n };\n }\n\n get hasDismiss(): boolean {\n return this.data.hasDismiss ?? true;\n }\n\n get isFocusedOrHovered(): boolean {\n return this.hovered.getValue() || this.focused.getValue();\n }\n\n private destroyed: Subject<boolean> = new Subject();\n\n constructor(\n readonly data: McToastData,\n @Inject(forwardRef(() => McToastService)) readonly service: McToastService,\n public elementRef: ElementRef,\n private focusMonitor: FocusMonitor\n ) {\n this.$implicit = this;\n\n this.animationState = 'visible';\n\n this.runFocusMonitor();\n\n this.hovered.subscribe(this.service.hovered);\n this.focused.subscribe(this.service.focused);\n\n merge(this.hovered, this.focused)\n .pipe(takeUntil(this.destroyed), filter((value) => value))\n .subscribe(() => {\n if (this.ttl === 0) { return; }\n\n this.ttl = this.ttl < this.delay ? this.delay : this.ttl;\n });\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n\n this.hovered.next(false);\n this.focused.next(false);\n\n this.destroyed.next(true);\n }\n\n close(): void {\n this.service.hide(this.id);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n onAnimation($event: AnimationEvent) {\n this.service.animation.next($event);\n }\n\n private runFocusMonitor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .subscribe((origin: FocusOrigin) => this.focused.next(!!origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { MC_TOAST_FACTORY, McToastService } from './toast.service';\n\n\n@NgModule({\n declarations: [\n McToastComponent,\n McToastContainerComponent\n ],\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n McIconModule,\n McButtonModule\n ],\n providers: [\n McToastService,\n { provide: MC_TOAST_FACTORY, useFactory: () => McToastComponent }\n ]\n})\nexport class McToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}