valtech-components 2.0.340 → 2.0.343

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -34,15 +34,18 @@ npm install valtech-components
34
34
  Import the desired standalone components in your Angular modules or components:
35
35
 
36
36
  ```typescript
37
- import { TextComponent } from 'valtech-components';
37
+ import { inject } from '@angular/core';
38
+ import { TextComponent, ButtonComponent, LangService } from 'valtech-components';
38
39
 
39
40
  @Component({
40
41
  selector: 'your-component',
41
42
  standalone: true,
42
43
  imports: [
43
44
  TextComponent,
45
+ ButtonComponent
44
46
  ],
45
47
  template: `
48
+ <!-- Static text -->
46
49
  <val-text
47
50
  [props]="{
48
51
  content: 'This is a body text.',
@@ -51,9 +54,38 @@ import { TextComponent } from 'valtech-components';
51
54
  size: 'small'
52
55
  }"
53
56
  />
54
- `})
57
+
58
+ <!-- Reactive text from global content -->
59
+ <val-text
60
+ [props]="{
61
+ contentKey: 'save',
62
+ contentClass: '_global',
63
+ contentFallback: 'Save',
64
+ color: 'primary',
65
+ bold: true,
66
+ size: 'medium'
67
+ }"
68
+ />
69
+
70
+ <!-- Button with reactive text -->
71
+ <val-button
72
+ [props]="{
73
+ contentKey: 'cancel',
74
+ contentClass: '_global',
75
+ contentFallback: 'Cancel',
76
+ color: 'secondary',
77
+ type: 'button'
78
+ }"
79
+ (onClick)="handleCancel()"
80
+ />
81
+ `
82
+ })
55
83
  export class YourComponent {
56
-
84
+ langService = inject(LangService);
85
+
86
+ handleCancel() {
87
+ console.log('Cancel clicked');
88
+ }
57
89
  }
58
90
  ```
59
91
 
@@ -66,9 +98,11 @@ The library includes a powerful reactive internationalization system with **Lang
66
98
  - **Global Content**: Reusable texts like buttons ("Save", "Cancel"), states ("Loading", "Error"), and confirmations
67
99
  - **Component-Specific Content**: Custom texts for individual components
68
100
  - **Reactive Updates**: Text automatically updates when language changes
69
- - **Interpolation Support**: Dynamic values in text strings
101
+ - **Interpolation Support**: Dynamic values in text strings with `{{variable}}` syntax
70
102
  - **Type-Safe**: Full TypeScript support with autocompletion
71
- - **Simple API**: Clean, injectable service without complex setup
103
+ - **Simple API**: Direct LangService injection, no complex setup
104
+ - **Automatic Fallbacks**: Intelligent language fallback with console warnings
105
+ - **Unified System**: Single service for all content needs
72
106
 
73
107
  ### Available Global Content
74
108
 
@@ -77,6 +111,7 @@ The library includes a powerful reactive internationalization system with **Lang
77
111
  - **States**: `loading`, `error`, `success`, `warning`, `info`, `noData`
78
112
  - **Forms**: `searchPlaceholder`
79
113
  - **Confirmations**: `deleteConfirmation`, `unsavedChanges`
114
+ - **General**: `language`, `areYouSure`, `copied`
80
115
 
81
116
  ### Basic Setup
82
117
 
@@ -107,78 +142,177 @@ bootstrapApplication(AppComponent, {
107
142
  });
108
143
  ```
109
144
 
110
- ### Using ContentService (Recommended)
145
+ ### Using LangService (Current API)
111
146
 
112
147
  ```typescript
113
148
  // component.ts
114
149
  import { inject } from '@angular/core';
115
- import { ContentService } from 'valtech-components';
150
+ import { LangService } from 'valtech-components';
116
151
 
117
152
  @Component({
118
153
  template: `
119
- <!-- Global content (no className needed) -->
120
- <button>{{ saveButton$ | async }}</button>
121
- <button>{{ cancelButton$ | async }}</button>
122
-
123
- <!-- Global content with val-text -->
154
+ <!-- Global content using val-text -->
124
155
  <val-text [props]="{
125
156
  contentKey: 'ok',
157
+ contentClass: '_global',
126
158
  color: 'primary',
127
159
  size: 'large',
128
160
  bold: true
129
161
  }"></val-text>
130
162
 
131
- <!-- Component-specific content with val-text -->
163
+ <!-- Component-specific content using val-text -->
132
164
  <val-text [props]="{
133
165
  contentKey: 'welcome',
134
166
  contentClass: 'AppComponent',
167
+ contentFallback: 'Welcome',
135
168
  color: 'secondary',
136
- size: 'medium',
137
- bold: false
169
+ size: 'medium'
138
170
  }"></val-text>
139
171
 
140
172
  <!-- Direct observable binding -->
141
173
  <h2>{{ title$ | async }}</h2>
174
+
175
+ <!-- With interpolation -->
176
+ <p>{{ greeting$ | async }}</p>
142
177
  `
143
178
  })
144
179
  export class MyComponent {
145
- content = inject(ContentService);
146
- componentContent = this.content.forComponent('AppComponent');
180
+ langService = inject(LangService);
147
181
 
148
- // Global content (automatically searches in global namespace)
149
- saveButton$ = this.content.fromContent({ key: 'save' });
150
- cancelButton$ = this.content.fromContent({ key: 'cancel' });
182
+ // Global content
183
+ saveButton$ = this.langService.getContent('_global', 'save', 'Save');
184
+ cancelButton$ = this.langService.getContent('_global', 'cancel', 'Cancel');
151
185
 
152
186
  // Component-specific content
153
- title$ = this.componentContent.get('welcome');
187
+ title$ = this.langService.getContent('AppComponent', 'welcome', 'Welcome');
188
+
189
+ // Content with interpolation
190
+ greeting$ = this.langService.getContentWithInterpolation(
191
+ 'AppComponent',
192
+ 'personalizedGreeting',
193
+ { name: 'John', count: 5 },
194
+ 'Hello!'
195
+ );
154
196
 
155
197
  // Switch language
156
198
  changeLanguage() {
157
- this.content.setLang(this.content.currentLang === 'es' ? 'en' : 'es');
199
+ const currentLang = this.langService.currentLang;
200
+ this.langService.setLang(currentLang === 'es' ? 'en' : 'es');
158
201
  }
159
202
 
160
203
  constructor() {}
161
204
  }
162
205
  ```
163
206
 
164
- ### Content with Variables
207
+ ### Content with Variables (Interpolation)
165
208
 
166
209
  ```typescript
167
- // Component with interpolation
210
+ // Component with interpolation using the new API
168
211
  export class UserComponent {
169
- content = inject(ContentService);
170
- componentContent = this.content.forComponent('UserComponent');
212
+ langService = inject(LangService);
171
213
 
172
- greeting$ = this.componentContent.get('personalizedGreeting', {
173
- interpolation: {
174
- name: 'John',
175
- count: 5,
176
- }
177
- });
214
+ // Method 1: Direct service usage
215
+ greeting$ = this.langService.getContentWithInterpolation(
216
+ 'UserComponent',
217
+ 'personalizedGreeting',
218
+ { name: 'John', count: 5 },
219
+ 'Hello!'
220
+ );
178
221
  // Results in: "Hello John, you have 5 messages"
222
+
223
+ // Method 2: Using val-text component
224
+ // In template:
225
+ // <val-text [props]="{
226
+ // contentKey: 'personalizedGreeting',
227
+ // contentClass: 'UserComponent',
228
+ // contentInterpolation: { name: 'John', count: 5 },
229
+ // contentFallback: 'Hello!'
230
+ // }"></val-text>
231
+ }
232
+ ```
233
+
234
+ ### Helper Functions
235
+
236
+ ```typescript
237
+ // Using utility helpers from simple-content
238
+ import {
239
+ fromContentWithInterpolation,
240
+ interpolateStaticContent,
241
+ shouldUseReactiveContent
242
+ } from 'valtech-components';
243
+
244
+ export class AdvancedComponent {
245
+ langService = inject(LangService);
246
+
247
+ // Using helper for reactive content with interpolation
248
+ message$ = fromContentWithInterpolation(this.langService, {
249
+ contentClass: 'MyComponent',
250
+ contentKey: 'message',
251
+ contentInterpolation: { count: 10 }
252
+ });
253
+
254
+ // Static content with interpolation
255
+ processStaticText() {
256
+ const text = interpolateStaticContent(
257
+ 'You have {{count}} items',
258
+ { count: 5 }
259
+ );
260
+ // Results in: "You have 5 items"
261
+ }
179
262
  }
180
263
  ```
181
264
 
265
+ ### Migration Guide
266
+
267
+ If you're migrating from the old `ContentService` API, here's a quick reference:
268
+
269
+ ```typescript
270
+ // OLD API (ContentService - removed)
271
+ content = inject(ContentService);
272
+ text$ = this.content.fromContent({ key: 'save' });
273
+
274
+ // NEW API (LangService - current)
275
+ langService = inject(LangService);
276
+ text$ = this.langService.getContent('_global', 'save', 'Save');
277
+
278
+ // OLD API (with interpolation)
279
+ text$ = this.content.fromContentWithInterpolation({
280
+ key: 'greeting',
281
+ interpolation: { name: 'John' }
282
+ });
283
+
284
+ // NEW API (with interpolation)
285
+ text$ = this.langService.getContentWithInterpolation(
286
+ '_global',
287
+ 'greeting',
288
+ { name: 'John' },
289
+ 'Hello!'
290
+ );
291
+ ```
292
+
293
+ ### Available Utility Functions
294
+
295
+ ```typescript
296
+ import {
297
+ shouldUseReactiveContent,
298
+ extractContentConfig,
299
+ interpolateStaticContent,
300
+ fromContentWithInterpolation
301
+ } from 'valtech-components';
302
+
303
+ // Check if metadata should use reactive content
304
+ const useReactive = shouldUseReactiveContent(metadata);
305
+
306
+ // Extract configuration from metadata
307
+ const config = extractContentConfig(metadata);
308
+
309
+ // Interpolate static strings
310
+ const result = interpolateStaticContent('Hello {{name}}!', { name: 'World' });
311
+
312
+ // Helper for reactive content with interpolation
313
+ const content$ = fromContentWithInterpolation(langService, metadata);
314
+ ```
315
+
182
316
  ## 🔗 Automatic Link Processing
183
317
 
184
318
  The library now includes automatic link detection and processing capabilities. Convert URLs and internal routes in text content into clickable links automatically:
@@ -246,11 +380,19 @@ processText(text: string) {
246
380
  - `src/lib/components/molecules/` – Compound components (e.g., input groups, cards)
247
381
  - `src/lib/components/organisms/` – Complex components (e.g., forms, toolbars)
248
382
  - `src/lib/components/templates/` – Page templates and layouts
249
- - `src/lib/components/_examples/` – Example components demonstrating features
250
383
  - `src/lib/components/styles/` – Shared SCSS variables, mixins, and utilities
251
- - `src/lib/services/` – Utility and helper services (e.g., theme, navigation, i18n)
252
- - `src/lib/shared/` – Shared constants and utility functions
253
-
384
+ - `src/lib/services/` – Core services:
385
+ - `lang-provider/` – **LangService** for reactive internationalization
386
+ - `theme.service.ts` – Theme management
387
+ - `navigation.service.ts` – Routing utilities
388
+ - `download.service.ts` – File download helpers
389
+ - `icons.service.ts` – Icon management
390
+ - `toast.service.ts` – Toast notifications
391
+ - `src/lib/shared/` – Shared utilities:
392
+ - `utils/simple-content.ts` – Content system helpers and interfaces
393
+ - `utils/content.ts` – Legacy content utilities (for backward compatibility)
394
+ - `pipes/process-links.pipe.ts` – Automatic link processing
395
+ - `constants/` – Shared constants
254
396
 
255
397
  ## License
256
398
 
@@ -12,7 +12,7 @@ export class InfoComponent {
12
12
  this.icon = inject(IconService);
13
13
  }
14
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InfoComponent, isStandalone: true, selector: "info", inputs: { props: "props" }, ngImport: i0, template: `
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InfoComponent, isStandalone: true, selector: "val-info", inputs: { props: "props" }, ngImport: i0, template: `
16
16
  @if (props.image) {
17
17
  <val-image style="display: contents;" [props]="props.image" />
18
18
  }
@@ -29,7 +29,7 @@ export class InfoComponent {
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InfoComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'info', standalone: true, imports: [CommonModule, LinkComponent, TitleBlockComponent, ImageComponent, ButtonGroupComponent], template: `
32
+ args: [{ selector: 'val-info', standalone: true, imports: [CommonModule, LinkComponent, TitleBlockComponent, ImageComponent, ButtonGroupComponent], template: `
33
33
  @if (props.image) {
34
34
  <val-image style="display: contents;" [props]="props.image" />
35
35
  }
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
46
46
  }], propDecorators: { props: [{
47
47
  type: Input
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbmZvL2luZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQXVCOUQsTUFBTSxPQUFPLGFBQWE7SUFwQjFCO1FBcUJFLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FHNUI7K0dBSlksYUFBYTttR0FBYixhQUFhLDRGQWhCZDs7Ozs7Ozs7Ozs7OztHQWFULHlFQWRTLFlBQVksK0JBQUUsYUFBYSw4RkFBRSxtQkFBbUIsK0VBQUUsY0FBYyx5RUFBRSxvQkFBb0I7OzRGQWlCckYsYUFBYTtrQkFwQnpCLFNBQVM7K0JBQ0UsTUFBTSxjQUNKLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLFlBQ3ZGOzs7Ozs7Ozs7Ozs7O0dBYVQ7OEJBTVEsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyAoc29sbyBsYSBwYXJ0ZSBkZSBzdHlsZXMpXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEluZm9NZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbmZvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGlua0NvbXBvbmVudCwgVGl0bGVCbG9ja0NvbXBvbmVudCwgSW1hZ2VDb21wb25lbnQsIEJ1dHRvbkdyb3VwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHByb3BzLmltYWdlKSB7XG4gICAgICA8dmFsLWltYWdlIHN0eWxlPVwiZGlzcGxheTogY29udGVudHM7XCIgW3Byb3BzXT1cInByb3BzLmltYWdlXCIgLz5cbiAgICB9XG4gICAgPHZhbC10aXRsZS1ibG9jayBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO21hcmdpbi10b3A6IDE2cHg7XCIgW3Byb3BzXT1cInByb3BzLnRpdGxlXCIgLz5cblxuICAgIEBpZiAocHJvcHMubGluaykge1xuICAgICAgPHZhbC1saW5rIFtwcm9wc109XCJwcm9wcy5saW5rXCIgLz5cbiAgICB9XG5cbiAgICBAaWYgKHByb3BzLmFjdGlvbnMpIHtcbiAgICAgIDx2YWwtYnV0dG9uLWdyb3VwIFtwcm9wc109XCJwcm9wcy5hY3Rpb25zXCIgLz5cbiAgICB9XG4gIGAsXG4gIHN0eWxlczogYGAsXG59KVxuZXhwb3J0IGNsYXNzIEluZm9Db21wb25lbnQge1xuICBpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcm9wczogSW5mb01ldGFkYXRhO1xufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbmZvL2luZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQXVCOUQsTUFBTSxPQUFPLGFBQWE7SUFwQjFCO1FBcUJFLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FHNUI7K0dBSlksYUFBYTttR0FBYixhQUFhLGdHQWhCZDs7Ozs7Ozs7Ozs7OztHQWFULHlFQWRTLFlBQVksK0JBQUUsYUFBYSw4RkFBRSxtQkFBbUIsK0VBQUUsY0FBYyx5RUFBRSxvQkFBb0I7OzRGQWlCckYsYUFBYTtrQkFwQnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLFlBQ3ZGOzs7Ozs7Ozs7Ozs7O0dBYVQ7OEJBTVEsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyAoc29sbyBsYSBwYXJ0ZSBkZSBzdHlsZXMpXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEluZm9NZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaW5mbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExpbmtDb21wb25lbnQsIFRpdGxlQmxvY2tDb21wb25lbnQsIEltYWdlQ29tcG9uZW50LCBCdXR0b25Hcm91cENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChwcm9wcy5pbWFnZSkge1xuICAgICAgPHZhbC1pbWFnZSBzdHlsZT1cImRpc3BsYXk6IGNvbnRlbnRzO1wiIFtwcm9wc109XCJwcm9wcy5pbWFnZVwiIC8+XG4gICAgfVxuICAgIDx2YWwtdGl0bGUtYmxvY2sgc3R5bGU9XCJkaXNwbGF5OiBibG9jazttYXJnaW4tdG9wOiAxNnB4O1wiIFtwcm9wc109XCJwcm9wcy50aXRsZVwiIC8+XG5cbiAgICBAaWYgKHByb3BzLmxpbmspIHtcbiAgICAgIDx2YWwtbGluayBbcHJvcHNdPVwicHJvcHMubGlua1wiIC8+XG4gICAgfVxuXG4gICAgQGlmIChwcm9wcy5hY3Rpb25zKSB7XG4gICAgICA8dmFsLWJ1dHRvbi1ncm91cCBbcHJvcHNdPVwicHJvcHMuYWN0aW9uc1wiIC8+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IGBgLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvQ29tcG9uZW50IHtcbiAgaWNvbiA9IGluamVjdChJY29uU2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJvcHM6IEluZm9NZXRhZGF0YTtcbn1cbiJdfQ==
@@ -0,0 +1,84 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectorRef, Component, inject, Input, ViewChild, } from '@angular/core';
3
+ import { Clipboard } from '@capacitor/clipboard';
4
+ import { ToastController } from '@ionic/angular';
5
+ import { IonButton, IonIcon } from '@ionic/angular/standalone';
6
+ import * as Prism from 'prismjs';
7
+ import 'prismjs/components/prism-bash';
8
+ import 'prismjs/components/prism-css';
9
+ import 'prismjs/components/prism-javascript';
10
+ import 'prismjs/components/prism-markup';
11
+ import 'prismjs/components/prism-typescript';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common";
14
+ export class PlainCodeBoxComponent {
15
+ constructor() {
16
+ this.toast = inject(ToastController);
17
+ this.cdr = inject(ChangeDetectorRef);
18
+ this.props = { lines: [] };
19
+ }
20
+ ngOnChanges(changes) {
21
+ if (changes['props'] && !changes['props'].firstChange) {
22
+ this.cdr.detectChanges();
23
+ setTimeout(() => this.highlightCode());
24
+ }
25
+ }
26
+ ngAfterViewInit() {
27
+ setTimeout(() => this.highlightCode());
28
+ }
29
+ highlightCode() {
30
+ if (this.codeBlock && this.props.lines && this.props.lines.length > 0) {
31
+ Prism.highlightElement(this.codeBlock.nativeElement);
32
+ }
33
+ }
34
+ async copyCode() {
35
+ const fullCode = this.props.lines.map(line => line.text).join('\n');
36
+ if (fullCode) {
37
+ await Clipboard.write({
38
+ string: fullCode,
39
+ });
40
+ this.presentToast('Copiado al portapapeles!');
41
+ }
42
+ }
43
+ async presentToast(message) {
44
+ const toast = await this.toast.create({
45
+ message: message,
46
+ duration: 2000,
47
+ position: 'bottom',
48
+ color: 'dark',
49
+ });
50
+ toast.present();
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PlainCodeBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PlainCodeBoxComponent, isStandalone: true, selector: "plain-code-box", inputs: { props: "props" }, viewQueries: [{ propertyName: "codeBlock", first: true, predicate: ["codeBlock"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
54
+ <div class="code-box-container">
55
+ <ion-button *ngIf="props.showCopyButton !== false" fill="clear" class="copy-button" (click)="copyCode()">
56
+ <ion-icon name="copy-outline"></ion-icon>
57
+ </ion-button>
58
+ <pre><code [class]="'language-' + (props.language || 'bash')" #codeBlock>
59
+ <ng-container *ngFor="let line of props.lines; let i = index">
60
+ <span [class]="line.type ? 'line-' + line.type : 'line-normal'">{{ line.text }}</span><br *ngIf="i < props.lines.length - 1">
61
+ </ng-container></code></pre>
62
+ </div>
63
+ `, isInline: true, styles: [".code-box-container{position:relative;background-color:#282c34;border-radius:16px;overflow:hidden;box-shadow:0 4px 15px #0009;margin:16px 0}@media (prefers-color-scheme: light){.code-box-container{background-color:#fff;box-shadow:0 2px 4px #0000001a}}.copy-button{position:absolute;top:8px;right:8px;z-index:10;--padding-start: 2px;--padding-end: 2px;--padding-top: 2px;--padding-bottom: 2px;min-width:28px;min-height:28px;height:28px;width:28px;color:#61afef;background:#0006;border-radius:6px;box-shadow:0 1px 4px #0000000d;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.copy-button:hover{background:#00000080;color:#8cc4ff}.copy-button ion-icon{font-size:1.2em;margin:0}@media (prefers-color-scheme: light){.copy-button{color:var(--ion-color-primary, #007bff);background:#ffffffb3}.copy-button:hover{background:#ffffffe6;color:var(--ion-color-primary-tint, #3880ff)}}pre{margin:0;background-color:transparent;min-width:100%;min-height:100%;white-space:pre-wrap;word-break:normal;font-family:Roboto Mono,monospace;padding:0}code{font-family:Roboto Mono,monospace;font-size:.9em;line-height:1.6;display:block;white-space:inherit;word-break:inherit;color:#abb2bf}@media (prefers-color-scheme: light){code{color:#333}}code .line-normal{color:#abb2bf}@media (prefers-color-scheme: light){code .line-normal{color:#333}}code .line-command{color:#c678dd}@media (prefers-color-scheme: light){code .line-command{color:var(--ion-color-primary, #3880ff)}}code .line-error{color:#e06c75}@media (prefers-color-scheme: light){code .line-error{color:var(--ion-color-danger, #eb445a)}}code .line-success{color:#98c379}@media (prefers-color-scheme: light){code .line-success{color:var(--ion-color-success, #2dd36f)}}code .token.comment{color:#5c6370}code .token.selector,code .token.string{color:#98c379}code .token.punctuation{color:#abb2bf}code .token.operator{color:#c678dd}code .token.boolean,code .token.number{color:#d19a66}code .token.function{color:#61afef}code .token.keyword{color:#c678dd}code .token.class-name{color:#e6c07b}code .token.tag{color:#e06c75}code .token.attr-name{color:#d19a66}code .token.attr-value{color:#98c379}code .token.property{color:#56b6c2}code .token.variable{color:#e06c75}@media (max-width: 600px){.code-box-container{border-radius:16px}.copy-button{top:6px;right:6px;min-width:24px;min-height:24px;height:24px;width:24px}.copy-button ion-icon{font-size:1em}pre{padding:0}code{font-size:.8em;line-height:1.5}}@media (min-width: 601px) and (max-width: 1024px){code{font-size:.9em}}@media (min-width: 1025px){code{font-size:1em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { 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"] }] }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PlainCodeBoxComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'plain-code-box', standalone: true, imports: [CommonModule, IonIcon, IonButton], template: `
68
+ <div class="code-box-container">
69
+ <ion-button *ngIf="props.showCopyButton !== false" fill="clear" class="copy-button" (click)="copyCode()">
70
+ <ion-icon name="copy-outline"></ion-icon>
71
+ </ion-button>
72
+ <pre><code [class]="'language-' + (props.language || 'bash')" #codeBlock>
73
+ <ng-container *ngFor="let line of props.lines; let i = index">
74
+ <span [class]="line.type ? 'line-' + line.type : 'line-normal'">{{ line.text }}</span><br *ngIf="i < props.lines.length - 1">
75
+ </ng-container></code></pre>
76
+ </div>
77
+ `, styles: [".code-box-container{position:relative;background-color:#282c34;border-radius:16px;overflow:hidden;box-shadow:0 4px 15px #0009;margin:16px 0}@media (prefers-color-scheme: light){.code-box-container{background-color:#fff;box-shadow:0 2px 4px #0000001a}}.copy-button{position:absolute;top:8px;right:8px;z-index:10;--padding-start: 2px;--padding-end: 2px;--padding-top: 2px;--padding-bottom: 2px;min-width:28px;min-height:28px;height:28px;width:28px;color:#61afef;background:#0006;border-radius:6px;box-shadow:0 1px 4px #0000000d;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.copy-button:hover{background:#00000080;color:#8cc4ff}.copy-button ion-icon{font-size:1.2em;margin:0}@media (prefers-color-scheme: light){.copy-button{color:var(--ion-color-primary, #007bff);background:#ffffffb3}.copy-button:hover{background:#ffffffe6;color:var(--ion-color-primary-tint, #3880ff)}}pre{margin:0;background-color:transparent;min-width:100%;min-height:100%;white-space:pre-wrap;word-break:normal;font-family:Roboto Mono,monospace;padding:0}code{font-family:Roboto Mono,monospace;font-size:.9em;line-height:1.6;display:block;white-space:inherit;word-break:inherit;color:#abb2bf}@media (prefers-color-scheme: light){code{color:#333}}code .line-normal{color:#abb2bf}@media (prefers-color-scheme: light){code .line-normal{color:#333}}code .line-command{color:#c678dd}@media (prefers-color-scheme: light){code .line-command{color:var(--ion-color-primary, #3880ff)}}code .line-error{color:#e06c75}@media (prefers-color-scheme: light){code .line-error{color:var(--ion-color-danger, #eb445a)}}code .line-success{color:#98c379}@media (prefers-color-scheme: light){code .line-success{color:var(--ion-color-success, #2dd36f)}}code .token.comment{color:#5c6370}code .token.selector,code .token.string{color:#98c379}code .token.punctuation{color:#abb2bf}code .token.operator{color:#c678dd}code .token.boolean,code .token.number{color:#d19a66}code .token.function{color:#61afef}code .token.keyword{color:#c678dd}code .token.class-name{color:#e6c07b}code .token.tag{color:#e06c75}code .token.attr-name{color:#d19a66}code .token.attr-value{color:#98c379}code .token.property{color:#56b6c2}code .token.variable{color:#e06c75}@media (max-width: 600px){.code-box-container{border-radius:16px}.copy-button{top:6px;right:6px;min-width:24px;min-height:24px;height:24px;width:24px}.copy-button ion-icon{font-size:1em}pre{padding:0}code{font-size:.8em;line-height:1.5}}@media (min-width: 601px) and (max-width: 1024px){code{font-size:.9em}}@media (min-width: 1025px){code{font-size:1em}}\n"] }]
78
+ }], ctorParameters: () => [], propDecorators: { props: [{
79
+ type: Input
80
+ }], codeBlock: [{
81
+ type: ViewChild,
82
+ args: ['codeBlock']
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tY29kZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGxhaW4tY29kZS1ib3gvcGxhaW4tY29kZS1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTywrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLHFDQUFxQyxDQUFDOzs7QUFvQjdDLE1BQU0sT0FBTyxxQkFBcUI7SUFRaEM7UUFQQSxVQUFLLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV2QixVQUFLLEdBQXlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBSXRDLENBQUM7SUFFaEIsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BCLE1BQU0sRUFBRSxRQUFRO2FBQ2pCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBZTtRQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFFBQVE7WUFDbEIsS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQzsrR0E3Q1UscUJBQXFCO21HQUFyQixxQkFBcUIsbU9BYnRCOzs7Ozs7Ozs7O0dBVVQsdW5GQVhTLFlBQVksZ1FBQUUsT0FBTywySkFBRSxTQUFTOzs0RkFjL0IscUJBQXFCO2tCQWpCakMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxZQUNqQzs7Ozs7Ozs7OztHQVVUO3dEQU9RLEtBQUs7c0JBQWIsS0FBSztnQkFFa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0BjYXBhY2l0b3IvY2xpcGJvYXJkJztcbmltcG9ydCB7IFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgKiBhcyBQcmlzbSBmcm9tICdwcmlzbWpzJztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWJhc2gnO1xuaW1wb3J0ICdwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tY3NzJztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWphdmFzY3JpcHQnO1xuaW1wb3J0ICdwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tbWFya3VwJztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgUGxhaW5Db2RlQm94TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGxhaW4tY29kZS1ib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBJb25CdXR0b25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb2RlLWJveC1jb250YWluZXJcIj5cbiAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwicHJvcHMuc2hvd0NvcHlCdXR0b24gIT09IGZhbHNlXCIgZmlsbD1cImNsZWFyXCIgY2xhc3M9XCJjb3B5LWJ1dHRvblwiIChjbGljayk9XCJjb3B5Q29kZSgpXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY29weS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDxwcmU+PGNvZGUgW2NsYXNzXT1cIidsYW5ndWFnZS0nICsgKHByb3BzLmxhbmd1YWdlIHx8ICdiYXNoJylcIiAjY29kZUJsb2NrPlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluZSBvZiBwcm9wcy5saW5lczsgbGV0IGkgPSBpbmRleFwiPlxuICA8c3BhbiBbY2xhc3NdPVwibGluZS50eXBlID8gJ2xpbmUtJyArIGxpbmUudHlwZSA6ICdsaW5lLW5vcm1hbCdcIj57eyBsaW5lLnRleHQgfX08L3NwYW4+PGJyICpuZ0lmPVwiaSA8IHByb3BzLmxpbmVzLmxlbmd0aCAtIDFcIj5cbjwvbmctY29udGFpbmVyPjwvY29kZT48L3ByZT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcGxhaW4tY29kZS1ib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGxhaW5Db2RlQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgdG9hc3QgPSBpbmplY3QoVG9hc3RDb250cm9sbGVyKTtcbiAgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBASW5wdXQoKSBwcm9wczogUGxhaW5Db2RlQm94TWV0YWRhdGEgPSB7IGxpbmVzOiBbXSB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvZGVCbG9jaycpIGNvZGVCbG9jayE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10gJiYgIWNoYW5nZXNbJ3Byb3BzJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaWdobGlnaHRDb2RlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaGlnaGxpZ2h0Q29kZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Q29kZSgpIHtcbiAgICBpZiAodGhpcy5jb2RlQmxvY2sgJiYgdGhpcy5wcm9wcy5saW5lcyAmJiB0aGlzLnByb3BzLmxpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQodGhpcy5jb2RlQmxvY2submF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY29weUNvZGUoKSB7XG4gICAgY29uc3QgZnVsbENvZGUgPSB0aGlzLnByb3BzLmxpbmVzLm1hcChsaW5lID0+IGxpbmUudGV4dCkuam9pbignXFxuJyk7XG4gICAgaWYgKGZ1bGxDb2RlKSB7XG4gICAgICBhd2FpdCBDbGlwYm9hcmQud3JpdGUoe1xuICAgICAgICBzdHJpbmc6IGZ1bGxDb2RlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnByZXNlbnRUb2FzdCgnQ29waWFkbyBhbCBwb3J0YXBhcGVsZXMhJyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJlc2VudFRvYXN0KG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdC5jcmVhdGUoe1xuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgcG9zaXRpb246ICdib3R0b20nLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICB9KTtcbiAgICB0b2FzdC5wcmVzZW50KCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wbGFpbi1jb2RlLWJveC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29kZUxpbmVUeXBlID0gJ25vcm1hbCcgfCAnY29tbWFuZCcgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuXG5leHBvcnQgdHlwZSBDb2RlTGluZSA9IHtcbiAgdGV4dDogc3RyaW5nO1xuICB0eXBlPzogQ29kZUxpbmVUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgUGxhaW5Db2RlQm94TWV0YWRhdGEgPSB7XG4gIGxpbmVzOiBDb2RlTGluZVtdO1xuICBzaG93Q29weUJ1dHRvbj86IGJvb2xlYW47XG4gIGxhbmd1YWdlPzogc3RyaW5nO1xufTtcbiJdfQ==
@@ -76,6 +76,8 @@ export * from './lib/components/molecules/command-display/command-display.compon
76
76
  export * from './lib/components/molecules/command-display/types';
77
77
  export * from './lib/components/molecules/info/info.component';
78
78
  export * from './lib/components/molecules/info/types';
79
+ export * from './lib/components/molecules/plain-code-box/plain-code-box.component';
80
+ export * from './lib/components/molecules/plain-code-box/types';
79
81
  export * from './lib/components/organisms/article/article.component';
80
82
  export * from './lib/components/organisms/article/types';
81
83
  export * from './lib/components/organisms/banner/banner.component';
@@ -121,4 +123,4 @@ export * from './lib/shared/utils/form-defaults';
121
123
  export { createReactiveContentMetadata, extractContentConfig, extractContentConfigWithInterpolation, interpolateStaticContent, shouldUseReactiveContent, shouldUseReactiveContentWithInterpolation, } from './lib/shared/utils/simple-content';
122
124
  export * from './lib/shared/utils/styles';
123
125
  export * from './lib/shared/utils/text';
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFj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QixDQUFDO0FBRXJDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxtRUFBbUU7QUFDbkUsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUl4Qix3QkFBd0IsRUFDeEIseUNBQXlDLEdBQzFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB2YWx0ZWNoLWNvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYXZhdGFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYm94L2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2J1dHRvbi9mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGl2aWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2hyZWYvaHJlZi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ocmVmL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2ljb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pbWFnZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvcHJvZ3Jlc3MtYmFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90aXRsZS90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FsZXJ0LWJveC9hbGVydC1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FsZXJ0LWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrLWlucHV0L2NoZWNrLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtbG9hZGVyL2NvbnRlbnQtbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LWxvYWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2VtYWlsLWlucHV0L2VtYWlsLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9leHBhbmRhYmxlLXRleHQvZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9leHBhbmRhYmxlLXRleHQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9oaW50L2hpbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2hvdXItaW5wdXQvaG91ci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC9sYXllcmVkLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rL2xpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmsvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtY2FrZS9saW5rcy1jYWtlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rcy1jYWtlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC9ub3Rlcy1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGluLWlucHV0L3Bpbi1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcG9wb3Zlci1zZWxlY3Rvci9wb3BvdmVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2dyZXNzLXN0YXR1cy9wcm9ncmVzcy1zdGF0dXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2dyZXNzLXN0YXR1cy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9tcHRlci9wcm9tcHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvbXB0ZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aXRsZS1ibG9jay90aXRsZS1ibG9jay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29kZS1kaXNwbGF5L2NvZGUtZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29kZS1kaXNwbGF5L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjdGlvbi1oZWFkZXIvYWN0aW9uLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWN0aW9uLWhlYWRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9waWxsL3BpbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29tbWFuZC1kaXNwbGF5L2NvbW1hbmQtZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29tbWFuZC1kaXNwbGF5L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2luZm8vaW5mby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvaW5mby90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9iYW5uZXIvYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9iYW5uZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS1mb290ZXIvZm9ybS1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaGVhZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2l0ZW0tbGlzdC9pdGVtLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2l0ZW0tbGlzdC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9uby1jb250ZW50L25vLWNvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL25vLWNvbnRlbnQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy93aXphcmQvd2l6YXJkLWZvb3Rlci93aXphcmQtZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy93aXphcmQvd2l6YXJkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3NpbXBsZS9zaW1wbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3NpbXBsZS90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbi1hcHAtYnJvd3Nlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9waXBlcy9wcm9jZXNzLWxpbmtzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2NvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvZm9ybS1kZWZhdWx0cyc7XG4vLyBFeHBvcnQgc3BlY2lmaWMgZnVuY3Rpb25zIGZyb20gc2ltcGxlLWNvbnRlbnQgdG8gYXZvaWQgY29uZmxpY3RzXG5leHBvcnQge1xuICBjcmVhdGVSZWFjdGl2ZUNvbnRlbnRNZXRhZGF0YSxcbiAgZXh0cmFjdENvbnRlbnRDb25maWcsXG4gIGV4dHJhY3RDb250ZW50Q29uZmlnV2l0aEludGVycG9sYXRpb24sXG4gIGludGVycG9sYXRlU3RhdGljQ29udGVudCxcbiAgUmVhY3RpdmVDb250ZW50TWV0YWRhdGEsXG4gIFJlYWN0aXZlQ29udGVudFdpdGhJbnRlcnBvbGF0aW9uLFxuICBSZWFjdGl2ZVRleHRNZXRhZGF0YSxcbiAgc2hvdWxkVXNlUmVhY3RpdmVDb250ZW50LFxuICBzaG91bGRVc2VSZWFjdGl2ZUNvbnRlbnRXaXRoSW50ZXJwb2xhdGlvbixcbn0gZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3NpbXBsZS1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3RleHQnO1xuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFj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QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsbUVBQW1FO0FBQ25FLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLHFDQUFxQyxFQUNyQyx3QkFBd0IsRUFJeEIsd0JBQXdCLEVBQ3hCLHlDQUF5QyxHQUMxQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdmFsdGVjaC1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2F2YXRhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2JveC9ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYm94L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9kaXNwbGF5L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2RpdmlkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ocmVmL2hyZWYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaHJlZi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pY29uL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLWJhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hbGVydC1ib3gvYWxlcnQtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hbGVydC1ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29tbWVudC1pbnB1dC9jb21tZW50LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LWxvYWRlci9jb250ZW50LWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29udGVudC1sb2FkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9ob3VyLWlucHV0L2hvdXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9sYXllcmVkLWNhcmQvbGF5ZXJlZC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9sYXllcmVkLWNhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGluay9saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtzLWNha2UvbGlua3MtY2FrZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtY2FrZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9ub3Rlcy1ib3gvbm90ZXMtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9ub3Rlcy1ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BvcG92ZXItc2VsZWN0b3IvcG9wb3Zlci1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcG9wb3Zlci1zZWxlY3Rvci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9ncmVzcy1zdGF0dXMvcHJvZ3Jlc3Mtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9ncmVzcy1zdGF0dXMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvbXB0ZXIvcHJvbXB0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb21wdGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpdGxlLWJsb2NrL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvZGUtZGlzcGxheS9jb2RlLWRpc3BsYXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvZGUtZGlzcGxheS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24taGVhZGVyL2FjdGlvbi1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjdGlvbi1oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9waWxsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1hbmQtZGlzcGxheS9jb21tYW5kLWRpc3BsYXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1hbmQtZGlzcGxheS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbmZvL2luZm8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2luZm8vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGxhaW4tY29kZS1ib3gvcGxhaW4tY29kZS1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BsYWluLWNvZGUtYm94L3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2ZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLWZvb3Rlci9mb3JtLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L2l0ZW0tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL25vLWNvbnRlbnQvbm8tY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbm8tY29udGVudC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvd2l6YXJkL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQtZm9vdGVyL3dpemFyZC1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvc2ltcGxlL3NpbXBsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvc2ltcGxlL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZG93bmxvYWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2luLWFwcC1icm93c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci9jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvbGFuZy1wcm92aWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3BpcGVzL3Byb2Nlc3MtbGlua3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9mb3JtLWRlZmF1bHRzJztcbi8vIEV4cG9ydCBzcGVjaWZpYyBmdW5jdGlvbnMgZnJvbSBzaW1wbGUtY29udGVudCB0byBhdm9pZCBjb25mbGljdHNcbmV4cG9ydCB7XG4gIGNyZWF0ZVJlYWN0aXZlQ29udGVudE1ldGFkYXRhLFxuICBleHRyYWN0Q29udGVudENvbmZpZyxcbiAgZXh0cmFjdENvbnRlbnRDb25maWdXaXRoSW50ZXJwb2xhdGlvbixcbiAgaW50ZXJwb2xhdGVTdGF0aWNDb250ZW50LFxuICBSZWFjdGl2ZUNvbnRlbnRNZXRhZGF0YSxcbiAgUmVhY3RpdmVDb250ZW50V2l0aEludGVycG9sYXRpb24sXG4gIFJlYWN0aXZlVGV4dE1ldGFkYXRhLFxuICBzaG91bGRVc2VSZWFjdGl2ZUNvbnRlbnQsXG4gIHNob3VsZFVzZVJlYWN0aXZlQ29udGVudFdpdGhJbnRlcnBvbGF0aW9uLFxufSBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvc2ltcGxlLWNvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvdGV4dCc7XG4iXX0=