@ptsecurity/mosaic 13.1.1 → 13.2.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.
Files changed (76) hide show
  1. package/_theming.scss +321 -121
  2. package/_visual.scss +79 -26
  3. package/design-tokens/legacy-2017/tokens/components/badge.json5 +28 -38
  4. package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -0
  5. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +39 -0
  6. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +80 -4
  7. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +4 -0
  8. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +20 -1
  9. package/design-tokens/legacy-2017/tokens.d.ts +79 -26
  10. package/design-tokens/pt-2022/tokens/components/badge.json5 +30 -40
  11. package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -0
  12. package/design-tokens/pt-2022/tokens/components/form-field.json5 +40 -1
  13. package/design-tokens/pt-2022/tokens/components/tabs.json5 +82 -6
  14. package/design-tokens/pt-2022/tokens/properties/colors.json5 +4 -0
  15. package/design-tokens/pt-2022/tokens/properties/globals.json5 +20 -1
  16. package/design-tokens/pt-2022/tokens.d.ts +79 -26
  17. package/dl/README.md +0 -0
  18. package/dl/dl.component.d.ts +26 -0
  19. package/dl/dl.module.d.ts +10 -0
  20. package/dl/index.d.ts +1 -0
  21. package/dl/package.json +10 -0
  22. package/dl/ptsecurity-mosaic-dl.d.ts +5 -0
  23. package/dl/public-api.d.ts +2 -0
  24. package/esm2020/design-tokens/legacy-2017/tokens.mjs +80 -27
  25. package/esm2020/design-tokens/pt-2022/tokens.mjs +80 -27
  26. package/esm2020/dl/dl.component.mjs +78 -0
  27. package/esm2020/dl/dl.module.mjs +42 -0
  28. package/esm2020/dl/index.mjs +2 -0
  29. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +5 -0
  30. package/esm2020/dl/public-api.mjs +3 -0
  31. package/esm2020/form-field/form-field.mjs +44 -24
  32. package/esm2020/form-field/form-field.module.mjs +6 -1
  33. package/esm2020/form-field/hint.mjs +3 -3
  34. package/esm2020/form-field/password-hint.mjs +115 -0
  35. package/esm2020/form-field/public-api.mjs +2 -1
  36. package/esm2020/input/input-password.mjs +367 -0
  37. package/esm2020/input/input.module.mjs +48 -6
  38. package/esm2020/input/public-api.mjs +2 -1
  39. package/esm2020/sidepanel/sidepanel-directives.mjs +3 -3
  40. package/esm2020/tabs/tab-group.component.mjs +3 -3
  41. package/esm2020/tabs/tab-header.component.mjs +2 -2
  42. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +5 -5
  43. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +238 -79
  44. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  45. package/fesm2015/ptsecurity-mosaic-dl.mjs +124 -0
  46. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -0
  47. package/fesm2015/ptsecurity-mosaic-form-field.mjs +169 -27
  48. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  49. package/fesm2015/ptsecurity-mosaic-input.mjs +412 -11
  50. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  51. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +2 -2
  52. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  53. package/fesm2015/ptsecurity-mosaic-tabs.mjs +8 -8
  54. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  55. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +238 -79
  56. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  57. package/fesm2020/ptsecurity-mosaic-dl.mjs +124 -0
  58. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -0
  59. package/fesm2020/ptsecurity-mosaic-form-field.mjs +158 -27
  60. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  61. package/fesm2020/ptsecurity-mosaic-input.mjs +405 -11
  62. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  63. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +2 -2
  64. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  65. package/fesm2020/ptsecurity-mosaic-tabs.mjs +8 -8
  66. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  67. package/form-field/form-field.d.ts +9 -2
  68. package/form-field/form-field.module.d.ts +8 -7
  69. package/form-field/password-hint.d.ts +38 -0
  70. package/form-field/public-api.d.ts +1 -0
  71. package/input/input-password.d.ts +120 -0
  72. package/input/input.module.d.ts +7 -6
  73. package/input/public-api.d.ts +1 -0
  74. package/package.json +12 -4
  75. package/prebuilt-themes/dark-theme.css +1 -1
  76. package/prebuilt-themes/default-theme.css +1 -1
@@ -0,0 +1,124 @@
1
+ import { A11yModule } from '@angular/cdk/a11y';
2
+ import { PlatformModule } from '@angular/cdk/platform';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from '@angular/core';
5
+ import { Component, ViewEncapsulation, Input, NgModule } from '@angular/core';
6
+ import { Subject, Subscription } from 'rxjs';
7
+ import { debounceTime } from 'rxjs/operators';
8
+
9
+ class McDlComponent {
10
+ constructor(elementRef) {
11
+ this.elementRef = elementRef;
12
+ this.minWidth = 400;
13
+ this.wide = false;
14
+ this.vertical = null;
15
+ this.resizeStream = new Subject();
16
+ this.resizeDebounceInterval = 100;
17
+ this.resizeSubscription = Subscription.EMPTY;
18
+ this.updateState = () => {
19
+ const { width } = this.elementRef.nativeElement.getClientRects()[0];
20
+ this.vertical = width <= this.minWidth;
21
+ };
22
+ }
23
+ ngAfterContentInit() {
24
+ if (this.vertical !== null) {
25
+ return;
26
+ }
27
+ this.resizeSubscription = this.resizeStream
28
+ .pipe(debounceTime(this.resizeDebounceInterval))
29
+ .subscribe(this.updateState);
30
+ }
31
+ ngOnDestroy() {
32
+ this.resizeSubscription.unsubscribe();
33
+ }
34
+ }
35
+ /** @nocollapse */ /** @nocollapse */ McDlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
36
+ /** @nocollapse */ /** @nocollapse */ McDlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McDlComponent, selector: "mc-dl", inputs: { minWidth: "minWidth", wide: "wide", vertical: "vertical" }, host: { listeners: { "window:resize": "resizeStream.next()" }, properties: { "class.mc-dl_vertical": "vertical", "class.mc-dl_wide": "wide" }, classAttribute: "mc-dl" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".mc-dl{display:grid;grid-column-gap:var(--mc-description-list-size-horizontal-column-gap, 16px);column-gap:var(--mc-description-list-size-horizontal-column-gap, 16px);grid-row-gap:var(--mc-description-list-size-horizontal-row-gap, 12px);row-gap:var(--mc-description-list-size-horizontal-row-gap, 12px);grid-template-columns:repeat(4,1fr)}.mc-dl .mc-dt{grid-column:var(--mc-description-list-size-dt-grid-column, 1)}.mc-dl .mc-dd{grid-column:var(--mc-description-list-size-dd-grid-column, 2/span 3)}.mc-dl.mc-dl_wide{grid-template-columns:repeat(2,1fr)}.mc-dl.mc-dl_wide .mc-dt{grid-column:1}.mc-dl.mc-dl_wide .mc-dd{grid-column:2}.mc-dl.mc-dl_vertical{grid-template-columns:repeat(1,1fr);column-gap:var(--mc-description-list-size-vertical-column-gap, 0);row-gap:var(--mc-description-list-size-vertical-row-gap, 2px)}.mc-dl.mc-dl_vertical .mc-dt,.mc-dl.mc-dl_vertical .mc-dd{grid-column:1}.mc-dl.mc-dl_vertical .mc-dd{margin-bottom:var(--mc-description-list-size-vertical-dd-margin-bottom, 16px)}\n"], encapsulation: i0.ViewEncapsulation.None });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDlComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'mc-dl', template: '<ng-content></ng-content>', host: {
40
+ class: 'mc-dl',
41
+ '[class.mc-dl_vertical]': 'vertical',
42
+ '[class.mc-dl_wide]': 'wide',
43
+ '(window:resize)': 'resizeStream.next()'
44
+ }, encapsulation: ViewEncapsulation.None, styles: [".mc-dl{display:grid;grid-column-gap:var(--mc-description-list-size-horizontal-column-gap, 16px);column-gap:var(--mc-description-list-size-horizontal-column-gap, 16px);grid-row-gap:var(--mc-description-list-size-horizontal-row-gap, 12px);row-gap:var(--mc-description-list-size-horizontal-row-gap, 12px);grid-template-columns:repeat(4,1fr)}.mc-dl .mc-dt{grid-column:var(--mc-description-list-size-dt-grid-column, 1)}.mc-dl .mc-dd{grid-column:var(--mc-description-list-size-dd-grid-column, 2/span 3)}.mc-dl.mc-dl_wide{grid-template-columns:repeat(2,1fr)}.mc-dl.mc-dl_wide .mc-dt{grid-column:1}.mc-dl.mc-dl_wide .mc-dd{grid-column:2}.mc-dl.mc-dl_vertical{grid-template-columns:repeat(1,1fr);column-gap:var(--mc-description-list-size-vertical-column-gap, 0);row-gap:var(--mc-description-list-size-vertical-row-gap, 2px)}.mc-dl.mc-dl_vertical .mc-dt,.mc-dl.mc-dl_vertical .mc-dd{grid-column:1}.mc-dl.mc-dl_vertical .mc-dd{margin-bottom:var(--mc-description-list-size-vertical-dd-margin-bottom, 16px)}\n"] }]
45
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { minWidth: [{
46
+ type: Input
47
+ }], wide: [{
48
+ type: Input
49
+ }], vertical: [{
50
+ type: Input
51
+ }] } });
52
+ class McDtComponent {
53
+ }
54
+ /** @nocollapse */ /** @nocollapse */ McDtComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDtComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ /** @nocollapse */ /** @nocollapse */ McDtComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McDtComponent, selector: "mc-dt", host: { classAttribute: "mc-dt" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, encapsulation: i0.ViewEncapsulation.None });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDtComponent, decorators: [{
57
+ type: Component,
58
+ args: [{
59
+ selector: 'mc-dt',
60
+ template: '<ng-content></ng-content>',
61
+ host: {
62
+ class: 'mc-dt'
63
+ },
64
+ encapsulation: ViewEncapsulation.None
65
+ }]
66
+ }] });
67
+ class McDdComponent {
68
+ }
69
+ /** @nocollapse */ /** @nocollapse */ McDdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
+ /** @nocollapse */ /** @nocollapse */ McDdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McDdComponent, selector: "mc-dd", host: { classAttribute: "mc-dd" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, encapsulation: i0.ViewEncapsulation.None });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDdComponent, decorators: [{
72
+ type: Component,
73
+ args: [{
74
+ selector: 'mc-dd',
75
+ template: '<ng-content></ng-content>',
76
+ host: {
77
+ class: 'mc-dd'
78
+ },
79
+ encapsulation: ViewEncapsulation.None
80
+ }]
81
+ }] });
82
+
83
+ class McDlModule {
84
+ }
85
+ /** @nocollapse */ /** @nocollapse */ McDlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
+ /** @nocollapse */ /** @nocollapse */ McDlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDlModule, declarations: [McDlComponent,
87
+ McDtComponent,
88
+ McDdComponent], imports: [CommonModule,
89
+ A11yModule,
90
+ PlatformModule], exports: [McDlComponent,
91
+ McDtComponent,
92
+ McDdComponent] });
93
+ /** @nocollapse */ /** @nocollapse */ McDlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDlModule, imports: [[
94
+ CommonModule,
95
+ A11yModule,
96
+ PlatformModule
97
+ ]] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McDlModule, decorators: [{
99
+ type: NgModule,
100
+ args: [{
101
+ imports: [
102
+ CommonModule,
103
+ A11yModule,
104
+ PlatformModule
105
+ ],
106
+ exports: [
107
+ McDlComponent,
108
+ McDtComponent,
109
+ McDdComponent
110
+ ],
111
+ declarations: [
112
+ McDlComponent,
113
+ McDtComponent,
114
+ McDdComponent
115
+ ]
116
+ }]
117
+ }] });
118
+
119
+ /**
120
+ * Generated bundle index. Do not edit.
121
+ */
122
+
123
+ export { McDdComponent, McDlComponent, McDlModule, McDtComponent };
124
+ //# sourceMappingURL=ptsecurity-mosaic-dl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ptsecurity-mosaic-dl.mjs","sources":["../../../packages/mosaic/dl/dl.component.ts","../../../packages/mosaic/dl/dl.module.ts","../../../packages/mosaic/dl/ptsecurity-mosaic-dl.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n\n@Component({\n selector: 'mc-dl',\n template: '<ng-content></ng-content>',\n styleUrls: ['dl.scss'],\n host: {\n class: 'mc-dl',\n '[class.mc-dl_vertical]': 'vertical',\n '[class.mc-dl_wide]': 'wide',\n '(window:resize)': 'resizeStream.next()'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class McDlComponent implements AfterContentInit, OnDestroy {\n @Input() minWidth: number = 400;\n @Input() wide = false;\n @Input() vertical: boolean | null = null;\n\n readonly resizeStream = new Subject<Event>();\n private readonly resizeDebounceInterval: number = 100;\n\n private resizeSubscription = Subscription.EMPTY;\n\n\n constructor(protected elementRef: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.vertical !== null) { return; }\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateState);\n }\n\n ngOnDestroy() {\n this.resizeSubscription.unsubscribe();\n }\n\n updateState = () => {\n const { width } = this.elementRef.nativeElement.getClientRects()[0];\n\n this.vertical = width <= this.minWidth;\n }\n}\n\n@Component({\n selector: 'mc-dt',\n template: '<ng-content></ng-content>',\n host: {\n class: 'mc-dt'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class McDtComponent {}\n\n@Component({\n selector: 'mc-dd',\n template: '<ng-content></ng-content>',\n host: {\n class: 'mc-dd'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class McDdComponent {}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n McDlComponent,\n McDtComponent,\n McDdComponent\n} from './dl.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule\n ],\n exports: [\n McDlComponent,\n McDtComponent,\n McDdComponent\n ],\n declarations: [\n McDlComponent,\n McDtComponent,\n McDdComponent\n ]\n})\nexport class McDlModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
- import * as i1$1 from '@angular/common';
1
+ import * as i3 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Directive, Input, EventEmitter, Output, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, ContentChildren, ViewChild, NgModule } from '@angular/core';
4
+ import { Component, Directive, Input, ChangeDetectionStrategy, EventEmitter, Output, ViewEncapsulation, ContentChild, ContentChildren, ViewChild, NgModule } from '@angular/core';
5
5
  import * as i1 from '@ptsecurity/mosaic/icon';
6
6
  import { McIconModule } from '@ptsecurity/mosaic/icon';
7
7
  import { ThemePalette, mixinColor } from '@ptsecurity/mosaic/core';
8
- import { ESCAPE } from '@ptsecurity/cdk/keycodes';
8
+ import { F8, ESCAPE } from '@ptsecurity/cdk/keycodes';
9
9
  import { Subject, EMPTY, merge } from 'rxjs';
10
10
  import { startWith, takeUntil } from 'rxjs/operators';
11
+ import * as i1$1 from '@angular/cdk/a11y';
11
12
 
12
13
  class McCleaner {
13
14
  constructor() {
@@ -40,10 +41,10 @@ function getMcFormFieldYouCanNotUseCleanerInNumberInputError() {
40
41
  return Error(`You can't use mc-cleaner with input that have type="number"`);
41
42
  }
42
43
 
43
- let nextUniqueId$1 = 0;
44
+ let nextHintUniqueId = 0;
44
45
  class McHint {
45
46
  constructor() {
46
- this.id = `mc-hint-${nextUniqueId$1++}`;
47
+ this.id = `mc-hint-${nextHintUniqueId++}`;
47
48
  }
48
49
  }
49
50
  /** @nocollapse */ /** @nocollapse */ McHint.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -61,6 +62,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
61
62
  type: Input
62
63
  }] } });
63
64
 
65
+ let nextPasswordHintUniqueId = 0;
66
+ var PasswordRules;
67
+ (function (PasswordRules) {
68
+ PasswordRules[PasswordRules["Length"] = 0] = "Length";
69
+ PasswordRules[PasswordRules["UpperLatin"] = 1] = "UpperLatin";
70
+ PasswordRules[PasswordRules["LowerLatin"] = 2] = "LowerLatin";
71
+ PasswordRules[PasswordRules["Digit"] = 3] = "Digit";
72
+ PasswordRules[PasswordRules["SpecialSymbols"] = 4] = "SpecialSymbols";
73
+ })(PasswordRules || (PasswordRules = {}));
74
+ const regExpPasswordValidator = {
75
+ [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),
76
+ [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),
77
+ [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),
78
+ [PasswordRules.SpecialSymbols]: RegExp(/^(?=.*?[" !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"])/)
79
+ };
80
+ class McPasswordHint {
81
+ constructor(changeDetectorRef, formField) {
82
+ this.changeDetectorRef = changeDetectorRef;
83
+ this.formField = formField;
84
+ this.id = `mc-hint-${nextPasswordHintUniqueId++}`;
85
+ this.hasError = false;
86
+ this.checked = false;
87
+ this.checkValue = () => {
88
+ if (this.control.focused && this.isValueChanged()) {
89
+ this.hasError = false;
90
+ this.checked = this.checkRule(this.control.value);
91
+ }
92
+ else if (!this.control.focused && !this.isValueChanged()) {
93
+ this.hasError = !this.checkRule(this.control.value);
94
+ }
95
+ this.lastControlValue = this.control.value;
96
+ this.changeDetectorRef.markForCheck();
97
+ };
98
+ }
99
+ get control() {
100
+ return this.formField.control;
101
+ }
102
+ ngAfterContentInit() {
103
+ if (this.rule === null) {
104
+ throw Error('You should set [rule] name');
105
+ }
106
+ if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {
107
+ throw Error('For [rule] "Length" need set [min] and [max]');
108
+ }
109
+ if (this.rule === PasswordRules.Length) {
110
+ this.checkRule = this.checkLengthRule;
111
+ }
112
+ else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit, PasswordRules.SpecialSymbols]
113
+ .includes(this.rule)) {
114
+ this.regex = this.regex || regExpPasswordValidator[this.rule];
115
+ this.checkRule = this.checkRegexRule;
116
+ }
117
+ else {
118
+ throw Error(`Unknown [rule]=${this.rule}`);
119
+ }
120
+ this.formField.control.stateChanges
121
+ .subscribe(this.checkValue);
122
+ }
123
+ checkLengthRule(value) {
124
+ return value.length >= this.min && value.length <= this.max;
125
+ }
126
+ checkRegexRule(value) {
127
+ var _a;
128
+ return !!((_a = this.regex) === null || _a === void 0 ? void 0 : _a.test(value));
129
+ }
130
+ isValueChanged() {
131
+ return this.lastControlValue !== this.formField.control.value;
132
+ }
133
+ }
134
+ /** @nocollapse */ /** @nocollapse */ McPasswordHint.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPasswordHint, deps: [{ token: i0.ChangeDetectorRef }, { token: McFormField }], target: i0.ɵɵFactoryTarget.Component });
135
+ /** @nocollapse */ /** @nocollapse */ McPasswordHint.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McPasswordHint, selector: "mc-password-hint", inputs: { id: "id", rule: "rule", min: "min", max: "max", regex: "regex" }, host: { properties: { "class.mc-password-hint_valid": "checked", "class.mc-password-hint_invalid": "hasError", "attr.id": "id" }, classAttribute: "mc-password-hint" }, ngImport: i0, template: `
136
+ <i *ngIf="!checked" class="mc-password-hint__icon" mc-icon="mc-close-M_16"></i>
137
+ <i *ngIf="checked" class="mc-password-hint__icon" mc-icon="mc-check_16"></i>
138
+
139
+ <span class="mc-password-hint__text">
140
+ <ng-content></ng-content>
141
+ </span>
142
+ `, isInline: true, components: [{ type: i1.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPasswordHint, decorators: [{
144
+ type: Component,
145
+ args: [{
146
+ selector: 'mc-password-hint',
147
+ template: `
148
+ <i *ngIf="!checked" class="mc-password-hint__icon" mc-icon="mc-close-M_16"></i>
149
+ <i *ngIf="checked" class="mc-password-hint__icon" mc-icon="mc-check_16"></i>
150
+
151
+ <span class="mc-password-hint__text">
152
+ <ng-content></ng-content>
153
+ </span>
154
+ `,
155
+ host: {
156
+ class: 'mc-password-hint',
157
+ '[class.mc-password-hint_valid]': 'checked',
158
+ '[class.mc-password-hint_invalid]': 'hasError',
159
+ '[attr.id]': 'id'
160
+ },
161
+ changeDetection: ChangeDetectionStrategy.OnPush
162
+ }]
163
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: McFormField }]; }, propDecorators: { id: [{
164
+ type: Input
165
+ }], rule: [{
166
+ type: Input
167
+ }], min: [{
168
+ type: Input
169
+ }], max: [{
170
+ type: Input
171
+ }], regex: [{
172
+ type: Input
173
+ }] } });
174
+
64
175
  class McPrefix {
65
176
  }
66
177
  /** @nocollapse */ /** @nocollapse */ McPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -146,25 +257,35 @@ class McFormFieldBase {
146
257
  // tslint:disable-next-line:naming-convention
147
258
  const McFormFieldMixinBase = mixinColor(McFormFieldBase);
148
259
  class McFormField extends McFormFieldMixinBase {
260
+ constructor(
149
261
  // tslint:disable-next-line:naming-convention
150
- constructor(_elementRef, _changeDetectorRef) {
262
+ _elementRef, _changeDetectorRef, focusMonitor) {
151
263
  super(_elementRef);
152
264
  this._elementRef = _elementRef;
153
265
  this._changeDetectorRef = _changeDetectorRef;
266
+ this.focusMonitor = focusMonitor;
154
267
  // Unique id for the internal form field label.
155
268
  this.labelId = `mc-form-field-label-${nextUniqueId++}`;
156
269
  this.hovered = false;
157
270
  this.canCleanerClearByEsc = true;
158
271
  this.$unsubscribe = new Subject();
272
+ this.runFocusMonitor();
159
273
  }
160
274
  get hasHint() {
161
- return this.hint && this.hint.length > 0;
275
+ var _a;
276
+ return ((_a = this.hint) === null || _a === void 0 ? void 0 : _a.length) > 0;
277
+ }
278
+ get hasPasswordStrengthError() {
279
+ var _a;
280
+ return (_a = this.passwordHints) === null || _a === void 0 ? void 0 : _a.some((hint) => hint.hasError);
162
281
  }
163
282
  get hasSuffix() {
164
- return this.suffix && this.suffix.length > 0;
283
+ var _a;
284
+ return ((_a = this.suffix) === null || _a === void 0 ? void 0 : _a.length) > 0;
165
285
  }
166
286
  get hasPrefix() {
167
- return this.prefix && this.prefix.length > 0;
287
+ var _a;
288
+ return ((_a = this.prefix) === null || _a === void 0 ? void 0 : _a.length) > 0;
168
289
  }
169
290
  get hasCleaner() {
170
291
  return !!this.cleaner;
@@ -173,14 +294,15 @@ class McFormField extends McFormFieldMixinBase {
173
294
  return !!this.stepper;
174
295
  }
175
296
  get canShowCleaner() {
297
+ var _a;
176
298
  return this.hasCleaner &&
177
- this.control &&
178
- this.control.ngControl
299
+ ((_a = this.control) === null || _a === void 0 ? void 0 : _a.ngControl)
179
300
  ? this.control.ngControl.value && !this.control.disabled
180
301
  : false;
181
302
  }
182
303
  get disabled() {
183
- return this.control && this.control.disabled;
304
+ var _a;
305
+ return (_a = this.control) === null || _a === void 0 ? void 0 : _a.disabled;
184
306
  }
185
307
  get canShowStepper() {
186
308
  var _a;
@@ -189,6 +311,7 @@ class McFormField extends McFormFieldMixinBase {
189
311
  (((_a = this.control) === null || _a === void 0 ? void 0 : _a.focused) || this.hovered);
190
312
  }
191
313
  ngAfterContentInit() {
314
+ var _a;
192
315
  if (this.control.numberInput && this.hasCleaner) {
193
316
  this.cleaner = null;
194
317
  throw getMcFormFieldYouCanNotUseCleanerInNumberInputError();
@@ -200,14 +323,18 @@ class McFormField extends McFormFieldMixinBase {
200
323
  // Subscribe to changes in the child control state in order to update the form field UI.
201
324
  this.control.stateChanges
202
325
  .pipe(startWith())
203
- .subscribe(() => {
326
+ .subscribe((state) => {
327
+ var _a, _b;
328
+ if (!(state === null || state === void 0 ? void 0 : state.focused) && this.hasPasswordStrengthError) {
329
+ (_b = (_a = this.control.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.setErrors({ passwordStrength: true });
330
+ }
204
331
  this._changeDetectorRef.markForCheck();
205
332
  });
206
333
  if (this.hasStepper) {
207
334
  this.stepper.connectTo(this.control.numberInput);
208
335
  }
209
336
  // Run change detection if the value changes.
210
- const valueChanges = this.control.ngControl && this.control.ngControl.valueChanges || EMPTY;
337
+ const valueChanges = ((_a = this.control.ngControl) === null || _a === void 0 ? void 0 : _a.valueChanges) || EMPTY;
211
338
  merge(valueChanges)
212
339
  .pipe(takeUntil(this.$unsubscribe))
213
340
  .subscribe(() => this._changeDetectorRef.markForCheck());
@@ -220,11 +347,10 @@ class McFormField extends McFormFieldMixinBase {
220
347
  this._changeDetectorRef.detectChanges();
221
348
  }
222
349
  clearValue($event) {
350
+ var _a, _b, _c;
223
351
  $event.stopPropagation();
224
- if (this.control && this.control.ngControl) {
225
- this.control.ngControl.reset();
226
- this.control.focus();
227
- }
352
+ (_b = (_a = this.control) === null || _a === void 0 ? void 0 : _a.ngControl) === null || _b === void 0 ? void 0 : _b.reset();
353
+ (_c = this.control) === null || _c === void 0 ? void 0 : _c.focus();
228
354
  }
229
355
  onContainerClick($event) {
230
356
  if (this.control.onContainerClick) {
@@ -232,11 +358,14 @@ class McFormField extends McFormFieldMixinBase {
232
358
  }
233
359
  }
234
360
  onKeyDown(event) {
361
+ var _a, _b;
362
+ // tslint:disable-next-line:deprecation
363
+ if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {
364
+ this.control.toggleType();
365
+ }
235
366
  // tslint:disable-next-line:deprecation
236
367
  if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {
237
- if (this.control && this.control.ngControl) {
238
- this.control.ngControl.reset();
239
- }
368
+ (_b = (_a = this.control) === null || _a === void 0 ? void 0 : _a.ngControl) === null || _b === void 0 ? void 0 : _b.reset();
240
369
  event.preventDefault();
241
370
  }
242
371
  }
@@ -261,6 +390,7 @@ class McFormField extends McFormFieldMixinBase {
261
390
  ngOnDestroy() {
262
391
  this.$unsubscribe.next();
263
392
  this.$unsubscribe.complete();
393
+ this.stopFocusMonitor();
264
394
  }
265
395
  /** Throws an error if the form field's control is missing. */
266
396
  validateControlChild() {
@@ -268,9 +398,15 @@ class McFormField extends McFormFieldMixinBase {
268
398
  throw getMcFormFieldMissingControlError();
269
399
  }
270
400
  }
401
+ runFocusMonitor() {
402
+ this.focusMonitor.monitor(this._elementRef.nativeElement, true);
403
+ }
404
+ stopFocusMonitor() {
405
+ this.focusMonitor.stopMonitoring(this._elementRef.nativeElement);
406
+ }
271
407
  }
272
- /** @nocollapse */ /** @nocollapse */ McFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
273
- /** @nocollapse */ /** @nocollapse */ McFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McFormField, selector: "mc-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.mc-form-field_invalid": "control.errorState", "class.mc-form-field_has-prefix": "hasPrefix", "class.mc-form-field_has-suffix": "hasSuffix", "class.mc-form-field_has-cleaner": "canShowCleaner", "class.mc-form-field_has-stepper": "canShowStepper", "class.mc-disabled": "control.disabled", "class.mc-focused": "control.focused", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "mc-form-field" }, queries: [{ propertyName: "control", first: true, predicate: McFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: McStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: McCleaner, descendants: true }, { propertyName: "hint", predicate: McHint }, { propertyName: "suffix", predicate: McSuffix }, { propertyName: "prefix", predicate: McPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["mcFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-hint{display:block}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;box-sizing:border-box;padding:var(--mc-input-size-padding, 5px 16px);width:var(--mc-input-size-width, 100%);min-height:var(--mc-input-size-min-height, 30px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
408
+ /** @nocollapse */ /** @nocollapse */ McFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
409
+ /** @nocollapse */ /** @nocollapse */ McFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McFormField, selector: "mc-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.mc-form-field_invalid": "control.errorState", "class.mc-form-field_has-prefix": "hasPrefix", "class.mc-form-field_has-suffix": "hasSuffix", "class.mc-form-field_has-cleaner": "canShowCleaner", "class.mc-form-field_has-stepper": "canShowStepper", "class.mc-disabled": "control.disabled", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "mc-form-field" }, queries: [{ propertyName: "control", first: true, predicate: McFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: McStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: McCleaner, descendants: true }, { propertyName: "hint", predicate: McHint }, { propertyName: "passwordHints", predicate: McPasswordHint }, { propertyName: "suffix", predicate: McSuffix }, { propertyName: "prefix", predicate: McPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["mcFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"mc-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-form-field-type-input-password .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-hint{display:block}.mc-password-hint{display:block;padding-left:calc(16px + var(--mc-form-field-password-hint-size-icon-margin, 4px))}.mc-password-hint .mc-icon{position:absolute;left:0}.mc-form-field__hint>.mc-password-hint{margin-top:var(--mc-form-field-password-hint-size-margin-top, 8px)}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;box-sizing:border-box;padding:var(--mc-input-size-padding, 5px 16px);width:var(--mc-input-size-width, 100%);min-height:var(--mc-input-size-min-height, 30px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}.mc-password-toggle{display:flex;position:absolute;top:-1px;right:-1px;border:1px solid transparent;width:32px;height:32px;align-items:center;justify-content:center;cursor:pointer;border-top-right-radius:var(--mc-form-field-size-border-radius, 3px);border-bottom-right-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-password-toggle::-moz-focus-inner{border:0}.mc-password-toggle:focus{outline:none}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
274
410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormField, decorators: [{
275
411
  type: Component,
276
412
  args: [{ selector: 'mc-form-field', exportAs: 'mcFormField', host: {
@@ -281,7 +417,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
281
417
  '[class.mc-form-field_has-cleaner]': 'canShowCleaner',
282
418
  '[class.mc-form-field_has-stepper]': 'canShowStepper',
283
419
  '[class.mc-disabled]': 'control.disabled',
284
- '[class.mc-focused]': 'control.focused',
285
420
  '[class.ng-untouched]': 'shouldForward("untouched")',
286
421
  '[class.ng-touched]': 'shouldForward("touched")',
287
422
  '[class.ng-pristine]': 'shouldForward("pristine")',
@@ -292,8 +427,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
292
427
  '(keydown)': 'onKeyDown($event)',
293
428
  '(mouseenter)': 'onHoverChanged(true)',
294
429
  '(mouseleave)': 'onHoverChanged(false)'
295
- }, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-hint{display:block}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;box-sizing:border-box;padding:var(--mc-input-size-padding, 5px 16px);width:var(--mc-input-size-width, 100%);min-height:var(--mc-input-size-min-height, 30px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"] }]
296
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { control: [{
430
+ }, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"mc-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-form-field-type-input-password .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-hint{display:block}.mc-password-hint{display:block;padding-left:calc(16px + var(--mc-form-field-password-hint-size-icon-margin, 4px))}.mc-password-hint .mc-icon{position:absolute;left:0}.mc-form-field__hint>.mc-password-hint{margin-top:var(--mc-form-field-password-hint-size-margin-top, 8px)}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;box-sizing:border-box;padding:var(--mc-input-size-padding, 5px 16px);width:var(--mc-input-size-width, 100%);min-height:var(--mc-input-size-min-height, 30px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}.mc-password-toggle{display:flex;position:absolute;top:-1px;right:-1px;border:1px solid transparent;width:32px;height:32px;align-items:center;justify-content:center;cursor:pointer;border-top-right-radius:var(--mc-form-field-size-border-radius, 3px);border-bottom-right-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-password-toggle::-moz-focus-inner{border:0}.mc-password-toggle:focus{outline:none}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"] }]
431
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.FocusMonitor }]; }, propDecorators: { control: [{
297
432
  type: ContentChild,
298
433
  args: [McFormFieldControl, { static: false }]
299
434
  }], stepper: [{
@@ -305,6 +440,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
305
440
  }], hint: [{
306
441
  type: ContentChildren,
307
442
  args: [McHint]
443
+ }], passwordHints: [{
444
+ type: ContentChildren,
445
+ args: [McPasswordHint]
308
446
  }], suffix: [{
309
447
  type: ContentChildren,
310
448
  args: [McSuffix]
@@ -334,12 +472,14 @@ class McFormFieldModule {
334
472
  /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldModule, declarations: [McFormField,
335
473
  McFormFieldWithoutBorders,
336
474
  McHint,
475
+ McPasswordHint,
337
476
  McPrefix,
338
477
  McSuffix,
339
478
  McCleaner,
340
479
  McStepper], imports: [CommonModule, McIconModule], exports: [McFormField,
341
480
  McFormFieldWithoutBorders,
342
481
  McHint,
482
+ McPasswordHint,
343
483
  McPrefix,
344
484
  McSuffix,
345
485
  McCleaner,
@@ -352,6 +492,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
352
492
  McFormField,
353
493
  McFormFieldWithoutBorders,
354
494
  McHint,
495
+ McPasswordHint,
355
496
  McPrefix,
356
497
  McSuffix,
357
498
  McCleaner,
@@ -362,6 +503,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
362
503
  McFormField,
363
504
  McFormFieldWithoutBorders,
364
505
  McHint,
506
+ McPasswordHint,
365
507
  McPrefix,
366
508
  McSuffix,
367
509
  McCleaner,
@@ -374,5 +516,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
374
516
  * Generated bundle index. Do not edit.
375
517
  */
376
518
 
377
- export { McCleaner, McFormField, McFormFieldBase, McFormFieldControl, McFormFieldMixinBase, McFormFieldModule, McFormFieldWithoutBorders, McHint, McPrefix, McStepper, McSuffix, getMcFormFieldMissingControlError, getMcFormFieldYouCanNotUseCleanerInNumberInputError };
519
+ export { McCleaner, McFormField, McFormFieldBase, McFormFieldControl, McFormFieldMixinBase, McFormFieldModule, McFormFieldWithoutBorders, McHint, McPasswordHint, McPrefix, McStepper, McSuffix, PasswordRules, getMcFormFieldMissingControlError, getMcFormFieldYouCanNotUseCleanerInNumberInputError, regExpPasswordValidator };
378
520
  //# sourceMappingURL=ptsecurity-mosaic-form-field.mjs.map