valtech-components 2.0.962 → 2.0.964

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 (37) hide show
  1. package/esm2022/lib/components/molecules/content-card/content-card.component.mjs +86 -0
  2. package/esm2022/lib/components/molecules/content-card/types.mjs +11 -0
  3. package/esm2022/lib/components/molecules/info-card/info-card.component.mjs +126 -0
  4. package/esm2022/lib/components/molecules/info-card/types.mjs +11 -0
  5. package/esm2022/lib/components/molecules/metric-card/metric-card.component.mjs +146 -0
  6. package/esm2022/lib/components/molecules/metric-card/types.mjs +10 -0
  7. package/esm2022/lib/components/molecules/pill/pill.component.mjs +100 -105
  8. package/esm2022/lib/components/molecules/pill/types.mjs +1 -1
  9. package/esm2022/lib/components/organisms/article-strip/article-strip.component.mjs +127 -0
  10. package/esm2022/lib/components/organisms/article-strip/types.mjs +8 -0
  11. package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +180 -0
  12. package/esm2022/lib/components/organisms/auth-cta/types.mjs +9 -0
  13. package/esm2022/lib/services/org/org.service.mjs +11 -1
  14. package/esm2022/lib/services/requests/request.service.mjs +11 -4
  15. package/esm2022/lib/services/requests/types.mjs +1 -1
  16. package/esm2022/lib/version.mjs +2 -2
  17. package/esm2022/public-api.mjs +12 -1
  18. package/fesm2022/valtech-components.mjs +821 -124
  19. package/fesm2022/valtech-components.mjs.map +1 -1
  20. package/lib/components/molecules/article-card/article-card.component.d.ts +1 -1
  21. package/lib/components/molecules/content-card/content-card.component.d.ts +26 -0
  22. package/lib/components/molecules/content-card/types.d.ts +30 -0
  23. package/lib/components/molecules/info-card/info-card.component.d.ts +37 -0
  24. package/lib/components/molecules/info-card/types.d.ts +44 -0
  25. package/lib/components/molecules/metric-card/metric-card.component.d.ts +34 -0
  26. package/lib/components/molecules/metric-card/types.d.ts +46 -0
  27. package/lib/components/molecules/pill/pill.component.d.ts +10 -26
  28. package/lib/components/molecules/pill/types.d.ts +76 -35
  29. package/lib/components/organisms/article-strip/article-strip.component.d.ts +38 -0
  30. package/lib/components/organisms/article-strip/types.d.ts +29 -0
  31. package/lib/components/organisms/auth-cta/auth-cta.component.d.ts +44 -0
  32. package/lib/components/organisms/auth-cta/types.d.ts +42 -0
  33. package/lib/services/org/org.service.d.ts +5 -1
  34. package/lib/services/requests/types.d.ts +1 -0
  35. package/lib/version.d.ts +1 -1
  36. package/package.json +1 -1
  37. package/public-api.d.ts +10 -0
@@ -1,107 +1,97 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
3
- import { IonIcon } from '@ionic/angular/standalone';
3
+ import { IonIcon, IonRippleEffect } from '@ionic/angular/standalone';
4
4
  import { PresetService } from '../../../services/presets';
5
- import { ThemeService } from '../../../services/theme.service';
6
- import { ActionHeaderComponent } from '../action-header/action-header.component';
7
5
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- /**
10
- * val-pill
11
- *
12
- * Has two modes:
13
- *
14
- * 1. **Card mode** (legacy) — pass `content` (`ActionHeaderMetadata`). Renders a
15
- * large fun-card with a title + action. Backwards compatible.
16
- *
17
- * 2. **Text-pill / badge mode** — pass `label`. Renders a compact rounded pill
18
- * with configurable `color`, `weight`, `size`, optional `icon`, and an
19
- * optional click action (`clickable` → emits `pillClick`).
20
- *
21
- * @example Text-pill (badge):
22
- * <val-pill [props]="{ label: 'v1.2.0', color: 'dark', weight: 'bold' }" />
23
- *
24
- * @example Clickable text-pill:
25
- * <val-pill
26
- * [props]="{ label: 'Beta', color: 'primary', clickable: true }"
27
- * (pillClick)="onClick($event)"
28
- * />
29
- *
30
- * @example Card mode (legacy):
31
- * <val-pill [props]="{ background: '#fff', bordered: true, content: {...} }" />
32
- *
33
- * @input preset: string - Name of preset to apply
34
- * @input props: PillMetadata - Configuration for the pill
35
- * @output pillClick: PillClickEvent - Emits when a clickable text-pill is activated
36
- */
6
+ const IONIC_COLORS = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
37
7
  export class PillComponent {
38
8
  constructor() {
39
- this.theme = inject(ThemeService);
40
9
  this.presets = inject(PresetService);
41
- /**
42
- * Pill configuration object. Values here override preset values.
43
- */
10
+ /** Pill configuration. Overrides preset values when both are set. */
44
11
  this.props = {};
45
- /**
46
- * Emits when a clickable text-pill is activated (click / Enter / Space).
47
- */
12
+ /** Emits when a clickable badge pill is activated. */
48
13
  this.pillClick = new EventEmitter();
49
- /**
50
- * Resolved props after merging preset + explicit props.
51
- */
14
+ /** Emits when a notification-pill action button is pressed. */
15
+ this.pillAction = new EventEmitter();
52
16
  this.resolvedProps = {};
53
17
  }
54
18
  ngOnInit() {
55
19
  this.resolveProps();
56
20
  }
57
21
  ngOnChanges(changes) {
58
- if (changes['preset'] || changes['props']) {
22
+ if (changes['preset'] || changes['props'])
59
23
  this.resolveProps();
60
- }
61
24
  }
62
- /**
63
- * Merge preset configuration with explicit props.
64
- * Explicit props take precedence over preset values.
65
- */
66
25
  resolveProps() {
67
26
  const presetProps = this.preset ? this.presets.get('pill', this.preset) : {};
68
- this.resolvedProps = {
69
- ...presetProps,
70
- ...this.props,
71
- };
27
+ this.resolvedProps = { ...presetProps, ...this.props };
28
+ }
29
+ get isNotificationPill() {
30
+ return !!this.resolvedProps.notification && !this.resolvedProps.label;
72
31
  }
73
- /** Text-pill mode is active when a `label` is provided. */
74
32
  get isTextPill() {
75
33
  return !!this.resolvedProps.label;
76
34
  }
77
- /** Color variant for the text-pill, with a sensible default. */
78
35
  get pillColor() {
79
36
  return this.resolvedProps.color || 'medium';
80
37
  }
81
- /** Font weight for the text-pill, with a sensible default. */
82
38
  get pillWeight() {
83
39
  return this.resolvedProps.weight || 'medium';
84
40
  }
85
- /** Size for the text-pill, with a sensible default. */
86
41
  get pillSize() {
87
42
  return this.resolvedProps.size || 'small';
88
43
  }
89
- /** Handles activation of a clickable text-pill. */
44
+ getIconColor() {
45
+ const c = this.resolvedProps.notification?.iconColor || 'warning';
46
+ return IONIC_COLORS.includes(c) ? `var(--ion-color-${c})` : c;
47
+ }
90
48
  onPillClick(event) {
91
- if (!this.resolvedProps.clickable) {
49
+ if (!this.resolvedProps.clickable)
92
50
  return;
93
- }
94
- // For the Space key, prevent the page from scrolling.
95
51
  event?.preventDefault();
96
- this.pillClick.emit({
97
- token: this.resolvedProps.token,
98
- label: this.resolvedProps.label,
99
- });
52
+ this.pillClick.emit({ token: this.resolvedProps.token, label: this.resolvedProps.label });
53
+ }
54
+ onActionClick(actionToken, event) {
55
+ event.stopPropagation();
56
+ this.pillAction.emit({ actionToken, pillToken: this.resolvedProps.token });
100
57
  }
101
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PillComponent, isStandalone: true, selector: "val-pill", inputs: { preset: "preset", props: "props" }, outputs: { pillClick: "pillClick" }, usesOnChanges: true, ngImport: i0, template: `
103
- @if (isTextPill) {
104
- <!-- Text-pill / badge mode -->
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PillComponent, isStandalone: true, selector: "val-pill", inputs: { preset: "preset", props: "props" }, outputs: { pillClick: "pillClick", pillAction: "pillAction" }, usesOnChanges: true, ngImport: i0, template: `
60
+ @if (isNotificationPill) {
61
+ <!-- Notification mode -->
62
+ <div class="notif-pill" [attr.aria-live]="'polite'">
63
+ @if (resolvedProps.notification?.icon) {
64
+ <div class="notif-pill__icon-wrap" [style.color]="getIconColor()">
65
+ <ion-icon [name]="resolvedProps.notification!.icon!" />
66
+ </div>
67
+ }
68
+
69
+ <div class="notif-pill__content">
70
+ @if (resolvedProps.notification?.time) {
71
+ <span class="notif-pill__time">{{ resolvedProps.notification!.time }}</span>
72
+ }
73
+ <span class="notif-pill__title">{{ resolvedProps.notification!.title }}</span>
74
+ @if (resolvedProps.notification?.body) {
75
+ <span class="notif-pill__body">{{ resolvedProps.notification!.body }}</span>
76
+ }
77
+ </div>
78
+
79
+ @if (resolvedProps.notification?.actions?.length) {
80
+ <div class="notif-pill__actions">
81
+ @for (action of resolvedProps.notification!.actions!; track action.token) {
82
+ <button
83
+ class="notif-pill__action-btn"
84
+ [attr.aria-label]="action.ariaLabel || action.token"
85
+ (click)="onActionClick(action.token, $event)"
86
+ >
87
+ <ion-icon [name]="action.icon" />
88
+ </button>
89
+ }
90
+ </div>
91
+ }
92
+ </div>
93
+ } @else if (isTextPill) {
94
+ <!-- Badge mode -->
105
95
  <span
106
96
  class="val-pill"
107
97
  [class.val-pill--clickable]="resolvedProps.clickable"
@@ -114,7 +104,7 @@ export class PillComponent {
114
104
  [class.val-pill--w-bold]="pillWeight === 'bold'"
115
105
  [style.--val-pill-color]="'var(--ion-color-' + pillColor + ')'"
116
106
  [style.--val-pill-color-rgb]="'var(--ion-color-' + pillColor + '-rgb)'"
117
- [style.--val-pill-contrast]="'var(--ion-color-' + pillColor + '-contrast)'"
107
+ [style.--val-pill-color-contrast]="'var(--ion-color-' + pillColor + '-contrast)'"
118
108
  [attr.role]="resolvedProps.clickable ? 'button' : null"
119
109
  [attr.tabindex]="resolvedProps.clickable ? 0 : null"
120
110
  [attr.aria-label]="resolvedProps.clickable ? resolvedProps.ariaLabel || resolvedProps.label : null"
@@ -127,29 +117,47 @@ export class PillComponent {
127
117
  }
128
118
  <span class="val-pill__label">{{ resolvedProps.label }}</span>
129
119
  </span>
130
- } @else {
131
- <!-- Card mode (legacy fun-card) -->
132
- <div
133
- [id]="resolvedProps.token"
134
- class="fun-card"
135
- [class.bordered]="resolvedProps.bordered"
136
- [class.hoverable]="resolvedProps.hoverable"
137
- [ngStyle]="{
138
- background: theme.IsDark ? 'var(--ion-background-color)' : resolvedProps.background,
139
- }"
140
- >
141
- @if (resolvedProps.content) {
142
- <val-action-header style="width: 100%;" [props]="resolvedProps.content" />
143
- }
144
- </div>
145
120
  }
146
- `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.fun-card{z-index:0;position:relative;margin-bottom:8px;cursor:pointer;background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));display:flex;border-radius:48px;align-items:start;padding:8px 8px 8px 24px;flex-direction:column;box-shadow:0 .25rem .75rem #12195412}.fun-card.hoverable{transition:transform .3s ease,box-shadow .3s ease}.fun-card.hoverable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.bordered{border:.0625rem solid var(--ion-color-medium)}.val-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;white-space:nowrap;line-height:1;background:rgba(var(--val-pill-color-rgb),.12);color:var(--val-pill-color);border:.0625rem solid rgba(var(--val-pill-color-rgb),.22);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.val-pill__icon{font-size:1em;flex-shrink:0}.val-pill__label{display:inline-block}.val-pill--solid{background:var(--val-pill-color);color:var(--val-pill-contrast);border-color:var(--val-pill-color)}.val-pill--small{padding:5px 12px;font-size:.75rem}.val-pill--medium{padding:7px 14px;font-size:.875rem}.val-pill--large{padding:9px 18px;font-size:1rem}.val-pill--w-normal{font-weight:400}.val-pill--w-medium{font-weight:600}.val-pill--w-bold{font-weight:700}.val-pill--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.val-pill--clickable:hover{background:rgba(var(--val-pill-color-rgb),.2);transform:translateY(-1px)}.val-pill--clickable:active{transform:translateY(0) scale(.98)}.val-pill--clickable:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--val-pill-color-rgb),.3)}.val-pill--clickable.val-pill--solid:hover{filter:brightness(1.08)}:host-context(body.dark) .val-pill:not(.val-pill--solid),:host-context(html.ion-palette-dark) .val-pill:not(.val-pill--solid),:host-context([data-theme=dark]) .val-pill:not(.val-pill--solid){background:rgba(var(--val-pill-color-rgb),.22);border-color:rgba(var(--val-pill-color-rgb),.32)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ActionHeaderComponent, selector: "val-action-header", inputs: ["props"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
121
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;white-space:nowrap;line-height:1;background:rgba(var(--val-pill-color-rgb),.12);color:var(--val-pill-color);border:.0625rem solid rgba(var(--val-pill-color-rgb),.22);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.val-pill__icon{font-size:1em;flex-shrink:0}.val-pill__label{display:inline-block}.val-pill--solid{background:var(--val-pill-color);color:var(--val-pill-color-contrast);border-color:var(--val-pill-color)}.val-pill--small{padding:5px 12px;font-size:.75rem}.val-pill--medium{padding:7px 14px;font-size:.875rem}.val-pill--large{padding:9px 18px;font-size:1rem}.val-pill--w-normal{font-weight:400}.val-pill--w-medium{font-weight:600}.val-pill--w-bold{font-weight:700}.val-pill--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.val-pill--clickable:hover{background:rgba(var(--val-pill-color-rgb),.2);transform:translateY(-1px)}.val-pill--clickable:active{transform:translateY(0) scale(.98)}.val-pill--clickable:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--val-pill-color-rgb),.3)}.val-pill--clickable.val-pill--solid:hover{filter:brightness(1.08)}:host-context(body.dark) .val-pill:not(.val-pill--solid),:host-context(html.ion-palette-dark) .val-pill:not(.val-pill--solid),:host-context([data-theme=dark]) .val-pill:not(.val-pill--solid){background:rgba(var(--val-pill-color-rgb),.22);border-color:rgba(var(--val-pill-color-rgb),.32)}.notif-pill{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;border-radius:999px;background:var(--ion-color-dark);color:var(--ion-color-dark-contrast);max-width:100%;box-sizing:border-box;box-shadow:.1875rem .625rem .5rem #1219541a}.notif-pill__icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#ffffff1a;font-size:1rem}.notif-pill__content{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0;overflow:hidden}.notif-pill__time{font-size:.72rem;font-weight:600;opacity:.55;flex-shrink:0;letter-spacing:.02em}.notif-pill__title{font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-pill__body{font-size:.75rem;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.notif-pill__actions{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:4px}.notif-pill__action-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:none;background:#ffffff1f;color:var(--ion-color-dark-contrast);cursor:pointer;font-size:.9rem;transition:background .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.notif-pill__action-btn:hover{background:#ffffff38}.notif-pill__action-btn:active{transform:scale(.9)}.notif-pill__action-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #ffffff80}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
147
122
  }
148
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PillComponent, decorators: [{
149
124
  type: Component,
150
- args: [{ selector: 'val-pill', standalone: true, imports: [CommonModule, ActionHeaderComponent, IonIcon], template: `
151
- @if (isTextPill) {
152
- <!-- Text-pill / badge mode -->
125
+ args: [{ selector: 'val-pill', standalone: true, imports: [CommonModule, IonIcon, IonRippleEffect], template: `
126
+ @if (isNotificationPill) {
127
+ <!-- Notification mode -->
128
+ <div class="notif-pill" [attr.aria-live]="'polite'">
129
+ @if (resolvedProps.notification?.icon) {
130
+ <div class="notif-pill__icon-wrap" [style.color]="getIconColor()">
131
+ <ion-icon [name]="resolvedProps.notification!.icon!" />
132
+ </div>
133
+ }
134
+
135
+ <div class="notif-pill__content">
136
+ @if (resolvedProps.notification?.time) {
137
+ <span class="notif-pill__time">{{ resolvedProps.notification!.time }}</span>
138
+ }
139
+ <span class="notif-pill__title">{{ resolvedProps.notification!.title }}</span>
140
+ @if (resolvedProps.notification?.body) {
141
+ <span class="notif-pill__body">{{ resolvedProps.notification!.body }}</span>
142
+ }
143
+ </div>
144
+
145
+ @if (resolvedProps.notification?.actions?.length) {
146
+ <div class="notif-pill__actions">
147
+ @for (action of resolvedProps.notification!.actions!; track action.token) {
148
+ <button
149
+ class="notif-pill__action-btn"
150
+ [attr.aria-label]="action.ariaLabel || action.token"
151
+ (click)="onActionClick(action.token, $event)"
152
+ >
153
+ <ion-icon [name]="action.icon" />
154
+ </button>
155
+ }
156
+ </div>
157
+ }
158
+ </div>
159
+ } @else if (isTextPill) {
160
+ <!-- Badge mode -->
153
161
  <span
154
162
  class="val-pill"
155
163
  [class.val-pill--clickable]="resolvedProps.clickable"
@@ -162,7 +170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
162
170
  [class.val-pill--w-bold]="pillWeight === 'bold'"
163
171
  [style.--val-pill-color]="'var(--ion-color-' + pillColor + ')'"
164
172
  [style.--val-pill-color-rgb]="'var(--ion-color-' + pillColor + '-rgb)'"
165
- [style.--val-pill-contrast]="'var(--ion-color-' + pillColor + '-contrast)'"
173
+ [style.--val-pill-color-contrast]="'var(--ion-color-' + pillColor + '-contrast)'"
166
174
  [attr.role]="resolvedProps.clickable ? 'button' : null"
167
175
  [attr.tabindex]="resolvedProps.clickable ? 0 : null"
168
176
  [attr.aria-label]="resolvedProps.clickable ? resolvedProps.ariaLabel || resolvedProps.label : null"
@@ -175,28 +183,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
175
183
  }
176
184
  <span class="val-pill__label">{{ resolvedProps.label }}</span>
177
185
  </span>
178
- } @else {
179
- <!-- Card mode (legacy fun-card) -->
180
- <div
181
- [id]="resolvedProps.token"
182
- class="fun-card"
183
- [class.bordered]="resolvedProps.bordered"
184
- [class.hoverable]="resolvedProps.hoverable"
185
- [ngStyle]="{
186
- background: theme.IsDark ? 'var(--ion-background-color)' : resolvedProps.background,
187
- }"
188
- >
189
- @if (resolvedProps.content) {
190
- <val-action-header style="width: 100%;" [props]="resolvedProps.content" />
191
- }
192
- </div>
193
186
  }
194
- `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.fun-card{z-index:0;position:relative;margin-bottom:8px;cursor:pointer;background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));display:flex;border-radius:48px;align-items:start;padding:8px 8px 8px 24px;flex-direction:column;box-shadow:0 .25rem .75rem #12195412}.fun-card.hoverable{transition:transform .3s ease,box-shadow .3s ease}.fun-card.hoverable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.bordered{border:.0625rem solid var(--ion-color-medium)}.val-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;white-space:nowrap;line-height:1;background:rgba(var(--val-pill-color-rgb),.12);color:var(--val-pill-color);border:.0625rem solid rgba(var(--val-pill-color-rgb),.22);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.val-pill__icon{font-size:1em;flex-shrink:0}.val-pill__label{display:inline-block}.val-pill--solid{background:var(--val-pill-color);color:var(--val-pill-contrast);border-color:var(--val-pill-color)}.val-pill--small{padding:5px 12px;font-size:.75rem}.val-pill--medium{padding:7px 14px;font-size:.875rem}.val-pill--large{padding:9px 18px;font-size:1rem}.val-pill--w-normal{font-weight:400}.val-pill--w-medium{font-weight:600}.val-pill--w-bold{font-weight:700}.val-pill--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.val-pill--clickable:hover{background:rgba(var(--val-pill-color-rgb),.2);transform:translateY(-1px)}.val-pill--clickable:active{transform:translateY(0) scale(.98)}.val-pill--clickable:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--val-pill-color-rgb),.3)}.val-pill--clickable.val-pill--solid:hover{filter:brightness(1.08)}:host-context(body.dark) .val-pill:not(.val-pill--solid),:host-context(html.ion-palette-dark) .val-pill:not(.val-pill--solid),:host-context([data-theme=dark]) .val-pill:not(.val-pill--solid){background:rgba(var(--val-pill-color-rgb),.22);border-color:rgba(var(--val-pill-color-rgb),.32)}\n"] }]
187
+ `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;white-space:nowrap;line-height:1;background:rgba(var(--val-pill-color-rgb),.12);color:var(--val-pill-color);border:.0625rem solid rgba(var(--val-pill-color-rgb),.22);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.val-pill__icon{font-size:1em;flex-shrink:0}.val-pill__label{display:inline-block}.val-pill--solid{background:var(--val-pill-color);color:var(--val-pill-color-contrast);border-color:var(--val-pill-color)}.val-pill--small{padding:5px 12px;font-size:.75rem}.val-pill--medium{padding:7px 14px;font-size:.875rem}.val-pill--large{padding:9px 18px;font-size:1rem}.val-pill--w-normal{font-weight:400}.val-pill--w-medium{font-weight:600}.val-pill--w-bold{font-weight:700}.val-pill--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.val-pill--clickable:hover{background:rgba(var(--val-pill-color-rgb),.2);transform:translateY(-1px)}.val-pill--clickable:active{transform:translateY(0) scale(.98)}.val-pill--clickable:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--val-pill-color-rgb),.3)}.val-pill--clickable.val-pill--solid:hover{filter:brightness(1.08)}:host-context(body.dark) .val-pill:not(.val-pill--solid),:host-context(html.ion-palette-dark) .val-pill:not(.val-pill--solid),:host-context([data-theme=dark]) .val-pill:not(.val-pill--solid){background:rgba(var(--val-pill-color-rgb),.22);border-color:rgba(var(--val-pill-color-rgb),.32)}.notif-pill{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;border-radius:999px;background:var(--ion-color-dark);color:var(--ion-color-dark-contrast);max-width:100%;box-sizing:border-box;box-shadow:.1875rem .625rem .5rem #1219541a}.notif-pill__icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#ffffff1a;font-size:1rem}.notif-pill__content{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0;overflow:hidden}.notif-pill__time{font-size:.72rem;font-weight:600;opacity:.55;flex-shrink:0;letter-spacing:.02em}.notif-pill__title{font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-pill__body{font-size:.75rem;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.notif-pill__actions{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:4px}.notif-pill__action-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:none;background:#ffffff1f;color:var(--ion-color-dark-contrast);cursor:pointer;font-size:.9rem;transition:background .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.notif-pill__action-btn:hover{background:#ffffff38}.notif-pill__action-btn:active{transform:scale(.9)}.notif-pill__action-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #ffffff80}\n"] }]
195
188
  }], propDecorators: { preset: [{
196
189
  type: Input
197
190
  }], props: [{
198
191
  type: Input
199
192
  }], pillClick: [{
200
193
  type: Output
194
+ }], pillAction: [{
195
+ type: Output
201
196
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvcGlsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQXNEakY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBL0UxQjtRQWdGRSxVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFReEM7O1dBRUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUV6RDs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7S0F5RGxEO0lBdkRDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsMkRBQTJEO0lBQzNELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUM7SUFDOUMsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFDRCxzREFBc0Q7UUFDdEQsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQS9FVSxhQUFhO21HQUFiLGFBQWEsNEtBM0VkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDVCw4ckpBN0NTLFlBQVksb0hBQUUscUJBQXFCLGlGQUFFLE9BQU87OzRGQTRFM0MsYUFBYTtrQkEvRXpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMsWUFDN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUOzhCQXVDUSxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWhlYWRlci9hY3Rpb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaWxsQ2xpY2tFdmVudCwgUGlsbE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1waWxsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQWN0aW9uSGVhZGVyQ29tcG9uZW50LCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGlzVGV4dFBpbGwpIHtcbiAgICAgIDwhLS0gVGV4dC1waWxsIC8gYmFkZ2UgbW9kZSAtLT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwidmFsLXBpbGxcIlxuICAgICAgICBbY2xhc3MudmFsLXBpbGwtLWNsaWNrYWJsZV09XCJyZXNvbHZlZFByb3BzLmNsaWNrYWJsZVwiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tc29saWRdPVwicmVzb2x2ZWRQcm9wcy5zb2xpZFwiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tc21hbGxdPVwicGlsbFNpemUgPT09ICdzbWFsbCdcIlxuICAgICAgICBbY2xhc3MudmFsLXBpbGwtLW1lZGl1bV09XCJwaWxsU2l6ZSA9PT0gJ21lZGl1bSdcIlxuICAgICAgICBbY2xhc3MudmFsLXBpbGwtLWxhcmdlXT1cInBpbGxTaXplID09PSAnbGFyZ2UnXCJcbiAgICAgICAgW2NsYXNzLnZhbC1waWxsLS13LW5vcm1hbF09XCJwaWxsV2VpZ2h0ID09PSAnbm9ybWFsJ1wiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tdy1tZWRpdW1dPVwicGlsbFdlaWdodCA9PT0gJ21lZGl1bSdcIlxuICAgICAgICBbY2xhc3MudmFsLXBpbGwtLXctYm9sZF09XCJwaWxsV2VpZ2h0ID09PSAnYm9sZCdcIlxuICAgICAgICBbc3R5bGUuLS12YWwtcGlsbC1jb2xvcl09XCIndmFyKC0taW9uLWNvbG9yLScgKyBwaWxsQ29sb3IgKyAnKSdcIlxuICAgICAgICBbc3R5bGUuLS12YWwtcGlsbC1jb2xvci1yZ2JdPVwiJ3ZhcigtLWlvbi1jb2xvci0nICsgcGlsbENvbG9yICsgJy1yZ2IpJ1wiXG4gICAgICAgIFtzdHlsZS4tLXZhbC1waWxsLWNvbnRyYXN0XT1cIid2YXIoLS1pb24tY29sb3ItJyArIHBpbGxDb2xvciArICctY29udHJhc3QpJ1wiXG4gICAgICAgIFthdHRyLnJvbGVdPVwicmVzb2x2ZWRQcm9wcy5jbGlja2FibGUgPyAnYnV0dG9uJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJyZXNvbHZlZFByb3BzLmNsaWNrYWJsZSA/IDAgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFByb3BzLmNsaWNrYWJsZSA/IHJlc29sdmVkUHJvcHMuYXJpYUxhYmVsIHx8IHJlc29sdmVkUHJvcHMubGFiZWwgOiBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUGlsbENsaWNrKClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvblBpbGxDbGljaygpXCJcbiAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib25QaWxsQ2xpY2soJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5pY29uKSB7XG4gICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidmFsLXBpbGxfX2ljb25cIiBbbmFtZV09XCJyZXNvbHZlZFByb3BzLmljb25cIiAvPlxuICAgICAgICB9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLXBpbGxfX2xhYmVsXCI+e3sgcmVzb2x2ZWRQcm9wcy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDwhLS0gQ2FyZCBtb2RlIChsZWdhY3kgZnVuLWNhcmQpIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBbaWRdPVwicmVzb2x2ZWRQcm9wcy50b2tlblwiXG4gICAgICAgIGNsYXNzPVwiZnVuLWNhcmRcIlxuICAgICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicmVzb2x2ZWRQcm9wcy5ib3JkZXJlZFwiXG4gICAgICAgIFtjbGFzcy5ob3ZlcmFibGVdPVwicmVzb2x2ZWRQcm9wcy5ob3ZlcmFibGVcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgYmFja2dyb3VuZDogdGhlbWUuSXNEYXJrID8gJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScgOiByZXNvbHZlZFByb3BzLmJhY2tncm91bmQsXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMuY29udGVudCkge1xuICAgICAgICAgIDx2YWwtYWN0aW9uLWhlYWRlciBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtwcm9wc109XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3BpbGwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1waWxsXG4gKlxuICogSGFzIHR3byBtb2RlczpcbiAqXG4gKiAxLiAqKkNhcmQgbW9kZSoqIChsZWdhY3kpIOKAlCBwYXNzIGBjb250ZW50YCAoYEFjdGlvbkhlYWRlck1ldGFkYXRhYCkuIFJlbmRlcnMgYVxuICogICAgbGFyZ2UgZnVuLWNhcmQgd2l0aCBhIHRpdGxlICsgYWN0aW9uLiBCYWNrd2FyZHMgY29tcGF0aWJsZS5cbiAqXG4gKiAyLiAqKlRleHQtcGlsbCAvIGJhZGdlIG1vZGUqKiDigJQgcGFzcyBgbGFiZWxgLiBSZW5kZXJzIGEgY29tcGFjdCByb3VuZGVkIHBpbGxcbiAqICAgIHdpdGggY29uZmlndXJhYmxlIGBjb2xvcmAsIGB3ZWlnaHRgLCBgc2l6ZWAsIG9wdGlvbmFsIGBpY29uYCwgYW5kIGFuXG4gKiAgICBvcHRpb25hbCBjbGljayBhY3Rpb24gKGBjbGlja2FibGVgIOKGkiBlbWl0cyBgcGlsbENsaWNrYCkuXG4gKlxuICogQGV4YW1wbGUgVGV4dC1waWxsIChiYWRnZSk6XG4gKiA8dmFsLXBpbGwgW3Byb3BzXT1cInsgbGFiZWw6ICd2MS4yLjAnLCBjb2xvcjogJ2RhcmsnLCB3ZWlnaHQ6ICdib2xkJyB9XCIgLz5cbiAqXG4gKiBAZXhhbXBsZSBDbGlja2FibGUgdGV4dC1waWxsOlxuICogPHZhbC1waWxsXG4gKiAgIFtwcm9wc109XCJ7IGxhYmVsOiAnQmV0YScsIGNvbG9yOiAncHJpbWFyeScsIGNsaWNrYWJsZTogdHJ1ZSB9XCJcbiAqICAgKHBpbGxDbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuICogLz5cbiAqXG4gKiBAZXhhbXBsZSBDYXJkIG1vZGUgKGxlZ2FjeSk6XG4gKiA8dmFsLXBpbGwgW3Byb3BzXT1cInsgYmFja2dyb3VuZDogJyNmZmYnLCBib3JkZXJlZDogdHJ1ZSwgY29udGVudDogey4uLn0gfVwiIC8+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHlcbiAqIEBpbnB1dCBwcm9wczogUGlsbE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHBpbGxcbiAqIEBvdXRwdXQgcGlsbENsaWNrOiBQaWxsQ2xpY2tFdmVudCAtIEVtaXRzIHdoZW4gYSBjbGlja2FibGUgdGV4dC1waWxsIGlzIGFjdGl2YXRlZFxuICovXG5leHBvcnQgY2xhc3MgUGlsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgdGhlbWUgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgcGlsbCBjb25maWd1cmF0aW9uc1xuICAgKiB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbCB2aWEgcHJvdmlkZVZhbHRlY2hQcmVzZXRzKCkuXG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpbGwgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxQaWxsTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBjbGlja2FibGUgdGV4dC1waWxsIGlzIGFjdGl2YXRlZCAoY2xpY2sgLyBFbnRlciAvIFNwYWNlKS5cbiAgICovXG4gIEBPdXRwdXQoKSBwaWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFBpbGxDbGlja0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlZCBwcm9wcyBhZnRlciBtZXJnaW5nIHByZXNldCArIGV4cGxpY2l0IHByb3BzLlxuICAgKi9cbiAgcmVzb2x2ZWRQcm9wczogUGlsbE1ldGFkYXRhID0ge30gYXMgUGlsbE1ldGFkYXRhO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ3BpbGwnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxQaWxsTWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgUGlsbE1ldGFkYXRhO1xuICB9XG5cbiAgLyoqIFRleHQtcGlsbCBtb2RlIGlzIGFjdGl2ZSB3aGVuIGEgYGxhYmVsYCBpcyBwcm92aWRlZC4gKi9cbiAgZ2V0IGlzVGV4dFBpbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlZFByb3BzLmxhYmVsO1xuICB9XG5cbiAgLyoqIENvbG9yIHZhcmlhbnQgZm9yIHRoZSB0ZXh0LXBpbGwsIHdpdGggYSBzZW5zaWJsZSBkZWZhdWx0LiAqL1xuICBnZXQgcGlsbENvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5jb2xvciB8fCAnbWVkaXVtJztcbiAgfVxuXG4gIC8qKiBGb250IHdlaWdodCBmb3IgdGhlIHRleHQtcGlsbCwgd2l0aCBhIHNlbnNpYmxlIGRlZmF1bHQuICovXG4gIGdldCBwaWxsV2VpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy53ZWlnaHQgfHwgJ21lZGl1bSc7XG4gIH1cblxuICAvKiogU2l6ZSBmb3IgdGhlIHRleHQtcGlsbCwgd2l0aCBhIHNlbnNpYmxlIGRlZmF1bHQuICovXG4gIGdldCBwaWxsU2l6ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMuc2l6ZSB8fCAnc21hbGwnO1xuICB9XG5cbiAgLyoqIEhhbmRsZXMgYWN0aXZhdGlvbiBvZiBhIGNsaWNrYWJsZSB0ZXh0LXBpbGwuICovXG4gIG9uUGlsbENsaWNrKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzb2x2ZWRQcm9wcy5jbGlja2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gRm9yIHRoZSBTcGFjZSBrZXksIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBzY3JvbGxpbmcuXG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5waWxsQ2xpY2suZW1pdCh7XG4gICAgICB0b2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuLFxuICAgICAgbGFiZWw6IHRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbCxcbiAgICB9KTtcbiAgfVxufVxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvcGlsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRzFELE1BQU0sWUFBWSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQXVFckgsTUFBTSxPQUFPLGFBQWE7SUFyRTFCO1FBc0VVLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFLeEMscUVBQXFFO1FBQzVELFVBQUssR0FBMEIsRUFBRSxDQUFDO1FBRTNDLHNEQUFzRDtRQUM1QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFekQsK0RBQStEO1FBQ3JELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUUzRCxrQkFBYSxHQUFpQixFQUFrQixDQUFDO0tBZ0RsRDtJQTlDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBMkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hHLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQWtCLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxJQUFJLFNBQVMsQ0FBQztRQUNsRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUMxQyxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsYUFBYSxDQUFDLFdBQW1CLEVBQUUsS0FBaUI7UUFDbEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQzsrR0E5RFUsYUFBYTttR0FBYixhQUFhLHNNQWpFZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4RFQsOGtMQS9EUyxZQUFZLCtCQUFFLE9BQU87OzRGQWtFcEIsYUFBYTtrQkFyRXpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLFlBQ3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThEVDs4QkFPUSxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBQaWxsQWN0aW9uRXZlbnQsIFBpbGxDbGlja0V2ZW50LCBQaWxsTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgSU9OSUNfQ09MT1JTID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeScsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJywgJ2xpZ2h0JywgJ21lZGl1bScsICdkYXJrJ107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1waWxsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGlzTm90aWZpY2F0aW9uUGlsbCkge1xuICAgICAgPCEtLSBOb3RpZmljYXRpb24gbW9kZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3RpZi1waWxsXCIgW2F0dHIuYXJpYS1saXZlXT1cIidwb2xpdGUnXCI+XG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5ub3RpZmljYXRpb24/Lmljb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWYtcGlsbF9faWNvbi13cmFwXCIgW3N0eWxlLmNvbG9yXT1cImdldEljb25Db2xvcigpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicmVzb2x2ZWRQcm9wcy5ub3RpZmljYXRpb24hLmljb24hXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZi1waWxsX19jb250ZW50XCI+XG4gICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLm5vdGlmaWNhdGlvbj8udGltZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZi1waWxsX190aW1lXCI+e3sgcmVzb2x2ZWRQcm9wcy5ub3RpZmljYXRpb24hLnRpbWUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWYtcGlsbF9fdGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm5vdGlmaWNhdGlvbiEudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLm5vdGlmaWNhdGlvbj8uYm9keSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZi1waWxsX19ib2R5XCI+e3sgcmVzb2x2ZWRQcm9wcy5ub3RpZmljYXRpb24hLmJvZHkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMubm90aWZpY2F0aW9uPy5hY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWYtcGlsbF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIHJlc29sdmVkUHJvcHMubm90aWZpY2F0aW9uIS5hY3Rpb25zITsgdHJhY2sgYWN0aW9uLnRva2VuKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmLXBpbGxfX2FjdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aW9uLmFyaWFMYWJlbCB8fCBhY3Rpb24udG9rZW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbi50b2tlbiwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYWN0aW9uLmljb25cIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoaXNUZXh0UGlsbCkge1xuICAgICAgPCEtLSBCYWRnZSBtb2RlIC0tPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJ2YWwtcGlsbFwiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tY2xpY2thYmxlXT1cInJlc29sdmVkUHJvcHMuY2xpY2thYmxlXCJcbiAgICAgICAgW2NsYXNzLnZhbC1waWxsLS1zb2xpZF09XCJyZXNvbHZlZFByb3BzLnNvbGlkXCJcbiAgICAgICAgW2NsYXNzLnZhbC1waWxsLS1zbWFsbF09XCJwaWxsU2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tbWVkaXVtXT1cInBpbGxTaXplID09PSAnbWVkaXVtJ1wiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tbGFyZ2VdPVwicGlsbFNpemUgPT09ICdsYXJnZSdcIlxuICAgICAgICBbY2xhc3MudmFsLXBpbGwtLXctbm9ybWFsXT1cInBpbGxXZWlnaHQgPT09ICdub3JtYWwnXCJcbiAgICAgICAgW2NsYXNzLnZhbC1waWxsLS13LW1lZGl1bV09XCJwaWxsV2VpZ2h0ID09PSAnbWVkaXVtJ1wiXG4gICAgICAgIFtjbGFzcy52YWwtcGlsbC0tdy1ib2xkXT1cInBpbGxXZWlnaHQgPT09ICdib2xkJ1wiXG4gICAgICAgIFtzdHlsZS4tLXZhbC1waWxsLWNvbG9yXT1cIid2YXIoLS1pb24tY29sb3ItJyArIHBpbGxDb2xvciArICcpJ1wiXG4gICAgICAgIFtzdHlsZS4tLXZhbC1waWxsLWNvbG9yLXJnYl09XCIndmFyKC0taW9uLWNvbG9yLScgKyBwaWxsQ29sb3IgKyAnLXJnYiknXCJcbiAgICAgICAgW3N0eWxlLi0tdmFsLXBpbGwtY29sb3ItY29udHJhc3RdPVwiJ3ZhcigtLWlvbi1jb2xvci0nICsgcGlsbENvbG9yICsgJy1jb250cmFzdCknXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyZXNvbHZlZFByb3BzLmNsaWNrYWJsZSA/ICdidXR0b24nIDogbnVsbFwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInJlc29sdmVkUHJvcHMuY2xpY2thYmxlID8gMCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMuY2xpY2thYmxlID8gcmVzb2x2ZWRQcm9wcy5hcmlhTGFiZWwgfHwgcmVzb2x2ZWRQcm9wcy5sYWJlbCA6IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwib25QaWxsQ2xpY2soKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uUGlsbENsaWNrKClcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvblBpbGxDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmljb24pIHtcbiAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ2YWwtcGlsbF9faWNvblwiIFtuYW1lXT1cInJlc29sdmVkUHJvcHMuaWNvblwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWwtcGlsbF9fbGFiZWxcIj57eyByZXNvbHZlZFByb3BzLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcGlsbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQaWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqIE9wdGlvbmFsIHByZXNldCBuYW1lIHJlZ2lzdGVyZWQgdmlhIHByb3ZpZGVWYWx0ZWNoUHJlc2V0cygpLiAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqIFBpbGwgY29uZmlndXJhdGlvbi4gT3ZlcnJpZGVzIHByZXNldCB2YWx1ZXMgd2hlbiBib3RoIGFyZSBzZXQuICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFBpbGxNZXRhZGF0YT4gPSB7fTtcblxuICAvKiogRW1pdHMgd2hlbiBhIGNsaWNrYWJsZSBiYWRnZSBwaWxsIGlzIGFjdGl2YXRlZC4gKi9cbiAgQE91dHB1dCgpIHBpbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UGlsbENsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYSBub3RpZmljYXRpb24tcGlsbCBhY3Rpb24gYnV0dG9uIGlzIHByZXNzZWQuICovXG4gIEBPdXRwdXQoKSBwaWxsQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxQaWxsQWN0aW9uRXZlbnQ+KCk7XG5cbiAgcmVzb2x2ZWRQcm9wczogUGlsbE1ldGFkYXRhID0ge30gYXMgUGlsbE1ldGFkYXRhO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ3BpbGwnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxQaWxsTWV0YWRhdGE+KSA6IHt9O1xuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHsgLi4ucHJlc2V0UHJvcHMsIC4uLnRoaXMucHJvcHMgfSBhcyBQaWxsTWV0YWRhdGE7XG4gIH1cblxuICBnZXQgaXNOb3RpZmljYXRpb25QaWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZWRQcm9wcy5ub3RpZmljYXRpb24gJiYgIXRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbDtcbiAgfVxuXG4gIGdldCBpc1RleHRQaWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbDtcbiAgfVxuXG4gIGdldCBwaWxsQ29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzLmNvbG9yIHx8ICdtZWRpdW0nO1xuICB9XG4gIGdldCBwaWxsV2VpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy53ZWlnaHQgfHwgJ21lZGl1bSc7XG4gIH1cbiAgZ2V0IHBpbGxTaXplKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5zaXplIHx8ICdzbWFsbCc7XG4gIH1cblxuICBnZXRJY29uQ29sb3IoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjID0gdGhpcy5yZXNvbHZlZFByb3BzLm5vdGlmaWNhdGlvbj8uaWNvbkNvbG9yIHx8ICd3YXJuaW5nJztcbiAgICByZXR1cm4gSU9OSUNfQ09MT1JTLmluY2x1ZGVzKGMpID8gYHZhcigtLWlvbi1jb2xvci0ke2N9KWAgOiBjO1xuICB9XG5cbiAgb25QaWxsQ2xpY2soZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNvbHZlZFByb3BzLmNsaWNrYWJsZSkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucGlsbENsaWNrLmVtaXQoeyB0b2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuLCBsYWJlbDogdGhpcy5yZXNvbHZlZFByb3BzLmxhYmVsIH0pO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb25Ub2tlbjogc3RyaW5nLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucGlsbEFjdGlvbi5lbWl0KHsgYWN0aW9uVG9rZW4sIHBpbGxUb2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuIH0pO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uSGVhZGVyTWV0YWRhdGEgfSBmcm9tICcuLi9hY3Rpb24taGVhZGVyL3R5cGVzJztcblxuLyoqXG4gKiBWaXN1YWwgY29sb3IgdmFyaWFudCBmb3IgdGhlIHRleHQtcGlsbCAoYmFkZ2UpIG1vZGUgb2YgYHZhbC1waWxsYC5cbiAqIE1hcHMgdG8gSW9uaWMgdGhlbWUgY29sb3JzIHNvIGl0IHN0YXlzIGNvaGVyZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIGxpYi5cbiAqL1xuZXhwb3J0IHR5cGUgUGlsbENvbG9yID0gQ29sb3I7XG5cbi8qKlxuICogRm9udCB3ZWlnaHQgZm9yIHRoZSB0ZXh0LXBpbGwgbGFiZWwuXG4gKi9cbmV4cG9ydCB0eXBlIFBpbGxXZWlnaHQgPSAnbm9ybWFsJyB8ICdtZWRpdW0nIHwgJ2JvbGQnO1xuXG4vKipcbiAqIFNpemUgb2YgdGhlIHRleHQtcGlsbCAoYmFkZ2UpIG1vZGUuXG4gKi9cbmV4cG9ydCB0eXBlIFBpbGxTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBgdmFsLXBpbGxgLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaGFzIHR3byBtb2RlczpcbiAqXG4gKiAxLiAqKkNhcmQgbW9kZSoqIChsZWdhY3kpIOKAlCBwcm92aWRlIGBjb250ZW50YCAoYW4gYEFjdGlvbkhlYWRlck1ldGFkYXRhYCkuXG4gKiAgICBSZW5kZXJzIGEgbGFyZ2UgZnVuLWNhcmQgd2l0aCBhIHRpdGxlICsgYWN0aW9uIGJ1dHRvbi5cbiAqXG4gKiAyLiAqKlRleHQtcGlsbCAvIGJhZGdlIG1vZGUqKiDigJQgcHJvdmlkZSBgbGFiZWxgLiBSZW5kZXJzIGEgY29tcGFjdCByb3VuZGVkXG4gKiAgICBwaWxsIHdpdGggYSBzaW5nbGUgdGV4dCBsYWJlbC4gU3VwcG9ydHMgYGNvbG9yYCwgYHdlaWdodGAsIGBzaXplYCBhbmQgYW5cbiAqICAgIG9wdGlvbmFsIGNsaWNrIGFjdGlvbiAoYGNsaWNrYWJsZWAgKyBgcGlsbENsaWNrYCBvdXRwdXQpLlxuICpcbiAqIFdoZW4gYm90aCBhcmUgcHJvdmlkZWQsIGBsYWJlbGAgKHRleHQtcGlsbCBtb2RlKSB0YWtlcyBwcmVjZWRlbmNlLlxuICovXG5leHBvcnQgdHlwZSBQaWxsTWV0YWRhdGEgPSB7XG4gIHRva2VuPzogc3RyaW5nO1xuICBpbWFnZT86IHN0cmluZztcbiAgYm9yZGVyZWQ/OiBib29sZWFuO1xuICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICBob3ZlcmFibGU/OiBib29sZWFuO1xuICAvKiogQ2FyZC1tb2RlIGNvbnRlbnQuIE9wdGlvbmFsIOKAlCBvbWl0IHdoZW4gdXNpbmcgdGV4dC1waWxsIG1vZGUuICovXG4gIGNvbnRlbnQ/OiBBY3Rpb25IZWFkZXJNZXRhZGF0YTtcblxuICAvLyAtLS0gVGV4dC1waWxsIC8gYmFkZ2UgbW9kZSAtLS1cbiAgLyoqIFRleHQtcGlsbCBsYWJlbC4gUHJlc2VuY2Ugb2YgdGhpcyBzd2l0Y2hlcyB0aGUgY29tcG9uZW50IHRvIGJhZGdlIG1vZGUuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQ29sb3IgdmFyaWFudCBmb3IgdGhlIHRleHQtcGlsbC4gRGVmYXVsdCBgbWVkaXVtYC4gKi9cbiAgY29sb3I/OiBQaWxsQ29sb3I7XG4gIC8qKiBGb250IHdlaWdodCBmb3IgdGhlIHRleHQtcGlsbCBsYWJlbC4gRGVmYXVsdCBgbWVkaXVtYC4gKi9cbiAgd2VpZ2h0PzogUGlsbFdlaWdodDtcbiAgLyoqIFNpemUgb2YgdGhlIHRleHQtcGlsbC4gRGVmYXVsdCBgc21hbGxgLiAqL1xuICBzaXplPzogUGlsbFNpemU7XG4gIC8qKiBPcHRpb25hbCBpY29uIG5hbWUgKGlvbmljb24pIHNob3duIGJlZm9yZSB0aGUgbGFiZWwuICovXG4gIGljb24/OiBzdHJpbmc7XG4gIC8qKiBXaGVuIGB0cnVlYCB0aGUgcGlsbCBpcyBpbnRlcmFjdGl2ZTogcG9pbnRlciBjdXJzb3IgKyBlbWl0cyBgcGlsbENsaWNrYC4gKi9cbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgLyoqIFNvbGlkIGZpbGwgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBzb2Z0L3RpbnRlZCBmaWxsLiAqL1xuICBzb2xpZD86IGJvb2xlYW47XG4gIC8qKiBBY2Nlc3NpYmxlIGxhYmVsIG92ZXJyaWRlIGZvciB0aGUgY2xpY2thYmxlIHBpbGwuIEZhbGxzIGJhY2sgdG8gYGxhYmVsYC4gKi9cbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBjbGlja2FibGUgdGV4dC1waWxsIGlzIGFjdGl2YXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWxsQ2xpY2tFdmVudCB7XG4gIC8qKiBUaGUgcGlsbCB0b2tlbiwgaWYgb25lIHdhcyBzZXQuICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKiogVGhlIHBpbGwgbGFiZWwgYXQgY2xpY2sgdGltZS4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG4vKiogQ29sb3IgdmFyaWFudCBmb3IgdGhlIGJhZGdlL3RleHQgcGlsbC4gKi9cbmV4cG9ydCB0eXBlIFBpbGxDb2xvciA9IENvbG9yO1xuXG4vKiogRm9udCB3ZWlnaHQgZm9yIHRoZSBiYWRnZSBsYWJlbC4gKi9cbmV4cG9ydCB0eXBlIFBpbGxXZWlnaHQgPSAnbm9ybWFsJyB8ICdtZWRpdW0nIHwgJ2JvbGQnO1xuXG4vKiogU2l6ZSBvZiB0aGUgYmFkZ2UgcGlsbC4gKi9cbmV4cG9ydCB0eXBlIFBpbGxTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcblxuLyoqXG4gKiBBIHNpbmdsZSBhY3Rpb24gYnV0dG9uIHJlbmRlcmVkIGFzIGEgc21hbGwgY2lyY2xlIGljb24gaW5zaWRlIGEgbm90aWZpY2F0aW9uIHBpbGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlsbEFjdGlvbiB7XG4gIC8qKiBpb25pY29ucyBpY29uIG5hbWUgKi9cbiAgaWNvbjogc3RyaW5nO1xuICAvKiogSWRlbnRpZmllciBlbWl0dGVkIG9uIGNsaWNrICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBBY2Nlc3NpYmxlIGxhYmVsIChmYWxscyBiYWNrIHRvIHRva2VuKSAqL1xuICBhcmlhTGFiZWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTm90aWZpY2F0aW9uLXBpbGwgY29udGVudC4gQWN0aXZhdGVzIG5vdGlmaWNhdGlvbiBtb2RlIHdoZW4gcHJvdmlkZWQuXG4gKlxuICogUmVuZGVycyBhcyBhIHdpZGUgZGFyayBwaWxsOiBpY29uIO+5kiB0aW1lIMK3IHRpdGxlIO+5kiBbYWN0aW9uIGJ1dHRvbnNdLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpbGxOb3RpZmljYXRpb24ge1xuICAvKiogaW9uaWNvbnMgaWNvbiBuYW1lIHNob3duIG9uIHRoZSBsZWZ0ICovXG4gIGljb24/OiBzdHJpbmc7XG4gIC8qKiBJY29uIGNvbG9yIChJb25pYyBjb2xvciBuYW1lIG9yIENTUykuIERlZmF1bHQ6ICd3YXJuaW5nJyAqL1xuICBpY29uQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBTaG9ydCB0aW1lL2FnZSBsYWJlbCAoZS5nLiAnMmgnLCAnbm93JywgJzNtaW4gYWdvJykgKi9cbiAgdGltZT86IHN0cmluZztcbiAgLyoqIE5vdGlmaWNhdGlvbiB0aXRsZSAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgc2Vjb25kYXJ5IGJvZHkgdGV4dCAqL1xuICBib2R5Pzogc3RyaW5nO1xuICAvKiogQ2lyY2xlIGljb24gYnV0dG9ucyBvbiB0aGUgcmlnaHQgKGRpc21pc3MsIHNub296ZSwgZXRjLikgKi9cbiAgYWN0aW9ucz86IFBpbGxBY3Rpb25bXTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBgdmFsLXBpbGxgLlxuICpcbiAqIFR3byBtb2RlcyDigJQgd2hpY2hldmVyIGZpZWxkIGlzIHByZXNlbnQgdGFrZXMgcHJlY2VkZW5jZTpcbiAqXG4gKiAxLiAqKk5vdGlmaWNhdGlvbiBtb2RlKiog4oCUIHByb3ZpZGUgYG5vdGlmaWNhdGlvbmAuIFJlbmRlcnMgYSB3aWRlIGRhcmsgcGlsbFxuICogICAgd2l0aCBpY29uICsgdGltZSArIHRpdGxlICsgY2lyY2xlIGFjdGlvbiBidXR0b25zLlxuICpcbiAqIDIuICoqQmFkZ2UgbW9kZSoqIOKAlCBwcm92aWRlIGBsYWJlbGAuIFJlbmRlcnMgYSBjb21wYWN0IGNvbG91cmVkIGJhZGdlLlxuICpcbiAqIEBleGFtcGxlIEJhZGdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXBpbGwgW3Byb3BzXT1cInsgbGFiZWw6ICd2MS4yLjAnLCBjb2xvcjogJ2RhcmsnLCB3ZWlnaHQ6ICdib2xkJyB9XCIgLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIE5vdGlmaWNhdGlvblxuICogYGBgaHRtbFxuICogPHZhbC1waWxsXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgbm90aWZpY2F0aW9uOiB7XG4gKiAgICAgICBpY29uOiAnYWxhcm0tb3V0bGluZScsXG4gKiAgICAgICBpY29uQ29sb3I6ICd3YXJuaW5nJyxcbiAqICAgICAgIHRpbWU6ICcyaCcsXG4gKiAgICAgICB0aXRsZTogJ1JldW5pw7NuIGVuIDE1IG1pbicsXG4gKiAgICAgICBhY3Rpb25zOiBbXG4gKiAgICAgICAgIHsgaWNvbjogJ21vb24tb3V0bGluZScsIHRva2VuOiAnc25vb3plJyB9LFxuICogICAgICAgICB7IGljb246ICdjbG9zZS1vdXRsaW5lJywgdG9rZW46ICdkaXNtaXNzJyB9XG4gKiAgICAgICBdXG4gKiAgICAgfVxuICogICB9XCJcbiAqICAgKHBpbGxBY3Rpb24pPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gKiAvPlxuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIFBpbGxNZXRhZGF0YSA9IHtcbiAgdG9rZW4/OiBzdHJpbmc7XG5cbiAgLy8gLS0tIE5vdGlmaWNhdGlvbiBtb2RlIC0tLVxuICAvKiogUHJlc2VuY2UgYWN0aXZhdGVzIG5vdGlmaWNhdGlvbiBtb2RlICovXG4gIG5vdGlmaWNhdGlvbj86IFBpbGxOb3RpZmljYXRpb247XG5cbiAgLy8gLS0tIEJhZGdlIG1vZGUgLS0tXG4gIC8qKiBQcmVzZW5jZSBhY3RpdmF0ZXMgYmFkZ2UgbW9kZSAob3ZlcnJpZGVzIG5vdGlmaWNhdGlvbiBtb2RlKSAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIEJhZGdlIGNvbG9yIHZhcmlhbnQuIERlZmF1bHQ6ICdtZWRpdW0nICovXG4gIGNvbG9yPzogUGlsbENvbG9yO1xuICAvKiogRm9udCB3ZWlnaHQuIERlZmF1bHQ6ICdtZWRpdW0nICovXG4gIHdlaWdodD86IFBpbGxXZWlnaHQ7XG4gIC8qKiBCYWRnZSBzaXplLiBEZWZhdWx0OiAnc21hbGwnICovXG4gIHNpemU/OiBQaWxsU2l6ZTtcbiAgLyoqIE9wdGlvbmFsIGxlYWRpbmcgaW9uaWNvbnMgaWNvbiAqL1xuICBpY29uPzogc3RyaW5nO1xuICAvKiogTWFrZXMgdGhlIGJhZGdlIGludGVyYWN0aXZlOiBwb2ludGVyIGN1cnNvciArIGVtaXRzIHBpbGxDbGljayAqL1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICAvKiogU29saWQgZmlsbCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHNvZnQvdGludGVkIGZpbGwgKi9cbiAgc29saWQ/OiBib29sZWFuO1xuICAvKiogQWNjZXNzaWJsZSBsYWJlbCBvdmVycmlkZS4gRmFsbHMgYmFjayB0byBgbGFiZWxgICovXG4gIGFyaWFMYWJlbD86IHN0cmluZztcbn07XG5cbi8qKiBFbWl0dGVkIGJ5IGEgY2xpY2thYmxlIGJhZGdlIHBpbGwuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpbGxDbGlja0V2ZW50IHtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xufVxuXG4vKiogRW1pdHRlZCB3aGVuIGEgbm90aWZpY2F0aW9uLXBpbGwgYWN0aW9uIGJ1dHRvbiBpcyBwcmVzc2VkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWxsQWN0aW9uRXZlbnQge1xuICAvKiogVG9rZW4gb2YgdGhlIGFjdGlvbiBidXR0b24gcHJlc3NlZCAqL1xuICBhY3Rpb25Ub2tlbjogc3RyaW5nO1xuICAvKiogUGlsbCB0b2tlbiBpZiBzZXQgKi9cbiAgcGlsbFRva2VuPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,127 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, computed, EventEmitter, inject, input, Output } from '@angular/core';
3
+ import { RouterLink } from '@angular/router';
4
+ import { NavigationService } from '../../../services/navigation';
5
+ import { ArticleCardComponent } from '../../molecules/article-card/article-card.component';
6
+ import { HorizontalScrollComponent } from '../../atoms/horizontal-scroll/horizontal-scroll.component';
7
+ import { ARTICLE_STRIP_DEFAULTS } from './types';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * val-article-strip
11
+ *
12
+ * Horizontal scroll row of article cards with a section header and an optional
13
+ * "see all" link/action. Reuses val-horizontal-scroll + val-article-card.
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <val-article-strip
18
+ * [props]="{
19
+ * title: 'Latest Articles',
20
+ * seeAllLabel: 'View all',
21
+ * seeAllRoute: '/blog',
22
+ * articles: [...]
23
+ * }"
24
+ * (onArticleClick)="openArticle($event)"
25
+ * />
26
+ * ```
27
+ */
28
+ export class ArticleStripComponent {
29
+ constructor() {
30
+ this.navigation = inject(NavigationService);
31
+ /** Component configuration */
32
+ this.props = input({ articles: [] });
33
+ /** Emitted when the "see all" link/button is clicked */
34
+ this.onSeeAll = new EventEmitter();
35
+ /** Re-emits the onClick event from each article card */
36
+ this.onArticleClick = new EventEmitter();
37
+ /** Merged configuration with defaults */
38
+ this.config = computed(() => ({
39
+ ...ARTICLE_STRIP_DEFAULTS,
40
+ articles: [],
41
+ ...this.props(),
42
+ }));
43
+ this.hasSeeAll = computed(() => !!(this.config().seeAllLabel &&
44
+ (this.config().seeAllRoute || this.config().seeAllHref || this.config().seeAllToken)));
45
+ }
46
+ handleSeeAll(event) {
47
+ const cfg = this.config();
48
+ if (cfg.seeAllHref) {
49
+ event.preventDefault();
50
+ this.navigation.openInNewTab(cfg.seeAllHref);
51
+ }
52
+ this.onSeeAll.emit(cfg.seeAllToken);
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ArticleStripComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ArticleStripComponent, isStandalone: true, selector: "val-article-strip", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSeeAll: "onSeeAll", onArticleClick: "onArticleClick" }, ngImport: i0, template: `
56
+ @if (config().title || hasSeeAll()) {
57
+ <div class="article-strip__header">
58
+ @if (config().title) {
59
+ <h3 class="article-strip__title">{{ config().title }}</h3>
60
+ }
61
+
62
+ @if (hasSeeAll()) {
63
+ <a
64
+ class="article-strip__see-all"
65
+ [routerLink]="config().seeAllRoute ?? null"
66
+ [attr.href]="config().seeAllHref ?? null"
67
+ (click)="handleSeeAll($event)"
68
+ >
69
+ {{ config().seeAllLabel }}
70
+ </a>
71
+ }
72
+ </div>
73
+ }
74
+
75
+ <val-horizontal-scroll
76
+ [items]="config().articles"
77
+ [itemTemplate]="cardTpl"
78
+ [props]="{ gap: config().gap }"
79
+ ></val-horizontal-scroll>
80
+
81
+ <ng-template #cardTpl let-article>
82
+ <div [style.width]="config().cardWidth" [style.flex-shrink]="0">
83
+ <val-article-card [props]="article" (onClick)="onArticleClick.emit($event)"></val-article-card>
84
+ </div>
85
+ </ng-template>
86
+ `, isInline: true, styles: [":host{display:block}.article-strip__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 0 .75rem}.article-strip__title{margin:0;font-size:1.1rem;font-weight:700;color:var(--ion-text-color);line-height:1.3}.article-strip__see-all{flex-shrink:0;font-size:.875rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;transition:opacity .15s ease;cursor:pointer}.article-strip__see-all:hover{opacity:.75;text-decoration:underline}:host-context(body.dark) .article-strip__title,:host-context(html.ion-palette-dark) .article-strip__title,:host-context([data-theme=dark]) .article-strip__title{color:var(--ion-text-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: HorizontalScrollComponent, selector: "val-horizontal-scroll", inputs: ["items", "itemTemplate", "props"] }, { kind: "component", type: ArticleCardComponent, selector: "val-article-card", inputs: ["props"], outputs: ["onClick"] }] }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ArticleStripComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'val-article-strip', standalone: true, imports: [CommonModule, RouterLink, HorizontalScrollComponent, ArticleCardComponent], template: `
91
+ @if (config().title || hasSeeAll()) {
92
+ <div class="article-strip__header">
93
+ @if (config().title) {
94
+ <h3 class="article-strip__title">{{ config().title }}</h3>
95
+ }
96
+
97
+ @if (hasSeeAll()) {
98
+ <a
99
+ class="article-strip__see-all"
100
+ [routerLink]="config().seeAllRoute ?? null"
101
+ [attr.href]="config().seeAllHref ?? null"
102
+ (click)="handleSeeAll($event)"
103
+ >
104
+ {{ config().seeAllLabel }}
105
+ </a>
106
+ }
107
+ </div>
108
+ }
109
+
110
+ <val-horizontal-scroll
111
+ [items]="config().articles"
112
+ [itemTemplate]="cardTpl"
113
+ [props]="{ gap: config().gap }"
114
+ ></val-horizontal-scroll>
115
+
116
+ <ng-template #cardTpl let-article>
117
+ <div [style.width]="config().cardWidth" [style.flex-shrink]="0">
118
+ <val-article-card [props]="article" (onClick)="onArticleClick.emit($event)"></val-article-card>
119
+ </div>
120
+ </ng-template>
121
+ `, styles: [":host{display:block}.article-strip__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 0 .75rem}.article-strip__title{margin:0;font-size:1.1rem;font-weight:700;color:var(--ion-text-color);line-height:1.3}.article-strip__see-all{flex-shrink:0;font-size:.875rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;transition:opacity .15s ease;cursor:pointer}.article-strip__see-all:hover{opacity:.75;text-decoration:underline}:host-context(body.dark) .article-strip__title,:host-context(html.ion-palette-dark) .article-strip__title,:host-context([data-theme=dark]) .article-strip__title{color:var(--ion-text-color)}\n"] }]
122
+ }], propDecorators: { onSeeAll: [{
123
+ type: Output
124
+ }], onArticleClick: [{
125
+ type: Output
126
+ }] } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUtc3RyaXAvYXJ0aWNsZS1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3RHLE9BQU8sRUFBd0Isc0JBQXNCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUF1Q0gsTUFBTSxPQUFPLHFCQUFxQjtJQXRDbEM7UUF1Q1UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLDhCQUE4QjtRQUNyQixVQUFLLEdBQUcsS0FBSyxDQUFnQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLHdEQUF3RDtRQUM5QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFNUQsd0RBQXdEO1FBQzlDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFckUseUNBQXlDO1FBQ3pDLFdBQU0sR0FBRyxRQUFRLENBQ2YsR0FBRyxFQUFFLENBQ0gsQ0FBQztZQUNDLEdBQUcsc0JBQXNCO1lBQ3pCLFFBQVEsRUFBRSxFQUFFO1lBQ1osR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ2hCLENBQXlELENBQzdELENBQUM7UUFFRixjQUFTLEdBQUcsUUFBUSxDQUNsQixHQUFHLEVBQUUsQ0FDSCxDQUFDLENBQUMsQ0FDQSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVztZQUN6QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQ3JGLENBQ0osQ0FBQztLQVVIO0lBUkMsWUFBWSxDQUFDLEtBQWlCO1FBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0FyQ1UscUJBQXFCO21HQUFyQixxQkFBcUIsc1JBbEN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVCxxdUJBaENTLFlBQVksK0JBQUUsVUFBVSxvT0FBRSx5QkFBeUIsOEdBQUUsb0JBQW9COzs0RkFtQ3hFLHFCQUFxQjtrQkF0Q2pDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLENBQUMsWUFDMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7OEJBVVMsUUFBUTtzQkFBakIsTUFBTTtnQkFHRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBBcnRpY2xlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9hcnRpY2xlLWNhcmQvYXJ0aWNsZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcnRpY2xlQ2FyZENsaWNrRXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYXJ0aWNsZS1jYXJkL3R5cGVzJztcbmltcG9ydCB7IEhvcml6b250YWxTY3JvbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9ob3Jpem9udGFsLXNjcm9sbC9ob3Jpem9udGFsLXNjcm9sbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZVN0cmlwTWV0YWRhdGEsIEFSVElDTEVfU1RSSVBfREVGQVVMVFMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtYXJ0aWNsZS1zdHJpcFxuICpcbiAqIEhvcml6b250YWwgc2Nyb2xsIHJvdyBvZiBhcnRpY2xlIGNhcmRzIHdpdGggYSBzZWN0aW9uIGhlYWRlciBhbmQgYW4gb3B0aW9uYWxcbiAqIFwic2VlIGFsbFwiIGxpbmsvYWN0aW9uLiBSZXVzZXMgdmFsLWhvcml6b250YWwtc2Nyb2xsICsgdmFsLWFydGljbGUtY2FyZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1hcnRpY2xlLXN0cmlwXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGl0bGU6ICdMYXRlc3QgQXJ0aWNsZXMnLFxuICogICAgIHNlZUFsbExhYmVsOiAnVmlldyBhbGwnLFxuICogICAgIHNlZUFsbFJvdXRlOiAnL2Jsb2cnLFxuICogICAgIGFydGljbGVzOiBbLi4uXVxuICogICB9XCJcbiAqICAgKG9uQXJ0aWNsZUNsaWNrKT1cIm9wZW5BcnRpY2xlKCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXJ0aWNsZS1zdHJpcCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlckxpbmssIEhvcml6b250YWxTY3JvbGxDb21wb25lbnQsIEFydGljbGVDYXJkQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGNvbmZpZygpLnRpdGxlIHx8IGhhc1NlZUFsbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXJ0aWNsZS1zdHJpcF9faGVhZGVyXCI+XG4gICAgICAgIEBpZiAoY29uZmlnKCkudGl0bGUpIHtcbiAgICAgICAgICA8aDMgY2xhc3M9XCJhcnRpY2xlLXN0cmlwX190aXRsZVwiPnt7IGNvbmZpZygpLnRpdGxlIH19PC9oMz5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoaGFzU2VlQWxsKCkpIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJhcnRpY2xlLXN0cmlwX19zZWUtYWxsXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImNvbmZpZygpLnNlZUFsbFJvdXRlID8/IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJjb25maWcoKS5zZWVBbGxIcmVmID8/IG51bGxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlZUFsbCgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBjb25maWcoKS5zZWVBbGxMYWJlbCB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPHZhbC1ob3Jpem9udGFsLXNjcm9sbFxuICAgICAgW2l0ZW1zXT1cImNvbmZpZygpLmFydGljbGVzXCJcbiAgICAgIFtpdGVtVGVtcGxhdGVdPVwiY2FyZFRwbFwiXG4gICAgICBbcHJvcHNdPVwieyBnYXA6IGNvbmZpZygpLmdhcCB9XCJcbiAgICA+PC92YWwtaG9yaXpvbnRhbC1zY3JvbGw+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NhcmRUcGwgbGV0LWFydGljbGU+XG4gICAgICA8ZGl2IFtzdHlsZS53aWR0aF09XCJjb25maWcoKS5jYXJkV2lkdGhcIiBbc3R5bGUuZmxleC1zaHJpbmtdPVwiMFwiPlxuICAgICAgICA8dmFsLWFydGljbGUtY2FyZCBbcHJvcHNdPVwiYXJ0aWNsZVwiIChvbkNsaWNrKT1cIm9uQXJ0aWNsZUNsaWNrLmVtaXQoJGV2ZW50KVwiPjwvdmFsLWFydGljbGUtY2FyZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FydGljbGUtc3RyaXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJ0aWNsZVN0cmlwQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcblxuICAvKiogQ29tcG9uZW50IGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dDxQYXJ0aWFsPEFydGljbGVTdHJpcE1ldGFkYXRhPj4oeyBhcnRpY2xlczogW10gfSk7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgXCJzZWUgYWxsXCIgbGluay9idXR0b24gaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgb25TZWVBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAvKiogUmUtZW1pdHMgdGhlIG9uQ2xpY2sgZXZlbnQgZnJvbSBlYWNoIGFydGljbGUgY2FyZCAqL1xuICBAT3V0cHV0KCkgb25BcnRpY2xlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFydGljbGVDYXJkQ2xpY2tFdmVudD4oKTtcblxuICAvKiogTWVyZ2VkIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0cyAqL1xuICBjb25maWcgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgKHtcbiAgICAgICAgLi4uQVJUSUNMRV9TVFJJUF9ERUZBVUxUUyxcbiAgICAgICAgYXJ0aWNsZXM6IFtdLFxuICAgICAgICAuLi50aGlzLnByb3BzKCksXG4gICAgICB9KSBhcyBBcnRpY2xlU3RyaXBNZXRhZGF0YSAmIHR5cGVvZiBBUlRJQ0xFX1NUUklQX0RFRkFVTFRTXG4gICk7XG5cbiAgaGFzU2VlQWxsID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgICEhKFxuICAgICAgICB0aGlzLmNvbmZpZygpLnNlZUFsbExhYmVsICYmXG4gICAgICAgICh0aGlzLmNvbmZpZygpLnNlZUFsbFJvdXRlIHx8IHRoaXMuY29uZmlnKCkuc2VlQWxsSHJlZiB8fCB0aGlzLmNvbmZpZygpLnNlZUFsbFRva2VuKVxuICAgICAgKVxuICApO1xuXG4gIGhhbmRsZVNlZUFsbChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5zZWVBbGxIcmVmKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uLm9wZW5Jbk5ld1RhYihjZmcuc2VlQWxsSHJlZik7XG4gICAgfVxuICAgIHRoaXMub25TZWVBbGwuZW1pdChjZmcuc2VlQWxsVG9rZW4pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Default values for ArticleStripMetadata.
3
+ */
4
+ export const ARTICLE_STRIP_DEFAULTS = {
5
+ cardWidth: '280px',
6
+ gap: '16px',
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUtc3RyaXAvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkJBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQThEO0lBQy9GLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLEdBQUcsRUFBRSxNQUFNO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFydGljbGVDYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYXJ0aWNsZS1jYXJkL3R5cGVzJztcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgdmFsLWFydGljbGUtc3RyaXAuXG4gKlxuICogSG9yaXpvbnRhbCBzY3JvbGwgcm93IG9mIGFydGljbGUgY2FyZHMgd2l0aCBhbiBvcHRpb25hbCBzZWN0aW9uIGhlYWRlclxuICogYW5kIGEgXCJzZWUgYWxsXCIgbGluay9hY3Rpb24gb24gdGhlIHJpZ2h0IHNpZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZVN0cmlwTWV0YWRhdGEge1xuICAvKiogU2VjdGlvbiB0aXRsZSBzaG93biBvbiB0aGUgbGVmdCBvZiB0aGUgaGVhZGVyICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogTGFiZWwgZm9yIHRoZSBcInNlZSBhbGxcIiBsaW5rL2J1dHRvbiAqL1xuICBzZWVBbGxMYWJlbD86IHN0cmluZztcbiAgLyoqIEludGVybmFsIEFuZ3VsYXIgcm91dGUgZm9yIHRoZSBcInNlZSBhbGxcIiBhY3Rpb24gKi9cbiAgc2VlQWxsUm91dGU/OiBzdHJpbmcgfCBhbnlbXTtcbiAgLyoqIEV4dGVybmFsIGhyZWYgZm9yIHRoZSBcInNlZSBhbGxcIiBhY3Rpb24gKi9cbiAgc2VlQWxsSHJlZj86IHN0cmluZztcbiAgLyoqIFRva2VuIGVtaXR0ZWQgYnkgKG9uU2VlQWxsKSB3aGVuIG5laXRoZXIgcm91dGUgbm9yIGhyZWYgaXMgc2V0ICovXG4gIHNlZUFsbFRva2VuPzogc3RyaW5nO1xuICAvKiogQXJ0aWNsZXMgdG8gZGlzcGxheSAqL1xuICBhcnRpY2xlczogQXJ0aWNsZUNhcmRNZXRhZGF0YVtdO1xuICAvKiogRml4ZWQgd2lkdGggb2YgZWFjaCBhcnRpY2xlIGNhcmQuIERlZmF1bHQ6ICcyODBweCcgKi9cbiAgY2FyZFdpZHRoPzogc3RyaW5nO1xuICAvKiogR2FwIGJldHdlZW4gY2FyZHMuIERlZmF1bHQ6ICcxNnB4JyAqL1xuICBnYXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmYXVsdCB2YWx1ZXMgZm9yIEFydGljbGVTdHJpcE1ldGFkYXRhLlxuICovXG5leHBvcnQgY29uc3QgQVJUSUNMRV9TVFJJUF9ERUZBVUxUUzogUmVxdWlyZWQ8UGljazxBcnRpY2xlU3RyaXBNZXRhZGF0YSwgJ2NhcmRXaWR0aCcgfCAnZ2FwJz4+ID0ge1xuICBjYXJkV2lkdGg6ICcyODBweCcsXG4gIGdhcDogJzE2cHgnLFxufTtcbiJdfQ==