@ptsecurity/mosaic 13.5.0 → 13.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_theming.scss +119 -82
- package/_visual.scss +45 -41
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +11 -2
- package/design-tokens/legacy-2017/tokens/components/alert.json5 +10 -10
- package/design-tokens/legacy-2017/tokens/components/button.json5 +8 -8
- package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +14 -14
- package/design-tokens/legacy-2017/tokens/components/divider.json5 +6 -0
- package/design-tokens/legacy-2017/tokens/components/form-field.json5 +6 -6
- package/design-tokens/legacy-2017/tokens/components/popup.json5 +0 -2
- package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +12 -0
- package/design-tokens/legacy-2017/tokens/components/tags.json5 +16 -16
- package/design-tokens/legacy-2017/tokens.d.ts +56 -52
- package/design-tokens/pt-2022/tokens/components/alert.json5 +10 -10
- package/design-tokens/pt-2022/tokens/components/button.json5 +8 -8
- package/design-tokens/pt-2022/tokens/components/checkbox.json5 +18 -18
- package/design-tokens/pt-2022/tokens/components/divider.json5 +6 -0
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +6 -6
- package/design-tokens/pt-2022/tokens/components/popup.json5 +0 -2
- package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +12 -0
- package/design-tokens/pt-2022/tokens/components/tags.json5 +12 -12
- package/design-tokens/pt-2022/tokens.d.ts +45 -41
- package/esm2020/core/option/option.mjs +1 -1
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +20 -8
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +57 -53
- package/esm2020/design-tokens/pt-2022/tokens.mjs +46 -42
- package/esm2020/form-field/password-hint.mjs +6 -1
- package/esm2020/input/input-password.mjs +12 -8
- package/esm2020/list/list-selection.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +3 -3
- package/esm2020/tree/control/flat-tree-control.mjs +5 -2
- package/esm2020/tree/tree-option.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +23 -18
- package/fesm2015/ptsecurity-mosaic-core.mjs +19 -8
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +126 -114
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +5 -0
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +11 -7
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.mjs +1 -1
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +22 -17
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +6 -3
- package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +19 -8
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +126 -114
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +5 -0
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +11 -7
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-list.mjs +1 -1
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-select.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +22 -17
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +6 -3
- package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/input/input-password.d.ts +7 -5
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/tree/control/flat-tree-control.d.ts +5 -1
- package/tree-select/tree-select.component.d.ts +7 -2
@@ -132,6 +132,11 @@ class McPasswordHint {
|
|
132
132
|
}
|
133
133
|
this.formField.control.stateChanges
|
134
134
|
.subscribe(this.checkValue);
|
135
|
+
this.formField.control.checkRule
|
136
|
+
.subscribe(() => {
|
137
|
+
this.checked = this.checkRule(this.control.value);
|
138
|
+
this.hasError = !this.checkRule(this.control.value);
|
139
|
+
});
|
135
140
|
}
|
136
141
|
checkLengthRule(value) {
|
137
142
|
return value.length >= this.min && value.length <= this.max;
|
@@ -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/form-field.module.ts","../../../packages/mosaic/form-field/ptsecurity-mosaic-form-field.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\r\n\r\n\r\n@Component({\r\n selector: 'mc-cleaner',\r\n exportAs: 'mcCleaner',\r\n template: `<i class=\"mc-icon_light\" mc-icon=\"mc-close-circle_16\" [color]=\"themePalette.Second\"></i>`,\r\n host: {\r\n class: 'mc-cleaner'\r\n }\r\n})\r\nexport class McCleaner {\r\n themePalette = ThemePalette;\r\n}\r\n","import { NgControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n/** An interface which allows a control to work inside of a `MсFormField`. */\r\n// tslint:disable-next-line:naming-convention\r\nexport abstract class McFormFieldControl<T> {\r\n /** The value of the control. */\r\n value: T | null;\r\n\r\n /**\r\n * Stream that emits whenever the state of the control changes such that the parent `MсFormField`\r\n * needs to run change detection.\r\n */\r\n readonly stateChanges: Observable<void>;\r\n\r\n /** The element ID for this control. */\r\n readonly id: string;\r\n\r\n /** The placeholder for this control. */\r\n readonly placeholder: string;\r\n\r\n /** Gets the NgControl for this control. */\r\n readonly ngControl: NgControl | null;\r\n\r\n /** Whether the control is focused. */\r\n readonly focused: boolean;\r\n\r\n /** Whether the control is empty. */\r\n readonly empty: boolean;\r\n\r\n /** Whether the control is required. */\r\n readonly required: boolean;\r\n\r\n /** Whether the control is disabled. */\r\n readonly disabled: boolean;\r\n\r\n /** Whether the control is in an error state. */\r\n readonly errorState: boolean;\r\n\r\n /**\r\n * An optional name for the control type that can be used to distinguish `mc-form-field` elements\r\n * based on their control type. The form field will add a class,\r\n * `mc-form-field-type-{{controlType}}` to its root element.\r\n */\r\n readonly controlType?: string;\r\n\r\n /** Handles a click on the control's container. */\r\n abstract onContainerClick(event: MouseEvent): void;\r\n\r\n abstract focus(): void;\r\n}\r\n","export function getMcFormFieldMissingControlError(): Error {\r\n return Error('mc-form-field must contain a McFormFieldControl.');\r\n}\r\n\r\nexport function getMcFormFieldYouCanNotUseCleanerInNumberInputError(): Error {\r\n return Error(`You can't use mc-cleaner with input that have type=\"number\"`);\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\n\r\nlet nextHintUniqueId = 0;\r\n\r\n@Directive({\r\n selector: 'mc-hint',\r\n host: {\r\n class: 'mc-hint',\r\n '[attr.id]': 'id'\r\n }\r\n})\r\nexport class McHint {\r\n @Input() id: string = `mc-hint-${nextHintUniqueId++}`;\r\n}\r\n","import {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n forwardRef,\r\n Inject,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport { McFormField } from './form-field';\r\n\r\n\r\nlet nextPasswordHintUniqueId = 0;\r\n\r\nexport enum PasswordRules {\r\n Length,\r\n UpperLatin,\r\n LowerLatin,\r\n Digit,\r\n LatinAndSpecialSymbols,\r\n Custom\r\n}\r\n\r\nexport const regExpPasswordValidator = {\r\n [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),\r\n [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),\r\n [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),\r\n [PasswordRules.LatinAndSpecialSymbols]: RegExp(/[^ !`\"'#№$%&()*+,-./\\\\:;<=>?@[\\]^_{|}~A-Za-z0-9]/)\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'mc-password-hint',\r\n template: `\r\n <i *ngIf=\"!checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-close-M_16\"></i>\r\n <i *ngIf=\"checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-check_16\"></i>\r\n\r\n <span class=\"mc-password-hint__text\">\r\n <ng-content></ng-content>\r\n </span>\r\n `,\r\n host: {\r\n class: 'mc-password-hint',\r\n '[class.mc-password-hint_valid]': 'checked',\r\n '[class.mc-password-hint_invalid]': 'hasError',\r\n '[attr.id]': 'id'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class McPasswordHint implements AfterContentInit {\r\n @Input() id: string = `mc-hint-${nextPasswordHintUniqueId++}`;\r\n\r\n @Input() rule: PasswordRules | any;\r\n\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() regex: RegExp | null;\r\n\r\n hasError: boolean = false;\r\n checked: boolean = false;\r\n\r\n private checkRule: (value: string) => boolean;\r\n\r\n private get control() {\r\n return this.formField.control;\r\n }\r\n\r\n private lastControlValue: string;\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Inject(forwardRef(() => McFormField)) private formField: McFormField\r\n ) {}\r\n\r\n ngAfterContentInit(): void {\r\n if (this.rule === null) {\r\n throw Error('You should set [rule] name');\r\n }\r\n\r\n if (this.rule === PasswordRules.Custom && this.regex === undefined) {\r\n throw Error('You should set [regex] for PasswordRules.Custom');\r\n }\r\n\r\n if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {\r\n throw Error('For [rule] \"Length\" need set [min] and [max]');\r\n }\r\n\r\n if (this.rule === PasswordRules.Length) {\r\n this.checkRule = this.checkLengthRule;\r\n } else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit].includes(this.rule)) {\r\n this.regex = regExpPasswordValidator[this.rule];\r\n this.checkRule = this.checkRegexRule;\r\n } else if (this.rule === PasswordRules.LatinAndSpecialSymbols) {\r\n this.regex = regExpPasswordValidator[this.rule];\r\n this.checkRule = this.checkSpecialSymbolsRegexRule;\r\n } else if (this.rule === PasswordRules.Custom) {\r\n this.checkRule = this.checkRegexRule;\r\n } else {\r\n throw Error(`Unknown [rule]=${this.rule}`);\r\n }\r\n\r\n this.formField.control.stateChanges\r\n .subscribe(this.checkValue);\r\n }\r\n\r\n private checkValue = () => {\r\n if (this.control.focused && this.isValueChanged()) {\r\n this.hasError = false;\r\n\r\n this.checked = this.checkRule(this.control.value);\r\n } else if (!this.control.focused && !this.isValueChanged()) {\r\n this.hasError = !this.checkRule(this.control.value);\r\n }\r\n\r\n if (!this.control.required && !this.control.value) {\r\n this.checked = this.hasError = false;\r\n }\r\n\r\n this.lastControlValue = this.control.value;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private checkLengthRule(value: string): boolean {\r\n return value.length >= this.min && value.length <= this.max;\r\n }\r\n\r\n private checkRegexRule(value: string): boolean {\r\n return !!this.regex?.test(value);\r\n }\r\n\r\n private checkSpecialSymbolsRegexRule(value: string): boolean {\r\n return !!value && !this.regex?.test(value);\r\n }\r\n\r\n private isValueChanged(): boolean {\r\n return this.lastControlValue !== this.formField.control.value;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[mcPrefix]'\r\n})\r\nexport class McPrefix {}\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'mc-stepper',\r\n template: `\r\n <i class=\"mc mc-icon mc-icon_light mc-second mc-stepper-step-up mc-angle-down-L_16\"\r\n (mousedown)=\"onStepUp($event)\">\r\n </i>\r\n <i class=\"mc mc-icon mc-icon_light mc-second mc-stepper-step-down mc-angle-down-L_16\"\r\n (mousedown)=\"onStepDown($event)\">\r\n </i>\r\n `\r\n})\r\nexport class McStepper {\r\n @Output()\r\n readonly stepUp: EventEmitter<void> = new EventEmitter<void>();\r\n @Output()\r\n readonly stepDown: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n connectTo(numberInput: any) {\r\n if (!numberInput) { return; }\r\n\r\n this.stepUp.subscribe(() => {\r\n numberInput.stepUp(numberInput.step);\r\n });\r\n\r\n this.stepDown.subscribe(() => {\r\n numberInput.stepDown(numberInput.step);\r\n });\r\n }\r\n\r\n onStepUp($event: MouseEvent) {\r\n this.stepUp.emit();\r\n $event.preventDefault();\r\n }\r\n\r\n onStepDown($event: MouseEvent) {\r\n this.stepDown.emit();\r\n $event.preventDefault();\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[mcSuffix]'\r\n})\r\nexport class McSuffix {}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport {\r\n AfterContentChecked,\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n OnDestroy,\r\n QueryList,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { ESCAPE, F8 } from '@ptsecurity/cdk/keycodes';\r\nimport { CanColor, CanColorCtor, mixinColor } from '@ptsecurity/mosaic/core';\r\nimport { EMPTY, merge, Subject } from 'rxjs';\r\nimport { startWith, takeUntil } from 'rxjs/operators';\r\n\r\nimport { McCleaner } from './cleaner';\r\nimport { McFormFieldControl } from './form-field-control';\r\nimport {\r\n getMcFormFieldMissingControlError,\r\n getMcFormFieldYouCanNotUseCleanerInNumberInputError\r\n} from './form-field-errors';\r\nimport { McHint } from './hint';\r\nimport { McPasswordHint } from './password-hint';\r\nimport { McPrefix } from './prefix';\r\nimport { McStepper } from './stepper';\r\nimport { McSuffix } from './suffix';\r\n\r\n\r\nlet nextUniqueId = 0;\r\n\r\nexport class McFormFieldBase {\r\n // tslint:disable-next-line:naming-convention\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport const McFormFieldMixinBase: CanColorCtor & typeof McFormFieldBase = mixinColor(McFormFieldBase);\r\n\r\n@Component({\r\n selector: 'mc-form-field',\r\n exportAs: 'mcFormField',\r\n templateUrl: 'form-field.html',\r\n // McInput is a directive and can't have styles, so we need to include its styles here.\r\n // The McInput styles are fairly minimal so it shouldn't be a big deal for people who\r\n // aren't using McInput.\r\n styleUrls: [\r\n 'form-field.scss',\r\n '../input/input.scss',\r\n '../timepicker/timepicker.scss',\r\n '../datepicker/datepicker-input.scss',\r\n '../textarea/textarea.scss'\r\n ],\r\n host: {\r\n class: 'mc-form-field',\r\n '[class.mc-form-field_invalid]': 'control.errorState',\r\n '[class.mc-form-field_has-prefix]': 'hasPrefix',\r\n '[class.mc-form-field_has-suffix]': 'hasSuffix',\r\n '[class.mc-form-field_has-cleaner]': 'canShowCleaner',\r\n '[class.mc-form-field_has-stepper]': 'canShowStepper',\r\n\r\n '[class.mc-disabled]': 'control.disabled',\r\n\r\n '[class.ng-untouched]': 'shouldForward(\"untouched\")',\r\n '[class.ng-touched]': 'shouldForward(\"touched\")',\r\n '[class.ng-pristine]': 'shouldForward(\"pristine\")',\r\n '[class.ng-dirty]': 'shouldForward(\"dirty\")',\r\n '[class.ng-valid]': 'shouldForward(\"valid\")',\r\n '[class.ng-invalid]': 'shouldForward(\"invalid\")',\r\n '[class.ng-pending]': 'shouldForward(\"pending\")',\r\n\r\n '(keydown)': 'onKeyDown($event)',\r\n '(mouseenter)': 'onHoverChanged(true)',\r\n '(mouseleave)': 'onHoverChanged(false)'\r\n },\r\n inputs: ['color'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class McFormField extends McFormFieldMixinBase implements\r\n AfterContentInit, AfterContentChecked, AfterViewInit, CanColor, OnDestroy {\r\n\r\n @ContentChild(McFormFieldControl, { static: false }) control: McFormFieldControl<any>;\r\n @ContentChild(McStepper, { static: false }) stepper: McStepper;\r\n @ContentChild(McCleaner, { static: false }) cleaner: McCleaner | null;\r\n\r\n @ContentChildren(McHint) hint: QueryList<McHint>;\r\n @ContentChildren(McPasswordHint) passwordHints: QueryList<McPasswordHint>;\r\n @ContentChildren(McSuffix) suffix: QueryList<McSuffix>;\r\n @ContentChildren(McPrefix) prefix: QueryList<McPrefix>;\r\n\r\n @ViewChild('connectionContainer', { static: true }) connectionContainerRef: ElementRef;\r\n\r\n // Unique id for the internal form field label.\r\n labelId = `mc-form-field-label-${nextUniqueId++}`;\r\n\r\n hovered: boolean = false;\r\n\r\n canCleanerClearByEsc: boolean = true;\r\n\r\n private $unsubscribe = new Subject<void>();\r\n\r\n get hasHint(): boolean {\r\n return this.hint?.length > 0;\r\n }\r\n\r\n get hasPasswordStrengthError(): boolean {\r\n return this.passwordHints?.some((hint) => hint.hasError);\r\n }\r\n\r\n get hasSuffix(): boolean {\r\n return this.suffix?.length > 0;\r\n }\r\n\r\n get hasPrefix(): boolean {\r\n return this.prefix?.length > 0;\r\n }\r\n\r\n get hasCleaner(): boolean {\r\n return !!this.cleaner;\r\n }\r\n\r\n get hasStepper(): boolean {\r\n return !!this.stepper;\r\n }\r\n\r\n get canShowCleaner(): boolean {\r\n return this.hasCleaner &&\r\n this.control?.ngControl\r\n ? this.control.ngControl.value && !this.control.disabled\r\n : false;\r\n }\r\n\r\n get disabled(): boolean {\r\n return this.control?.disabled;\r\n }\r\n\r\n get canShowStepper(): boolean {\r\n return this.hasStepper &&\r\n !this.disabled &&\r\n (this.control?.focused || this.hovered);\r\n }\r\n\r\n constructor(\r\n // tslint:disable-next-line:naming-convention\r\n public _elementRef: ElementRef,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private focusMonitor: FocusMonitor\r\n ) {\r\n super(_elementRef);\r\n\r\n this.runFocusMonitor();\r\n }\r\n\r\n ngAfterContentInit() {\r\n if ((this.control as any).numberInput && this.hasCleaner) {\r\n this.cleaner = null;\r\n throw getMcFormFieldYouCanNotUseCleanerInNumberInputError();\r\n }\r\n\r\n this.validateControlChild();\r\n\r\n if (this.control.controlType) {\r\n this._elementRef.nativeElement.classList.add(`mc-form-field-type-${this.control.controlType}`);\r\n }\r\n\r\n // Subscribe to changes in the child control state in order to update the form field UI.\r\n this.control.stateChanges\r\n .pipe(startWith())\r\n .subscribe((state: any) => {\r\n if (!state?.focused && this.hasPasswordStrengthError) {\r\n this.control.ngControl?.control?.setErrors({ passwordStrength: true });\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n if (this.hasStepper) {\r\n this.stepper.connectTo((this.control as any).numberInput);\r\n }\r\n\r\n // Run change detection if the value changes.\r\n const valueChanges = this.control.ngControl?.valueChanges || EMPTY;\r\n\r\n merge(valueChanges)\r\n .pipe(takeUntil(this.$unsubscribe))\r\n .subscribe(() => this._changeDetectorRef.markForCheck());\r\n }\r\n\r\n ngAfterContentChecked() {\r\n this.validateControlChild();\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Avoid animations on load.\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n clearValue($event) {\r\n $event.stopPropagation();\r\n\r\n this.control?.ngControl?.reset();\r\n this.control?.focus();\r\n }\r\n\r\n onContainerClick($event) {\r\n if (this.control.onContainerClick) {\r\n this.control.onContainerClick($event);\r\n }\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent): void {\r\n // tslint:disable-next-line:deprecation\r\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\r\n (this.control as unknown as { toggleType(): void }).toggleType();\r\n }\r\n // tslint:disable-next-line:deprecation\r\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {\r\n this.control?.ngControl?.reset();\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onHoverChanged(isHovered: boolean) {\r\n if (isHovered !== this.hovered) {\r\n this.hovered = isHovered;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n /**\r\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\r\n * positioned relative to.\r\n */\r\n getConnectedOverlayOrigin(): ElementRef {\r\n return this.connectionContainerRef || this._elementRef;\r\n }\r\n\r\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\r\n shouldForward(prop: keyof NgControl): boolean {\r\n const ngControl = this.control ? this.control.ngControl : null;\r\n\r\n return ngControl && ngControl[prop];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.$unsubscribe.next();\r\n this.$unsubscribe.complete();\r\n\r\n this.stopFocusMonitor();\r\n }\r\n\r\n /** Throws an error if the form field's control is missing. */\r\n protected validateControlChild() {\r\n if (!this.control) {\r\n throw getMcFormFieldMissingControlError();\r\n }\r\n }\r\n\r\n private runFocusMonitor() {\r\n this.focusMonitor.monitor(this._elementRef.nativeElement, true);\r\n }\r\n\r\n private stopFocusMonitor() {\r\n this.focusMonitor.stopMonitoring(this._elementRef.nativeElement);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mc-form-field[mcFormFieldWithoutBorders]',\r\n exportAs: 'mcFormFieldWithoutBorders',\r\n host: { class: 'mc-form-field_without-borders' }\r\n})\r\nexport class McFormFieldWithoutBorders {}\r\n","<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\r\n\r\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\r\n <ng-content select=\"[mcPrefix]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"mc-form-field__infix\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\r\n <ng-content select=\"[mcSuffix]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"mc-form-field__cleaner\"\r\n *ngIf=\"canShowCleaner && !hasSuffix\"\r\n (click)=\"clearValue($event)\">\r\n <ng-content select=\"mc-cleaner\"></ng-content>\r\n </div>\r\n\r\n <ng-content select=\"mc-password-toggle\"></ng-content>\r\n\r\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\r\n</div>\r\n\r\n<div class=\"mc-form-field__hint\">\r\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\r\n\r\nimport { McCleaner } from './cleaner';\r\nimport { McFormField, McFormFieldWithoutBorders } from './form-field';\r\nimport { McHint } from './hint';\r\nimport { McPasswordHint } from './password-hint';\r\nimport { McPrefix } from './prefix';\r\nimport { McStepper } from './stepper';\r\nimport { McSuffix } from './suffix';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n McFormField,\r\n McFormFieldWithoutBorders,\r\n McHint,\r\n McPasswordHint,\r\n McPrefix,\r\n McSuffix,\r\n McCleaner,\r\n McStepper\r\n ],\r\n imports: [CommonModule, McIconModule],\r\n exports: [\r\n McFormField,\r\n McFormFieldWithoutBorders,\r\n McHint,\r\n McPasswordHint,\r\n McPrefix,\r\n McSuffix,\r\n McCleaner,\r\n McStepper\r\n ]\r\n})\r\nexport class McFormFieldModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"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/form-field.module.ts","../../../packages/mosaic/form-field/ptsecurity-mosaic-form-field.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\r\n\r\n\r\n@Component({\r\n selector: 'mc-cleaner',\r\n exportAs: 'mcCleaner',\r\n template: `<i class=\"mc-icon_light\" mc-icon=\"mc-close-circle_16\" [color]=\"themePalette.Second\"></i>`,\r\n host: {\r\n class: 'mc-cleaner'\r\n }\r\n})\r\nexport class McCleaner {\r\n themePalette = ThemePalette;\r\n}\r\n","import { NgControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n/** An interface which allows a control to work inside of a `MсFormField`. */\r\n// tslint:disable-next-line:naming-convention\r\nexport abstract class McFormFieldControl<T> {\r\n /** The value of the control. */\r\n value: T | null;\r\n\r\n /**\r\n * Stream that emits whenever the state of the control changes such that the parent `MсFormField`\r\n * needs to run change detection.\r\n */\r\n readonly stateChanges: Observable<void>;\r\n\r\n /** The element ID for this control. */\r\n readonly id: string;\r\n\r\n /** The placeholder for this control. */\r\n readonly placeholder: string;\r\n\r\n /** Gets the NgControl for this control. */\r\n readonly ngControl: NgControl | null;\r\n\r\n /** Whether the control is focused. */\r\n readonly focused: boolean;\r\n\r\n /** Whether the control is empty. */\r\n readonly empty: boolean;\r\n\r\n /** Whether the control is required. */\r\n readonly required: boolean;\r\n\r\n /** Whether the control is disabled. */\r\n readonly disabled: boolean;\r\n\r\n /** Whether the control is in an error state. */\r\n readonly errorState: boolean;\r\n\r\n /**\r\n * An optional name for the control type that can be used to distinguish `mc-form-field` elements\r\n * based on their control type. The form field will add a class,\r\n * `mc-form-field-type-{{controlType}}` to its root element.\r\n */\r\n readonly controlType?: string;\r\n\r\n /** Handles a click on the control's container. */\r\n abstract onContainerClick(event: MouseEvent): void;\r\n\r\n abstract focus(): void;\r\n}\r\n","export function getMcFormFieldMissingControlError(): Error {\r\n return Error('mc-form-field must contain a McFormFieldControl.');\r\n}\r\n\r\nexport function getMcFormFieldYouCanNotUseCleanerInNumberInputError(): Error {\r\n return Error(`You can't use mc-cleaner with input that have type=\"number\"`);\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\n\r\nlet nextHintUniqueId = 0;\r\n\r\n@Directive({\r\n selector: 'mc-hint',\r\n host: {\r\n class: 'mc-hint',\r\n '[attr.id]': 'id'\r\n }\r\n})\r\nexport class McHint {\r\n @Input() id: string = `mc-hint-${nextHintUniqueId++}`;\r\n}\r\n","import {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n forwardRef,\r\n Inject,\r\n Input\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { McFormField } from './form-field';\r\n\r\n\r\nlet nextPasswordHintUniqueId = 0;\r\n\r\nexport enum PasswordRules {\r\n Length,\r\n UpperLatin,\r\n LowerLatin,\r\n Digit,\r\n LatinAndSpecialSymbols,\r\n Custom\r\n}\r\n\r\nexport const regExpPasswordValidator = {\r\n [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),\r\n [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),\r\n [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),\r\n [PasswordRules.LatinAndSpecialSymbols]: RegExp(/[^ !`\"'#№$%&()*+,-./\\\\:;<=>?@[\\]^_{|}~A-Za-z0-9]/)\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'mc-password-hint',\r\n template: `\r\n <i *ngIf=\"!checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-close-M_16\"></i>\r\n <i *ngIf=\"checked\" class=\"mc-password-hint__icon\" mc-icon=\"mc-check_16\"></i>\r\n\r\n <span class=\"mc-password-hint__text\">\r\n <ng-content></ng-content>\r\n </span>\r\n `,\r\n host: {\r\n class: 'mc-password-hint',\r\n '[class.mc-password-hint_valid]': 'checked',\r\n '[class.mc-password-hint_invalid]': 'hasError',\r\n '[attr.id]': 'id'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class McPasswordHint implements AfterContentInit {\r\n @Input() id: string = `mc-hint-${nextPasswordHintUniqueId++}`;\r\n\r\n @Input() rule: PasswordRules | any;\r\n\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() regex: RegExp | null;\r\n\r\n hasError: boolean = false;\r\n checked: boolean = false;\r\n\r\n private checkRule: (value: string) => boolean;\r\n\r\n private get control() {\r\n return this.formField.control;\r\n }\r\n\r\n private lastControlValue: string;\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Inject(forwardRef(() => McFormField)) private formField: McFormField\r\n ) {}\r\n\r\n ngAfterContentInit(): void {\r\n if (this.rule === null) {\r\n throw Error('You should set [rule] name');\r\n }\r\n\r\n if (this.rule === PasswordRules.Custom && this.regex === undefined) {\r\n throw Error('You should set [regex] for PasswordRules.Custom');\r\n }\r\n\r\n if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {\r\n throw Error('For [rule] \"Length\" need set [min] and [max]');\r\n }\r\n\r\n if (this.rule === PasswordRules.Length) {\r\n this.checkRule = this.checkLengthRule;\r\n } else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit].includes(this.rule)) {\r\n this.regex = regExpPasswordValidator[this.rule];\r\n this.checkRule = this.checkRegexRule;\r\n } else if (this.rule === PasswordRules.LatinAndSpecialSymbols) {\r\n this.regex = regExpPasswordValidator[this.rule];\r\n this.checkRule = this.checkSpecialSymbolsRegexRule;\r\n } else if (this.rule === PasswordRules.Custom) {\r\n this.checkRule = this.checkRegexRule;\r\n } else {\r\n throw Error(`Unknown [rule]=${this.rule}`);\r\n }\r\n\r\n this.formField.control.stateChanges\r\n .subscribe(this.checkValue);\r\n\r\n (this.formField.control as unknown as { checkRule: Subject<any> }).checkRule\r\n .subscribe(() => {\r\n this.checked = this.checkRule(this.control.value);\r\n this.hasError = !this.checkRule(this.control.value);\r\n });\r\n }\r\n\r\n private checkValue = () => {\r\n if (this.control.focused && this.isValueChanged()) {\r\n this.hasError = false;\r\n\r\n this.checked = this.checkRule(this.control.value);\r\n } else if (!this.control.focused && !this.isValueChanged()) {\r\n this.hasError = !this.checkRule(this.control.value);\r\n }\r\n\r\n if (!this.control.required && !this.control.value) {\r\n this.checked = this.hasError = false;\r\n }\r\n\r\n this.lastControlValue = this.control.value;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private checkLengthRule(value: string): boolean {\r\n return value.length >= this.min && value.length <= this.max;\r\n }\r\n\r\n private checkRegexRule(value: string): boolean {\r\n return !!this.regex?.test(value);\r\n }\r\n\r\n private checkSpecialSymbolsRegexRule(value: string): boolean {\r\n return !!value && !this.regex?.test(value);\r\n }\r\n\r\n private isValueChanged(): boolean {\r\n return this.lastControlValue !== this.formField.control.value;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[mcPrefix]'\r\n})\r\nexport class McPrefix {}\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'mc-stepper',\r\n template: `\r\n <i class=\"mc mc-icon mc-icon_light mc-second mc-stepper-step-up mc-angle-down-L_16\"\r\n (mousedown)=\"onStepUp($event)\">\r\n </i>\r\n <i class=\"mc mc-icon mc-icon_light mc-second mc-stepper-step-down mc-angle-down-L_16\"\r\n (mousedown)=\"onStepDown($event)\">\r\n </i>\r\n `\r\n})\r\nexport class McStepper {\r\n @Output()\r\n readonly stepUp: EventEmitter<void> = new EventEmitter<void>();\r\n @Output()\r\n readonly stepDown: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n connectTo(numberInput: any) {\r\n if (!numberInput) { return; }\r\n\r\n this.stepUp.subscribe(() => {\r\n numberInput.stepUp(numberInput.step);\r\n });\r\n\r\n this.stepDown.subscribe(() => {\r\n numberInput.stepDown(numberInput.step);\r\n });\r\n }\r\n\r\n onStepUp($event: MouseEvent) {\r\n this.stepUp.emit();\r\n $event.preventDefault();\r\n }\r\n\r\n onStepDown($event: MouseEvent) {\r\n this.stepDown.emit();\r\n $event.preventDefault();\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[mcSuffix]'\r\n})\r\nexport class McSuffix {}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport {\r\n AfterContentChecked,\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n OnDestroy,\r\n QueryList,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { ESCAPE, F8 } from '@ptsecurity/cdk/keycodes';\r\nimport { CanColor, CanColorCtor, mixinColor } from '@ptsecurity/mosaic/core';\r\nimport { EMPTY, merge, Subject } from 'rxjs';\r\nimport { startWith, takeUntil } from 'rxjs/operators';\r\n\r\nimport { McCleaner } from './cleaner';\r\nimport { McFormFieldControl } from './form-field-control';\r\nimport {\r\n getMcFormFieldMissingControlError,\r\n getMcFormFieldYouCanNotUseCleanerInNumberInputError\r\n} from './form-field-errors';\r\nimport { McHint } from './hint';\r\nimport { McPasswordHint } from './password-hint';\r\nimport { McPrefix } from './prefix';\r\nimport { McStepper } from './stepper';\r\nimport { McSuffix } from './suffix';\r\n\r\n\r\nlet nextUniqueId = 0;\r\n\r\nexport class McFormFieldBase {\r\n // tslint:disable-next-line:naming-convention\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport const McFormFieldMixinBase: CanColorCtor & typeof McFormFieldBase = mixinColor(McFormFieldBase);\r\n\r\n@Component({\r\n selector: 'mc-form-field',\r\n exportAs: 'mcFormField',\r\n templateUrl: 'form-field.html',\r\n // McInput is a directive and can't have styles, so we need to include its styles here.\r\n // The McInput styles are fairly minimal so it shouldn't be a big deal for people who\r\n // aren't using McInput.\r\n styleUrls: [\r\n 'form-field.scss',\r\n '../input/input.scss',\r\n '../timepicker/timepicker.scss',\r\n '../datepicker/datepicker-input.scss',\r\n '../textarea/textarea.scss'\r\n ],\r\n host: {\r\n class: 'mc-form-field',\r\n '[class.mc-form-field_invalid]': 'control.errorState',\r\n '[class.mc-form-field_has-prefix]': 'hasPrefix',\r\n '[class.mc-form-field_has-suffix]': 'hasSuffix',\r\n '[class.mc-form-field_has-cleaner]': 'canShowCleaner',\r\n '[class.mc-form-field_has-stepper]': 'canShowStepper',\r\n\r\n '[class.mc-disabled]': 'control.disabled',\r\n\r\n '[class.ng-untouched]': 'shouldForward(\"untouched\")',\r\n '[class.ng-touched]': 'shouldForward(\"touched\")',\r\n '[class.ng-pristine]': 'shouldForward(\"pristine\")',\r\n '[class.ng-dirty]': 'shouldForward(\"dirty\")',\r\n '[class.ng-valid]': 'shouldForward(\"valid\")',\r\n '[class.ng-invalid]': 'shouldForward(\"invalid\")',\r\n '[class.ng-pending]': 'shouldForward(\"pending\")',\r\n\r\n '(keydown)': 'onKeyDown($event)',\r\n '(mouseenter)': 'onHoverChanged(true)',\r\n '(mouseleave)': 'onHoverChanged(false)'\r\n },\r\n inputs: ['color'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class McFormField extends McFormFieldMixinBase implements\r\n AfterContentInit, AfterContentChecked, AfterViewInit, CanColor, OnDestroy {\r\n\r\n @ContentChild(McFormFieldControl, { static: false }) control: McFormFieldControl<any>;\r\n @ContentChild(McStepper, { static: false }) stepper: McStepper;\r\n @ContentChild(McCleaner, { static: false }) cleaner: McCleaner | null;\r\n\r\n @ContentChildren(McHint) hint: QueryList<McHint>;\r\n @ContentChildren(McPasswordHint) passwordHints: QueryList<McPasswordHint>;\r\n @ContentChildren(McSuffix) suffix: QueryList<McSuffix>;\r\n @ContentChildren(McPrefix) prefix: QueryList<McPrefix>;\r\n\r\n @ViewChild('connectionContainer', { static: true }) connectionContainerRef: ElementRef;\r\n\r\n // Unique id for the internal form field label.\r\n labelId = `mc-form-field-label-${nextUniqueId++}`;\r\n\r\n hovered: boolean = false;\r\n\r\n canCleanerClearByEsc: boolean = true;\r\n\r\n private $unsubscribe = new Subject<void>();\r\n\r\n get hasHint(): boolean {\r\n return this.hint?.length > 0;\r\n }\r\n\r\n get hasPasswordStrengthError(): boolean {\r\n return this.passwordHints?.some((hint) => hint.hasError);\r\n }\r\n\r\n get hasSuffix(): boolean {\r\n return this.suffix?.length > 0;\r\n }\r\n\r\n get hasPrefix(): boolean {\r\n return this.prefix?.length > 0;\r\n }\r\n\r\n get hasCleaner(): boolean {\r\n return !!this.cleaner;\r\n }\r\n\r\n get hasStepper(): boolean {\r\n return !!this.stepper;\r\n }\r\n\r\n get canShowCleaner(): boolean {\r\n return this.hasCleaner &&\r\n this.control?.ngControl\r\n ? this.control.ngControl.value && !this.control.disabled\r\n : false;\r\n }\r\n\r\n get disabled(): boolean {\r\n return this.control?.disabled;\r\n }\r\n\r\n get canShowStepper(): boolean {\r\n return this.hasStepper &&\r\n !this.disabled &&\r\n (this.control?.focused || this.hovered);\r\n }\r\n\r\n constructor(\r\n // tslint:disable-next-line:naming-convention\r\n public _elementRef: ElementRef,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private focusMonitor: FocusMonitor\r\n ) {\r\n super(_elementRef);\r\n\r\n this.runFocusMonitor();\r\n }\r\n\r\n ngAfterContentInit() {\r\n if ((this.control as any).numberInput && this.hasCleaner) {\r\n this.cleaner = null;\r\n throw getMcFormFieldYouCanNotUseCleanerInNumberInputError();\r\n }\r\n\r\n this.validateControlChild();\r\n\r\n if (this.control.controlType) {\r\n this._elementRef.nativeElement.classList.add(`mc-form-field-type-${this.control.controlType}`);\r\n }\r\n\r\n // Subscribe to changes in the child control state in order to update the form field UI.\r\n this.control.stateChanges\r\n .pipe(startWith())\r\n .subscribe((state: any) => {\r\n if (!state?.focused && this.hasPasswordStrengthError) {\r\n this.control.ngControl?.control?.setErrors({ passwordStrength: true });\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n if (this.hasStepper) {\r\n this.stepper.connectTo((this.control as any).numberInput);\r\n }\r\n\r\n // Run change detection if the value changes.\r\n const valueChanges = this.control.ngControl?.valueChanges || EMPTY;\r\n\r\n merge(valueChanges)\r\n .pipe(takeUntil(this.$unsubscribe))\r\n .subscribe(() => this._changeDetectorRef.markForCheck());\r\n }\r\n\r\n ngAfterContentChecked() {\r\n this.validateControlChild();\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Avoid animations on load.\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n clearValue($event) {\r\n $event.stopPropagation();\r\n\r\n this.control?.ngControl?.reset();\r\n this.control?.focus();\r\n }\r\n\r\n onContainerClick($event) {\r\n if (this.control.onContainerClick) {\r\n this.control.onContainerClick($event);\r\n }\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent): void {\r\n // tslint:disable-next-line:deprecation\r\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\r\n (this.control as unknown as { toggleType(): void }).toggleType();\r\n }\r\n // tslint:disable-next-line:deprecation\r\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {\r\n this.control?.ngControl?.reset();\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onHoverChanged(isHovered: boolean) {\r\n if (isHovered !== this.hovered) {\r\n this.hovered = isHovered;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n /**\r\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\r\n * positioned relative to.\r\n */\r\n getConnectedOverlayOrigin(): ElementRef {\r\n return this.connectionContainerRef || this._elementRef;\r\n }\r\n\r\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\r\n shouldForward(prop: keyof NgControl): boolean {\r\n const ngControl = this.control ? this.control.ngControl : null;\r\n\r\n return ngControl && ngControl[prop];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.$unsubscribe.next();\r\n this.$unsubscribe.complete();\r\n\r\n this.stopFocusMonitor();\r\n }\r\n\r\n /** Throws an error if the form field's control is missing. */\r\n protected validateControlChild() {\r\n if (!this.control) {\r\n throw getMcFormFieldMissingControlError();\r\n }\r\n }\r\n\r\n private runFocusMonitor() {\r\n this.focusMonitor.monitor(this._elementRef.nativeElement, true);\r\n }\r\n\r\n private stopFocusMonitor() {\r\n this.focusMonitor.stopMonitoring(this._elementRef.nativeElement);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mc-form-field[mcFormFieldWithoutBorders]',\r\n exportAs: 'mcFormFieldWithoutBorders',\r\n host: { class: 'mc-form-field_without-borders' }\r\n})\r\nexport class McFormFieldWithoutBorders {}\r\n","<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\r\n\r\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\r\n <ng-content select=\"[mcPrefix]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"mc-form-field__infix\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\r\n <ng-content select=\"[mcSuffix]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"mc-form-field__cleaner\"\r\n *ngIf=\"canShowCleaner && !hasSuffix\"\r\n (click)=\"clearValue($event)\">\r\n <ng-content select=\"mc-cleaner\"></ng-content>\r\n </div>\r\n\r\n <ng-content select=\"mc-password-toggle\"></ng-content>\r\n\r\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\r\n</div>\r\n\r\n<div class=\"mc-form-field__hint\">\r\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\r\n\r\nimport { McCleaner } from './cleaner';\r\nimport { McFormField, McFormFieldWithoutBorders } from './form-field';\r\nimport { McHint } from './hint';\r\nimport { McPasswordHint } from './password-hint';\r\nimport { McPrefix } from './prefix';\r\nimport { McStepper } from './stepper';\r\nimport { McSuffix } from './suffix';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n McFormField,\r\n McFormFieldWithoutBorders,\r\n McHint,\r\n McPasswordHint,\r\n McPrefix,\r\n McSuffix,\r\n McCleaner,\r\n McStepper\r\n ],\r\n imports: [CommonModule, McIconModule],\r\n exports: [\r\n McFormField,\r\n McFormFieldWithoutBorders,\r\n McHint,\r\n McPasswordHint,\r\n McPrefix,\r\n McSuffix,\r\n McCleaner,\r\n McStepper\r\n ]\r\n})\r\nexport class McFormFieldModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
@@ -714,6 +714,7 @@ class McInputPassword extends McInputMixinBase {
|
|
714
714
|
* @docs-private
|
715
715
|
*/
|
716
716
|
this.stateChanges = new Subject();
|
717
|
+
this.checkRule = new Subject();
|
717
718
|
/**
|
718
719
|
* Implemented as part of McFormFieldControl.
|
719
720
|
* @docs-private
|
@@ -785,6 +786,13 @@ class McInputPassword extends McInputMixinBase {
|
|
785
786
|
this._inputValueAccessor.value = value;
|
786
787
|
this.stateChanges.next();
|
787
788
|
}
|
789
|
+
/**
|
790
|
+
* Implemented as part of McFormFieldControl.
|
791
|
+
* @docs-private
|
792
|
+
*/
|
793
|
+
get empty() {
|
794
|
+
return !this.elementRef.nativeElement.value && !this.isBadInput();
|
795
|
+
}
|
788
796
|
ngAfterContentInit() {
|
789
797
|
if (!this.ngControl) {
|
790
798
|
return;
|
@@ -811,6 +819,9 @@ class McInputPassword extends McInputMixinBase {
|
|
811
819
|
// updating the value using `emitEvent: false`).
|
812
820
|
this.dirtyCheckNativeValue();
|
813
821
|
}
|
822
|
+
checkRules() {
|
823
|
+
this.checkRule.next();
|
824
|
+
}
|
814
825
|
toggleType() {
|
815
826
|
this.elementType = this.elementType === 'password' ? 'text' : 'password';
|
816
827
|
}
|
@@ -844,13 +855,6 @@ class McInputPassword extends McInputMixinBase {
|
|
844
855
|
// Listening to the input event wouldn't be necessary when the input is using the
|
845
856
|
// FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
|
846
857
|
}
|
847
|
-
/**
|
848
|
-
* Implemented as part of McFormFieldControl.
|
849
|
-
* @docs-private
|
850
|
-
*/
|
851
|
-
get empty() {
|
852
|
-
return !this.elementRef.nativeElement.value && !this.isBadInput();
|
853
|
-
}
|
854
858
|
/**
|
855
859
|
* Implemented as part of McFormFieldControl.
|
856
860
|
* @docs-private
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-input.mjs","sources":["../../../packages/mosaic/input/input-errors.ts","../../../packages/mosaic/input/input-value-accessor.ts","../../../packages/mosaic/input/input-number.ts","../../../packages/mosaic/input/input.ts","../../../packages/mosaic/input/input-number-validators.ts","../../../packages/mosaic/input/input-password.ts","../../../packages/mosaic/input/input.module.ts","../../../packages/mosaic/input/ptsecurity-mosaic-input.ts"],"sourcesContent":["export function getMcInputUnsupportedTypeError(inputType: string): Error {\r\n return Error(`Input type \"${inputType}\" isn't supported by mcInput.`);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n\r\nexport const MC_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('MC_INPUT_VALUE_ACCESSOR');\r\n","import {\r\n Attribute,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n Optional,\r\n Self\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport {\r\n END, C, V, X, A, Z, DELETE, BACKSPACE, TAB, ENTER,\r\n ESCAPE, ZERO, NINE, NUMPAD_ZERO, NUMPAD_NINE, NUMPAD_MINUS, DASH,\r\n FF_MINUS, LEFT_ARROW, RIGHT_ARROW, HOME, UP_ARROW, DOWN_ARROW, F1, F12\r\n} from '@ptsecurity/cdk/keycodes';\r\nimport { Subject } from 'rxjs';\r\n\r\n\r\nexport const BIG_STEP = 10;\r\nexport const SMALL_STEP = 1;\r\n\r\nexport function normalizeSplitter(value: string): string {\r\n return value ? value.replace(/,/g, '.') : value;\r\n}\r\n\r\nexport function isFloat(value: string): boolean {\r\n return /^-?\\d+\\.\\d+$/.test(value);\r\n}\r\n\r\nexport function isInt(value: string): boolean {\r\n return /^-?\\d+$/.test(value);\r\n}\r\n\r\nexport function isDigit(value: string): boolean {\r\n return isFloat(value) || isInt(value);\r\n}\r\n\r\nexport function getPrecision(value: number): number {\r\n const arr = value.toString().split('.');\r\n\r\n return arr.length === 1\r\n ? 1\r\n // tslint:disable-next-line:no-magic-numbers\r\n : Math.pow(10, arr[1].length);\r\n}\r\n\r\nexport function add(value1: number, value2: number): number {\r\n const precision = Math.max(getPrecision(value1), getPrecision(value2));\r\n\r\n return (value1 * precision + value2 * precision) / precision;\r\n}\r\n\r\n\r\n@Directive({\r\n selector: `input[mcInput][type=\"number\"]`,\r\n exportAs: 'mcNumericalInput',\r\n host: {\r\n '(blur)': 'focusChanged(false)',\r\n '(focus)': 'focusChanged(true)',\r\n '(paste)': 'onPaste($event)',\r\n '(keydown)': 'onKeyDown($event)'\r\n }\r\n})\r\nexport class McNumberInput {\r\n @Input()\r\n bigStep: number;\r\n\r\n @Input()\r\n step: number;\r\n\r\n @Input()\r\n min: number;\r\n\r\n @Input()\r\n max: number;\r\n\r\n value: any;\r\n\r\n focused: boolean = false;\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n\r\n get nativeElement(): HTMLInputElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n @Optional() @Self() private ngControl: NgControl,\r\n @Attribute('step') step: string,\r\n @Attribute('big-step') bigStep: string,\r\n @Attribute('min') min: string,\r\n @Attribute('max') max: string\r\n ) {\r\n this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;\r\n this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;\r\n this.min = isDigit(min) ? parseFloat(min) : -Infinity;\r\n this.max = isDigit(max) ? parseFloat(max) : Infinity;\r\n\r\n if ('valueAsNumber' in this.nativeElement) {\r\n Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {\r\n // tslint:disable-next-line:no-reserved-keywords\r\n get() {\r\n const res = parseFloat(normalizeSplitter(this.value));\r\n\r\n return isNaN(res) ? null : res;\r\n }\r\n });\r\n }\r\n }\r\n\r\n focusChanged(isFocused: boolean) {\r\n if (isFocused !== this.focused) {\r\n this.focused = isFocused;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n // tslint:disable-next-line:deprecation\r\n const keyCode = event.keyCode;\r\n\r\n const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);\r\n const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);\r\n const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);\r\n const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);\r\n const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);\r\n\r\n const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;\r\n\r\n const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||\r\n (e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);\r\n\r\n const isPeriod = (e) => e.key === '.' || e.key === ',';\r\n\r\n const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];\r\n const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];\r\n const arrows = [LEFT_ARROW, RIGHT_ARROW];\r\n const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);\r\n\r\n if (allowedKeys.indexOf(keyCode) !== -1 ||\r\n isCtrlA(event) ||\r\n isCtrlC(event) ||\r\n isCtrlV(event) ||\r\n isCtrlX(event) ||\r\n isCtrlZ(event) ||\r\n isFKey(event) ||\r\n isPeriod(event)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is not a number and stop the keypress\r\n if (event.shiftKey || !isNumber(event)) {\r\n event.preventDefault();\r\n\r\n // process steps\r\n const step = event.shiftKey ? this.bigStep : this.step;\r\n\r\n if (keyCode === UP_ARROW) {\r\n this.stepUp(step);\r\n }\r\n\r\n if (keyCode === DOWN_ARROW) {\r\n this.stepDown(step);\r\n }\r\n }\r\n }\r\n\r\n onPaste(event) {\r\n if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n stepUp(step: number) {\r\n this.elementRef.nativeElement.focus();\r\n\r\n const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);\r\n\r\n this.nativeElement.value = res.toString();\r\n\r\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\r\n }\r\n\r\n stepDown(step: number) {\r\n this.elementRef.nativeElement.focus();\r\n\r\n const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);\r\n\r\n this.nativeElement.value = res.toString();\r\n\r\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\r\n }\r\n\r\n private viewToModelUpdate(value: number) {\r\n if (this.ngControl) {\r\n this.ngControl.control!.setValue(value);\r\n }\r\n }\r\n}\r\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectorRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Self\r\n} from '@angular/core';\r\nimport {\r\n FormControlName,\r\n FormGroupDirective,\r\n NG_VALIDATORS,\r\n NgControl,\r\n NgForm,\r\n NgModel,\r\n Validator\r\n} from '@angular/forms';\r\nimport {\r\n CanUpdateErrorState,\r\n CanUpdateErrorStateCtor,\r\n ErrorStateMatcher,\r\n MC_VALIDATION,\r\n McValidationOptions,\r\n mixinErrorState,\r\n setMosaicValidation\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { getMcInputUnsupportedTypeError } from './input-errors';\r\nimport { McNumberInput } from './input-number';\r\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\r\n\r\n\r\nconst MC_INPUT_INVALID_TYPES = [\r\n 'button',\r\n 'checkbox',\r\n 'file',\r\n 'hidden',\r\n 'image',\r\n 'radio',\r\n 'range',\r\n 'reset',\r\n 'submit'\r\n];\r\n\r\nlet nextUniqueId = 0;\r\n\r\nexport class McInputBase {\r\n constructor(\r\n public defaultErrorStateMatcher: ErrorStateMatcher,\r\n public parentForm: NgForm,\r\n public parentFormGroup: FormGroupDirective,\r\n public ngControl: NgControl\r\n ) {}\r\n}\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport const McInputMixinBase: CanUpdateErrorStateCtor & typeof McInputBase = mixinErrorState(McInputBase);\r\n\r\n\r\n@Directive({\r\n selector: `input[mcInput]`,\r\n exportAs: 'mcInput',\r\n host: {\r\n class: 'mc-input',\r\n // Native input properties that are overwritten by Angular inputs need to be synced with\r\n // the native input element. Otherwise property bindings for those don't work.\r\n '[attr.id]': 'id',\r\n '[attr.placeholder]': 'placeholder',\r\n '[attr.disabled]': 'disabled || null',\r\n '[required]': 'required',\r\n '(blur)': 'onBlur()',\r\n '(focus)': 'focusChanged(true)',\r\n '(input)': 'onInput()'\r\n },\r\n providers: [{\r\n provide: McFormFieldControl, useExisting: McInput\r\n }]\r\n})\r\nexport class McInput extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\r\n CanUpdateErrorState, AfterContentInit, OnChanges {\r\n\r\n /** An object used to control when error messages are shown. */\r\n @Input() errorStateMatcher: ErrorStateMatcher;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n focused: boolean = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n controlType: string = 'input';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input() placeholder: string;\r\n\r\n protected uid = `mc-input-${nextUniqueId++}`;\r\n protected previousNativeValue: any;\r\n protected neverEmptyInputTypes = [\r\n 'date',\r\n 'datetime',\r\n 'datetime-local',\r\n 'month',\r\n 'time',\r\n 'week'\r\n ].filter((t) => getSupportedInputTypes().has(t));\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl && this.ngControl.disabled !== null) {\r\n return this.ngControl.disabled;\r\n }\r\n\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n // Browsers may not fire the blur event if the input is disabled too quickly.\r\n // Reset from here to ensure that the element doesn't become stuck.\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || this.uid;\r\n }\r\n\r\n private _id: string;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n private _required = false;\r\n\r\n // tslint:disable no-reserved-keywords\r\n /** Input type of the element. */\r\n @Input()\r\n get type(): string {\r\n return this._type;\r\n }\r\n\r\n set type(value: string) {\r\n this._type = value || 'text';\r\n this.validateType();\r\n\r\n // When using Angular inputs, developers are no longer able to set the properties on the native\r\n // input element. To ensure that bindings for `type` work, we need to sync the setter\r\n // with the native property. Textarea elements don't support the type property or attribute.\r\n if (getSupportedInputTypes().has(this._type)) {\r\n this.elementRef.nativeElement.type = this._type;\r\n }\r\n }\r\n // tslint:enable no-reserved-keywords\r\n\r\n private _type = 'text';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get value(): string {\r\n return this._inputValueAccessor.value;\r\n }\r\n\r\n set value(value: string) {\r\n if (value !== this.value) {\r\n this._inputValueAccessor.value = value;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: orthodox-getter-and-setter\r\n private _inputValueAccessor: { value: any };\r\n\r\n // tslint:disable-next-line: naming-convention\r\n constructor(\r\n protected elementRef: ElementRef,\r\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\r\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\r\n @Optional() @Self() ngControl: NgControl,\r\n @Optional() @Self() public numberInput: McNumberInput,\r\n @Optional() @Self() public ngModel: NgModel,\r\n @Optional() @Self() public formControlName: FormControlName,\r\n @Optional() parentForm: NgForm,\r\n @Optional() parentFormGroup: FormGroupDirective,\r\n defaultErrorStateMatcher: ErrorStateMatcher,\r\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\r\n\r\n // If no input value accessor was explicitly specified, use the element as the input value\r\n // accessor.\r\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\r\n\r\n this.previousNativeValue = this.value;\r\n\r\n // Force setter to be called in case id was not specified.\r\n this.id = this.id;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (!this.ngControl) { return; }\r\n\r\n if (this.mcValidation.useValidation) {\r\n setMosaicValidation(this, this.changeDetectorRef);\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.stateChanges.next();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stateChanges.complete();\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.ngControl) {\r\n // We need to re-evaluate this on every change detection cycle, because there are some\r\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\r\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\r\n this.updateErrorState();\r\n }\r\n\r\n // We need to dirty-check the native element's value, because there are some cases where\r\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\r\n // updating the value using `emitEvent: false`).\r\n this.dirtyCheckNativeValue();\r\n }\r\n\r\n /** Focuses the input. */\r\n focus(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n onBlur(): void {\r\n this.focusChanged(false);\r\n\r\n if (this.ngControl && this.ngControl.control) {\r\n const control = this.ngControl.control;\r\n\r\n control.updateValueAndValidity({ emitEvent: false });\r\n (control.statusChanges as EventEmitter<string>).emit(control.status);\r\n }\r\n }\r\n\r\n /** Callback for the cases where the focused state of the input changes. */\r\n focusChanged(isFocused: boolean) {\r\n if (isFocused !== this.focused) {\r\n this.focused = isFocused;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onInput() {\r\n // This is a noop function and is used to let Angular know whenever the value changes.\r\n // Angular will run a new change detection each time the `input` event has been dispatched.\r\n // It's necessary that Angular recognizes the value change, because when floatingLabel\r\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\r\n // value changes and will not disappear.\r\n // Listening to the input event wouldn't be necessary when the input is using the\r\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n get empty(): boolean {\r\n return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n onContainerClick() {\r\n this.focus();\r\n }\r\n\r\n /** Does some manual dirty checking on the native input `value` property. */\r\n protected dirtyCheckNativeValue() {\r\n const newValue = this.value;\r\n\r\n if (this.previousNativeValue !== newValue) {\r\n this.previousNativeValue = newValue;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n /** Make sure the input is a supported type. */\r\n protected validateType() {\r\n if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\r\n throw getMcInputUnsupportedTypeError(this._type);\r\n }\r\n }\r\n\r\n /** Checks whether the input type is one of the types that are never empty. */\r\n protected isNeverEmpty() {\r\n return this.neverEmptyInputTypes.indexOf(this._type) > -1;\r\n }\r\n\r\n /** Checks whether the input is invalid based on the native validation. */\r\n protected isBadInput() {\r\n // The `validity` property won't be present on platform-server.\r\n const validity = (this.elementRef.nativeElement as HTMLInputElement).validity;\r\n\r\n return validity && validity.badInput;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'input[mcInputMonospace]',\r\n exportAs: 'McInputMonospace',\r\n host: { class: 'mc-input_monospace' }\r\n})\r\nexport class McInputMono {}\r\n","import { Directive, forwardRef, Input, OnChanges, Provider, SimpleChanges } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\r\n\r\n\r\nexport const MIN_VALIDATOR: Provider = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MinValidator),\r\n multi: true\r\n};\r\n\r\n/**\r\n * A directive which installs the {@link MinValidator} for any `formControlName`,\r\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\r\n *\r\n * @experimental\r\n */\r\n@Directive({\r\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\r\n providers: [MIN_VALIDATOR],\r\n host: {\r\n '[attr.min]': 'min ? min : null'\r\n }\r\n})\r\nexport class MinValidator implements Validator, OnChanges {\r\n\r\n @Input() min: number;\r\n private validator: ValidatorFn;\r\n private onChange: () => void;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('min' in changes) {\r\n this.createValidator();\r\n\r\n if (this.onChange) { this.onChange(); }\r\n }\r\n }\r\n\r\n validate(c: AbstractControl): ValidationErrors | null {\r\n return this.validator(c);\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n private createValidator(): void {\r\n this.validator = Validators.min(parseInt(this.min as unknown as string, 10));\r\n }\r\n}\r\n\r\n\r\nexport const MAX_VALIDATOR: Provider = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MaxValidator),\r\n multi: true\r\n};\r\n\r\n/**\r\n * A directive which installs the {@link MaxValidator} for any `formControlName`,\r\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\r\n *\r\n * @experimental\r\n */\r\n@Directive({\r\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\r\n providers: [MAX_VALIDATOR],\r\n host: {\r\n '[attr.max]': 'max ? max : null'\r\n }\r\n})\r\nexport class MaxValidator implements Validator,\r\n OnChanges {\r\n\r\n @Input() max: number | string;\r\n private validator: ValidatorFn;\r\n private onChange: () => void;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('max' in changes) {\r\n this.createValidator();\r\n\r\n if (this.onChange) { this.onChange(); }\r\n }\r\n }\r\n\r\n validate(c: AbstractControl): ValidationErrors | null {\r\n return this.validator(c);\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n private createValidator(): void {\r\n this.validator = Validators.max(parseInt(this.max as unknown as string, 10));\r\n }\r\n}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\r\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Self,\r\n TemplateRef,\r\n ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n FormControlName,\r\n FormGroupDirective,\r\n NG_VALIDATORS,\r\n NgControl,\r\n NgForm,\r\n NgModel,\r\n Validator\r\n} from '@angular/forms';\r\nimport {\r\n CanUpdateErrorState,\r\n ErrorStateMatcher,\r\n MC_VALIDATION,\r\n McValidationOptions,\r\n PopUpTriggers,\r\n setMosaicValidation\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\r\nimport { MC_TOOLTIP_SCROLL_STRATEGY, McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { McInputMixinBase } from './input';\r\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\r\n\r\n\r\nlet nextUniqueId = 0;\r\n\r\n\r\n@Component({\r\n selector: `mc-password-toggle`,\r\n exportAs: 'mcPasswordToggle',\r\n template: '<ng-content></ng-content>',\r\n host: {\r\n class: 'mc-password-toggle mc',\r\n '[class.mc-eye_16]': 'hidden',\r\n '[class.mc-eye-crossed_16]': '!hidden',\r\n\r\n '[attr.tabindex]': 'disabled ? null : tabIndex',\r\n '[attr.disabled]': 'disabled || null',\r\n\r\n '(click)': 'toggle()',\r\n '(keydown.ENTER)': 'toggle()',\r\n '(keydown.SPACE)': 'toggle()'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class McPasswordToggle extends McTooltipTrigger implements OnDestroy {\r\n @Input('mcTooltipNotHidden')\r\n get content(): string | TemplateRef<any> {\r\n return (this.formField.control as McInputPassword).elementType === 'password' ?\r\n this.mcTooltipHidden :\r\n this._content;\r\n }\r\n\r\n set content(content: string | TemplateRef<any>) {\r\n this._content = content;\r\n\r\n this.updateData();\r\n }\r\n\r\n @Input() mcTooltipHidden: string | TemplateRef<any>;\r\n\r\n @Input()\r\n get disabled() {\r\n return this._disabled === undefined ? this.formField.disabled : this._disabled;\r\n }\r\n\r\n set disabled(value: any) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\r\n }\r\n\r\n // tslint:disable-next-line:naming-convention\r\n protected _disabled: boolean;\r\n\r\n @Input()\r\n get tabIndex(): number {\r\n return this.disabled ? -1 : this._tabIndex;\r\n }\r\n\r\n set tabIndex(value: number) {\r\n // If the specified tabIndex value is null or undefined, fall back to the default value.\r\n this._tabIndex = value != null ? coerceNumberProperty(value) : 0;\r\n }\r\n\r\n private _tabIndex: number = 0;\r\n\r\n get hidden(): boolean {\r\n return (this.formField.control as McInputPassword).elementType === 'password';\r\n }\r\n\r\n constructor(\r\n overlay: Overlay,\r\n elementRef: ElementRef,\r\n ngZone: NgZone,\r\n scrollDispatcher: ScrollDispatcher,\r\n hostView: ViewContainerRef,\r\n @Inject(MC_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\r\n @Optional() direction: Directionality,\r\n\r\n private focusMonitor: FocusMonitor,\r\n private formField: McFormField\r\n ) {\r\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\r\n\r\n this.trigger = `${PopUpTriggers.Hover}`;\r\n\r\n this.runFocusMonitor();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopFocusMonitor();\r\n }\r\n\r\n toggle() {\r\n if (this.disabled) { return; }\r\n\r\n this.hide();\r\n\r\n const input = this.formField.control as McInputPassword;\r\n\r\n input.toggleType();\r\n\r\n this.updateData();\r\n }\r\n\r\n private runFocusMonitor() {\r\n this.focusMonitor.monitor(this.elementRef)\r\n .subscribe((origin) => {\r\n if (origin === 'keyboard') {\r\n this.show();\r\n } else if (origin === null) {\r\n this.hide();\r\n }\r\n });\r\n }\r\n\r\n private stopFocusMonitor() {\r\n this.focusMonitor.stopMonitoring(this.elementRef);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: `input[mcInputPassword]`,\r\n exportAs: 'mcInputPassword',\r\n host: {\r\n class: 'mc-input mc-input-password',\r\n // Native input properties that are overwritten by Angular inputs need to be synced with\r\n // the native input element. Otherwise property bindings for those don't work.\r\n '[attr.id]': 'id',\r\n '[attr.type]': 'elementType',\r\n '[attr.placeholder]': 'placeholder',\r\n '[attr.disabled]': 'disabled || null',\r\n '[required]': 'required',\r\n\r\n '(blur)': 'onBlur()',\r\n '(focus)': 'focusChanged(true)',\r\n '(input)': 'onInput()'\r\n },\r\n providers: [{\r\n provide: McFormFieldControl, useExisting: McInputPassword\r\n }]\r\n})\r\nexport class McInputPassword extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\r\n CanUpdateErrorState, AfterContentInit, OnChanges {\r\n\r\n /** An object used to control when error messages are shown. */\r\n @Input() errorStateMatcher: ErrorStateMatcher;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n focused: boolean = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n readonly stateChanges: Subject<any> = new Subject<any>();\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n controlType: string = 'input-password';\r\n\r\n elementType: string = 'password';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input() placeholder: string;\r\n\r\n protected uid = `mc-input-${nextUniqueId++}`;\r\n protected previousNativeValue: any;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl?.disabled !== null) {\r\n return this.ngControl.disabled;\r\n }\r\n\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n // Browsers may not fire the blur event if the input is disabled too quickly.\r\n // Reset from here to ensure that the element doesn't become stuck.\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || this.uid;\r\n }\r\n\r\n private _id: string;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n private _required = false;\r\n\r\n // this.elementRef.nativeElement.type = this._type;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get value(): string {\r\n return this._inputValueAccessor.value;\r\n }\r\n\r\n set value(value: string) {\r\n if (value === this.value) { return; }\r\n\r\n this._inputValueAccessor.value = value;\r\n this.stateChanges.next();\r\n }\r\n\r\n // tslint:disable-next-line: orthodox-getter-and-setter\r\n private _inputValueAccessor: { value: any };\r\n\r\n // tslint:disable-next-line: naming-convention\r\n constructor(\r\n protected elementRef: ElementRef,\r\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\r\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\r\n @Optional() @Self() ngControl: NgControl,\r\n @Optional() @Self() public ngModel: NgModel,\r\n @Optional() @Self() public formControlName: FormControlName,\r\n @Optional() parentForm: NgForm,\r\n @Optional() parentFormGroup: FormGroupDirective,\r\n defaultErrorStateMatcher: ErrorStateMatcher,\r\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\r\n\r\n // If no input value accessor was explicitly specified, use the element as the input value\r\n // accessor.\r\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\r\n\r\n this.previousNativeValue = this.value;\r\n\r\n // Force setter to be called in case id was not specified.\r\n this.id = this.id;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (!this.ngControl) { return; }\r\n\r\n if (this.mcValidation.useValidation) {\r\n setMosaicValidation(this, this.changeDetectorRef);\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.stateChanges.next();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stateChanges.complete();\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.ngControl) {\r\n // We need to re-evaluate this on every change detection cycle, because there are some\r\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\r\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\r\n this.updateErrorState();\r\n }\r\n\r\n // We need to dirty-check the native element's value, because there are some cases where\r\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\r\n // updating the value using `emitEvent: false`).\r\n this.dirtyCheckNativeValue();\r\n }\r\n\r\n toggleType() {\r\n this.elementType = this.elementType === 'password' ? 'text' : 'password';\r\n }\r\n\r\n /** Focuses the input. */\r\n focus(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n onBlur(): void {\r\n if (this.ngControl?.control) {\r\n const control = this.ngControl.control;\r\n\r\n control.updateValueAndValidity({ emitEvent: false });\r\n (control.statusChanges as EventEmitter<string>).emit(control.status);\r\n }\r\n\r\n this.focusChanged(false);\r\n }\r\n\r\n /** Callback for the cases where the focused state of the input changes. */\r\n focusChanged(isFocused: boolean) {\r\n if (isFocused === this.focused) { return; }\r\n\r\n this.focused = isFocused;\r\n this.stateChanges.next({ focused: this.focused });\r\n }\r\n\r\n onInput() {\r\n // This is a noop function and is used to let Angular know whenever the value changes.\r\n // Angular will run a new change detection each time the `input` event has been dispatched.\r\n // It's necessary that Angular recognizes the value change, because when floatingLabel\r\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\r\n // value changes and will not disappear.\r\n // Listening to the input event wouldn't be necessary when the input is using the\r\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n get empty(): boolean {\r\n return !this.elementRef.nativeElement.value && !this.isBadInput();\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n onContainerClick() {\r\n this.focus();\r\n }\r\n\r\n /** Does some manual dirty checking on the native input `value` property. */\r\n protected dirtyCheckNativeValue() {\r\n if (this.previousNativeValue !== this.value) {\r\n this.previousNativeValue = this.value;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n /** Checks whether the input is invalid based on the native validation. */\r\n protected isBadInput() {\r\n // The `validity` property won't be present on platform-server.\r\n return (this.elementRef.nativeElement as HTMLInputElement).validity?.badInput;\r\n }\r\n}\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\r\n\r\nimport { McInput, McInputMono } from './input';\r\nimport { McNumberInput } from './input-number';\r\nimport { MaxValidator, MinValidator } from './input-number-validators';\r\nimport { McInputPassword, McPasswordToggle } from './input-password';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n McCommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n McInput,\r\n McNumberInput,\r\n McInputPassword,\r\n McPasswordToggle,\r\n McInputMono,\r\n MinValidator,\r\n MaxValidator\r\n ],\r\n exports: [\r\n McInput,\r\n McNumberInput,\r\n McInputPassword,\r\n McPasswordToggle,\r\n McInputMono,\r\n MinValidator,\r\n MaxValidator\r\n ]\r\n})\r\nexport class McInputModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i3"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-input.mjs","sources":["../../../packages/mosaic/input/input-errors.ts","../../../packages/mosaic/input/input-value-accessor.ts","../../../packages/mosaic/input/input-number.ts","../../../packages/mosaic/input/input.ts","../../../packages/mosaic/input/input-number-validators.ts","../../../packages/mosaic/input/input-password.ts","../../../packages/mosaic/input/input.module.ts","../../../packages/mosaic/input/ptsecurity-mosaic-input.ts"],"sourcesContent":["export function getMcInputUnsupportedTypeError(inputType: string): Error {\r\n return Error(`Input type \"${inputType}\" isn't supported by mcInput.`);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n\r\nexport const MC_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('MC_INPUT_VALUE_ACCESSOR');\r\n","import {\r\n Attribute,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n Optional,\r\n Self\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport {\r\n END, C, V, X, A, Z, DELETE, BACKSPACE, TAB, ENTER,\r\n ESCAPE, ZERO, NINE, NUMPAD_ZERO, NUMPAD_NINE, NUMPAD_MINUS, DASH,\r\n FF_MINUS, LEFT_ARROW, RIGHT_ARROW, HOME, UP_ARROW, DOWN_ARROW, F1, F12\r\n} from '@ptsecurity/cdk/keycodes';\r\nimport { Subject } from 'rxjs';\r\n\r\n\r\nexport const BIG_STEP = 10;\r\nexport const SMALL_STEP = 1;\r\n\r\nexport function normalizeSplitter(value: string): string {\r\n return value ? value.replace(/,/g, '.') : value;\r\n}\r\n\r\nexport function isFloat(value: string): boolean {\r\n return /^-?\\d+\\.\\d+$/.test(value);\r\n}\r\n\r\nexport function isInt(value: string): boolean {\r\n return /^-?\\d+$/.test(value);\r\n}\r\n\r\nexport function isDigit(value: string): boolean {\r\n return isFloat(value) || isInt(value);\r\n}\r\n\r\nexport function getPrecision(value: number): number {\r\n const arr = value.toString().split('.');\r\n\r\n return arr.length === 1\r\n ? 1\r\n // tslint:disable-next-line:no-magic-numbers\r\n : Math.pow(10, arr[1].length);\r\n}\r\n\r\nexport function add(value1: number, value2: number): number {\r\n const precision = Math.max(getPrecision(value1), getPrecision(value2));\r\n\r\n return (value1 * precision + value2 * precision) / precision;\r\n}\r\n\r\n\r\n@Directive({\r\n selector: `input[mcInput][type=\"number\"]`,\r\n exportAs: 'mcNumericalInput',\r\n host: {\r\n '(blur)': 'focusChanged(false)',\r\n '(focus)': 'focusChanged(true)',\r\n '(paste)': 'onPaste($event)',\r\n '(keydown)': 'onKeyDown($event)'\r\n }\r\n})\r\nexport class McNumberInput {\r\n @Input()\r\n bigStep: number;\r\n\r\n @Input()\r\n step: number;\r\n\r\n @Input()\r\n min: number;\r\n\r\n @Input()\r\n max: number;\r\n\r\n value: any;\r\n\r\n focused: boolean = false;\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n\r\n get nativeElement(): HTMLInputElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n @Optional() @Self() private ngControl: NgControl,\r\n @Attribute('step') step: string,\r\n @Attribute('big-step') bigStep: string,\r\n @Attribute('min') min: string,\r\n @Attribute('max') max: string\r\n ) {\r\n this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;\r\n this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;\r\n this.min = isDigit(min) ? parseFloat(min) : -Infinity;\r\n this.max = isDigit(max) ? parseFloat(max) : Infinity;\r\n\r\n if ('valueAsNumber' in this.nativeElement) {\r\n Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {\r\n // tslint:disable-next-line:no-reserved-keywords\r\n get() {\r\n const res = parseFloat(normalizeSplitter(this.value));\r\n\r\n return isNaN(res) ? null : res;\r\n }\r\n });\r\n }\r\n }\r\n\r\n focusChanged(isFocused: boolean) {\r\n if (isFocused !== this.focused) {\r\n this.focused = isFocused;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n // tslint:disable-next-line:deprecation\r\n const keyCode = event.keyCode;\r\n\r\n const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);\r\n const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);\r\n const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);\r\n const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);\r\n const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);\r\n\r\n const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;\r\n\r\n const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||\r\n (e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);\r\n\r\n const isPeriod = (e) => e.key === '.' || e.key === ',';\r\n\r\n const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];\r\n const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];\r\n const arrows = [LEFT_ARROW, RIGHT_ARROW];\r\n const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);\r\n\r\n if (allowedKeys.indexOf(keyCode) !== -1 ||\r\n isCtrlA(event) ||\r\n isCtrlC(event) ||\r\n isCtrlV(event) ||\r\n isCtrlX(event) ||\r\n isCtrlZ(event) ||\r\n isFKey(event) ||\r\n isPeriod(event)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is not a number and stop the keypress\r\n if (event.shiftKey || !isNumber(event)) {\r\n event.preventDefault();\r\n\r\n // process steps\r\n const step = event.shiftKey ? this.bigStep : this.step;\r\n\r\n if (keyCode === UP_ARROW) {\r\n this.stepUp(step);\r\n }\r\n\r\n if (keyCode === DOWN_ARROW) {\r\n this.stepDown(step);\r\n }\r\n }\r\n }\r\n\r\n onPaste(event) {\r\n if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n stepUp(step: number) {\r\n this.elementRef.nativeElement.focus();\r\n\r\n const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);\r\n\r\n this.nativeElement.value = res.toString();\r\n\r\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\r\n }\r\n\r\n stepDown(step: number) {\r\n this.elementRef.nativeElement.focus();\r\n\r\n const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);\r\n\r\n this.nativeElement.value = res.toString();\r\n\r\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\r\n }\r\n\r\n private viewToModelUpdate(value: number) {\r\n if (this.ngControl) {\r\n this.ngControl.control!.setValue(value);\r\n }\r\n }\r\n}\r\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectorRef,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Self\r\n} from '@angular/core';\r\nimport {\r\n FormControlName,\r\n FormGroupDirective,\r\n NG_VALIDATORS,\r\n NgControl,\r\n NgForm,\r\n NgModel,\r\n Validator\r\n} from '@angular/forms';\r\nimport {\r\n CanUpdateErrorState,\r\n CanUpdateErrorStateCtor,\r\n ErrorStateMatcher,\r\n MC_VALIDATION,\r\n McValidationOptions,\r\n mixinErrorState,\r\n setMosaicValidation\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { getMcInputUnsupportedTypeError } from './input-errors';\r\nimport { McNumberInput } from './input-number';\r\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\r\n\r\n\r\nconst MC_INPUT_INVALID_TYPES = [\r\n 'button',\r\n 'checkbox',\r\n 'file',\r\n 'hidden',\r\n 'image',\r\n 'radio',\r\n 'range',\r\n 'reset',\r\n 'submit'\r\n];\r\n\r\nlet nextUniqueId = 0;\r\n\r\nexport class McInputBase {\r\n constructor(\r\n public defaultErrorStateMatcher: ErrorStateMatcher,\r\n public parentForm: NgForm,\r\n public parentFormGroup: FormGroupDirective,\r\n public ngControl: NgControl\r\n ) {}\r\n}\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport const McInputMixinBase: CanUpdateErrorStateCtor & typeof McInputBase = mixinErrorState(McInputBase);\r\n\r\n\r\n@Directive({\r\n selector: `input[mcInput]`,\r\n exportAs: 'mcInput',\r\n host: {\r\n class: 'mc-input',\r\n // Native input properties that are overwritten by Angular inputs need to be synced with\r\n // the native input element. Otherwise property bindings for those don't work.\r\n '[attr.id]': 'id',\r\n '[attr.placeholder]': 'placeholder',\r\n '[attr.disabled]': 'disabled || null',\r\n '[required]': 'required',\r\n '(blur)': 'onBlur()',\r\n '(focus)': 'focusChanged(true)',\r\n '(input)': 'onInput()'\r\n },\r\n providers: [{\r\n provide: McFormFieldControl, useExisting: McInput\r\n }]\r\n})\r\nexport class McInput extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\r\n CanUpdateErrorState, AfterContentInit, OnChanges {\r\n\r\n /** An object used to control when error messages are shown. */\r\n @Input() errorStateMatcher: ErrorStateMatcher;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n focused: boolean = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n controlType: string = 'input';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input() placeholder: string;\r\n\r\n protected uid = `mc-input-${nextUniqueId++}`;\r\n protected previousNativeValue: any;\r\n protected neverEmptyInputTypes = [\r\n 'date',\r\n 'datetime',\r\n 'datetime-local',\r\n 'month',\r\n 'time',\r\n 'week'\r\n ].filter((t) => getSupportedInputTypes().has(t));\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl && this.ngControl.disabled !== null) {\r\n return this.ngControl.disabled;\r\n }\r\n\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n // Browsers may not fire the blur event if the input is disabled too quickly.\r\n // Reset from here to ensure that the element doesn't become stuck.\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || this.uid;\r\n }\r\n\r\n private _id: string;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n private _required = false;\r\n\r\n // tslint:disable no-reserved-keywords\r\n /** Input type of the element. */\r\n @Input()\r\n get type(): string {\r\n return this._type;\r\n }\r\n\r\n set type(value: string) {\r\n this._type = value || 'text';\r\n this.validateType();\r\n\r\n // When using Angular inputs, developers are no longer able to set the properties on the native\r\n // input element. To ensure that bindings for `type` work, we need to sync the setter\r\n // with the native property. Textarea elements don't support the type property or attribute.\r\n if (getSupportedInputTypes().has(this._type)) {\r\n this.elementRef.nativeElement.type = this._type;\r\n }\r\n }\r\n // tslint:enable no-reserved-keywords\r\n\r\n private _type = 'text';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get value(): string {\r\n return this._inputValueAccessor.value;\r\n }\r\n\r\n set value(value: string) {\r\n if (value !== this.value) {\r\n this._inputValueAccessor.value = value;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: orthodox-getter-and-setter\r\n private _inputValueAccessor: { value: any };\r\n\r\n // tslint:disable-next-line: naming-convention\r\n constructor(\r\n protected elementRef: ElementRef,\r\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\r\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\r\n @Optional() @Self() ngControl: NgControl,\r\n @Optional() @Self() public numberInput: McNumberInput,\r\n @Optional() @Self() public ngModel: NgModel,\r\n @Optional() @Self() public formControlName: FormControlName,\r\n @Optional() parentForm: NgForm,\r\n @Optional() parentFormGroup: FormGroupDirective,\r\n defaultErrorStateMatcher: ErrorStateMatcher,\r\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\r\n\r\n // If no input value accessor was explicitly specified, use the element as the input value\r\n // accessor.\r\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\r\n\r\n this.previousNativeValue = this.value;\r\n\r\n // Force setter to be called in case id was not specified.\r\n this.id = this.id;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (!this.ngControl) { return; }\r\n\r\n if (this.mcValidation.useValidation) {\r\n setMosaicValidation(this, this.changeDetectorRef);\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.stateChanges.next();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stateChanges.complete();\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.ngControl) {\r\n // We need to re-evaluate this on every change detection cycle, because there are some\r\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\r\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\r\n this.updateErrorState();\r\n }\r\n\r\n // We need to dirty-check the native element's value, because there are some cases where\r\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\r\n // updating the value using `emitEvent: false`).\r\n this.dirtyCheckNativeValue();\r\n }\r\n\r\n /** Focuses the input. */\r\n focus(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n onBlur(): void {\r\n this.focusChanged(false);\r\n\r\n if (this.ngControl && this.ngControl.control) {\r\n const control = this.ngControl.control;\r\n\r\n control.updateValueAndValidity({ emitEvent: false });\r\n (control.statusChanges as EventEmitter<string>).emit(control.status);\r\n }\r\n }\r\n\r\n /** Callback for the cases where the focused state of the input changes. */\r\n focusChanged(isFocused: boolean) {\r\n if (isFocused !== this.focused) {\r\n this.focused = isFocused;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onInput() {\r\n // This is a noop function and is used to let Angular know whenever the value changes.\r\n // Angular will run a new change detection each time the `input` event has been dispatched.\r\n // It's necessary that Angular recognizes the value change, because when floatingLabel\r\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\r\n // value changes and will not disappear.\r\n // Listening to the input event wouldn't be necessary when the input is using the\r\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n get empty(): boolean {\r\n return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n onContainerClick() {\r\n this.focus();\r\n }\r\n\r\n /** Does some manual dirty checking on the native input `value` property. */\r\n protected dirtyCheckNativeValue() {\r\n const newValue = this.value;\r\n\r\n if (this.previousNativeValue !== newValue) {\r\n this.previousNativeValue = newValue;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n /** Make sure the input is a supported type. */\r\n protected validateType() {\r\n if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\r\n throw getMcInputUnsupportedTypeError(this._type);\r\n }\r\n }\r\n\r\n /** Checks whether the input type is one of the types that are never empty. */\r\n protected isNeverEmpty() {\r\n return this.neverEmptyInputTypes.indexOf(this._type) > -1;\r\n }\r\n\r\n /** Checks whether the input is invalid based on the native validation. */\r\n protected isBadInput() {\r\n // The `validity` property won't be present on platform-server.\r\n const validity = (this.elementRef.nativeElement as HTMLInputElement).validity;\r\n\r\n return validity && validity.badInput;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'input[mcInputMonospace]',\r\n exportAs: 'McInputMonospace',\r\n host: { class: 'mc-input_monospace' }\r\n})\r\nexport class McInputMono {}\r\n","import { Directive, forwardRef, Input, OnChanges, Provider, SimpleChanges } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\r\n\r\n\r\nexport const MIN_VALIDATOR: Provider = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MinValidator),\r\n multi: true\r\n};\r\n\r\n/**\r\n * A directive which installs the {@link MinValidator} for any `formControlName`,\r\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\r\n *\r\n * @experimental\r\n */\r\n@Directive({\r\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\r\n providers: [MIN_VALIDATOR],\r\n host: {\r\n '[attr.min]': 'min ? min : null'\r\n }\r\n})\r\nexport class MinValidator implements Validator, OnChanges {\r\n\r\n @Input() min: number;\r\n private validator: ValidatorFn;\r\n private onChange: () => void;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('min' in changes) {\r\n this.createValidator();\r\n\r\n if (this.onChange) { this.onChange(); }\r\n }\r\n }\r\n\r\n validate(c: AbstractControl): ValidationErrors | null {\r\n return this.validator(c);\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n private createValidator(): void {\r\n this.validator = Validators.min(parseInt(this.min as unknown as string, 10));\r\n }\r\n}\r\n\r\n\r\nexport const MAX_VALIDATOR: Provider = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MaxValidator),\r\n multi: true\r\n};\r\n\r\n/**\r\n * A directive which installs the {@link MaxValidator} for any `formControlName`,\r\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\r\n *\r\n * @experimental\r\n */\r\n@Directive({\r\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\r\n providers: [MAX_VALIDATOR],\r\n host: {\r\n '[attr.max]': 'max ? max : null'\r\n }\r\n})\r\nexport class MaxValidator implements Validator,\r\n OnChanges {\r\n\r\n @Input() max: number | string;\r\n private validator: ValidatorFn;\r\n private onChange: () => void;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('max' in changes) {\r\n this.createValidator();\r\n\r\n if (this.onChange) { this.onChange(); }\r\n }\r\n }\r\n\r\n validate(c: AbstractControl): ValidationErrors | null {\r\n return this.validator(c);\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n private createValidator(): void {\r\n this.validator = Validators.max(parseInt(this.max as unknown as string, 10));\r\n }\r\n}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\r\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Self,\r\n TemplateRef,\r\n ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n FormControlName,\r\n FormGroupDirective,\r\n NG_VALIDATORS,\r\n NgControl,\r\n NgForm,\r\n NgModel,\r\n Validator\r\n} from '@angular/forms';\r\nimport {\r\n CanUpdateErrorState,\r\n ErrorStateMatcher,\r\n MC_VALIDATION,\r\n McValidationOptions,\r\n PopUpTriggers,\r\n setMosaicValidation\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\r\nimport { MC_TOOLTIP_SCROLL_STRATEGY, McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { McInputMixinBase } from './input';\r\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\r\n\r\n\r\nlet nextUniqueId = 0;\r\n\r\n\r\n@Component({\r\n selector: `mc-password-toggle`,\r\n exportAs: 'mcPasswordToggle',\r\n template: '<ng-content></ng-content>',\r\n host: {\r\n class: 'mc-password-toggle mc',\r\n '[class.mc-eye_16]': 'hidden',\r\n '[class.mc-eye-crossed_16]': '!hidden',\r\n\r\n '[attr.tabindex]': 'disabled ? null : tabIndex',\r\n '[attr.disabled]': 'disabled || null',\r\n\r\n '(click)': 'toggle()',\r\n '(keydown.ENTER)': 'toggle()',\r\n '(keydown.SPACE)': 'toggle()'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class McPasswordToggle extends McTooltipTrigger implements OnDestroy {\r\n @Input('mcTooltipNotHidden')\r\n get content(): string | TemplateRef<any> {\r\n return (this.formField.control as McInputPassword).elementType === 'password' ?\r\n this.mcTooltipHidden :\r\n this._content;\r\n }\r\n\r\n set content(content: string | TemplateRef<any>) {\r\n this._content = content;\r\n\r\n this.updateData();\r\n }\r\n\r\n @Input() mcTooltipHidden: string | TemplateRef<any>;\r\n\r\n @Input()\r\n get disabled() {\r\n return this._disabled === undefined ? this.formField.disabled : this._disabled;\r\n }\r\n\r\n set disabled(value: any) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\r\n }\r\n\r\n // tslint:disable-next-line:naming-convention\r\n protected _disabled: boolean;\r\n\r\n @Input()\r\n get tabIndex(): number {\r\n return this.disabled ? -1 : this._tabIndex;\r\n }\r\n\r\n set tabIndex(value: number) {\r\n // If the specified tabIndex value is null or undefined, fall back to the default value.\r\n this._tabIndex = value != null ? coerceNumberProperty(value) : 0;\r\n }\r\n\r\n private _tabIndex: number = 0;\r\n\r\n get hidden(): boolean {\r\n return (this.formField.control as McInputPassword).elementType === 'password';\r\n }\r\n\r\n constructor(\r\n overlay: Overlay,\r\n elementRef: ElementRef,\r\n ngZone: NgZone,\r\n scrollDispatcher: ScrollDispatcher,\r\n hostView: ViewContainerRef,\r\n @Inject(MC_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\r\n @Optional() direction: Directionality,\r\n\r\n private focusMonitor: FocusMonitor,\r\n private formField: McFormField\r\n ) {\r\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\r\n\r\n this.trigger = `${PopUpTriggers.Hover}`;\r\n\r\n this.runFocusMonitor();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopFocusMonitor();\r\n }\r\n\r\n toggle() {\r\n if (this.disabled) { return; }\r\n\r\n this.hide();\r\n\r\n const input = this.formField.control as McInputPassword;\r\n\r\n input.toggleType();\r\n\r\n this.updateData();\r\n }\r\n\r\n private runFocusMonitor() {\r\n this.focusMonitor.monitor(this.elementRef)\r\n .subscribe((origin) => {\r\n if (origin === 'keyboard') {\r\n this.show();\r\n } else if (origin === null) {\r\n this.hide();\r\n }\r\n });\r\n }\r\n\r\n private stopFocusMonitor() {\r\n this.focusMonitor.stopMonitoring(this.elementRef);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: `input[mcInputPassword]`,\r\n exportAs: 'mcInputPassword',\r\n host: {\r\n class: 'mc-input mc-input-password',\r\n // Native input properties that are overwritten by Angular inputs need to be synced with\r\n // the native input element. Otherwise property bindings for those don't work.\r\n '[attr.id]': 'id',\r\n '[attr.type]': 'elementType',\r\n '[attr.placeholder]': 'placeholder',\r\n '[attr.disabled]': 'disabled || null',\r\n '[required]': 'required',\r\n\r\n '(blur)': 'onBlur()',\r\n '(focus)': 'focusChanged(true)',\r\n '(input)': 'onInput()'\r\n },\r\n providers: [{\r\n provide: McFormFieldControl, useExisting: McInputPassword\r\n }]\r\n})\r\nexport class McInputPassword extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\r\n CanUpdateErrorState, AfterContentInit, OnChanges {\r\n\r\n /** An object used to control when error messages are shown. */\r\n @Input() errorStateMatcher: ErrorStateMatcher;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n focused: boolean = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n readonly stateChanges: Subject<any> = new Subject<any>();\r\n\r\n readonly checkRule: Subject<any> = new Subject<any>();\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n controlType: string = 'input-password';\r\n\r\n elementType: string = 'password';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input() placeholder: string;\r\n\r\n protected uid = `mc-input-${nextUniqueId++}`;\r\n protected previousNativeValue: any;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl?.disabled !== null) {\r\n return this.ngControl.disabled;\r\n }\r\n\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n // Browsers may not fire the blur event if the input is disabled too quickly.\r\n // Reset from here to ensure that the element doesn't become stuck.\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || this.uid;\r\n }\r\n\r\n private _id: string;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n private _required = false;\r\n\r\n // this.elementRef.nativeElement.type = this._type;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get value(): string {\r\n return this._inputValueAccessor.value;\r\n }\r\n\r\n set value(value: string) {\r\n if (value === this.value) { return; }\r\n\r\n this._inputValueAccessor.value = value;\r\n this.stateChanges.next();\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n get empty(): boolean {\r\n return !this.elementRef.nativeElement.value && !this.isBadInput();\r\n }\r\n\r\n // tslint:disable-next-line: orthodox-getter-and-setter\r\n private _inputValueAccessor: { value: any };\r\n\r\n // tslint:disable-next-line: naming-convention\r\n constructor(\r\n protected elementRef: ElementRef,\r\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\r\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\r\n @Optional() @Self() ngControl: NgControl,\r\n @Optional() @Self() public ngModel: NgModel,\r\n @Optional() @Self() public formControlName: FormControlName,\r\n @Optional() parentForm: NgForm,\r\n @Optional() parentFormGroup: FormGroupDirective,\r\n defaultErrorStateMatcher: ErrorStateMatcher,\r\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\r\n\r\n // If no input value accessor was explicitly specified, use the element as the input value\r\n // accessor.\r\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\r\n\r\n this.previousNativeValue = this.value;\r\n\r\n // Force setter to be called in case id was not specified.\r\n this.id = this.id;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (!this.ngControl) { return; }\r\n\r\n if (this.mcValidation.useValidation) {\r\n setMosaicValidation(this, this.changeDetectorRef);\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.stateChanges.next();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stateChanges.complete();\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.ngControl) {\r\n // We need to re-evaluate this on every change detection cycle, because there are some\r\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\r\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\r\n this.updateErrorState();\r\n }\r\n\r\n // We need to dirty-check the native element's value, because there are some cases where\r\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\r\n // updating the value using `emitEvent: false`).\r\n this.dirtyCheckNativeValue();\r\n }\r\n\r\n checkRules() {\r\n this.checkRule.next();\r\n }\r\n\r\n toggleType() {\r\n this.elementType = this.elementType === 'password' ? 'text' : 'password';\r\n }\r\n\r\n /** Focuses the input. */\r\n focus(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n onBlur(): void {\r\n if (this.ngControl?.control) {\r\n const control = this.ngControl.control;\r\n\r\n control.updateValueAndValidity({ emitEvent: false });\r\n (control.statusChanges as EventEmitter<string>).emit(control.status);\r\n }\r\n\r\n this.focusChanged(false);\r\n }\r\n\r\n /** Callback for the cases where the focused state of the input changes. */\r\n focusChanged(isFocused: boolean) {\r\n if (isFocused === this.focused) { return; }\r\n\r\n this.focused = isFocused;\r\n this.stateChanges.next({ focused: this.focused });\r\n }\r\n\r\n onInput() {\r\n // This is a noop function and is used to let Angular know whenever the value changes.\r\n // Angular will run a new change detection each time the `input` event has been dispatched.\r\n // It's necessary that Angular recognizes the value change, because when floatingLabel\r\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\r\n // value changes and will not disappear.\r\n // Listening to the input event wouldn't be necessary when the input is using the\r\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n onContainerClick() {\r\n this.focus();\r\n }\r\n\r\n /** Does some manual dirty checking on the native input `value` property. */\r\n protected dirtyCheckNativeValue() {\r\n if (this.previousNativeValue !== this.value) {\r\n this.previousNativeValue = this.value;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n /** Checks whether the input is invalid based on the native validation. */\r\n protected isBadInput() {\r\n // The `validity` property won't be present on platform-server.\r\n return (this.elementRef.nativeElement as HTMLInputElement).validity?.badInput;\r\n }\r\n}\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\r\n\r\nimport { McInput, McInputMono } from './input';\r\nimport { McNumberInput } from './input-number';\r\nimport { MaxValidator, MinValidator } from './input-number-validators';\r\nimport { McInputPassword, McPasswordToggle } from './input-password';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n McCommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n McInput,\r\n McNumberInput,\r\n McInputPassword,\r\n McPasswordToggle,\r\n McInputMono,\r\n MinValidator,\r\n MaxValidator\r\n ],\r\n exports: [\r\n McInput,\r\n McNumberInput,\r\n McInputPassword,\r\n McPasswordToggle,\r\n McInputMono,\r\n MinValidator,\r\n MaxValidator\r\n ]\r\n})\r\nexport class McInputModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i3"],"mappings":"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"}
|
@@ -180,7 +180,7 @@ class McListOption {
|
|
180
180
|
/** @nocollapse */ /** @nocollapse */ McListOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McListOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: forwardRef(() => McListSelection) }, { token: i1.McOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
181
181
|
/** @nocollapse */ /** @nocollapse */ McListOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McListOption, selector: "mc-list-option", inputs: { checkboxPosition: "checkboxPosition", value: "value", disabled: "disabled", showCheckbox: "showCheckbox", selected: "selected" }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.mc-selected": "selected", "class.mc-disabled": "disabled", "class.mc-focused": "hasFocus", "class.mc-action-button-focused": "actionButton?.active", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-option" }, providers: [
|
182
182
|
{ provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
|
183
|
-
], queries: [{ propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true }], exportAs: ["mcListOption"], ngImport: i0, template: "<mc-pseudo-checkbox\r\n *ngIf=\"showCheckbox\"\r\n [state]=\"selected ? 'checked' : 'unchecked'\"\r\n [disabled]=\"disabled\">\r\n</mc-pseudo-checkbox>\r\n\r\n<ng-content select=\"[mc-icon]\"></ng-content>\r\n\r\n<div class=\"mc-list-text\" #text>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-content select=\"mc-option-action\"></ng-content>\r\n", components: [{ type: i1.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["state", "disabled"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
183
|
+
], queries: [{ propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true }], exportAs: ["mcListOption"], ngImport: i0, template: "<mc-pseudo-checkbox\r\n *ngIf=\"showCheckbox\"\r\n [state]=\"selected ? 'checked' : 'unchecked'\"\r\n [disabled]=\"disabled\">\r\n</mc-pseudo-checkbox>\r\n\r\n<ng-content select=\"[mc-icon]\"></ng-content>\r\n\r\n<div class=\"mc-list-text\" #text>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-content select=\"mc-option-action\"></ng-content>\r\n", components: [{ type: i1.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["color", "state", "disabled"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
184
184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McListOption, decorators: [{
|
185
185
|
type: Component,
|
186
186
|
args: [{ exportAs: 'mcListOption', selector: 'mc-list-option', host: {
|