@ptsecurity/mosaic 15.9.6 → 15.9.7

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 CHANGED
@@ -5995,10 +5995,6 @@ $backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;
5995
5995
  color: mc-color($foreground, text);
5996
5996
  }
5997
5997
 
5998
- .mc-theme-loaded-marker {
5999
- display: none;
6000
- }
6001
-
6002
5998
  .mc-primary {
6003
5999
  color: mc-color(map-get($theme, primary));
6004
6000
  }
@@ -7984,7 +7980,11 @@ $mc-datepicker-today-fade-amount: 0.2;
7984
7980
  border-color: map-get($form-field, state-hover-border);
7985
7981
  }
7986
7982
 
7987
- &.ng-invalid {
7983
+ /* stylelint-disable no-descending-specificity */
7984
+ // Invalid by McValidateDirective
7985
+ &.mc-form-field_has-validate-directive.ng-invalid,
7986
+ // Invalid by control ErrorStateMatcher
7987
+ &.mc-form-field_invalid {
7988
7988
  & .mc-form-field__container {
7989
7989
  border-color: map-get($form-field, state-invalid-border);
7990
7990
  background-color: map-get($form-field, state-invalid-background);
@@ -7997,17 +7997,18 @@ $mc-datepicker-today-fade-amount: 0.2;
7997
7997
  }
7998
7998
 
7999
7999
  &.cdk-focused {
8000
- &:not(.ng-invalid) .mc-form-field__container {
8000
+ &.mc-form-field_has-validate-directive:not(.ng-invalid) .mc-form-field__container,
8001
+ &:not(.mc-form-field_invalid) .mc-form-field__container {
8001
8002
  border-color: map-get(map-get($theme, states), focused-color);
8002
8003
  box-shadow: 0 0 0 1px map-get(map-get($theme, states), focused-color);
8003
8004
  }
8004
8005
 
8005
- &.ng-invalid .mc-form-field__container {
8006
+ &.mc-form-field_has-validate-directive.ng-invalid .mc-form-field__container,
8007
+ &.mc-form-field_invalid .mc-form-field__container {
8006
8008
  box-shadow: 0 0 0 1px mc-color($error);
8007
8009
  }
8008
8010
  }
8009
8011
 
8010
- /* stylelint-disable no-descending-specificity */
8011
8012
  &.mc-disabled .mc-form-field__container {
8012
8013
  border-color: map-get($form-field, border);
8013
8014
 
@@ -9174,7 +9175,10 @@ button {
9174
9175
  .mc-select {
9175
9176
  color: map-get($foreground, text);
9176
9177
 
9177
- &.ng-invalid {
9178
+ // Invalid by McValidateDirective
9179
+ &.mc-control_has-validate-directive.ng-invalid,
9180
+ // Invalid by control ErrorStateMatcher
9181
+ &.mc-invalid {
9178
9182
  color: mc-color($error);
9179
9183
  }
9180
9184
 
@@ -10119,7 +10123,10 @@ button {
10119
10123
  .mc-tree-select {
10120
10124
  color: map-get($foreground, text);
10121
10125
 
10122
- &.ng-invalid {
10126
+ // Invalid by McValidateDirective
10127
+ &.mc-control_has-validate-directive.ng-invalid,
10128
+ // Invalid by control ErrorStateMatcher
10129
+ &.mc-invalid {
10123
10130
  color: mc-color($error);
10124
10131
  }
10125
10132
 
@@ -1,13 +1,27 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/cdk/bidi";
4
+ /**
5
+ * Injection token that configures whether the Mosaic sanity checks are enabled.
6
+ *
7
+ * @deprecated No longer used and will be removed.
8
+ *
9
+ * @docs-private
10
+ */
4
11
  export declare const MC_SANITY_CHECKS: InjectionToken<boolean>;
12
+ /**
13
+ * @deprecated No longer used and will be removed.
14
+ *
15
+ * @docs-private
16
+ */
5
17
  export declare function mcSanityChecksFactory(): boolean;
6
18
  /**
7
19
  * Module that captures anything that should be loaded and/or run for *all* Mosaic
8
20
  * components. This includes Bidi, etc.
9
21
  *
10
- * This module should be imported to each top-level component module (e.g., McTabsModule).
22
+ * @deprecated No longer used and will be removed.
23
+ *
24
+ * @docs-private
11
25
  */
12
26
  export declare class McCommonModule {
13
27
  private _sanityChecksEnabled;
@@ -18,7 +32,6 @@ export declare class McCommonModule {
18
32
  private areChecksEnabled;
19
33
  private isTestEnv;
20
34
  private checkDoctypeIsDefined;
21
- private checkThemeIsPresent;
22
35
  static ɵfac: i0.ɵɵFactoryDeclaration<McCommonModule, [{ optional: true; }]>;
23
36
  static ɵmod: i0.ɵɵNgModuleDeclaration<McCommonModule, never, [typeof i1.BidiModule], [typeof i1.BidiModule]>;
24
37
  static ɵinj: i0.ɵɵInjectorDeclaration<McCommonModule>;
@@ -1,5 +1,14 @@
1
1
  import { FormGroupDirective, NgForm, UntypedFormControl } from '@angular/forms';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * Error state matcher that matches when a control is invalid and form is submitted.
5
+ * Requires use FormGroupDirective or NgForm.
6
+ */
7
+ export declare class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {
8
+ isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowOnFormSubmitErrorStateMatcher, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<ShowOnFormSubmitErrorStateMatcher>;
11
+ }
3
12
  /** Error state matcher that matches when a control is invalid and dirty. */
4
13
  export declare class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher {
5
14
  isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean;
@@ -41,10 +41,6 @@
41
41
  color: mc-color($foreground, text);
42
42
  }
43
43
 
44
- .mc-theme-loaded-marker {
45
- display: none;
46
- }
47
-
48
44
  .mc-primary {
49
45
  color: mc-color(map.get($theme, primary));
50
46
  }
@@ -1,11 +1,22 @@
1
1
  import { BidiModule } from '@angular/cdk/bidi';
2
2
  import { NgModule, InjectionToken, Optional, Inject, isDevMode } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- // Injection token that configures whether the Mosaic sanity checks are enabled.
4
+ /**
5
+ * Injection token that configures whether the Mosaic sanity checks are enabled.
6
+ *
7
+ * @deprecated No longer used and will be removed.
8
+ *
9
+ * @docs-private
10
+ */
5
11
  export const MC_SANITY_CHECKS = new InjectionToken('mc-sanity-checks', {
6
12
  providedIn: 'root',
7
13
  factory: mcSanityChecksFactory
8
14
  });
15
+ /**
16
+ * @deprecated No longer used and will be removed.
17
+ *
18
+ * @docs-private
19
+ */
9
20
  export function mcSanityChecksFactory() {
10
21
  return true;
11
22
  }
@@ -13,7 +24,9 @@ export function mcSanityChecksFactory() {
13
24
  * Module that captures anything that should be loaded and/or run for *all* Mosaic
14
25
  * components. This includes Bidi, etc.
15
26
  *
16
- * This module should be imported to each top-level component module (e.g., McTabsModule).
27
+ * @deprecated No longer used and will be removed.
28
+ *
29
+ * @docs-private
17
30
  */
18
31
  export class McCommonModule {
19
32
  constructor(_sanityChecksEnabled) {
@@ -28,7 +41,6 @@ export class McCommonModule {
28
41
  this._window = typeof window === 'object' && window ? window : null;
29
42
  if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {
30
43
  this.checkDoctypeIsDefined();
31
- this.checkThemeIsPresent();
32
44
  this.hasDoneGlobalChecks = true;
33
45
  }
34
46
  }
@@ -39,7 +51,7 @@ export class McCommonModule {
39
51
  // Whether the code is running in tests.
40
52
  isTestEnv() {
41
53
  // tslint:disable-next-line
42
- return this._window && (this._window['__karma__'] || this._window['jasmine']);
54
+ return this._window && (this._window['__karma__'] || this._window['jasmine'] || this._window['__jest__']);
43
55
  }
44
56
  checkDoctypeIsDefined() {
45
57
  if (this._document && !this._document.doctype) {
@@ -47,23 +59,6 @@ export class McCommonModule {
47
59
  'some Mosaic components not to behave as expected.');
48
60
  }
49
61
  }
50
- checkThemeIsPresent() {
51
- if (this._document && typeof getComputedStyle === 'function') {
52
- const testElement = this._document.createElement('div');
53
- testElement.classList.add('mc-theme-loaded-marker');
54
- this._document.body.appendChild(testElement);
55
- const computedStyle = getComputedStyle(testElement);
56
- // In some situations, the computed style of the test element can be null. For example in
57
- // Firefox, the computed style is null if an application is running inside of a hidden iframe.
58
- // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397
59
- if (computedStyle && computedStyle.display !== 'none') {
60
- console.warn('Could not find Mosaic core theme. Most Mosaic ' +
61
- 'components may not work as expected. For more info refer ' +
62
- 'to the theming guide: link there');
63
- }
64
- this._document.body.removeChild(testElement);
65
- }
66
- }
67
62
  }
68
63
  /** @nocollapse */ McCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCommonModule, deps: [{ token: MC_SANITY_CHECKS, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
69
64
  /** @nocollapse */ McCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: McCommonModule, imports: [BidiModule], exports: [BidiModule] });
@@ -80,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
80
75
  type: Inject,
81
76
  args: [MC_SANITY_CHECKS]
82
77
  }] }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL2NvbW1vbi1iZWhhdmlvcnMvY29tbW9uLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3RGLGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBVSxrQkFBa0IsRUFBRTtJQUM1RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUscUJBQXFCO0NBQ2pDLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxxQkFBcUI7SUFDakMsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLGNBQWM7SUFZdkIsWUFBMEQsb0JBQTZCO1FBQTdCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUztRQVh2Riw0RkFBNEY7UUFDcEYsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDZDQUE2QztRQUM3Qyx1REFBdUQ7UUFDL0MsY0FBUyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRS9FLDJDQUEyQztRQUMzQyx1REFBdUQ7UUFDL0MsWUFBTyxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBR25FLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDdEQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsZ0JBQWdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsU0FBUztRQUNiLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQ1IsMkRBQTJEO2dCQUMzRCxtREFBbUQsQ0FDdEQsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxVQUFVLEVBQUU7WUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFN0MsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFcEQseUZBQXlGO1lBQ3pGLDhGQUE4RjtZQUM5RiwyREFBMkQ7WUFDM0QsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQ1IsZ0RBQWdEO29CQUNoRCwyREFBMkQ7b0JBQzNELGtDQUFrQyxDQUNyQyxDQUFDO2FBQ0w7WUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEQ7SUFDTCxDQUFDOzs4SEE5RFEsY0FBYyxrQkFZUyxnQkFBZ0I7K0hBWnZDLGNBQWMsWUFIYixVQUFVLGFBQ1YsVUFBVTsrSEFFWCxjQUFjLFlBSGIsVUFBVSxFQUNWLFVBQVU7MkZBRVgsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDeEI7OzBCQWFnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpZGlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBJbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbi8vIEluamVjdGlvbiB0b2tlbiB0aGF0IGNvbmZpZ3VyZXMgd2hldGhlciB0aGUgTW9zYWljIHNhbml0eSBjaGVja3MgYXJlIGVuYWJsZWQuXG5leHBvcnQgY29uc3QgTUNfU0FOSVRZX0NIRUNLUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignbWMtc2FuaXR5LWNoZWNrcycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogbWNTYW5pdHlDaGVja3NGYWN0b3J5XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1jU2FuaXR5Q2hlY2tzRmFjdG9yeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBNb2R1bGUgdGhhdCBjYXB0dXJlcyBhbnl0aGluZyB0aGF0IHNob3VsZCBiZSBsb2FkZWQgYW5kL29yIHJ1biBmb3IgKmFsbCogTW9zYWljXG4gKiBjb21wb25lbnRzLiBUaGlzIGluY2x1ZGVzIEJpZGksIGV0Yy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBzaG91bGQgYmUgaW1wb3J0ZWQgdG8gZWFjaCB0b3AtbGV2ZWwgY29tcG9uZW50IG1vZHVsZSAoZS5nLiwgTWNUYWJzTW9kdWxlKS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQmlkaU1vZHVsZV0sXG4gICAgZXhwb3J0czogW0JpZGlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE1jQ29tbW9uTW9kdWxlIHtcbiAgICAvLyBXaGV0aGVyIHdlJ3ZlIGRvbmUgdGhlIGdsb2JhbCBzYW5pdHkgY2hlY2tzIChlLmcuIGEgdGhlbWUgaXMgbG9hZGVkLCB0aGVyZSBpcyBhIGRvY3R5cGUpLlxuICAgIHByaXZhdGUgaGFzRG9uZUdsb2JhbENoZWNrcyA9IGZhbHNlO1xuXG4gICAgLy8gUmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgYGRvY3VtZW50YCBvYmplY3QuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvcnRob2RveC1nZXR0ZXItYW5kLXNldHRlclxuICAgIHByaXZhdGUgX2RvY3VtZW50ID0gdHlwZW9mIGRvY3VtZW50ID09PSAnb2JqZWN0JyAmJiBkb2N1bWVudCA/IGRvY3VtZW50IDogbnVsbDtcblxuICAgIC8vIFJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsICd3aW5kb3cnIG9iamVjdC5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9ydGhvZG94LWdldHRlci1hbmQtc2V0dGVyXG4gICAgcHJpdmF0ZSBfd2luZG93ID0gdHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcgJiYgd2luZG93ID8gd2luZG93IDogbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUNfU0FOSVRZX0NIRUNLUykgcHJpdmF0ZSBfc2FuaXR5Q2hlY2tzRW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5hcmVDaGVja3NFbmFibGVkKCkgJiYgIXRoaXMuaGFzRG9uZUdsb2JhbENoZWNrcykge1xuICAgICAgICAgICAgdGhpcy5jaGVja0RvY3R5cGVJc0RlZmluZWQoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tUaGVtZUlzUHJlc2VudCgpO1xuICAgICAgICAgICAgdGhpcy5oYXNEb25lR2xvYmFsQ2hlY2tzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdoZXRoZXIgYW55IHNhbml0eSBjaGVja3MgYXJlIGVuYWJsZWRcbiAgICBwcml2YXRlIGFyZUNoZWNrc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zYW5pdHlDaGVja3NFbmFibGVkICYmIGlzRGV2TW9kZSgpICYmICF0aGlzLmlzVGVzdEVudigpO1xuICAgIH1cblxuICAgIC8vIFdoZXRoZXIgdGhlIGNvZGUgaXMgcnVubmluZyBpbiB0ZXN0cy5cbiAgICBwcml2YXRlIGlzVGVzdEVudigpIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHJldHVybiB0aGlzLl93aW5kb3cgJiYgKHRoaXMuX3dpbmRvd1snX19rYXJtYV9fJ10gfHwgdGhpcy5fd2luZG93WydqYXNtaW5lJ10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tEb2N0eXBlSXNEZWZpbmVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnQgJiYgIXRoaXMuX2RvY3VtZW50LmRvY3R5cGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnQ3VycmVudCBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgZG9jdHlwZS4gVGhpcyBtYXkgY2F1c2UgJyArXG4gICAgICAgICAgICAgICAgJ3NvbWUgTW9zYWljIGNvbXBvbmVudHMgbm90IHRvIGJlaGF2ZSBhcyBleHBlY3RlZC4nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1RoZW1lSXNQcmVzZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnQgJiYgdHlwZW9mIGdldENvbXB1dGVkU3R5bGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgICAgICAgIHRlc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21jLXRoZW1lLWxvYWRlZC1tYXJrZXInKTtcbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdEVsZW1lbnQpO1xuXG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIEluIHNvbWUgc2l0dWF0aW9ucywgdGhlIGNvbXB1dGVkIHN0eWxlIG9mIHRoZSB0ZXN0IGVsZW1lbnQgY2FuIGJlIG51bGwuIEZvciBleGFtcGxlIGluXG4gICAgICAgICAgICAvLyBGaXJlZm94LCB0aGUgY29tcHV0ZWQgc3R5bGUgaXMgbnVsbCBpZiBhbiBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluc2lkZSBvZiBhIGhpZGRlbiBpZnJhbWUuXG4gICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODM5N1xuICAgICAgICAgICAgaWYgKGNvbXB1dGVkU3R5bGUgJiYgY29tcHV0ZWRTdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICdDb3VsZCBub3QgZmluZCBNb3NhaWMgY29yZSB0aGVtZS4gTW9zdCBNb3NhaWMgJyArXG4gICAgICAgICAgICAgICAgICAgICdjb21wb25lbnRzIG1heSBub3Qgd29yayBhcyBleHBlY3RlZC4gRm9yIG1vcmUgaW5mbyByZWZlciAnICtcbiAgICAgICAgICAgICAgICAgICAgJ3RvIHRoZSB0aGVtaW5nIGd1aWRlOiBsaW5rIHRoZXJlJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdEVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL2NvbW1vbi1iZWhhdmlvcnMvY29tbW9uLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3RGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFVLGtCQUFrQixFQUFFO0lBQzVFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxxQkFBcUI7Q0FDakMsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxxQkFBcUI7SUFDakMsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFLSCxNQUFNLE9BQU8sY0FBYztJQVl2QixZQUEwRCxvQkFBNkI7UUFBN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBWHZGLDRGQUE0RjtRQUNwRix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsNkNBQTZDO1FBQzdDLHVEQUF1RDtRQUMvQyxjQUFTLEdBQUcsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFL0UsMkNBQTJDO1FBQzNDLHVEQUF1RDtRQUMvQyxZQUFPLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFHbkUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN0RCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELHdDQUF3QztJQUNoQyxnQkFBZ0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLElBQUksU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELHdDQUF3QztJQUNoQyxTQUFTO1FBQ2IsMkJBQTJCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUMzQyxPQUFPLENBQUMsSUFBSSxDQUNSLDJEQUEyRDtnQkFDM0QsbURBQW1ELENBQ3RELENBQUM7U0FDTDtJQUNMLENBQUM7OzhIQXJDUSxjQUFjLGtCQVlTLGdCQUFnQjsrSEFadkMsY0FBYyxZQUhiLFVBQVUsYUFDVixVQUFVOytIQUVYLGNBQWMsWUFIYixVQUFVLEVBQ1YsVUFBVTsyRkFFWCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUN4Qjs7MEJBYWdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmlkaU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE5nTW9kdWxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIEluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjb25maWd1cmVzIHdoZXRoZXIgdGhlIE1vc2FpYyBzYW5pdHkgY2hlY2tzIGFyZSBlbmFibGVkLlxuICpcbiAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgTUNfU0FOSVRZX0NIRUNLUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignbWMtc2FuaXR5LWNoZWNrcycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogbWNTYW5pdHlDaGVja3NGYWN0b3J5XG59KTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkLlxuICpcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1jU2FuaXR5Q2hlY2tzRmFjdG9yeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBNb2R1bGUgdGhhdCBjYXB0dXJlcyBhbnl0aGluZyB0aGF0IHNob3VsZCBiZSBsb2FkZWQgYW5kL29yIHJ1biBmb3IgKmFsbCogTW9zYWljXG4gKiBjb21wb25lbnRzLiBUaGlzIGluY2x1ZGVzIEJpZGksIGV0Yy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkLlxuICpcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQmlkaU1vZHVsZV0sXG4gICAgZXhwb3J0czogW0JpZGlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE1jQ29tbW9uTW9kdWxlIHtcbiAgICAvLyBXaGV0aGVyIHdlJ3ZlIGRvbmUgdGhlIGdsb2JhbCBzYW5pdHkgY2hlY2tzIChlLmcuIGEgdGhlbWUgaXMgbG9hZGVkLCB0aGVyZSBpcyBhIGRvY3R5cGUpLlxuICAgIHByaXZhdGUgaGFzRG9uZUdsb2JhbENoZWNrcyA9IGZhbHNlO1xuXG4gICAgLy8gUmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgYGRvY3VtZW50YCBvYmplY3QuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvcnRob2RveC1nZXR0ZXItYW5kLXNldHRlclxuICAgIHByaXZhdGUgX2RvY3VtZW50ID0gdHlwZW9mIGRvY3VtZW50ID09PSAnb2JqZWN0JyAmJiBkb2N1bWVudCA/IGRvY3VtZW50IDogbnVsbDtcblxuICAgIC8vIFJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsICd3aW5kb3cnIG9iamVjdC5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9ydGhvZG94LWdldHRlci1hbmQtc2V0dGVyXG4gICAgcHJpdmF0ZSBfd2luZG93ID0gdHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcgJiYgd2luZG93ID8gd2luZG93IDogbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUNfU0FOSVRZX0NIRUNLUykgcHJpdmF0ZSBfc2FuaXR5Q2hlY2tzRW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5hcmVDaGVja3NFbmFibGVkKCkgJiYgIXRoaXMuaGFzRG9uZUdsb2JhbENoZWNrcykge1xuICAgICAgICAgICAgdGhpcy5jaGVja0RvY3R5cGVJc0RlZmluZWQoKTtcbiAgICAgICAgICAgIHRoaXMuaGFzRG9uZUdsb2JhbENoZWNrcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIGFueSBzYW5pdHkgY2hlY2tzIGFyZSBlbmFibGVkXG4gICAgcHJpdmF0ZSBhcmVDaGVja3NFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2FuaXR5Q2hlY2tzRW5hYmxlZCAmJiBpc0Rldk1vZGUoKSAmJiAhdGhpcy5pc1Rlc3RFbnYoKTtcbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIHRoZSBjb2RlIGlzIHJ1bm5pbmcgaW4gdGVzdHMuXG4gICAgcHJpdmF0ZSBpc1Rlc3RFbnYoKSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgICAgICByZXR1cm4gdGhpcy5fd2luZG93ICYmICh0aGlzLl93aW5kb3dbJ19fa2FybWFfXyddIHx8IHRoaXMuX3dpbmRvd1snamFzbWluZSddIHx8IHRoaXMuX3dpbmRvd1snX19qZXN0X18nXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0RvY3R5cGVJc0RlZmluZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kb2N1bWVudCAmJiAhdGhpcy5fZG9jdW1lbnQuZG9jdHlwZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdDdXJyZW50IGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBkb2N0eXBlLiBUaGlzIG1heSBjYXVzZSAnICtcbiAgICAgICAgICAgICAgICAnc29tZSBNb3NhaWMgY29tcG9uZW50cyBub3QgdG8gYmVoYXZlIGFzIGV4cGVjdGVkLidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,19 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * Error state matcher that matches when a control is invalid and form is submitted.
5
+ * Requires use FormGroupDirective or NgForm.
6
+ */
7
+ export class ShowOnFormSubmitErrorStateMatcher {
8
+ isErrorState(control, form) {
9
+ return !!(control?.invalid && form?.submitted);
10
+ }
11
+ }
12
+ /** @nocollapse */ ShowOnFormSubmitErrorStateMatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
+ /** @nocollapse */ ShowOnFormSubmitErrorStateMatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, decorators: [{
15
+ type: Injectable
16
+ }] });
3
17
  /** Error state matcher that matches when a control is invalid and dirty. */
4
18
  export class ShowOnDirtyErrorStateMatcher {
5
19
  isErrorState(control, form) {
@@ -23,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
23
37
  type: Injectable,
24
38
  args: [{ providedIn: 'root' }]
25
39
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL2Vycm9yL2Vycm9yLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsNEVBQTRFO0FBRTVFLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsWUFBWSxDQUFDLE9BQWtDLEVBQUUsSUFBd0M7UUFDckYsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDOzs0SUFIUSw0QkFBNEI7Z0pBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVOztBQU9YLGdHQUFnRztBQUVoRyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQVksQ0FBQyxPQUFrQyxFQUFFLElBQXdDO1FBQ3JGLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7aUlBSFEsaUJBQWlCO3FJQUFqQixpQkFBaUIsY0FESixNQUFNOzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0sIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuXG4vKiogRXJyb3Igc3RhdGUgbWF0Y2hlciB0aGF0IG1hdGNoZXMgd2hlbiBhIGNvbnRyb2wgaXMgaW52YWxpZCBhbmQgZGlydHkuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2hvd09uRGlydHlFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgICBpc0Vycm9yU3RhdGUoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sIHwgbnVsbCwgZm9ybTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgKGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQpKSk7XG4gICAgfVxufVxuXG4vKiogUHJvdmlkZXIgdGhhdCBkZWZpbmVzIGhvdyBmb3JtIGNvbnRyb2xzIGJlaGF2ZSB3aXRoIHJlZ2FyZHMgdG8gZGlzcGxheWluZyBlcnJvciBtZXNzYWdlcy4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRXJyb3JTdGF0ZU1hdGNoZXIge1xuICAgIGlzRXJyb3JTdGF0ZShjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiAoY29udHJvbC50b3VjaGVkIHx8IChmb3JtICYmIGZvcm0uc3VibWl0dGVkKSkpO1xuICAgIH1cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL2Vycm9yL2Vycm9yLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0M7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGlDQUFpQztJQUMxQyxZQUFZLENBQUMsT0FBa0MsRUFBRSxJQUF3QztRQUNyRixPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O2lKQUhRLGlDQUFpQztxSkFBakMsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVU7O0FBT1gsNEVBQTRFO0FBRTVFLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsWUFBWSxDQUFDLE9BQWtDLEVBQUUsSUFBd0M7UUFDckYsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDOzs0SUFIUSw0QkFBNEI7Z0pBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVOztBQU9YLGdHQUFnRztBQUVoRyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQVksQ0FBQyxPQUFrQyxFQUFFLElBQXdDO1FBQ3JGLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7aUlBSFEsaUJBQWlCO3FJQUFqQixpQkFBaUIsY0FESixNQUFNOzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0sIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuXG4vKipcbiAqIEVycm9yIHN0YXRlIG1hdGNoZXIgdGhhdCBtYXRjaGVzIHdoZW4gYSBjb250cm9sIGlzIGludmFsaWQgYW5kIGZvcm0gaXMgc3VibWl0dGVkLlxuICogUmVxdWlyZXMgdXNlIEZvcm1Hcm91cERpcmVjdGl2ZSBvciBOZ0Zvcm0uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG93T25Gb3JtU3VibWl0RXJyb3JTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XG4gICAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKGNvbnRyb2w/LmludmFsaWQgJiYgZm9ybT8uc3VibWl0dGVkKTtcbiAgICB9XG59XG5cbi8qKiBFcnJvciBzdGF0ZSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyB3aGVuIGEgY29udHJvbCBpcyBpbnZhbGlkIGFuZCBkaXJ0eS4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG93T25EaXJ0eUVycm9yU3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xuICAgIGlzRXJyb3JTdGF0ZShjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiAoY29udHJvbC5kaXJ0eSB8fCAoZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZCkpKTtcbiAgICB9XG59XG5cbi8qKiBQcm92aWRlciB0aGF0IGRlZmluZXMgaG93IGZvcm0gY29udHJvbHMgYmVoYXZlIHdpdGggcmVnYXJkcyB0byBkaXNwbGF5aW5nIGVycm9yIG1lc3NhZ2VzLiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFcnJvclN0YXRlTWF0Y2hlciB7XG4gICAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgKGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQpKSk7XG4gICAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('15.9.6+sha-8c96688');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcnNpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNS45LjYrc2hhLThjOTY2ODgnKTtcbiJdfQ==
2
+ export const VERSION = new Version('15.9.7+sha-1976033');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcnNpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNS45Ljcrc2hhLTE5NzYwMzMnKTtcbiJdfQ==
@@ -1,12 +1,13 @@
1
- import { ChangeDetectorRef, Directive, forwardRef, Inject, Optional, Self } from '@angular/core';
1
+ import { ChangeDetectorRef, Directive, ElementRef, forwardRef, Host, Inject, Optional, Self } from '@angular/core';
2
2
  import { FormControlName, FormGroupDirective, NG_VALIDATORS, NgControl, NgForm, NgModel, RequiredValidator, FormControlDirective } from '@angular/forms';
3
3
  import { MC_VALIDATION } from '@ptsecurity/mosaic/core';
4
4
  import { McFormFieldControl } from './form-field-control';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/forms";
7
- import * as i2 from "./form-field-control";
7
+ import * as i2 from "./form-field";
8
+ import * as i3 from "./form-field-control";
8
9
  export class McValidateDirective {
9
- constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr) {
10
+ constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr, parentFormField, elementRef) {
10
11
  this.formFieldControl = formFieldControl;
11
12
  this.rawValidators = rawValidators;
12
13
  this.ngControl = ngControl;
@@ -14,6 +15,8 @@ export class McValidateDirective {
14
15
  this.parentFormGroup = parentFormGroup;
15
16
  this.mcValidation = mcValidation;
16
17
  this.cdr = cdr;
18
+ this.parentFormField = parentFormField;
19
+ this.elementRef = elementRef;
17
20
  }
18
21
  get isNgModel() {
19
22
  return this.ngControl instanceof NgModel;
@@ -35,6 +38,8 @@ export class McValidateDirective {
35
38
  }
36
39
  ngAfterContentInit() {
37
40
  if (this.mcValidation.useValidation) {
41
+ this.parentFormField?.elementRef.nativeElement.classList.add('mc-form-field_has-validate-directive');
42
+ this.elementRef.nativeElement.classList.add('mc-control_has-validate-directive');
38
43
  this.setMosaicValidation();
39
44
  }
40
45
  }
@@ -120,7 +125,7 @@ export class McValidateDirective {
120
125
  });
121
126
  }
122
127
  }
123
- /** @nocollapse */ McValidateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McValidateDirective, deps: [{ token: forwardRef(() => McFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: MC_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
128
+ /** @nocollapse */ McValidateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McValidateDirective, deps: [{ token: forwardRef(() => McFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: MC_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.McFormField, host: true, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
124
129
  /** @nocollapse */ McValidateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: McValidateDirective, selector: "\n input[mcInput],\n input[mcInputPassword],\n input[mcTimepicker],\n input[mcDatepicker],\n textarea[mcTextarea],\n mc-select,\n mc-tree-select,\n mc-tag-list\n ", exportAs: ["McValidate"], ngImport: i0 });
125
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McValidateDirective, decorators: [{
126
131
  type: Directive,
@@ -137,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
137
142
  `,
138
143
  exportAs: 'McValidate'
139
144
  }]
140
- }], ctorParameters: function () { return [{ type: i2.McFormFieldControl, decorators: [{
145
+ }], ctorParameters: function () { return [{ type: i3.McFormFieldControl, decorators: [{
141
146
  type: Inject,
142
147
  args: [forwardRef(() => McFormFieldControl)]
143
148
  }] }, { type: undefined, decorators: [{
@@ -160,5 +165,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
160
165
  }, {
161
166
  type: Inject,
162
167
  args: [MC_VALIDATION]
163
- }] }, { type: i0.ChangeDetectorRef }]; } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2Zvcm0tZmllbGQvdmFsaWRhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsU0FBUyxFQUNULE1BQU0sRUFDTixPQUFPLEVBQ1AsaUJBQWlCLEVBSWpCLG9CQUFvQixFQUN2QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFSCxhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFnQjFELE1BQU0sT0FBTyxtQkFBbUI7SUF5QjVCLFlBQzBELGdCQUF5QyxFQUM3QyxhQUEwQixFQUNoRCxTQUFvQixFQUM1QixVQUFrQixFQUNsQixlQUFtQyxFQUNaLFlBQWlDLEVBQ3BFLEdBQXNCO1FBTndCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDN0Msa0JBQWEsR0FBYixhQUFhLENBQWE7UUFDaEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNwRSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUMvQixDQUFDO0lBaENKLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxlQUFlLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsWUFBWSxvQkFBb0IsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDakQsQ0FBQztJQVlELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUU7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQXdCLEVBQUUsU0FBc0I7UUFDMUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV6QixPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtZQUN2Qiw4Q0FBOEM7WUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxNQUFhLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGlCQUFrQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBRXJFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQztTQUNMO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1NBQzdDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNyRCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFRCxrQ0FBa0M7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7WUFDaEQsOENBQThDO1lBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUU1QyxJQUFJLFNBQVMsWUFBWSxpQkFBaUIsRUFBRTtnQkFDeEMsb0NBQW9DO2dCQUNwQyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtvQkFDdkUsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7d0JBQUUsT0FBTyxJQUFJLENBQUM7cUJBQUU7b0JBRWhELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDckQsQ0FBQyxDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gscUNBQXFDO2dCQUNyQyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtvQkFDdkUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUFFLE9BQU8sSUFBSSxDQUFDO3FCQUFFO29CQUVuRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQzthQUNMO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUNBQWlDO1FBQzdCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztRQUUzRCx5REFBeUQ7UUFDekQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsUUFBUSxFQUFFO1lBQzNFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxpQkFBa0IsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWM7YUFDaEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLG9DQUFvQztZQUNwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFFBQVEsRUFBRTtnQkFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsaUJBQWtCLENBQUMsQ0FBQzthQUNsRTtZQUVELHFDQUFxQztZQUNyQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsaUJBQWtCLENBQUMsQ0FBQzthQUNsRTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7bUlBM0hRLG1CQUFtQixrQkEwQmhCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxhQUNoQixhQUFhLHNMQUlyQixhQUFhO3VIQS9CNUIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBYi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFOzs7Ozs7Ozs7S0FTVDtvQkFDRCxRQUFRLEVBQUUsWUFBWTtpQkFDekI7OzBCQTJCUSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs7MEJBQzNDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3hDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTmdDb250cm9sLFxuICAgIE5nRm9ybSxcbiAgICBOZ01vZGVsLFxuICAgIFJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgTWNWYWxpZGF0aW9uT3B0aW9ucyxcbiAgICBNQ19WQUxJREFUSU9OXG59IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcblxuXG5pbXBvcnQgeyBNY0Zvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBcbiAgICAgICAgaW5wdXRbbWNJbnB1dF0sXG4gICAgICAgIGlucHV0W21jSW5wdXRQYXNzd29yZF0sXG4gICAgICAgIGlucHV0W21jVGltZXBpY2tlcl0sXG4gICAgICAgIGlucHV0W21jRGF0ZXBpY2tlcl0sXG4gICAgICAgIHRleHRhcmVhW21jVGV4dGFyZWFdLFxuICAgICAgICBtYy1zZWxlY3QsXG4gICAgICAgIG1jLXRyZWUtc2VsZWN0LFxuICAgICAgICBtYy10YWctbGlzdFxuICAgIGAsXG4gICAgZXhwb3J0QXM6ICdNY1ZhbGlkYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBNY1ZhbGlkYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgZ2V0IGlzTmdNb2RlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgaXNGb3JtQ29udHJvbE5hbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb3JtQ29udHJvbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xEaXJlY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkYXRpb25Db250cm9sKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uY29udHJvbCB8fCB0aGlzLm5nQ29udHJvbDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRGb3JtIHx8IHRoaXMucGFyZW50Rm9ybUdyb3VwO1xuICAgIH1cblxuICAgIGdldCBoYXNOb3RTdWJtaXR0ZWRQYXJlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudCAmJiAhdGhpcy5wYXJlbnQuc3VibWl0dGVkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWNGb3JtRmllbGRDb250cm9sKSkgcHJpdmF0ZSBmb3JtRmllbGRDb250cm9sOiBNY0Zvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHB1YmxpYyByYXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JbXSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQ19WQUxJREFUSU9OKSBwcml2YXRlIG1jVmFsaWRhdGlvbjogTWNWYWxpZGF0aW9uT3B0aW9ucyxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5tY1ZhbGlkYXRpb24udXNlVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWxpZFN0YXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbik6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLyoqIFRoaXMgZnVuY3Rpb24gZG8gbmV4dDpcbiAgICAgKiAtIHJ1biB2YWxpZGF0aW9uIG9uIHN1Ym1pdHRpbmcgcGFyZW50IGZvcm1cbiAgICAgKiAtIHByZXZlbnQgdmFsaWRhdGlvbiBpbiByZXF1aXJlZCB2YWxpZGF0b3IgaWYgZm9ybSBkb2Vzbid0IHN1Ym1pdHRlZFxuICAgICAqIC0gaWYgY29udHJvbCBoYXMgZm9jdXMgdmFsaWRhdGlvbiB3aWxsIGJlIHByZXZlbnRlZFxuICAgICAqL1xuICAgIHNldE1vc2FpY1ZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uQ29udHJvbCkgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAodGhpcy5wYXJlbnQ/Lm9uU3VibWl0KSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXVuYm91bmQtbWV0aG9kXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFN1Ym1pdCA9IHRoaXMucGFyZW50Lm9uU3VibWl0O1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQub25TdWJtaXQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2whLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsU3VibWl0LmNhbGwodGhpcy5wYXJlbnQsICRldmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZ01vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRm9ybUNvbnRyb2wgfHwgdGhpcy5pc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yRm9ybUNvbnRyb2woKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKSB7XG4gICAgICAgIGlmICghdGhpcy5yYXdWYWxpZGF0b3JzKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucmF3VmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3I6IFZhbGlkYXRvcikgPT4ge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11bmJvdW5kLW1ldGhvZFxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWxpZGF0ZSA9IHZhbGlkYXRvci52YWxpZGF0ZTtcblxuICAgICAgICAgICAgaWYgKHZhbGlkYXRvciBpbnN0YW5jZW9mIFJlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yLnZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzTm90U3VibWl0dGVkUGFyZW50KSB7IHJldHVybiBudWxsOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZhbGlkYXRvciA9IHRoaXMudmFsaWRhdGlvbkNvbnRyb2wudmFsaWRhdG9yO1xuXG4gICAgICAgIC8vIGNoYW5nZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiBsb2dpYyBhZnRlciBpbml0aWFsaXphdGlvblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuZXJyb3JzIS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZFN0YXRlKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wsIG9yaWdpbmFsVmFsaWRhdG9yISk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGR5bmFtaWMgdXBkYXRlc1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLnN0YXR1c0NoYW5nZXMhXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmICh0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCkgJiYgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5lcnJvcnMhLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZm9ybUZpZWxkQ29udHJvbC5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
168
+ }] }, { type: i0.ChangeDetectorRef }, { type: i2.McFormField, decorators: [{
169
+ type: Optional
170
+ }, {
171
+ type: Host
172
+ }] }, { type: i0.ElementRef }]; } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2Zvcm0tZmllbGQvdmFsaWRhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFSCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxpQkFBaUIsRUFJakIsb0JBQW9CLEVBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUVILGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUdqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFnQjFELE1BQU0sT0FBTyxtQkFBbUI7SUF5QjVCLFlBQzBELGdCQUF5QyxFQUM3QyxhQUEwQixFQUNoRCxTQUFvQixFQUM1QixVQUFrQixFQUNsQixlQUFtQyxFQUNaLFlBQWlDLEVBQ3BFLEdBQXNCLEVBQ08sZUFBbUMsRUFDdkQsVUFBbUM7UUFSRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQzdDLGtCQUFhLEdBQWIsYUFBYSxDQUFhO1FBQ2hELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDWixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDcEUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDTyxvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDdkQsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFDcEQsQ0FBQztJQWxDTCxJQUFJLFNBQVM7UUFD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LEVBQUU7Z0JBQzNHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGlCQUFrQixDQUFDLENBQUM7YUFDbEU7WUFFRCxxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGlCQUFrQixDQUFDLENBQUM7YUFDbEU7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7O21JQWhJUSxtQkFBbUIsa0JBMEJoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsYUFDaEIsYUFBYSxzTEFJckIsYUFBYTt1SEEvQjVCLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQWIvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRTs7Ozs7Ozs7O0tBU1Q7b0JBQ0QsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCOzswQkEyQlEsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7OzBCQUMzQyxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUN4QyxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFFaEMsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTmdDb250cm9sLFxuICAgIE5nRm9ybSxcbiAgICBOZ01vZGVsLFxuICAgIFJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgTWNWYWxpZGF0aW9uT3B0aW9ucyxcbiAgICBNQ19WQUxJREFUSU9OXG59IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcblxuaW1wb3J0IHsgTWNGb3JtRmllbGQgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWNGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgXG4gICAgICAgIGlucHV0W21jSW5wdXRdLFxuICAgICAgICBpbnB1dFttY0lucHV0UGFzc3dvcmRdLFxuICAgICAgICBpbnB1dFttY1RpbWVwaWNrZXJdLFxuICAgICAgICBpbnB1dFttY0RhdGVwaWNrZXJdLFxuICAgICAgICB0ZXh0YXJlYVttY1RleHRhcmVhXSxcbiAgICAgICAgbWMtc2VsZWN0LFxuICAgICAgICBtYy10cmVlLXNlbGVjdCxcbiAgICAgICAgbWMtdGFnLWxpc3RcbiAgICBgLFxuICAgIGV4cG9ydEFzOiAnTWNWYWxpZGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgTWNWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGdldCBpc05nTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2xOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybSB8fCB0aGlzLnBhcmVudEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTm90U3VibWl0dGVkUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgIXRoaXMucGFyZW50LnN1Ym1pdHRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE1jRm9ybUZpZWxkQ29udHJvbCkpIHByaXZhdGUgZm9ybUZpZWxkQ29udHJvbDogTWNGb3JtRmllbGRDb250cm9sPGFueT4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBwdWJsaWMgcmF3VmFsaWRhdG9yczogVmFsaWRhdG9yW10sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUNfVkFMSURBVElPTikgcHJpdmF0ZSBtY1ZhbGlkYXRpb246IE1jVmFsaWRhdGlvbk9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEZvcm1GaWVsZDogTWNGb3JtRmllbGQgfCBudWxsLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgKSB7IH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMubWNWYWxpZGF0aW9uLnVzZVZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50Rm9ybUZpZWxkPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWMtZm9ybS1maWVsZF9oYXMtdmFsaWRhdGUtZGlyZWN0aXZlJyk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYy1jb250cm9sX2hhcy12YWxpZGF0ZS1kaXJlY3RpdmUnKTtcblxuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWxpZFN0YXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbik6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLyoqIFRoaXMgZnVuY3Rpb24gZG8gbmV4dDpcbiAgICAgKiAtIHJ1biB2YWxpZGF0aW9uIG9uIHN1Ym1pdHRpbmcgcGFyZW50IGZvcm1cbiAgICAgKiAtIHByZXZlbnQgdmFsaWRhdGlvbiBpbiByZXF1aXJlZCB2YWxpZGF0b3IgaWYgZm9ybSBkb2Vzbid0IHN1Ym1pdHRlZFxuICAgICAqIC0gaWYgY29udHJvbCBoYXMgZm9jdXMgdmFsaWRhdGlvbiB3aWxsIGJlIHByZXZlbnRlZFxuICAgICAqL1xuICAgIHNldE1vc2FpY1ZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uQ29udHJvbCkgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAodGhpcy5wYXJlbnQ/Lm9uU3VibWl0KSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXVuYm91bmQtbWV0aG9kXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFN1Ym1pdCA9IHRoaXMucGFyZW50Lm9uU3VibWl0O1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQub25TdWJtaXQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2whLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsU3VibWl0LmNhbGwodGhpcy5wYXJlbnQsICRldmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZ01vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRm9ybUNvbnRyb2wgfHwgdGhpcy5pc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yRm9ybUNvbnRyb2woKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKSB7XG4gICAgICAgIGlmICghdGhpcy5yYXdWYWxpZGF0b3JzKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucmF3VmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3I6IFZhbGlkYXRvcikgPT4ge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11bmJvdW5kLW1ldGhvZFxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWxpZGF0ZSA9IHZhbGlkYXRvci52YWxpZGF0ZTtcblxuICAgICAgICAgICAgaWYgKHZhbGlkYXRvciBpbnN0YW5jZW9mIFJlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yLnZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzTm90U3VibWl0dGVkUGFyZW50KSB7IHJldHVybiBudWxsOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZhbGlkYXRvciA9IHRoaXMudmFsaWRhdGlvbkNvbnRyb2wudmFsaWRhdG9yO1xuXG4gICAgICAgIC8vIGNoYW5nZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiBsb2dpYyBhZnRlciBpbml0aWFsaXphdGlvblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuZXJyb3JzIS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZFN0YXRlKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wsIG9yaWdpbmFsVmFsaWRhdG9yISk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGR5bmFtaWMgdXBkYXRlc1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLnN0YXR1c0NoYW5nZXMhXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmICh0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCkgJiYgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5lcnJvcnMhLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZm9ybUZpZWxkQ29udHJvbC5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCBvcmlnaW5hbFZhbGlkYXRvciEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -46,7 +46,7 @@ export class McToastComponent {
46
46
  };
47
47
  }
48
48
  get hasDismiss() {
49
- return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;
49
+ return this.data.hasDismiss ?? true;
50
50
  }
51
51
  get isFocusedOrHovered() {
52
52
  return this.hovered.getValue() || this.focused.getValue();
@@ -76,7 +76,7 @@ export class McToastComponent {
76
76
  }
77
77
  }
78
78
  /** @nocollapse */ McToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McToastComponent, deps: [{ token: i1.McToastData }, { token: forwardRef(() => McToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
79
- /** @nocollapse */ McToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McToastComponent, selector: "mc-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
79
+ /** @nocollapse */ McToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McToastComponent, selector: "mc-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column;white-space:pre-wrap}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin-top:6px;margin-right:-8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McToastComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'mc-toast', host: {
@@ -89,9 +89,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
89
89
  '(mouseenter)': 'hovered.next(true)',
90
90
  '(mouseleave)': 'hovered.next(false)',
91
91
  '(keydown.esc)': 'close()'
92
- }, animations: [mcToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"] }]
92
+ }, animations: [mcToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column;white-space:pre-wrap}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin-top:6px;margin-right:-8px}\n"] }]
93
93
  }], ctorParameters: function () { return [{ type: i1.McToastData }, { type: i6.McToastService, decorators: [{
94
94
  type: Inject,
95
95
  args: [forwardRef(() => McToastService)]
96
96
  }] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }]; } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RvYXN0L3RvYXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBRzNDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQXVCWCxNQUFNLE9BQU8sZ0JBQWdCO0lBOEJ6QixZQUNhLElBQWlCLEVBQ3lCLE9BQXVCLEVBQ25FLFVBQXNCLEVBQ3JCLFlBQTBCO1FBSHpCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDeUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDbkUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpDdEMsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFNUIsbUJBQWMs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QyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDOztnSUFuRlEsZ0JBQWdCLDZDQWdDYixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO29IQWhDbkMsZ0JBQWdCLG9ZQzVDN0IseXNHQTRFQSxrOEREcENnQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQzsyRkFJakMsZ0JBQWdCO2tCQXJCNUIsU0FBUzsrQkFDSSxVQUFVLFFBR2Q7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFNBQVMsRUFBRSxZQUFZO3dCQUN2Qiw4QkFBOEIsRUFBRSxZQUFZO3dCQUM1QyxVQUFVLEVBQUUsZ0JBQWdCO3dCQUM1QixnQkFBZ0IsRUFBRSxxQkFBcUI7d0JBQ3ZDLGVBQWUsRUFBRSxxQkFBcUI7d0JBRXRDLGNBQWMsRUFBRSxvQkFBb0I7d0JBQ3BDLGNBQWMsRUFBRSxxQkFBcUI7d0JBRXJDLGVBQWUsRUFBRSxTQUFTO3FCQUM3QixjQUNXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLG1CQUN6Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFrQ2hDLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgbWNUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWNUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWNUb2FzdERhdGEgfSBmcm9tICcuL3RvYXN0LnR5cGUnO1xuXG5cbmxldCBpZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtdG9hc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtdG9hc3QnLFxuICAgICAgICAnW2NsYXNzXSc6ICd0b2FzdFN0eWxlJyxcbiAgICAgICAgJ1tjbGFzcy5tYy10b2FzdF9kaXNtaXNzaWJsZV0nOiAnaGFzRGlzbWlzcycsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcbiAgICAgICAgJyhAc3RhdGUuZG9uZSknOiAnb25BbmltYXRpb24oJGV2ZW50KScsXG5cbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknLFxuXG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2Nsb3NlKCknXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbbWNUb2FzdEFuaW1hdGlvbnMudG9hc3RTdGF0ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNY1RvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICB0aGVtZVBhbGV0dGUgPSBUaGVtZVBhbGV0dGU7XG5cbiAgICBhbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZWFkb25seSBmb2N1c2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBpZCA9IGlkKys7XG4gICAgdHRsO1xuICAgIGRlbGF5O1xuXG4gICAgJGltcGxpY2l0O1xuXG4gICAgZ2V0IHRvYXN0U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYG1jLXRvYXN0XyR7dGhpcy5kYXRhLnN0eWxlIHx8ICdpbmZvJ31gXTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBoYXNEaXNtaXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmhhc0Rpc21pc3MgPT09IHVuZGVmaW5lZCA/IHRydWUgOiB0aGlzLmRhdGEuaGFzRGlzbWlzcztcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkT3JIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgfHwgdGhpcy5mb2N1c2VkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGRhdGE6IE1jVG9hc3REYXRhLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWNUb2FzdFNlcnZpY2UpKSByZWFkb25seSBzZXJ2aWNlOiBNY1RvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy4kaW1wbGljaXQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQuc3Vic2NyaWJlKHRoaXMuc2VydmljZS5ob3ZlcmVkKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuZm9jdXNlZCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5ob3ZlcmVkLCB0aGlzLmZvY3VzZWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLCBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50dGwgPT09IDApIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnR0bCA9IHRoaXMudHRsIDwgdGhpcy5kZWxheSA/IHRoaXMuZGVsYXkgOiB0aGlzLnR0bDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BGb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5uZXh0KGZhbHNlKTtcblxuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuaGlkZSh0aGlzLmlkKTtcbiAgICB9XG5cbiAgICBpc1RlbXBsYXRlUmVmKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uKCRldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFuaW1hdGlvbi5uZXh0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAgICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHRoaXMuZm9jdXNlZC5uZXh0KCEhb3JpZ2luKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLXRvYXN0X193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1jLXRvYXN0X19pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmljb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuaWNvbilcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF0YS5pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkYXRhLnN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1pbmZvXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtc3VjY2Vzc18xNlwiIGNsYXNzPVwibWMtdG9hc3RfX2ljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2FybmluZydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWVycm9yXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWVycm9yXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy10b2FzdF9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnRpdGxlXCIgY2xhc3M9XCJtYy10b2FzdF9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLnRpdGxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudCBtYy10b2FzdF9fY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICBtYy1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNEaXNtaXNzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIj5cblxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1jLWljb25fbGlnaHRcIiBtYy1pY29uPVwibWMtY2xvc2UtTF8xNlwiIFtjb2xvcl09XCJ0aGVtZVBhbGV0dGUuU2Vjb25kYXJ5XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxwPnt7IGRhdGEudGl0bGUgfX08L3A+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEuY2FwdGlvblwiIGNsYXNzPVwibWMtdG9hc3RfX2NhcHRpb25cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEuY2FwdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY2FwdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pXCI+e3sgZGF0YS5jYXB0aW9uIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLmNvbnRlbnRcIiBjbGFzcz1cIm1jLXRvYXN0X19jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmNvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGVSZWYoZGF0YS5jb250ZW50KVwiPnt7IGRhdGEuY29udGVudCB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5hY3Rpb25zXCIgY2xhc3M9XCJtYy10b2FzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYoZGF0YS5hY3Rpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5hY3Rpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucylcIj57eyBkYXRhLmFjdGlvbnMgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RvYXN0L3RvYXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBRzNDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQXVCWCxNQUFNLE9BQU8sZ0JBQWdCO0lBOEJ6QixZQUNhLElBQWlCLEVBQ3lCLE9BQXVCLEVBQ25FLFVBQXNCLEVBQ3JCLFlBQTBCO1FBSHpCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDeUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDbkUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpDdEMsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFNUIsbUJBQWMs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LENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDOztnSUFuRlEsZ0JBQWdCLDZDQWdDYixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO29IQWhDbkMsZ0JBQWdCLG9ZQzVDN0IsdW5HQTZFQSxrOUREckNnQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQzsyRkFJakMsZ0JBQWdCO2tCQXJCNUIsU0FBUzsrQkFDSSxVQUFVLFFBR2Q7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFNBQVMsRUFBRSxZQUFZO3dCQUN2Qiw4QkFBOEIsRUFBRSxZQUFZO3dCQUM1QyxVQUFVLEVBQUUsZ0JBQWdCO3dCQUM1QixnQkFBZ0IsRUFBRSxxQkFBcUI7d0JBQ3ZDLGVBQWUsRUFBRSxxQkFBcUI7d0JBRXRDLGNBQWMsRUFBRSxvQkFBb0I7d0JBQ3BDLGNBQWMsRUFBRSxxQkFBcUI7d0JBRXJDLGVBQWUsRUFBRSxTQUFTO3FCQUM3QixjQUNXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLG1CQUN6Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFrQ2hDLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgbWNUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWNUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWNUb2FzdERhdGEgfSBmcm9tICcuL3RvYXN0LnR5cGUnO1xuXG5cbmxldCBpZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtdG9hc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtdG9hc3QnLFxuICAgICAgICAnW2NsYXNzXSc6ICd0b2FzdFN0eWxlJyxcbiAgICAgICAgJ1tjbGFzcy5tYy10b2FzdF9kaXNtaXNzaWJsZV0nOiAnaGFzRGlzbWlzcycsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcbiAgICAgICAgJyhAc3RhdGUuZG9uZSknOiAnb25BbmltYXRpb24oJGV2ZW50KScsXG5cbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknLFxuXG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2Nsb3NlKCknXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbbWNUb2FzdEFuaW1hdGlvbnMudG9hc3RTdGF0ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNY1RvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICB0aGVtZVBhbGV0dGUgPSBUaGVtZVBhbGV0dGU7XG5cbiAgICBhbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZWFkb25seSBmb2N1c2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBpZCA9IGlkKys7XG4gICAgdHRsO1xuICAgIGRlbGF5O1xuXG4gICAgJGltcGxpY2l0O1xuXG4gICAgZ2V0IHRvYXN0U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYG1jLXRvYXN0XyR7dGhpcy5kYXRhLnN0eWxlIHx8ICdpbmZvJ31gXTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBoYXNEaXNtaXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmhhc0Rpc21pc3MgPz8gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkT3JIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgfHwgdGhpcy5mb2N1c2VkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGRhdGE6IE1jVG9hc3REYXRhLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWNUb2FzdFNlcnZpY2UpKSByZWFkb25seSBzZXJ2aWNlOiBNY1RvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy4kaW1wbGljaXQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQuc3Vic2NyaWJlKHRoaXMuc2VydmljZS5ob3ZlcmVkKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuZm9jdXNlZCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5ob3ZlcmVkLCB0aGlzLmZvY3VzZWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLCBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50dGwgPT09IDApIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnR0bCA9IHRoaXMudHRsIDwgdGhpcy5kZWxheSA/IHRoaXMuZGVsYXkgOiB0aGlzLnR0bDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BGb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5uZXh0KGZhbHNlKTtcblxuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuaGlkZSh0aGlzLmlkKTtcbiAgICB9XG5cbiAgICBpc1RlbXBsYXRlUmVmKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uKCRldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFuaW1hdGlvbi5uZXh0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAgICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHRoaXMuZm9jdXNlZC5uZXh0KCEhb3JpZ2luKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLXRvYXN0X193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1jLXRvYXN0X19pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmljb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuaWNvbilcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF0YS5pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkYXRhLnN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1pbmZvXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtc3VjY2Vzc18xNlwiIGNsYXNzPVwibWMtdG9hc3RfX2ljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2FybmluZydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWVycm9yXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWVycm9yXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy10b2FzdF9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnRpdGxlXCIgY2xhc3M9XCJtYy10b2FzdF9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLnRpdGxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpXCI+XG4gICAgICAgICAgICAgICAgPHA+e3sgZGF0YS50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5jYXB0aW9uXCIgY2xhc3M9XCJtYy10b2FzdF9fY2FwdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYoZGF0YS5jYXB0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5jYXB0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEuY2FwdGlvbilcIj57eyBkYXRhLmNhcHRpb24gfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEuY29udGVudFwiIGNsYXNzPVwibWMtdG9hc3RfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEuY29udGVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY29udGVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihkYXRhLmNvbnRlbnQpXCI+e3sgZGF0YS5jb250ZW50IH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLmFjdGlvbnNcIiBjbGFzcz1cIm1jLXRvYXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmFjdGlvbnMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmFjdGlvbnMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGVSZWYoZGF0YS5hY3Rpb25zKVwiPnt7IGRhdGEuYWN0aW9ucyB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJtYy1idXR0b25fdHJhbnNwYXJlbnQgbWMtdG9hc3RfX2Nsb3NlXCJcbiAgICAgICAgbWMtYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiaGFzRGlzbWlzc1wiXG4gICAgICAgIChjbGljayk9XCJjbG9zZSgpXCI+XG5cbiAgICAgICAgPGkgY2xhc3M9XCJtYy1pY29uX2xpZ2h0XCIgbWMtaWNvbj1cIm1jLWNsb3NlLUxfMTZcIiBbY29sb3JdPVwidGhlbWVQYWxldHRlLlNlY29uZGFyeVwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19