@eui/showcase 18.0.0-next.8 → 18.0.0-rc.1

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 (30) hide show
  1. package/esm2022/lib/components/doc-page/doc-page.component.mjs +83 -26
  2. package/esm2022/lib/components/doc-page-code/doc-page-code.component.mjs +5 -5
  3. package/esm2022/lib/components/doc-page-code-fab/doc-page-code-fab.component.mjs +8 -7
  4. package/esm2022/lib/components/doc-page-code-modal/doc-page-code-modal.component.mjs +5 -5
  5. package/esm2022/lib/components/doc-page-pattern/doc-page-pattern.component.mjs +32 -36
  6. package/esm2022/lib/components/doc-sample/doc-sample.component.mjs +15 -5
  7. package/esm2022/lib/components/doc-sample-api/doc-sample-api.component.mjs +4 -4
  8. package/esm2022/lib/components/doc-section/doc-section.component.mjs +5 -5
  9. package/esm2022/lib/components/doc-section-code/doc-section-code.component.mjs +24 -25
  10. package/esm2022/lib/components/eui-code-highlighter/eui-code-highlighter.component.mjs +4 -4
  11. package/esm2022/lib/components/lorem-ipsum/lorem-ipsum-sample.component.mjs +5 -5
  12. package/esm2022/lib/components/playground/playground.component.mjs +4 -4
  13. package/esm2022/lib/components/playground/stackblitz.files.mjs +4 -2
  14. package/esm2022/lib/components/playground/stackblitz.service.mjs +4 -5
  15. package/esm2022/lib/eui-showcase.module.mjs +9 -6
  16. package/fesm2022/eui-showcase.mjs +1375 -2579
  17. package/fesm2022/eui-showcase.mjs.map +1 -7
  18. package/lib/components/doc-page/doc-page.component.d.ts +8 -1
  19. package/lib/components/doc-page/doc-page.component.d.ts.map +1 -1
  20. package/lib/components/doc-page-code-fab/doc-page-code-fab.component.d.ts.map +1 -1
  21. package/lib/components/doc-page-pattern/doc-page-pattern.component.d.ts +3 -5
  22. package/lib/components/doc-page-pattern/doc-page-pattern.component.d.ts.map +1 -1
  23. package/lib/components/doc-sample/doc-sample.component.d.ts +6 -1
  24. package/lib/components/doc-sample/doc-sample.component.d.ts.map +1 -1
  25. package/lib/components/playground/stackblitz.files.d.ts +1 -1
  26. package/lib/components/playground/stackblitz.files.d.ts.map +1 -1
  27. package/lib/components/playground/stackblitz.service.d.ts.map +1 -1
  28. package/lib/eui-showcase.module.d.ts +1 -1
  29. package/lib/eui-showcase.module.d.ts.map +1 -1
  30. package/package.json +9 -9
@@ -1,7 +1,44 @@
1
- // lib/components/playground/stackblitz.files.mjs
2
- var polyfillsFile = "import 'zone.js';";
3
- var mainFile = (moduleName, componentName) => `
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable, Directive, booleanAttribute, Component, ViewEncapsulation, Input, HostBinding, ContentChildren, forwardRef, ViewChild, ContentChild, ElementRef, HostListener, NgModule } from '@angular/core';
3
+ import * as i4$1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2$1 from '@eui/components/eui-card';
6
+ import { EuiCardModule } from '@eui/components/eui-card';
7
+ import * as i2$2 from '@eui/components/eui-button';
8
+ import { EuiButtonModule } from '@eui/components/eui-button';
9
+ import * as i9 from '@eui/components/eui-tabs';
10
+ import { EuiTabsModule } from '@eui/components/eui-tabs';
11
+ import * as i6 from '@eui/components/eui-page';
12
+ import { EuiPageModule } from '@eui/components/eui-page';
13
+ import * as i7 from '@eui/components/eui-chip';
14
+ import { EuiChipModule } from '@eui/components/eui-chip';
15
+ import * as i3$2 from '@eui/components/eui-dialog';
16
+ import { EuiDialogModule } from '@eui/components/eui-dialog';
17
+ import * as i8 from '@eui/components/eui-alert';
18
+ import { EuiAlertModule } from '@eui/components/eui-alert';
19
+ import * as i1$1 from '@eui/components/eui-block-content';
20
+ import { EuiBlockContentModule } from '@eui/components/eui-block-content';
21
+ import * as i6$1 from '@eui/components/eui-badge';
22
+ import { EuiBadgeModule } from '@eui/components/eui-badge';
23
+ import * as i10 from '@eui/components/eui-icon';
24
+ import { EuiIconModule } from '@eui/components/eui-icon';
25
+ import * as i11 from '@eui/components/eui-label';
26
+ import { EuiLabelModule } from '@eui/components/eui-label';
27
+ import { lastValueFrom, forkJoin, Observable } from 'rxjs';
28
+ import { map, catchError } from 'rxjs/operators';
29
+ import sdk from '@stackblitz/sdk';
30
+ import * as i2 from '@angular/common/http';
31
+ import { HttpClient } from '@angular/common/http';
32
+ import * as i3 from '@eui/core';
33
+ import * as i4 from '@angular/cdk/clipboard';
34
+ import * as i1 from '@angular/router';
35
+ import * as i3$1 from '@angular/platform-browser';
36
+ import { DomSanitizer } from '@angular/platform-browser';
37
+
38
+ const polyfillsFile = 'import \'zone.js\';';
39
+ const mainFile = (moduleName, componentName) => `
4
40
  import './polyfills';
41
+ import { BrowserModule } from '@angular/platform-browser';
5
42
  import { InjectionToken, NgModule } from '@angular/core';
6
43
  import { HttpClientModule } from '@angular/common/http';
7
44
  import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
@@ -16,6 +53,7 @@ const rootReducer = Object.assign({}, coreReducers, {});
16
53
 
17
54
  @NgModule({
18
55
  imports: [
56
+ BrowserModule,
19
57
  HttpClientModule,
20
58
  CoreModule.forRoot(),
21
59
  TranslateModule.forRoot(),
@@ -53,7 +91,7 @@ platformBrowserDynamic().bootstrapModule(RootModule).then(ref => {
53
91
  // Otherwise, log the boot error
54
92
  }).catch(err => console.error(err));
55
93
  `;
56
- var moduleFile = (componentName, m = []) => `
94
+ const moduleFile = (componentName, m = []) => `
57
95
  import { NgModule, InjectionToken } from '@angular/core';
58
96
  import { BrowserModule } from '@angular/platform-browser';
59
97
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@@ -75,8 +113,9 @@ import {
75
113
  } from '@eui/core';
76
114
 
77
115
  import { ${componentName} } from './component';
78
- ` + m.map((i) => `import { ${i.name} } from '${i.path}';
79
- `).join("") + `
116
+ ` +
117
+ m.map((i) => `import { ${i.name} } from '${i.path}';\n`).join('') +
118
+ `
80
119
 
81
120
  export const REDUCER_TOKEN = new InjectionToken<any>('Registered Reducers');
82
121
 
@@ -93,7 +132,9 @@ export const REDUCER_TOKEN = new InjectionToken<any>('Registered Reducers');
93
132
  EffectsModule.forRoot([...CoreModuleEffects]),
94
133
  TranslateModule.forRoot(translateConfig),
95
134
  StoreModule.forRoot(REDUCER_TOKEN, { })
96
- ` + m.map((i) => `${i.name},`).join("") + `
135
+ ` +
136
+ m.map((i) => `${i.name},`).join('') +
137
+ `
97
138
  ],
98
139
  declarations: [${componentName}],
99
140
  providers: [
@@ -114,7 +155,7 @@ export const REDUCER_TOKEN = new InjectionToken<any>('Registered Reducers');
114
155
  })
115
156
  export class AppModule {}
116
157
  `;
117
- var angularJsonFile = `
158
+ const angularJsonFile = `
118
159
  {
119
160
  "version": 1,
120
161
  "newProjectRoot": "projects",
@@ -137,7 +178,7 @@ var angularJsonFile = `
137
178
  "assets": [
138
179
  {
139
180
  "glob": "**/*",
140
- "input": "./node_modules/@eui/styles-base/src/assets/",
181
+ "input": "./node_modules/@eui/styles/dist/assets/",
141
182
  "output": "src/assets"
142
183
  },
143
184
  {
@@ -193,18 +234,18 @@ var angularJsonFile = `
193
234
  }
194
235
  }
195
236
  `;
196
- var indexHtmlFile = (selector) => `
237
+ const indexHtmlFile = (selector) => `
197
238
  <div style="padding: 10px">
198
239
  <${selector}></${selector}>
199
240
  </div>
200
241
  `;
201
- var PACKAGE_JSON = {
202
- name: "demo",
203
- version: "0.0.0",
204
- private: true,
205
- dependencies: {}
242
+ const PACKAGE_JSON = {
243
+ name: 'demo',
244
+ version: '0.0.0',
245
+ private: true,
246
+ dependencies: {},
206
247
  };
207
- var tsConfig = `
248
+ const tsConfig = `
208
249
  {
209
250
  "compileOnSave": false,
210
251
  "compilerOptions": {
@@ -235,2600 +276,1355 @@ var tsConfig = `
235
276
  }
236
277
  }`;
237
278
 
238
- // lib/components/playground/stackblitz.service.mjs
239
- import sdk from "@stackblitz/sdk";
240
- import { lastValueFrom } from "rxjs";
241
- import { inject, Injectable } from "@angular/core";
242
- import { HttpClient } from "@angular/common/http";
243
- import * as i0 from "@angular/core";
244
- var StackblitzService = class _StackblitzService {
245
- constructor() {
246
- this.http = inject(HttpClient);
247
- }
248
- /**
249
- * extract the name of the component class name and selector name from the typescript content
250
- *
251
- * @param contents
252
- * @private
253
- */
254
- extractComponentMetadata(contents) {
255
- const selectorRegex = /selector: ('(?<singleQuotedSelector>[\w\d-]+)'|"(?<doubleQuotedSelector>[\w\d-]+)")/;
256
- const classRegex = /export class ([\w\d]+)/;
257
- const className = contents.match(classRegex);
258
- const selectorName = contents.match(selectorRegex);
259
- const found = selectorName?.groups?.singleQuotedSelector || selectorName?.groups?.doubleQuotedSelector;
260
- return {
261
- className: className ? className[1] : "",
262
- selector: found || ""
263
- };
264
- }
265
- /**
266
- * extract module class name from the typescript content
267
- *
268
- * @param contents
269
- * @private
270
- */
271
- extractModuleName(contents) {
272
- const moduleClass = contents.match(/export class (\w+Module)/);
273
- return moduleClass ? moduleClass[1] : "";
274
- }
275
- /**
276
- * extract the name of the component class name and selector name from the typescript content
277
- *
278
- * @param contents
279
- * @private
280
- */
281
- extractComponentName(contents) {
282
- const componentName = contents.match(/bootstrap: \[([\s\S]*?)]/);
283
- return componentName ? componentName[1] : "";
284
- }
285
- appendVitalNgModules(contents) {
286
- contents = contents.replace(/imports: \[([\s\S]*?)\]/, "imports: [\n BrowserModule, $1]");
287
- contents = `import { BrowserModule } from '@angular/platform-browser';
288
- ${contents}`;
289
- contents = contents.replace(/imports: \[([\s\S]*?)\]/, "imports: [\n BrowserAnimationsModule, $1]");
290
- contents = `import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
291
- ${contents}`;
292
- return contents;
293
- }
294
- /**
295
- * Open a stackblitz project in a new browser TAB with the given html and typescript content
296
- * @param htmlContent
297
- * @param typescriptContent
298
- * @param title
299
- * @param sampleId
300
- */
301
- openStackBlitz(htmlContent, typescriptContent, title, sampleId) {
302
- this.getStackblitzDependencies().then((deps) => {
303
- const { dependencies, devDependencies } = deps;
304
- const { selector } = this.extractComponentMetadata(typescriptContent);
305
- const moduleName = this.extractModuleName(typescriptContent);
306
- const componentName = this.extractComponentName(typescriptContent);
307
- const project = {
308
- title,
309
- description: `An eUI example for the ${title}.`,
310
- template: "angular-cli",
311
- files: {
312
- "src/component.html": htmlContent,
313
- "src/component.ts": this.appendVitalNgModules(typescriptContent),
314
- "src/main.ts": mainFile(moduleName, componentName),
315
- "src/polyfills.ts": polyfillsFile,
316
- "src/index.html": indexHtmlFile(selector),
317
- "angular.json": angularJsonFile,
318
- "package.json": JSON.stringify({
319
- ...PACKAGE_JSON,
320
- dependencies,
321
- devDependencies
322
- }, null, 2),
323
- "tsconfig.json": tsConfig
324
- },
325
- settings: {
326
- compile: {
327
- trigger: "auto",
328
- clearConsole: true
329
- }
330
- },
331
- dependencies
332
- };
333
- return sdk.openProject(project, {
334
- openFile: ["src/component.ts", "src/component.html"],
335
- zenMode: true
336
- });
337
- });
338
- }
339
- /**
340
- * Retrieve only the dependencies that stackblitz will need filtered from @eui/deps-base
341
- *
342
- * @private
343
- */
344
- getStackblitzDependencies() {
345
- const stackblitzDependencies = [
346
- "@angular/animations",
347
- "@angular/cdk",
348
- "@angular/common",
349
- "@angular/compiler",
350
- "@angular/core",
351
- "@angular/forms",
352
- "@angular/material",
353
- "@angular/material-moment-adapter",
354
- "@angular/platform-browser",
355
- "@angular/platform-browser-dynamic",
356
- "@angular/router",
357
- "@eui/base",
358
- "@eui/components",
359
- "@eui/core",
360
- "@eui/styles",
361
- "@eui/styles-base",
362
- "@ngrx/effects",
363
- "@ngrx/store",
364
- "@ngx-translate/core",
365
- "localforage",
366
- "lodash-es",
367
- "reselect",
368
- "rxjs",
369
- "tslib",
370
- "zone.js"
371
- ];
372
- const stackblitzDevDependencies = ["@angular-devkit/build-angular", "@angular/cli", "@angular/compiler-cli", "typescript"];
373
- return this.getCurrentShowcaseEuiVersion().then((version) => this.retrievePackageDependencies(version)).then((dependencies) => {
374
- let filteredArr = Object.entries(dependencies).filter((v) => stackblitzDependencies.find((s) => s === v[0]));
375
- const filteredObj = Object.fromEntries(filteredArr);
376
- const extraDependencies = {
377
- uuid: "8.3.2",
378
- "ngx-device-detector": "3.0.0",
379
- "ngx-moment": "~6.0.0",
380
- "ngx-mask": "^14.0.0",
381
- "cleave.js": "^1.6.0",
382
- moment: "^2.19.3",
383
- extend: "^3.0.2"
384
- };
385
- filteredArr = Object.entries(dependencies).filter((v) => stackblitzDevDependencies.find((s) => s === v[0]));
386
- dependencies = { ...extraDependencies, ...filteredObj };
387
- const devDependencies = Object.fromEntries(filteredArr);
388
- return { dependencies, devDependencies };
389
- });
390
- }
391
- /**
392
- * Retrieve the dependencies from the package.json file of @eui/deps-base for the given version.
393
- *
394
- * @param version
395
- * @private
396
- */
397
- retrievePackageDependencies(version) {
398
- return fetch(`https://unpkg.com/@eui/deps-base@${version}/package.json`).then((response) => response.json()).then((pkg) => pkg?.dependencies);
399
- }
400
- /**
401
- * Retrieve the eUI version used to build the showcase from application app-metadata.json
402
- *
403
- * @private
404
- */
405
- getCurrentShowcaseEuiVersion() {
406
- return lastValueFrom(this.http.get("assets/app-metadata.json", { responseType: "json" })).then((res) => res?.appVersion || "latest");
407
- }
408
- static {
409
- this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: _StackblitzService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
410
- }
411
- static {
412
- this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: _StackblitzService });
413
- }
414
- };
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: StackblitzService, decorators: [{
416
- type: Injectable
417
- }] });
418
-
419
- // lib/components/eui-code-highlighter/eui-code-highlighter.component.mjs
420
- import { Directive } from "@angular/core";
421
- import * as i02 from "@angular/core";
422
- var EuiCodeHighlighterDirective = class _EuiCodeHighlighterDirective {
423
- constructor(el) {
424
- this.el = el;
425
- }
426
- ngAfterViewInit() {
427
- if (window["Prism"]) {
428
- window["Prism"].highlightElement(this.el.nativeElement);
279
+ class StackblitzService {
280
+ constructor() {
281
+ this.http = inject(HttpClient);
429
282
  }
430
- }
431
- static {
432
- this.ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i02, type: _EuiCodeHighlighterDirective, deps: [{ token: i02.ElementRef }], target: i02.ɵɵFactoryTarget.Directive });
433
- }
434
- static {
435
- this.ɵdir = i02.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _EuiCodeHighlighterDirective, selector: "[euiCode]", ngImport: i02 });
436
- }
437
- };
438
- i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i02, type: EuiCodeHighlighterDirective, decorators: [{
439
- type: Directive,
440
- args: [{
441
- selector: "[euiCode]"
442
- }]
443
- }], ctorParameters: () => [{ type: i02.ElementRef }] });
444
-
445
- // lib/components/doc-sample/doc-sample.component.mjs
446
- import { Component, Input, ViewEncapsulation, HostBinding, booleanAttribute } from "@angular/core";
447
- import { forkJoin, Observable } from "rxjs";
448
- import { map, catchError } from "rxjs/operators";
449
- import * as i03 from "@angular/core";
450
- import * as i2 from "@angular/common/http";
451
- import * as i3 from "@eui/core";
452
- import * as i4 from "@angular/cdk/clipboard";
453
- import * as i5 from "@angular/router";
454
- import * as i6 from "@angular/common";
455
- import * as i7 from "@eui/components/eui-card";
456
- import * as i8 from "@eui/components/eui-button";
457
- import * as i9 from "@eui/components/eui-tabs";
458
- import * as i10 from "@eui/components/eui-icon";
459
- import * as i11 from "@eui/components/eui-label";
460
- var DocSampleComponent = class _DocSampleComponent {
461
- constructor(sb, _http, asService, cd, growlService, clipboard, router) {
462
- this.sb = sb;
463
- this._http = _http;
464
- this.asService = asService;
465
- this.cd = cd;
466
- this.growlService = growlService;
467
- this.clipboard = clipboard;
468
- this.router = router;
469
- this.id = "";
470
- this.label = "";
471
- this.styleClass = "";
472
- this.renderPlayground = false;
473
- this.isCodeButtonVisible = true;
474
- this.classes = "eui-showcase-doc-sample";
475
- this.isCodeLoaded = false;
476
- this.isCodeLoading = false;
477
- this.isCodeExpanded = false;
478
- this.playground_activated = false;
479
- }
480
- ngAfterContentInit() {
481
- if (!this.label) {
482
- this.label = this.id;
283
+ /**
284
+ * extract the name of the component class name and selector name from the typescript content
285
+ *
286
+ * @param contents
287
+ * @private
288
+ */
289
+ extractComponentMetadata(contents) {
290
+ const selectorRegex = /selector: ('(?<singleQuotedSelector>[\w\d-]+)'|"(?<doubleQuotedSelector>[\w\d-]+)")/;
291
+ const classRegex = /export class ([\w\d]+)/;
292
+ const className = contents.match(classRegex);
293
+ const selectorName = contents.match(selectorRegex);
294
+ const found = selectorName?.groups?.singleQuotedSelector || selectorName?.groups?.doubleQuotedSelector;
295
+ return {
296
+ className: className ? className[1] : '',
297
+ selector: found || '',
298
+ };
483
299
  }
484
- }
485
- copyCurrentUrlToClipboard(id) {
486
- try {
487
- const baseDomain = window?.location?.origin;
488
- const currentUrl = this.router.url.split("#");
489
- const fullUrl = baseDomain + currentUrl[0] + "#" + id;
490
- this.clipboard.copy(fullUrl);
491
- } catch (err) {
492
- this.growlService.growl({ severity: "danger", summary: "Clipboard service not available" });
493
- } finally {
494
- this.growlService.growl({ severity: "info", summary: "Link URL copied to clipboard" });
300
+ /**
301
+ * extract module class name from the typescript content
302
+ *
303
+ * @param contents
304
+ * @private
305
+ */
306
+ extractModuleName(contents) {
307
+ const moduleClass = contents.match(/export class (\w+Module)/);
308
+ return moduleClass ? moduleClass[1] : '';
495
309
  }
496
- }
497
- onToggleCode() {
498
- if (this.isCodeLoaded) {
499
- this.isCodeExpanded = !this.isCodeExpanded;
310
+ /**
311
+ * extract the name of the component class name and selector name from the typescript content
312
+ *
313
+ * @param contents
314
+ * @private
315
+ */
316
+ extractComponentName(contents) {
317
+ const componentName = contents.match(/bootstrap: \[([\s\S]*?)]/);
318
+ return componentName ? componentName[1] : '';
500
319
  }
501
- if (!this.isCodeLoaded) {
502
- this.loadCodeFiles().subscribe((demo) => {
503
- this.tsContent = demo.typescript;
504
- this.htmlContent = demo.html;
505
- this.isCodeLoaded = true;
506
- this.isCodeExpanded = true;
507
- this.isCodeLoading = false;
508
- this.cd.detectChanges();
509
- });
320
+ appendVitalNgModules(contents) {
321
+ // const imports = contents.match(/imports: \[([\s\S]*?)\]/);
322
+ // appends BrowserModule to imports
323
+ contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [\n\t\tBrowserModule, $1]');
324
+ // appends import of BrowserModule
325
+ contents = `import { BrowserModule } from '@angular/platform-browser';\n${contents}`;
326
+ // appends BrowserAnimationsModule to imports
327
+ contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [\n\t\tBrowserAnimationsModule, $1]');
328
+ // appends import of BrowserAnimationsModule
329
+ contents = `import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n${contents}`;
330
+ return contents;
510
331
  }
511
- }
512
- /**
513
- * on playground tab selected inform the playground component that its content is rendered
514
- * TODO: fix the bug on eui-tab implementation where the ngAfterViewInit is called without the view actually
515
- * being rendered on screen. Issue is that initially the view is being rendered and then removed from the DOM.
516
- * Internally eui-tabs is moving the projected content.
517
- *
518
- * @param selected The selected tab component reference and its index in the tabs array.
519
- */
520
- onSelectedTab(selected) {
521
- this.playground_activated = selected.index === 2;
522
- }
523
- /**
524
- * filter out the extra import and module from the code sample
525
- *
526
- * @param code
527
- */
528
- filterOutModuleAndImports(code) {
529
- const moduleRegex = /@NgModule\(([\s\S]*?)\)\nexport class \w+ \{([\s\S]*?)\}/g;
530
- code = code.replace(moduleRegex, "");
531
- code = code.replace("import { EuiAllModule } from '@eui/components';\n", "");
532
- code = code.replace("import { NgModule } from '@angular/core';\n", "");
533
- return code;
534
- }
535
- /**
536
- * open the code sample in stackblitz
537
- */
538
- onStackblitzOpen() {
539
- this.loadCodeFiles().subscribe((demo) => {
540
- this.tsContent = demo.typescript;
541
- this.htmlContent = demo.html;
542
- this.sb.openStackBlitz(this.htmlContent, this.tsContent, "eUI Playground", this.id);
543
- });
544
- }
545
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
546
- _getComponent(id) {
547
- const flatLinks = this.flatten(this.asService.state.sidebarLinks);
548
- return flatLinks.filter((item) => item.id === id)[0];
549
- }
550
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
551
- flatten(links) {
552
- return links ? links.reduce(
553
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
554
- (result, item) => [
555
- ...result,
556
- {
557
- id: item.id,
558
- alternateSampleLocation: item.alternateSampleLocation
559
- },
560
- ...this.flatten(item.children)
561
- ],
562
- []
563
- ) : [];
564
- }
565
- loadCodeFiles() {
566
- this.isCodeLoading = true;
567
- const url = window.location;
568
- const pathName = url.pathname;
569
- const pathNameArray = pathName.split("/");
570
- let samplePathArray = [];
571
- const cmpId = pathNameArray[pathNameArray.length - 1];
572
- const cmp = this._getComponent(cmpId);
573
- if (cmp && cmp.alternateSampleLocation) {
574
- samplePathArray = cmp.alternateSampleLocation.split("/").reverse();
575
- } else {
576
- for (let i = pathNameArray.length - 1; i >= 0; i--) {
577
- if (pathNameArray[i].indexOf("eui-showcase-") > -1 || pathNameArray[i].indexOf("localhost") > -1) {
578
- break;
332
+ /**
333
+ * Open a stackblitz project in a new browser TAB with the given html and typescript content
334
+ * @param htmlContent
335
+ * @param typescriptContent
336
+ * @param title
337
+ * @param sampleId
338
+ */
339
+ openStackBlitz(htmlContent, typescriptContent, title, sampleId) {
340
+ this.getStackblitzDependencies()
341
+ .then((deps) => {
342
+ const { dependencies, devDependencies } = deps;
343
+ const { selector } = this.extractComponentMetadata(typescriptContent);
344
+ const moduleName = this.extractModuleName(typescriptContent);
345
+ const componentName = this.extractComponentName(typescriptContent);
346
+ const project = {
347
+ title: title,
348
+ description: `An eUI example for the ${title}.`,
349
+ template: 'angular-cli',
350
+ files: {
351
+ 'src/component.html': htmlContent,
352
+ 'src/component.ts': this.appendVitalNgModules(typescriptContent),
353
+ 'src/main.ts': mainFile(moduleName, componentName),
354
+ 'src/polyfills.ts': polyfillsFile,
355
+ 'src/index.html': indexHtmlFile(selector),
356
+ 'angular.json': angularJsonFile,
357
+ 'package.json': JSON.stringify({
358
+ ...PACKAGE_JSON,
359
+ dependencies,
360
+ devDependencies,
361
+ }, null, 2),
362
+ 'tsconfig.json': tsConfig,
363
+ },
364
+ settings: {
365
+ compile: {
366
+ trigger: 'auto',
367
+ clearConsole: true,
368
+ },
369
+ },
370
+ dependencies,
371
+ };
372
+ return sdk.openProject(project, {
373
+ openFile: ['src/component.ts', 'src/component.html'],
374
+ zenMode: true,
375
+ });
376
+ });
377
+ }
378
+ /**
379
+ * Retrieve only the dependencies that stackblitz will need filtered from @eui/deps-base
380
+ *
381
+ * @private
382
+ */
383
+ getStackblitzDependencies() {
384
+ // a list of dependencies only stackblitz needs
385
+ const stackblitzDependencies = [
386
+ '@angular/animations',
387
+ '@angular/cdk',
388
+ '@angular/common',
389
+ '@angular/compiler',
390
+ '@angular/core',
391
+ '@angular/forms',
392
+ '@angular/material',
393
+ '@angular/material-moment-adapter',
394
+ '@angular/platform-browser',
395
+ '@angular/platform-browser-dynamic',
396
+ '@angular/router',
397
+ '@eui/base',
398
+ '@eui/components',
399
+ '@eui/core',
400
+ '@eui/styles',
401
+ '@ngrx/effects',
402
+ '@ngrx/store',
403
+ '@ngx-translate/core',
404
+ 'localforage',
405
+ 'lodash-es',
406
+ 'reselect',
407
+ 'rxjs',
408
+ 'tslib',
409
+ 'zone.js',
410
+ ];
411
+ const stackblitzDevDependencies = ['@angular-devkit/build-angular', '@angular/cli', '@angular/compiler-cli', 'typescript'];
412
+ return this.getCurrentShowcaseEuiVersion()
413
+ .then((version) => this.retrievePackageDependencies(version))
414
+ .then((dependencies) => {
415
+ // filter dependencies to only what stackblitz needs
416
+ let filteredArr = Object.entries(dependencies).filter((v) => stackblitzDependencies.find((s) => s === v[0]));
417
+ const filteredObj = Object.fromEntries(filteredArr);
418
+ const extraDependencies = {
419
+ uuid: '8.3.2',
420
+ 'ngx-device-detector': '3.0.0',
421
+ 'ngx-moment': '~6.0.0',
422
+ 'ngx-mask': '^14.0.0',
423
+ 'cleave.js': '^1.6.0',
424
+ moment: '^2.19.3',
425
+ extend: '^3.0.2',
426
+ };
427
+ // filter devDependencies to only what stackblitz needs
428
+ filteredArr = Object.entries(dependencies).filter((v) => stackblitzDevDependencies.find((s) => s === v[0]));
429
+ dependencies = { ...extraDependencies, ...filteredObj };
430
+ const devDependencies = Object.fromEntries(filteredArr);
431
+ return { dependencies, devDependencies };
432
+ });
433
+ }
434
+ /**
435
+ * Retrieve the dependencies from the package.json file of @eui/deps-base for the given version.
436
+ *
437
+ * @param version
438
+ * @private
439
+ */
440
+ retrievePackageDependencies(version) {
441
+ return fetch(`https://unpkg.com/@eui/deps-base@${version}/package.json`)
442
+ .then((response) => response.json())
443
+ .then((pkg) => pkg?.dependencies);
444
+ }
445
+ /**
446
+ * Retrieve the eUI version used to build the showcase from application app-metadata.json
447
+ *
448
+ * @private
449
+ */
450
+ getCurrentShowcaseEuiVersion() {
451
+ return lastValueFrom(this.http.get('assets/app-metadata.json', { responseType: 'json' })).then((res) => res?.appVersion || 'latest');
452
+ }
453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StackblitzService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
454
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StackblitzService }); }
455
+ }
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StackblitzService, decorators: [{
457
+ type: Injectable
458
+ }] });
459
+
460
+ class EuiCodeHighlighterDirective {
461
+ constructor(el) {
462
+ this.el = el;
463
+ }
464
+ ngAfterViewInit() {
465
+ if (window['Prism']) {
466
+ window['Prism'].highlightElement(this.el.nativeElement);
579
467
  }
580
- if (pathNameArray[i] !== "") {
581
- samplePathArray.push(pathNameArray[i]);
468
+ }
469
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiCodeHighlighterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
470
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: EuiCodeHighlighterDirective, selector: "[euiCode]", ngImport: i0 }); }
471
+ }
472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiCodeHighlighterDirective, decorators: [{
473
+ type: Directive,
474
+ args: [{
475
+ selector: '[euiCode]',
476
+ }]
477
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
478
+
479
+ class DocSampleComponent {
480
+ constructor(sb, _http, asService, cd, growlService, clipboard, router) {
481
+ this.sb = sb;
482
+ this._http = _http;
483
+ this.asService = asService;
484
+ this.cd = cd;
485
+ this.growlService = growlService;
486
+ this.clipboard = clipboard;
487
+ this.router = router;
488
+ this.id = '';
489
+ this.label = '';
490
+ this.styleClass = '';
491
+ this.renderPlayground = false;
492
+ this.isCodeButtonVisible = true;
493
+ this.isInnerSection = false;
494
+ this.classes = 'eui-showcase-doc-sample';
495
+ this.isCodeLoaded = false;
496
+ this.isCodeLoading = false;
497
+ this.isCodeExpanded = false;
498
+ this.playground_activated = false;
499
+ }
500
+ ngAfterContentInit() {
501
+ if (!this.label) {
502
+ this.label = this.id;
582
503
  }
583
- }
584
504
  }
585
- samplePathArray = samplePathArray.reverse();
586
- samplePathArray.push("samples");
587
- samplePathArray.push(this.id);
588
- const samplesPath = `assets/samples/${samplePathArray.join("/")}`;
589
- return forkJoin({
590
- typescript: this._http.get(`${samplesPath}/component.ts`, {
591
- responseType: "text"
592
- }),
593
- html: this._http.get(`${samplesPath}/component.html`, {
594
- responseType: "text"
595
- })
596
- }).pipe(map((responses) => {
597
- this.isCodeLoaded = true;
598
- this.isCodeLoading = false;
599
- return { typescript: responses.typescript, html: responses.html };
600
- }), catchError((error) => {
601
- this.growlService.growlError(`Issue while fetching : ${error.url} : ${error.status}-${error.statusText}`);
602
- return new Observable((subscriber) => {
505
+ copyCurrentUrlToClipboard(id) {
603
506
  try {
604
- subscriber.error(error);
605
- } catch (err) {
606
- subscriber.error(error);
507
+ const baseDomain = window?.location?.origin;
508
+ const currentUrl = this.router.url.split('#');
509
+ const fullUrl = baseDomain + currentUrl[0] + '#' + id;
510
+ this.clipboard.copy(fullUrl);
511
+ }
512
+ catch (err) {
513
+ this.growlService.growl({ severity: 'danger', summary: 'Clipboard service not available' });
514
+ }
515
+ finally {
516
+ this.growlService.growl({ severity: 'info', summary: 'Link URL copied to clipboard' });
607
517
  }
608
- });
609
- }));
610
- }
611
- static {
612
- this.ɵfac = i03.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i03, type: _DocSampleComponent, deps: [{ token: StackblitzService }, { token: i2.HttpClient }, { token: i3.EuiAppShellService }, { token: i03.ChangeDetectorRef }, { token: i3.EuiGrowlService }, { token: i4.Clipboard }, { token: i5.Router }], target: i03.ɵɵFactoryTarget.Component });
613
- }
614
- static {
615
- this.ɵcmp = i03.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.2", type: _DocSampleComponent, selector: "eui-showcase-doc-sample", inputs: { id: "id", label: "label", styleClass: "styleClass", renderPlayground: ["renderPlayground", "renderPlayground", booleanAttribute], isCodeButtonVisible: ["isCodeButtonVisible", "isCodeButtonVisible", booleanAttribute] }, host: { properties: { "class": "this.classes" } }, ngImport: i03, template: '<div class="doc-sample-title">\n <div class="doc-sample-title__label">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)="copyCurrentUrlToClipboard(id)"\n class="doc-sample-title__link"\n tabindex="-1">\n <eui-icon-svg icon="link" set="outline" size="l" fillColor="grey-75"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf="renderPlayground" class="doc-sample-title__items" style="margin-right: 3px">\n <button\n *ngIf="isCodeButtonVisible"\n type="button"\n euiButton\n [euiOutline]="!isCodeExpanded"\n euiPrimary\n euiSizeS\n (click)="onStackblitzOpen()">\n <span *ngIf="!isCodeExpanded" euiLabel>Stackblitz</span>\n <eui-icon-svg set="sharp" icon="expand"></eui-icon-svg>\n </button>\n </div>\n <div class="doc-sample-title__items">\n <button\n *ngIf="isCodeButtonVisible"\n type="button"\n euiButton\n [euiOutline]="!isCodeExpanded"\n euiPrimary\n euiSizeS\n (click)="onToggleCode()"\n [isLoading]="isCodeLoading"\n [euiDisabled]="isCodeLoading">\n <span *ngIf="!isCodeExpanded" euiLabel>Code</span>\n <span *ngIf="isCodeExpanded" euiLabel>Hide Code</span>\n <span euiIcon iconClass="eui-icon-code"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]="isCodeExpanded">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)="onSelectedTab($event)">\n <eui-tab [isVisible]="htmlContent">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-markup" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="tsContent">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n', styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-25)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);margin-top:var(--eui-base-spacing-xl);width:100%;font:normal normal 400 1.5rem/1.75rem var(--eui-base-font-family)}.eui-showcase-doc-sample .doc-sample-title__label:first-child{margin-top:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-3xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}.eui-showcase-doc-sample .doc-sample-section-title:first-child{margin-top:var(--eui-base-spacing-m)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i7.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i8.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i9.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i9.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i9.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i9.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i9.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i10.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }], encapsulation: i03.ViewEncapsulation.None });
616
- }
617
- };
618
- i03.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i03, type: DocSampleComponent, decorators: [{
619
- type: Component,
620
- args: [{ selector: "eui-showcase-doc-sample", encapsulation: ViewEncapsulation.None, template: '<div class="doc-sample-title">\n <div class="doc-sample-title__label">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)="copyCurrentUrlToClipboard(id)"\n class="doc-sample-title__link"\n tabindex="-1">\n <eui-icon-svg icon="link" set="outline" size="l" fillColor="grey-75"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf="renderPlayground" class="doc-sample-title__items" style="margin-right: 3px">\n <button\n *ngIf="isCodeButtonVisible"\n type="button"\n euiButton\n [euiOutline]="!isCodeExpanded"\n euiPrimary\n euiSizeS\n (click)="onStackblitzOpen()">\n <span *ngIf="!isCodeExpanded" euiLabel>Stackblitz</span>\n <eui-icon-svg set="sharp" icon="expand"></eui-icon-svg>\n </button>\n </div>\n <div class="doc-sample-title__items">\n <button\n *ngIf="isCodeButtonVisible"\n type="button"\n euiButton\n [euiOutline]="!isCodeExpanded"\n euiPrimary\n euiSizeS\n (click)="onToggleCode()"\n [isLoading]="isCodeLoading"\n [euiDisabled]="isCodeLoading">\n <span *ngIf="!isCodeExpanded" euiLabel>Code</span>\n <span *ngIf="isCodeExpanded" euiLabel>Hide Code</span>\n <span euiIcon iconClass="eui-icon-code"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]="isCodeExpanded">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)="onSelectedTab($event)">\n <eui-tab [isVisible]="htmlContent">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-markup" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="tsContent">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n', styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-25)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);margin-top:var(--eui-base-spacing-xl);width:100%;font:normal normal 400 1.5rem/1.75rem var(--eui-base-font-family)}.eui-showcase-doc-sample .doc-sample-title__label:first-child{margin-top:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-3xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}.eui-showcase-doc-sample .doc-sample-section-title:first-child{margin-top:var(--eui-base-spacing-m)}\n"] }]
621
- }], ctorParameters: () => [{ type: StackblitzService }, { type: i2.HttpClient }, { type: i3.EuiAppShellService }, { type: i03.ChangeDetectorRef }, { type: i3.EuiGrowlService }, { type: i4.Clipboard }, { type: i5.Router }], propDecorators: { id: [{
622
- type: Input
623
- }], label: [{
624
- type: Input
625
- }], styleClass: [{
626
- type: Input
627
- }], renderPlayground: [{
628
- type: Input,
629
- args: [{ transform: booleanAttribute }]
630
- }], isCodeButtonVisible: [{
631
- type: Input,
632
- args: [{ transform: booleanAttribute }]
633
- }], classes: [{
634
- type: HostBinding,
635
- args: ["class"]
636
- }] } });
637
-
638
- // lib/components/doc-section/doc-section.component.mjs
639
- import { Component as Component2, Input as Input2, ViewEncapsulation as ViewEncapsulation3, HostBinding as HostBinding2 } from "@angular/core";
640
- import * as i04 from "@angular/core";
641
- var DocSectionComponent = class _DocSectionComponent {
642
- constructor() {
643
- this.string = "eui-showcase-doc-section";
644
- this.id = "";
645
- this.label = "";
646
- this.styleClass = "";
647
- }
648
- ngAfterContentInit() {
649
- if (!this.label) {
650
- this.label = this.id;
651
518
  }
652
- }
653
- static {
654
- this.ɵfac = i04.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i04, type: _DocSectionComponent, deps: [], target: i04.ɵɵFactoryTarget.Component });
655
- }
656
- static {
657
- this.ɵcmp = i04.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionComponent, selector: "eui-showcase-doc-section", inputs: { id: "id", label: "label", styleClass: "styleClass" }, host: { properties: { "class": "this.string" } }, ngImport: i04, template: '<div id="sections" class="doc-section-title">{{label}}</div>\n<!-- <h4 id="sections" class="eui-u-font-bold eui-u-color-info eui-u-text-h4 mb-3">{{ label }}</h4> -->\n\n<ng-content></ng-content>\n', styles: [".eui-showcase-doc-section{display:block;margin-bottom:var(--eui-base-spacing-4xl)}.doc-section-title{display:flex;align-items:center;width:100%;margin-top:var(--eui-base-spacing-m);margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-xs);border-bottom:1px solid var(--eui-base-color-grey-15);font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);font-weight:700}.doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);letter-spacing:-.25px;margin:var(--eui-base-spacing-2xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110);font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.doc-sample-section-title:first-child{margin-top:0}\n"], encapsulation: i04.ViewEncapsulation.None });
658
- }
659
- };
660
- i04.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i04, type: DocSectionComponent, decorators: [{
661
- type: Component2,
662
- args: [{ selector: "eui-showcase-doc-section", encapsulation: ViewEncapsulation3.None, template: '<div id="sections" class="doc-section-title">{{label}}</div>\n<!-- <h4 id="sections" class="eui-u-font-bold eui-u-color-info eui-u-text-h4 mb-3">{{ label }}</h4> -->\n\n<ng-content></ng-content>\n', styles: [".eui-showcase-doc-section{display:block;margin-bottom:var(--eui-base-spacing-4xl)}.doc-section-title{display:flex;align-items:center;width:100%;margin-top:var(--eui-base-spacing-m);margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-xs);border-bottom:1px solid var(--eui-base-color-grey-15);font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);font-weight:700}.doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);letter-spacing:-.25px;margin:var(--eui-base-spacing-2xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110);font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.doc-sample-section-title:first-child{margin-top:0}\n"] }]
663
- }], propDecorators: { string: [{
664
- type: HostBinding2,
665
- args: ["class"]
666
- }], id: [{
667
- type: Input2
668
- }], label: [{
669
- type: Input2
670
- }], styleClass: [{
671
- type: Input2
672
- }] } });
673
-
674
- // lib/components/doc-page-code/doc-page-code.component.mjs
675
- import { Component as Component3, Input as Input3 } from "@angular/core";
676
- import * as i05 from "@angular/core";
677
- import * as i1 from "@eui/components/eui-button";
678
- import * as i22 from "@eui/components/eui-icon";
679
- import * as i32 from "@eui/components/eui-label";
680
- var DocPageCodeComponent = class _DocPageCodeComponent {
681
- constructor() {
682
- this.codeFolder = "";
683
- this.showcase = "ux";
684
- }
685
- onOpenCode() {
686
- const sourceRootPath = `https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-${this.showcase}/browse/src/app/`;
687
- window.open(sourceRootPath + this.codeFolder, "_blank");
688
- }
689
- static {
690
- this.ɵfac = i05.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i05, type: _DocPageCodeComponent, deps: [], target: i05.ɵɵFactoryTarget.Component });
691
- }
692
- static {
693
- this.ɵcmp = i05.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: { codeFolder: "codeFolder", showcase: "showcase" }, ngImport: i05, template: '<button type="button" euiButton euiAccent (click)="onOpenCode()">\n <span euiLabel>Check the code</span>\n <span euiIcon iconClass="eui-icon eui-icon-code"></span>\n</button>\n', dependencies: [{ kind: "component", type: i1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i22.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i32.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }] });
694
- }
695
- };
696
- i05.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i05, type: DocPageCodeComponent, decorators: [{
697
- type: Component3,
698
- args: [{ selector: "eui-showcase-doc-page-code", template: '<button type="button" euiButton euiAccent (click)="onOpenCode()">\n <span euiLabel>Check the code</span>\n <span euiIcon iconClass="eui-icon eui-icon-code"></span>\n</button>\n' }]
699
- }], propDecorators: { codeFolder: [{
700
- type: Input3
701
- }], showcase: [{
702
- type: Input3
703
- }] } });
704
-
705
- // lib/components/doc-page/doc-page.component.mjs
706
- import { Component as Component4, Input as Input4, Directive as Directive2, ContentChildren, forwardRef, ViewEncapsulation as ViewEncapsulation5, ViewChild } from "@angular/core";
707
- import * as i06 from "@angular/core";
708
- import * as i12 from "@angular/router";
709
- import * as i23 from "@eui/core";
710
- import * as i33 from "@angular/platform-browser";
711
- import * as i42 from "@angular/common";
712
- import * as i52 from "@eui/components/eui-tabs";
713
- import * as i62 from "@eui/components/eui-page";
714
- import * as i72 from "@eui/components/eui-chip";
715
- import * as i82 from "@eui/components/eui-alert";
716
- import * as i92 from "@eui/components/eui-label";
717
- var DocPageComponent = class _DocPageComponent {
718
- constructor(router, route, asService, sanitizer, location) {
719
- this.router = router;
720
- this.route = route;
721
- this.asService = asService;
722
- this.sanitizer = sanitizer;
723
- this.location = location;
724
- this.isNotReady = false;
725
- this.isDeprecated = false;
726
- this.isLegacy = false;
727
- this.showcase = "ux";
728
- this.isNavigationVisible = true;
729
- this.hasApi = true;
730
- this.hasA11y = true;
731
- this.isLoading = true;
732
- this.isNavClicked = true;
733
- this.TABS_DEF = [
734
- { index: 0, id: "samples" },
735
- { index: 1, id: "api" },
736
- { index: 2, id: "a11y" },
737
- { index: 3, id: "theming" },
738
- { index: 4, id: "advanced" }
739
- ];
740
- }
741
- ngOnInit() {
742
- setTimeout(() => {
743
- this.asService.isBlockDocumentActive = true;
744
- });
745
- this.appMetadata = this.asService.state.appMetadata;
746
- if (this.id && !this.label) {
747
- this.label = this.id;
519
+ onToggleCode() {
520
+ if (this.isCodeLoaded) {
521
+ this.isCodeExpanded = !this.isCodeExpanded;
522
+ }
523
+ if (!this.isCodeLoaded) {
524
+ this.loadCodeFiles().subscribe((demo) => {
525
+ this.tsContent = demo.typescript;
526
+ this.htmlContent = demo.html;
527
+ this.isCodeLoaded = true;
528
+ this.isCodeExpanded = true;
529
+ this.isCodeLoading = false;
530
+ this.cd.detectChanges();
531
+ });
532
+ }
533
+ }
534
+ /**
535
+ * on playground tab selected inform the playground component that its content is rendered
536
+ * TODO: fix the bug on eui-tab implementation where the ngAfterViewInit is called without the view actually
537
+ * being rendered on screen. Issue is that initially the view is being rendered and then removed from the DOM.
538
+ * Internally eui-tabs is moving the projected content.
539
+ *
540
+ * @param selected The selected tab component reference and its index in the tabs array.
541
+ */
542
+ onSelectedTab(selected) {
543
+ this.playground_activated = selected.index === 2;
544
+ }
545
+ /**
546
+ * filter out the extra import and module from the code sample
547
+ *
548
+ * @param code
549
+ */
550
+ filterOutModuleAndImports(code) {
551
+ // filter out module
552
+ const moduleRegex = /@NgModule\(([\s\S]*?)\)\nexport class \w+ \{([\s\S]*?)\}/g;
553
+ code = code.replace(moduleRegex, '');
554
+ // filter out extra imports
555
+ // eslint-disable-next-line
556
+ code = code.replace("import { EuiAllModule } from '@eui/components';\n", '');
557
+ // eslint-disable-next-line
558
+ code = code.replace("import { NgModule } from '@angular/core';\n", '');
559
+ return code;
748
560
  }
749
- try {
750
- this.cmp = this._getComponentStatus(this.id);
751
- if (this.cmp) {
752
- switch (this.cmp.status) {
753
- case "success":
754
- this.stateLabel = "ACTIVE";
755
- this.stateTypeClass = "success";
756
- break;
757
- case "warning":
758
- this.stateLabel = "DEPRECATED - will be removed in eUI 18";
759
- this.stateTypeClass = "warning";
760
- this.isDeprecated = true;
761
- break;
762
- case "danger":
763
- this.stateLabel = "LEGACY - will be removed in eUI 18";
764
- this.stateTypeClass = "danger";
765
- this.isLegacy = true;
766
- break;
767
- case "info":
768
- this.stateLabel = "NOT READY";
769
- this.stateTypeClass = "accent";
770
- this.isNotReady = true;
771
- break;
561
+ /**
562
+ * open the code sample in stackblitz
563
+ */
564
+ onStackblitzOpen() {
565
+ this.loadCodeFiles().subscribe((demo) => {
566
+ this.tsContent = demo.typescript;
567
+ this.htmlContent = demo.html;
568
+ this.sb.openStackBlitz(this.htmlContent, this.tsContent, 'eUI Playground', this.id);
569
+ });
570
+ }
571
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
572
+ _getComponent(id) {
573
+ const flatLinks = this.flatten(this.asService.state.sidebarLinks);
574
+ return flatLinks.filter((item) => item.id === id)[0];
575
+ }
576
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
577
+ flatten(links) {
578
+ return links
579
+ ? links.reduce(
580
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
581
+ (result, item) => [
582
+ ...result,
583
+ {
584
+ id: item.id,
585
+ alternateSampleLocation: item.alternateSampleLocation,
586
+ },
587
+ ...this.flatten(item.children),
588
+ ], [])
589
+ : [];
590
+ }
591
+ loadCodeFiles() {
592
+ this.isCodeLoading = true;
593
+ const url = window.location;
594
+ const pathName = url.pathname;
595
+ const pathNameArray = pathName.split('/');
596
+ let samplePathArray = [];
597
+ const cmpId = pathNameArray[pathNameArray.length - 1];
598
+ const cmp = this._getComponent(cmpId);
599
+ if (cmp && cmp.alternateSampleLocation) {
600
+ samplePathArray = cmp.alternateSampleLocation.split('/').reverse();
772
601
  }
773
- this.cmpModuleImport = `import { ${this.cmp.metadata?.moduleName} } from '@eui/${this.cmp.metadata?.subEntryName}';`;
774
- }
775
- } catch (e) {
776
- console.log("Warning, errors detected while getting page state");
777
- console.log(e);
602
+ else {
603
+ for (let i = pathNameArray.length - 1; i >= 0; i--) {
604
+ if (pathNameArray[i].indexOf('eui-showcase-') > -1 || pathNameArray[i].indexOf('localhost') > -1) {
605
+ break;
606
+ }
607
+ if (pathNameArray[i] !== '') {
608
+ samplePathArray.push(pathNameArray[i]);
609
+ }
610
+ }
611
+ }
612
+ samplePathArray = samplePathArray.reverse();
613
+ samplePathArray.push('samples');
614
+ samplePathArray.push(this.id);
615
+ const samplesPath = `assets/samples/${samplePathArray.join('/')}`;
616
+ return forkJoin({
617
+ typescript: this._http.get(`${samplesPath}/component.ts`, {
618
+ responseType: 'text',
619
+ }),
620
+ html: this._http.get(`${samplesPath}/component.html`, {
621
+ responseType: 'text',
622
+ }),
623
+ })
624
+ .pipe(map((responses) => {
625
+ this.isCodeLoaded = true;
626
+ this.isCodeLoading = false;
627
+ return { typescript: responses.typescript, html: responses.html };
628
+ }), catchError((error) => {
629
+ this.growlService.growlError(`Issue while fetching : ${error.url} : ${error.status}-${error.statusText}`);
630
+ return new Observable((subscriber) => {
631
+ try {
632
+ subscriber.error(error);
633
+ }
634
+ catch (err) {
635
+ subscriber.error(error);
636
+ }
637
+ });
638
+ }));
778
639
  }
779
- this.fragmentId = this.route.snapshot.fragment;
780
- }
781
- ngAfterViewInit() {
782
- try {
783
- this.apiUrl = this._getApiUrl();
784
- console.log(`Fetching API url from : ${this.apiUrl}`);
785
- setTimeout(() => {
786
- this.apiUrlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.apiUrl);
787
- });
788
- } catch (e) {
789
- console.log(e);
640
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSampleComponent, deps: [{ token: StackblitzService }, { token: i2.HttpClient }, { token: i3.EuiAppShellService }, { token: i0.ChangeDetectorRef }, { token: i3.EuiGrowlService }, { token: i4.Clipboard }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
641
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: DocSampleComponent, selector: "eui-showcase-doc-sample", inputs: { id: "id", label: "label", category: "category", description: "description", defaultValue: "defaultValue", styleClass: "styleClass", renderPlayground: ["renderPlayground", "renderPlayground", booleanAttribute], isCodeButtonVisible: ["isCodeButtonVisible", "isCodeButtonVisible", booleanAttribute], isInnerSection: ["isInnerSection", "isInnerSection", booleanAttribute] }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\" [class.doc-sample-title__label--inner]=\"isInnerSection\">\n {{ label }}\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"renderPlayground\" class=\"doc-sample-title__items\" style=\"margin-right: 3px\">\n <button\n *ngIf=\"isCodeButtonVisible\"\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onStackblitzOpen()\">\n <span euiLabel>Stackblitz</span>\n <eui-icon-svg icon=\"expand:sharp\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n *ngIf=\"isCodeButtonVisible\"\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [euiDisabled]=\"isCodeLoading\">\n <eui-icon-svg *ngIf=\"isCodeLoading\" isLoading></eui-icon-svg>\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <eui-icon-svg icon=\"eui-code\"></eui-icon-svg>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-s-2xl);margin-top:var(--eui-s-6xl);width:100%}.eui-showcase-doc-sample:first-child{margin-top:var(--eui-s-xl)}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-s-m);padding-bottom:var(--eui-s-s);border-bottom:1px solid var(--eui-c-neutral-lightest)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-s-xl);width:100%;letter-spacing:-.75px;font:var(--eui-f-xl-bold)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__label--inner{color:var(--eui-c-neutral-light);font:var(--eui-f-l)}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-s-m)}.eui-showcase-doc-sample .doc-sample-section-title,.eui-showcase-doc-sample h6.section-title{border-bottom:none;letter-spacing:-.5px;margin:var(--eui-s-3xl) 0 var(--eui-s-xs) 0!important;width:auto;display:table;color:var(--eui-c-info-darker);font:var(--eui-f-l)!important}.eui-showcase-doc-sample .doc-sample-section-title:first-child,.eui-showcase-doc-sample h6.section-title:first-child{margin-top:var(--eui-s-m)!important}\n"], dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i2$1.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i2$2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i9.EuiTabsComponent, selector: "eui-tabs", inputs: ["tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i9.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i9.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i9.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i9.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }], encapsulation: i0.ViewEncapsulation.None }); }
642
+ }
643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSampleComponent, decorators: [{
644
+ type: Component,
645
+ args: [{ selector: 'eui-showcase-doc-sample', encapsulation: ViewEncapsulation.None, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\" [class.doc-sample-title__label--inner]=\"isInnerSection\">\n {{ label }}\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"renderPlayground\" class=\"doc-sample-title__items\" style=\"margin-right: 3px\">\n <button\n *ngIf=\"isCodeButtonVisible\"\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onStackblitzOpen()\">\n <span euiLabel>Stackblitz</span>\n <eui-icon-svg icon=\"expand:sharp\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n *ngIf=\"isCodeButtonVisible\"\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [euiDisabled]=\"isCodeLoading\">\n <eui-icon-svg *ngIf=\"isCodeLoading\" isLoading></eui-icon-svg>\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <eui-icon-svg icon=\"eui-code\"></eui-icon-svg>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-s-2xl);margin-top:var(--eui-s-6xl);width:100%}.eui-showcase-doc-sample:first-child{margin-top:var(--eui-s-xl)}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-s-m);padding-bottom:var(--eui-s-s);border-bottom:1px solid var(--eui-c-neutral-lightest)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-s-xl);width:100%;letter-spacing:-.75px;font:var(--eui-f-xl-bold)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__label--inner{color:var(--eui-c-neutral-light);font:var(--eui-f-l)}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-s-m)}.eui-showcase-doc-sample .doc-sample-section-title,.eui-showcase-doc-sample h6.section-title{border-bottom:none;letter-spacing:-.5px;margin:var(--eui-s-3xl) 0 var(--eui-s-xs) 0!important;width:auto;display:table;color:var(--eui-c-info-darker);font:var(--eui-f-l)!important}.eui-showcase-doc-sample .doc-sample-section-title:first-child,.eui-showcase-doc-sample h6.section-title:first-child{margin-top:var(--eui-s-m)!important}\n"] }]
646
+ }], ctorParameters: () => [{ type: StackblitzService }, { type: i2.HttpClient }, { type: i3.EuiAppShellService }, { type: i0.ChangeDetectorRef }, { type: i3.EuiGrowlService }, { type: i4.Clipboard }, { type: i1.Router }], propDecorators: { id: [{
647
+ type: Input
648
+ }], label: [{
649
+ type: Input
650
+ }], category: [{
651
+ type: Input
652
+ }], description: [{
653
+ type: Input
654
+ }], defaultValue: [{
655
+ type: Input
656
+ }], styleClass: [{
657
+ type: Input
658
+ }], renderPlayground: [{
659
+ type: Input,
660
+ args: [{ transform: booleanAttribute }]
661
+ }], isCodeButtonVisible: [{
662
+ type: Input,
663
+ args: [{ transform: booleanAttribute }]
664
+ }], isInnerSection: [{
665
+ type: Input,
666
+ args: [{ transform: booleanAttribute }]
667
+ }], classes: [{
668
+ type: HostBinding,
669
+ args: ['class']
670
+ }] } });
671
+
672
+ class DocSectionComponent {
673
+ constructor() {
674
+ this.string = 'eui-showcase-doc-section';
675
+ this.id = '';
676
+ this.label = '';
677
+ this.styleClass = '';
790
678
  }
791
- setTimeout(() => {
792
- const tab = this.TABS_DEF.filter((t) => t.id === this.fragmentId)[0];
793
- const sampleTabIndex = 0;
794
- let tabIndex;
795
- if (!tab) {
796
- tabIndex = sampleTabIndex;
797
- } else {
798
- tabIndex = tab.index;
799
- }
800
- this._scrollToFragment(this.fragmentId, tabIndex, true, true);
801
- setTimeout(() => {
802
- this.asService.isBlockDocumentActive = false;
803
- this.isLoading = false;
804
- });
805
- });
806
- }
807
- onNavClick(fragmentId, tabIndex) {
808
- this.fragmentId = fragmentId;
809
- this.isNavClicked = true;
810
- this._scrollToFragment(this.fragmentId, tabIndex, false, true);
811
- }
812
- onTabSelected(event) {
813
- if (!this.isLoading && !this.isNavClicked) {
814
- const tabId = this.TABS_DEF.filter((t) => t.index === event.index)[0].id;
815
- this._scrollToFragment(tabId, event.index, false, false);
679
+ ngAfterContentInit() {
680
+ if (!this.label) {
681
+ this.label = this.id;
682
+ }
816
683
  }
817
- this.isNavClicked = false;
818
- }
819
- _scrollToFragment(fragmentId, tabIndex, init, changeTab) {
820
- if (init) {
821
- if (this.tabsContent) {
822
- this.tabsContent.changeTab(tabIndex);
823
- if (fragmentId) {
824
- setTimeout(() => {
825
- const fgm = document.getElementById(fragmentId);
826
- const yOffset = -80;
827
- if (fgm) {
828
- const y = fgm.getBoundingClientRect().top + window.pageYOffset + yOffset;
829
- window.scrollTo({ top: y });
684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
685
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionComponent, selector: "eui-showcase-doc-section", inputs: { id: "id", label: "label", styleClass: "styleClass" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: "<div id=\"sections\" class=\"doc-section-title\">{{label}}</div>\n<!-- <h4 id=\"sections\" class=\"eui-u-font-bold eui-u-color-info eui-u-text-h4 mb-3\">{{ label }}</h4> -->\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-section{display:block;margin-bottom:var(--eui-s-4xl)}.doc-section-title{display:flex;align-items:center;width:100%;margin-top:var(--eui-s-m);margin-bottom:var(--eui-s-m);padding-bottom:var(--eui-s-xs);border-bottom:1px solid var(--eui-c-neutral-lightest);font:var(--eui-f-xl-bold)}.doc-sample-section-title{border-bottom:1px solid var(--eui-c-neutral-lighter);letter-spacing:-.25px;margin:var(--eui-s-2xl) 0 var(--eui-s-s);padding-bottom:var(--eui-s-2xs);width:auto;display:table;color:var(--eui-c-primary-dark);font:var(--eui-f-l)}.doc-sample-section-title:first-child{margin-top:0}\n"], encapsulation: i0.ViewEncapsulation.None }); }
686
+ }
687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionComponent, decorators: [{
688
+ type: Component,
689
+ args: [{ selector: 'eui-showcase-doc-section', encapsulation: ViewEncapsulation.None, template: "<div id=\"sections\" class=\"doc-section-title\">{{label}}</div>\n<!-- <h4 id=\"sections\" class=\"eui-u-font-bold eui-u-color-info eui-u-text-h4 mb-3\">{{ label }}</h4> -->\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-section{display:block;margin-bottom:var(--eui-s-4xl)}.doc-section-title{display:flex;align-items:center;width:100%;margin-top:var(--eui-s-m);margin-bottom:var(--eui-s-m);padding-bottom:var(--eui-s-xs);border-bottom:1px solid var(--eui-c-neutral-lightest);font:var(--eui-f-xl-bold)}.doc-sample-section-title{border-bottom:1px solid var(--eui-c-neutral-lighter);letter-spacing:-.25px;margin:var(--eui-s-2xl) 0 var(--eui-s-s);padding-bottom:var(--eui-s-2xs);width:auto;display:table;color:var(--eui-c-primary-dark);font:var(--eui-f-l)}.doc-sample-section-title:first-child{margin-top:0}\n"] }]
690
+ }], propDecorators: { string: [{
691
+ type: HostBinding,
692
+ args: ['class']
693
+ }], id: [{
694
+ type: Input
695
+ }], label: [{
696
+ type: Input
697
+ }], styleClass: [{
698
+ type: Input
699
+ }] } });
700
+
701
+ class DocPageCodeComponent {
702
+ constructor() {
703
+ this.codeFolder = '';
704
+ this.showcase = 'ux';
705
+ }
706
+ onOpenCode() {
707
+ // eslint-disable-next-line max-len
708
+ const sourceRootPath = `https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-${this.showcase}/browse/src/app/`;
709
+ window.open(sourceRootPath + this.codeFolder, '_blank');
710
+ }
711
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: { codeFolder: "codeFolder", showcase: "showcase" }, ngImport: i0, template: "<button type=\"button\" euiButton euiAccent (click)=\"onOpenCode()\">\n <span euiLabel>Check the code</span>\n <eui-icon-svg icon=\"eui-code\"></eui-icon-svg>\n</button>\n", dependencies: [{ kind: "component", type: i2$2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }] }); }
713
+ }
714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageCodeComponent, decorators: [{
715
+ type: Component,
716
+ args: [{ selector: 'eui-showcase-doc-page-code', template: "<button type=\"button\" euiButton euiAccent (click)=\"onOpenCode()\">\n <span euiLabel>Check the code</span>\n <eui-icon-svg icon=\"eui-code\"></eui-icon-svg>\n</button>\n" }]
717
+ }], propDecorators: { codeFolder: [{
718
+ type: Input
719
+ }], showcase: [{
720
+ type: Input
721
+ }] } });
722
+
723
+ class DocPageComponent {
724
+ constructor(router, route, asService, sanitizer, location) {
725
+ this.router = router;
726
+ this.route = route;
727
+ this.asService = asService;
728
+ this.sanitizer = sanitizer;
729
+ this.location = location;
730
+ this.isNotReady = false;
731
+ this.isDeprecated = false;
732
+ this.isLegacy = false;
733
+ this.showcase = 'ux';
734
+ this.isNavigationVisible = true;
735
+ this.hasApi = true;
736
+ this.hasA11y = true;
737
+ this.isLoading = true;
738
+ this.isNavClicked = true;
739
+ this.hasCategories = false;
740
+ this.categories = [];
741
+ this.TABS_DEF = [
742
+ { index: 0, id: 'samples' },
743
+ { index: 1, id: 'api' },
744
+ { index: 2, id: 'a11y' },
745
+ { index: 3, id: 'theming' },
746
+ { index: 4, id: 'advanced' },
747
+ ];
748
+ }
749
+ ngOnInit() {
750
+ setTimeout(() => {
751
+ this.asService.isBlockDocumentActive = true;
752
+ });
753
+ this.appMetadata = this.asService.state.appMetadata;
754
+ if (this.id && !this.label) {
755
+ this.label = this.id;
756
+ }
757
+ try {
758
+ this.cmp = this._getComponentStatus(this.id);
759
+ if (this.cmp) {
760
+ switch (this.cmp.status) {
761
+ case 'success':
762
+ this.stateLabel = 'ACTIVE';
763
+ this.stateTypeClass = 'success';
764
+ break;
765
+ case 'warning':
766
+ this.stateLabel = 'DEPRECATED - will be removed in eUI 18';
767
+ this.stateTypeClass = 'warning';
768
+ this.isDeprecated = true;
769
+ break;
770
+ case 'danger':
771
+ this.stateLabel = 'LEGACY - will be removed in eUI 18';
772
+ this.stateTypeClass = 'danger';
773
+ this.isLegacy = true;
774
+ break;
775
+ case 'info':
776
+ this.stateLabel = 'NOT READY';
777
+ this.stateTypeClass = 'accent';
778
+ this.isNotReady = true;
779
+ break;
780
+ }
781
+ // construct cmp module import string
782
+ // eslint-disable-next-line
783
+ this.cmpModuleImport = `import { ${this.cmp.metadata?.moduleName} } from '@eui/${this.cmp.metadata?.subEntryName}';`;
830
784
  }
831
- });
832
785
  }
833
- }
834
- } else {
835
- if (changeTab) {
836
- this.router.onSameUrlNavigation = "reload";
837
- this.router.navigate(["."], { relativeTo: this.route, fragment: fragmentId }).then(() => {
838
- if (this.tabsContent) {
839
- this.tabsContent.changeTab(tabIndex);
840
- }
786
+ catch (e) {
787
+ console.log('Warning, errors detected while getting page state');
788
+ console.log(e);
789
+ }
790
+ this.fragmentId = this.route.snapshot.fragment;
791
+ }
792
+ ngAfterViewInit() {
793
+ // getting API url
794
+ try {
795
+ this.apiUrl = this._getApiUrl();
796
+ console.log(`Fetching API url from : ${this.apiUrl}`);
797
+ setTimeout(() => {
798
+ this.apiUrlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.apiUrl);
799
+ });
800
+ }
801
+ catch (e) {
802
+ console.log(e);
803
+ }
804
+ setTimeout(() => {
805
+ const tab = this.TABS_DEF.filter((t) => t.id === this.fragmentId)[0];
806
+ const sampleTabIndex = 0;
807
+ let tabIndex;
808
+ if (!tab) {
809
+ tabIndex = sampleTabIndex;
810
+ }
811
+ else {
812
+ tabIndex = tab.index;
813
+ }
814
+ // constructing categories, if at least one set, if not backward compat with old display
815
+ const categoriesJson = {};
816
+ this.samples.forEach((s) => {
817
+ // "Default" or "_default" sample are always put first in the nav list
818
+ if (!s.category && s.id !== '_default' && s.id !== 'Default') {
819
+ if (!categoriesJson['others']) {
820
+ categoriesJson['others'] = [];
821
+ categoriesJson['others'].push(s);
822
+ }
823
+ else {
824
+ categoriesJson['others'].push(s);
825
+ }
826
+ }
827
+ else {
828
+ if (s.id === '_default' || s.id === 'Default') {
829
+ if (!categoriesJson['Base']) {
830
+ categoriesJson['Base'] = [];
831
+ categoriesJson['Base'].push(s);
832
+ }
833
+ else {
834
+ categoriesJson['Base'].push(s);
835
+ }
836
+ }
837
+ else {
838
+ this.hasCategories = true;
839
+ if (!categoriesJson[s.category]) {
840
+ categoriesJson[s.category] = [];
841
+ categoriesJson[s.category].push(s);
842
+ }
843
+ else {
844
+ categoriesJson[s.category].push(s);
845
+ }
846
+ }
847
+ }
848
+ });
849
+ // making the list of categories iterable for display
850
+ Object.keys(categoriesJson).forEach((c) => {
851
+ this.categories.push({
852
+ name: c,
853
+ samples: categoriesJson[c],
854
+ });
855
+ });
856
+ // push the "others" at the end of the nav list
857
+ this.categories.push(this.categories.splice(this.categories.findIndex(v => v.name == 'others'), 1)[0]);
858
+ this._scrollToFragment(this.fragmentId, tabIndex, true, true);
859
+ setTimeout(() => {
860
+ this.asService.isBlockDocumentActive = false;
861
+ this.isLoading = false;
862
+ });
841
863
  });
842
- } else {
843
- const routeRoot = this.router.url.split("#")[0];
844
- this.location.go(`${routeRoot}#${fragmentId}`);
845
- }
846
864
  }
847
- }
848
- _getComponentStatus(id) {
849
- const flatten = (links) => links ? links.reduce((result, item) => [
850
- ...result,
851
- {
852
- id: item.label,
853
- alternateId: item.name,
854
- status: item.markerTypeClass,
855
- cmpReplacement: item.cmpReplacement,
856
- cmpReplacementUrl: item.cmpReplacementUrl,
857
- cmpReplacementNote: item.cmpReplacementNote,
858
- alternateApiCategory: item.alternateApiCategory,
859
- metadata: item.metadata
860
- },
861
- ...flatten(item.children)
862
- ], []) : [];
863
- const flatLinks = flatten(this.asService.state.sidebarLinks);
864
- const idBasedCmp = flatLinks.filter((item) => item.id === id)[0];
865
- if (idBasedCmp) {
866
- return idBasedCmp;
867
- } else {
868
- const alternateIdBasedCmp = flatLinks.filter((item) => item.alternateId === id)[0];
869
- return alternateIdBasedCmp;
865
+ onNavClick(fragmentId, tabIndex) {
866
+ this.fragmentId = fragmentId;
867
+ this.isNavClicked = true;
868
+ this._scrollToFragment(this.fragmentId, tabIndex, false, true);
870
869
  }
871
- }
872
- _getApiUrl() {
873
- const url = window.location;
874
- const protocol = url.protocol;
875
- const host = url.host;
876
- const pathName = url.pathname;
877
- const pathNameArray = pathName.split("/");
878
- const name = pathNameArray[pathNameArray.length - 1];
879
- let category = pathNameArray[pathNameArray.length - 2];
880
- let showcaseType;
881
- showcaseType = pathNameArray[pathNameArray.length - 3];
882
- if (showcaseType.indexOf("eui-showcase") === -1) {
883
- showcaseType = pathNameArray[pathNameArray.length - 4];
870
+ onTabSelected(event) {
871
+ if (!this.isLoading && !this.isNavClicked) {
872
+ const tabId = this.TABS_DEF.filter((t) => t.index === event.index)[0].id;
873
+ this._scrollToFragment(tabId, event.index, false, false);
874
+ }
875
+ this.isNavClicked = false;
884
876
  }
885
- let protocolGen = protocol;
886
- let hostGen = host;
887
- if (host.indexOf("localhost") > -1) {
888
- protocolGen = "https:";
889
- hostGen = "euidev.ecdevops.eu";
877
+ _scrollToFragment(fragmentId, tabIndex, init, changeTab) {
878
+ if (init) {
879
+ if (this.tabsContent) {
880
+ this.tabsContent.changeTab(tabIndex);
881
+ if (fragmentId) {
882
+ setTimeout(() => {
883
+ const fgm = document.getElementById(fragmentId);
884
+ const yOffset = -80;
885
+ if (fgm) {
886
+ const y = fgm.getBoundingClientRect().top + window.pageYOffset + yOffset;
887
+ window.scrollTo({ top: y });
888
+ }
889
+ });
890
+ }
891
+ }
892
+ }
893
+ else {
894
+ if (changeTab) {
895
+ this.router.onSameUrlNavigation = 'reload';
896
+ this.router.navigate(['.'], { relativeTo: this.route, fragment: fragmentId }).then(() => {
897
+ if (this.tabsContent) {
898
+ this.tabsContent.changeTab(tabIndex);
899
+ }
900
+ });
901
+ }
902
+ else {
903
+ const routeRoot = this.router.url.split('#')[0];
904
+ this.location.go(`${routeRoot}#${fragmentId}`);
905
+ }
906
+ }
890
907
  }
891
- const appVersionNumber = this.appMetadata.appVersion.split(".")[0];
892
- let docTypeRoot = `eui-docs-eui-${appVersionNumber}.x`;
893
- if (showcaseType.indexOf("-ecl") > -1) {
894
- docTypeRoot = `eui-docs-ecl-${appVersionNumber}.x`;
908
+ _getComponentStatus(id) {
909
+ const flatten = (links) => links
910
+ ? links.reduce((result, item) => [
911
+ ...result,
912
+ {
913
+ id: item.label,
914
+ alternateId: item.name,
915
+ status: item.markerTypeClass,
916
+ cmpReplacement: item.cmpReplacement,
917
+ cmpReplacementUrl: item.cmpReplacementUrl,
918
+ cmpReplacementNote: item.cmpReplacementNote,
919
+ alternateApiCategory: item.alternateApiCategory,
920
+ metadata: item.metadata,
921
+ },
922
+ ...flatten(item.children),
923
+ ], [])
924
+ : [];
925
+ const flatLinks = flatten(this.asService.state.sidebarLinks);
926
+ const idBasedCmp = flatLinks.filter((item) => item.id === id)[0];
927
+ if (idBasedCmp) {
928
+ return idBasedCmp;
929
+ }
930
+ else {
931
+ const alternateIdBasedCmp = flatLinks.filter((item) => item.alternateId === id)[0];
932
+ return alternateIdBasedCmp;
933
+ }
895
934
  }
896
- if (showcaseType.indexOf("-mobile") > -1) {
897
- docTypeRoot = `eui-docs-mobile-core-${appVersionNumber}.x`;
935
+ _getApiUrl() {
936
+ const url = window.location;
937
+ const protocol = url.protocol;
938
+ const host = url.host;
939
+ const pathName = url.pathname;
940
+ const pathNameArray = pathName.split('/');
941
+ const name = pathNameArray[pathNameArray.length - 1];
942
+ let category = pathNameArray[pathNameArray.length - 2];
943
+ let showcaseType;
944
+ showcaseType = pathNameArray[pathNameArray.length - 3];
945
+ if (showcaseType.indexOf('eui-showcase') === -1) {
946
+ showcaseType = pathNameArray[pathNameArray.length - 4];
947
+ }
948
+ let protocolGen = protocol;
949
+ let hostGen = host;
950
+ if (host.indexOf('localhost') > -1) {
951
+ protocolGen = 'https:';
952
+ hostGen = 'euidev.ecdevops.eu';
953
+ }
954
+ const appVersionNumber = this.appMetadata.appVersion.split('.')[0];
955
+ let docTypeRoot = `eui-docs-eui-${appVersionNumber}.x`;
956
+ if (showcaseType.indexOf('-ecl') > -1) {
957
+ docTypeRoot = `eui-docs-ecl-${appVersionNumber}.x`;
958
+ }
959
+ if (showcaseType.indexOf('-mobile') > -1) {
960
+ docTypeRoot = `eui-docs-mobile-core-${appVersionNumber}.x`;
961
+ }
962
+ if (category === 'layout-components' || category === 'externals' || category === 'layout' || category === 'atoms') {
963
+ category = 'components';
964
+ }
965
+ const cmp = this._getComponentStatus(name);
966
+ if (cmp && cmp.alternateApiCategory) {
967
+ category = cmp.alternateApiCategory;
968
+ }
969
+ const formattedName = this._camelCaseString(name + '-' + category.slice(0, -1), '-', true);
970
+ const docPath = `${protocolGen}//${hostGen}/${docTypeRoot}/${category}/${formattedName}.html`;
971
+ console.log(`fetching API from: ${docPath}`);
972
+ return docPath;
898
973
  }
899
- if (category === "layout-components" || category === "externals" || category === "layout" || category === "atoms") {
900
- category = "components";
974
+ _camelCaseString(string, separator, first) {
975
+ const stringArray = string.split(separator);
976
+ let result = '';
977
+ let s;
978
+ for (let i = 0; i < stringArray.length; i++) {
979
+ s = stringArray[i];
980
+ if (i === 0) {
981
+ if (first) {
982
+ result += s.substring(0, 1).toUpperCase() + s.substr(1);
983
+ }
984
+ else {
985
+ result += s;
986
+ }
987
+ }
988
+ else {
989
+ result += s.substring(0, 1).toUpperCase() + s.substr(1);
990
+ }
991
+ }
992
+ return result;
901
993
  }
902
- const cmp = this._getComponentStatus(name);
903
- if (cmp && cmp.alternateApiCategory) {
904
- category = cmp.alternateApiCategory;
994
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3.EuiAppShellService }, { token: i3$1.DomSanitizer }, { token: i4$1.Location }], target: i0.ɵɵFactoryTarget.Component }); }
995
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocPageComponent, selector: "eui-showcase-doc-page", inputs: { id: "id", label: "label", subLabel: "subLabel", isNotReady: "isNotReady", isDeprecated: "isDeprecated", isLegacy: "isLegacy", codeFolder: "codeFolder", showcase: "showcase", isNavigationVisible: "isNavigationVisible", hasApi: "hasApi", hasA11y: "hasA11y" }, queries: [{ propertyName: "samples", predicate: DocSampleComponent, descendants: true }, { propertyName: "sections", predicate: DocSectionComponent, descendants: true }, { propertyName: "pageOverviewContent", predicate: i0.forwardRef(() => DocPageOverviewContentDirective) }, { propertyName: "pageOverviewDefaultContent", predicate: i0.forwardRef(() => DocPageOverviewDefaultContentDirective) }, { propertyName: "pageSamplesContent", predicate: i0.forwardRef(() => DocPageSamplesContentDirective) }, { propertyName: "pageSectionsContent", predicate: i0.forwardRef(() => DocPageSectionsContentDirective) }, { propertyName: "pageInteractiveContent", predicate: i0.forwardRef(() => DocPageInteractiveContentDirective) }, { propertyName: "pageAccessibilityContent", predicate: i0.forwardRef(() => DocPageAccessibilityContentDirective) }, { propertyName: "pageApiContent", predicate: i0.forwardRef(() => DocPageApiContentDirective) }, { propertyName: "pageThemingContent", predicate: i0.forwardRef(() => DocPageThemingContentDirective) }], viewQueries: [{ propertyName: "tabsContent", first: true, predicate: ["tabsContent"], descendants: true }], ngImport: i0, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiInfo]=\"isNotReady\"\n [euiWarning]=\"isDeprecated\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 19 release (end of 2024)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <div class=\"doc-page-section-title\">Module import</div>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <div id=\"overview\" class=\"doc-page-section-title\">Overview</div>\n\n <div *ngIf=\"pageOverviewContent.length > 0\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n\n <div *ngIf=\"pageOverviewDefaultContent.length > 0\">\n <ng-content select=\"docPageOverviewDefault\"></ng-content>\n </div>\n <br />\n\n <div id=\"samples\" class=\"doc-page-section-title\">Options & samples</div>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <div id=\"accessibility\" class=\"doc-page-section-title\">Accessibility</div>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n <p>\n For more information regarding Accessibility, please refer to the <a class=\"eui-u-text-link-external\" href=\"https://eui.ecdevops.eu/eui-showcase-ux-components-18.x/showcase-dev-guide/accessibility/intro\" target=\"_blank\">Accessibility Dev Guide</a>.\n </p>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <div id=\"theming\" class=\"doc-page-section-title\">Theming</div>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <div id=\"interactive\" class=\"doc-page-section-title\">\n {{ pageInteractiveContent.first.subTitle }}\n </div>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <div id=\"demo\" *ngIf=\"sections.length === 0\" class=\"doc-page-section-title\">Demo</div>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ng-container *ngIf=\"categories.length > 0\">\n <ng-container *ngIf=\"hasCategories; else noCategories\">\n <ng-container *ngFor=\"let category of categories\">\n <ng-container *ngIf=\"category.name === 'Base'; else notBase\">\n <ul *ngFor=\"let sample of category.samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n <ng-template #notBase>\n <div *ngIf=\"category.name !== 'Base'\" class=\"doc-page-navigation-category\">{{category.name}}</div>\n <ul *ngFor=\"let sample of category.samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-template #noCategories>\n <ul *ngFor=\"let sample of samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-template>\n </ng-container>\n </li>\n\n\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-s-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-c-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-sh-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:0!important;transition:none}.doc-page-navigation-wrapper .language-javascript:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:0!important;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:0!important;transition:none}.doc-page-navigation-title{padding:var(--eui-s-s);font:var(--eui-f-xl)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 7.25rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-s-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-c-info-darker);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-s-3xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-c-info-darker);padding-left:var(--eui-s-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-s-s)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-neutral-lightest)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-c-info-bg);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item-sub{padding-left:var(--eui-s-l)}.doc-page-navigation .doc-page-navigation-category{padding-left:var(--eui-s-m);color:var(--eui-c-text);margin-top:var(--eui-s-s);font-weight:700;text-transform:capitalize}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-s-2xl);margin-bottom:var(--eui-s-xl);color:var(--eui-c-info-darker);letter-spacing:-1px;font:var(--eui-f-2xl-bold)}.doc-page-section-subtitle{font:var(--eui-f-l-bold);letter-spacing:-.25px;margin:var(--eui-s-2xl) 0 var(--eui-s-s);padding-bottom:var(--eui-s-2xs);width:auto;display:table;color:var(--eui-c-neutral)}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"], dependencies: [{ kind: "directive", type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.EuiTabsComponent, selector: "eui-tabs", inputs: ["tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i9.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i9.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i9.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i6.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i6.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i6.EuiPageHeaderComponent, selector: "eui-page-header", inputs: ["label", "subLabel", "labelTooltip", "subLabelTooltip", "isCollapsible", "isCollapsed", "isHeaderMultilines", "collapsedLabel", "expandedLabel"], outputs: ["collapse"] }, { kind: "component", type: i6.EuiPageHeaderActionItemsComponent, selector: "eui-page-header-action-items" }, { kind: "component", type: i7.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i8.EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: ["ariaDescribedBy", "e2eAttr", "isMuted", "isCloseable", "isFocusable"], outputs: ["closeAlert"] }, { kind: "component", type: i8.EuiAlertTitleComponent, selector: "eui-alert-title" }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: ["codeFolder", "showcase"] }], encapsulation: i0.ViewEncapsulation.None }); }
996
+ }
997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageComponent, decorators: [{
998
+ type: Component,
999
+ args: [{ selector: 'eui-showcase-doc-page', encapsulation: ViewEncapsulation.None, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiInfo]=\"isNotReady\"\n [euiWarning]=\"isDeprecated\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 19 release (end of 2024)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <div class=\"doc-page-section-title\">Module import</div>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <div id=\"overview\" class=\"doc-page-section-title\">Overview</div>\n\n <div *ngIf=\"pageOverviewContent.length > 0\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n\n <div *ngIf=\"pageOverviewDefaultContent.length > 0\">\n <ng-content select=\"docPageOverviewDefault\"></ng-content>\n </div>\n <br />\n\n <div id=\"samples\" class=\"doc-page-section-title\">Options & samples</div>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <div id=\"accessibility\" class=\"doc-page-section-title\">Accessibility</div>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n <p>\n For more information regarding Accessibility, please refer to the <a class=\"eui-u-text-link-external\" href=\"https://eui.ecdevops.eu/eui-showcase-ux-components-18.x/showcase-dev-guide/accessibility/intro\" target=\"_blank\">Accessibility Dev Guide</a>.\n </p>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <div id=\"theming\" class=\"doc-page-section-title\">Theming</div>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <div id=\"interactive\" class=\"doc-page-section-title\">\n {{ pageInteractiveContent.first.subTitle }}\n </div>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <div id=\"demo\" *ngIf=\"sections.length === 0\" class=\"doc-page-section-title\">Demo</div>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ng-container *ngIf=\"categories.length > 0\">\n <ng-container *ngIf=\"hasCategories; else noCategories\">\n <ng-container *ngFor=\"let category of categories\">\n <ng-container *ngIf=\"category.name === 'Base'; else notBase\">\n <ul *ngFor=\"let sample of category.samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n <ng-template #notBase>\n <div *ngIf=\"category.name !== 'Base'\" class=\"doc-page-navigation-category\">{{category.name}}</div>\n <ul *ngFor=\"let sample of category.samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-template #noCategories>\n <ul *ngFor=\"let sample of samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-template>\n </ng-container>\n </li>\n\n\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-s-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-c-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-sh-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:0!important;transition:none}.doc-page-navigation-wrapper .language-javascript:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:0!important;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:0!important;transition:none}.doc-page-navigation-title{padding:var(--eui-s-s);font:var(--eui-f-xl)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 7.25rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-c-neutral-bg-light)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-s-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-c-info-darker);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-s-3xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-c-info-darker);padding-left:var(--eui-s-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-s-s)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-neutral-lightest)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-c-info-bg);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item-sub{padding-left:var(--eui-s-l)}.doc-page-navigation .doc-page-navigation-category{padding-left:var(--eui-s-m);color:var(--eui-c-text);margin-top:var(--eui-s-s);font-weight:700;text-transform:capitalize}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-s-2xl);margin-bottom:var(--eui-s-xl);color:var(--eui-c-info-darker);letter-spacing:-1px;font:var(--eui-f-2xl-bold)}.doc-page-section-subtitle{font:var(--eui-f-l-bold);letter-spacing:-.25px;margin:var(--eui-s-2xl) 0 var(--eui-s-s);padding-bottom:var(--eui-s-2xs);width:auto;display:table;color:var(--eui-c-neutral)}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"] }]
1000
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3.EuiAppShellService }, { type: i3$1.DomSanitizer }, { type: i4$1.Location }], propDecorators: { id: [{
1001
+ type: Input
1002
+ }], label: [{
1003
+ type: Input
1004
+ }], subLabel: [{
1005
+ type: Input
1006
+ }], isNotReady: [{
1007
+ type: Input
1008
+ }], isDeprecated: [{
1009
+ type: Input
1010
+ }], isLegacy: [{
1011
+ type: Input
1012
+ }], codeFolder: [{
1013
+ type: Input
1014
+ }], showcase: [{
1015
+ type: Input
1016
+ }], isNavigationVisible: [{
1017
+ type: Input
1018
+ }], hasApi: [{
1019
+ type: Input
1020
+ }], hasA11y: [{
1021
+ type: Input
1022
+ }], samples: [{
1023
+ type: ContentChildren,
1024
+ args: [DocSampleComponent, { descendants: true }]
1025
+ }], sections: [{
1026
+ type: ContentChildren,
1027
+ args: [DocSectionComponent, { descendants: true }]
1028
+ }], pageOverviewContent: [{
1029
+ type: ContentChildren,
1030
+ args: [forwardRef(() => DocPageOverviewContentDirective)]
1031
+ }], pageOverviewDefaultContent: [{
1032
+ type: ContentChildren,
1033
+ args: [forwardRef(() => DocPageOverviewDefaultContentDirective)]
1034
+ }], pageSamplesContent: [{
1035
+ type: ContentChildren,
1036
+ args: [forwardRef(() => DocPageSamplesContentDirective)]
1037
+ }], pageSectionsContent: [{
1038
+ type: ContentChildren,
1039
+ args: [forwardRef(() => DocPageSectionsContentDirective)]
1040
+ }], pageInteractiveContent: [{
1041
+ type: ContentChildren,
1042
+ args: [forwardRef(() => DocPageInteractiveContentDirective)]
1043
+ }], pageAccessibilityContent: [{
1044
+ type: ContentChildren,
1045
+ args: [forwardRef(() => DocPageAccessibilityContentDirective)]
1046
+ }], pageApiContent: [{
1047
+ type: ContentChildren,
1048
+ args: [forwardRef(() => DocPageApiContentDirective)]
1049
+ }], pageThemingContent: [{
1050
+ type: ContentChildren,
1051
+ args: [forwardRef(() => DocPageThemingContentDirective)]
1052
+ }], tabsContent: [{
1053
+ type: ViewChild,
1054
+ args: ['tabsContent']
1055
+ }] } });
1056
+ /* eslint-disable @angular-eslint/directive-selector */
1057
+ class DocPageOverviewContentDirective {
1058
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageOverviewContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1059
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageOverviewContentDirective, selector: "docPageOverview", ngImport: i0 }); }
1060
+ }
1061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageOverviewContentDirective, decorators: [{
1062
+ type: Directive,
1063
+ args: [{ selector: 'docPageOverview' }]
1064
+ }] });
1065
+ class DocPageOverviewDefaultContentDirective {
1066
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageOverviewDefaultContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1067
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageOverviewDefaultContentDirective, selector: "docPageOverviewDefault", ngImport: i0 }); }
1068
+ }
1069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageOverviewDefaultContentDirective, decorators: [{
1070
+ type: Directive,
1071
+ args: [{ selector: 'docPageOverviewDefault' }]
1072
+ }] });
1073
+ class DocPageInteractiveContentDirective {
1074
+ constructor() {
1075
+ this.title = 'ADVANCED EXAMPLES';
1076
+ this.subTitle = 'Advanced use cases';
905
1077
  }
906
- const formattedName = this._camelCaseString(name + "-" + category.slice(0, -1), "-", true);
907
- const docPath = `${protocolGen}//${hostGen}/${docTypeRoot}/${category}/${formattedName}.html`;
908
- console.log(`fetching API from: ${docPath}`);
909
- return docPath;
910
- }
911
- _camelCaseString(string, separator, first) {
912
- const stringArray = string.split(separator);
913
- let result = "";
914
- let s;
915
- for (let i = 0; i < stringArray.length; i++) {
916
- s = stringArray[i];
917
- if (i === 0) {
918
- if (first) {
919
- result += s.substring(0, 1).toUpperCase() + s.substr(1);
920
- } else {
921
- result += s;
922
- }
923
- } else {
924
- result += s.substring(0, 1).toUpperCase() + s.substr(1);
925
- }
1078
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageInteractiveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1079
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageInteractiveContentDirective, selector: "docPageInteractive", inputs: { title: "title", subTitle: "subTitle" }, ngImport: i0 }); }
1080
+ }
1081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageInteractiveContentDirective, decorators: [{
1082
+ type: Directive,
1083
+ args: [{ selector: 'docPageInteractive' }]
1084
+ }], propDecorators: { title: [{
1085
+ type: Input
1086
+ }], subTitle: [{
1087
+ type: Input
1088
+ }] } });
1089
+ class DocPageSamplesContentDirective {
1090
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageSamplesContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1091
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageSamplesContentDirective, selector: "docPageSamples", ngImport: i0 }); }
1092
+ }
1093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageSamplesContentDirective, decorators: [{
1094
+ type: Directive,
1095
+ args: [{ selector: 'docPageSamples' }]
1096
+ }] });
1097
+ class DocPageSectionsContentDirective {
1098
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageSectionsContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1099
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageSectionsContentDirective, selector: "docPageSections", ngImport: i0 }); }
1100
+ }
1101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageSectionsContentDirective, decorators: [{
1102
+ type: Directive,
1103
+ args: [{ selector: 'docPageSections' }]
1104
+ }] });
1105
+ class DocPageAccessibilityContentDirective {
1106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageAccessibilityContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1107
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageAccessibilityContentDirective, selector: "docPageAccessibility", ngImport: i0 }); }
1108
+ }
1109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageAccessibilityContentDirective, decorators: [{
1110
+ type: Directive,
1111
+ args: [{ selector: 'docPageAccessibility' }]
1112
+ }] });
1113
+ class DocPageApiContentDirective {
1114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageApiContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageApiContentDirective, selector: "docPageApi", ngImport: i0 }); }
1116
+ }
1117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageApiContentDirective, decorators: [{
1118
+ type: Directive,
1119
+ args: [{ selector: 'docPageApi' }]
1120
+ }] });
1121
+ class DocPageThemingContentDirective {
1122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageThemingContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1123
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPageThemingContentDirective, selector: "docPageTheming", ngImport: i0 }); }
1124
+ }
1125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageThemingContentDirective, decorators: [{
1126
+ type: Directive,
1127
+ args: [{ selector: 'docPageTheming' }]
1128
+ }] });
1129
+
1130
+ class DocSampleApiComponent {
1131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSampleApiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocSampleApiComponent, selector: "eui-showcase-doc-sample-api", ngImport: i0, template: "" }); }
1133
+ }
1134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSampleApiComponent, decorators: [{
1135
+ type: Component,
1136
+ args: [{ selector: 'eui-showcase-doc-sample-api', template: "" }]
1137
+ }] });
1138
+
1139
+ class DocSectionCodeComponent {
1140
+ constructor() {
1141
+ this.isDeprecated = false;
1142
+ this.isCodeExpanded = false;
926
1143
  }
927
- return result;
928
- }
929
- static {
930
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageComponent, deps: [{ token: i12.Router }, { token: i12.ActivatedRoute }, { token: i23.EuiAppShellService }, { token: i33.DomSanitizer }, { token: i42.Location }], target: i06.ɵɵFactoryTarget.Component });
931
- }
932
- static {
933
- this.ɵcmp = i06.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageComponent, selector: "eui-showcase-doc-page", inputs: { id: "id", label: "label", subLabel: "subLabel", isNotReady: "isNotReady", isDeprecated: "isDeprecated", isLegacy: "isLegacy", codeFolder: "codeFolder", showcase: "showcase", isNavigationVisible: "isNavigationVisible", hasApi: "hasApi", hasA11y: "hasA11y" }, queries: [{ propertyName: "samples", predicate: DocSampleComponent, descendants: true }, { propertyName: "sections", predicate: DocSectionComponent, descendants: true }, { propertyName: "pageOverviewContent", predicate: i06.forwardRef(() => DocPageOverviewContentDirective) }, { propertyName: "pageSamplesContent", predicate: i06.forwardRef(() => DocPageSamplesContentDirective) }, { propertyName: "pageSectionsContent", predicate: i06.forwardRef(() => DocPageSectionsContentDirective) }, { propertyName: "pageInteractiveContent", predicate: i06.forwardRef(() => DocPageInteractiveContentDirective) }, { propertyName: "pageAccessibilityContent", predicate: i06.forwardRef(() => DocPageAccessibilityContentDirective) }, { propertyName: "pageApiContent", predicate: i06.forwardRef(() => DocPageApiContentDirective) }, { propertyName: "pageThemingContent", predicate: i06.forwardRef(() => DocPageThemingContentDirective) }], viewQueries: [{ propertyName: "tabsContent", first: true, predicate: ["tabsContent"], descendants: true }], ngImport: i06, template: `<div class="doc-page-navigation-wrapper" [class.eui-u-hidden]="isLoading">
934
- <div class="doc-page-main-column">
935
- <eui-page>
936
- <eui-page-header label="{{ label }}" subLabel="{{ subLabel }}">
937
- <eui-page-header-action-items>
938
- <eui-showcase-doc-page-code
939
- *ngIf="codeFolder"
940
- codeFolder="{{ codeFolder }}"
941
- showcase="{{ showcase }}"></eui-showcase-doc-page-code>
942
- <eui-chip
943
- *ngIf="stateLabel"
944
- [euiSuccess]="stateLabel === 'ACTIVE'"
945
- [euiWarning]="stateLabel === 'DEPRECATED - will be removed in eUI 18'"
946
- [euiDanger]="isLegacy">
947
- <span euiLabel>
948
- <strong>{{ stateLabel }}</strong>
949
- </span>
950
- </eui-chip>
951
- </eui-page-header-action-items>
952
- </eui-page-header>
953
-
954
- <eui-page-content>
955
- <eui-alert *ngIf="stateLabel === 'LEGACY' || isLegacy" euiDanger class="eui-u-mb-xl">
956
- <eui-alert-title>LEGACY component</eui-alert-title>
957
- <strong class="eui-u-color-danger">This component will be removed in eUI 18 release (end of 2023)</strong>
958
- <div *ngIf="cmp">
959
- <div *ngIf="cmp.cmpReplacement !== 'NONE'">
960
- It has been replaced by :
961
- <strong class="eui-u-color-success-darkest">{{ cmp.cmpReplacement }}</strong>
962
- <!-- <div *ngIf="cmp.cmpReplacementUrl">
963
- <br><br>
964
- You can find more information on the new component here : <a [routerLink]="cmp.cmpReplacementUrl">{{cmp.cmpReplacementUrl}}</a>
965
- </div> -->
966
- </div>
967
- <div *ngIf="cmp.cmpReplacement === 'NONE'">
968
- <strong class="eui-u-color-danger"> This component will be removed in eUI 18 release (end of 2023)</strong>
969
- </div>
970
- <div *ngIf="cmp.cmpReplacementNote">
971
- <strong class="eui-u-color-warning">{{ cmp.cmpReplacementNote }}</strong>
972
- </div>
973
- </div>
974
- </eui-alert>
975
-
976
- <eui-alert *ngIf="stateLabel === 'DEPRECATED' || isDeprecated" euiWarning class="eui-u-mb-xl">
977
- <eui-alert-title>DEPRECATED component</eui-alert-title>
978
- This component has been <strong class="eui-u-color-danger">deprecated</strong>
979
- <div *ngIf="cmp">
980
- This component has no replacement in current version AND won't have replacement in next version of eUI,
981
- <strong class="eui-u-color-danger">it will be removed in eUI 18 release (end of 2023)</strong>
982
- </div>
983
- </eui-alert>
984
-
985
- <eui-alert *ngIf="stateLabel === 'NOT_READY' || isNotReady" euiInfo class="eui-u-mb-xl">
986
- <eui-alert-title>NOT READY for production usage</eui-alert-title>
987
- <div *ngIf="cmp">
988
- This component is under development / some features might be missing, it'll be available in a future release once
989
- validated.
990
- </div>
991
- </eui-alert>
992
-
993
- <div *ngIf="(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'" class="mb-5"></div>
994
-
995
- <eui-tabs #tabsContent *ngIf="pageSectionsContent.length === 0" (tabSelect)="onTabSelected($event)">
996
- <eui-tab>
997
- <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>
998
- <euiTabContent>
999
- <ng-container *ngIf="cmp && cmp.metadata">
1000
- <div class="doc-page-section-title">Module import</div>
1001
- <pre><code class="language-javascript eui-u-bg-color-grey-5" euiCode>{{ cmpModuleImport }}</code></pre>
1002
- <br />
1003
- </ng-container>
1004
-
1005
- <div id="overview" class="doc-page-section-title">Overview & setup</div>
1006
- <div *ngIf="pageOverviewContent.length > 0; else noOverview">
1007
- <ng-content select="docPageOverview"></ng-content>
1008
- </div>
1009
- <ng-template #noOverview> Coming soon... </ng-template>
1010
- <br />
1011
-
1012
- <div id="samples" class="doc-page-section-title">Options & samples</div>
1013
- <ng-content select="docPageSamples"></ng-content>
1014
- </euiTabContent>
1015
- </eui-tab>
1016
-
1017
- <eui-tab *ngIf="hasApi">
1018
- <euiTabLabel> API </euiTabLabel>
1019
- <euiTabContent>
1020
- <ng-container *ngIf="apiUrlSafe">
1021
- <div class="flex-container">
1022
- <a href="{{ apiUrl }}" target="_blank" class="ms-auto pb-2 eui-u-text-link-external">Open API page</a>
1023
- </div>
1024
- <div class="doc-page-api-iframe-wrapper">
1025
- <iframe id="iframe_api" [width]="'100%'" height="700px" frameBorder="0" [src]="apiUrlSafe"></iframe>
1026
- </div>
1027
- </ng-container>
1028
- </euiTabContent>
1029
- </eui-tab>
1030
-
1031
- <eui-tab *ngIf="hasA11y">
1032
- <euiTabLabel> A11Y </euiTabLabel>
1033
- <euiTabContent>
1034
- <div id="accessibility" class="doc-page-section-title">Accessibility</div>
1035
- <ng-container *ngIf="pageAccessibilityContent.length !== 0">
1036
- <ng-content select="docPageAccessibility"></ng-content>
1037
- </ng-container>
1038
- <ng-container *ngIf="pageAccessibilityContent.length === 0">
1039
- No accessibility rules applicable
1040
- </ng-container>
1041
- </euiTabContent>
1042
- </eui-tab>
1043
-
1044
- <eui-tab *ngIf="pageThemingContent.length > 0">
1045
- <euiTabLabel> THEMING </euiTabLabel>
1046
- <euiTabContent>
1047
- <div id="theming" class="doc-page-section-title">Theming</div>
1048
- <ng-content select="docPageTheming"></ng-content>
1049
- </euiTabContent>
1050
- </eui-tab>
1051
-
1052
- <eui-tab *ngIf="pageInteractiveContent.length > 0">
1053
- <euiTabLabel>
1054
- {{ pageInteractiveContent.first.title }}
1055
- </euiTabLabel>
1056
- <euiTabContent>
1057
- <div id="interactive" class="doc-page-section-title">
1058
- {{ pageInteractiveContent.first.subTitle }}
1059
- </div>
1060
- <ng-content select="docPageInteractive"></ng-content>
1061
- </euiTabContent>
1062
- </eui-tab>
1063
- </eui-tabs>
1064
-
1065
- <ng-container *ngIf="pageSectionsContent.length > 0">
1066
- <div id="demo" *ngIf="sections.length === 0" class="doc-page-section-title">Demo</div>
1067
- <ng-content select="docPageSections"></ng-content>
1068
- </ng-container>
1069
- </eui-page-content>
1070
- </eui-page>
1071
- </div>
1072
-
1073
- <div *ngIf="isNavigationVisible" class="doc-page-navigation-column eui-u-hidden-desktop-down">
1074
- <div id="doc-page-nav">
1075
- <div class="doc-page-navigation-title">In this page</div>
1076
- <div class="doc-page-navigation-content" tabindex="0">
1077
- <ul class="doc-page-navigation">
1078
- <ng-container *ngIf="pageSectionsContent.length === 0">
1079
- <li
1080
- class="doc-page-navigation-item"
1081
- [class.doc-page-navigation-item--selected]="fragmentId === 'samples'"
1082
- (click)="onNavClick('samples', 0)">
1083
- <span>OPTIONS & SAMPLES</span>
1084
- </li>
1085
- <li
1086
- *ngIf="hasApi"
1087
- class="doc-page-navigation-item"
1088
- [class.doc-page-navigation-item--selected]="fragmentId === 'api'"
1089
- (click)="onNavClick('api', 1)">
1090
- <span>API</span>
1091
- </li>
1092
- <li
1093
- *ngIf="hasA11y"
1094
- class="doc-page-navigation-item"
1095
- [class.doc-page-navigation-item--selected]="fragmentId === 'a11y'"
1096
- (click)="onNavClick('a11y', 2)">
1097
- <span>A11Y</span>
1098
- </li>
1099
- <li class="doc-page-navigation-item doc-page-navigation-sub">
1100
- <ul *ngFor="let sample of samples" class="doc-page-navigation-list">
1101
- <li
1102
- class="doc-page-navigation-item"
1103
- [class.doc-page-navigation-item--selected]="fragmentId === sample.id"
1104
- (click)="onNavClick(sample.id, 0)">
1105
- <span>{{ sample.label }}</span>
1106
- </li>
1107
- </ul>
1108
- </li>
1109
-
1110
- <!-- OPTIONAL TABS-->
1111
- <ng-container *ngIf="pageThemingContent.length > 0">
1112
- <li
1113
- *ngIf="pageThemingContent.length > 0"
1114
- class="doc-page-navigation-item"
1115
- [class.doc-page-navigation-item--selected]="fragmentId === 'theming'"
1116
- (click)="onNavClick('theming', 3)">
1117
- <span>THEMING</span>
1118
- </li>
1119
- <li
1120
- *ngIf="pageInteractiveContent.length > 0"
1121
- class="doc-page-navigation-item"
1122
- [class.doc-page-navigation-item--selected]="fragmentId === 'advanced'"
1123
- (click)="onNavClick('advanced', 4)">
1124
- <span>{{ pageInteractiveContent.first.title }}</span>
1125
- </li>
1126
- </ng-container>
1127
- <ng-container *ngIf="pageThemingContent.length === 0">
1128
- <li
1129
- *ngIf="pageInteractiveContent.length > 0"
1130
- class="doc-page-navigation-item"
1131
- [class.doc-page-navigation-item--selected]="fragmentId === 'advanced'"
1132
- (click)="onNavClick('advanced', 3)">
1133
- <span>{{ pageInteractiveContent.first.title }}</span>
1134
- </li>
1135
- </ng-container>
1136
- </ng-container>
1137
-
1138
- <ng-container *ngIf="pageSectionsContent.length > 0">
1139
- <li
1140
- class="doc-page-navigation-item"
1141
- [class.doc-page-navigation-item--selected]="fragmentId === 'sections'"
1142
- (click)="onNavClick('sections', null)">
1143
- <span>Sections</span>
1144
- </li>
1145
- <li
1146
- *ngIf="sections.length === 0"
1147
- class="doc-page-navigation-item"
1148
- [class.doc-page-navigation-item--selected]="fragmentId === 'demo'"
1149
- (click)="onNavClick('demo', null)">
1150
- <span>Demo</span>
1151
- </li>
1152
- <li *ngIf="sections.length > 0" class="doc-page-navigation-item doc-page-navigation-sub">
1153
- <ul *ngFor="let section of sections">
1154
- <li
1155
- class="doc-page-navigation-item"
1156
- [class.doc-page-navigation-item--selected]="fragmentId === section.id"
1157
- (click)="onNavClick(section.id, null)">
1158
- <span>{{ section.label }}</span>
1159
- </li>
1160
- </ul>
1161
- </li>
1162
- </ng-container>
1163
- </ul>
1164
- </div>
1165
- </div>
1166
- </div>
1167
- </div>
1168
- `, styles: ['.doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex="0"]:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-m)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-base-spacing-2xl);margin-bottom:var(--eui-base-spacing-xl);color:var(--eui-base-color-info-120);font:normal normal 400 1.75rem/2rem var(--eui-base-font-family);font-weight:700}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n'], dependencies: [{ kind: "directive", type: i42.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i42.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i52.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i52.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i52.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i52.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i62.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i62.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i62.EuiPageHeaderComponent, selector: "eui-page-header", inputs: ["label", "subLabel", "labelTooltip", "subLabelTooltip", "isCollapsible", "isCollapsed", "isHeaderMultilines", "collapsedLabel", "expandedLabel"], outputs: ["collapse"] }, { kind: "directive", type: i62.EuiPageHeaderActionItemsContentDirective, selector: "eui-page-header-action-items" }, { kind: "component", type: i72.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i82.EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: ["ariaDescribedBy", "e2eAttr", "isMuted", "isCloseable", "isFocusable"], outputs: ["closeAlert"] }, { kind: "directive", type: i82.EuiAlertTitleDirective, selector: "eui-alert-title" }, { kind: "component", type: i92.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: ["codeFolder", "showcase"] }], encapsulation: i06.ViewEncapsulation.None });
1169
- }
1170
- };
1171
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageComponent, decorators: [{
1172
- type: Component4,
1173
- args: [{ selector: "eui-showcase-doc-page", encapsulation: ViewEncapsulation5.None, template: `<div class="doc-page-navigation-wrapper" [class.eui-u-hidden]="isLoading">
1174
- <div class="doc-page-main-column">
1175
- <eui-page>
1176
- <eui-page-header label="{{ label }}" subLabel="{{ subLabel }}">
1177
- <eui-page-header-action-items>
1178
- <eui-showcase-doc-page-code
1179
- *ngIf="codeFolder"
1180
- codeFolder="{{ codeFolder }}"
1181
- showcase="{{ showcase }}"></eui-showcase-doc-page-code>
1182
- <eui-chip
1183
- *ngIf="stateLabel"
1184
- [euiSuccess]="stateLabel === 'ACTIVE'"
1185
- [euiWarning]="stateLabel === 'DEPRECATED - will be removed in eUI 18'"
1186
- [euiDanger]="isLegacy">
1187
- <span euiLabel>
1188
- <strong>{{ stateLabel }}</strong>
1189
- </span>
1190
- </eui-chip>
1191
- </eui-page-header-action-items>
1192
- </eui-page-header>
1193
-
1194
- <eui-page-content>
1195
- <eui-alert *ngIf="stateLabel === 'LEGACY' || isLegacy" euiDanger class="eui-u-mb-xl">
1196
- <eui-alert-title>LEGACY component</eui-alert-title>
1197
- <strong class="eui-u-color-danger">This component will be removed in eUI 18 release (end of 2023)</strong>
1198
- <div *ngIf="cmp">
1199
- <div *ngIf="cmp.cmpReplacement !== 'NONE'">
1200
- It has been replaced by :
1201
- <strong class="eui-u-color-success-darkest">{{ cmp.cmpReplacement }}</strong>
1202
- <!-- <div *ngIf="cmp.cmpReplacementUrl">
1203
- <br><br>
1204
- You can find more information on the new component here : <a [routerLink]="cmp.cmpReplacementUrl">{{cmp.cmpReplacementUrl}}</a>
1205
- </div> -->
1206
- </div>
1207
- <div *ngIf="cmp.cmpReplacement === 'NONE'">
1208
- <strong class="eui-u-color-danger"> This component will be removed in eUI 18 release (end of 2023)</strong>
1209
- </div>
1210
- <div *ngIf="cmp.cmpReplacementNote">
1211
- <strong class="eui-u-color-warning">{{ cmp.cmpReplacementNote }}</strong>
1212
- </div>
1213
- </div>
1214
- </eui-alert>
1215
-
1216
- <eui-alert *ngIf="stateLabel === 'DEPRECATED' || isDeprecated" euiWarning class="eui-u-mb-xl">
1217
- <eui-alert-title>DEPRECATED component</eui-alert-title>
1218
- This component has been <strong class="eui-u-color-danger">deprecated</strong>
1219
- <div *ngIf="cmp">
1220
- This component has no replacement in current version AND won't have replacement in next version of eUI,
1221
- <strong class="eui-u-color-danger">it will be removed in eUI 18 release (end of 2023)</strong>
1222
- </div>
1223
- </eui-alert>
1224
-
1225
- <eui-alert *ngIf="stateLabel === 'NOT_READY' || isNotReady" euiInfo class="eui-u-mb-xl">
1226
- <eui-alert-title>NOT READY for production usage</eui-alert-title>
1227
- <div *ngIf="cmp">
1228
- This component is under development / some features might be missing, it'll be available in a future release once
1229
- validated.
1230
- </div>
1231
- </eui-alert>
1232
-
1233
- <div *ngIf="(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'" class="mb-5"></div>
1234
-
1235
- <eui-tabs #tabsContent *ngIf="pageSectionsContent.length === 0" (tabSelect)="onTabSelected($event)">
1236
- <eui-tab>
1237
- <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>
1238
- <euiTabContent>
1239
- <ng-container *ngIf="cmp && cmp.metadata">
1240
- <div class="doc-page-section-title">Module import</div>
1241
- <pre><code class="language-javascript eui-u-bg-color-grey-5" euiCode>{{ cmpModuleImport }}</code></pre>
1242
- <br />
1243
- </ng-container>
1244
-
1245
- <div id="overview" class="doc-page-section-title">Overview & setup</div>
1246
- <div *ngIf="pageOverviewContent.length > 0; else noOverview">
1247
- <ng-content select="docPageOverview"></ng-content>
1248
- </div>
1249
- <ng-template #noOverview> Coming soon... </ng-template>
1250
- <br />
1251
-
1252
- <div id="samples" class="doc-page-section-title">Options & samples</div>
1253
- <ng-content select="docPageSamples"></ng-content>
1254
- </euiTabContent>
1255
- </eui-tab>
1256
-
1257
- <eui-tab *ngIf="hasApi">
1258
- <euiTabLabel> API </euiTabLabel>
1259
- <euiTabContent>
1260
- <ng-container *ngIf="apiUrlSafe">
1261
- <div class="flex-container">
1262
- <a href="{{ apiUrl }}" target="_blank" class="ms-auto pb-2 eui-u-text-link-external">Open API page</a>
1263
- </div>
1264
- <div class="doc-page-api-iframe-wrapper">
1265
- <iframe id="iframe_api" [width]="'100%'" height="700px" frameBorder="0" [src]="apiUrlSafe"></iframe>
1266
- </div>
1267
- </ng-container>
1268
- </euiTabContent>
1269
- </eui-tab>
1270
-
1271
- <eui-tab *ngIf="hasA11y">
1272
- <euiTabLabel> A11Y </euiTabLabel>
1273
- <euiTabContent>
1274
- <div id="accessibility" class="doc-page-section-title">Accessibility</div>
1275
- <ng-container *ngIf="pageAccessibilityContent.length !== 0">
1276
- <ng-content select="docPageAccessibility"></ng-content>
1277
- </ng-container>
1278
- <ng-container *ngIf="pageAccessibilityContent.length === 0">
1279
- No accessibility rules applicable
1280
- </ng-container>
1281
- </euiTabContent>
1282
- </eui-tab>
1283
-
1284
- <eui-tab *ngIf="pageThemingContent.length > 0">
1285
- <euiTabLabel> THEMING </euiTabLabel>
1286
- <euiTabContent>
1287
- <div id="theming" class="doc-page-section-title">Theming</div>
1288
- <ng-content select="docPageTheming"></ng-content>
1289
- </euiTabContent>
1290
- </eui-tab>
1291
-
1292
- <eui-tab *ngIf="pageInteractiveContent.length > 0">
1293
- <euiTabLabel>
1294
- {{ pageInteractiveContent.first.title }}
1295
- </euiTabLabel>
1296
- <euiTabContent>
1297
- <div id="interactive" class="doc-page-section-title">
1298
- {{ pageInteractiveContent.first.subTitle }}
1299
- </div>
1300
- <ng-content select="docPageInteractive"></ng-content>
1301
- </euiTabContent>
1302
- </eui-tab>
1303
- </eui-tabs>
1304
-
1305
- <ng-container *ngIf="pageSectionsContent.length > 0">
1306
- <div id="demo" *ngIf="sections.length === 0" class="doc-page-section-title">Demo</div>
1307
- <ng-content select="docPageSections"></ng-content>
1308
- </ng-container>
1309
- </eui-page-content>
1310
- </eui-page>
1311
- </div>
1312
-
1313
- <div *ngIf="isNavigationVisible" class="doc-page-navigation-column eui-u-hidden-desktop-down">
1314
- <div id="doc-page-nav">
1315
- <div class="doc-page-navigation-title">In this page</div>
1316
- <div class="doc-page-navigation-content" tabindex="0">
1317
- <ul class="doc-page-navigation">
1318
- <ng-container *ngIf="pageSectionsContent.length === 0">
1319
- <li
1320
- class="doc-page-navigation-item"
1321
- [class.doc-page-navigation-item--selected]="fragmentId === 'samples'"
1322
- (click)="onNavClick('samples', 0)">
1323
- <span>OPTIONS & SAMPLES</span>
1324
- </li>
1325
- <li
1326
- *ngIf="hasApi"
1327
- class="doc-page-navigation-item"
1328
- [class.doc-page-navigation-item--selected]="fragmentId === 'api'"
1329
- (click)="onNavClick('api', 1)">
1330
- <span>API</span>
1331
- </li>
1332
- <li
1333
- *ngIf="hasA11y"
1334
- class="doc-page-navigation-item"
1335
- [class.doc-page-navigation-item--selected]="fragmentId === 'a11y'"
1336
- (click)="onNavClick('a11y', 2)">
1337
- <span>A11Y</span>
1338
- </li>
1339
- <li class="doc-page-navigation-item doc-page-navigation-sub">
1340
- <ul *ngFor="let sample of samples" class="doc-page-navigation-list">
1341
- <li
1342
- class="doc-page-navigation-item"
1343
- [class.doc-page-navigation-item--selected]="fragmentId === sample.id"
1344
- (click)="onNavClick(sample.id, 0)">
1345
- <span>{{ sample.label }}</span>
1346
- </li>
1347
- </ul>
1348
- </li>
1349
-
1350
- <!-- OPTIONAL TABS-->
1351
- <ng-container *ngIf="pageThemingContent.length > 0">
1352
- <li
1353
- *ngIf="pageThemingContent.length > 0"
1354
- class="doc-page-navigation-item"
1355
- [class.doc-page-navigation-item--selected]="fragmentId === 'theming'"
1356
- (click)="onNavClick('theming', 3)">
1357
- <span>THEMING</span>
1358
- </li>
1359
- <li
1360
- *ngIf="pageInteractiveContent.length > 0"
1361
- class="doc-page-navigation-item"
1362
- [class.doc-page-navigation-item--selected]="fragmentId === 'advanced'"
1363
- (click)="onNavClick('advanced', 4)">
1364
- <span>{{ pageInteractiveContent.first.title }}</span>
1365
- </li>
1366
- </ng-container>
1367
- <ng-container *ngIf="pageThemingContent.length === 0">
1368
- <li
1369
- *ngIf="pageInteractiveContent.length > 0"
1370
- class="doc-page-navigation-item"
1371
- [class.doc-page-navigation-item--selected]="fragmentId === 'advanced'"
1372
- (click)="onNavClick('advanced', 3)">
1373
- <span>{{ pageInteractiveContent.first.title }}</span>
1374
- </li>
1375
- </ng-container>
1376
- </ng-container>
1377
-
1378
- <ng-container *ngIf="pageSectionsContent.length > 0">
1379
- <li
1380
- class="doc-page-navigation-item"
1381
- [class.doc-page-navigation-item--selected]="fragmentId === 'sections'"
1382
- (click)="onNavClick('sections', null)">
1383
- <span>Sections</span>
1384
- </li>
1385
- <li
1386
- *ngIf="sections.length === 0"
1387
- class="doc-page-navigation-item"
1388
- [class.doc-page-navigation-item--selected]="fragmentId === 'demo'"
1389
- (click)="onNavClick('demo', null)">
1390
- <span>Demo</span>
1391
- </li>
1392
- <li *ngIf="sections.length > 0" class="doc-page-navigation-item doc-page-navigation-sub">
1393
- <ul *ngFor="let section of sections">
1394
- <li
1395
- class="doc-page-navigation-item"
1396
- [class.doc-page-navigation-item--selected]="fragmentId === section.id"
1397
- (click)="onNavClick(section.id, null)">
1398
- <span>{{ section.label }}</span>
1399
- </li>
1400
- </ul>
1401
- </li>
1402
- </ng-container>
1403
- </ul>
1404
- </div>
1405
- </div>
1406
- </div>
1407
- </div>
1408
- `, styles: ['.doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex="0"]:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript [tabindex="0"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-m)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-base-spacing-2xl);margin-bottom:var(--eui-base-spacing-xl);color:var(--eui-base-color-info-120);font:normal normal 400 1.75rem/2rem var(--eui-base-font-family);font-weight:700}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n'] }]
1409
- }], ctorParameters: () => [{ type: i12.Router }, { type: i12.ActivatedRoute }, { type: i23.EuiAppShellService }, { type: i33.DomSanitizer }, { type: i42.Location }], propDecorators: { id: [{
1410
- type: Input4
1411
- }], label: [{
1412
- type: Input4
1413
- }], subLabel: [{
1414
- type: Input4
1415
- }], isNotReady: [{
1416
- type: Input4
1417
- }], isDeprecated: [{
1418
- type: Input4
1419
- }], isLegacy: [{
1420
- type: Input4
1421
- }], codeFolder: [{
1422
- type: Input4
1423
- }], showcase: [{
1424
- type: Input4
1425
- }], isNavigationVisible: [{
1426
- type: Input4
1427
- }], hasApi: [{
1428
- type: Input4
1429
- }], hasA11y: [{
1430
- type: Input4
1431
- }], samples: [{
1432
- type: ContentChildren,
1433
- args: [DocSampleComponent, { descendants: true }]
1434
- }], sections: [{
1435
- type: ContentChildren,
1436
- args: [DocSectionComponent, { descendants: true }]
1437
- }], pageOverviewContent: [{
1438
- type: ContentChildren,
1439
- args: [forwardRef(() => DocPageOverviewContentDirective)]
1440
- }], pageSamplesContent: [{
1441
- type: ContentChildren,
1442
- args: [forwardRef(() => DocPageSamplesContentDirective)]
1443
- }], pageSectionsContent: [{
1444
- type: ContentChildren,
1445
- args: [forwardRef(() => DocPageSectionsContentDirective)]
1446
- }], pageInteractiveContent: [{
1447
- type: ContentChildren,
1448
- args: [forwardRef(() => DocPageInteractiveContentDirective)]
1449
- }], pageAccessibilityContent: [{
1450
- type: ContentChildren,
1451
- args: [forwardRef(() => DocPageAccessibilityContentDirective)]
1452
- }], pageApiContent: [{
1453
- type: ContentChildren,
1454
- args: [forwardRef(() => DocPageApiContentDirective)]
1455
- }], pageThemingContent: [{
1456
- type: ContentChildren,
1457
- args: [forwardRef(() => DocPageThemingContentDirective)]
1458
- }], tabsContent: [{
1459
- type: ViewChild,
1460
- args: ["tabsContent"]
1461
- }] } });
1462
- var DocPageOverviewContentDirective = class _DocPageOverviewContentDirective {
1463
- static {
1464
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageOverviewContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1465
- }
1466
- static {
1467
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageOverviewContentDirective, selector: "docPageOverview", ngImport: i06 });
1468
- }
1469
- };
1470
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageOverviewContentDirective, decorators: [{
1471
- type: Directive2,
1472
- args: [{ selector: "docPageOverview" }]
1473
- }] });
1474
- var DocPageInteractiveContentDirective = class _DocPageInteractiveContentDirective {
1475
- constructor() {
1476
- this.title = "ADVANCED EXAMPLES";
1477
- this.subTitle = "Advanced use cases";
1478
- }
1479
- static {
1480
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageInteractiveContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1481
- }
1482
- static {
1483
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageInteractiveContentDirective, selector: "docPageInteractive", inputs: { title: "title", subTitle: "subTitle" }, ngImport: i06 });
1484
- }
1485
- };
1486
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageInteractiveContentDirective, decorators: [{
1487
- type: Directive2,
1488
- args: [{ selector: "docPageInteractive" }]
1489
- }], propDecorators: { title: [{
1490
- type: Input4
1491
- }], subTitle: [{
1492
- type: Input4
1493
- }] } });
1494
- var DocPageSamplesContentDirective = class _DocPageSamplesContentDirective {
1495
- static {
1496
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageSamplesContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1497
- }
1498
- static {
1499
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageSamplesContentDirective, selector: "docPageSamples", ngImport: i06 });
1500
- }
1501
- };
1502
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageSamplesContentDirective, decorators: [{
1503
- type: Directive2,
1504
- args: [{ selector: "docPageSamples" }]
1505
- }] });
1506
- var DocPageSectionsContentDirective = class _DocPageSectionsContentDirective {
1507
- static {
1508
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageSectionsContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1509
- }
1510
- static {
1511
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageSectionsContentDirective, selector: "docPageSections", ngImport: i06 });
1512
- }
1513
- };
1514
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageSectionsContentDirective, decorators: [{
1515
- type: Directive2,
1516
- args: [{ selector: "docPageSections" }]
1517
- }] });
1518
- var DocPageAccessibilityContentDirective = class _DocPageAccessibilityContentDirective {
1519
- static {
1520
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageAccessibilityContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1521
- }
1522
- static {
1523
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageAccessibilityContentDirective, selector: "docPageAccessibility", ngImport: i06 });
1524
- }
1525
- };
1526
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageAccessibilityContentDirective, decorators: [{
1527
- type: Directive2,
1528
- args: [{ selector: "docPageAccessibility" }]
1529
- }] });
1530
- var DocPageApiContentDirective = class _DocPageApiContentDirective {
1531
- static {
1532
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageApiContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1533
- }
1534
- static {
1535
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageApiContentDirective, selector: "docPageApi", ngImport: i06 });
1536
- }
1537
- };
1538
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageApiContentDirective, decorators: [{
1539
- type: Directive2,
1540
- args: [{ selector: "docPageApi" }]
1541
- }] });
1542
- var DocPageThemingContentDirective = class _DocPageThemingContentDirective {
1543
- static {
1544
- this.ɵfac = i06.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: _DocPageThemingContentDirective, deps: [], target: i06.ɵɵFactoryTarget.Directive });
1545
- }
1546
- static {
1547
- this.ɵdir = i06.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageThemingContentDirective, selector: "docPageTheming", ngImport: i06 });
1548
- }
1549
- };
1550
- i06.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i06, type: DocPageThemingContentDirective, decorators: [{
1551
- type: Directive2,
1552
- args: [{ selector: "docPageTheming" }]
1553
- }] });
1554
-
1555
- // lib/components/doc-sample-api/doc-sample-api.component.mjs
1556
- import { Component as Component5 } from "@angular/core";
1557
- import * as i07 from "@angular/core";
1558
- var DocSampleApiComponent = class _DocSampleApiComponent {
1559
- static {
1560
- this.ɵfac = i07.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i07, type: _DocSampleApiComponent, deps: [], target: i07.ɵɵFactoryTarget.Component });
1561
- }
1562
- static {
1563
- this.ɵcmp = i07.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSampleApiComponent, selector: "eui-showcase-doc-sample-api", ngImport: i07, template: "" });
1564
- }
1565
- };
1566
- i07.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i07, type: DocSampleApiComponent, decorators: [{
1567
- type: Component5,
1568
- args: [{ selector: "eui-showcase-doc-sample-api", template: "" }]
1569
- }] });
1570
-
1571
- // lib/components/doc-section-code/doc-section-code.component.mjs
1572
- import { Component as Component6, Input as Input5, Directive as Directive3, ContentChild, forwardRef as forwardRef3 } from "@angular/core";
1573
- import * as i08 from "@angular/core";
1574
- import * as i13 from "@angular/common";
1575
- import * as i24 from "@eui/components/eui-button";
1576
- import * as i34 from "@eui/components/eui-tabs";
1577
- import * as i43 from "@eui/components/eui-icon";
1578
- import * as i53 from "@eui/components/eui-label";
1579
- var DocSectionCodeComponent = class _DocSectionCodeComponent {
1580
- constructor() {
1581
- this.isDeprecated = false;
1582
- this.isCodeExpanded = false;
1583
- }
1584
- toggleCode() {
1585
- this.isCodeExpanded = !this.isCodeExpanded;
1586
- }
1587
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1588
- isDefined(object) {
1589
- return object;
1590
- }
1591
- static {
1592
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeComponent, deps: [], target: i08.ɵɵFactoryTarget.Component });
1593
- }
1594
- static {
1595
- this.ɵcmp = i08.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeComponent, selector: "eui-showcase-doc-section-code", inputs: { label: "label", content: "content", styleClass: "styleClass", versionLabel: "versionLabel", isDeprecated: "isDeprecated", isCodeExpanded: "isCodeExpanded" }, queries: [{ propertyName: "sectionDescription", first: true, predicate: i08.forwardRef(() => DocSectionCodeDescriptionTagDirective), descendants: true }, { propertyName: "sectionCodeHTML", first: true, predicate: i08.forwardRef(() => DocSectionCodeHtmlTagDirective), descendants: true }, { propertyName: "sectionCodeTS", first: true, predicate: i08.forwardRef(() => DocSectionCodeTsTagDirective), descendants: true }, { propertyName: "sectionCodeSERVICE", first: true, predicate: i08.forwardRef(() => DocSectionCodeServiceTagDirective), descendants: true }, { propertyName: "sectionCodeCSS", first: true, predicate: i08.forwardRef(() => DocSectionCodeCssTagDirective), descendants: true }, { propertyName: "sectionCodeDOC", first: true, predicate: i08.forwardRef(() => DocSectionCodeDocTagDirective), descendants: true }], ngImport: i08, template: '<h5 class="section-title {{ styleClass }}">\n <div class="eui-u-flex eui-u-flex-justify-content-between">\n <div [class.app-section-code--deprecated]="isDeprecated">\n {{ label }}\n </div>\n <div class="ml-auto">\n <span *ngIf="versionLabel" class="eui-u-color-danger">{{ versionLabel }}</span>\n <button type="button" euiButton [euiOutline]="!isCodeExpanded" euiPrimary euiSizeS (click)="toggleCode()">\n <span *ngIf="!isCodeExpanded" euiLabel>Code</span>\n <span *ngIf="isCodeExpanded" euiLabel>Hide Code</span>\n <span euiIcon iconClass="eui-icon-code"></span>\n </button>\n </div>\n </div>\n <div *ngIf="isDeprecated">\n <small class="eui-u-color-danger">Deprecated in 3.x</small>\n </div>\n</h5>\n\n<div class="eui-u-mv" *ngIf="sectionDescription">\n <ng-content select="sectionDescription"></ng-content>\n</div>\n\n<ng-template [ngIf]="isCodeExpanded">\n <eui-tabs>\n <eui-tab [isVisible]="isDefined(sectionCodeHTML)">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-markup" euiCode><ng-content select="sectionCodeHTML"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeTS)">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode><ng-content select="sectionCodeTS"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeSERVICE)">\n <euiTabLabel>Service</euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode><ng-content select="sectionCodeSERVICE"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeCSS)">\n <euiTabLabel>CSS</euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode><ng-content select="sectionCodeCSS"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeDOC)">\n <euiTabLabel>\n DOC\n <euiTabSubLabel>Documentation</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <div class="language-doc">\n <ng-content select="sectionCodeDOC"></ng-content>\n </div>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n <ng-template [ngIf]="!sectionCodeHTML && !sectionCodeTS && !sectionCodeCSS">\n <pre class="only-html"><code class="language-markup" euiCode><ng-content></ng-content></code></pre>\n </ng-template>\n</ng-template>\n', styles: [".eui-showcase-doc-section-code--deprecated{color:red;text-decoration:line-through}.language-doc{background-color:#f5f8fb;border-left:10px solid #358ccb;box-shadow:-1px 0 #358ccb,0 0 0 1px #dfdfdf;display:block;height:inherit;max-height:inherit;overflow:auto;padding:1rem;position:relative}.first-section{margin-top:0;padding-top:10px}\n"], dependencies: [{ kind: "directive", type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i24.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i34.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i34.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i34.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i34.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i34.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i43.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i53.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }] });
1596
- }
1597
- };
1598
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeComponent, decorators: [{
1599
- type: Component6,
1600
- args: [{ selector: "eui-showcase-doc-section-code", template: '<h5 class="section-title {{ styleClass }}">\n <div class="eui-u-flex eui-u-flex-justify-content-between">\n <div [class.app-section-code--deprecated]="isDeprecated">\n {{ label }}\n </div>\n <div class="ml-auto">\n <span *ngIf="versionLabel" class="eui-u-color-danger">{{ versionLabel }}</span>\n <button type="button" euiButton [euiOutline]="!isCodeExpanded" euiPrimary euiSizeS (click)="toggleCode()">\n <span *ngIf="!isCodeExpanded" euiLabel>Code</span>\n <span *ngIf="isCodeExpanded" euiLabel>Hide Code</span>\n <span euiIcon iconClass="eui-icon-code"></span>\n </button>\n </div>\n </div>\n <div *ngIf="isDeprecated">\n <small class="eui-u-color-danger">Deprecated in 3.x</small>\n </div>\n</h5>\n\n<div class="eui-u-mv" *ngIf="sectionDescription">\n <ng-content select="sectionDescription"></ng-content>\n</div>\n\n<ng-template [ngIf]="isCodeExpanded">\n <eui-tabs>\n <eui-tab [isVisible]="isDefined(sectionCodeHTML)">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-markup" euiCode><ng-content select="sectionCodeHTML"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeTS)">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode><ng-content select="sectionCodeTS"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeSERVICE)">\n <euiTabLabel>Service</euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode><ng-content select="sectionCodeSERVICE"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeCSS)">\n <euiTabLabel>CSS</euiTabLabel>\n <euiTabContent>\n <pre><code class="language-javascript" euiCode><ng-content select="sectionCodeCSS"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]="isDefined(sectionCodeDOC)">\n <euiTabLabel>\n DOC\n <euiTabSubLabel>Documentation</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <div class="language-doc">\n <ng-content select="sectionCodeDOC"></ng-content>\n </div>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n <ng-template [ngIf]="!sectionCodeHTML && !sectionCodeTS && !sectionCodeCSS">\n <pre class="only-html"><code class="language-markup" euiCode><ng-content></ng-content></code></pre>\n </ng-template>\n</ng-template>\n', styles: [".eui-showcase-doc-section-code--deprecated{color:red;text-decoration:line-through}.language-doc{background-color:#f5f8fb;border-left:10px solid #358ccb;box-shadow:-1px 0 #358ccb,0 0 0 1px #dfdfdf;display:block;height:inherit;max-height:inherit;overflow:auto;padding:1rem;position:relative}.first-section{margin-top:0;padding-top:10px}\n"] }]
1601
- }], propDecorators: { label: [{
1602
- type: Input5
1603
- }], content: [{
1604
- type: Input5
1605
- }], styleClass: [{
1606
- type: Input5
1607
- }], versionLabel: [{
1608
- type: Input5
1609
- }], isDeprecated: [{
1610
- type: Input5
1611
- }], isCodeExpanded: [{
1612
- type: Input5
1613
- }], sectionDescription: [{
1614
- type: ContentChild,
1615
- args: [forwardRef3(() => DocSectionCodeDescriptionTagDirective)]
1616
- }], sectionCodeHTML: [{
1617
- type: ContentChild,
1618
- args: [forwardRef3(() => DocSectionCodeHtmlTagDirective)]
1619
- }], sectionCodeTS: [{
1620
- type: ContentChild,
1621
- args: [forwardRef3(() => DocSectionCodeTsTagDirective)]
1622
- }], sectionCodeSERVICE: [{
1623
- type: ContentChild,
1624
- args: [forwardRef3(() => DocSectionCodeServiceTagDirective)]
1625
- }], sectionCodeCSS: [{
1626
- type: ContentChild,
1627
- args: [forwardRef3(() => DocSectionCodeCssTagDirective)]
1628
- }], sectionCodeDOC: [{
1629
- type: ContentChild,
1630
- args: [forwardRef3(() => DocSectionCodeDocTagDirective)]
1631
- }] } });
1632
- var DocSectionCodeDescriptionTagDirective = class _DocSectionCodeDescriptionTagDirective {
1633
- static {
1634
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeDescriptionTagDirective, deps: [], target: i08.ɵɵFactoryTarget.Directive });
1635
- }
1636
- static {
1637
- this.ɵdir = i08.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeDescriptionTagDirective, selector: "sectionDescription", ngImport: i08 });
1638
- }
1639
- };
1640
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeDescriptionTagDirective, decorators: [{
1641
- type: Directive3,
1642
- args: [{ selector: "sectionDescription" }]
1643
- }] });
1644
- var DocSectionCodeHtmlTagDirective = class _DocSectionCodeHtmlTagDirective {
1645
- static {
1646
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeHtmlTagDirective, deps: [], target: i08.ɵɵFactoryTarget.Directive });
1647
- }
1648
- static {
1649
- this.ɵdir = i08.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeHtmlTagDirective, selector: "sectionCodeHTML", ngImport: i08 });
1650
- }
1651
- };
1652
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeHtmlTagDirective, decorators: [{
1653
- type: Directive3,
1654
- args: [{ selector: "sectionCodeHTML" }]
1655
- }] });
1656
- var DocSectionCodeTsTagDirective = class _DocSectionCodeTsTagDirective {
1657
- static {
1658
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeTsTagDirective, deps: [], target: i08.ɵɵFactoryTarget.Directive });
1659
- }
1660
- static {
1661
- this.ɵdir = i08.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeTsTagDirective, selector: "sectionCodeTS", ngImport: i08 });
1662
- }
1663
- };
1664
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeTsTagDirective, decorators: [{
1665
- type: Directive3,
1666
- args: [{ selector: "sectionCodeTS" }]
1667
- }] });
1668
- var DocSectionCodeServiceTagDirective = class _DocSectionCodeServiceTagDirective {
1669
- static {
1670
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeServiceTagDirective, deps: [], target: i08.ɵɵFactoryTarget.Directive });
1671
- }
1672
- static {
1673
- this.ɵdir = i08.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeServiceTagDirective, selector: "sectionCodeSERVICE", ngImport: i08 });
1674
- }
1675
- };
1676
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeServiceTagDirective, decorators: [{
1677
- type: Directive3,
1678
- args: [{ selector: "sectionCodeSERVICE" }]
1679
- }] });
1680
- var DocSectionCodeCssTagDirective = class _DocSectionCodeCssTagDirective {
1681
- static {
1682
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeCssTagDirective, deps: [], target: i08.ɵɵFactoryTarget.Directive });
1683
- }
1684
- static {
1685
- this.ɵdir = i08.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeCssTagDirective, selector: "sectionCodeCSS", ngImport: i08 });
1686
- }
1687
- };
1688
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeCssTagDirective, decorators: [{
1689
- type: Directive3,
1690
- args: [{ selector: "sectionCodeCSS" }]
1691
- }] });
1692
- var DocSectionCodeDocTagDirective = class _DocSectionCodeDocTagDirective {
1693
- static {
1694
- this.ɵfac = i08.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: _DocSectionCodeDocTagDirective, deps: [], target: i08.ɵɵFactoryTarget.Directive });
1695
- }
1696
- static {
1697
- this.ɵdir = i08.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocSectionCodeDocTagDirective, selector: "sectionCodeDOC", ngImport: i08 });
1698
- }
1699
- };
1700
- i08.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i08, type: DocSectionCodeDocTagDirective, decorators: [{
1701
- type: Directive3,
1702
- args: [{ selector: "sectionCodeDOC" }]
1703
- }] });
1704
-
1705
- // lib/components/doc-page-code-modal/doc-page-code-modal.component.mjs
1706
- import { Component as Component7, Input as Input6, ViewChild as ViewChild2 } from "@angular/core";
1707
- import * as i09 from "@angular/core";
1708
- import * as i14 from "@eui/core";
1709
- import * as i25 from "@eui/components/eui-button";
1710
- import * as i35 from "@eui/components/eui-dialog";
1711
- import * as i44 from "@eui/components/eui-icon";
1712
- import * as i54 from "@eui/components/eui-label";
1713
- var DocPageCodeModalComponent = class _DocPageCodeModalComponent {
1714
- constructor(asService) {
1715
- this.asService = asService;
1716
- this.width = "95vw";
1717
- }
1718
- toggleCode() {
1719
- this.dialog.openDialog();
1720
- }
1721
- onClose() {
1722
- this.dialog.closeDialog();
1723
- }
1724
- static {
1725
- this.ɵfac = i09.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i09, type: _DocPageCodeModalComponent, deps: [{ token: i14.EuiAppShellService }], target: i09.ɵɵFactoryTarget.Component });
1726
- }
1727
- static {
1728
- this.ɵcmp = i09.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageCodeModalComponent, selector: "eui-showcase-doc-page-code-modal", inputs: { width: "width" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i09, template: '<button type="button" euiButton euiAccent (click)="toggleCode()">\n <span euiLabel>Check the code</span>\n <span euiIcon iconClass="eui-icon eui-icon-code"></span>\n</button>\n\n<eui-dialog #dialog title="Page source code" [hasFooter]="false" (close)="onClose()" [width]="width">\n <ng-content></ng-content>\n</eui-dialog>\n', dependencies: [{ kind: "component", type: i25.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i35.EuiDialogComponent, selector: "eui-dialog", inputs: ["e2eAttr", "title", "acceptLabel", "dismissLabel", "typeClass", "verticalPosition", "width", "height", "isFullScreen", "hasCloseButton", "hasAcceptButton", "hasDismissButton", "hasMobileCustomSize", "isClosedOnClickOutside", "isClosedOnEscape", "isHandleCloseOnDismiss", "isHandleCloseOnClose", "isHandleCloseOnAccept", "isHandleCloseOnClickOutside", "isHandleCloseOnEscape", "isMessageBox", "isDraggable", "hasNoBodyPadding", "hasFooter"], outputs: ["clickOutside", "escape", "dialogOpen", "dialogClose", "dismiss", "accept"] }, { kind: "component", type: i44.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i54.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }] });
1729
- }
1730
- };
1731
- i09.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i09, type: DocPageCodeModalComponent, decorators: [{
1732
- type: Component7,
1733
- args: [{ selector: "eui-showcase-doc-page-code-modal", template: '<button type="button" euiButton euiAccent (click)="toggleCode()">\n <span euiLabel>Check the code</span>\n <span euiIcon iconClass="eui-icon eui-icon-code"></span>\n</button>\n\n<eui-dialog #dialog title="Page source code" [hasFooter]="false" (close)="onClose()" [width]="width">\n <ng-content></ng-content>\n</eui-dialog>\n' }]
1734
- }], ctorParameters: () => [{ type: i14.EuiAppShellService }], propDecorators: { width: [{
1735
- type: Input6
1736
- }], dialog: [{
1737
- type: ViewChild2,
1738
- args: ["dialog"]
1739
- }] } });
1740
-
1741
- // lib/components/doc-page-code-fab/doc-page-code-fab.component.mjs
1742
- import { Component as Component8, Input as Input7, ViewChild as ViewChild3 } from "@angular/core";
1743
- import * as i010 from "@angular/core";
1744
- import * as i15 from "@eui/core";
1745
- import * as i26 from "@angular/common";
1746
- import * as i36 from "@eui/components/eui-button";
1747
- import * as i45 from "@eui/components/eui-dialog";
1748
- import * as i55 from "@eui/components/eui-icon";
1749
- var DocPageCodeFabComponent = class _DocPageCodeFabComponent {
1750
- constructor(asService) {
1751
- this.asService = asService;
1752
- this.codeFolder = "";
1753
- this.showcase = "ux-patterns";
1754
- }
1755
- toggleCode() {
1756
- this.dialog.openDialog();
1757
- }
1758
- onClose() {
1759
- this.dialog.closeDialog();
1760
- }
1761
- onOpenCode() {
1762
- const sourceRootPath = `https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-${this.showcase}/browse/src/app/features/`;
1763
- window.open(sourceRootPath + this.codeFolder, "_blank");
1764
- }
1765
- static {
1766
- this.ɵfac = i010.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i010, type: _DocPageCodeFabComponent, deps: [{ token: i15.EuiAppShellService }], target: i010.ɵɵFactoryTarget.Component });
1767
- }
1768
- static {
1769
- this.ɵcmp = i010.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPageCodeFabComponent, selector: "eui-showcase-doc-page-code-fab", inputs: { codeFolder: "codeFolder", showcase: "showcase" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i010, template: `<div class="eui-button-fixed">
1770
- <div class="eui-button-floating eui-button--size-2xl eui-button--icon-only eui-button--accent">
1771
- <span class="eui-icon eui-icon-code" (click)="toggleCode()"></span>
1772
- </div>
1773
- </div>
1774
-
1775
- <eui-dialog #dialog title="Page source code" [hasFooter]="false" (close)="onClose()" [width]="'50vw'">
1776
- <button type="button" *ngIf="codeFolder" euiButton euiAccent euiSizeS (click)="onOpenCode()">
1777
- <eui-icon-svg icon="eui-code" set="eui" size="m" fillColor="grey-100" class="eui-u-mr-xs"></eui-icon-svg> VIEW SOURCES
1778
- </button>
1779
- <ng-content></ng-content>
1780
- <p class="eui-u-text-paragraph">Use the <kbd class="eui-u-text-kbd">View sources</kbd> button to access the code source of the page.</p>
1781
- </eui-dialog>
1782
- `, dependencies: [{ kind: "directive", type: i26.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i36.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i45.EuiDialogComponent, selector: "eui-dialog", inputs: ["e2eAttr", "title", "acceptLabel", "dismissLabel", "typeClass", "verticalPosition", "width", "height", "isFullScreen", "hasCloseButton", "hasAcceptButton", "hasDismissButton", "hasMobileCustomSize", "isClosedOnClickOutside", "isClosedOnEscape", "isHandleCloseOnDismiss", "isHandleCloseOnClose", "isHandleCloseOnAccept", "isHandleCloseOnClickOutside", "isHandleCloseOnEscape", "isMessageBox", "isDraggable", "hasNoBodyPadding", "hasFooter"], outputs: ["clickOutside", "escape", "dialogOpen", "dialogClose", "dismiss", "accept"] }, { kind: "component", type: i55.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }] });
1783
- }
1784
- };
1785
- i010.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i010, type: DocPageCodeFabComponent, decorators: [{
1786
- type: Component8,
1787
- args: [{ selector: "eui-showcase-doc-page-code-fab", template: `<div class="eui-button-fixed">
1788
- <div class="eui-button-floating eui-button--size-2xl eui-button--icon-only eui-button--accent">
1789
- <span class="eui-icon eui-icon-code" (click)="toggleCode()"></span>
1790
- </div>
1791
- </div>
1792
-
1793
- <eui-dialog #dialog title="Page source code" [hasFooter]="false" (close)="onClose()" [width]="'50vw'">
1794
- <button type="button" *ngIf="codeFolder" euiButton euiAccent euiSizeS (click)="onOpenCode()">
1795
- <eui-icon-svg icon="eui-code" set="eui" size="m" fillColor="grey-100" class="eui-u-mr-xs"></eui-icon-svg> VIEW SOURCES
1796
- </button>
1797
- <ng-content></ng-content>
1798
- <p class="eui-u-text-paragraph">Use the <kbd class="eui-u-text-kbd">View sources</kbd> button to access the code source of the page.</p>
1799
- </eui-dialog>
1800
- ` }]
1801
- }], ctorParameters: () => [{ type: i15.EuiAppShellService }], propDecorators: { codeFolder: [{
1802
- type: Input7
1803
- }], showcase: [{
1804
- type: Input7
1805
- }], dialog: [{
1806
- type: ViewChild3,
1807
- args: ["dialog"]
1808
- }] } });
1809
-
1810
- // lib/components/lorem-ipsum/lorem-ipsum-sample.component.mjs
1811
- import { Component as Component9, Input as Input8 } from "@angular/core";
1812
- import * as i011 from "@angular/core";
1813
- import * as i16 from "@angular/common";
1814
- var LoremIpsumSampleComponent = class _LoremIpsumSampleComponent {
1815
- constructor() {
1816
- this.textSize = "large";
1817
- }
1818
- static {
1819
- this.ɵfac = i011.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i011, type: _LoremIpsumSampleComponent, deps: [], target: i011.ɵɵFactoryTarget.Component });
1820
- }
1821
- static {
1822
- this.ɵcmp = i011.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _LoremIpsumSampleComponent, selector: "eui-showcase-doc-lorem-ipsum", inputs: { textSize: "textSize" }, ngImport: i011, template: `<div *ngIf="textSize === 'small'">
1823
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis
1824
- malesuada. Etiam vulputate quam at consectetur pharetra.
1825
-
1826
- <div class="eui-u-mb-m">
1827
- Nunc sit amet lectus mattis, aliquam mi quis, iaculis est. Donec nec diam tristique, egestas lorem nec, varius neque. Aenean
1828
- consequat nisi in sem porttitor, a eleifend lorem tincidunt. Phasellus scelerisque tellus eu imperdiet dictum.
1829
- </div>
1830
- <div class="eui-u-mb-m">
1831
- Sed vitae tellus ac nisl facilisis posuere. Mauris cursus dui nec arcu molestie sodales. Morbi vel enim semper, luctus odio vitae,
1832
- lacinia nisl. Sed sollicitudin ex et nibh bibendum, id blandit nunc pretium. Nunc venenatis eros a leo tincidunt gravida.
1833
- </div>
1834
- <div class="eui-u-mb-m">Etiam pulvinar leo sit amet sapien pharetra, porta laoreet tellus consequat.</div>
1835
- </div>
1836
-
1837
- <div *ngIf="textSize === 'medium'">
1838
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis
1839
- malesuada. Etiam vulputate quam at consectetur pharetra.
1840
-
1841
- <div class="eui-u-mb-m">
1842
- Duis vitae nibh iaculis augue fermentum placerat vel vitae lectus. Curabitur venenatis eros at eros ultrices, eu feugiat eros
1843
- efficitur. Sed quis nulla non augue scelerisque gravida vitae sed neque. Quisque semper dolor non diam sodales suscipit.
1844
- </div>
1845
- <div class="eui-u-mb-m">
1846
- Donec ut tortor scelerisque, sodales neque id, tempor orci. Suspendisse eu augue at nibh egestas eleifend. Ut tristique enim in
1847
- lectus aliquam, non tincidunt tortor vulputate. Phasellus eu nunc faucibus, porta ante nec, malesuada erat.
1848
- </div>
1849
- <div class="eui-u-mb-m">
1850
- Vestibulum hendrerit risus a libero gravida venenatis. Mauris non enim sit amet odio pellentesque scelerisque in et velit. Quisque
1851
- efficitur eros ut magna rutrum aliquet. Curabitur et nisi ullamcorper, pellentesque ligula vel, congue dui. Nullam commodo mi quis
1852
- nibh euismod interdum. In rutrum sapien ac viverra pretium.
1853
- </div>
1854
- <div class="eui-u-mb-m">
1855
- Ut eget tellus a magna fermentum tempor at id erat. Nam fringilla eros sed leo facilisis, et mollis orci elementum. Donec
1856
- consectetur libero sed arcu rhoncus, vel elementum augue mollis. Cras facilisis nisl mollis imperdiet mollis.
1857
- </div>
1858
- <div class="eui-u-mb-m">
1859
- Sed pharetra lorem in justo rhoncus tempor. Phasellus vel elit eget massa consectetur porttitor eu ut ex. Donec sed ex sit amet
1860
- purus blandit pharetra. Nam rhoncus dolor ac felis condimentum malesuada.
1861
- </div>
1862
- <div class="eui-u-mb-m">
1863
- Pellentesque convallis nulla in lectus molestie mollis. Pellentesque auctor libero eget dolor vehicula, a suscipit nunc laoreet.
1864
- Nulla suscipit ante in sollicitudin semper.
1865
- </div>
1866
- <div class="eui-u-mb-m">Nullam rutrum ante vitae metus interdum, quis laoreet sem maximus.</div>
1867
- <div class="eui-u-mb-m">
1868
- Pellentesque gravida diam quis orci suscipit hendrerit. Vestibulum congue sapien sed pretium gravida. Nullam ornare lectus sed
1869
- pulvinar fringilla. Nam dictum eros sit amet lectus aliquet tincidunt. Quisque eu augue eget felis tincidunt hendrerit. Aenean vel
1870
- lorem vel sem consequat congue.
1871
- </div>
1872
- <div class="eui-u-mb-m">Phasellus finibus libero at blandit sollicitudin. Praesent pulvinar libero a lorem scelerisque sodales.</div>
1873
- <div class="eui-u-mb-m">Donec tempor quam eget turpis dignissim egestas. Pellentesque vulputate nisi eu ornare euismod.</div>
1874
- </div>
1875
-
1876
- <div *ngIf="textSize === 'large'">
1877
- <div class="eui-u-mb-m">
1878
- Lorem ipsum dolor sit amet consectetur. Nec maecenas turpis eget curabitur. Neque accumsan nulla vestibulum vulputate. Etiam lorem
1879
- sit leo aliquam. Penatibus suspendisse sit in metus sodales pretium erat tempor. Congue aliquam varius nec pellentesque. Diam
1880
- tincidunt neque aliquam a natoque egestas nibh in urna. Volutpat enim erat magna sociis blandit odio ut convallis. Montes blandit
1881
- maecenas pellentesque magna. Ipsum at porta justo massa aliquet vulputate sit. Nec non semper urna morbi nec ut in eu. Tristique
1882
- morbi nam tempus id.
1883
- </div>
1884
- <div class="eui-u-mb-m">
1885
- Amet eu phasellus dignissim lacus. Pellentesque tristique sed leo eu mattis quam ut sem sed. Id lacus erat urna arcu ac risus
1886
- sodales. Scelerisque risus auctor erat mattis habitant facilisis. Orci velit nunc fermentum condimentum volutpat. Nec tellus at
1887
- risus cras. Malesuada ultrices vestibulum arcu sagittis quis purus. Sit ultricies suspendisse ante augue malesuada mattis eget
1888
- fermentum et. Lobortis et ridiculus turpis elit a mi faucibus. Sit vitae nunc etiam euismod massa nisi nibh arcu nulla. Elit ipsum
1889
- lorem vestibulum nulla senectus curabitur. Turpis non eu eu rhoncus. Dictum porttitor pulvinar commodo nec sapien est at erat et.
1890
- Nisl pellentesque pellentesque tempus tristique commodo eget urna tempor. Porta mi accumsan senectus risus eget.
1891
- </div>
1892
- <div class="eui-u-mb-m">
1893
- Velit vulputate amet id tellus. Quam aliquet eros hendrerit cursus id et amet in nam. Eget elementum diam ut magna porttitor. Cursus
1894
- neque vulputate malesuada congue enim. Ac in sed et justo adipiscing habitasse elit tincidunt dictum. Dui ornare ac ligula duis. Sit
1895
- mi a eu dictum est magna morbi. Morbi hendrerit non senectus sit platea gravida id. Fermentum vulputate arcu pretium cras elit.
1896
- </div>
1897
- <div class="eui-u-mb-m">
1898
- Enim et nunc eget ac commodo sagittis. Turpis facilisi enim enim nisi eu sed. Amet viverra felis in ac orci ullamcorper. At
1899
- ridiculus enim nec velit nulla luctus lorem non ultricies. Urna gravida sem curabitur quis diam ut porttitor aliquam sapien. Id
1900
- adipiscing libero feugiat imperdiet senectus mattis non nulla condimentum.
1901
- </div>
1902
- <div class="eui-u-mb-m">
1903
- Etiam felis parturient et amet. Enim neque eu risus ante tristique nisl nisl vulputate. Arcu turpis semper vitae ultrices sit
1904
- ultrices. Sed arcu pharetra vel sapien in. Turpis vestibulum tellus quis arcu egestas viverra cursus quisque. Eu volutpat mauris
1905
- sagittis integer fermentum fringilla penatibus. Velit et quis et arcu velit tortor.
1906
- </div>
1907
- <div class="eui-u-mb-m">
1908
- Nisl fringilla nibh eu nunc pellentesque dignissim vestibulum mus porttitor. Consequat non eu nulla lectus ultrices. Viverra duis
1909
- enim aliquet ut massa laoreet consequat. Sociis dignissim sodales vitae maecenas nec aliquam. Volutpat feugiat urna id sed. In
1910
- fringilla dui neque montes ut et lorem velit consequat. Ut fermentum amet dictum proin et. Aenean odio ac quisque ultrices tellus
1911
- mattis posuere et curabitur. Proin est suspendisse iaculis nullam eros sit amet aliquam laoreet. Libero tincidunt quis et odio
1912
- imperdiet risus neque. Odio et dui duis odio accumsan. Lacus nibh urna at risus euismod lobortis cursus. Porta risus mi gravida
1913
- aliquet. Leo viverra diam vulputate sollicitudin cursus erat sed.
1914
- </div>
1915
- <div class="eui-u-mb-m">
1916
- Erat consectetur sem nulla sed viverra ipsum adipiscing nunc. Porttitor eget sodales integer maecenas tortor quam sit pharetra
1917
- lorem. Egestas ut mauris urna vitae a mollis. Nam cursus amet sit dolor. Mattis mattis laoreet sed massa proin tristique ullamcorper
1918
- commodo. Sit in tortor posuere nec lorem fringilla.
1919
- </div>
1920
- <div class="eui-u-mb-m">
1921
- Fringilla elementum quisque vitae pharetra risus pellentesque eu nulla. Enim egestas velit est tempor ut vulputate tellus tincidunt
1922
- ut. Non enim lorem nec in mattis. Vitae nulla vitae lectus varius aliquet massa lectus morbi. Placerat vel consectetur commodo nibh
1923
- ullamcorper vitae tellus sed. Nisi lacus quis at malesuada elementum. Turpis et ut egestas adipiscing et ac. Auctor aliquam dictum
1924
- dolor diam sit tellus tempus. Elementum venenatis arcu id a. Duis imperdiet id elementum tempor facilisis rhoncus rhoncus posuere
1925
- egestas. Imperdiet odio lorem posuere sit. Molestie amet quisque tellus phasellus nisi. Lobortis mi faucibus elit semper. Ipsum eu
1926
- adipiscing fringilla at felis maecenas. Egestas tortor odio laoreet neque.
1927
- </div>
1928
- <div class="eui-u-mb-m">
1929
- Sollicitudin rhoncus nunc ultricies lorem massa sagittis integer elit. Consequat mauris elementum sed imperdiet libero odio non
1930
- amet. Tortor condimentum non convallis posuere pulvinar. Neque malesuada volutpat sit quis. Ac justo gravida vitae mollis. Ut tellus
1931
- nunc ultrices egestas vitae tellus sed. Pellentesque nunc id quisque scelerisque et pellentesque eu ultricies.
1932
- </div>
1933
- <div class="eui-u-mb-m">
1934
- Dolor rhoncus tempor netus sit mauris. Turpis curabitur amet eu lectus sem habitant magna non. Eros lorem eu lectus proin venenatis
1935
- tellus. Velit praesent consectetur ligula venenatis magna sed dictum. Quisque vivamus ipsum mattis morbi pulvinar bibendum. Netus
1936
- risus sit adipiscing augue augue eget est.
1937
- </div>
1938
- <div class="eui-u-mb-m">
1939
- Justo feugiat duis fames in luctus elit. Sit id in turpis quam habitasse amet ut sed sem. Ut luctus amet sit lacinia sed eu sed a
1940
- senectus. Fusce gravida augue quis bibendum aliquet. Quam egestas quam iaculis urna condimentum amet. Odio aliquam massa vel
1941
- vestibulum tincidunt dolor tincidunt netus facilisi. Ut sociis metus pellentesque leo amet. Diam lectus pretium id tincidunt
1942
- habitasse. Eget tortor quisque tristique scelerisque quam vestibulum morbi ornare pellentesque. Nunc eget volutpat id mauris amet ut
1943
- aliquet nunc dictumst. Elit blandit a suspendisse commodo. Velit quis ut varius leo pharetra risus leo eget.
1944
- </div>
1945
- <div class="eui-u-mb-m">
1946
- Consequat phasellus ullamcorper mauris id tortor ultrices nunc. Lacinia eu sapien rhoncus lacinia sed augue justo molestie ornare.
1947
- Integer ridiculus gravida pulvinar iaculis nisl eleifend senectus. Imperdiet vitae orci massa ac eget etiam est nulla. Netus nibh
1948
- ipsum auctor eros nunc aliquam enim. Donec pretium vel amet blandit sed quisque sed. Tempor ipsum nunc leo ultricies ut. Odio tellus
1949
- ultricies diam cras. Diam maecenas amet gravida nunc. Feugiat egestas eget ullamcorper consequat. Varius faucibus nisl dolor dolor
1950
- diam ultrices odio iaculis lorem. Egestas tristique est egestas ornare. Tortor eu orci orci posuere blandit amet sit semper
1951
- pharetra. Sed dictumst dolor phasellus urna nisl auctor sit in vulputate.
1952
- </div>
1953
- </div>
1954
- <div class="eui-u-font-xs eui-u-color-info-100">&lt;end of content&gt; &mdash; This last line must always be visible.</div>
1955
- `, dependencies: [{ kind: "directive", type: i16.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1956
- }
1957
- };
1958
- i011.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i011, type: LoremIpsumSampleComponent, decorators: [{
1959
- type: Component9,
1960
- args: [{ selector: "eui-showcase-doc-lorem-ipsum", template: `<div *ngIf="textSize === 'small'">
1961
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis
1962
- malesuada. Etiam vulputate quam at consectetur pharetra.
1963
-
1964
- <div class="eui-u-mb-m">
1965
- Nunc sit amet lectus mattis, aliquam mi quis, iaculis est. Donec nec diam tristique, egestas lorem nec, varius neque. Aenean
1966
- consequat nisi in sem porttitor, a eleifend lorem tincidunt. Phasellus scelerisque tellus eu imperdiet dictum.
1967
- </div>
1968
- <div class="eui-u-mb-m">
1969
- Sed vitae tellus ac nisl facilisis posuere. Mauris cursus dui nec arcu molestie sodales. Morbi vel enim semper, luctus odio vitae,
1970
- lacinia nisl. Sed sollicitudin ex et nibh bibendum, id blandit nunc pretium. Nunc venenatis eros a leo tincidunt gravida.
1971
- </div>
1972
- <div class="eui-u-mb-m">Etiam pulvinar leo sit amet sapien pharetra, porta laoreet tellus consequat.</div>
1973
- </div>
1974
-
1975
- <div *ngIf="textSize === 'medium'">
1976
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis
1977
- malesuada. Etiam vulputate quam at consectetur pharetra.
1978
-
1979
- <div class="eui-u-mb-m">
1980
- Duis vitae nibh iaculis augue fermentum placerat vel vitae lectus. Curabitur venenatis eros at eros ultrices, eu feugiat eros
1981
- efficitur. Sed quis nulla non augue scelerisque gravida vitae sed neque. Quisque semper dolor non diam sodales suscipit.
1982
- </div>
1983
- <div class="eui-u-mb-m">
1984
- Donec ut tortor scelerisque, sodales neque id, tempor orci. Suspendisse eu augue at nibh egestas eleifend. Ut tristique enim in
1985
- lectus aliquam, non tincidunt tortor vulputate. Phasellus eu nunc faucibus, porta ante nec, malesuada erat.
1986
- </div>
1987
- <div class="eui-u-mb-m">
1988
- Vestibulum hendrerit risus a libero gravida venenatis. Mauris non enim sit amet odio pellentesque scelerisque in et velit. Quisque
1989
- efficitur eros ut magna rutrum aliquet. Curabitur et nisi ullamcorper, pellentesque ligula vel, congue dui. Nullam commodo mi quis
1990
- nibh euismod interdum. In rutrum sapien ac viverra pretium.
1991
- </div>
1992
- <div class="eui-u-mb-m">
1993
- Ut eget tellus a magna fermentum tempor at id erat. Nam fringilla eros sed leo facilisis, et mollis orci elementum. Donec
1994
- consectetur libero sed arcu rhoncus, vel elementum augue mollis. Cras facilisis nisl mollis imperdiet mollis.
1995
- </div>
1996
- <div class="eui-u-mb-m">
1997
- Sed pharetra lorem in justo rhoncus tempor. Phasellus vel elit eget massa consectetur porttitor eu ut ex. Donec sed ex sit amet
1998
- purus blandit pharetra. Nam rhoncus dolor ac felis condimentum malesuada.
1999
- </div>
2000
- <div class="eui-u-mb-m">
2001
- Pellentesque convallis nulla in lectus molestie mollis. Pellentesque auctor libero eget dolor vehicula, a suscipit nunc laoreet.
2002
- Nulla suscipit ante in sollicitudin semper.
2003
- </div>
2004
- <div class="eui-u-mb-m">Nullam rutrum ante vitae metus interdum, quis laoreet sem maximus.</div>
2005
- <div class="eui-u-mb-m">
2006
- Pellentesque gravida diam quis orci suscipit hendrerit. Vestibulum congue sapien sed pretium gravida. Nullam ornare lectus sed
2007
- pulvinar fringilla. Nam dictum eros sit amet lectus aliquet tincidunt. Quisque eu augue eget felis tincidunt hendrerit. Aenean vel
2008
- lorem vel sem consequat congue.
2009
- </div>
2010
- <div class="eui-u-mb-m">Phasellus finibus libero at blandit sollicitudin. Praesent pulvinar libero a lorem scelerisque sodales.</div>
2011
- <div class="eui-u-mb-m">Donec tempor quam eget turpis dignissim egestas. Pellentesque vulputate nisi eu ornare euismod.</div>
2012
- </div>
2013
-
2014
- <div *ngIf="textSize === 'large'">
2015
- <div class="eui-u-mb-m">
2016
- Lorem ipsum dolor sit amet consectetur. Nec maecenas turpis eget curabitur. Neque accumsan nulla vestibulum vulputate. Etiam lorem
2017
- sit leo aliquam. Penatibus suspendisse sit in metus sodales pretium erat tempor. Congue aliquam varius nec pellentesque. Diam
2018
- tincidunt neque aliquam a natoque egestas nibh in urna. Volutpat enim erat magna sociis blandit odio ut convallis. Montes blandit
2019
- maecenas pellentesque magna. Ipsum at porta justo massa aliquet vulputate sit. Nec non semper urna morbi nec ut in eu. Tristique
2020
- morbi nam tempus id.
2021
- </div>
2022
- <div class="eui-u-mb-m">
2023
- Amet eu phasellus dignissim lacus. Pellentesque tristique sed leo eu mattis quam ut sem sed. Id lacus erat urna arcu ac risus
2024
- sodales. Scelerisque risus auctor erat mattis habitant facilisis. Orci velit nunc fermentum condimentum volutpat. Nec tellus at
2025
- risus cras. Malesuada ultrices vestibulum arcu sagittis quis purus. Sit ultricies suspendisse ante augue malesuada mattis eget
2026
- fermentum et. Lobortis et ridiculus turpis elit a mi faucibus. Sit vitae nunc etiam euismod massa nisi nibh arcu nulla. Elit ipsum
2027
- lorem vestibulum nulla senectus curabitur. Turpis non eu eu rhoncus. Dictum porttitor pulvinar commodo nec sapien est at erat et.
2028
- Nisl pellentesque pellentesque tempus tristique commodo eget urna tempor. Porta mi accumsan senectus risus eget.
2029
- </div>
2030
- <div class="eui-u-mb-m">
2031
- Velit vulputate amet id tellus. Quam aliquet eros hendrerit cursus id et amet in nam. Eget elementum diam ut magna porttitor. Cursus
2032
- neque vulputate malesuada congue enim. Ac in sed et justo adipiscing habitasse elit tincidunt dictum. Dui ornare ac ligula duis. Sit
2033
- mi a eu dictum est magna morbi. Morbi hendrerit non senectus sit platea gravida id. Fermentum vulputate arcu pretium cras elit.
2034
- </div>
2035
- <div class="eui-u-mb-m">
2036
- Enim et nunc eget ac commodo sagittis. Turpis facilisi enim enim nisi eu sed. Amet viverra felis in ac orci ullamcorper. At
2037
- ridiculus enim nec velit nulla luctus lorem non ultricies. Urna gravida sem curabitur quis diam ut porttitor aliquam sapien. Id
2038
- adipiscing libero feugiat imperdiet senectus mattis non nulla condimentum.
2039
- </div>
2040
- <div class="eui-u-mb-m">
2041
- Etiam felis parturient et amet. Enim neque eu risus ante tristique nisl nisl vulputate. Arcu turpis semper vitae ultrices sit
2042
- ultrices. Sed arcu pharetra vel sapien in. Turpis vestibulum tellus quis arcu egestas viverra cursus quisque. Eu volutpat mauris
2043
- sagittis integer fermentum fringilla penatibus. Velit et quis et arcu velit tortor.
2044
- </div>
2045
- <div class="eui-u-mb-m">
2046
- Nisl fringilla nibh eu nunc pellentesque dignissim vestibulum mus porttitor. Consequat non eu nulla lectus ultrices. Viverra duis
2047
- enim aliquet ut massa laoreet consequat. Sociis dignissim sodales vitae maecenas nec aliquam. Volutpat feugiat urna id sed. In
2048
- fringilla dui neque montes ut et lorem velit consequat. Ut fermentum amet dictum proin et. Aenean odio ac quisque ultrices tellus
2049
- mattis posuere et curabitur. Proin est suspendisse iaculis nullam eros sit amet aliquam laoreet. Libero tincidunt quis et odio
2050
- imperdiet risus neque. Odio et dui duis odio accumsan. Lacus nibh urna at risus euismod lobortis cursus. Porta risus mi gravida
2051
- aliquet. Leo viverra diam vulputate sollicitudin cursus erat sed.
2052
- </div>
2053
- <div class="eui-u-mb-m">
2054
- Erat consectetur sem nulla sed viverra ipsum adipiscing nunc. Porttitor eget sodales integer maecenas tortor quam sit pharetra
2055
- lorem. Egestas ut mauris urna vitae a mollis. Nam cursus amet sit dolor. Mattis mattis laoreet sed massa proin tristique ullamcorper
2056
- commodo. Sit in tortor posuere nec lorem fringilla.
2057
- </div>
2058
- <div class="eui-u-mb-m">
2059
- Fringilla elementum quisque vitae pharetra risus pellentesque eu nulla. Enim egestas velit est tempor ut vulputate tellus tincidunt
2060
- ut. Non enim lorem nec in mattis. Vitae nulla vitae lectus varius aliquet massa lectus morbi. Placerat vel consectetur commodo nibh
2061
- ullamcorper vitae tellus sed. Nisi lacus quis at malesuada elementum. Turpis et ut egestas adipiscing et ac. Auctor aliquam dictum
2062
- dolor diam sit tellus tempus. Elementum venenatis arcu id a. Duis imperdiet id elementum tempor facilisis rhoncus rhoncus posuere
2063
- egestas. Imperdiet odio lorem posuere sit. Molestie amet quisque tellus phasellus nisi. Lobortis mi faucibus elit semper. Ipsum eu
2064
- adipiscing fringilla at felis maecenas. Egestas tortor odio laoreet neque.
2065
- </div>
2066
- <div class="eui-u-mb-m">
2067
- Sollicitudin rhoncus nunc ultricies lorem massa sagittis integer elit. Consequat mauris elementum sed imperdiet libero odio non
2068
- amet. Tortor condimentum non convallis posuere pulvinar. Neque malesuada volutpat sit quis. Ac justo gravida vitae mollis. Ut tellus
2069
- nunc ultrices egestas vitae tellus sed. Pellentesque nunc id quisque scelerisque et pellentesque eu ultricies.
2070
- </div>
2071
- <div class="eui-u-mb-m">
2072
- Dolor rhoncus tempor netus sit mauris. Turpis curabitur amet eu lectus sem habitant magna non. Eros lorem eu lectus proin venenatis
2073
- tellus. Velit praesent consectetur ligula venenatis magna sed dictum. Quisque vivamus ipsum mattis morbi pulvinar bibendum. Netus
2074
- risus sit adipiscing augue augue eget est.
2075
- </div>
2076
- <div class="eui-u-mb-m">
2077
- Justo feugiat duis fames in luctus elit. Sit id in turpis quam habitasse amet ut sed sem. Ut luctus amet sit lacinia sed eu sed a
2078
- senectus. Fusce gravida augue quis bibendum aliquet. Quam egestas quam iaculis urna condimentum amet. Odio aliquam massa vel
2079
- vestibulum tincidunt dolor tincidunt netus facilisi. Ut sociis metus pellentesque leo amet. Diam lectus pretium id tincidunt
2080
- habitasse. Eget tortor quisque tristique scelerisque quam vestibulum morbi ornare pellentesque. Nunc eget volutpat id mauris amet ut
2081
- aliquet nunc dictumst. Elit blandit a suspendisse commodo. Velit quis ut varius leo pharetra risus leo eget.
2082
- </div>
2083
- <div class="eui-u-mb-m">
2084
- Consequat phasellus ullamcorper mauris id tortor ultrices nunc. Lacinia eu sapien rhoncus lacinia sed augue justo molestie ornare.
2085
- Integer ridiculus gravida pulvinar iaculis nisl eleifend senectus. Imperdiet vitae orci massa ac eget etiam est nulla. Netus nibh
2086
- ipsum auctor eros nunc aliquam enim. Donec pretium vel amet blandit sed quisque sed. Tempor ipsum nunc leo ultricies ut. Odio tellus
2087
- ultricies diam cras. Diam maecenas amet gravida nunc. Feugiat egestas eget ullamcorper consequat. Varius faucibus nisl dolor dolor
2088
- diam ultrices odio iaculis lorem. Egestas tristique est egestas ornare. Tortor eu orci orci posuere blandit amet sit semper
2089
- pharetra. Sed dictumst dolor phasellus urna nisl auctor sit in vulputate.
2090
- </div>
2091
- </div>
2092
- <div class="eui-u-font-xs eui-u-color-info-100">&lt;end of content&gt; &mdash; This last line must always be visible.</div>
2093
- ` }]
2094
- }], propDecorators: { textSize: [{
2095
- type: Input8
2096
- }] } });
2097
-
2098
- // lib/components/playground/playground.component.mjs
2099
- import { Component as Component10, ElementRef as ElementRef2, inject as inject2, Input as Input9, ViewChild as ViewChild4 } from "@angular/core";
2100
- import sdk2 from "@stackblitz/sdk";
2101
- import * as i012 from "@angular/core";
2102
- import * as i17 from "@eui/components/eui-block-content";
2103
- var PlaygroundComponent = class _PlaygroundComponent {
2104
- constructor() {
2105
- this.title = "eUI Playground";
2106
- this.activated = false;
2107
- this.isLoaded = false;
2108
- this.sb = inject2(StackblitzService);
2109
- }
2110
- ngOnChanges(changes) {
2111
- if (changes.activated) {
2112
- if (changes.activated.currentValue) {
2113
- this.initStackblitz();
2114
- } else {
1144
+ toggleCode() {
1145
+ this.isCodeExpanded = !this.isCodeExpanded;
1146
+ }
1147
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1148
+ isDefined(object) {
1149
+ return object;
1150
+ }
1151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeComponent, selector: "eui-showcase-doc-section-code", inputs: { label: "label", content: "content", styleClass: "styleClass", versionLabel: "versionLabel", isDeprecated: "isDeprecated", isCodeExpanded: "isCodeExpanded" }, queries: [{ propertyName: "sectionDescription", first: true, predicate: i0.forwardRef(() => DocSectionCodeDescriptionTagDirective), descendants: true }, { propertyName: "sectionCodeHTML", first: true, predicate: i0.forwardRef(() => DocSectionCodeHtmlTagDirective), descendants: true }, { propertyName: "sectionCodeTS", first: true, predicate: i0.forwardRef(() => DocSectionCodeTsTagDirective), descendants: true }, { propertyName: "sectionCodeSERVICE", first: true, predicate: i0.forwardRef(() => DocSectionCodeServiceTagDirective), descendants: true }, { propertyName: "sectionCodeCSS", first: true, predicate: i0.forwardRef(() => DocSectionCodeCssTagDirective), descendants: true }, { propertyName: "sectionCodeDOC", first: true, predicate: i0.forwardRef(() => DocSectionCodeDocTagDirective), descendants: true }], ngImport: i0, template: "<h5 class=\"section-title {{ styleClass }}\">\n <div class=\"eui-u-flex eui-u-flex-justify-content-between\">\n <div [class.app-section-code--deprecated]=\"isDeprecated\">\n {{ label }}\n </div>\n <div class=\"ml-auto\">\n <span *ngIf=\"versionLabel\" class=\"eui-u-color-danger\">{{ versionLabel }}</span>\n <button type=\"button\" euiButton [euiOutline]=\"!isCodeExpanded\" euiPrimary euiSizeS (click)=\"toggleCode()\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n </div>\n <div *ngIf=\"isDeprecated\">\n <small class=\"eui-u-color-danger\">Deprecated in 3.x</small>\n </div>\n</h5>\n\n<div class=\"eui-u-mv\" *ngIf=\"sectionDescription\">\n <ng-content select=\"sectionDescription\"></ng-content>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-tabs>\n <eui-tab [isVisible]=\"isDefined(sectionCodeHTML)\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode><ng-content select=\"sectionCodeHTML\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeTS)\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode><ng-content select=\"sectionCodeTS\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeSERVICE)\">\n <euiTabLabel>Service</euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode><ng-content select=\"sectionCodeSERVICE\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeCSS)\">\n <euiTabLabel>CSS</euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode><ng-content select=\"sectionCodeCSS\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeDOC)\">\n <euiTabLabel>\n DOC\n <euiTabSubLabel>Documentation</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <div class=\"language-doc\">\n <ng-content select=\"sectionCodeDOC\"></ng-content>\n </div>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n <ng-template [ngIf]=\"!sectionCodeHTML && !sectionCodeTS && !sectionCodeCSS\">\n <pre class=\"only-html\"><code class=\"language-markup\" euiCode><ng-content></ng-content></code></pre>\n </ng-template>\n</ng-template>\n", styles: [".eui-showcase-doc-section-code--deprecated{color:red;text-decoration:line-through}.language-doc{background-color:#f5f8fb;border-left:10px solid #358ccb;box-shadow:-1px 0 #358ccb,0 0 0 1px #dfdfdf;display:block;height:inherit;max-height:inherit;overflow:auto;padding:1rem;position:relative}.first-section{margin-top:0;padding-top:10px}\n"], dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i9.EuiTabsComponent, selector: "eui-tabs", inputs: ["tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i9.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i9.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i9.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i9.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }] }); }
1153
+ }
1154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeComponent, decorators: [{
1155
+ type: Component,
1156
+ args: [{ selector: 'eui-showcase-doc-section-code', template: "<h5 class=\"section-title {{ styleClass }}\">\n <div class=\"eui-u-flex eui-u-flex-justify-content-between\">\n <div [class.app-section-code--deprecated]=\"isDeprecated\">\n {{ label }}\n </div>\n <div class=\"ml-auto\">\n <span *ngIf=\"versionLabel\" class=\"eui-u-color-danger\">{{ versionLabel }}</span>\n <button type=\"button\" euiButton [euiOutline]=\"!isCodeExpanded\" euiPrimary euiSizeS (click)=\"toggleCode()\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n </div>\n <div *ngIf=\"isDeprecated\">\n <small class=\"eui-u-color-danger\">Deprecated in 3.x</small>\n </div>\n</h5>\n\n<div class=\"eui-u-mv\" *ngIf=\"sectionDescription\">\n <ng-content select=\"sectionDescription\"></ng-content>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-tabs>\n <eui-tab [isVisible]=\"isDefined(sectionCodeHTML)\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode><ng-content select=\"sectionCodeHTML\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeTS)\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode><ng-content select=\"sectionCodeTS\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeSERVICE)\">\n <euiTabLabel>Service</euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode><ng-content select=\"sectionCodeSERVICE\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeCSS)\">\n <euiTabLabel>CSS</euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode><ng-content select=\"sectionCodeCSS\"></ng-content></code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"isDefined(sectionCodeDOC)\">\n <euiTabLabel>\n DOC\n <euiTabSubLabel>Documentation</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <div class=\"language-doc\">\n <ng-content select=\"sectionCodeDOC\"></ng-content>\n </div>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n <ng-template [ngIf]=\"!sectionCodeHTML && !sectionCodeTS && !sectionCodeCSS\">\n <pre class=\"only-html\"><code class=\"language-markup\" euiCode><ng-content></ng-content></code></pre>\n </ng-template>\n</ng-template>\n", styles: [".eui-showcase-doc-section-code--deprecated{color:red;text-decoration:line-through}.language-doc{background-color:#f5f8fb;border-left:10px solid #358ccb;box-shadow:-1px 0 #358ccb,0 0 0 1px #dfdfdf;display:block;height:inherit;max-height:inherit;overflow:auto;padding:1rem;position:relative}.first-section{margin-top:0;padding-top:10px}\n"] }]
1157
+ }], propDecorators: { label: [{
1158
+ type: Input
1159
+ }], content: [{
1160
+ type: Input
1161
+ }], styleClass: [{
1162
+ type: Input
1163
+ }], versionLabel: [{
1164
+ type: Input
1165
+ }], isDeprecated: [{
1166
+ type: Input
1167
+ }], isCodeExpanded: [{
1168
+ type: Input
1169
+ }], sectionDescription: [{
1170
+ type: ContentChild,
1171
+ args: [forwardRef(() => DocSectionCodeDescriptionTagDirective)]
1172
+ }], sectionCodeHTML: [{
1173
+ type: ContentChild,
1174
+ args: [forwardRef(() => DocSectionCodeHtmlTagDirective)]
1175
+ }], sectionCodeTS: [{
1176
+ type: ContentChild,
1177
+ args: [forwardRef(() => DocSectionCodeTsTagDirective)]
1178
+ }], sectionCodeSERVICE: [{
1179
+ type: ContentChild,
1180
+ args: [forwardRef(() => DocSectionCodeServiceTagDirective)]
1181
+ }], sectionCodeCSS: [{
1182
+ type: ContentChild,
1183
+ args: [forwardRef(() => DocSectionCodeCssTagDirective)]
1184
+ }], sectionCodeDOC: [{
1185
+ type: ContentChild,
1186
+ args: [forwardRef(() => DocSectionCodeDocTagDirective)]
1187
+ }] } });
1188
+ /* eslint-disable @angular-eslint/directive-selector */
1189
+ class DocSectionCodeDescriptionTagDirective {
1190
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeDescriptionTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1191
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeDescriptionTagDirective, selector: "sectionDescription", ngImport: i0 }); }
1192
+ }
1193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeDescriptionTagDirective, decorators: [{
1194
+ type: Directive,
1195
+ args: [{ selector: 'sectionDescription' }]
1196
+ }] });
1197
+ class DocSectionCodeHtmlTagDirective {
1198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeHtmlTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1199
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeHtmlTagDirective, selector: "sectionCodeHTML", ngImport: i0 }); }
1200
+ }
1201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeHtmlTagDirective, decorators: [{
1202
+ type: Directive,
1203
+ args: [{ selector: 'sectionCodeHTML' }]
1204
+ }] });
1205
+ class DocSectionCodeTsTagDirective {
1206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeTsTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1207
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeTsTagDirective, selector: "sectionCodeTS", ngImport: i0 }); }
1208
+ }
1209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeTsTagDirective, decorators: [{
1210
+ type: Directive,
1211
+ args: [{ selector: 'sectionCodeTS' }]
1212
+ }] });
1213
+ class DocSectionCodeServiceTagDirective {
1214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeServiceTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1215
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeServiceTagDirective, selector: "sectionCodeSERVICE", ngImport: i0 }); }
1216
+ }
1217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeServiceTagDirective, decorators: [{
1218
+ type: Directive,
1219
+ args: [{ selector: 'sectionCodeSERVICE' }]
1220
+ }] });
1221
+ class DocSectionCodeCssTagDirective {
1222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeCssTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1223
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeCssTagDirective, selector: "sectionCodeCSS", ngImport: i0 }); }
1224
+ }
1225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeCssTagDirective, decorators: [{
1226
+ type: Directive,
1227
+ args: [{ selector: 'sectionCodeCSS' }]
1228
+ }] });
1229
+ class DocSectionCodeDocTagDirective {
1230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeDocTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1231
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocSectionCodeDocTagDirective, selector: "sectionCodeDOC", ngImport: i0 }); }
1232
+ }
1233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocSectionCodeDocTagDirective, decorators: [{
1234
+ type: Directive,
1235
+ args: [{ selector: 'sectionCodeDOC' }]
1236
+ }] });
1237
+
1238
+ class DocPageCodeModalComponent {
1239
+ constructor(asService) {
1240
+ this.asService = asService;
1241
+ this.width = '95vw';
1242
+ }
1243
+ toggleCode() {
1244
+ this.dialog.openDialog();
1245
+ }
1246
+ onClose() {
1247
+ this.dialog.closeDialog();
1248
+ }
1249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageCodeModalComponent, deps: [{ token: i3.EuiAppShellService }], target: i0.ɵɵFactoryTarget.Component }); }
1250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocPageCodeModalComponent, selector: "eui-showcase-doc-page-code-modal", inputs: { width: "width" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<button type=\"button\" euiButton euiAccent (click)=\"toggleCode()\">\n <span euiLabel>Check the code</span>\n <eui-icon-svg icon=\"eui-code\"></eui-icon-svg>\n</button>\n\n<eui-dialog #dialog title=\"Page source code\" [hasFooter]=\"false\" (close)=\"onClose()\" [width]=\"width\">\n <ng-content></ng-content>\n</eui-dialog>\n", dependencies: [{ kind: "component", type: i2$2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3$2.EuiDialogComponent, selector: "eui-dialog", inputs: ["e2eAttr", "title", "acceptLabel", "dismissLabel", "typeClass", "verticalPosition", "width", "height", "isFullScreen", "hasCloseButton", "hasAcceptButton", "hasDismissButton", "hasMobileCustomSize", "isClosedOnClickOutside", "hasClosedOnClickOutside", "isClosedOnEscape", "hasClosedOnEscape", "isHandleCloseOnDismiss", "isHandleCloseOnClose", "isHandleCloseOnAccept", "isHandleCloseOnClickOutside", "isHandleCloseOnEscape", "isMessageBox", "isDraggable", "hasNoBodyPadding", "hasFooter"], outputs: ["clickOutside", "escape", "dialogOpen", "dialogClose", "dismiss", "accept"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }] }); }
1251
+ }
1252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageCodeModalComponent, decorators: [{
1253
+ type: Component,
1254
+ args: [{ selector: 'eui-showcase-doc-page-code-modal', template: "<button type=\"button\" euiButton euiAccent (click)=\"toggleCode()\">\n <span euiLabel>Check the code</span>\n <eui-icon-svg icon=\"eui-code\"></eui-icon-svg>\n</button>\n\n<eui-dialog #dialog title=\"Page source code\" [hasFooter]=\"false\" (close)=\"onClose()\" [width]=\"width\">\n <ng-content></ng-content>\n</eui-dialog>\n" }]
1255
+ }], ctorParameters: () => [{ type: i3.EuiAppShellService }], propDecorators: { width: [{
1256
+ type: Input
1257
+ }], dialog: [{
1258
+ type: ViewChild,
1259
+ args: ['dialog']
1260
+ }] } });
1261
+
1262
+ class DocPageCodeFabComponent {
1263
+ constructor(asService) {
1264
+ this.asService = asService;
1265
+ this.codeFolder = '';
1266
+ this.showcase = 'design-patterns';
1267
+ }
1268
+ toggleCode() {
1269
+ this.dialog.openDialog();
1270
+ }
1271
+ onClose() {
1272
+ this.dialog.closeDialog();
1273
+ }
1274
+ onOpenCode() {
1275
+ // eslint-disable-next-line max-len
1276
+ const showcaseRoot = 'https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-ux-components/browse/src/app/features';
1277
+ const sourceRootPath = `${showcaseRoot}/showcase-${this.showcase}/`;
1278
+ window.open(sourceRootPath + this.codeFolder, '_blank');
1279
+ }
1280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageCodeFabComponent, deps: [{ token: i3.EuiAppShellService }], target: i0.ɵɵFactoryTarget.Component }); }
1281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocPageCodeFabComponent, selector: "eui-showcase-doc-page-code-fab", inputs: { codeFolder: "codeFolder", showcase: "showcase" }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<div class=\"eui-button-fixed\">\n <div class=\"eui-button-floating eui-button--size-2xl eui-button--icon-only eui-u-c-bg-accent eui--accent\">\n <eui-icon-svg icon=\"eui-code\" size=\"l\" (click)=\"toggleCode()\"></eui-icon-svg>\n </div>\n</div>\n\n<eui-dialog #dialog title=\"Page source code\" [hasFooter]=\"false\" (close)=\"onClose()\" [width]=\"'50vw'\">\n <button type=\"button\" *ngIf=\"codeFolder\" euiButton euiAccent euiSizeS (click)=\"onOpenCode()\">\n <eui-icon-svg icon=\"eui-code\" set=\"eui\" size=\"m\" fillColor=\"grey-100\" class=\"eui-u-mr-xs\"></eui-icon-svg> VIEW SOURCES\n </button>\n <ng-content></ng-content>\n <p class=\"eui-u-text-paragraph\">Use the <kbd class=\"eui-u-text-kbd\">View sources</kbd> button to access the code source of the page.</p>\n</eui-dialog>\n", dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3$2.EuiDialogComponent, selector: "eui-dialog", inputs: ["e2eAttr", "title", "acceptLabel", "dismissLabel", "typeClass", "verticalPosition", "width", "height", "isFullScreen", "hasCloseButton", "hasAcceptButton", "hasDismissButton", "hasMobileCustomSize", "isClosedOnClickOutside", "hasClosedOnClickOutside", "isClosedOnEscape", "hasClosedOnEscape", "isHandleCloseOnDismiss", "isHandleCloseOnClose", "isHandleCloseOnAccept", "isHandleCloseOnClickOutside", "isHandleCloseOnEscape", "isMessageBox", "isDraggable", "hasNoBodyPadding", "hasFooter"], outputs: ["clickOutside", "escape", "dialogOpen", "dialogClose", "dismiss", "accept"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }] }); }
1282
+ }
1283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageCodeFabComponent, decorators: [{
1284
+ type: Component,
1285
+ args: [{ selector: 'eui-showcase-doc-page-code-fab', template: "<div class=\"eui-button-fixed\">\n <div class=\"eui-button-floating eui-button--size-2xl eui-button--icon-only eui-u-c-bg-accent eui--accent\">\n <eui-icon-svg icon=\"eui-code\" size=\"l\" (click)=\"toggleCode()\"></eui-icon-svg>\n </div>\n</div>\n\n<eui-dialog #dialog title=\"Page source code\" [hasFooter]=\"false\" (close)=\"onClose()\" [width]=\"'50vw'\">\n <button type=\"button\" *ngIf=\"codeFolder\" euiButton euiAccent euiSizeS (click)=\"onOpenCode()\">\n <eui-icon-svg icon=\"eui-code\" set=\"eui\" size=\"m\" fillColor=\"grey-100\" class=\"eui-u-mr-xs\"></eui-icon-svg> VIEW SOURCES\n </button>\n <ng-content></ng-content>\n <p class=\"eui-u-text-paragraph\">Use the <kbd class=\"eui-u-text-kbd\">View sources</kbd> button to access the code source of the page.</p>\n</eui-dialog>\n" }]
1286
+ }], ctorParameters: () => [{ type: i3.EuiAppShellService }], propDecorators: { codeFolder: [{
1287
+ type: Input
1288
+ }], showcase: [{
1289
+ type: Input
1290
+ }], dialog: [{
1291
+ type: ViewChild,
1292
+ args: ['dialog']
1293
+ }] } });
1294
+
1295
+ class LoremIpsumSampleComponent {
1296
+ constructor() {
1297
+ this.textSize = 'large';
1298
+ }
1299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: LoremIpsumSampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1300
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: LoremIpsumSampleComponent, selector: "eui-showcase-doc-lorem-ipsum", inputs: { textSize: "textSize" }, ngImport: i0, template: "<div *ngIf=\"textSize === 'small'\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis\n malesuada. Etiam vulputate quam at consectetur pharetra.\n\n <div class=\"eui-u-mb-m\">\n Nunc sit amet lectus mattis, aliquam mi quis, iaculis est. Donec nec diam tristique, egestas lorem nec, varius neque. Aenean\n consequat nisi in sem porttitor, a eleifend lorem tincidunt. Phasellus scelerisque tellus eu imperdiet dictum.\n </div>\n <div class=\"eui-u-mb-m\">\n Sed vitae tellus ac nisl facilisis posuere. Mauris cursus dui nec arcu molestie sodales. Morbi vel enim semper, luctus odio vitae,\n lacinia nisl. Sed sollicitudin ex et nibh bibendum, id blandit nunc pretium. Nunc venenatis eros a leo tincidunt gravida.\n </div>\n <div class=\"eui-u-mb-m\">Etiam pulvinar leo sit amet sapien pharetra, porta laoreet tellus consequat.</div>\n</div>\n\n<div *ngIf=\"textSize === 'medium'\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis\n malesuada. Etiam vulputate quam at consectetur pharetra.\n\n <div class=\"eui-u-mb-m\">\n Duis vitae nibh iaculis augue fermentum placerat vel vitae lectus. Curabitur venenatis eros at eros ultrices, eu feugiat eros\n efficitur. Sed quis nulla non augue scelerisque gravida vitae sed neque. Quisque semper dolor non diam sodales suscipit.\n </div>\n <div class=\"eui-u-mb-m\">\n Donec ut tortor scelerisque, sodales neque id, tempor orci. Suspendisse eu augue at nibh egestas eleifend. Ut tristique enim in\n lectus aliquam, non tincidunt tortor vulputate. Phasellus eu nunc faucibus, porta ante nec, malesuada erat.\n </div>\n <div class=\"eui-u-mb-m\">\n Vestibulum hendrerit risus a libero gravida venenatis. Mauris non enim sit amet odio pellentesque scelerisque in et velit. Quisque\n efficitur eros ut magna rutrum aliquet. Curabitur et nisi ullamcorper, pellentesque ligula vel, congue dui. Nullam commodo mi quis\n nibh euismod interdum. In rutrum sapien ac viverra pretium.\n </div>\n <div class=\"eui-u-mb-m\">\n Ut eget tellus a magna fermentum tempor at id erat. Nam fringilla eros sed leo facilisis, et mollis orci elementum. Donec\n consectetur libero sed arcu rhoncus, vel elementum augue mollis. Cras facilisis nisl mollis imperdiet mollis.\n </div>\n <div class=\"eui-u-mb-m\">\n Sed pharetra lorem in justo rhoncus tempor. Phasellus vel elit eget massa consectetur porttitor eu ut ex. Donec sed ex sit amet\n purus blandit pharetra. Nam rhoncus dolor ac felis condimentum malesuada.\n </div>\n <div class=\"eui-u-mb-m\">\n Pellentesque convallis nulla in lectus molestie mollis. Pellentesque auctor libero eget dolor vehicula, a suscipit nunc laoreet.\n Nulla suscipit ante in sollicitudin semper.\n </div>\n <div class=\"eui-u-mb-m\">Nullam rutrum ante vitae metus interdum, quis laoreet sem maximus.</div>\n <div class=\"eui-u-mb-m\">\n Pellentesque gravida diam quis orci suscipit hendrerit. Vestibulum congue sapien sed pretium gravida. Nullam ornare lectus sed\n pulvinar fringilla. Nam dictum eros sit amet lectus aliquet tincidunt. Quisque eu augue eget felis tincidunt hendrerit. Aenean vel\n lorem vel sem consequat congue.\n </div>\n <div class=\"eui-u-mb-m\">Phasellus finibus libero at blandit sollicitudin. Praesent pulvinar libero a lorem scelerisque sodales.</div>\n <div class=\"eui-u-mb-m\">Donec tempor quam eget turpis dignissim egestas. Pellentesque vulputate nisi eu ornare euismod.</div>\n</div>\n\n<div *ngIf=\"textSize === 'large'\">\n <div class=\"eui-u-mb-m\">\n Lorem ipsum dolor sit amet consectetur. Nec maecenas turpis eget curabitur. Neque accumsan nulla vestibulum vulputate. Etiam lorem\n sit leo aliquam. Penatibus suspendisse sit in metus sodales pretium erat tempor. Congue aliquam varius nec pellentesque. Diam\n tincidunt neque aliquam a natoque egestas nibh in urna. Volutpat enim erat magna sociis blandit odio ut convallis. Montes blandit\n maecenas pellentesque magna. Ipsum at porta justo massa aliquet vulputate sit. Nec non semper urna morbi nec ut in eu. Tristique\n morbi nam tempus id.\n </div>\n <div class=\"eui-u-mb-m\">\n Amet eu phasellus dignissim lacus. Pellentesque tristique sed leo eu mattis quam ut sem sed. Id lacus erat urna arcu ac risus\n sodales. Scelerisque risus auctor erat mattis habitant facilisis. Orci velit nunc fermentum condimentum volutpat. Nec tellus at\n risus cras. Malesuada ultrices vestibulum arcu sagittis quis purus. Sit ultricies suspendisse ante augue malesuada mattis eget\n fermentum et. Lobortis et ridiculus turpis elit a mi faucibus. Sit vitae nunc etiam euismod massa nisi nibh arcu nulla. Elit ipsum\n lorem vestibulum nulla senectus curabitur. Turpis non eu eu rhoncus. Dictum porttitor pulvinar commodo nec sapien est at erat et.\n Nisl pellentesque pellentesque tempus tristique commodo eget urna tempor. Porta mi accumsan senectus risus eget.\n </div>\n <div class=\"eui-u-mb-m\">\n Velit vulputate amet id tellus. Quam aliquet eros hendrerit cursus id et amet in nam. Eget elementum diam ut magna porttitor. Cursus\n neque vulputate malesuada congue enim. Ac in sed et justo adipiscing habitasse elit tincidunt dictum. Dui ornare ac ligula duis. Sit\n mi a eu dictum est magna morbi. Morbi hendrerit non senectus sit platea gravida id. Fermentum vulputate arcu pretium cras elit.\n </div>\n <div class=\"eui-u-mb-m\">\n Enim et nunc eget ac commodo sagittis. Turpis facilisi enim enim nisi eu sed. Amet viverra felis in ac orci ullamcorper. At\n ridiculus enim nec velit nulla luctus lorem non ultricies. Urna gravida sem curabitur quis diam ut porttitor aliquam sapien. Id\n adipiscing libero feugiat imperdiet senectus mattis non nulla condimentum.\n </div>\n <div class=\"eui-u-mb-m\">\n Etiam felis parturient et amet. Enim neque eu risus ante tristique nisl nisl vulputate. Arcu turpis semper vitae ultrices sit\n ultrices. Sed arcu pharetra vel sapien in. Turpis vestibulum tellus quis arcu egestas viverra cursus quisque. Eu volutpat mauris\n sagittis integer fermentum fringilla penatibus. Velit et quis et arcu velit tortor.\n </div>\n <div class=\"eui-u-mb-m\">\n Nisl fringilla nibh eu nunc pellentesque dignissim vestibulum mus porttitor. Consequat non eu nulla lectus ultrices. Viverra duis\n enim aliquet ut massa laoreet consequat. Sociis dignissim sodales vitae maecenas nec aliquam. Volutpat feugiat urna id sed. In\n fringilla dui neque montes ut et lorem velit consequat. Ut fermentum amet dictum proin et. Aenean odio ac quisque ultrices tellus\n mattis posuere et curabitur. Proin est suspendisse iaculis nullam eros sit amet aliquam laoreet. Libero tincidunt quis et odio\n imperdiet risus neque. Odio et dui duis odio accumsan. Lacus nibh urna at risus euismod lobortis cursus. Porta risus mi gravida\n aliquet. Leo viverra diam vulputate sollicitudin cursus erat sed.\n </div>\n <div class=\"eui-u-mb-m\">\n Erat consectetur sem nulla sed viverra ipsum adipiscing nunc. Porttitor eget sodales integer maecenas tortor quam sit pharetra\n lorem. Egestas ut mauris urna vitae a mollis. Nam cursus amet sit dolor. Mattis mattis laoreet sed massa proin tristique ullamcorper\n commodo. Sit in tortor posuere nec lorem fringilla.\n </div>\n <div class=\"eui-u-mb-m\">\n Fringilla elementum quisque vitae pharetra risus pellentesque eu nulla. Enim egestas velit est tempor ut vulputate tellus tincidunt\n ut. Non enim lorem nec in mattis. Vitae nulla vitae lectus varius aliquet massa lectus morbi. Placerat vel consectetur commodo nibh\n ullamcorper vitae tellus sed. Nisi lacus quis at malesuada elementum. Turpis et ut egestas adipiscing et ac. Auctor aliquam dictum\n dolor diam sit tellus tempus. Elementum venenatis arcu id a. Duis imperdiet id elementum tempor facilisis rhoncus rhoncus posuere\n egestas. Imperdiet odio lorem posuere sit. Molestie amet quisque tellus phasellus nisi. Lobortis mi faucibus elit semper. Ipsum eu\n adipiscing fringilla at felis maecenas. Egestas tortor odio laoreet neque.\n </div>\n <div class=\"eui-u-mb-m\">\n Sollicitudin rhoncus nunc ultricies lorem massa sagittis integer elit. Consequat mauris elementum sed imperdiet libero odio non\n amet. Tortor condimentum non convallis posuere pulvinar. Neque malesuada volutpat sit quis. Ac justo gravida vitae mollis. Ut tellus\n nunc ultrices egestas vitae tellus sed. Pellentesque nunc id quisque scelerisque et pellentesque eu ultricies.\n </div>\n <div class=\"eui-u-mb-m\">\n Dolor rhoncus tempor netus sit mauris. Turpis curabitur amet eu lectus sem habitant magna non. Eros lorem eu lectus proin venenatis\n tellus. Velit praesent consectetur ligula venenatis magna sed dictum. Quisque vivamus ipsum mattis morbi pulvinar bibendum. Netus\n risus sit adipiscing augue augue eget est.\n </div>\n <div class=\"eui-u-mb-m\">\n Justo feugiat duis fames in luctus elit. Sit id in turpis quam habitasse amet ut sed sem. Ut luctus amet sit lacinia sed eu sed a\n senectus. Fusce gravida augue quis bibendum aliquet. Quam egestas quam iaculis urna condimentum amet. Odio aliquam massa vel\n vestibulum tincidunt dolor tincidunt netus facilisi. Ut sociis metus pellentesque leo amet. Diam lectus pretium id tincidunt\n habitasse. Eget tortor quisque tristique scelerisque quam vestibulum morbi ornare pellentesque. Nunc eget volutpat id mauris amet ut\n aliquet nunc dictumst. Elit blandit a suspendisse commodo. Velit quis ut varius leo pharetra risus leo eget.\n </div>\n <div class=\"eui-u-mb-m\">\n Consequat phasellus ullamcorper mauris id tortor ultrices nunc. Lacinia eu sapien rhoncus lacinia sed augue justo molestie ornare.\n Integer ridiculus gravida pulvinar iaculis nisl eleifend senectus. Imperdiet vitae orci massa ac eget etiam est nulla. Netus nibh\n ipsum auctor eros nunc aliquam enim. Donec pretium vel amet blandit sed quisque sed. Tempor ipsum nunc leo ultricies ut. Odio tellus\n ultricies diam cras. Diam maecenas amet gravida nunc. Feugiat egestas eget ullamcorper consequat. Varius faucibus nisl dolor dolor\n diam ultrices odio iaculis lorem. Egestas tristique est egestas ornare. Tortor eu orci orci posuere blandit amet sit semper\n pharetra. Sed dictumst dolor phasellus urna nisl auctor sit in vulputate.\n </div>\n</div>\n<div class=\"eui-u-font-xs eui-u-color-primary-100\">&lt;end of content&gt; &mdash; This last line must always be visible.</div>\n", dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1301
+ }
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: LoremIpsumSampleComponent, decorators: [{
1303
+ type: Component,
1304
+ args: [{ selector: 'eui-showcase-doc-lorem-ipsum', template: "<div *ngIf=\"textSize === 'small'\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis\n malesuada. Etiam vulputate quam at consectetur pharetra.\n\n <div class=\"eui-u-mb-m\">\n Nunc sit amet lectus mattis, aliquam mi quis, iaculis est. Donec nec diam tristique, egestas lorem nec, varius neque. Aenean\n consequat nisi in sem porttitor, a eleifend lorem tincidunt. Phasellus scelerisque tellus eu imperdiet dictum.\n </div>\n <div class=\"eui-u-mb-m\">\n Sed vitae tellus ac nisl facilisis posuere. Mauris cursus dui nec arcu molestie sodales. Morbi vel enim semper, luctus odio vitae,\n lacinia nisl. Sed sollicitudin ex et nibh bibendum, id blandit nunc pretium. Nunc venenatis eros a leo tincidunt gravida.\n </div>\n <div class=\"eui-u-mb-m\">Etiam pulvinar leo sit amet sapien pharetra, porta laoreet tellus consequat.</div>\n</div>\n\n<div *ngIf=\"textSize === 'medium'\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut volutpat enim. Etiam a mattis tortor. Etiam egestas magna at iaculis\n malesuada. Etiam vulputate quam at consectetur pharetra.\n\n <div class=\"eui-u-mb-m\">\n Duis vitae nibh iaculis augue fermentum placerat vel vitae lectus. Curabitur venenatis eros at eros ultrices, eu feugiat eros\n efficitur. Sed quis nulla non augue scelerisque gravida vitae sed neque. Quisque semper dolor non diam sodales suscipit.\n </div>\n <div class=\"eui-u-mb-m\">\n Donec ut tortor scelerisque, sodales neque id, tempor orci. Suspendisse eu augue at nibh egestas eleifend. Ut tristique enim in\n lectus aliquam, non tincidunt tortor vulputate. Phasellus eu nunc faucibus, porta ante nec, malesuada erat.\n </div>\n <div class=\"eui-u-mb-m\">\n Vestibulum hendrerit risus a libero gravida venenatis. Mauris non enim sit amet odio pellentesque scelerisque in et velit. Quisque\n efficitur eros ut magna rutrum aliquet. Curabitur et nisi ullamcorper, pellentesque ligula vel, congue dui. Nullam commodo mi quis\n nibh euismod interdum. In rutrum sapien ac viverra pretium.\n </div>\n <div class=\"eui-u-mb-m\">\n Ut eget tellus a magna fermentum tempor at id erat. Nam fringilla eros sed leo facilisis, et mollis orci elementum. Donec\n consectetur libero sed arcu rhoncus, vel elementum augue mollis. Cras facilisis nisl mollis imperdiet mollis.\n </div>\n <div class=\"eui-u-mb-m\">\n Sed pharetra lorem in justo rhoncus tempor. Phasellus vel elit eget massa consectetur porttitor eu ut ex. Donec sed ex sit amet\n purus blandit pharetra. Nam rhoncus dolor ac felis condimentum malesuada.\n </div>\n <div class=\"eui-u-mb-m\">\n Pellentesque convallis nulla in lectus molestie mollis. Pellentesque auctor libero eget dolor vehicula, a suscipit nunc laoreet.\n Nulla suscipit ante in sollicitudin semper.\n </div>\n <div class=\"eui-u-mb-m\">Nullam rutrum ante vitae metus interdum, quis laoreet sem maximus.</div>\n <div class=\"eui-u-mb-m\">\n Pellentesque gravida diam quis orci suscipit hendrerit. Vestibulum congue sapien sed pretium gravida. Nullam ornare lectus sed\n pulvinar fringilla. Nam dictum eros sit amet lectus aliquet tincidunt. Quisque eu augue eget felis tincidunt hendrerit. Aenean vel\n lorem vel sem consequat congue.\n </div>\n <div class=\"eui-u-mb-m\">Phasellus finibus libero at blandit sollicitudin. Praesent pulvinar libero a lorem scelerisque sodales.</div>\n <div class=\"eui-u-mb-m\">Donec tempor quam eget turpis dignissim egestas. Pellentesque vulputate nisi eu ornare euismod.</div>\n</div>\n\n<div *ngIf=\"textSize === 'large'\">\n <div class=\"eui-u-mb-m\">\n Lorem ipsum dolor sit amet consectetur. Nec maecenas turpis eget curabitur. Neque accumsan nulla vestibulum vulputate. Etiam lorem\n sit leo aliquam. Penatibus suspendisse sit in metus sodales pretium erat tempor. Congue aliquam varius nec pellentesque. Diam\n tincidunt neque aliquam a natoque egestas nibh in urna. Volutpat enim erat magna sociis blandit odio ut convallis. Montes blandit\n maecenas pellentesque magna. Ipsum at porta justo massa aliquet vulputate sit. Nec non semper urna morbi nec ut in eu. Tristique\n morbi nam tempus id.\n </div>\n <div class=\"eui-u-mb-m\">\n Amet eu phasellus dignissim lacus. Pellentesque tristique sed leo eu mattis quam ut sem sed. Id lacus erat urna arcu ac risus\n sodales. Scelerisque risus auctor erat mattis habitant facilisis. Orci velit nunc fermentum condimentum volutpat. Nec tellus at\n risus cras. Malesuada ultrices vestibulum arcu sagittis quis purus. Sit ultricies suspendisse ante augue malesuada mattis eget\n fermentum et. Lobortis et ridiculus turpis elit a mi faucibus. Sit vitae nunc etiam euismod massa nisi nibh arcu nulla. Elit ipsum\n lorem vestibulum nulla senectus curabitur. Turpis non eu eu rhoncus. Dictum porttitor pulvinar commodo nec sapien est at erat et.\n Nisl pellentesque pellentesque tempus tristique commodo eget urna tempor. Porta mi accumsan senectus risus eget.\n </div>\n <div class=\"eui-u-mb-m\">\n Velit vulputate amet id tellus. Quam aliquet eros hendrerit cursus id et amet in nam. Eget elementum diam ut magna porttitor. Cursus\n neque vulputate malesuada congue enim. Ac in sed et justo adipiscing habitasse elit tincidunt dictum. Dui ornare ac ligula duis. Sit\n mi a eu dictum est magna morbi. Morbi hendrerit non senectus sit platea gravida id. Fermentum vulputate arcu pretium cras elit.\n </div>\n <div class=\"eui-u-mb-m\">\n Enim et nunc eget ac commodo sagittis. Turpis facilisi enim enim nisi eu sed. Amet viverra felis in ac orci ullamcorper. At\n ridiculus enim nec velit nulla luctus lorem non ultricies. Urna gravida sem curabitur quis diam ut porttitor aliquam sapien. Id\n adipiscing libero feugiat imperdiet senectus mattis non nulla condimentum.\n </div>\n <div class=\"eui-u-mb-m\">\n Etiam felis parturient et amet. Enim neque eu risus ante tristique nisl nisl vulputate. Arcu turpis semper vitae ultrices sit\n ultrices. Sed arcu pharetra vel sapien in. Turpis vestibulum tellus quis arcu egestas viverra cursus quisque. Eu volutpat mauris\n sagittis integer fermentum fringilla penatibus. Velit et quis et arcu velit tortor.\n </div>\n <div class=\"eui-u-mb-m\">\n Nisl fringilla nibh eu nunc pellentesque dignissim vestibulum mus porttitor. Consequat non eu nulla lectus ultrices. Viverra duis\n enim aliquet ut massa laoreet consequat. Sociis dignissim sodales vitae maecenas nec aliquam. Volutpat feugiat urna id sed. In\n fringilla dui neque montes ut et lorem velit consequat. Ut fermentum amet dictum proin et. Aenean odio ac quisque ultrices tellus\n mattis posuere et curabitur. Proin est suspendisse iaculis nullam eros sit amet aliquam laoreet. Libero tincidunt quis et odio\n imperdiet risus neque. Odio et dui duis odio accumsan. Lacus nibh urna at risus euismod lobortis cursus. Porta risus mi gravida\n aliquet. Leo viverra diam vulputate sollicitudin cursus erat sed.\n </div>\n <div class=\"eui-u-mb-m\">\n Erat consectetur sem nulla sed viverra ipsum adipiscing nunc. Porttitor eget sodales integer maecenas tortor quam sit pharetra\n lorem. Egestas ut mauris urna vitae a mollis. Nam cursus amet sit dolor. Mattis mattis laoreet sed massa proin tristique ullamcorper\n commodo. Sit in tortor posuere nec lorem fringilla.\n </div>\n <div class=\"eui-u-mb-m\">\n Fringilla elementum quisque vitae pharetra risus pellentesque eu nulla. Enim egestas velit est tempor ut vulputate tellus tincidunt\n ut. Non enim lorem nec in mattis. Vitae nulla vitae lectus varius aliquet massa lectus morbi. Placerat vel consectetur commodo nibh\n ullamcorper vitae tellus sed. Nisi lacus quis at malesuada elementum. Turpis et ut egestas adipiscing et ac. Auctor aliquam dictum\n dolor diam sit tellus tempus. Elementum venenatis arcu id a. Duis imperdiet id elementum tempor facilisis rhoncus rhoncus posuere\n egestas. Imperdiet odio lorem posuere sit. Molestie amet quisque tellus phasellus nisi. Lobortis mi faucibus elit semper. Ipsum eu\n adipiscing fringilla at felis maecenas. Egestas tortor odio laoreet neque.\n </div>\n <div class=\"eui-u-mb-m\">\n Sollicitudin rhoncus nunc ultricies lorem massa sagittis integer elit. Consequat mauris elementum sed imperdiet libero odio non\n amet. Tortor condimentum non convallis posuere pulvinar. Neque malesuada volutpat sit quis. Ac justo gravida vitae mollis. Ut tellus\n nunc ultrices egestas vitae tellus sed. Pellentesque nunc id quisque scelerisque et pellentesque eu ultricies.\n </div>\n <div class=\"eui-u-mb-m\">\n Dolor rhoncus tempor netus sit mauris. Turpis curabitur amet eu lectus sem habitant magna non. Eros lorem eu lectus proin venenatis\n tellus. Velit praesent consectetur ligula venenatis magna sed dictum. Quisque vivamus ipsum mattis morbi pulvinar bibendum. Netus\n risus sit adipiscing augue augue eget est.\n </div>\n <div class=\"eui-u-mb-m\">\n Justo feugiat duis fames in luctus elit. Sit id in turpis quam habitasse amet ut sed sem. Ut luctus amet sit lacinia sed eu sed a\n senectus. Fusce gravida augue quis bibendum aliquet. Quam egestas quam iaculis urna condimentum amet. Odio aliquam massa vel\n vestibulum tincidunt dolor tincidunt netus facilisi. Ut sociis metus pellentesque leo amet. Diam lectus pretium id tincidunt\n habitasse. Eget tortor quisque tristique scelerisque quam vestibulum morbi ornare pellentesque. Nunc eget volutpat id mauris amet ut\n aliquet nunc dictumst. Elit blandit a suspendisse commodo. Velit quis ut varius leo pharetra risus leo eget.\n </div>\n <div class=\"eui-u-mb-m\">\n Consequat phasellus ullamcorper mauris id tortor ultrices nunc. Lacinia eu sapien rhoncus lacinia sed augue justo molestie ornare.\n Integer ridiculus gravida pulvinar iaculis nisl eleifend senectus. Imperdiet vitae orci massa ac eget etiam est nulla. Netus nibh\n ipsum auctor eros nunc aliquam enim. Donec pretium vel amet blandit sed quisque sed. Tempor ipsum nunc leo ultricies ut. Odio tellus\n ultricies diam cras. Diam maecenas amet gravida nunc. Feugiat egestas eget ullamcorper consequat. Varius faucibus nisl dolor dolor\n diam ultrices odio iaculis lorem. Egestas tristique est egestas ornare. Tortor eu orci orci posuere blandit amet sit semper\n pharetra. Sed dictumst dolor phasellus urna nisl auctor sit in vulputate.\n </div>\n</div>\n<div class=\"eui-u-font-xs eui-u-color-primary-100\">&lt;end of content&gt; &mdash; This last line must always be visible.</div>\n" }]
1305
+ }], propDecorators: { textSize: [{
1306
+ type: Input
1307
+ }] } });
1308
+
1309
+ class PlaygroundComponent {
1310
+ constructor() {
1311
+ this.title = 'eUI Playground';
1312
+ this.activated = false;
2115
1313
  this.isLoaded = false;
2116
- }
1314
+ this.sb = inject(StackblitzService);
2117
1315
  }
2118
- }
2119
- initStackblitz() {
2120
- this.sb.getStackblitzDependencies().then((deps) => {
2121
- const { dependencies, devDependencies } = deps;
2122
- const { selector } = this.sb.extractComponentMetadata(this.typescriptContent);
2123
- const moduleName = this.sb.extractModuleName(this.typescriptContent);
2124
- const componentName = this.sb.extractComponentName(this.typescriptContent);
2125
- const project = {
2126
- title: this.title,
2127
- description: `An eUI example for the ${this.title}.`,
2128
- template: "angular-cli",
2129
- files: {
2130
- "src/component.html": this.htmlContent,
2131
- "src/component.ts": this.sb.appendVitalNgModules(this.typescriptContent),
2132
- "src/main.ts": mainFile(moduleName, componentName),
2133
- "src/polyfills.ts": polyfillsFile,
2134
- "src/index.html": indexHtmlFile(selector),
2135
- "angular.json": angularJsonFile,
2136
- "package.json": JSON.stringify({
2137
- ...PACKAGE_JSON,
2138
- dependencies,
2139
- devDependencies
2140
- }, null, 2),
2141
- "tsconfig.json": tsConfig
2142
- },
2143
- settings: {
2144
- compile: {
2145
- trigger: "auto",
2146
- clearConsole: true
2147
- }
2148
- },
2149
- dependencies
2150
- };
2151
- return sdk2.embedProject(`stackblitz-${this.sampleId}`, project, {
2152
- height: 500,
2153
- openFile: ["src/component.ts", "src/component.html"]
2154
- });
2155
- }).then((instance) => {
2156
- this.stackblitzInstance = instance;
2157
- this.isLoaded = true;
2158
- });
2159
- }
2160
- static {
2161
- this.ɵfac = i012.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i012, type: _PlaygroundComponent, deps: [], target: i012.ɵɵFactoryTarget.Component });
2162
- }
2163
- static {
2164
- this.ɵcmp = i012.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _PlaygroundComponent, selector: "eui-playground", inputs: { title: "title", htmlContent: "htmlContent", sampleId: "sampleId", typescriptContent: "typescriptContent", activated: "activated", modules: "modules" }, viewQueries: [{ propertyName: "stackblitzElWrapper", first: true, predicate: ["container"], descendants: true, read: ElementRef2, static: true }], usesOnChanges: true, ngImport: i012, template: '<eui-block-content [isBlocked]="!isLoaded">\n <iframe #container id="stackblitz-{{sampleId}}"></iframe>\n</eui-block-content>\n', dependencies: [{ kind: "component", type: i17.EuiBlockContentComponent, selector: "eui-block-content", inputs: ["role", "ariaLabel", "isBlocked"] }] });
2165
- }
2166
- };
2167
- i012.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i012, type: PlaygroundComponent, decorators: [{
2168
- type: Component10,
2169
- args: [{ selector: "eui-playground", template: '<eui-block-content [isBlocked]="!isLoaded">\n <iframe #container id="stackblitz-{{sampleId}}"></iframe>\n</eui-block-content>\n' }]
2170
- }], propDecorators: { title: [{
2171
- type: Input9
2172
- }], htmlContent: [{
2173
- type: Input9
2174
- }], sampleId: [{
2175
- type: Input9
2176
- }], typescriptContent: [{
2177
- type: Input9
2178
- }], activated: [{
2179
- type: Input9
2180
- }], modules: [{
2181
- type: Input9
2182
- }], stackblitzElWrapper: [{
2183
- type: ViewChild4,
2184
- args: ["container", { read: ElementRef2, static: true }]
2185
- }] } });
2186
-
2187
- // lib/components/doc-page-pattern/doc-page-pattern.component.mjs
2188
- import { Component as Component11, HostBinding as HostBinding3, ViewEncapsulation as ViewEncapsulation7, Input as Input10, Directive as Directive4, ContentChild as ContentChild2, forwardRef as forwardRef5, HostListener } from "@angular/core";
2189
- import { BaseDirective } from "@eui/components/shared";
2190
- import * as i013 from "@angular/core";
2191
- import * as i18 from "@angular/platform-browser";
2192
- import * as i27 from "@angular/common";
2193
- import * as i37 from "@eui/components/eui-card";
2194
- import * as i46 from "@eui/components/eui-button";
2195
- import * as i56 from "@eui/components/eui-tabs";
2196
- import * as i63 from "@eui/components/eui-chip";
2197
- import * as i73 from "@eui/components/eui-badge";
2198
- import * as i83 from "@eui/components/eui-icon";
2199
- import * as i93 from "@eui/components/eui-label";
2200
- var DocPagePatternSampleDirective = class _DocPagePatternSampleDirective {
2201
- static {
2202
- this.ɵfac = i013.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i013, type: _DocPagePatternSampleDirective, deps: [], target: i013.ɵɵFactoryTarget.Directive });
2203
- }
2204
- static {
2205
- this.ɵdir = i013.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPagePatternSampleDirective, selector: "docPagePatternSample", ngImport: i013 });
2206
- }
2207
- };
2208
- i013.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i013, type: DocPagePatternSampleDirective, decorators: [{
2209
- type: Directive4,
2210
- args: [{ selector: "docPagePatternSample" }]
2211
- }] });
2212
- var DocPagePatternDocDirective = class _DocPagePatternDocDirective {
2213
- static {
2214
- this.ɵfac = i013.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i013, type: _DocPagePatternDocDirective, deps: [], target: i013.ɵɵFactoryTarget.Directive });
2215
- }
2216
- static {
2217
- this.ɵdir = i013.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPagePatternDocDirective, selector: "docPagePatternDoc", ngImport: i013 });
2218
- }
2219
- };
2220
- i013.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i013, type: DocPagePatternDocDirective, decorators: [{
2221
- type: Directive4,
2222
- args: [{ selector: "docPagePatternDoc" }]
2223
- }] });
2224
- var DocPagePatternComponent = class _DocPagePatternComponent extends BaseDirective {
2225
- get cssClasses() {
2226
- return [
2227
- super.getCssClasses("doc-page-pattern")
2228
- ].join(" ").trim();
2229
- }
2230
- checkScroll() {
2231
- const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
2232
- if (scrollPosition >= this.topPosToStartShowing) {
2233
- this.isShowGoTop = true;
2234
- } else {
2235
- this.isShowGoTop = false;
1316
+ ngOnChanges(changes) {
1317
+ if (changes.activated) {
1318
+ if (changes.activated.currentValue) {
1319
+ this.initStackblitz();
1320
+ }
1321
+ else {
1322
+ this.isLoaded = false;
1323
+ }
1324
+ }
2236
1325
  }
2237
- }
2238
- constructor(sanitizer) {
2239
- super();
2240
- this.sanitizer = sanitizer;
2241
- this.docEntries = [];
2242
- this.dos = [];
2243
- this.donts = [];
2244
- this.topPosToStartShowing = 100;
2245
- this.tabSelectedIndex = 0;
2246
- }
2247
- ngOnInit() {
2248
- if (this.figmaEmbedSrc) {
2249
- this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.figmaEmbedSrc);
2250
- const iFrame = document.getElementById("iframe-figma");
1326
+ initStackblitz() {
1327
+ this.sb.getStackblitzDependencies()
1328
+ .then((deps) => {
1329
+ const { dependencies, devDependencies } = deps;
1330
+ const { selector } = this.sb.extractComponentMetadata(this.typescriptContent);
1331
+ const moduleName = this.sb.extractModuleName(this.typescriptContent);
1332
+ const componentName = this.sb.extractComponentName(this.typescriptContent);
1333
+ const project = {
1334
+ title: this.title,
1335
+ description: `An eUI example for the ${this.title}.`,
1336
+ template: 'angular-cli',
1337
+ files: {
1338
+ 'src/component.html': this.htmlContent,
1339
+ 'src/component.ts': this.sb.appendVitalNgModules(this.typescriptContent),
1340
+ 'src/main.ts': mainFile(moduleName, componentName),
1341
+ 'src/polyfills.ts': polyfillsFile,
1342
+ 'src/index.html': indexHtmlFile(selector),
1343
+ 'angular.json': angularJsonFile,
1344
+ 'package.json': JSON.stringify({
1345
+ ...PACKAGE_JSON,
1346
+ dependencies,
1347
+ devDependencies,
1348
+ }, null, 2),
1349
+ 'tsconfig.json': tsConfig,
1350
+ },
1351
+ settings: {
1352
+ compile: {
1353
+ trigger: 'auto',
1354
+ clearConsole: true,
1355
+ },
1356
+ },
1357
+ dependencies,
1358
+ };
1359
+ return sdk.embedProject(`stackblitz-${this.sampleId}`, project, {
1360
+ height: 500,
1361
+ openFile: ['src/component.ts', 'src/component.html'],
1362
+ });
1363
+ })
1364
+ .then((instance) => {
1365
+ this.stackblitzInstance = instance;
1366
+ this.isLoaded = true;
1367
+ });
2251
1368
  }
2252
- }
2253
- onNavigateToCode(event) {
2254
- const showcase = "ux-patterns";
2255
- const sourceRootPath = `https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-${showcase}/browse/src/app/features/`;
2256
- window.open(sourceRootPath + this.sourceUrl, "_blank");
2257
- }
2258
- onTabSelect(event) {
2259
- this.tabSelectedIndex = event.index;
2260
- }
2261
- gotoTop() {
2262
- window.scroll({
2263
- top: 0,
2264
- left: 0,
2265
- behavior: "smooth"
2266
- });
2267
- }
2268
- static {
2269
- this.ɵfac = i013.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i013, type: _DocPagePatternComponent, deps: [{ token: i18.DomSanitizer }], target: i013.ɵɵFactoryTarget.Component });
2270
- }
2271
- static {
2272
- this.ɵcmp = i013.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.2", type: _DocPagePatternComponent, selector: "eui-showcase-doc-page-pattern", inputs: { id: "id", label: "label", anatomyImage: "anatomyImage", docEntries: "docEntries", dos: "dos", donts: "donts", sourceUrl: "sourceUrl", figmaUrl: "figmaUrl", figmaEmbedSrc: "figmaEmbedSrc" }, host: { listeners: { "window:scroll": "checkScroll()" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "sampleContent", first: true, predicate: i013.forwardRef(() => DocPagePatternSampleDirective), descendants: true }, { propertyName: "docContent", first: true, predicate: i013.forwardRef(() => DocPagePatternDocDirective), descendants: true }], usesInheritance: true, ngImport: i013, template: `<eui-tabs (tabSelect)="onTabSelect($event)">
2273
- <eui-tab>
2274
- <euiTabLabel>Usage and documentation</euiTabLabel>
2275
- <euiTabContent>
2276
- <h2 class="eui-u-color-primary-100 eui-u-mb-none eui-u-text-h2">{{ label }}</h2>
2277
-
2278
- <h3 class="eui-u-text-h3">Information</h3>
2279
- <ng-content select="docPagePatternDoc"></ng-content>
2280
-
2281
- <ng-container *ngIf="figmaEmbedSrc; else screenshot">
2282
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Figma design anatomy</h3>
2283
- <iframe id="iframe-figma" style="border: 1px solid rgba(0, 0, 0, 0.1)" width="100%" height="650" [src]="urlSafe"></iframe>
2284
- </ng-container>
2285
- <ng-template #screenshot>
2286
- <ng-container *ngIf="figmaUrl !== 'PENDING_DS'">
2287
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Anatomy</h3>
2288
- <img
2289
- src="assets/images/design-system/{{ anatomyImage }}"
2290
- alt="Design anatomy image"
2291
- width="90%"
2292
- class="eui-u-shadow-6 eui-u-mb-m" />
2293
- </ng-container>
2294
- </ng-template>
2295
-
2296
- <ng-container *ngIf="docEntries.length !== 0">
2297
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Design system references</h3>
2298
-
2299
- <eui-card *ngFor="let ref of docEntries" class="eui-u-mb-m" [euiWarning]="ref.mandatory" [euiInfo]="!ref.mandatory">
2300
- <eui-card-header>
2301
- <eui-card-header-title>
2302
- <div class="eui-u-flex">
2303
- <eui-badge *ngIf="ref?.id" euiSizeXL class="eui-u-mr-s">{{ ref.id }}</eui-badge>
2304
- <span class="eui-u-font-l">{{ ref.name }}</span>
2305
- </div>
2306
- </eui-card-header-title>
2307
- <eui-card-header-right-content>
2308
- <eui-chip [euiWarning]="ref.mandatory" [euiInfo]="!ref.mandatory" class="eui-u-ml-m">
2309
- <span *ngIf="ref.mandatory" euiLabel><strong> Mandatory </strong></span>
2310
- <span *ngIf="!ref.mandatory" euiLabel><strong> Optional </strong></span>
2311
- </eui-chip>
2312
- </eui-card-header-right-content>
2313
- </eui-card-header>
2314
- <eui-card-content>
2315
- <h6 class="section-title eui-u-mt-none"><strong>Description</strong></h6>
2316
- <div class="html" [innerHTML]="ref.description"></div>
2317
-
2318
- <ng-container *ngIf="ref.whenToUse">
2319
- <h6 class="section-title eui-u-mt-xl"><strong>When to use ?</strong></h6>
2320
- <div class="html" [innerHTML]="ref.whenToUse"></div>
2321
- </ng-container>
2322
- <ng-container *ngIf="ref.whenNotToUse">
2323
- <h6 class="section-title eui-u-mt-xl"><strong>When to not use ?</strong></h6>
2324
- <div class="html" [innerHTML]="ref.whenNotToUse"></div>
2325
- </ng-container>
2326
- <div class="row">
2327
- <div class="col-md-6">
2328
- <ng-container *ngIf="ref.dos && ref.dos.length !== 0">
2329
- <h6 class="section-title eui-u-mt-xl">
2330
- <eui-icon-svg
2331
- icon="thumbs-up"
2332
- set="sharp"
2333
- size="m"
2334
- fillColor="success-100"
2335
- class="eui-u-mr-m"></eui-icon-svg>
2336
- <strong>Do's</strong>
2337
- </h6>
2338
- <li *ngFor="let do of ref.dos">{{ do }}</li>
2339
- </ng-container>
2340
- </div>
2341
- <div class="col-md-6">
2342
- <ng-container *ngIf="ref.donts && ref.donts.length !== 0">
2343
- <h6 class="section-title eui-u-mt-xl">
2344
- <eui-icon-svg
2345
- icon="hand-right"
2346
- set="sharp"
2347
- size="m"
2348
- fillColor="danger-100"
2349
- class="eui-u-mr-m"></eui-icon-svg>
2350
- <strong>Dont's</strong>
2351
- </h6>
2352
- <li *ngFor="let dont of ref.donts">{{ dont }}</li>
2353
- </ng-container>
2354
- </div>
2355
- </div>
2356
- </eui-card-content>
2357
- </eui-card>
2358
- </ng-container>
2359
-
2360
- <!-- <ng-container *ngIf="dos.length !== 0">
2361
- <h3 class="eui-u-mt-2xl eui-u-color-success-100 eui-u-text-h3">Do's</h3>
2362
- <table class="eui-table-default">
2363
- <tr *ngFor="let ref of dos">
2364
- <td>{{ref.description}}</td>
2365
- </tr>
2366
- </table>
2367
- </ng-container>
2368
-
2369
- <ng-container *ngIf="donts.length !== 0">
2370
- <h3 class="eui-u-mt-2xl eui-u-color-danger-100 eui-u-text-h3">Dont's</h3>
2371
- <table class="eui-table-default">
2372
- <tr *ngFor="let ref of donts">
2373
- <td>{{ref.description}}</td>
2374
- </tr>
2375
- </table>
2376
- </ng-container> -->
2377
-
2378
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Figma resource</h3>
2379
- <ng-container *ngIf="figmaUrl === 'PENDING_DS'; else figmaOK">
2380
- Pending Design system publication. Will be available in a future release.
2381
- </ng-container>
2382
- <ng-template #figmaOK>
2383
- <eui-card>
2384
- <eui-card-header>
2385
- <eui-card-header-left-content>
2386
- <img
2387
- width="32"
2388
- height="32"
2389
- alt="Figma Logo"
2390
- src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAABL1BMVEX/////cmLyTh6iWf8Kz4MavP7yTBr5YUWeUP8AzX3UuP//bVwAt/6jV///rKTyRgr2TwCxX+kA032m6Mf3m4uabPb/aVf/8O8AzHmbSf/xPAD/a1rxQgDyShaaR/8Avv74pJP/urP/6Ob/ZVLQ7//839n5tqj/xL7/b1f/9O/59f/r3v+65/9jzP6yef/p+P+u4//Mqv/iz//cxf/I7P/fvf+U2v71/fqO5LzW9ed74LIp043/y8b4rJz0dln/i3/zXTX2jnf/19P/emv0bEv/p5//l4zzWCz2h270dVf4g2D2Whzt5v+6hfuzbfCuWOjE2+6nz+6BxO5lu+5o1v9Nx/7BlP930v63rf+UoP90lP7n1v/Prv/iwf/Onf+hefiWZPZi36O07dLf9+2A4bX7S8Q6AAAGG0lEQVR4nO2aeVcaZxSHZ6JYhsHYFjsig3UhaHG3RkHBxMRE2zR2M5SuaUW//2cow4CgwMz7uzl65x3v8/+cM8+5y7tdwxAEQRAEQRAEQRAEQRAEQRAEQRCEiFJcOVqYDuDt0wAWV2pFboFAikcv8rl8fiqA/LE9Gtd1Hcd5ubjELTKC5eNcfu5JCBOfmWHYrnOyWOK2GWQhn58I01Mz9HDdp9xCd6g9UfJTNmw5mjVuqX5e5dT8AEPTLJxya92wdJZX9IMMTduMSMsphvcXmqFpOq+55TxeK2cobmgWIqBYhARRQ7PAvgOYmYIEYUPTmWE2PAZqkGRon/AKTqt3UaKh6b7lFCzmQEGCIW8pvgFzlGRov+QTrMEhpBhyrop4CEmGfEHEq5BmaBa4dm+vph7I0OZqp3PYYk83NE0eQUqSEg0dngXjCF3t6YbuIovhO7yTUg1tnsPwGaEMqXXIszmllCHVsMAhOPOghhxnKFIrpRo6HGu+GOpvuBT7OizFvpcalC0N1ZBnY0o4HZL3NDwnxGnC4YlqyHN8Wnm4nbfD8w5FajVEQ6YHU0oh0s74XBc1y4Q0JRkyJWkLxXffT48hlyClm1IMGd/0S3iakm6E2QQpVzUEQ4fnkqbDGdpOCYa8z2vwEQo3ZLvw7nAEKuJvwKw56vEdVoqoocP6PurzPaQIGrqRmBqCFMF5mkgIthIVqEXIsBCBFPVZzikvGoCh7axwi/VYOlbdoqobOicRmWrrsKw2Xqps6NoRCqBPaSGvMsGnZGg7NvsqOJTai1xuam4iMJahhrbr2KcRmNcbQam28O6HzwM584bVB/nGxzRPF9ln9YJ5v7tz/uMXo/lprzRzl1Jp5udffr24uKjXP3zYfsatEMDq3mZyNpmcHAsgmRr4bGu/nkgnuqTTifr2FsPfh7N2PhssN9xwvd6z61luRC+Sa5uz4XqDhuvzg36+ZD1icfxNze+O4daQ+PUcG2w2g6yNJdX8bhuuB/h5ionIpGpKNYC3DRvBgp7jNqNVHztfK/v1G26ECrYU9znFuuzMAoI9QxXBaCimkAj2DMNTNCqJ+i0UwRvDfUXBliJzu1lVbqK3DJ8pC7bgNdxU76L9hoBfIrHBKbgL5mjHUD1H23n6nNFwEg1h23ALEkwk5vkEU2gV+oYNTJCzn47BIfQM0RAyBhFdKTqG+6ggXyWe4yH0DOdhwwTTMQNeC31DaC3swmNISdKx5B6epGxp+pEUw706wTDBswGH9zNtwxShDLn2NQS/luHvJEOe9QI7NnUN/yAZpjkE31MazdjknzRDjpu3+BuuPaghxzk4/jGMv6FBMtSplz6C9TD+e5qd2O9L/3rAswXTpWnsz4fxP+M/gnua+N+1Ue9LN9AQMr4/4UGk3Hlzvs3gldh+t1B9POyEkPPdwjinva5BEWR9e3oE74fwxka7N2DyO77aoEIU3vEfwSyGYfx9j/M0EYigx+69zUStM1rd4p7m2uajNJ4Y99lE4xHMlxrejHDIAPQwQ41mhD1WU/6cdxDD57zT6XTPLrJz3j5r/3w8//er0fy3O+yrref7jbrHRiPSs/qGUW5WLr8MJsP9j59C89JqMR6Ipa9huRJqp7dhRkVPY8OrqpqftoYZVT9dDS+zyoJ6Gl6qR1BPQ0hQR8NDSFBDwwpQg1oaHoCC+hlWQUHtDCtYEepnWIYFdTO8jrshIYSaGQLbUU0N4UaqmyElSfUybMbeENyRamhIKUO9DCkh1MqwjG66tTO8ir0hfHASw8gR/ywlGja5/xuAZnjA/dsAtBX/ivu3AbCL0q4h918j4Jc0LcFL7r9GoCwXVoX7ryFwwfGsTo2GdHyqcv8zBp6mOq33bfAb7zL3L4M00WeZQ+4/hgGDqF0I0UrUbKnwge71NWukHZTHTDTbkva4UjbM6nRu6ke1FLM6FqGP2pKhsaBaFLUWbNXieFgxaluDXcrBc19WVc8ueovm6DBammfoDZXhA6ZW9lC/rdoIyplq9o6kZVmHMUjQPg4qVStrdclWD3VvMEM5aGYq19fXleZBbLJTEARBEARBEARBEARBEARBEARBEHz+B91xJIzYVK0AAAAAAElFTkSuQmCC" />
2391
- </eui-card-header-left-content>
2392
- <eui-card-header-title>
2393
- <a
2394
- class="h5 eui-u-text-link-external"
2395
- href="https://www.figma.com/file/jQ9htWvSM8SWTPuk3hoigc/{{ figmaUrl }}"
2396
- target="blank">
2397
- <span class="eui-u-color-grey-75">Layout component /</span>
2398
- {{ label }}
2399
- </a>
2400
- </eui-card-header-title>
2401
- </eui-card-header>
2402
- </eui-card>
2403
- </ng-template>
2404
- </euiTabContent>
2405
- </eui-tab>
2406
- <eui-tab>
2407
- <euiTabLabel>Pattern sample</euiTabLabel>
2408
- <euiTabContent>
2409
- <ng-content select="docPagePatternSample"></ng-content>
2410
- </euiTabContent>
2411
- </eui-tab>
2412
-
2413
- <euiTabsRightContent>
2414
- <button type="button" euiButton euiAccent euiSizeS (click)="onNavigateToCode($event)">
2415
- <span class="eui-icon eui-icon-code"></span>
2416
- View sources
2417
- </button>
2418
- </euiTabsRightContent>
2419
- </eui-tabs>
2420
-
2421
- <button
2422
- type="button"
2423
- *ngIf="isShowGoTop && tabSelectedIndex === 0"
2424
- euiButton
2425
- euiIconButton
2426
- euiOutline
2427
- euiRounded
2428
- euiSizeL
2429
- class="eui-button-fixed eui-u-shadow-8"
2430
- (click)="gotoTop()"
2431
- title="Goto Top"
2432
- aria-label="Goto Top">
2433
- <!-- 👆 -->
2434
- <eui-icon-svg icon="eui-arrow-up" set="eui" size="l" fillColor="grey-50"></eui-icon-svg>
2435
- </button>
2436
- `, styles: [".doc-page-pattern{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%;padding:var(--eui-base-spacing-xl)}.doc-page-pattern sample,.doc-page-pattern eui-tabs,.doc-page-pattern .eui-tabs,.doc-page-pattern .eui-tab-content-wrapper,.doc-page-pattern .eui-tab-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%}.doc-page-pattern .eui-tabs .eui-tab-item--active,.doc-page-pattern .eui-tabs .eui-tab-item:focus{background-color:var(--eui-base-color-white)}.doc-page-pattern .eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-m)}.doc-page-pattern docPagePatternSample{display:flex;flex-direction:column;flex-grow:1;min-height:0;position:relative;width:100%}.doc-page-pattern .html{display:block;line-height:var(--eui-base-line-height);position:relative;text-align:left}\n"], dependencies: [{ kind: "directive", type: i27.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i27.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i37.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i37.EuiCardHeaderComponent, selector: "eui-card-header", inputs: ["avatarUrl", "expandLabel", "collapseLabel", "iconClass", "avatarDerscription", "iconDescription", "hasHeaderClickToggle", "hasBottomExpander", "hasFullTitle", "isHeaderMultilines"], outputs: ["collapse"] }, { kind: "component", type: i37.EuiCardHeaderTitleComponent, selector: "eui-card-header-title" }, { kind: "component", type: i37.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i37.EuiCardHeaderLeftContentComponent, selector: "eui-card-header-left-content" }, { kind: "component", type: i37.EuiCardHeaderRightContentComponent, selector: "eui-card-header-right-content" }, { kind: "component", type: i46.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i56.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i56.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "directive", type: i56.EuiTabsRightContentTagDirective, selector: "euiTabsRightContent" }, { kind: "component", type: i56.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i56.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i63.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i73.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label"] }, { kind: "component", type: i83.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i93.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }], encapsulation: i013.ViewEncapsulation.None });
2437
- }
2438
- };
2439
- i013.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i013, type: DocPagePatternComponent, decorators: [{
2440
- type: Component11,
2441
- args: [{ selector: "eui-showcase-doc-page-pattern", encapsulation: ViewEncapsulation7.None, template: `<eui-tabs (tabSelect)="onTabSelect($event)">
2442
- <eui-tab>
2443
- <euiTabLabel>Usage and documentation</euiTabLabel>
2444
- <euiTabContent>
2445
- <h2 class="eui-u-color-primary-100 eui-u-mb-none eui-u-text-h2">{{ label }}</h2>
2446
-
2447
- <h3 class="eui-u-text-h3">Information</h3>
2448
- <ng-content select="docPagePatternDoc"></ng-content>
2449
-
2450
- <ng-container *ngIf="figmaEmbedSrc; else screenshot">
2451
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Figma design anatomy</h3>
2452
- <iframe id="iframe-figma" style="border: 1px solid rgba(0, 0, 0, 0.1)" width="100%" height="650" [src]="urlSafe"></iframe>
2453
- </ng-container>
2454
- <ng-template #screenshot>
2455
- <ng-container *ngIf="figmaUrl !== 'PENDING_DS'">
2456
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Anatomy</h3>
2457
- <img
2458
- src="assets/images/design-system/{{ anatomyImage }}"
2459
- alt="Design anatomy image"
2460
- width="90%"
2461
- class="eui-u-shadow-6 eui-u-mb-m" />
2462
- </ng-container>
2463
- </ng-template>
2464
-
2465
- <ng-container *ngIf="docEntries.length !== 0">
2466
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Design system references</h3>
2467
-
2468
- <eui-card *ngFor="let ref of docEntries" class="eui-u-mb-m" [euiWarning]="ref.mandatory" [euiInfo]="!ref.mandatory">
2469
- <eui-card-header>
2470
- <eui-card-header-title>
2471
- <div class="eui-u-flex">
2472
- <eui-badge *ngIf="ref?.id" euiSizeXL class="eui-u-mr-s">{{ ref.id }}</eui-badge>
2473
- <span class="eui-u-font-l">{{ ref.name }}</span>
2474
- </div>
2475
- </eui-card-header-title>
2476
- <eui-card-header-right-content>
2477
- <eui-chip [euiWarning]="ref.mandatory" [euiInfo]="!ref.mandatory" class="eui-u-ml-m">
2478
- <span *ngIf="ref.mandatory" euiLabel><strong> Mandatory </strong></span>
2479
- <span *ngIf="!ref.mandatory" euiLabel><strong> Optional </strong></span>
2480
- </eui-chip>
2481
- </eui-card-header-right-content>
2482
- </eui-card-header>
2483
- <eui-card-content>
2484
- <h6 class="section-title eui-u-mt-none"><strong>Description</strong></h6>
2485
- <div class="html" [innerHTML]="ref.description"></div>
2486
-
2487
- <ng-container *ngIf="ref.whenToUse">
2488
- <h6 class="section-title eui-u-mt-xl"><strong>When to use ?</strong></h6>
2489
- <div class="html" [innerHTML]="ref.whenToUse"></div>
2490
- </ng-container>
2491
- <ng-container *ngIf="ref.whenNotToUse">
2492
- <h6 class="section-title eui-u-mt-xl"><strong>When to not use ?</strong></h6>
2493
- <div class="html" [innerHTML]="ref.whenNotToUse"></div>
2494
- </ng-container>
2495
- <div class="row">
2496
- <div class="col-md-6">
2497
- <ng-container *ngIf="ref.dos && ref.dos.length !== 0">
2498
- <h6 class="section-title eui-u-mt-xl">
2499
- <eui-icon-svg
2500
- icon="thumbs-up"
2501
- set="sharp"
2502
- size="m"
2503
- fillColor="success-100"
2504
- class="eui-u-mr-m"></eui-icon-svg>
2505
- <strong>Do's</strong>
2506
- </h6>
2507
- <li *ngFor="let do of ref.dos">{{ do }}</li>
2508
- </ng-container>
2509
- </div>
2510
- <div class="col-md-6">
2511
- <ng-container *ngIf="ref.donts && ref.donts.length !== 0">
2512
- <h6 class="section-title eui-u-mt-xl">
2513
- <eui-icon-svg
2514
- icon="hand-right"
2515
- set="sharp"
2516
- size="m"
2517
- fillColor="danger-100"
2518
- class="eui-u-mr-m"></eui-icon-svg>
2519
- <strong>Dont's</strong>
2520
- </h6>
2521
- <li *ngFor="let dont of ref.donts">{{ dont }}</li>
2522
- </ng-container>
2523
- </div>
2524
- </div>
2525
- </eui-card-content>
2526
- </eui-card>
2527
- </ng-container>
2528
-
2529
- <!-- <ng-container *ngIf="dos.length !== 0">
2530
- <h3 class="eui-u-mt-2xl eui-u-color-success-100 eui-u-text-h3">Do's</h3>
2531
- <table class="eui-table-default">
2532
- <tr *ngFor="let ref of dos">
2533
- <td>{{ref.description}}</td>
2534
- </tr>
2535
- </table>
2536
- </ng-container>
2537
-
2538
- <ng-container *ngIf="donts.length !== 0">
2539
- <h3 class="eui-u-mt-2xl eui-u-color-danger-100 eui-u-text-h3">Dont's</h3>
2540
- <table class="eui-table-default">
2541
- <tr *ngFor="let ref of donts">
2542
- <td>{{ref.description}}</td>
2543
- </tr>
2544
- </table>
2545
- </ng-container> -->
2546
-
2547
- <h3 class="eui-u-mt-2xl eui-u-text-h3">Figma resource</h3>
2548
- <ng-container *ngIf="figmaUrl === 'PENDING_DS'; else figmaOK">
2549
- Pending Design system publication. Will be available in a future release.
2550
- </ng-container>
2551
- <ng-template #figmaOK>
2552
- <eui-card>
2553
- <eui-card-header>
2554
- <eui-card-header-left-content>
2555
- <img
2556
- width="32"
2557
- height="32"
2558
- alt="Figma Logo"
2559
- src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAABL1BMVEX/////cmLyTh6iWf8Kz4MavP7yTBr5YUWeUP8AzX3UuP//bVwAt/6jV///rKTyRgr2TwCxX+kA032m6Mf3m4uabPb/aVf/8O8AzHmbSf/xPAD/a1rxQgDyShaaR/8Avv74pJP/urP/6Ob/ZVLQ7//839n5tqj/xL7/b1f/9O/59f/r3v+65/9jzP6yef/p+P+u4//Mqv/iz//cxf/I7P/fvf+U2v71/fqO5LzW9ed74LIp043/y8b4rJz0dln/i3/zXTX2jnf/19P/emv0bEv/p5//l4zzWCz2h270dVf4g2D2Whzt5v+6hfuzbfCuWOjE2+6nz+6BxO5lu+5o1v9Nx/7BlP930v63rf+UoP90lP7n1v/Prv/iwf/Onf+hefiWZPZi36O07dLf9+2A4bX7S8Q6AAAGG0lEQVR4nO2aeVcaZxSHZ6JYhsHYFjsig3UhaHG3RkHBxMRE2zR2M5SuaUW//2cow4CgwMz7uzl65x3v8/+cM8+5y7tdwxAEQRAEQRAEQRAEQRAEQRAEQRCEiFJcOVqYDuDt0wAWV2pFboFAikcv8rl8fiqA/LE9Gtd1Hcd5ubjELTKC5eNcfu5JCBOfmWHYrnOyWOK2GWQhn58I01Mz9HDdp9xCd6g9UfJTNmw5mjVuqX5e5dT8AEPTLJxya92wdJZX9IMMTduMSMsphvcXmqFpOq+55TxeK2cobmgWIqBYhARRQ7PAvgOYmYIEYUPTmWE2PAZqkGRon/AKTqt3UaKh6b7lFCzmQEGCIW8pvgFzlGRov+QTrMEhpBhyrop4CEmGfEHEq5BmaBa4dm+vph7I0OZqp3PYYk83NE0eQUqSEg0dngXjCF3t6YbuIovhO7yTUg1tnsPwGaEMqXXIszmllCHVsMAhOPOghhxnKFIrpRo6HGu+GOpvuBT7OizFvpcalC0N1ZBnY0o4HZL3NDwnxGnC4YlqyHN8Wnm4nbfD8w5FajVEQ6YHU0oh0s74XBc1y4Q0JRkyJWkLxXffT48hlyClm1IMGd/0S3iakm6E2QQpVzUEQ4fnkqbDGdpOCYa8z2vwEQo3ZLvw7nAEKuJvwKw56vEdVoqoocP6PurzPaQIGrqRmBqCFMF5mkgIthIVqEXIsBCBFPVZzikvGoCh7axwi/VYOlbdoqobOicRmWrrsKw2Xqps6NoRCqBPaSGvMsGnZGg7NvsqOJTai1xuam4iMJahhrbr2KcRmNcbQam28O6HzwM584bVB/nGxzRPF9ln9YJ5v7tz/uMXo/lprzRzl1Jp5udffr24uKjXP3zYfsatEMDq3mZyNpmcHAsgmRr4bGu/nkgnuqTTifr2FsPfh7N2PhssN9xwvd6z61luRC+Sa5uz4XqDhuvzg36+ZD1icfxNze+O4daQ+PUcG2w2g6yNJdX8bhuuB/h5ionIpGpKNYC3DRvBgp7jNqNVHztfK/v1G26ECrYU9znFuuzMAoI9QxXBaCimkAj2DMNTNCqJ+i0UwRvDfUXBliJzu1lVbqK3DJ8pC7bgNdxU76L9hoBfIrHBKbgL5mjHUD1H23n6nNFwEg1h23ALEkwk5vkEU2gV+oYNTJCzn47BIfQM0RAyBhFdKTqG+6ggXyWe4yH0DOdhwwTTMQNeC31DaC3swmNISdKx5B6epGxp+pEUw706wTDBswGH9zNtwxShDLn2NQS/luHvJEOe9QI7NnUN/yAZpjkE31MazdjknzRDjpu3+BuuPaghxzk4/jGMv6FBMtSplz6C9TD+e5qd2O9L/3rAswXTpWnsz4fxP+M/gnua+N+1Ue9LN9AQMr4/4UGk3Hlzvs3gldh+t1B9POyEkPPdwjinva5BEWR9e3oE74fwxka7N2DyO77aoEIU3vEfwSyGYfx9j/M0EYigx+69zUStM1rd4p7m2uajNJ4Y99lE4xHMlxrejHDIAPQwQ41mhD1WU/6cdxDD57zT6XTPLrJz3j5r/3w8//er0fy3O+yrref7jbrHRiPSs/qGUW5WLr8MJsP9j59C89JqMR6Ipa9huRJqp7dhRkVPY8OrqpqftoYZVT9dDS+zyoJ6Gl6qR1BPQ0hQR8NDSFBDwwpQg1oaHoCC+hlWQUHtDCtYEepnWIYFdTO8jrshIYSaGQLbUU0N4UaqmyElSfUybMbeENyRamhIKUO9DCkh1MqwjG66tTO8ir0hfHASw8gR/ywlGja5/xuAZnjA/dsAtBX/ivu3AbCL0q4h918j4Jc0LcFL7r9GoCwXVoX7ryFwwfGsTo2GdHyqcv8zBp6mOq33bfAb7zL3L4M00WeZQ+4/hgGDqF0I0UrUbKnwge71NWukHZTHTDTbkva4UjbM6nRu6ke1FLM6FqGP2pKhsaBaFLUWbNXieFgxaluDXcrBc19WVc8ueovm6DBammfoDZXhA6ZW9lC/rdoIyplq9o6kZVmHMUjQPg4qVStrdclWD3VvMEM5aGYq19fXleZBbLJTEARBEARBEARBEARBEARBEARBEHz+B91xJIzYVK0AAAAAAElFTkSuQmCC" />
2560
- </eui-card-header-left-content>
2561
- <eui-card-header-title>
2562
- <a
2563
- class="h5 eui-u-text-link-external"
2564
- href="https://www.figma.com/file/jQ9htWvSM8SWTPuk3hoigc/{{ figmaUrl }}"
2565
- target="blank">
2566
- <span class="eui-u-color-grey-75">Layout component /</span>
2567
- {{ label }}
2568
- </a>
2569
- </eui-card-header-title>
2570
- </eui-card-header>
2571
- </eui-card>
2572
- </ng-template>
2573
- </euiTabContent>
2574
- </eui-tab>
2575
- <eui-tab>
2576
- <euiTabLabel>Pattern sample</euiTabLabel>
2577
- <euiTabContent>
2578
- <ng-content select="docPagePatternSample"></ng-content>
2579
- </euiTabContent>
2580
- </eui-tab>
2581
-
2582
- <euiTabsRightContent>
2583
- <button type="button" euiButton euiAccent euiSizeS (click)="onNavigateToCode($event)">
2584
- <span class="eui-icon eui-icon-code"></span>
2585
- View sources
2586
- </button>
2587
- </euiTabsRightContent>
2588
- </eui-tabs>
2589
-
2590
- <button
2591
- type="button"
2592
- *ngIf="isShowGoTop && tabSelectedIndex === 0"
2593
- euiButton
2594
- euiIconButton
2595
- euiOutline
2596
- euiRounded
2597
- euiSizeL
2598
- class="eui-button-fixed eui-u-shadow-8"
2599
- (click)="gotoTop()"
2600
- title="Goto Top"
2601
- aria-label="Goto Top">
2602
- <!-- 👆 -->
2603
- <eui-icon-svg icon="eui-arrow-up" set="eui" size="l" fillColor="grey-50"></eui-icon-svg>
2604
- </button>
2605
- `, styles: [".doc-page-pattern{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%;padding:var(--eui-base-spacing-xl)}.doc-page-pattern sample,.doc-page-pattern eui-tabs,.doc-page-pattern .eui-tabs,.doc-page-pattern .eui-tab-content-wrapper,.doc-page-pattern .eui-tab-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%}.doc-page-pattern .eui-tabs .eui-tab-item--active,.doc-page-pattern .eui-tabs .eui-tab-item:focus{background-color:var(--eui-base-color-white)}.doc-page-pattern .eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-base-spacing-m)}.doc-page-pattern docPagePatternSample{display:flex;flex-direction:column;flex-grow:1;min-height:0;position:relative;width:100%}.doc-page-pattern .html{display:block;line-height:var(--eui-base-line-height);position:relative;text-align:left}\n"] }]
2606
- }], ctorParameters: () => [{ type: i18.DomSanitizer }], propDecorators: { cssClasses: [{
2607
- type: HostBinding3,
2608
- args: ["class"]
2609
- }], sampleContent: [{
2610
- type: ContentChild2,
2611
- args: [forwardRef5(() => DocPagePatternSampleDirective)]
2612
- }], docContent: [{
2613
- type: ContentChild2,
2614
- args: [forwardRef5(() => DocPagePatternDocDirective)]
2615
- }], id: [{
2616
- type: Input10
2617
- }], label: [{
2618
- type: Input10
2619
- }], anatomyImage: [{
2620
- type: Input10
2621
- }], docEntries: [{
2622
- type: Input10
2623
- }], dos: [{
2624
- type: Input10
2625
- }], donts: [{
2626
- type: Input10
2627
- }], sourceUrl: [{
2628
- type: Input10
2629
- }], figmaUrl: [{
2630
- type: Input10
2631
- }], figmaEmbedSrc: [{
2632
- type: Input10
2633
- }], checkScroll: [{
2634
- type: HostListener,
2635
- args: ["window:scroll"]
2636
- }] } });
2637
-
2638
- // lib/eui-showcase.module.mjs
2639
- import { NgModule } from "@angular/core";
2640
- import { CommonModule } from "@angular/common";
2641
- import { EuiCardModule } from "@eui/components/eui-card";
2642
- import { EuiButtonModule } from "@eui/components/eui-button";
2643
- import { EuiTabsModule } from "@eui/components/eui-tabs";
2644
- import { EuiPageModule } from "@eui/components/eui-page";
2645
- import { EuiChipModule } from "@eui/components/eui-chip";
2646
- import { EuiDialogModule } from "@eui/components/eui-dialog";
2647
- import { EuiAlertModule } from "@eui/components/eui-alert";
2648
- import { EuiBlockContentModule } from "@eui/components/eui-block-content";
2649
- import { EuiBadgeModule } from "@eui/components/eui-badge";
2650
- import { EuiIconModule } from "@eui/components/eui-icon";
2651
- import { EuiLabelModule } from "@eui/components/eui-label";
2652
- import * as i014 from "@angular/core";
2653
- var COMPONENTS = [
2654
- EuiCodeHighlighterDirective,
2655
- DocPageComponent,
2656
- DocPageCodeComponent,
2657
- DocPageCodeFabComponent,
2658
- DocPageCodeModalComponent,
2659
- DocPageOverviewContentDirective,
2660
- DocPageApiContentDirective,
2661
- DocPageInteractiveContentDirective,
2662
- DocPageSamplesContentDirective,
2663
- DocPageSectionsContentDirective,
2664
- DocPageAccessibilityContentDirective,
2665
- DocPageThemingContentDirective,
2666
- DocSampleComponent,
2667
- DocSampleApiComponent,
2668
- DocSectionComponent,
2669
- DocSectionCodeComponent,
2670
- DocSectionCodeHtmlTagDirective,
2671
- DocSectionCodeTsTagDirective,
2672
- DocSectionCodeServiceTagDirective,
2673
- DocSectionCodeCssTagDirective,
2674
- DocSectionCodeDocTagDirective,
2675
- DocSectionCodeDescriptionTagDirective,
2676
- LoremIpsumSampleComponent,
2677
- PlaygroundComponent,
2678
- DocPagePatternComponent,
2679
- DocPagePatternDocDirective,
2680
- DocPagePatternSampleDirective
1369
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PlaygroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1370
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: PlaygroundComponent, selector: "eui-playground", inputs: { title: "title", htmlContent: "htmlContent", sampleId: "sampleId", typescriptContent: "typescriptContent", activated: "activated", modules: "modules" }, viewQueries: [{ propertyName: "stackblitzElWrapper", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<eui-block-content [isBlocked]=\"!isLoaded\">\n <iframe #container id=\"stackblitz-{{sampleId}}\"></iframe>\n</eui-block-content>\n", dependencies: [{ kind: "component", type: i1$1.EuiBlockContentComponent, selector: "eui-block-content", inputs: ["role", "ariaLabel", "isBlocked"] }] }); }
1371
+ }
1372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PlaygroundComponent, decorators: [{
1373
+ type: Component,
1374
+ args: [{ selector: 'eui-playground', template: "<eui-block-content [isBlocked]=\"!isLoaded\">\n <iframe #container id=\"stackblitz-{{sampleId}}\"></iframe>\n</eui-block-content>\n" }]
1375
+ }], propDecorators: { title: [{
1376
+ type: Input
1377
+ }], htmlContent: [{
1378
+ type: Input
1379
+ }], sampleId: [{
1380
+ type: Input
1381
+ }], typescriptContent: [{
1382
+ type: Input
1383
+ }], activated: [{
1384
+ type: Input
1385
+ }], modules: [{
1386
+ type: Input
1387
+ }], stackblitzElWrapper: [{
1388
+ type: ViewChild,
1389
+ args: ['container', { read: ElementRef, static: true }]
1390
+ }] } });
1391
+
1392
+ /* eslint-disable max-len */
1393
+ /* eslint-disable */
1394
+ class DocPagePatternSampleDirective {
1395
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPagePatternSampleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1396
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPagePatternSampleDirective, selector: "docPagePatternSample", ngImport: i0 }); }
1397
+ }
1398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPagePatternSampleDirective, decorators: [{
1399
+ type: Directive,
1400
+ args: [{ selector: 'docPagePatternSample' }]
1401
+ }] });
1402
+ class DocPagePatternDocDirective {
1403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPagePatternDocDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1404
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: DocPagePatternDocDirective, selector: "docPagePatternDoc", ngImport: i0 }); }
1405
+ }
1406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPagePatternDocDirective, decorators: [{
1407
+ type: Directive,
1408
+ args: [{ selector: 'docPagePatternDoc' }]
1409
+ }] });
1410
+ class DocPagePatternComponent {
1411
+ constructor() {
1412
+ this.docEntries = [];
1413
+ this.dos = [];
1414
+ this.donts = [];
1415
+ this.topPosToStartShowing = 100;
1416
+ this.tabSelectedIndex = 0;
1417
+ this.sanitizer = inject(DomSanitizer);
1418
+ }
1419
+ get cssClasses() {
1420
+ return ['doc-page-pattern'].join(' ').trim();
1421
+ }
1422
+ checkScroll() {
1423
+ const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1424
+ if (scrollPosition >= this.topPosToStartShowing) {
1425
+ this.isShowGoTop = true;
1426
+ }
1427
+ else {
1428
+ this.isShowGoTop = false;
1429
+ }
1430
+ }
1431
+ ngOnInit() {
1432
+ if (this.figmaEmbedSrc) {
1433
+ this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.figmaEmbedSrc);
1434
+ const iFrame = document.getElementById('iframe-figma');
1435
+ }
1436
+ }
1437
+ onNavigateToCode(event) {
1438
+ // eslint-disable-next-line max-len
1439
+ const showcase = 'ux-patterns';
1440
+ const sourceRootPath = `https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-${showcase}/browse/src/app/features/`;
1441
+ window.open(sourceRootPath + this.sourceUrl, '_blank');
1442
+ }
1443
+ onTabSelect(event) {
1444
+ this.tabSelectedIndex = event.index;
1445
+ }
1446
+ gotoTop() {
1447
+ window.scroll({
1448
+ top: 0,
1449
+ left: 0,
1450
+ behavior: 'smooth',
1451
+ });
1452
+ }
1453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPagePatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocPagePatternComponent, selector: "eui-showcase-doc-page-pattern", inputs: { id: "id", label: "label", anatomyImage: "anatomyImage", docEntries: "docEntries", dos: "dos", donts: "donts", sourceUrl: "sourceUrl", figmaUrl: "figmaUrl", figmaEmbedSrc: "figmaEmbedSrc" }, host: { listeners: { "window:scroll": "checkScroll()" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "sampleContent", first: true, predicate: i0.forwardRef(() => DocPagePatternSampleDirective), descendants: true }, { propertyName: "docContent", first: true, predicate: i0.forwardRef(() => DocPagePatternDocDirective), descendants: true }], ngImport: i0, template: "<eui-tabs (tabSelect)=\"onTabSelect($event)\">\n <eui-tab>\n <euiTabLabel>Usage and documentation</euiTabLabel>\n <euiTabContent>\n <h2 class=\"eui-u-color-primary-100 eui-u-mb-none eui-u-text-h2\">{{ label }}</h2>\n\n <h3 class=\"eui-u-text-h3\">Information</h3>\n <ng-content select=\"docPagePatternDoc\"></ng-content>\n\n <ng-container *ngIf=\"figmaEmbedSrc; else screenshot\">\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Figma design anatomy</h3>\n <iframe id=\"iframe-figma\" style=\"border: 1px solid rgba(0, 0, 0, 0.1)\" width=\"100%\" height=\"650\" [src]=\"urlSafe\"></iframe>\n </ng-container>\n <ng-template #screenshot>\n <ng-container *ngIf=\"figmaUrl !== 'PENDING_DS'\">\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Anatomy</h3>\n <img\n src=\"assets/images/design-system/{{ anatomyImage }}\"\n alt=\"Design anatomy image\"\n width=\"90%\"\n class=\"eui-u-sh-6 eui-u-mb-m\" />\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"docEntries.length !== 0\">\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Design system references</h3>\n\n <eui-card *ngFor=\"let ref of docEntries\" class=\"eui-u-mb-m\" [euiWarning]=\"ref.mandatory\" [euiInfo]=\"!ref.mandatory\">\n <eui-card-header>\n <eui-card-header-title>\n <div class=\"eui-u-flex\">\n <eui-badge *ngIf=\"ref?.id\" euiSizeXL class=\"eui-u-mr-s\">{{ ref.id }}</eui-badge>\n <span class=\"eui-u-font-l\">{{ ref.name }}</span>\n </div>\n </eui-card-header-title>\n <eui-card-header-right-content>\n <eui-chip [euiWarning]=\"ref.mandatory\" [euiInfo]=\"!ref.mandatory\" class=\"eui-u-ml-m\">\n <span *ngIf=\"ref.mandatory\" euiLabel><strong> Mandatory </strong></span>\n <span *ngIf=\"!ref.mandatory\" euiLabel><strong> Optional </strong></span>\n </eui-chip>\n </eui-card-header-right-content>\n </eui-card-header>\n <eui-card-content>\n <h6 class=\"section-title eui-u-mt-none\"><strong>Description</strong></h6>\n <div class=\"html\" [innerHTML]=\"ref.description\"></div>\n\n <ng-container *ngIf=\"ref.whenToUse\">\n <h6 class=\"section-title eui-u-mt-xl\"><strong>When to use ?</strong></h6>\n <div class=\"html\" [innerHTML]=\"ref.whenToUse\"></div>\n </ng-container>\n <ng-container *ngIf=\"ref.whenNotToUse\">\n <h6 class=\"section-title eui-u-mt-xl\"><strong>When to not use ?</strong></h6>\n <div class=\"html\" [innerHTML]=\"ref.whenNotToUse\"></div>\n </ng-container>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <ng-container *ngIf=\"ref.dos && ref.dos.length !== 0\">\n <h6 class=\"section-title eui-u-mt-xl\">\n <eui-icon-svg\n icon=\"thumbs-up\"\n set=\"sharp\"\n size=\"m\"\n fillColor=\"success-100\"\n class=\"eui-u-mr-m\"></eui-icon-svg>\n <strong>Do's</strong>\n </h6>\n <li *ngFor=\"let do of ref.dos\">{{ do }}</li>\n </ng-container>\n </div>\n <div class=\"col-md-6\">\n <ng-container *ngIf=\"ref.donts && ref.donts.length !== 0\">\n <h6 class=\"section-title eui-u-mt-xl\">\n <eui-icon-svg\n icon=\"hand-right\"\n set=\"sharp\"\n size=\"m\"\n fillColor=\"danger-100\"\n class=\"eui-u-mr-m\"></eui-icon-svg>\n <strong>Dont's</strong>\n </h6>\n <li *ngFor=\"let dont of ref.donts\">{{ dont }}</li>\n </ng-container>\n </div>\n </div>\n </eui-card-content>\n </eui-card>\n </ng-container>\n\n <!-- <ng-container *ngIf=\"dos.length !== 0\">\n <h3 class=\"eui-u-mt-2xl eui-u-color-success-100 eui-u-text-h3\">Do's</h3>\n <table class=\"eui-table-default\">\n <tr *ngFor=\"let ref of dos\">\n <td>{{ref.description}}</td>\n </tr>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"donts.length !== 0\">\n <h3 class=\"eui-u-mt-2xl eui-u-color-danger-100 eui-u-text-h3\">Dont's</h3>\n <table class=\"eui-table-default\">\n <tr *ngFor=\"let ref of donts\">\n <td>{{ref.description}}</td>\n </tr>\n </table>\n </ng-container> -->\n\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Figma resource</h3>\n <ng-container *ngIf=\"figmaUrl === 'PENDING_DS'; else figmaOK\">\n Pending Design system publication. Will be available in a future release.\n </ng-container>\n <ng-template #figmaOK>\n <eui-card>\n <eui-card-header>\n <eui-card-header-left-content>\n <img\n width=\"32\"\n height=\"32\"\n alt=\"Figma Logo\"\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAABL1BMVEX/////cmLyTh6iWf8Kz4MavP7yTBr5YUWeUP8AzX3UuP//bVwAt/6jV///rKTyRgr2TwCxX+kA032m6Mf3m4uabPb/aVf/8O8AzHmbSf/xPAD/a1rxQgDyShaaR/8Avv74pJP/urP/6Ob/ZVLQ7//839n5tqj/xL7/b1f/9O/59f/r3v+65/9jzP6yef/p+P+u4//Mqv/iz//cxf/I7P/fvf+U2v71/fqO5LzW9ed74LIp043/y8b4rJz0dln/i3/zXTX2jnf/19P/emv0bEv/p5//l4zzWCz2h270dVf4g2D2Whzt5v+6hfuzbfCuWOjE2+6nz+6BxO5lu+5o1v9Nx/7BlP930v63rf+UoP90lP7n1v/Prv/iwf/Onf+hefiWZPZi36O07dLf9+2A4bX7S8Q6AAAGG0lEQVR4nO2aeVcaZxSHZ6JYhsHYFjsig3UhaHG3RkHBxMRE2zR2M5SuaUW//2cow4CgwMz7uzl65x3v8/+cM8+5y7tdwxAEQRAEQRAEQRAEQRAEQRAEQRCEiFJcOVqYDuDt0wAWV2pFboFAikcv8rl8fiqA/LE9Gtd1Hcd5ubjELTKC5eNcfu5JCBOfmWHYrnOyWOK2GWQhn58I01Mz9HDdp9xCd6g9UfJTNmw5mjVuqX5e5dT8AEPTLJxya92wdJZX9IMMTduMSMsphvcXmqFpOq+55TxeK2cobmgWIqBYhARRQ7PAvgOYmYIEYUPTmWE2PAZqkGRon/AKTqt3UaKh6b7lFCzmQEGCIW8pvgFzlGRov+QTrMEhpBhyrop4CEmGfEHEq5BmaBa4dm+vph7I0OZqp3PYYk83NE0eQUqSEg0dngXjCF3t6YbuIovhO7yTUg1tnsPwGaEMqXXIszmllCHVsMAhOPOghhxnKFIrpRo6HGu+GOpvuBT7OizFvpcalC0N1ZBnY0o4HZL3NDwnxGnC4YlqyHN8Wnm4nbfD8w5FajVEQ6YHU0oh0s74XBc1y4Q0JRkyJWkLxXffT48hlyClm1IMGd/0S3iakm6E2QQpVzUEQ4fnkqbDGdpOCYa8z2vwEQo3ZLvw7nAEKuJvwKw56vEdVoqoocP6PurzPaQIGrqRmBqCFMF5mkgIthIVqEXIsBCBFPVZzikvGoCh7axwi/VYOlbdoqobOicRmWrrsKw2Xqps6NoRCqBPaSGvMsGnZGg7NvsqOJTai1xuam4iMJahhrbr2KcRmNcbQam28O6HzwM584bVB/nGxzRPF9ln9YJ5v7tz/uMXo/lprzRzl1Jp5udffr24uKjXP3zYfsatEMDq3mZyNpmcHAsgmRr4bGu/nkgnuqTTifr2FsPfh7N2PhssN9xwvd6z61luRC+Sa5uz4XqDhuvzg36+ZD1icfxNze+O4daQ+PUcG2w2g6yNJdX8bhuuB/h5ionIpGpKNYC3DRvBgp7jNqNVHztfK/v1G26ECrYU9znFuuzMAoI9QxXBaCimkAj2DMNTNCqJ+i0UwRvDfUXBliJzu1lVbqK3DJ8pC7bgNdxU76L9hoBfIrHBKbgL5mjHUD1H23n6nNFwEg1h23ALEkwk5vkEU2gV+oYNTJCzn47BIfQM0RAyBhFdKTqG+6ggXyWe4yH0DOdhwwTTMQNeC31DaC3swmNISdKx5B6epGxp+pEUw706wTDBswGH9zNtwxShDLn2NQS/luHvJEOe9QI7NnUN/yAZpjkE31MazdjknzRDjpu3+BuuPaghxzk4/jGMv6FBMtSplz6C9TD+e5qd2O9L/3rAswXTpWnsz4fxP+M/gnua+N+1Ue9LN9AQMr4/4UGk3Hlzvs3gldh+t1B9POyEkPPdwjinva5BEWR9e3oE74fwxka7N2DyO77aoEIU3vEfwSyGYfx9j/M0EYigx+69zUStM1rd4p7m2uajNJ4Y99lE4xHMlxrejHDIAPQwQ41mhD1WU/6cdxDD57zT6XTPLrJz3j5r/3w8//er0fy3O+yrref7jbrHRiPSs/qGUW5WLr8MJsP9j59C89JqMR6Ipa9huRJqp7dhRkVPY8OrqpqftoYZVT9dDS+zyoJ6Gl6qR1BPQ0hQR8NDSFBDwwpQg1oaHoCC+hlWQUHtDCtYEepnWIYFdTO8jrshIYSaGQLbUU0N4UaqmyElSfUybMbeENyRamhIKUO9DCkh1MqwjG66tTO8ir0hfHASw8gR/ywlGja5/xuAZnjA/dsAtBX/ivu3AbCL0q4h918j4Jc0LcFL7r9GoCwXVoX7ryFwwfGsTo2GdHyqcv8zBp6mOq33bfAb7zL3L4M00WeZQ+4/hgGDqF0I0UrUbKnwge71NWukHZTHTDTbkva4UjbM6nRu6ke1FLM6FqGP2pKhsaBaFLUWbNXieFgxaluDXcrBc19WVc8ueovm6DBammfoDZXhA6ZW9lC/rdoIyplq9o6kZVmHMUjQPg4qVStrdclWD3VvMEM5aGYq19fXleZBbLJTEARBEARBEARBEARBEARBEARBEHz+B91xJIzYVK0AAAAAAElFTkSuQmCC\" />\n </eui-card-header-left-content>\n <eui-card-header-title>\n <a\n class=\"h5 eui-u-text-link-external\"\n href=\"https://www.figma.com/file/jQ9htWvSM8SWTPuk3hoigc/{{ figmaUrl }}\"\n target=\"blank\">\n <span class=\"eui-u-color-grey-75\">Layout component /</span>\n {{ label }}\n </a>\n </eui-card-header-title>\n </eui-card-header>\n </eui-card>\n </ng-template>\n </euiTabContent>\n </eui-tab>\n <eui-tab>\n <euiTabLabel>Pattern sample</euiTabLabel>\n <euiTabContent>\n <ng-content select=\"docPagePatternSample\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <euiTabsRightContent>\n <button type=\"button\" euiButton euiAccent euiSizeS (click)=\"onNavigateToCode($event)\">\n <span class=\"eui-icon eui-icon-code\"></span>\n View sources\n </button>\n </euiTabsRightContent>\n</eui-tabs>\n\n<button\n type=\"button\"\n *ngIf=\"isShowGoTop && tabSelectedIndex === 0\"\n euiButton\n euiIconButton\n euiOutline\n euiRounded\n euiSizeL\n class=\"eui-button-fixed eui-u-sh-8\"\n (click)=\"gotoTop()\"\n title=\"Goto Top\"\n aria-label=\"Goto Top\">\n <!-- \uD83D\uDC46 -->\n <eui-icon-svg icon=\"eui-arrow-up\" set=\"eui\" size=\"l\" fillColor=\"grey-50\"></eui-icon-svg>\n</button>\n", styles: [".doc-page-pattern{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%;padding:var(--eui-s-xl)}.doc-page-pattern sample,.doc-page-pattern eui-tabs,.doc-page-pattern .eui-tabs,.doc-page-pattern .eui-tab-content-wrapper,.doc-page-pattern .eui-tab-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%}.doc-page-pattern .eui-tabs .eui-tab-item--active,.doc-page-pattern .eui-tabs .eui-tab-item:focus{background-color:var(--eui-c-white)}.doc-page-pattern .eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-s-m)}.doc-page-pattern docPagePatternSample{display:flex;flex-direction:column;flex-grow:1;min-height:0;position:relative;width:100%}.doc-page-pattern .html{display:block;position:relative;text-align:left}\n"], dependencies: [{ kind: "directive", type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i2$1.EuiCardHeaderComponent, selector: "eui-card-header", inputs: ["expandLabel", "collapseLabel", "hasHeaderClickToggle", "hasBottomExpander", "hasFullTitle", "isHeaderMultilines"], outputs: ["collapse"] }, { kind: "component", type: i2$1.EuiCardHeaderTitleComponent, selector: "eui-card-header-title" }, { kind: "component", type: i2$1.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i2$1.EuiCardHeaderLeftContentComponent, selector: "eui-card-header-left-content" }, { kind: "component", type: i2$1.EuiCardHeaderRightContentComponent, selector: "eui-card-header-right-content" }, { kind: "component", type: i2$2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i9.EuiTabsComponent, selector: "eui-tabs", inputs: ["tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i9.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "directive", type: i9.EuiTabsRightContentTagDirective, selector: "euiTabsRightContent" }, { kind: "component", type: i9.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i9.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i7.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i6$1.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label", "maxCharCount", "charReplacement", "euiIconBadge", "euiDottedBadge"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }], encapsulation: i0.ViewEncapsulation.None }); }
1455
+ }
1456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPagePatternComponent, decorators: [{
1457
+ type: Component,
1458
+ args: [{ selector: 'eui-showcase-doc-page-pattern', encapsulation: ViewEncapsulation.None, template: "<eui-tabs (tabSelect)=\"onTabSelect($event)\">\n <eui-tab>\n <euiTabLabel>Usage and documentation</euiTabLabel>\n <euiTabContent>\n <h2 class=\"eui-u-color-primary-100 eui-u-mb-none eui-u-text-h2\">{{ label }}</h2>\n\n <h3 class=\"eui-u-text-h3\">Information</h3>\n <ng-content select=\"docPagePatternDoc\"></ng-content>\n\n <ng-container *ngIf=\"figmaEmbedSrc; else screenshot\">\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Figma design anatomy</h3>\n <iframe id=\"iframe-figma\" style=\"border: 1px solid rgba(0, 0, 0, 0.1)\" width=\"100%\" height=\"650\" [src]=\"urlSafe\"></iframe>\n </ng-container>\n <ng-template #screenshot>\n <ng-container *ngIf=\"figmaUrl !== 'PENDING_DS'\">\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Anatomy</h3>\n <img\n src=\"assets/images/design-system/{{ anatomyImage }}\"\n alt=\"Design anatomy image\"\n width=\"90%\"\n class=\"eui-u-sh-6 eui-u-mb-m\" />\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"docEntries.length !== 0\">\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Design system references</h3>\n\n <eui-card *ngFor=\"let ref of docEntries\" class=\"eui-u-mb-m\" [euiWarning]=\"ref.mandatory\" [euiInfo]=\"!ref.mandatory\">\n <eui-card-header>\n <eui-card-header-title>\n <div class=\"eui-u-flex\">\n <eui-badge *ngIf=\"ref?.id\" euiSizeXL class=\"eui-u-mr-s\">{{ ref.id }}</eui-badge>\n <span class=\"eui-u-font-l\">{{ ref.name }}</span>\n </div>\n </eui-card-header-title>\n <eui-card-header-right-content>\n <eui-chip [euiWarning]=\"ref.mandatory\" [euiInfo]=\"!ref.mandatory\" class=\"eui-u-ml-m\">\n <span *ngIf=\"ref.mandatory\" euiLabel><strong> Mandatory </strong></span>\n <span *ngIf=\"!ref.mandatory\" euiLabel><strong> Optional </strong></span>\n </eui-chip>\n </eui-card-header-right-content>\n </eui-card-header>\n <eui-card-content>\n <h6 class=\"section-title eui-u-mt-none\"><strong>Description</strong></h6>\n <div class=\"html\" [innerHTML]=\"ref.description\"></div>\n\n <ng-container *ngIf=\"ref.whenToUse\">\n <h6 class=\"section-title eui-u-mt-xl\"><strong>When to use ?</strong></h6>\n <div class=\"html\" [innerHTML]=\"ref.whenToUse\"></div>\n </ng-container>\n <ng-container *ngIf=\"ref.whenNotToUse\">\n <h6 class=\"section-title eui-u-mt-xl\"><strong>When to not use ?</strong></h6>\n <div class=\"html\" [innerHTML]=\"ref.whenNotToUse\"></div>\n </ng-container>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <ng-container *ngIf=\"ref.dos && ref.dos.length !== 0\">\n <h6 class=\"section-title eui-u-mt-xl\">\n <eui-icon-svg\n icon=\"thumbs-up\"\n set=\"sharp\"\n size=\"m\"\n fillColor=\"success-100\"\n class=\"eui-u-mr-m\"></eui-icon-svg>\n <strong>Do's</strong>\n </h6>\n <li *ngFor=\"let do of ref.dos\">{{ do }}</li>\n </ng-container>\n </div>\n <div class=\"col-md-6\">\n <ng-container *ngIf=\"ref.donts && ref.donts.length !== 0\">\n <h6 class=\"section-title eui-u-mt-xl\">\n <eui-icon-svg\n icon=\"hand-right\"\n set=\"sharp\"\n size=\"m\"\n fillColor=\"danger-100\"\n class=\"eui-u-mr-m\"></eui-icon-svg>\n <strong>Dont's</strong>\n </h6>\n <li *ngFor=\"let dont of ref.donts\">{{ dont }}</li>\n </ng-container>\n </div>\n </div>\n </eui-card-content>\n </eui-card>\n </ng-container>\n\n <!-- <ng-container *ngIf=\"dos.length !== 0\">\n <h3 class=\"eui-u-mt-2xl eui-u-color-success-100 eui-u-text-h3\">Do's</h3>\n <table class=\"eui-table-default\">\n <tr *ngFor=\"let ref of dos\">\n <td>{{ref.description}}</td>\n </tr>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"donts.length !== 0\">\n <h3 class=\"eui-u-mt-2xl eui-u-color-danger-100 eui-u-text-h3\">Dont's</h3>\n <table class=\"eui-table-default\">\n <tr *ngFor=\"let ref of donts\">\n <td>{{ref.description}}</td>\n </tr>\n </table>\n </ng-container> -->\n\n <h3 class=\"eui-u-mt-2xl eui-u-text-h3\">Figma resource</h3>\n <ng-container *ngIf=\"figmaUrl === 'PENDING_DS'; else figmaOK\">\n Pending Design system publication. Will be available in a future release.\n </ng-container>\n <ng-template #figmaOK>\n <eui-card>\n <eui-card-header>\n <eui-card-header-left-content>\n <img\n width=\"32\"\n height=\"32\"\n alt=\"Figma Logo\"\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAABL1BMVEX/////cmLyTh6iWf8Kz4MavP7yTBr5YUWeUP8AzX3UuP//bVwAt/6jV///rKTyRgr2TwCxX+kA032m6Mf3m4uabPb/aVf/8O8AzHmbSf/xPAD/a1rxQgDyShaaR/8Avv74pJP/urP/6Ob/ZVLQ7//839n5tqj/xL7/b1f/9O/59f/r3v+65/9jzP6yef/p+P+u4//Mqv/iz//cxf/I7P/fvf+U2v71/fqO5LzW9ed74LIp043/y8b4rJz0dln/i3/zXTX2jnf/19P/emv0bEv/p5//l4zzWCz2h270dVf4g2D2Whzt5v+6hfuzbfCuWOjE2+6nz+6BxO5lu+5o1v9Nx/7BlP930v63rf+UoP90lP7n1v/Prv/iwf/Onf+hefiWZPZi36O07dLf9+2A4bX7S8Q6AAAGG0lEQVR4nO2aeVcaZxSHZ6JYhsHYFjsig3UhaHG3RkHBxMRE2zR2M5SuaUW//2cow4CgwMz7uzl65x3v8/+cM8+5y7tdwxAEQRAEQRAEQRAEQRAEQRAEQRCEiFJcOVqYDuDt0wAWV2pFboFAikcv8rl8fiqA/LE9Gtd1Hcd5ubjELTKC5eNcfu5JCBOfmWHYrnOyWOK2GWQhn58I01Mz9HDdp9xCd6g9UfJTNmw5mjVuqX5e5dT8AEPTLJxya92wdJZX9IMMTduMSMsphvcXmqFpOq+55TxeK2cobmgWIqBYhARRQ7PAvgOYmYIEYUPTmWE2PAZqkGRon/AKTqt3UaKh6b7lFCzmQEGCIW8pvgFzlGRov+QTrMEhpBhyrop4CEmGfEHEq5BmaBa4dm+vph7I0OZqp3PYYk83NE0eQUqSEg0dngXjCF3t6YbuIovhO7yTUg1tnsPwGaEMqXXIszmllCHVsMAhOPOghhxnKFIrpRo6HGu+GOpvuBT7OizFvpcalC0N1ZBnY0o4HZL3NDwnxGnC4YlqyHN8Wnm4nbfD8w5FajVEQ6YHU0oh0s74XBc1y4Q0JRkyJWkLxXffT48hlyClm1IMGd/0S3iakm6E2QQpVzUEQ4fnkqbDGdpOCYa8z2vwEQo3ZLvw7nAEKuJvwKw56vEdVoqoocP6PurzPaQIGrqRmBqCFMF5mkgIthIVqEXIsBCBFPVZzikvGoCh7axwi/VYOlbdoqobOicRmWrrsKw2Xqps6NoRCqBPaSGvMsGnZGg7NvsqOJTai1xuam4iMJahhrbr2KcRmNcbQam28O6HzwM584bVB/nGxzRPF9ln9YJ5v7tz/uMXo/lprzRzl1Jp5udffr24uKjXP3zYfsatEMDq3mZyNpmcHAsgmRr4bGu/nkgnuqTTifr2FsPfh7N2PhssN9xwvd6z61luRC+Sa5uz4XqDhuvzg36+ZD1icfxNze+O4daQ+PUcG2w2g6yNJdX8bhuuB/h5ionIpGpKNYC3DRvBgp7jNqNVHztfK/v1G26ECrYU9znFuuzMAoI9QxXBaCimkAj2DMNTNCqJ+i0UwRvDfUXBliJzu1lVbqK3DJ8pC7bgNdxU76L9hoBfIrHBKbgL5mjHUD1H23n6nNFwEg1h23ALEkwk5vkEU2gV+oYNTJCzn47BIfQM0RAyBhFdKTqG+6ggXyWe4yH0DOdhwwTTMQNeC31DaC3swmNISdKx5B6epGxp+pEUw706wTDBswGH9zNtwxShDLn2NQS/luHvJEOe9QI7NnUN/yAZpjkE31MazdjknzRDjpu3+BuuPaghxzk4/jGMv6FBMtSplz6C9TD+e5qd2O9L/3rAswXTpWnsz4fxP+M/gnua+N+1Ue9LN9AQMr4/4UGk3Hlzvs3gldh+t1B9POyEkPPdwjinva5BEWR9e3oE74fwxka7N2DyO77aoEIU3vEfwSyGYfx9j/M0EYigx+69zUStM1rd4p7m2uajNJ4Y99lE4xHMlxrejHDIAPQwQ41mhD1WU/6cdxDD57zT6XTPLrJz3j5r/3w8//er0fy3O+yrref7jbrHRiPSs/qGUW5WLr8MJsP9j59C89JqMR6Ipa9huRJqp7dhRkVPY8OrqpqftoYZVT9dDS+zyoJ6Gl6qR1BPQ0hQR8NDSFBDwwpQg1oaHoCC+hlWQUHtDCtYEepnWIYFdTO8jrshIYSaGQLbUU0N4UaqmyElSfUybMbeENyRamhIKUO9DCkh1MqwjG66tTO8ir0hfHASw8gR/ywlGja5/xuAZnjA/dsAtBX/ivu3AbCL0q4h918j4Jc0LcFL7r9GoCwXVoX7ryFwwfGsTo2GdHyqcv8zBp6mOq33bfAb7zL3L4M00WeZQ+4/hgGDqF0I0UrUbKnwge71NWukHZTHTDTbkva4UjbM6nRu6ke1FLM6FqGP2pKhsaBaFLUWbNXieFgxaluDXcrBc19WVc8ueovm6DBammfoDZXhA6ZW9lC/rdoIyplq9o6kZVmHMUjQPg4qVStrdclWD3VvMEM5aGYq19fXleZBbLJTEARBEARBEARBEARBEARBEARBEHz+B91xJIzYVK0AAAAAAElFTkSuQmCC\" />\n </eui-card-header-left-content>\n <eui-card-header-title>\n <a\n class=\"h5 eui-u-text-link-external\"\n href=\"https://www.figma.com/file/jQ9htWvSM8SWTPuk3hoigc/{{ figmaUrl }}\"\n target=\"blank\">\n <span class=\"eui-u-color-grey-75\">Layout component /</span>\n {{ label }}\n </a>\n </eui-card-header-title>\n </eui-card-header>\n </eui-card>\n </ng-template>\n </euiTabContent>\n </eui-tab>\n <eui-tab>\n <euiTabLabel>Pattern sample</euiTabLabel>\n <euiTabContent>\n <ng-content select=\"docPagePatternSample\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <euiTabsRightContent>\n <button type=\"button\" euiButton euiAccent euiSizeS (click)=\"onNavigateToCode($event)\">\n <span class=\"eui-icon eui-icon-code\"></span>\n View sources\n </button>\n </euiTabsRightContent>\n</eui-tabs>\n\n<button\n type=\"button\"\n *ngIf=\"isShowGoTop && tabSelectedIndex === 0\"\n euiButton\n euiIconButton\n euiOutline\n euiRounded\n euiSizeL\n class=\"eui-button-fixed eui-u-sh-8\"\n (click)=\"gotoTop()\"\n title=\"Goto Top\"\n aria-label=\"Goto Top\">\n <!-- \uD83D\uDC46 -->\n <eui-icon-svg icon=\"eui-arrow-up\" set=\"eui\" size=\"l\" fillColor=\"grey-50\"></eui-icon-svg>\n</button>\n", styles: [".doc-page-pattern{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%;padding:var(--eui-s-xl)}.doc-page-pattern sample,.doc-page-pattern eui-tabs,.doc-page-pattern .eui-tabs,.doc-page-pattern .eui-tab-content-wrapper,.doc-page-pattern .eui-tab-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:100%}.doc-page-pattern .eui-tabs .eui-tab-item--active,.doc-page-pattern .eui-tabs .eui-tab-item:focus{background-color:var(--eui-c-white)}.doc-page-pattern .eui-tabs .eui-tab-content-wrapper .eui-tab-content{padding:var(--eui-s-m)}.doc-page-pattern docPagePatternSample{display:flex;flex-direction:column;flex-grow:1;min-height:0;position:relative;width:100%}.doc-page-pattern .html{display:block;position:relative;text-align:left}\n"] }]
1459
+ }], propDecorators: { cssClasses: [{
1460
+ type: HostBinding,
1461
+ args: ['class']
1462
+ }], sampleContent: [{
1463
+ type: ContentChild,
1464
+ args: [forwardRef(() => DocPagePatternSampleDirective)]
1465
+ }], docContent: [{
1466
+ type: ContentChild,
1467
+ args: [forwardRef(() => DocPagePatternDocDirective)]
1468
+ }], id: [{
1469
+ type: Input
1470
+ }], label: [{
1471
+ type: Input
1472
+ }], anatomyImage: [{
1473
+ type: Input
1474
+ }], docEntries: [{
1475
+ type: Input
1476
+ }], dos: [{
1477
+ type: Input
1478
+ }], donts: [{
1479
+ type: Input
1480
+ }], sourceUrl: [{
1481
+ type: Input
1482
+ }], figmaUrl: [{
1483
+ type: Input
1484
+ }], figmaEmbedSrc: [{
1485
+ type: Input
1486
+ }], checkScroll: [{
1487
+ type: HostListener,
1488
+ args: ['window:scroll']
1489
+ }] } });
1490
+
1491
+ const COMPONENTS = [
1492
+ EuiCodeHighlighterDirective,
1493
+ DocPageComponent,
1494
+ DocPageCodeComponent,
1495
+ DocPageCodeFabComponent,
1496
+ DocPageCodeModalComponent,
1497
+ DocPageOverviewContentDirective,
1498
+ DocPageOverviewDefaultContentDirective,
1499
+ DocPageApiContentDirective,
1500
+ DocPageInteractiveContentDirective,
1501
+ DocPageSamplesContentDirective,
1502
+ DocPageSectionsContentDirective,
1503
+ DocPageAccessibilityContentDirective,
1504
+ DocPageThemingContentDirective,
1505
+ DocSampleComponent,
1506
+ DocSampleApiComponent,
1507
+ DocSectionComponent,
1508
+ DocSectionCodeComponent,
1509
+ DocSectionCodeHtmlTagDirective,
1510
+ DocSectionCodeTsTagDirective,
1511
+ DocSectionCodeServiceTagDirective,
1512
+ DocSectionCodeCssTagDirective,
1513
+ DocSectionCodeDocTagDirective,
1514
+ DocSectionCodeDescriptionTagDirective,
1515
+ LoremIpsumSampleComponent,
1516
+ PlaygroundComponent,
1517
+ DocPagePatternComponent,
1518
+ DocPagePatternDocDirective,
1519
+ DocPagePatternSampleDirective,
2681
1520
  ];
2682
- var EuiShowcaseModule = class _EuiShowcaseModule {
2683
- static {
2684
- this.ɵfac = i014.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i014, type: _EuiShowcaseModule, deps: [], target: i014.ɵɵFactoryTarget.NgModule });
2685
- }
2686
- static {
2687
- this.ɵmod = i014.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.2", ngImport: i014, type: _EuiShowcaseModule, declarations: [
2688
- EuiCodeHighlighterDirective,
2689
- DocPageComponent,
2690
- DocPageCodeComponent,
2691
- DocPageCodeFabComponent,
2692
- DocPageCodeModalComponent,
2693
- DocPageOverviewContentDirective,
2694
- DocPageApiContentDirective,
2695
- DocPageInteractiveContentDirective,
2696
- DocPageSamplesContentDirective,
2697
- DocPageSectionsContentDirective,
2698
- DocPageAccessibilityContentDirective,
2699
- DocPageThemingContentDirective,
2700
- DocSampleComponent,
2701
- DocSampleApiComponent,
2702
- DocSectionComponent,
2703
- DocSectionCodeComponent,
2704
- DocSectionCodeHtmlTagDirective,
2705
- DocSectionCodeTsTagDirective,
2706
- DocSectionCodeServiceTagDirective,
2707
- DocSectionCodeCssTagDirective,
2708
- DocSectionCodeDocTagDirective,
2709
- DocSectionCodeDescriptionTagDirective,
2710
- LoremIpsumSampleComponent,
2711
- PlaygroundComponent,
2712
- DocPagePatternComponent,
2713
- DocPagePatternDocDirective,
2714
- DocPagePatternSampleDirective
2715
- ], imports: [
2716
- CommonModule,
2717
- EuiCardModule,
2718
- EuiButtonModule,
2719
- EuiTabsModule,
2720
- EuiPageModule,
2721
- EuiChipModule,
2722
- EuiDialogModule,
2723
- EuiAlertModule,
2724
- EuiBlockContentModule,
2725
- EuiBadgeModule,
2726
- EuiIconModule,
2727
- EuiLabelModule
2728
- ], exports: [
2729
- EuiCodeHighlighterDirective,
2730
- DocPageComponent,
2731
- DocPageCodeComponent,
2732
- DocPageCodeFabComponent,
2733
- DocPageCodeModalComponent,
2734
- DocPageOverviewContentDirective,
2735
- DocPageApiContentDirective,
2736
- DocPageInteractiveContentDirective,
2737
- DocPageSamplesContentDirective,
2738
- DocPageSectionsContentDirective,
2739
- DocPageAccessibilityContentDirective,
2740
- DocPageThemingContentDirective,
2741
- DocSampleComponent,
2742
- DocSampleApiComponent,
2743
- DocSectionComponent,
2744
- DocSectionCodeComponent,
2745
- DocSectionCodeHtmlTagDirective,
2746
- DocSectionCodeTsTagDirective,
2747
- DocSectionCodeServiceTagDirective,
2748
- DocSectionCodeCssTagDirective,
2749
- DocSectionCodeDocTagDirective,
2750
- DocSectionCodeDescriptionTagDirective,
2751
- LoremIpsumSampleComponent,
2752
- PlaygroundComponent,
2753
- DocPagePatternComponent,
2754
- DocPagePatternDocDirective,
2755
- DocPagePatternSampleDirective
2756
- ] });
2757
- }
2758
- static {
2759
- this.ɵinj = i014.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i014, type: _EuiShowcaseModule, providers: [StackblitzService], imports: [
2760
- CommonModule,
2761
- EuiCardModule,
2762
- EuiButtonModule,
2763
- EuiTabsModule,
2764
- EuiPageModule,
2765
- EuiChipModule,
2766
- EuiDialogModule,
2767
- EuiAlertModule,
2768
- EuiBlockContentModule,
2769
- EuiBadgeModule,
2770
- EuiIconModule,
2771
- EuiLabelModule
2772
- ] });
2773
- }
2774
- };
2775
- i014.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i014, type: EuiShowcaseModule, decorators: [{
2776
- type: NgModule,
2777
- args: [{
2778
- declarations: [...COMPONENTS],
2779
- imports: [
2780
- CommonModule,
2781
- EuiCardModule,
2782
- EuiButtonModule,
2783
- EuiTabsModule,
2784
- EuiPageModule,
2785
- EuiChipModule,
2786
- EuiDialogModule,
2787
- EuiAlertModule,
2788
- EuiBlockContentModule,
2789
- EuiBadgeModule,
2790
- EuiIconModule,
2791
- EuiLabelModule
2792
- ],
2793
- exports: [...COMPONENTS],
2794
- providers: [StackblitzService]
2795
- }]
2796
- }] });
2797
- export {
2798
- DocPageAccessibilityContentDirective,
2799
- DocPageApiContentDirective,
2800
- DocPageCodeComponent,
2801
- DocPageCodeFabComponent,
2802
- DocPageCodeModalComponent,
2803
- DocPageComponent,
2804
- DocPageInteractiveContentDirective,
2805
- DocPageOverviewContentDirective,
2806
- DocPagePatternComponent,
2807
- DocPagePatternDocDirective,
2808
- DocPagePatternSampleDirective,
2809
- DocPageSamplesContentDirective,
2810
- DocPageSectionsContentDirective,
2811
- DocPageThemingContentDirective,
2812
- DocSampleApiComponent,
2813
- DocSampleComponent,
2814
- DocSectionCodeComponent,
2815
- DocSectionCodeCssTagDirective,
2816
- DocSectionCodeDescriptionTagDirective,
2817
- DocSectionCodeDocTagDirective,
2818
- DocSectionCodeHtmlTagDirective,
2819
- DocSectionCodeServiceTagDirective,
2820
- DocSectionCodeTsTagDirective,
2821
- DocSectionComponent,
2822
- EuiCodeHighlighterDirective,
2823
- EuiShowcaseModule,
2824
- LoremIpsumSampleComponent,
2825
- PACKAGE_JSON,
2826
- PlaygroundComponent,
2827
- angularJsonFile,
2828
- indexHtmlFile,
2829
- mainFile,
2830
- moduleFile,
2831
- polyfillsFile,
2832
- tsConfig
2833
- };
1521
+ class EuiShowcaseModule {
1522
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiShowcaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1523
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: EuiShowcaseModule, declarations: [EuiCodeHighlighterDirective,
1524
+ DocPageComponent,
1525
+ DocPageCodeComponent,
1526
+ DocPageCodeFabComponent,
1527
+ DocPageCodeModalComponent,
1528
+ DocPageOverviewContentDirective,
1529
+ DocPageOverviewDefaultContentDirective,
1530
+ DocPageApiContentDirective,
1531
+ DocPageInteractiveContentDirective,
1532
+ DocPageSamplesContentDirective,
1533
+ DocPageSectionsContentDirective,
1534
+ DocPageAccessibilityContentDirective,
1535
+ DocPageThemingContentDirective,
1536
+ DocSampleComponent,
1537
+ DocSampleApiComponent,
1538
+ DocSectionComponent,
1539
+ DocSectionCodeComponent,
1540
+ DocSectionCodeHtmlTagDirective,
1541
+ DocSectionCodeTsTagDirective,
1542
+ DocSectionCodeServiceTagDirective,
1543
+ DocSectionCodeCssTagDirective,
1544
+ DocSectionCodeDocTagDirective,
1545
+ DocSectionCodeDescriptionTagDirective,
1546
+ LoremIpsumSampleComponent,
1547
+ PlaygroundComponent,
1548
+ DocPagePatternComponent,
1549
+ DocPagePatternDocDirective,
1550
+ DocPagePatternSampleDirective], imports: [CommonModule,
1551
+ EuiCardModule,
1552
+ EuiButtonModule,
1553
+ EuiTabsModule,
1554
+ EuiPageModule,
1555
+ EuiChipModule,
1556
+ EuiDialogModule,
1557
+ EuiAlertModule,
1558
+ EuiBlockContentModule,
1559
+ EuiBadgeModule,
1560
+ EuiIconModule,
1561
+ EuiLabelModule], exports: [EuiCodeHighlighterDirective,
1562
+ DocPageComponent,
1563
+ DocPageCodeComponent,
1564
+ DocPageCodeFabComponent,
1565
+ DocPageCodeModalComponent,
1566
+ DocPageOverviewContentDirective,
1567
+ DocPageOverviewDefaultContentDirective,
1568
+ DocPageApiContentDirective,
1569
+ DocPageInteractiveContentDirective,
1570
+ DocPageSamplesContentDirective,
1571
+ DocPageSectionsContentDirective,
1572
+ DocPageAccessibilityContentDirective,
1573
+ DocPageThemingContentDirective,
1574
+ DocSampleComponent,
1575
+ DocSampleApiComponent,
1576
+ DocSectionComponent,
1577
+ DocSectionCodeComponent,
1578
+ DocSectionCodeHtmlTagDirective,
1579
+ DocSectionCodeTsTagDirective,
1580
+ DocSectionCodeServiceTagDirective,
1581
+ DocSectionCodeCssTagDirective,
1582
+ DocSectionCodeDocTagDirective,
1583
+ DocSectionCodeDescriptionTagDirective,
1584
+ LoremIpsumSampleComponent,
1585
+ PlaygroundComponent,
1586
+ DocPagePatternComponent,
1587
+ DocPagePatternDocDirective,
1588
+ DocPagePatternSampleDirective] }); }
1589
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiShowcaseModule, providers: [StackblitzService], imports: [CommonModule,
1590
+ EuiCardModule,
1591
+ EuiButtonModule,
1592
+ EuiTabsModule,
1593
+ EuiPageModule,
1594
+ EuiChipModule,
1595
+ EuiDialogModule,
1596
+ EuiAlertModule,
1597
+ EuiBlockContentModule,
1598
+ EuiBadgeModule,
1599
+ EuiIconModule,
1600
+ EuiLabelModule] }); }
1601
+ }
1602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiShowcaseModule, decorators: [{
1603
+ type: NgModule,
1604
+ args: [{
1605
+ declarations: [...COMPONENTS],
1606
+ imports: [
1607
+ CommonModule,
1608
+ EuiCardModule,
1609
+ EuiButtonModule,
1610
+ EuiTabsModule,
1611
+ EuiPageModule,
1612
+ EuiChipModule,
1613
+ EuiDialogModule,
1614
+ EuiAlertModule,
1615
+ EuiBlockContentModule,
1616
+ EuiBadgeModule,
1617
+ EuiIconModule,
1618
+ EuiLabelModule,
1619
+ ],
1620
+ exports: [...COMPONENTS],
1621
+ providers: [StackblitzService],
1622
+ }]
1623
+ }] });
1624
+
1625
+ /**
1626
+ * Generated bundle index. Do not edit.
1627
+ */
1628
+
1629
+ export { DocPageAccessibilityContentDirective, DocPageApiContentDirective, DocPageCodeComponent, DocPageCodeFabComponent, DocPageCodeModalComponent, DocPageComponent, DocPageInteractiveContentDirective, DocPageOverviewContentDirective, DocPageOverviewDefaultContentDirective, DocPagePatternComponent, DocPagePatternDocDirective, DocPagePatternSampleDirective, DocPageSamplesContentDirective, DocPageSectionsContentDirective, DocPageThemingContentDirective, DocSampleApiComponent, DocSampleComponent, DocSectionCodeComponent, DocSectionCodeCssTagDirective, DocSectionCodeDescriptionTagDirective, DocSectionCodeDocTagDirective, DocSectionCodeHtmlTagDirective, DocSectionCodeServiceTagDirective, DocSectionCodeTsTagDirective, DocSectionComponent, EuiCodeHighlighterDirective, EuiShowcaseModule, LoremIpsumSampleComponent, PACKAGE_JSON, PlaygroundComponent, angularJsonFile, indexHtmlFile, mainFile, moduleFile, polyfillsFile, tsConfig };
2834
1630
  //# sourceMappingURL=eui-showcase.mjs.map