@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.
- package/_theming.scss +321 -121
- package/_visual.scss +79 -26
- package/design-tokens/legacy-2017/tokens/components/badge.json5 +28 -38
- package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -0
- package/design-tokens/legacy-2017/tokens/components/form-field.json5 +39 -0
- package/design-tokens/legacy-2017/tokens/components/tabs.json5 +80 -4
- package/design-tokens/legacy-2017/tokens/properties/colors.json5 +4 -0
- package/design-tokens/legacy-2017/tokens/properties/globals.json5 +20 -1
- package/design-tokens/legacy-2017/tokens.d.ts +79 -26
- package/design-tokens/pt-2022/tokens/components/badge.json5 +30 -40
- package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -0
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +40 -1
- package/design-tokens/pt-2022/tokens/components/tabs.json5 +82 -6
- package/design-tokens/pt-2022/tokens/properties/colors.json5 +4 -0
- package/design-tokens/pt-2022/tokens/properties/globals.json5 +20 -1
- package/design-tokens/pt-2022/tokens.d.ts +79 -26
- package/dl/README.md +0 -0
- package/dl/dl.component.d.ts +26 -0
- package/dl/dl.module.d.ts +10 -0
- package/dl/index.d.ts +1 -0
- package/dl/package.json +10 -0
- package/dl/ptsecurity-mosaic-dl.d.ts +5 -0
- package/dl/public-api.d.ts +2 -0
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +80 -27
- package/esm2020/design-tokens/pt-2022/tokens.mjs +80 -27
- package/esm2020/dl/dl.component.mjs +78 -0
- package/esm2020/dl/dl.module.mjs +42 -0
- package/esm2020/dl/index.mjs +2 -0
- package/esm2020/dl/ptsecurity-mosaic-dl.mjs +5 -0
- package/esm2020/dl/public-api.mjs +3 -0
- package/esm2020/form-field/form-field.mjs +44 -24
- package/esm2020/form-field/form-field.module.mjs +6 -1
- package/esm2020/form-field/hint.mjs +3 -3
- package/esm2020/form-field/password-hint.mjs +115 -0
- package/esm2020/form-field/public-api.mjs +2 -1
- package/esm2020/input/input-password.mjs +367 -0
- package/esm2020/input/input.module.mjs +48 -6
- package/esm2020/input/public-api.mjs +2 -1
- package/esm2020/sidepanel/sidepanel-directives.mjs +3 -3
- package/esm2020/tabs/tab-group.component.mjs +3 -3
- package/esm2020/tabs/tab-header.component.mjs +2 -2
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +5 -5
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +238 -79
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dl.mjs +124 -0
- package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -0
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +169 -27
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +412 -11
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +8 -8
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +238 -79
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dl.mjs +124 -0
- package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -0
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +158 -27
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +405 -11
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +8 -8
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/form-field/form-field.d.ts +9 -2
- package/form-field/form-field.module.d.ts +8 -7
- package/form-field/password-hint.d.ts +38 -0
- package/form-field/public-api.d.ts +1 -0
- package/input/input-password.d.ts +120 -0
- package/input/input.module.d.ts +7 -6
- package/input/public-api.d.ts +1 -0
- package/package.json +12 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- 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
|
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,
|
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
|
44
|
+
let nextHintUniqueId = 0;
|
44
45
|
class McHint {
|
45
46
|
constructor() {
|
46
|
-
this.id = `mc-hint-${
|
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
|
-
|
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
|
-
|
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
|
-
|
283
|
+
var _a;
|
284
|
+
return ((_a = this.suffix) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
165
285
|
}
|
166
286
|
get hasPrefix() {
|
167
|
-
|
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
|
-
|
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
|
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
|
-
|
225
|
-
|
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
|
-
|
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.
|
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
|