valtech-components 2.0.419 → 2.0.420

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/esm2022/lib/components/atoms/button/button.component.mjs +30 -102
  2. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +2 -7
  3. package/esm2022/lib/components/atoms/display/display.component.mjs +18 -101
  4. package/esm2022/lib/components/atoms/image/image.component.mjs +2 -5
  5. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +2 -12
  6. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +4 -29
  7. package/esm2022/lib/components/atoms/text/text.component.mjs +49 -171
  8. package/esm2022/lib/components/atoms/title/title.component.mjs +23 -65
  9. package/esm2022/lib/components/atoms/title/types.mjs +7 -19
  10. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +7 -53
  11. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +7 -26
  12. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +7 -42
  13. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +12 -41
  14. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -28
  15. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +2 -5
  16. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -6
  17. package/esm2022/lib/components/molecules/comment/comment.component.mjs +5 -31
  18. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +2 -23
  19. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +2 -29
  20. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -6
  21. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +16 -40
  22. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +25 -125
  23. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +4 -6
  24. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +2 -10
  25. package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +2 -4
  26. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +2 -23
  27. package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +3 -6
  28. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +9 -12
  29. package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +3 -11
  30. package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +4 -25
  31. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -34
  32. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +11 -20
  33. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +4 -6
  34. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +1 -6
  35. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -28
  36. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +7 -41
  37. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +2 -27
  38. package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +2 -10
  39. package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +7 -37
  40. package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +1 -12
  41. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +8 -54
  42. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +1 -3
  43. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -5
  44. package/esm2022/lib/services/locale.service.mjs +75 -0
  45. package/esm2022/lib/services/types.mjs +5 -3
  46. package/esm2022/public-api.mjs +2 -7
  47. package/fesm2022/valtech-components.mjs +366 -2279
  48. package/fesm2022/valtech-components.mjs.map +1 -1
  49. package/lib/components/atoms/button/button.component.d.ts +12 -37
  50. package/lib/components/atoms/countdown/countdown.component.d.ts +0 -1
  51. package/lib/components/atoms/display/display.component.d.ts +8 -60
  52. package/lib/components/atoms/image/image.component.d.ts +0 -2
  53. package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -1
  54. package/lib/components/atoms/qr-code/qr-code.component.d.ts +2 -6
  55. package/lib/components/atoms/text/text.component.d.ts +20 -68
  56. package/lib/components/atoms/title/title.component.d.ts +7 -12
  57. package/lib/components/atoms/title/types.d.ts +11 -24
  58. package/lib/components/molecules/accordion/accordion.component.d.ts +2 -9
  59. package/lib/components/molecules/alert-box/alert-box.component.d.ts +3 -8
  60. package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +2 -8
  61. package/lib/components/molecules/check-input/check-input.component.d.ts +2 -10
  62. package/lib/components/molecules/chip-group/chip-group.component.d.ts +2 -8
  63. package/lib/components/molecules/code-display/code-display.component.d.ts +0 -2
  64. package/lib/components/molecules/command-display/command-display.component.d.ts +0 -3
  65. package/lib/components/molecules/comment/comment.component.d.ts +2 -6
  66. package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -3
  67. package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -3
  68. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -1
  69. package/lib/components/molecules/glow-card/glow-card.component.d.ts +5 -9
  70. package/lib/components/molecules/language-selector/language-selector.component.d.ts +7 -19
  71. package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -2
  72. package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -1
  73. package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -1
  74. package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -3
  75. package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -3
  76. package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +3 -4
  77. package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -1
  78. package/lib/components/molecules/range-input/range-input.component.d.ts +3 -8
  79. package/lib/components/molecules/segment-control/segment-control.component.d.ts +2 -8
  80. package/lib/components/molecules/select-input/select-input.component.d.ts +2 -3
  81. package/lib/components/molecules/select-search/select-search.component.d.ts +0 -2
  82. package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -1
  83. package/lib/components/molecules/stepper/stepper.component.d.ts +2 -8
  84. package/lib/components/molecules/tabs/tabs.component.d.ts +2 -8
  85. package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +2 -6
  86. package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -1
  87. package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +2 -8
  88. package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -1
  89. package/lib/components/organisms/comment-section/comment-section.component.d.ts +2 -6
  90. package/lib/components/organisms/data-table/data-table.component.d.ts +0 -1
  91. package/lib/components/organisms/wizard/wizard.component.d.ts +0 -2
  92. package/lib/services/locale.service.d.ts +52 -0
  93. package/lib/services/types.d.ts +1 -6
  94. package/package.json +1 -1
  95. package/public-api.d.ts +1 -5
  96. package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +0 -13
  97. package/esm2022/lib/services/lang-provider/content.mjs +0 -156
  98. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +0 -530
  99. package/esm2022/lib/services/lang-provider/types.mjs +0 -23
  100. package/esm2022/lib/shared/utils/content.mjs +0 -186
  101. package/esm2022/lib/shared/utils/simple-content.mjs +0 -119
  102. package/lib/services/lang-provider/components/lang-settings.d.ts +0 -3
  103. package/lib/services/lang-provider/content.d.ts +0 -17
  104. package/lib/services/lang-provider/lang-provider.service.d.ts +0 -264
  105. package/lib/services/lang-provider/types.d.ts +0 -30
  106. package/lib/shared/utils/content.d.ts +0 -199
  107. package/lib/shared/utils/simple-content.d.ts +0 -120
@@ -1,21 +1,16 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
3
  import { IonButton, IonIcon, IonSpinner, IonText } from '@ionic/angular/standalone';
4
- import { Subscription, of } from 'rxjs';
5
- import { interpolateStaticContent } from '../../../shared/utils/simple-content';
6
4
  import { ActionType, ComponentStates } from '../../types';
7
5
  import * as i0 from "@angular/core";
8
6
  import * as i1 from "../../../services/download.service";
9
7
  import * as i2 from "../../../services/icons.service";
10
8
  import * as i3 from "../../../services/navigation.service";
11
- import * as i4 from "../../../services/lang-provider/lang-provider.service";
12
- import * as i5 from "@angular/common";
9
+ import * as i4 from "@angular/common";
13
10
  /**
14
11
  * val-button
15
12
  *
16
- * A customizable button supporting icons, loading state, navigation, and reactive content.
17
- * Supports both static text and reactive content from the content service.
18
- * Follows the same content pattern as val-text for consistency.
13
+ * A customizable button supporting icons, loading state, and navigation.
19
14
  *
20
15
  * @example Static text:
21
16
  * <val-button [props]="{
@@ -26,38 +21,18 @@ import * as i5 from "@angular/common";
26
21
  * icon: { name: 'save', slot: 'start' }
27
22
  * }" (onClick)="handler()"></val-button>
28
23
  *
29
- * @example Reactive content:
30
- * <val-button [props]="{
31
- * contentKey: 'save',
32
- * contentClass: 'MyComponent',
33
- * contentFallback: 'Save',
34
- * color: 'primary',
35
- * type: 'button',
36
- * state: 'ENABLED',
37
- * icon: { name: 'save', slot: 'start' }
38
- * }" (onClick)="handler()"></val-button>
39
- *
40
- * @example Reactive content with interpolation:
41
- * <val-button [props]="{
42
- * contentKey: 'saveCount',
43
- * contentClass: 'MyComponent',
44
- * contentInterpolation: { count: 5 },
45
- * contentFallback: 'Save Items',
46
- * color: 'primary',
47
- * type: 'button',
48
- * state: 'ENABLED'
49
- * }" (onClick)="handler()"></val-button>
50
- *
51
- * @input props: ButtonMetadata - Configuration for the button (text/content, color, icon, state, etc.)
24
+ * @input props: ButtonMetadata - Configuration for the button (text, color, icon, state, etc.)
52
25
  * @output onClick - Emits when the button is clicked
53
26
  */
54
27
  export class ButtonComponent {
55
- constructor(download, icon, navigation, langService) {
28
+ constructor(download, icon, navigation) {
56
29
  this.download = download;
57
30
  this.navigation = navigation;
58
- this.langService = langService;
59
31
  this.states = ComponentStates;
60
- this.subscriptions = new Subscription();
32
+ /**
33
+ * The text to display on the button.
34
+ */
35
+ this.displayText = '';
61
36
  /**
62
37
  * Event emitted when the button is clicked.
63
38
  */
@@ -66,44 +41,35 @@ export class ButtonComponent {
66
41
  ngOnInit() {
67
42
  this.setupDisplayText();
68
43
  }
69
- ngOnDestroy() {
70
- this.subscriptions.unsubscribe();
71
- }
72
44
  /**
73
- * Set up the text content observable based on the props configuration.
74
- * Priority: static text > reactive content with interpolation > reactive content
75
- * This follows the same pattern as val-text component.
45
+ * Set up the text content based on the props configuration.
76
46
  */
77
47
  setupDisplayText() {
78
48
  if (this.props.text) {
79
- // Static text takes precedence
80
49
  if (this.props.contentInterpolation) {
81
- // Static text with interpolation
82
- const interpolatedText = interpolateStaticContent(this.props.text, this.props.contentInterpolation);
83
- this.displayText$ = of(interpolatedText);
50
+ this.displayText = this.interpolateContent(this.props.text, this.props.contentInterpolation);
84
51
  }
85
52
  else {
86
- // Simple static text
87
- this.displayText$ = of(this.props.text);
53
+ this.displayText = this.props.text;
88
54
  }
89
55
  }
90
- else if (this.props.contentKey && this.props.contentClass) {
91
- // Reactive content from language service
92
- if (this.props.contentInterpolation) {
93
- // With interpolation
94
- this.displayText$ = this.langService.getContentWithInterpolation(this.props.contentClass, this.props.contentKey, this.props.contentInterpolation, this.props.contentFallback);
95
- }
96
- else {
97
- // Simple reactive content
98
- this.displayText$ = this.langService.getContent(this.props.contentClass, this.props.contentKey, this.props.contentFallback);
99
- }
56
+ else if (this.props.contentFallback) {
57
+ // Backwards compatibility: use fallback if text is not provided
58
+ this.displayText = this.props.contentFallback;
100
59
  }
101
60
  else {
102
- // Fallback to empty string if no valid content configuration
103
- console.warn('val-button: No valid content configuration provided. Use either "text" for static text or "contentKey" + "contentClass" for reactive content.');
104
- this.displayText$ = of(this.props.contentFallback || '');
61
+ this.displayText = '';
105
62
  }
106
63
  }
64
+ /**
65
+ * Interpolate placeholders in content with provided values.
66
+ * Supports {{placeholder}} format.
67
+ */
68
+ interpolateContent(content, values) {
69
+ return content.replace(/\{\{(\w+)\}\}/g, (match, key) => {
70
+ return values[key] !== undefined ? String(values[key]) : match;
71
+ });
72
+ }
107
73
  clickHandler() {
108
74
  if (this.props.state === this.states.DISABLED) {
109
75
  return;
@@ -119,7 +85,7 @@ export class ButtonComponent {
119
85
  }
120
86
  this.onClick.emit(this.props.token);
121
87
  }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [{ token: i1.DownloadService }, { token: i2.IconService }, { token: i3.NavigationService }, { token: i4.LangService }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [{ token: i1.DownloadService }, { token: i2.IconService }, { token: i3.NavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
123
89
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "val-button", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
124
90
  <ion-button
125
91
  [type]="props.type"
@@ -136,9 +102,9 @@ export class ButtonComponent {
136
102
  >
137
103
  <ion-icon *ngIf="props.icon" [slot]="props.icon.slot" [name]="props.icon.name"></ion-icon>
138
104
  <ion-spinner *ngIf="props.state === states.WORKING" name="circular"></ion-spinner>
139
- <ion-text *ngIf="props.state !== states.WORKING">{{ displayText$ | async }}</ion-text>
105
+ <ion-text *ngIf="props.state !== states.WORKING">{{ displayText }}</ion-text>
140
106
  </ion-button>
141
- `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif;min-width:6.25rem;margin:0}ion-button.small{--padding-bottom: 12px;--padding-end: 14px;--padding-start: 14px;--padding-top: 12px}ion-button.button-clear{padding:0;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
107
+ `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif;min-width:6.25rem;margin:0}ion-button.small{--padding-bottom: 12px;--padding-end: 14px;--padding-start: 14px;--padding-top: 12px}ion-button.button-clear{padding:0;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
142
108
  }
143
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
144
110
  type: Component,
@@ -158,50 +124,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
158
124
  >
159
125
  <ion-icon *ngIf="props.icon" [slot]="props.icon.slot" [name]="props.icon.name"></ion-icon>
160
126
  <ion-spinner *ngIf="props.state === states.WORKING" name="circular"></ion-spinner>
161
- <ion-text *ngIf="props.state !== states.WORKING">{{ displayText$ | async }}</ion-text>
127
+ <ion-text *ngIf="props.state !== states.WORKING">{{ displayText }}</ion-text>
162
128
  </ion-button>
163
129
  `, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif;min-width:6.25rem;margin:0}ion-button.small{--padding-bottom: 12px;--padding-end: 14px;--padding-start: 14px;--padding-top: 12px}ion-button.button-clear{padding:0;margin:0}\n"] }]
164
- }], ctorParameters: () => [{ type: i1.DownloadService }, { type: i2.IconService }, { type: i3.NavigationService }, { type: i4.LangService }], propDecorators: { props: [{
130
+ }], ctorParameters: () => [{ type: i1.DownloadService }, { type: i2.IconService }, { type: i3.NavigationService }], propDecorators: { props: [{
165
131
  type: Input
166
132
  }], onClick: [{
167
133
  type: Output
168
134
  }] } });
169
- /**
170
- * Helper function to create reactive button props from content configuration.
171
- * This provides a convenient way to create val-button props with reactive content.
172
- * Follows the same pattern as createTextProps for consistency.
173
- *
174
- * @param contentConfig - Content configuration
175
- * @param styleConfig - Optional style and behavior configuration
176
- * @returns ButtonMetadata with content properties set
177
- *
178
- * @example
179
- * ```typescript
180
- * // In component
181
- * saveButtonProps: ButtonMetadata = createButtonProps({
182
- * contentKey: 'save',
183
- * contentClass: 'MyComponent'
184
- * }, {
185
- * color: 'primary',
186
- * icon: { name: 'save', slot: 'start' }
187
- * });
188
- * ```
189
- */
190
- export function createButtonProps(contentConfig, styleConfig = {}) {
191
- return {
192
- contentKey: contentConfig.contentKey,
193
- contentClass: contentConfig.contentClass,
194
- contentFallback: contentConfig.contentFallback,
195
- contentInterpolation: contentConfig.contentInterpolation,
196
- color: styleConfig.color || 'primary',
197
- type: styleConfig.type || 'button',
198
- state: styleConfig.state || ComponentStates.ENABLED,
199
- size: styleConfig.size,
200
- fill: styleConfig.fill,
201
- icon: styleConfig.icon,
202
- expand: styleConfig.expand,
203
- shape: styleConfig.shape,
204
- handler: styleConfig.handler,
205
- };
206
- }
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQXVDLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztBQTJCL0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQW9CMUIsWUFDVSxRQUF5QixFQUNqQyxJQUFpQixFQUNULFVBQTZCLEVBQzdCLFdBQXdCO1FBSHhCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBRXpCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBdkJsQyxXQUFNLEdBQUcsZUFBZSxDQUFDO1FBUWpCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUszQzs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBT2xDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQiwrQkFBK0I7WUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3BDLGlDQUFpQztnQkFDakMsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ3BHLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDM0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHFCQUFxQjtnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RCx5Q0FBeUM7WUFDekMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3BDLHFCQUFxQjtnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUMzQixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FDM0IsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLDZEQUE2RDtZQUM3RCxPQUFPLENBQUMsSUFBSSxDQUNWLCtJQUErSSxDQUNoSixDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0FoR1UsZUFBZTttR0FBZixlQUFlLG1JQTlEaEI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCwyekZBbkJTLFlBQVksc1JBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVUseUdBQUUsT0FBTzs7NEZBK0RwRCxlQUFlO2tCQWxFM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUN0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUO3dLQXdERCxLQUFLO3NCQURKLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNOztBQWtGVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLGFBQWtDLEVBQ2xDLGNBRUksRUFBRTtJQUVOLE9BQU87UUFDTCxVQUFVLEVBQUUsYUFBYSxDQUFDLFVBQVU7UUFDcEMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUFZO1FBQ3hDLGVBQWUsRUFBRSxhQUFhLENBQUMsZUFBZTtRQUM5QyxvQkFBb0IsRUFBRSxhQUFhLENBQUMsb0JBQW9CO1FBQ3hELEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxJQUFJLFNBQVM7UUFDckMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksUUFBUTtRQUNsQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxlQUFlLENBQUMsT0FBTztRQUNuRCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDdEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1FBQ3RCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtRQUN0QixNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDMUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1FBQ3hCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztLQUM3QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uVGV4dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZG93bmxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBpbnRlcnBvbGF0ZVN0YXRpY0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc2ltcGxlLWNvbnRlbnQnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSwgQnV0dG9uQ29udGVudENvbmZpZywgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1idXR0b25cbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGVcIlxuICAgICAgW2NvbG9yXT1cInByb3BzLmNvbG9yXCJcbiAgICAgIFtleHBhbmRdPVwicHJvcHMuZXhwYW5kXCJcbiAgICAgIFtmaWxsXT1cInByb3BzLmZpbGxcIlxuICAgICAgW3NpemVdPVwicHJvcHMuc2l6ZVwiXG4gICAgICBbaHJlZl09XCJwcm9wcy5ocmVmXCJcbiAgICAgIFt0YXJnZXRdPVwicHJvcHMudGFyZ2V0XCJcbiAgICAgIFtzaGFwZV09XCJwcm9wcy5zaGFwZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInByb3BzLnN0YXRlID09PSBzdGF0ZXMuRElTQUJMRURcIlxuICAgICAgW25nQ2xhc3NdPVwicHJvcHMuc2l6ZSA/IFtwcm9wcy5zaXplXSA6IFtdXCJcbiAgICA+XG4gICAgICA8aW9uLWljb24gKm5nSWY9XCJwcm9wcy5pY29uXCIgW3Nsb3RdPVwicHJvcHMuaWNvbi5zbG90XCIgW25hbWVdPVwicHJvcHMuaWNvbi5uYW1lXCI+PC9pb24taWNvbj5cbiAgICAgIDxpb24tc3Bpbm5lciAqbmdJZj1cInByb3BzLnN0YXRlID09PSBzdGF0ZXMuV09SS0lOR1wiIG5hbWU9XCJjaXJjdWxhclwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICA8aW9uLXRleHQgKm5nSWY9XCJwcm9wcy5zdGF0ZSAhPT0gc3RhdGVzLldPUktJTkdcIj57eyBkaXNwbGF5VGV4dCQgfCBhc3luYyB9fTwvaW9uLXRleHQ+XG4gICAgPC9pb24tYnV0dG9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1idXR0b25cbiAqXG4gKiBBIGN1c3RvbWl6YWJsZSBidXR0b24gc3VwcG9ydGluZyBpY29ucywgbG9hZGluZyBzdGF0ZSwgbmF2aWdhdGlvbiwgYW5kIHJlYWN0aXZlIGNvbnRlbnQuXG4gKiBTdXBwb3J0cyBib3RoIHN0YXRpYyB0ZXh0IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGNvbnRlbnQgc2VydmljZS5cbiAqIEZvbGxvd3MgdGhlIHNhbWUgY29udGVudCBwYXR0ZXJuIGFzIHZhbC10ZXh0IGZvciBjb25zaXN0ZW5jeS5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgdGV4dDpcbiAqIDx2YWwtYnV0dG9uIFtwcm9wc109XCJ7XG4gKiAgIHRleHQ6ICdTYXZlJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgdHlwZTogJ2J1dHRvbicsXG4gKiAgIHN0YXRlOiAnRU5BQkxFRCcsXG4gKiAgIGljb246IHsgbmFtZTogJ3NhdmUnLCBzbG90OiAnc3RhcnQnIH1cbiAqIH1cIiAob25DbGljayk9XCJoYW5kbGVyKClcIj48L3ZhbC1idXR0b24+XG4gKlxuICogQGV4YW1wbGUgUmVhY3RpdmUgY29udGVudDpcbiAqIDx2YWwtYnV0dG9uIFtwcm9wc109XCJ7XG4gKiAgIGNvbnRlbnRLZXk6ICdzYXZlJyxcbiAqICAgY29udGVudENsYXNzOiAnTXlDb21wb25lbnQnLFxuICogICBjb250ZW50RmFsbGJhY2s6ICdTYXZlJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgdHlwZTogJ2J1dHRvbicsXG4gKiAgIHN0YXRlOiAnRU5BQkxFRCcsXG4gKiAgIGljb246IHsgbmFtZTogJ3NhdmUnLCBzbG90OiAnc3RhcnQnIH1cbiAqIH1cIiAob25DbGljayk9XCJoYW5kbGVyKClcIj48L3ZhbC1idXR0b24+XG4gKlxuICogQGV4YW1wbGUgUmVhY3RpdmUgY29udGVudCB3aXRoIGludGVycG9sYXRpb246XG4gKiA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnc2F2ZUNvdW50JyxcbiAqICAgY29udGVudENsYXNzOiAnTXlDb21wb25lbnQnLFxuICogICBjb250ZW50SW50ZXJwb2xhdGlvbjogeyBjb3VudDogNSB9LFxuICogICBjb250ZW50RmFsbGJhY2s6ICdTYXZlIEl0ZW1zJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgdHlwZTogJ2J1dHRvbicsXG4gKiAgIHN0YXRlOiAnRU5BQkxFRCdcbiAqIH1cIiAob25DbGljayk9XCJoYW5kbGVyKClcIj48L3ZhbC1idXR0b24+XG4gKlxuICogQGlucHV0IHByb3BzOiBCdXR0b25NZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBidXR0b24gKHRleHQvY29udGVudCwgY29sb3IsIGljb24sIHN0YXRlLCBldGMuKVxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGVzID0gQ29tcG9uZW50U3RhdGVzO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHRoYXQgcHJvdmlkZXMgdGhlIHRleHQgY29udGVudCB0byBkaXNwbGF5LlxuICAgKiBUaGlzIHdpbGwgYmUgZWl0aGVyIHN0YXRpYyB0ZXh0IG9yIHJlYWN0aXZlIGNvbnRlbnQgZnJvbSB0aGUgbGFuZ3VhZ2Ugc2VydmljZS5cbiAgICovXG4gIGRpc3BsYXlUZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKVxuICBwcm9wcyE6IEJ1dHRvbk1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvd25sb2FkOiBEb3dubG9hZFNlcnZpY2UsXG4gICAgaWNvbjogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmdTZXJ2aWNlOiBMYW5nU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlUZXh0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAgdGhlIHRleHQgY29udGVudCBvYnNlcnZhYmxlIGJhc2VkIG9uIHRoZSBwcm9wcyBjb25maWd1cmF0aW9uLlxuICAgKiBQcmlvcml0eTogc3RhdGljIHRleHQgPiByZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbiA+IHJlYWN0aXZlIGNvbnRlbnRcbiAgICogVGhpcyBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgdmFsLXRleHQgY29tcG9uZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cERpc3BsYXlUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLnRleHQpIHtcbiAgICAgIC8vIFN0YXRpYyB0ZXh0IHRha2VzIHByZWNlZGVuY2VcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIC8vIFN0YXRpYyB0ZXh0IHdpdGggaW50ZXJwb2xhdGlvblxuICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRUZXh0ID0gaW50ZXJwb2xhdGVTdGF0aWNDb250ZW50KHRoaXMucHJvcHMudGV4dCwgdGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbik7XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQkID0gb2YoaW50ZXJwb2xhdGVkVGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaW1wbGUgc3RhdGljIHRleHRcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dCQgPSBvZih0aGlzLnByb3BzLnRleHQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5jb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKSB7XG4gICAgICAvLyBSZWFjdGl2ZSBjb250ZW50IGZyb20gbGFuZ3VhZ2Ugc2VydmljZVxuICAgICAgaWYgKHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24pIHtcbiAgICAgICAgLy8gV2l0aCBpbnRlcnBvbGF0aW9uXG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQkID0gdGhpcy5sYW5nU2VydmljZS5nZXRDb250ZW50V2l0aEludGVycG9sYXRpb24oXG4gICAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50S2V5LFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24sXG4gICAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2tcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbXBsZSByZWFjdGl2ZSBjb250ZW50XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQkID0gdGhpcy5sYW5nU2VydmljZS5nZXRDb250ZW50KFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudEtleSxcbiAgICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFja1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayB0byBlbXB0eSBzdHJpbmcgaWYgbm8gdmFsaWQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICd2YWwtYnV0dG9uOiBObyB2YWxpZCBjb250ZW50IGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQuIFVzZSBlaXRoZXIgXCJ0ZXh0XCIgZm9yIHN0YXRpYyB0ZXh0IG9yIFwiY29udGVudEtleVwiICsgXCJjb250ZW50Q2xhc3NcIiBmb3IgcmVhY3RpdmUgY29udGVudC4nXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNwbGF5VGV4dCQgPSBvZih0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgY2xpY2tIYW5kbGVyKCkge1xuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSB0aGlzLnN0YXRlcy5ESVNBQkxFRCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmFjdGlvblR5cGUgPT09IEFjdGlvblR5cGUuQVBQX05BVklHQVRJT04pIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMubGluayk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuZG93bmxvYWQpIHtcbiAgICAgIHRoaXMuZG93bmxvYWQuZG93bmxvYWRMaW5rRnJvbUJyb3dzZXIodGhpcy5wcm9wcy5kb3dubG9hZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuaGFuZGxlcikge1xuICAgICAgdGhpcy5wcm9wcy5oYW5kbGVyKHRoaXMucHJvcHMucmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLnByb3BzLnRva2VuKTtcbiAgfVxufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgcmVhY3RpdmUgYnV0dG9uIHByb3BzIGZyb20gY29udGVudCBjb25maWd1cmF0aW9uLlxuICogVGhpcyBwcm92aWRlcyBhIGNvbnZlbmllbnQgd2F5IHRvIGNyZWF0ZSB2YWwtYnV0dG9uIHByb3BzIHdpdGggcmVhY3RpdmUgY29udGVudC5cbiAqIEZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyBjcmVhdGVUZXh0UHJvcHMgZm9yIGNvbnNpc3RlbmN5LlxuICpcbiAqIEBwYXJhbSBjb250ZW50Q29uZmlnIC0gQ29udGVudCBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gc3R5bGVDb25maWcgLSBPcHRpb25hbCBzdHlsZSBhbmQgYmVoYXZpb3IgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgQnV0dG9uTWV0YWRhdGEgd2l0aCBjb250ZW50IHByb3BlcnRpZXMgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGNvbXBvbmVudFxuICogc2F2ZUJ1dHRvblByb3BzOiBCdXR0b25NZXRhZGF0YSA9IGNyZWF0ZUJ1dHRvblByb3BzKHtcbiAqICAgY29udGVudEtleTogJ3NhdmUnLFxuICogICBjb250ZW50Q2xhc3M6ICdNeUNvbXBvbmVudCdcbiAqIH0sIHtcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgaWNvbjogeyBuYW1lOiAnc2F2ZScsIHNsb3Q6ICdzdGFydCcgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvblByb3BzKFxuICBjb250ZW50Q29uZmlnOiBCdXR0b25Db250ZW50Q29uZmlnLFxuICBzdHlsZUNvbmZpZzogUGFydGlhbDxcbiAgICBQaWNrPEJ1dHRvbk1ldGFkYXRhLCAnY29sb3InIHwgJ3R5cGUnIHwgJ3N0YXRlJyB8ICdzaXplJyB8ICdmaWxsJyB8ICdpY29uJyB8ICdleHBhbmQnIHwgJ3NoYXBlJyB8ICdoYW5kbGVyJz5cbiAgPiA9IHt9XG4pOiBCdXR0b25NZXRhZGF0YSB7XG4gIHJldHVybiB7XG4gICAgY29udGVudEtleTogY29udGVudENvbmZpZy5jb250ZW50S2V5LFxuICAgIGNvbnRlbnRDbGFzczogY29udGVudENvbmZpZy5jb250ZW50Q2xhc3MsXG4gICAgY29udGVudEZhbGxiYWNrOiBjb250ZW50Q29uZmlnLmNvbnRlbnRGYWxsYmFjayxcbiAgICBjb250ZW50SW50ZXJwb2xhdGlvbjogY29udGVudENvbmZpZy5jb250ZW50SW50ZXJwb2xhdGlvbixcbiAgICBjb2xvcjogc3R5bGVDb25maWcuY29sb3IgfHwgJ3ByaW1hcnknLFxuICAgIHR5cGU6IHN0eWxlQ29uZmlnLnR5cGUgfHwgJ2J1dHRvbicsXG4gICAgc3RhdGU6IHN0eWxlQ29uZmlnLnN0YXRlIHx8IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIHNpemU6IHN0eWxlQ29uZmlnLnNpemUsXG4gICAgZmlsbDogc3R5bGVDb25maWcuZmlsbCxcbiAgICBpY29uOiBzdHlsZUNvbmZpZy5pY29uLFxuICAgIGV4cGFuZDogc3R5bGVDb25maWcuZXhwYW5kLFxuICAgIHNoYXBlOiBzdHlsZUNvbmZpZy5zaGFwZSxcbiAgICBoYW5kbGVyOiBzdHlsZUNvbmZpZy5oYW5kbGVyLFxuICB9O1xufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEYsT0FBTyxFQUFFLFVBQVUsRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUEyQjFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLFlBQ1UsUUFBeUIsRUFDakMsSUFBaUIsRUFDVCxVQUE2QjtRQUY3QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUV6QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQW5CdkMsV0FBTSxHQUFHLGVBQWUsQ0FBQztRQUV6Qjs7V0FFRztRQUNILGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBS3pCOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFNbEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDL0YsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEMsZ0VBQWdFO1lBQ2hFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGtCQUFrQixDQUFDLE9BQWUsRUFBRSxNQUEyQjtRQUNyRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdEQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0F6RVUsZUFBZTttR0FBZixlQUFlLG1JQXRDaEI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCwyekZBbkJTLFlBQVksaU9BQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVUseUdBQUUsT0FBTzs7NEZBdUNwRCxlQUFlO2tCQTFDM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUN0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUOzhJQTZCRCxLQUFLO3NCQURKLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uVGV4dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZG93bmxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSwgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1idXR0b25cbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGVcIlxuICAgICAgW2NvbG9yXT1cInByb3BzLmNvbG9yXCJcbiAgICAgIFtleHBhbmRdPVwicHJvcHMuZXhwYW5kXCJcbiAgICAgIFtmaWxsXT1cInByb3BzLmZpbGxcIlxuICAgICAgW3NpemVdPVwicHJvcHMuc2l6ZVwiXG4gICAgICBbaHJlZl09XCJwcm9wcy5ocmVmXCJcbiAgICAgIFt0YXJnZXRdPVwicHJvcHMudGFyZ2V0XCJcbiAgICAgIFtzaGFwZV09XCJwcm9wcy5zaGFwZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInByb3BzLnN0YXRlID09PSBzdGF0ZXMuRElTQUJMRURcIlxuICAgICAgW25nQ2xhc3NdPVwicHJvcHMuc2l6ZSA/IFtwcm9wcy5zaXplXSA6IFtdXCJcbiAgICA+XG4gICAgICA8aW9uLWljb24gKm5nSWY9XCJwcm9wcy5pY29uXCIgW3Nsb3RdPVwicHJvcHMuaWNvbi5zbG90XCIgW25hbWVdPVwicHJvcHMuaWNvbi5uYW1lXCI+PC9pb24taWNvbj5cbiAgICAgIDxpb24tc3Bpbm5lciAqbmdJZj1cInByb3BzLnN0YXRlID09PSBzdGF0ZXMuV09SS0lOR1wiIG5hbWU9XCJjaXJjdWxhclwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICA8aW9uLXRleHQgKm5nSWY9XCJwcm9wcy5zdGF0ZSAhPT0gc3RhdGVzLldPUktJTkdcIj57eyBkaXNwbGF5VGV4dCB9fTwvaW9uLXRleHQ+XG4gICAgPC9pb24tYnV0dG9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1idXR0b25cbiAqXG4gKiBBIGN1c3RvbWl6YWJsZSBidXR0b24gc3VwcG9ydGluZyBpY29ucywgbG9hZGluZyBzdGF0ZSwgYW5kIG5hdmlnYXRpb24uXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIHRleHQ6XG4gKiA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwie1xuICogICB0ZXh0OiAnU2F2ZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgIHR5cGU6ICdidXR0b24nLFxuICogICBzdGF0ZTogJ0VOQUJMRUQnLFxuICogICBpY29uOiB7IG5hbWU6ICdzYXZlJywgc2xvdDogJ3N0YXJ0JyB9XG4gKiB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigpXCI+PC92YWwtYnV0dG9uPlxuICpcbiAqIEBpbnB1dCBwcm9wczogQnV0dG9uTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgYnV0dG9uICh0ZXh0LCBjb2xvciwgaWNvbiwgc3RhdGUsIGV0Yy4pXG4gKiBAb3V0cHV0IG9uQ2xpY2sgLSBFbWl0cyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZFxuICovXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3RhdGVzID0gQ29tcG9uZW50U3RhdGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IG9uIHRoZSBidXR0b24uXG4gICAqL1xuICBkaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHJvcHMhOiBCdXR0b25NZXRhZGF0YTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkb3dubG9hZDogRG93bmxvYWRTZXJ2aWNlLFxuICAgIGljb246IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdGlvbjogTmF2aWdhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0dXBEaXNwbGF5VGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgdGV4dCBjb250ZW50IGJhc2VkIG9uIHRoZSBwcm9wcyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cERpc3BsYXlUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLnRleHQpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLmludGVycG9sYXRlQ29udGVudCh0aGlzLnByb3BzLnRleHQsIHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dCA9IHRoaXMucHJvcHMudGV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrKSB7XG4gICAgICAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eTogdXNlIGZhbGxiYWNrIGlmIHRleHQgaXMgbm90IHByb3ZpZGVkXG4gICAgICB0aGlzLmRpc3BsYXlUZXh0ID0gdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRleHQgPSAnJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJwb2xhdGUgcGxhY2Vob2xkZXJzIGluIGNvbnRlbnQgd2l0aCBwcm92aWRlZCB2YWx1ZXMuXG4gICAqIFN1cHBvcnRzIHt7cGxhY2Vob2xkZXJ9fSBmb3JtYXQuXG4gICAqL1xuICBwcml2YXRlIGludGVycG9sYXRlQ29udGVudChjb250ZW50OiBzdHJpbmcsIHZhbHVlczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXFx7XFx7KFxcdyspXFx9XFx9L2csIChtYXRjaCwga2V5KSA9PiB7XG4gICAgICByZXR1cm4gdmFsdWVzW2tleV0gIT09IHVuZGVmaW5lZCA/IFN0cmluZyh2YWx1ZXNba2V5XSkgOiBtYXRjaDtcbiAgICB9KTtcbiAgfVxuXG4gIGNsaWNrSGFuZGxlcigpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gdGhpcy5zdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5hY3Rpb25UeXBlID09PSBBY3Rpb25UeXBlLkFQUF9OQVZJR0FUSU9OKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb24ubmF2aWdhdGVCeVVybCh0aGlzLnByb3BzLmxpbmspO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmRvd25sb2FkKSB7XG4gICAgICB0aGlzLmRvd25sb2FkLmRvd25sb2FkTGlua0Zyb21Ccm93c2VyKHRoaXMucHJvcHMuZG93bmxvYWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmhhbmRsZXIpIHtcbiAgICAgIHRoaXMucHJvcHMuaGFuZGxlcih0aGlzLnByb3BzLnJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodGhpcy5wcm9wcy50b2tlbik7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
3
- import { LangService } from '../../../services/lang-provider/lang-provider.service';
2
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
4
3
  import { DEFAULT_COUNTDOWN_LABELS, } from './types';
5
4
  import * as i0 from "@angular/core";
6
5
  /**
@@ -59,7 +58,6 @@ export class CountdownComponent {
59
58
  };
60
59
  this.isExpired = false;
61
60
  this.intervalId = null;
62
- this.langService = inject(LangService);
63
61
  }
64
62
  ngOnInit() {
65
63
  if (this.props.autoStart !== false) {
@@ -182,9 +180,6 @@ export class CountdownComponent {
182
180
  return labels[unit] || unit;
183
181
  }
184
182
  getExpiredMessage() {
185
- if (this.props.expiredMessageContentKey && this.props.contentClass) {
186
- return this.langService.getText(this.props.contentClass, this.props.expiredMessageContentKey, this.props.expiredMessage || 'Tiempo agotado');
187
- }
188
183
  return this.props.expiredMessage || 'Tiempo agotado';
189
184
  }
190
185
  getColor() {
@@ -340,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
340
335
  }], tick: [{
341
336
  type: Output
342
337
  }] } });
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9jb3VudGRvd24vY291bnRkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRixPQUFPLEVBTUwsd0JBQXdCLEdBQ3pCLE1BQU0sU0FBUyxDQUFDOztBQTRFakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXBIL0I7UUF1SFksYUFBUSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBQ3RELFNBQUksR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUV4RCxTQUFJLEdBQWtCO1lBQ3BCLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxFQUFFLENBQUM7WUFDZixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDO1FBRUYsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVWLGVBQVUsR0FBUSxJQUFJLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0F5SjNDO0lBdkpDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7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LENBQUM7K0dBMUtVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNKQWhIbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQsNG9HQXBFUyxZQUFZOzs0RkFpSFgsa0JBQWtCO2tCQXBIOUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7OEJBOENRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb3VudGRvd25NZXRhZGF0YSxcbiAgQ291bnRkb3duVGltZSxcbiAgQ291bnRkb3duQ29tcGxldGVFdmVudCxcbiAgQ291bnRkb3duVGlja0V2ZW50LFxuICBDb3VudGRvd25MYWJlbHMsXG4gIERFRkFVTFRfQ09VTlRET1dOX0xBQkVMUyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jb3VudGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvdW50ZG93bi1jb250YWluZXJcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgIFtjbGFzcy5leHBpcmVkXT1cImlzRXhwaXJlZFwiXG4gICAgICBbY2xhc3MuZm9ybWF0LWZ1bGxdPVwicHJvcHMuZm9ybWF0ID09PSAnZnVsbCcgfHwgIXByb3BzLmZvcm1hdFwiXG4gICAgICBbY2xhc3MuZm9ybWF0LWNvbXBhY3RdPVwicHJvcHMuZm9ybWF0ID09PSAnY29tcGFjdCdcIlxuICAgICAgW2NsYXNzLmZvcm1hdC1taW5pbWFsXT1cInByb3BzLmZvcm1hdCA9PT0gJ21pbmltYWwnXCJcbiAgICAgIFtjbGFzcy5mb3JtYXQtZGlnaXRhbF09XCJwcm9wcy5mb3JtYXQgPT09ICdkaWdpdGFsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1zbWFsbF09XCJwcm9wcy5zaXplID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5zaXplLW1lZGl1bV09XCJwcm9wcy5zaXplID09PSAnbWVkaXVtJyB8fCAhcHJvcHMuc2l6ZVwiXG4gICAgICBbY2xhc3Muc2l6ZS1sYXJnZV09XCJwcm9wcy5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtzdHlsZS4tLWNvdW50ZG93bi1jb2xvcl09XCJnZXRDb2xvcigpXCJcbiAgICA+XG4gICAgICBAaWYgKGlzRXhwaXJlZCAmJiBwcm9wcy5zaG93RXhwaXJlZE1lc3NhZ2UgIT09IGZhbHNlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHBpcmVkLW1lc3NhZ2VcIj5cbiAgICAgICAgICB7eyBnZXRFeHBpcmVkTWVzc2FnZSgpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSBpZiAoIWlzRXhwaXJlZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRkb3duLXVuaXRzXCI+XG4gICAgICAgICAgQGlmIChzaG91bGRTaG93RGF5cygpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRkb3duLXVuaXRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tdmFsdWVcIj57eyBmb3JtYXROdW1iZXIodGltZS5kYXlzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93TGFiZWxzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLWxhYmVsXCI+e3sgZ2V0TGFiZWwoJ2RheXMnLCB0aW1lLmRheXMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlcGFyYXRvcnMgIT09IGZhbHNlICYmIHNob3VsZFNob3dIb3VycygpKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLXNlcGFyYXRvclwiPnt7IHByb3BzLnNlcGFyYXRvciB8fCAnOicgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG91bGRTaG93SG91cnMoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZG93bi11bml0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLXZhbHVlXCI+e3sgZm9ybWF0TnVtYmVyKHRpbWUuaG91cnMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dMYWJlbHMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tbGFiZWxcIj57eyBnZXRMYWJlbCgnaG91cnMnLCB0aW1lLmhvdXJzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKHByb3BzLnNob3dTZXBhcmF0b3JzICE9PSBmYWxzZSAmJiBzaG91bGRTaG93TWludXRlcygpKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLXNlcGFyYXRvclwiPnt7IHByb3BzLnNlcGFyYXRvciB8fCAnOicgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG91bGRTaG93TWludXRlcygpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRkb3duLXVuaXRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tdmFsdWVcIj57eyBmb3JtYXROdW1iZXIodGltZS5taW51dGVzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93TGFiZWxzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLWxhYmVsXCI+e3sgZ2V0TGFiZWwoJ21pbnV0ZXMnLCB0aW1lLm1pbnV0ZXMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlcGFyYXRvcnMgIT09IGZhbHNlICYmIHNob3VsZFNob3dTZWNvbmRzKCkpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tc2VwYXJhdG9yXCI+e3sgcHJvcHMuc2VwYXJhdG9yIHx8ICc6JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHNob3VsZFNob3dTZWNvbmRzKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGRvd24tdW5pdFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZG93bi12YWx1ZVwiPnt7IGZvcm1hdE51bWJlcih0aW1lLnNlY29uZHMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dMYWJlbHMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tbGFiZWxcIj57eyBnZXRMYWJlbCgnc2Vjb25kcycsIHRpbWUuc2Vjb25kcykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvdW50ZG93bi5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNvdW50ZG93blxuICpcbiAqIEEgY291bnRkb3duIHRpbWVyIGNvbXBvbmVudCB0aGF0IGNvdW50cyBkb3duIHRvIGEgdGFyZ2V0IGRhdGUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtY291bnRkb3duXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGFyZ2V0RGF0ZTogJzIwMjQtMTItMzFUMjM6NTk6NTknLFxuICogICAgIGZvcm1hdDogJ2Z1bGwnXG4gKiAgIH1cIlxuICogICAoY29tcGxldGUpPVwib25Db3VudGRvd25Db21wbGV0ZSgpXCJcbiAqID48L3ZhbC1jb3VudGRvd24+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBDb21wYWN0IGZvcm1hdFxuICogYGBgaHRtbFxuICogPHZhbC1jb3VudGRvd25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YXJnZXREYXRlOiByYWZmbGVFbmREYXRlLFxuICogICAgIGZvcm1hdDogJ2NvbXBhY3QnLFxuICogICAgIHNob3dEYXlzOiB0cnVlLFxuICogICAgIHNob3dTZWNvbmRzOiBmYWxzZSxcbiAqICAgICBjb2xvcjogJ2RhbmdlcicsXG4gKiAgICAgZXhwaXJlZE1lc3NhZ2U6ICfCoVNvcnRlbyBmaW5hbGl6YWRvISdcbiAqICAgfVwiXG4gKiA+PC92YWwtY291bnRkb3duPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgRGlnaXRhbCBjbG9jayBzdHlsZVxuICogYGBgaHRtbFxuICogPHZhbC1jb3VudGRvd25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YXJnZXREYXRlOiBkZWFkbGluZSxcbiAqICAgICBmb3JtYXQ6ICdkaWdpdGFsJyxcbiAqICAgICBzaG93TGFiZWxzOiBmYWxzZSxcbiAqICAgICBzaXplOiAnbGFyZ2UnXG4gKiAgIH1cIlxuICogPjwvdmFsLWNvdW50ZG93bj5cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ291bnRkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwcm9wczogQ291bnRkb3duTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudGRvd25Db21wbGV0ZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgdGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q291bnRkb3duVGlja0V2ZW50PigpO1xuXG4gIHRpbWU6IENvdW50ZG93blRpbWUgPSB7XG4gICAgZGF5czogMCxcbiAgICBob3VyczogMCxcbiAgICBtaW51dGVzOiAwLFxuICAgIHNlY29uZHM6IDAsXG4gICAgdG90YWxTZWNvbmRzOiAwLFxuICAgIGlzRXhwaXJlZDogZmFsc2UsXG4gIH07XG5cbiAgaXNFeHBpcmVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBpbnRlcnZhbElkOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5hdXRvU3RhcnQgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIGNvdW50ZG93biB0aW1lci5cbiAgICovXG4gIHN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVGltZSgpO1xuICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5wcm9wcy51cGRhdGVJbnRlcnZhbCB8fCAxMDAwO1xuICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHRoaXMudXBkYXRlVGltZSgpLCBpbnRlcnZhbCk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKi9cbiAgc3RvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICB0aGlzLmludGVydmFsSWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBhbmQgcmVzdGFydCB0aGUgY291bnRkb3duLlxuICAgKi9cbiAgcmVzdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3AoKTtcbiAgICB0aGlzLmlzRXhwaXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGltZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdldFRhcmdldERhdGUoKTtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRpZmYgPSB0YXJnZXQuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKTtcblxuICAgIGlmIChkaWZmIDw9IDApIHtcbiAgICAgIHRoaXMudGltZSA9IHtcbiAgICAgICAgZGF5czogMCxcbiAgICAgICAgaG91cnM6IDAsXG4gICAgICAgIG1pbnV0ZXM6IDAsXG4gICAgICAgIHNlY29uZHM6IDAsXG4gICAgICAgIHRvdGFsU2Vjb25kczogMCxcbiAgICAgICAgaXNFeHBpcmVkOiB0cnVlLFxuICAgICAgfTtcbiAgICAgIHRoaXMuaXNFeHBpcmVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgdGhpcy5jb21wbGV0ZS5lbWl0KHtcbiAgICAgICAgdGFyZ2V0RGF0ZTogdGFyZ2V0LFxuICAgICAgICBjb21wbGV0ZWRBdDogbm93LFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxTZWNvbmRzID0gTWF0aC5mbG9vcihkaWZmIC8gMTAwMCk7XG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IodG90YWxTZWNvbmRzIC8gODY0MDApO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcigodG90YWxTZWNvbmRzICUgODY0MDApIC8gMzYwMCk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKHRvdGFsU2Vjb25kcyAlIDM2MDApIC8gNjApO1xuICAgIGNvbnN0IHNlY29uZHMgPSB0b3RhbFNlY29uZHMgJSA2MDtcblxuICAgIHRoaXMudGltZSA9IHtcbiAgICAgIGRheXMsXG4gICAgICBob3VycyxcbiAgICAgIG1pbnV0ZXMsXG4gICAgICBzZWNvbmRzLFxuICAgICAgdG90YWxTZWNvbmRzLFxuICAgICAgaXNFeHBpcmVkOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgdGhpcy50aWNrLmVtaXQoeyB0aW1lOiB0aGlzLnRpbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRhcmdldERhdGUoKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5wcm9wcy50YXJnZXREYXRlO1xuICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh0YXJnZXQpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGFyZ2V0KTtcbiAgfVxuXG4gIHNob3VsZFNob3dEYXlzKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dEYXlzID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dEYXlzID09PSB0cnVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBdXRvOiBzaG93IGlmIG1vcmUgdGhhbiAwIGRheXMgb3IgZm9ybWF0IGlzIGZ1bGxcbiAgICByZXR1cm4gdGhpcy50aW1lLmRheXMgPiAwIHx8IHRoaXMucHJvcHMuZm9ybWF0ID09PSAnZnVsbCc7XG4gIH1cblxuICBzaG91bGRTaG93SG91cnMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0hvdXJzID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc2hvdWxkU2hvd01pbnV0ZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd01pbnV0ZXMgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzaG91bGRTaG93U2Vjb25kcygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93U2Vjb25kcyA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wcm9wcy5mb3JtYXQgPT09ICdtaW5pbWFsJykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLnBhZE51bWJlcnMgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgfVxuXG4gIGdldExhYmVsKHVuaXQ6ICdkYXlzJyB8ICdob3VycycgfCAnbWludXRlcycgfCAnc2Vjb25kcycsIHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMucHJvcHMubGFiZWxzIHx8IERFRkFVTFRfQ09VTlRET1dOX0xBQkVMUztcbiAgICBjb25zdCBpc1Npbmd1bGFyID0gdmFsdWUgPT09IDE7XG5cbiAgICAvLyBHZXQgc2luZ3VsYXIgb3IgcGx1cmFsIGZvcm1cbiAgICBjb25zdCBzaW5ndWxhcktleSA9IHVuaXQuc2xpY2UoMCwgLTEpIGFzICdkYXknIHwgJ2hvdXInIHwgJ21pbnV0ZScgfCAnc2Vjb25kJztcblxuICAgIGlmIChpc1Npbmd1bGFyICYmIGxhYmVsc1tzaW5ndWxhcktleV0pIHtcbiAgICAgIHJldHVybiBsYWJlbHNbc2luZ3VsYXJLZXldITtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWxzW3VuaXRdIHx8IHVuaXQ7XG4gIH1cblxuICBnZXRFeHBpcmVkTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmV4cGlyZWRNZXNzYWdlQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMuZXhwaXJlZE1lc3NhZ2VDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLmV4cGlyZWRNZXNzYWdlIHx8ICdUaWVtcG8gYWdvdGFkbydcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmV4cGlyZWRNZXNzYWdlIHx8ICdUaWVtcG8gYWdvdGFkbyc7XG4gIH1cblxuICBnZXRDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbG9yKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke3RoaXMucHJvcHMuY29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgfVxufVxuIl19
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9jb3VudGRvd24vY291bnRkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUtMLHdCQUF3QixHQUN6QixNQUFNLFNBQVMsQ0FBQzs7QUE0RWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFwSC9CO1FBdUhZLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUN0RCxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFeEQsU0FBSSxHQUFrQjtZQUNwQixJQUFJLEVBQUUsQ0FBQztZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQztZQUNWLFlBQVksRUFBRSxDQUFDO1lBQ2YsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQUVGLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFVixlQUFVLEdBQVEsSUFBSSxDQUFDO0tBa0poQztJQWhKQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFD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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvdW50ZG93bk1ldGFkYXRhLFxuICBDb3VudGRvd25UaW1lLFxuICBDb3VudGRvd25Db21wbGV0ZUV2ZW50LFxuICBDb3VudGRvd25UaWNrRXZlbnQsXG4gIERFRkFVTFRfQ09VTlRET1dOX0xBQkVMUyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jb3VudGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvdW50ZG93bi1jb250YWluZXJcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgIFtjbGFzcy5leHBpcmVkXT1cImlzRXhwaXJlZFwiXG4gICAgICBbY2xhc3MuZm9ybWF0LWZ1bGxdPVwicHJvcHMuZm9ybWF0ID09PSAnZnVsbCcgfHwgIXByb3BzLmZvcm1hdFwiXG4gICAgICBbY2xhc3MuZm9ybWF0LWNvbXBhY3RdPVwicHJvcHMuZm9ybWF0ID09PSAnY29tcGFjdCdcIlxuICAgICAgW2NsYXNzLmZvcm1hdC1taW5pbWFsXT1cInByb3BzLmZvcm1hdCA9PT0gJ21pbmltYWwnXCJcbiAgICAgIFtjbGFzcy5mb3JtYXQtZGlnaXRhbF09XCJwcm9wcy5mb3JtYXQgPT09ICdkaWdpdGFsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1zbWFsbF09XCJwcm9wcy5zaXplID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5zaXplLW1lZGl1bV09XCJwcm9wcy5zaXplID09PSAnbWVkaXVtJyB8fCAhcHJvcHMuc2l6ZVwiXG4gICAgICBbY2xhc3Muc2l6ZS1sYXJnZV09XCJwcm9wcy5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtzdHlsZS4tLWNvdW50ZG93bi1jb2xvcl09XCJnZXRDb2xvcigpXCJcbiAgICA+XG4gICAgICBAaWYgKGlzRXhwaXJlZCAmJiBwcm9wcy5zaG93RXhwaXJlZE1lc3NhZ2UgIT09IGZhbHNlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHBpcmVkLW1lc3NhZ2VcIj5cbiAgICAgICAgICB7eyBnZXRFeHBpcmVkTWVzc2FnZSgpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSBpZiAoIWlzRXhwaXJlZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRkb3duLXVuaXRzXCI+XG4gICAgICAgICAgQGlmIChzaG91bGRTaG93RGF5cygpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRkb3duLXVuaXRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tdmFsdWVcIj57eyBmb3JtYXROdW1iZXIodGltZS5kYXlzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93TGFiZWxzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLWxhYmVsXCI+e3sgZ2V0TGFiZWwoJ2RheXMnLCB0aW1lLmRheXMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlcGFyYXRvcnMgIT09IGZhbHNlICYmIHNob3VsZFNob3dIb3VycygpKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLXNlcGFyYXRvclwiPnt7IHByb3BzLnNlcGFyYXRvciB8fCAnOicgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG91bGRTaG93SG91cnMoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZG93bi11bml0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLXZhbHVlXCI+e3sgZm9ybWF0TnVtYmVyKHRpbWUuaG91cnMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dMYWJlbHMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tbGFiZWxcIj57eyBnZXRMYWJlbCgnaG91cnMnLCB0aW1lLmhvdXJzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKHByb3BzLnNob3dTZXBhcmF0b3JzICE9PSBmYWxzZSAmJiBzaG91bGRTaG93TWludXRlcygpKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLXNlcGFyYXRvclwiPnt7IHByb3BzLnNlcGFyYXRvciB8fCAnOicgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG91bGRTaG93TWludXRlcygpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRkb3duLXVuaXRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tdmFsdWVcIj57eyBmb3JtYXROdW1iZXIodGltZS5taW51dGVzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93TGFiZWxzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRkb3duLWxhYmVsXCI+e3sgZ2V0TGFiZWwoJ21pbnV0ZXMnLCB0aW1lLm1pbnV0ZXMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlcGFyYXRvcnMgIT09IGZhbHNlICYmIHNob3VsZFNob3dTZWNvbmRzKCkpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tc2VwYXJhdG9yXCI+e3sgcHJvcHMuc2VwYXJhdG9yIHx8ICc6JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHNob3VsZFNob3dTZWNvbmRzKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGRvd24tdW5pdFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZG93bi12YWx1ZVwiPnt7IGZvcm1hdE51bWJlcih0aW1lLnNlY29uZHMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dMYWJlbHMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGRvd24tbGFiZWxcIj57eyBnZXRMYWJlbCgnc2Vjb25kcycsIHRpbWUuc2Vjb25kcykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvdW50ZG93bi5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNvdW50ZG93blxuICpcbiAqIEEgY291bnRkb3duIHRpbWVyIGNvbXBvbmVudCB0aGF0IGNvdW50cyBkb3duIHRvIGEgdGFyZ2V0IGRhdGUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtY291bnRkb3duXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGFyZ2V0RGF0ZTogJzIwMjQtMTItMzFUMjM6NTk6NTknLFxuICogICAgIGZvcm1hdDogJ2Z1bGwnXG4gKiAgIH1cIlxuICogICAoY29tcGxldGUpPVwib25Db3VudGRvd25Db21wbGV0ZSgpXCJcbiAqID48L3ZhbC1jb3VudGRvd24+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBDb21wYWN0IGZvcm1hdFxuICogYGBgaHRtbFxuICogPHZhbC1jb3VudGRvd25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YXJnZXREYXRlOiByYWZmbGVFbmREYXRlLFxuICogICAgIGZvcm1hdDogJ2NvbXBhY3QnLFxuICogICAgIHNob3dEYXlzOiB0cnVlLFxuICogICAgIHNob3dTZWNvbmRzOiBmYWxzZSxcbiAqICAgICBjb2xvcjogJ2RhbmdlcicsXG4gKiAgICAgZXhwaXJlZE1lc3NhZ2U6ICfCoVNvcnRlbyBmaW5hbGl6YWRvISdcbiAqICAgfVwiXG4gKiA+PC92YWwtY291bnRkb3duPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgRGlnaXRhbCBjbG9jayBzdHlsZVxuICogYGBgaHRtbFxuICogPHZhbC1jb3VudGRvd25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YXJnZXREYXRlOiBkZWFkbGluZSxcbiAqICAgICBmb3JtYXQ6ICdkaWdpdGFsJyxcbiAqICAgICBzaG93TGFiZWxzOiBmYWxzZSxcbiAqICAgICBzaXplOiAnbGFyZ2UnXG4gKiAgIH1cIlxuICogPjwvdmFsLWNvdW50ZG93bj5cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ291bnRkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwcm9wczogQ291bnRkb3duTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudGRvd25Db21wbGV0ZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgdGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q291bnRkb3duVGlja0V2ZW50PigpO1xuXG4gIHRpbWU6IENvdW50ZG93blRpbWUgPSB7XG4gICAgZGF5czogMCxcbiAgICBob3VyczogMCxcbiAgICBtaW51dGVzOiAwLFxuICAgIHNlY29uZHM6IDAsXG4gICAgdG90YWxTZWNvbmRzOiAwLFxuICAgIGlzRXhwaXJlZDogZmFsc2UsXG4gIH07XG5cbiAgaXNFeHBpcmVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBpbnRlcnZhbElkOiBhbnkgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmF1dG9TdGFydCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKi9cbiAgc3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVUaW1lKCk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSB0aGlzLnByb3BzLnVwZGF0ZUludGVydmFsIHx8IDEwMDA7XG4gICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy51cGRhdGVUaW1lKCksIGludGVydmFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqL1xuICBzdG9wKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmludGVydmFsSWQpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGFuZCByZXN0YXJ0IHRoZSBjb3VudGRvd24uXG4gICAqL1xuICByZXN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcCgpO1xuICAgIHRoaXMuaXNFeHBpcmVkID0gZmFsc2U7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUaW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZ2V0VGFyZ2V0RGF0ZSgpO1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGlmZiA9IHRhcmdldC5nZXRUaW1lKCkgLSBub3cuZ2V0VGltZSgpO1xuXG4gICAgaWYgKGRpZmYgPD0gMCkge1xuICAgICAgdGhpcy50aW1lID0ge1xuICAgICAgICBkYXlzOiAwLFxuICAgICAgICBob3VyczogMCxcbiAgICAgICAgbWludXRlczogMCxcbiAgICAgICAgc2Vjb25kczogMCxcbiAgICAgICAgdG90YWxTZWNvbmRzOiAwLFxuICAgICAgICBpc0V4cGlyZWQ6IHRydWUsXG4gICAgICB9O1xuICAgICAgdGhpcy5pc0V4cGlyZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICB0aGlzLmNvbXBsZXRlLmVtaXQoe1xuICAgICAgICB0YXJnZXREYXRlOiB0YXJnZXQsXG4gICAgICAgIGNvbXBsZXRlZEF0OiBub3csXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b3RhbFNlY29uZHMgPSBNYXRoLmZsb29yKGRpZmYgLyAxMDAwKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcih0b3RhbFNlY29uZHMgLyA4NjQwMCk7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKCh0b3RhbFNlY29uZHMgJSA4NjQwMCkgLyAzNjAwKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigodG90YWxTZWNvbmRzICUgMzYwMCkgLyA2MCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IHRvdGFsU2Vjb25kcyAlIDYwO1xuXG4gICAgdGhpcy50aW1lID0ge1xuICAgICAgZGF5cyxcbiAgICAgIGhvdXJzLFxuICAgICAgbWludXRlcyxcbiAgICAgIHNlY29uZHMsXG4gICAgICB0b3RhbFNlY29uZHMsXG4gICAgICBpc0V4cGlyZWQ6IGZhbHNlLFxuICAgIH07XG5cbiAgICB0aGlzLnRpY2suZW1pdCh7IHRpbWU6IHRoaXMudGltZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFyZ2V0RGF0ZSgpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnByb3BzLnRhcmdldERhdGU7XG4gICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHRhcmdldCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh0YXJnZXQpO1xuICB9XG5cbiAgc2hvdWxkU2hvd0RheXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0RheXMgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0RheXMgPT09IHRydWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEF1dG86IHNob3cgaWYgbW9yZSB0aGFuIDAgZGF5cyBvciBmb3JtYXQgaXMgZnVsbFxuICAgIHJldHVybiB0aGlzLnRpbWUuZGF5cyA+IDAgfHwgdGhpcy5wcm9wcy5mb3JtYXQgPT09ICdmdWxsJztcbiAgfVxuXG4gIHNob3VsZFNob3dIb3VycygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93SG91cnMgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzaG91bGRTaG93TWludXRlcygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93TWludXRlcyA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNob3VsZFNob3dTZWNvbmRzKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dTZWNvbmRzID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnByb3BzLmZvcm1hdCA9PT0gJ21pbmltYWwnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMucGFkTnVtYmVycyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKS5wYWRTdGFydCgyLCAnMCcpO1xuICB9XG5cbiAgZ2V0TGFiZWwodW5pdDogJ2RheXMnIHwgJ2hvdXJzJyB8ICdtaW51dGVzJyB8ICdzZWNvbmRzJywgdmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWxzID0gdGhpcy5wcm9wcy5sYWJlbHMgfHwgREVGQVVMVF9DT1VOVERPV05fTEFCRUxTO1xuICAgIGNvbnN0IGlzU2luZ3VsYXIgPSB2YWx1ZSA9PT0gMTtcblxuICAgIC8vIEdldCBzaW5ndWxhciBvciBwbHVyYWwgZm9ybVxuICAgIGNvbnN0IHNpbmd1bGFyS2V5ID0gdW5pdC5zbGljZSgwLCAtMSkgYXMgJ2RheScgfCAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnO1xuXG4gICAgaWYgKGlzU2luZ3VsYXIgJiYgbGFiZWxzW3Npbmd1bGFyS2V5XSkge1xuICAgICAgcmV0dXJuIGxhYmVsc1tzaW5ndWxhcktleV0hO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHNbdW5pdF0gfHwgdW5pdDtcbiAgfVxuXG4gIGdldEV4cGlyZWRNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZXhwaXJlZE1lc3NhZ2UgfHwgJ1RpZW1wbyBhZ290YWRvJztcbiAgfVxuXG4gIGdldENvbG9yKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuY29sb3IpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7dGhpcy5wcm9wcy5jb2xvcn0pYDtcbiAgICB9XG4gICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICB9XG59XG4iXX0=
@@ -1,134 +1,51 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectorRef, Component, inject, Input, } from '@angular/core';
2
+ import { Component, Input } from '@angular/core';
3
3
  import { IonText } from '@ionic/angular/standalone';
4
- import { of, Subscription } from 'rxjs';
5
- import { LangService } from '../../../services/lang-provider/lang-provider.service';
6
4
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
5
  /**
9
6
  * val-display
10
7
  *
11
8
  * Displays prominent text or titles with custom color and size.
12
- * Supports both static and reactive content patterns.
13
9
  *
14
10
  * @example
15
- * // Static content
16
11
  * <val-display [props]="{ content: 'Title', color: 'dark', size: 'large' }"></val-display>
17
12
  *
18
- * // Reactive content
19
- * <val-display [props]="{ contentConfig: { key: 'welcome.title' }, color: 'primary', size: 'xlarge' }"></val-display>
20
- *
21
- * @input props: DisplayMetadata - Configuration for the display (content/contentConfig, color, size)
13
+ * @input props: DisplayMetadata - Configuration for the display (content, color, size)
22
14
  */
23
15
  export class DisplayComponent {
24
- constructor() {
25
- this.subscriptions = new Subscription();
26
- this.langService = inject(LangService);
27
- this.cdr = inject(ChangeDetectorRef);
28
- }
29
- ngOnInit() {
30
- this.initializeDisplayContent();
31
- }
32
- ngOnChanges(changes) {
33
- if (changes['props']) {
34
- this.initializeDisplayContent();
35
- this.cdr.detectChanges();
36
- }
37
- }
38
- ngOnDestroy() {
39
- this.subscriptions.unsubscribe();
40
- }
41
- initializeDisplayContent() {
42
- // Static content takes precedence
16
+ /**
17
+ * Returns the content to display.
18
+ * Uses static content, or contentConfig fallback for backwards compatibility.
19
+ */
20
+ getDisplayContent() {
43
21
  if (this.props.content !== undefined) {
44
- this.displayContent$ = of(this.props.content);
45
- return;
22
+ return this.props.content;
46
23
  }
47
- // Use reactive content if configured
48
- if (this.props.contentConfig) {
49
- this.displayContent$ = this.langService.getContent(this.props.contentConfig.className || '_global', this.props.contentConfig.key, this.props.contentConfig.fallback || this.props.contentConfig.key
50
- // interpolation: this.props.contentConfig.interpolation,
51
- );
52
- return;
24
+ // Backwards compatibility: use fallback from contentConfig if present
25
+ if (this.props.contentConfig?.fallback) {
26
+ return this.props.contentConfig.fallback;
53
27
  }
54
- // No content configured - use empty string
55
- this.displayContent$ = of('');
28
+ return '';
56
29
  }
57
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DisplayComponent, isStandalone: true, selector: "val-display", inputs: { props: "props" }, usesOnChanges: true, ngImport: i0, template: `
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DisplayComponent, isStandalone: true, selector: "val-display", inputs: { props: "props" }, ngImport: i0, template: `
59
32
  <ion-text [color]="props.color">
60
33
  <p [class]="props.size">
61
- {{ displayContent$ | async }}
34
+ {{ getDisplayContent() }}
62
35
  </p>
63
36
  </ion-text>
64
- `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:1.5rem;line-height:2rem;font-weight:800}@media (min-width: 768px){.small{font-size:2rem;line-height:2.5rem}}.medium{font-size:2rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.medium{font-size:2.5rem;line-height:3rem}}.large{font-size:2.5rem;line-height:3rem;font-weight:800}@media (min-width: 768px){.large{font-size:3rem;line-height:3.5rem}}.xlarge{font-size:3rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.xlarge{font-size:4.375rem;line-height:4.125rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
37
+ `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:1.5rem;line-height:2rem;font-weight:800}@media (min-width: 768px){.small{font-size:2rem;line-height:2.5rem}}.medium{font-size:2rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.medium{font-size:2.5rem;line-height:3rem}}.large{font-size:2.5rem;line-height:3rem;font-weight:800}@media (min-width: 768px){.large{font-size:3rem;line-height:3.5rem}}.xlarge{font-size:3rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.xlarge{font-size:4.375rem;line-height:4.125rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
65
38
  }
66
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayComponent, decorators: [{
67
40
  type: Component,
68
41
  args: [{ selector: 'val-display', standalone: true, imports: [CommonModule, IonText], template: `
69
42
  <ion-text [color]="props.color">
70
43
  <p [class]="props.size">
71
- {{ displayContent$ | async }}
44
+ {{ getDisplayContent() }}
72
45
  </p>
73
46
  </ion-text>
74
47
  `, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:1.5rem;line-height:2rem;font-weight:800}@media (min-width: 768px){.small{font-size:2rem;line-height:2.5rem}}.medium{font-size:2rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.medium{font-size:2.5rem;line-height:3rem}}.large{font-size:2.5rem;line-height:3rem;font-weight:800}@media (min-width: 768px){.large{font-size:3rem;line-height:3.5rem}}.xlarge{font-size:3rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.xlarge{font-size:4.375rem;line-height:4.125rem}}\n"] }]
75
- }], ctorParameters: () => [], propDecorators: { props: [{
48
+ }], propDecorators: { props: [{
76
49
  type: Input
77
50
  }] } });
78
- /**
79
- * Helper function to create reactive display props from content configuration.
80
- * This provides a convenient way to create val-display props with reactive content.
81
- *
82
- * @param contentConfig - Content configuration for reactive content
83
- * @param styleConfig - Optional style configuration (color and size)
84
- * @returns DisplayMetadata with content properties set
85
- *
86
- * @example
87
- * ```typescript
88
- * // In component
89
- * titleProps: DisplayMetadata = createDisplayProps({
90
- * key: 'title',
91
- * className: 'HeaderComponent',
92
- * fallback: 'Default Title'
93
- * }, {
94
- * color: 'primary',
95
- * size: 'large'
96
- * });
97
- * ```
98
- *
99
- * @example
100
- * ```typescript
101
- * // With interpolation
102
- * greetingProps: DisplayMetadata = createDisplayProps({
103
- * key: 'greeting',
104
- * className: 'UserComponent',
105
- * fallback: 'Hello!',
106
- * interpolation: { name: 'John', count: 5 }
107
- * }, {
108
- * color: 'secondary',
109
- * size: 'medium'
110
- * });
111
- * ```
112
- *
113
- * @example
114
- * ```typescript
115
- * // Using default style values
116
- * simpleProps: DisplayMetadata = createDisplayProps({
117
- * key: 'welcomeMessage',
118
- * className: 'HomeComponent'
119
- * }); // Will use default color: 'dark' and size: 'medium'
120
- * ```
121
- */
122
- export function createDisplayProps(contentConfig, styleConfig = {}) {
123
- return {
124
- contentConfig: {
125
- key: contentConfig.key,
126
- className: contentConfig.className,
127
- fallback: contentConfig.fallback,
128
- interpolation: contentConfig.interpolation,
129
- },
130
- color: styleConfig.color || 'dark',
131
- size: styleConfig.size || 'medium',
132
- };
133
- }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFnQnBGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQWtCM0I7UUFoQlEsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBYW5DLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV6QixDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRztZQUNqRSx5REFBeUQ7YUFDMUQsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBdkRVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHdIQXhCakI7Ozs7OztHQU1ULDZrR0FQUyxZQUFZLG9GQUFFLE9BQU87OzRGQXlCcEIsZ0JBQWdCO2tCQTVCNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUN0Qjs7Ozs7O0dBTVQ7d0RBK0JELEtBQUs7c0JBREosS0FBSzs7QUE4Q1I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLGFBQW1DLEVBQ25DLGNBQWdFLEVBQUU7SUFFbEUsT0FBTztRQUNMLGFBQWEsRUFBRTtZQUNiLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRztZQUN0QixTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVM7WUFDbEMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRO1lBQ2hDLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFBYTtTQUMzQztRQUNELEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxJQUFJLE1BQU07UUFDbEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksUUFBUTtLQUNuQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlzcGxheUNvbnRlbnRDb25maWcsIERpc3BsYXlNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZGlzcGxheScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tdGV4dCBbY29sb3JdPVwicHJvcHMuY29sb3JcIj5cbiAgICAgIDxwIFtjbGFzc109XCJwcm9wcy5zaXplXCI+XG4gICAgICAgIHt7IGRpc3BsYXlDb250ZW50JCB8IGFzeW5jIH19XG4gICAgICA8L3A+XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZGlzcGxheS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWRpc3BsYXlcbiAqXG4gKiBEaXNwbGF5cyBwcm9taW5lbnQgdGV4dCBvciB0aXRsZXMgd2l0aCBjdXN0b20gY29sb3IgYW5kIHNpemUuXG4gKiBTdXBwb3J0cyBib3RoIHN0YXRpYyBhbmQgcmVhY3RpdmUgY29udGVudCBwYXR0ZXJucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3RhdGljIGNvbnRlbnRcbiAqIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiAnVGl0bGUnLCBjb2xvcjogJ2RhcmsnLCBzaXplOiAnbGFyZ2UnIH1cIj48L3ZhbC1kaXNwbGF5PlxuICpcbiAqIC8vIFJlYWN0aXZlIGNvbnRlbnRcbiAqIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50Q29uZmlnOiB7IGtleTogJ3dlbGNvbWUudGl0bGUnIH0sIGNvbG9yOiAncHJpbWFyeScsIHNpemU6ICd4bGFyZ2UnIH1cIj48L3ZhbC1kaXNwbGF5PlxuICpcbiAqIEBpbnB1dCBwcm9wczogRGlzcGxheU1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRpc3BsYXkgKGNvbnRlbnQvY29udGVudENvbmZpZywgY29sb3IsIHNpemUpXG4gKi9cbmV4cG9ydCBjbGFzcyBEaXNwbGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGRpc3BsYXlDb250ZW50JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtEaXNwbGF5TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50IC0gU3RhdGljIHRleHQgdG8gZGlzcGxheSAodGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNvbnRlbnRDb25maWcpLlxuICAgKiBAcHJvcGVydHkgY29udGVudENvbmZpZyAtIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbi5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHRleHQgY29sb3IgKElvbmljIGNvbG9yIHN0cmluZykuXG4gICAqIEBwcm9wZXJ0eSBzaXplIC0gVGhlIHRleHQgc2l6ZSAoJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBEaXNwbGF5TWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBsYW5nU2VydmljZSA9IGluamVjdChMYW5nU2VydmljZSk7XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRGlzcGxheUNvbnRlbnQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURpc3BsYXlDb250ZW50KCkge1xuICAgIC8vIFN0YXRpYyBjb250ZW50IHRha2VzIHByZWNlZGVuY2VcbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gb2YodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVc2UgcmVhY3RpdmUgY29udGVudCBpZiBjb25maWd1cmVkXG4gICAgaWYgKHRoaXMucHJvcHMuY29udGVudENvbmZpZykge1xuICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCQgPSB0aGlzLmxhbmdTZXJ2aWNlLmdldENvbnRlbnQoXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudENvbmZpZy5jbGFzc05hbWUgfHwgJ19nbG9iYWwnLFxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRDb25maWcua2V5LFxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRDb25maWcuZmFsbGJhY2sgfHwgdGhpcy5wcm9wcy5jb250ZW50Q29uZmlnLmtleVxuICAgICAgICAvLyBpbnRlcnBvbGF0aW9uOiB0aGlzLnByb3BzLmNvbnRlbnRDb25maWcuaW50ZXJwb2xhdGlvbixcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTm8gY29udGVudCBjb25maWd1cmVkIC0gdXNlIGVtcHR5IHN0cmluZ1xuICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gb2YoJycpO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSByZWFjdGl2ZSBkaXNwbGF5IHByb3BzIGZyb20gY29udGVudCBjb25maWd1cmF0aW9uLlxuICogVGhpcyBwcm92aWRlcyBhIGNvbnZlbmllbnQgd2F5IHRvIGNyZWF0ZSB2YWwtZGlzcGxheSBwcm9wcyB3aXRoIHJlYWN0aXZlIGNvbnRlbnQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnRDb25maWcgLSBDb250ZW50IGNvbmZpZ3VyYXRpb24gZm9yIHJlYWN0aXZlIGNvbnRlbnRcbiAqIEBwYXJhbSBzdHlsZUNvbmZpZyAtIE9wdGlvbmFsIHN0eWxlIGNvbmZpZ3VyYXRpb24gKGNvbG9yIGFuZCBzaXplKVxuICogQHJldHVybnMgRGlzcGxheU1ldGFkYXRhIHdpdGggY29udGVudCBwcm9wZXJ0aWVzIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBjb21wb25lbnRcbiAqIHRpdGxlUHJvcHM6IERpc3BsYXlNZXRhZGF0YSA9IGNyZWF0ZURpc3BsYXlQcm9wcyh7XG4gKiAgIGtleTogJ3RpdGxlJyxcbiAqICAgY2xhc3NOYW1lOiAnSGVhZGVyQ29tcG9uZW50JyxcbiAqICAgZmFsbGJhY2s6ICdEZWZhdWx0IFRpdGxlJ1xuICogfSwge1xuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBzaXplOiAnbGFyZ2UnXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBXaXRoIGludGVycG9sYXRpb25cbiAqIGdyZWV0aW5nUHJvcHM6IERpc3BsYXlNZXRhZGF0YSA9IGNyZWF0ZURpc3BsYXlQcm9wcyh7XG4gKiAgIGtleTogJ2dyZWV0aW5nJyxcbiAqICAgY2xhc3NOYW1lOiAnVXNlckNvbXBvbmVudCcsXG4gKiAgIGZhbGxiYWNrOiAnSGVsbG8hJyxcbiAqICAgaW50ZXJwb2xhdGlvbjogeyBuYW1lOiAnSm9obicsIGNvdW50OiA1IH1cbiAqIH0sIHtcbiAqICAgY29sb3I6ICdzZWNvbmRhcnknLFxuICogICBzaXplOiAnbWVkaXVtJ1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gVXNpbmcgZGVmYXVsdCBzdHlsZSB2YWx1ZXNcbiAqIHNpbXBsZVByb3BzOiBEaXNwbGF5TWV0YWRhdGEgPSBjcmVhdGVEaXNwbGF5UHJvcHMoe1xuICogICBrZXk6ICd3ZWxjb21lTWVzc2FnZScsXG4gKiAgIGNsYXNzTmFtZTogJ0hvbWVDb21wb25lbnQnXG4gKiB9KTsgLy8gV2lsbCB1c2UgZGVmYXVsdCBjb2xvcjogJ2RhcmsnIGFuZCBzaXplOiAnbWVkaXVtJ1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaXNwbGF5UHJvcHMoXG4gIGNvbnRlbnRDb25maWc6IERpc3BsYXlDb250ZW50Q29uZmlnLFxuICBzdHlsZUNvbmZpZzogUGFydGlhbDxQaWNrPERpc3BsYXlNZXRhZGF0YSwgJ2NvbG9yJyB8ICdzaXplJz4+ID0ge31cbik6IERpc3BsYXlNZXRhZGF0YSB7XG4gIHJldHVybiB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAga2V5OiBjb250ZW50Q29uZmlnLmtleSxcbiAgICAgIGNsYXNzTmFtZTogY29udGVudENvbmZpZy5jbGFzc05hbWUsXG4gICAgICBmYWxsYmFjazogY29udGVudENvbmZpZy5mYWxsYmFjayxcbiAgICAgIGludGVycG9sYXRpb246IGNvbnRlbnRDb25maWcuaW50ZXJwb2xhdGlvbixcbiAgICB9LFxuICAgIGNvbG9yOiBzdHlsZUNvbmZpZy5jb2xvciB8fCAnZGFyaycsXG4gICAgc2l6ZTogc3R5bGVDb25maWcuc2l6ZSB8fCAnbWVkaXVtJyxcbiAgfTtcbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQWdCcEQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQVczQjs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDNUIsQ0FBQztRQUNELHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7K0dBeEJVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG1HQW5CakI7Ozs7OztHQU1ULDZrR0FQUyxZQUFZLCtCQUFFLE9BQU87OzRGQW9CcEIsZ0JBQWdCO2tCQXZCNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUN0Qjs7Ozs7O0dBTVQ7OEJBc0JELEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBEaXNwbGF5TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWRpc3BsYXknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLXRleHQgW2NvbG9yXT1cInByb3BzLmNvbG9yXCI+XG4gICAgICA8cCBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiPlxuICAgICAgICB7eyBnZXREaXNwbGF5Q29udGVudCgpIH19XG4gICAgICA8L3A+XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZGlzcGxheS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWRpc3BsYXlcbiAqXG4gKiBEaXNwbGF5cyBwcm9taW5lbnQgdGV4dCBvciB0aXRsZXMgd2l0aCBjdXN0b20gY29sb3IgYW5kIHNpemUuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiAnVGl0bGUnLCBjb2xvcjogJ2RhcmsnLCBzaXplOiAnbGFyZ2UnIH1cIj48L3ZhbC1kaXNwbGF5PlxuICpcbiAqIEBpbnB1dCBwcm9wczogRGlzcGxheU1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRpc3BsYXkgKGNvbnRlbnQsIGNvbG9yLCBzaXplKVxuICovXG5leHBvcnQgY2xhc3MgRGlzcGxheUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEaXNwbGF5IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7RGlzcGxheU1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFN0YXRpYyB0ZXh0IHRvIGRpc3BsYXkuXG4gICAqIEBwcm9wZXJ0eSBjb2xvciAtIFRoZSB0ZXh0IGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0ZXh0IHNpemUgKCdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJykuXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogRGlzcGxheU1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZW50IHRvIGRpc3BsYXkuXG4gICAqIFVzZXMgc3RhdGljIGNvbnRlbnQsIG9yIGNvbnRlbnRDb25maWcgZmFsbGJhY2sgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgZ2V0RGlzcGxheUNvbnRlbnQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRlbnQ7XG4gICAgfVxuICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OiB1c2UgZmFsbGJhY2sgZnJvbSBjb250ZW50Q29uZmlnIGlmIHByZXNlbnRcbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50Q29uZmlnPy5mYWxsYmFjaykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudENvbmZpZy5mYWxsYmFjaztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=