@seniorsistemas/data-seniorx-core 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/constants/accordion.const.d.ts +4 -4
- package/core/constants/alert.const.d.ts +1 -1
- package/core/constants/autocomplete.const.d.ts +2 -2
- package/core/constants/badge.const.d.ts +1 -1
- package/core/constants/card.const.d.ts +8 -8
- package/core/constants/chips.const.d.ts +2 -2
- package/core/constants/code-editor.const.d.ts +4 -4
- package/core/constants/collapse-link.const.d.ts +2 -2
- package/core/constants/color-picker.const.d.ts +2 -2
- package/core/constants/combobox.const.d.ts +3 -3
- package/core/constants/context-selector.const.d.ts +1 -1
- package/core/constants/editable-overlay.const.d.ts +4 -4
- package/core/constants/fileupload.const.d.ts +3 -3
- package/core/constants/gantt.const.d.ts +1 -1
- package/core/constants/help-popover.const.d.ts +2 -2
- package/core/constants/hyperlink.const.d.ts +2 -2
- package/core/constants/info-sign.const.d.ts +1 -1
- package/core/constants/inline-edit.const.d.ts +4 -4
- package/core/constants/kanban.const.d.ts +2 -2
- package/core/constants/list.const.d.ts +1 -1
- package/core/constants/modalc.const.d.ts +1 -1
- package/core/constants/navigation-button.const.d.ts +3 -3
- package/core/constants/object-card.const.d.ts +2 -2
- package/core/constants/picklist.const.d.ts +2 -2
- package/core/constants/pin-code-field.const.d.ts +3 -3
- package/core/constants/popover.const.d.ts +1 -1
- package/core/constants/progressbar.const.d.ts +1 -1
- package/core/constants/radio.const.d.ts +2 -2
- package/core/constants/rating-scale.const.d.ts +1 -1
- package/core/constants/sidebar.const.d.ts +1 -1
- package/core/constants/slider.const.d.ts +1 -1
- package/core/constants/split-button.const.d.ts +2 -2
- package/core/constants/spotlight.const.d.ts +8 -8
- package/core/constants/star-rating.const.d.ts +2 -2
- package/core/constants/tab.const.d.ts +3 -3
- package/core/constants/table.const.d.ts +1 -0
- package/core/constants/thumbnails.const.d.ts +4 -4
- package/core/constants/token-list.const.d.ts +1 -1
- package/core/types/table-column.type.d.ts +4 -0
- package/core/types/table-options.type.d.ts +3 -0
- package/core/types/table-shared.type.d.ts +1 -1
- package/core/types/tile-select.type.d.ts +17 -0
- package/esm2022/core/constants/accordion.const.mjs +5 -5
- package/esm2022/core/constants/alert.const.mjs +2 -2
- package/esm2022/core/constants/autocomplete.const.mjs +3 -3
- package/esm2022/core/constants/badge.const.mjs +2 -2
- package/esm2022/core/constants/card.const.mjs +9 -9
- package/esm2022/core/constants/chips.const.mjs +3 -3
- package/esm2022/core/constants/code-editor.const.mjs +5 -5
- package/esm2022/core/constants/collapse-link.const.mjs +3 -3
- package/esm2022/core/constants/color-picker.const.mjs +3 -3
- package/esm2022/core/constants/combobox.const.mjs +7 -4
- package/esm2022/core/constants/context-selector.const.mjs +2 -2
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -5
- package/esm2022/core/constants/fileupload.const.mjs +4 -4
- package/esm2022/core/constants/gantt.const.mjs +2 -2
- package/esm2022/core/constants/help-popover.const.mjs +3 -3
- package/esm2022/core/constants/hyperlink.const.mjs +3 -3
- package/esm2022/core/constants/info-sign.const.mjs +2 -2
- package/esm2022/core/constants/inline-edit.const.mjs +5 -5
- package/esm2022/core/constants/kanban.const.mjs +3 -3
- package/esm2022/core/constants/list.const.mjs +2 -2
- package/esm2022/core/constants/loading-state.const.mjs +2 -2
- package/esm2022/core/constants/modalc.const.mjs +2 -2
- package/esm2022/core/constants/navigation-button.const.mjs +4 -4
- package/esm2022/core/constants/object-card.const.mjs +3 -3
- package/esm2022/core/constants/picklist.const.mjs +3 -3
- package/esm2022/core/constants/pin-code-field.const.mjs +4 -4
- package/esm2022/core/constants/popover.const.mjs +8 -2
- package/esm2022/core/constants/progressbar.const.mjs +2 -2
- package/esm2022/core/constants/radio.const.mjs +3 -3
- package/esm2022/core/constants/rating-scale.const.mjs +2 -2
- package/esm2022/core/constants/sidebar.const.mjs +2 -2
- package/esm2022/core/constants/slider.const.mjs +2 -2
- package/esm2022/core/constants/split-button.const.mjs +3 -3
- package/esm2022/core/constants/spotlight.const.mjs +9 -9
- package/esm2022/core/constants/star-rating.const.mjs +3 -3
- package/esm2022/core/constants/tab.const.mjs +4 -4
- package/esm2022/core/constants/table.const.mjs +4 -3
- package/esm2022/core/constants/thumbnails.const.mjs +5 -5
- package/esm2022/core/constants/token-list.const.mjs +2 -2
- package/esm2022/core/data/fontawesome-v5-solid-icons.data.mjs +2 -2
- package/esm2022/core/types/table-column.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/table-shared.type.mjs +1 -1
- package/esm2022/core/types/tile-select.type.mjs +8 -0
- package/esm2022/core/utils/combobox.util.mjs +6 -6
- package/esm2022/features/accordion/components/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/features/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/features/button/button.component.mjs +7 -3
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +7 -3
- package/esm2022/features/chat/chat.component.mjs +4 -4
- package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +3 -3
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +23 -5
- package/esm2022/features/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +3 -3
- package/esm2022/features/currency/currency.component.mjs +1 -1
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +3 -3
- package/esm2022/features/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/features/fileupload/fileupload.component.mjs +4 -4
- package/esm2022/features/filters/filters.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +2 -2
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +1 -1
- package/esm2022/features/image-cropper/image-cropper.component.mjs +9 -9
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/list/list.component.mjs +7 -3
- package/esm2022/features/loading-state/loading-state.component.mjs +5 -5
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
- package/esm2022/features/lookup/lookup.component.mjs +5 -5
- package/esm2022/features/mask/mask.component.mjs +4 -4
- package/esm2022/features/modal/modal.component.mjs +3 -3
- package/esm2022/features/modalc/modalc.component.mjs +3 -3
- package/esm2022/features/number-input/number-input.component.mjs +32 -5
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +1 -1
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +1 -1
- package/esm2022/features/object-card/object-card.component.mjs +2 -2
- package/esm2022/features/paginator/paginator.component.mjs +3 -3
- package/esm2022/features/panel/panel.component.mjs +6 -6
- package/esm2022/features/password-strength/password-strength.component.mjs +6 -6
- package/esm2022/features/picklist/picklist.component.mjs +6 -4
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +3 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +11 -11
- package/esm2022/features/rating-scale/rating-scale.component.mjs +3 -3
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +100 -7
- package/esm2022/features/row-card-list/row-card-list.component.mjs +7 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
- package/esm2022/features/select-button/select-button.component.mjs +5 -5
- package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/speech-recognition/speech-recognition.component.mjs +12 -12
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/features/switch/switch.component.mjs +4 -4
- package/esm2022/features/table/components/table-actions-menu.component.mjs +2 -2
- package/esm2022/features/table/components/table-cell-content.component.mjs +16 -10
- package/esm2022/features/table/table.component.mjs +46 -16
- package/esm2022/features/table/utils/table-visual.util.mjs +25 -7
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/textbox/textbox.component.mjs +3 -3
- package/esm2022/features/tile-select/tile-select.component.mjs +80 -0
- package/esm2022/features/toast/toast.component.mjs +3 -3
- package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +6 -6
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +4760 -4749
- package/esm2022/locales/es-CO.json +4760 -4749
- package/esm2022/locales/pt.json +4760 -4749
- package/esm2022/providers/features.provider.mjs +3 -1
- package/esm2022/public-api.mjs +3 -1
- package/features/button/button.component.d.ts +2 -1
- package/features/card-list/card-list.component.d.ts +3 -1
- package/features/code-editor/code-editor.component.d.ts +2 -1
- package/features/help-popover/help-popover.component.d.ts +1 -1
- package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +4 -4
- package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +2 -2
- package/features/list/list.component.d.ts +3 -1
- package/features/navigation-button/navigation-button.component.d.ts +3 -3
- package/features/number-input/number-input.component.d.ts +7 -1
- package/features/panel/panel.component.d.ts +1 -1
- package/features/picklist/picklist.component.d.ts +3 -2
- package/features/pin-code-field/pin-code-field.component.d.ts +3 -3
- package/features/row-card-list/row-card/row-card.component.d.ts +15 -2
- package/features/row-card-list/row-card-list.component.d.ts +3 -1
- package/features/spotlight/spotlight.component.d.ts +8 -8
- package/features/table/components/table-cell-content.component.d.ts +4 -1
- package/features/table/table.component.d.ts +9 -2
- package/features/table/utils/table-visual.util.d.ts +5 -0
- package/features/textarea/textarea.component.d.ts +1 -1
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +3 -3
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +1 -1
- package/features/tile-select/tile-select.component.d.ts +21 -0
- package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs +4 -0
- package/fesm2022/{seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs.map → seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs.map} +1 -1
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14859 -14534
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +57 -22
- package/public-api.d.ts +3 -0
- package/src/locales/en.json +4760 -4749
- package/src/locales/es-CO.json +4760 -4749
- package/src/locales/pt.json +4760 -4749
- package/styles/sdc-global-variables.scss +2 -2
- package/styles.css +2 -2
- package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs +0 -4
|
@@ -11,6 +11,7 @@ import * as i1 from "@ngx-translate/core";
|
|
|
11
11
|
export class RowCardComponent {
|
|
12
12
|
cdr;
|
|
13
13
|
translate;
|
|
14
|
+
static measureContext;
|
|
14
15
|
constructor(cdr, translate) {
|
|
15
16
|
this.cdr = cdr;
|
|
16
17
|
this.translate = translate;
|
|
@@ -31,7 +32,10 @@ export class RowCardComponent {
|
|
|
31
32
|
cardClick = new EventEmitter();
|
|
32
33
|
cardButtonClick = new EventEmitter();
|
|
33
34
|
contentWrapper;
|
|
35
|
+
titleInnerRef;
|
|
36
|
+
resizeObserver;
|
|
34
37
|
isMobile = isMobile();
|
|
38
|
+
displayedTitle = '';
|
|
35
39
|
get expanded() {
|
|
36
40
|
return !!this.options?.expandable && !!this.isExpanded;
|
|
37
41
|
}
|
|
@@ -78,6 +82,92 @@ export class RowCardComponent {
|
|
|
78
82
|
if (changes['isExpanded'] || changes['options']) {
|
|
79
83
|
queueMicrotask(() => this.updateCollapseHeight());
|
|
80
84
|
}
|
|
85
|
+
if (changes['data'] || changes['options']) {
|
|
86
|
+
this.displayedTitle = this.leftTitleText;
|
|
87
|
+
queueMicrotask(() => this.updateTruncatedTitle());
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
ngAfterViewInit() {
|
|
91
|
+
this.displayedTitle = this.leftTitleText;
|
|
92
|
+
this.setupTitleResizeObserver();
|
|
93
|
+
}
|
|
94
|
+
ngOnDestroy() {
|
|
95
|
+
this.resizeObserver?.disconnect();
|
|
96
|
+
}
|
|
97
|
+
onTitleMouseEnter(event, fullText) {
|
|
98
|
+
const el = event.currentTarget;
|
|
99
|
+
if (this.displayedTitle !== fullText) {
|
|
100
|
+
el.setAttribute('title', fullText);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
el.removeAttribute('title');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
setupTitleResizeObserver() {
|
|
107
|
+
const el = this.titleInnerRef?.nativeElement;
|
|
108
|
+
if (!el || typeof ResizeObserver === 'undefined') {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.resizeObserver = new ResizeObserver(() => this.updateTruncatedTitle());
|
|
112
|
+
this.resizeObserver.observe(el);
|
|
113
|
+
this.updateTruncatedTitle();
|
|
114
|
+
}
|
|
115
|
+
updateTruncatedTitle() {
|
|
116
|
+
const el = this.titleInnerRef?.nativeElement;
|
|
117
|
+
const fullText = this.leftTitleText;
|
|
118
|
+
if (!el || !this.titleEllipsis || !fullText) {
|
|
119
|
+
this.setDisplayedTitle(fullText);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.setDisplayedTitle(this.computeTruncatedText(fullText, el));
|
|
123
|
+
}
|
|
124
|
+
setDisplayedTitle(text) {
|
|
125
|
+
if (text !== this.displayedTitle) {
|
|
126
|
+
this.displayedTitle = text;
|
|
127
|
+
this.cdr.markForCheck();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
computeTruncatedText(text, el) {
|
|
131
|
+
const context = this.getMeasureContext();
|
|
132
|
+
const availableWidth = this.getAvailableWidth(el);
|
|
133
|
+
if (!context || availableWidth <= 0) {
|
|
134
|
+
return text;
|
|
135
|
+
}
|
|
136
|
+
const style = getComputedStyle(el);
|
|
137
|
+
context.font = `${style.fontStyle} ${style.fontWeight} ${style.fontSize} ${style.fontFamily}`;
|
|
138
|
+
if (context.measureText(text).width <= availableWidth) {
|
|
139
|
+
return text;
|
|
140
|
+
}
|
|
141
|
+
const ellipsis = '…';
|
|
142
|
+
let low = 0;
|
|
143
|
+
let high = text.length;
|
|
144
|
+
while (low < high) {
|
|
145
|
+
const mid = Math.ceil((low + high) / 2);
|
|
146
|
+
const candidate = `${text.slice(0, mid).trimEnd()}${ellipsis}`;
|
|
147
|
+
if (context.measureText(candidate).width <= availableWidth) {
|
|
148
|
+
low = mid;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
high = mid - 1;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return low > 0 ? `${text.slice(0, low).trimEnd()}${ellipsis}` : ellipsis;
|
|
155
|
+
}
|
|
156
|
+
getAvailableWidth(el) {
|
|
157
|
+
const container = el.closest('.sdc-info-sign');
|
|
158
|
+
if (!container) {
|
|
159
|
+
return el.clientWidth;
|
|
160
|
+
}
|
|
161
|
+
const icon = container.querySelector('.sdc-info-sign__icon');
|
|
162
|
+
if (!icon) {
|
|
163
|
+
return container.clientWidth;
|
|
164
|
+
}
|
|
165
|
+
const gap = Number.parseFloat(getComputedStyle(container).columnGap) || 0;
|
|
166
|
+
return Math.max(0, container.getBoundingClientRect().width - icon.getBoundingClientRect().width - gap);
|
|
167
|
+
}
|
|
168
|
+
getMeasureContext() {
|
|
169
|
+
RowCardComponent.measureContext ??= document.createElement('canvas').getContext('2d') ?? undefined;
|
|
170
|
+
return RowCardComponent.measureContext;
|
|
81
171
|
}
|
|
82
172
|
onCardClick() {
|
|
83
173
|
this.cardClick.emit(this.data);
|
|
@@ -118,15 +208,15 @@ export class RowCardComponent {
|
|
|
118
208
|
].filter(Boolean);
|
|
119
209
|
if (this.options?.expandable) {
|
|
120
210
|
parts.push(this.translate.instant(this.expanded
|
|
121
|
-
? 'platform.datacore.
|
|
122
|
-
: 'platform.datacore.
|
|
211
|
+
? 'platform.datacore.accessibility_row_card_expanded'
|
|
212
|
+
: 'platform.datacore.accessibility_row_card_collapsed'));
|
|
123
213
|
}
|
|
124
214
|
return parts.join(', ');
|
|
125
215
|
}
|
|
126
216
|
getButtonAriaLabel() {
|
|
127
|
-
const action = resolveTranslatableText(this.translate, this.data?.buttonLabel ?? this.options?.buttonLabel, 'platform.datacore.
|
|
217
|
+
const action = resolveTranslatableText(this.translate, this.data?.buttonLabel ?? this.options?.buttonLabel, 'platform.datacore.list_default_action_label');
|
|
128
218
|
const title = this.leftTitleText;
|
|
129
|
-
return this.translate.instant('platform.datacore.
|
|
219
|
+
return this.translate.instant('platform.datacore.accessibility_row_card_button_action', { action, title });
|
|
130
220
|
}
|
|
131
221
|
onKeyboardActivate(event) {
|
|
132
222
|
if (event.key === 'Enter' || event.key === ' ') {
|
|
@@ -143,7 +233,7 @@ export class RowCardComponent {
|
|
|
143
233
|
return resolveTranslatableText(this.translate, value);
|
|
144
234
|
}
|
|
145
235
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
146
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate", infoTooltip: "infoTooltip", infoTooltipAllowHtml: "infoTooltipAllowHtml", statusTooltip: "statusTooltip", statusTooltipAllowHtml: "statusTooltipAllowHtml", buttonLoading: "buttonLoading" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n [allowHtml]=\"infoTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title\"\n [class.sdc-row-card-title--ellipsis]=\"titleEllipsis\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title\"\n [class.sdc-row-card-title--ellipsis]=\"titleEllipsis\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n [allowHtml]=\"statusTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [loading]=\"isButtonLoading\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{position:relative;z-index:0;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover,.row-card:focus-within{z-index:2}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.2;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{display:flex;align-items:center;min-width:0;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.2}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-icon-cursor: default;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem;display:flex;min-width:0;flex:1 1 auto}.sdc-row-card-title{display:block;flex:1 1 0%;font-size:inherit;min-width:0;max-width:100%;padding:0;margin:0}.sdc-row-card-title--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: InfoSignComponent, selector: "sdc-info-sign", inputs: ["label", "labelParams", "tooltip", "tooltipParams", "iconClass", "iconAriaLabel", "tooltipPosition", "tooltipEvent", "allowHtml", "inline"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
236
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate", infoTooltip: "infoTooltip", infoTooltipAllowHtml: "infoTooltipAllowHtml", statusTooltip: "statusTooltip", statusTooltipAllowHtml: "statusTooltipAllowHtml", buttonLoading: "buttonLoading" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "titleInnerRef", first: true, predicate: ["titleInner"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n [allowHtml]=\"infoTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"sdc-row-card-title\">\n <span\n #titleInner\n class=\"sdc-row-card-title__inner\"\n [class.sdc-row-card-title__inner--ellipsis]=\"titleEllipsis\"\n (mouseenter)=\"titleEllipsis && onTitleMouseEnter($event, leftTitleText)\"\n >{{ displayedTitle }}</span>\n </span>\n </sdc-info-sign>\n } @else {\n <span class=\"sdc-row-card-title\">\n <span\n #titleInner\n class=\"sdc-row-card-title__inner\"\n [class.sdc-row-card-title__inner--ellipsis]=\"titleEllipsis\"\n (mouseenter)=\"titleEllipsis && onTitleMouseEnter($event, leftTitleText)\"\n >{{ displayedTitle }}</span>\n </span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n [allowHtml]=\"statusTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [loading]=\"isButtonLoading\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{position:relative;z-index:0;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover,.row-card:focus-within{z-index:2}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.2;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{display:flex;align-items:center;min-width:0;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.2}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-icon-cursor: default;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem;display:flex;min-width:0;flex:1 1 auto}.sdc-title-row .row-card-info-sign ::ng-deep .sdc-info-sign{flex:1 1 auto;min-width:0}.sdc-row-card-title{display:block;flex:0 1 auto;font-size:inherit;min-width:0;max-width:100%;padding:0;margin:0}.sdc-row-card-title__inner{display:block}.sdc-row-card-title__inner--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "rounded", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: InfoSignComponent, selector: "sdc-info-sign", inputs: ["label", "labelParams", "tooltip", "tooltipParams", "iconClass", "iconAriaLabel", "tooltipPosition", "tooltipEvent", "allowHtml", "inline"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
147
237
|
}
|
|
148
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, decorators: [{
|
|
149
239
|
type: Component,
|
|
@@ -153,7 +243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
153
243
|
InfoSignComponent,
|
|
154
244
|
NgClass,
|
|
155
245
|
NgTemplateOutlet
|
|
156
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n [allowHtml]=\"infoTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-
|
|
246
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n [allowHtml]=\"infoTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"sdc-row-card-title\">\n <span\n #titleInner\n class=\"sdc-row-card-title__inner\"\n [class.sdc-row-card-title__inner--ellipsis]=\"titleEllipsis\"\n (mouseenter)=\"titleEllipsis && onTitleMouseEnter($event, leftTitleText)\"\n >{{ displayedTitle }}</span>\n </span>\n </sdc-info-sign>\n } @else {\n <span class=\"sdc-row-card-title\">\n <span\n #titleInner\n class=\"sdc-row-card-title__inner\"\n [class.sdc-row-card-title__inner--ellipsis]=\"titleEllipsis\"\n (mouseenter)=\"titleEllipsis && onTitleMouseEnter($event, leftTitleText)\"\n >{{ displayedTitle }}</span>\n </span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n [allowHtml]=\"statusTooltipAllowHtml\"\n tooltipPosition=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [loading]=\"isButtonLoading\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{position:relative;z-index:0;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover,.row-card:focus-within{z-index:2}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.2;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{display:flex;align-items:center;min-width:0;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.2}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-icon-cursor: default;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem;display:flex;min-width:0;flex:1 1 auto}.sdc-title-row .row-card-info-sign ::ng-deep .sdc-info-sign{flex:1 1 auto;min-width:0}.sdc-row-card-title{display:block;flex:0 1 auto;font-size:inherit;min-width:0;max-width:100%;padding:0;margin:0}.sdc-row-card-title__inner{display:block}.sdc-row-card-title__inner--ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"] }]
|
|
157
247
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { data: [{
|
|
158
248
|
type: Input
|
|
159
249
|
}], options: [{
|
|
@@ -179,5 +269,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
179
269
|
}], contentWrapper: [{
|
|
180
270
|
type: ViewChild,
|
|
181
271
|
args: ['contentWrapper']
|
|
272
|
+
}], titleInnerRef: [{
|
|
273
|
+
type: ViewChild,
|
|
274
|
+
args: ['titleInner']
|
|
182
275
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUtoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBaUJ4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRVI7SUFDQTtJQUZuQixZQUNtQixHQUFzQixFQUN0QixTQUEyQjtRQUQzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUU1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJ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YztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1JLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFc0IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgQmFkZ2VDb2xvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvYmFkZ2UudHlwZSc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbnNSb3dDYXJkLCBSb3dDYXJkIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9yb3ctY2FyZC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEluZm9TaWduQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtcm93LWNhcmQnLFxuICBpbXBvcnRzOiBbXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEluZm9TaWduQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcm93LWNhcmQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgUm93Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRhdGEhOiBSb3dDYXJkO1xuICBASW5wdXQoKSBvcHRpb25zPzogT3B0aW9uc1Jvd0NhcmQ7XG4gIEBJbnB1dCgpIGlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGV0YWlsVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEFsbG93SHRtbCA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGF0dXNUb29sdGlwOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc3RhdHVzVG9vbHRpcEFsbG93SHRtbCA9IGZhbHNlO1xuICBASW5wdXQoKSBidXR0b25Mb2FkaW5nID0gZmFsc2U7XG5cbiAgZ2V0IGlzQnV0dG9uTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5idXR0b25Mb2FkaW5nIHx8ICEhdGhpcy5kYXRhPy5sb2FkaW5nO1xuICB9XG5cbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcbiAgQE91dHB1dCgpIGNhcmRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcblxuICBAVmlld0NoaWxkKCdjb250ZW50V3JhcHBlcicpIGNvbnRlbnRXcmFwcGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcblxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vcHRpb25zPy5leHBhbmRhYmxlICYmICEhdGhpcy5pc0V4cGFuZGVkO1xuICB9XG5cbiAgZ2V0IHRpdGxlRWxsaXBzaXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8udGl0bGVFbGxpcHNpcyA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IGxlZnRUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LmxlZnRfdGl0bGUpO1xuICB9XG5cbiAgZ2V0IGxlZnRTdWJ0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LmxlZnRfc3VidGl0bGUpO1xuICB9XG5cbiAgZ2V0IHJpZ2h0VGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5yaWdodF90aXRsZSk7XG4gIH1cblxuICBnZXQgdGFnVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8udGFnKTtcbiAgfVxuXG4gIGdldCByaWdodFN1YnRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ucmlnaHRfc3VidGl0bGUpO1xuICB9XG5cbiAgZ2V0IHN0YXR1c1RpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJpZ2h0VGl0bGVUZXh0IHx8IHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5vcHRpb25zPy5iYWRnZVRpdGxlKTtcbiAgfVxuXG4gIGdldCBoYXNTdGF0dXNDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuc3RhdHVzVGl0bGVUZXh0IHx8IHRoaXMuZGF0YT8uYmFkZ2UpO1xuICB9XG5cbiAgZ2V0IHdyYXBwZXJEZXRhaWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy53cmFwcGVyRGV0YWlsKTtcbiAgfVxuXG4gIGdldCBidXR0b25MYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LmJ1dHRvbkxhYmVsID8/IHRoaXMub3B0aW9ucz8uYnV0dG9uTGFiZWwpO1xuICB9XG5cbiAgZ2V0IGJhZGdlQ29sb3IoKTogQmFkZ2VDb2xvciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8uYmFkZ2U/LmNvbG9yID8/ICdibHVlJztcbiAgfVxuXG4gIGdldCBpbmZvVG9vbHRpcFRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmluZm9Ub29sdGlwKSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0IHN0YXR1c1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5zdGF0dXNUb29sdGlwKSB8fCBudWxsO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpc0V4cGFuZGVkJ10gfHwgY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLnVwZGF0ZUNvbGxhcHNlSGVpZ2h0KCkpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2FyZENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQodGhpcy5kYXRhKTtcbiAgfVxuXG4gIG9uRXhwYW5kQ2FyZENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcblxuICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuY2xvc2VzdCgnc2RjLWJ1dHRvbicpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQodGhpcy5kYXRhKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uQ2FyZEJ1dHRvbkNsaWNrKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uPy4oKTtcbiAgICBpZiAodGhpcy5kYXRhPy5kaXNhYmxlZCB8fCB0aGlzLmlzQnV0dG9uTG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhcmRCdXR0b25DbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbGxhcHNlSGVpZ2h0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5jb250ZW50V3JhcHBlcj8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICBlbC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWwuc3R5bGUuaGVpZ2h0ID0gdGhpcy5leHBhbmRlZCA/IGAke2VsLnNjcm9sbEhlaWdodH1weGAgOiAnMHB4JztcbiAgfVxuXG4gIGdldENhcmRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmxlZnRfdGl0bGUpLFxuICAgICAgdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGEubGVmdF9zdWJ0aXRsZSksXG4gICAgICB0aGlzLnN0YXR1c1RpdGxlVGV4dCxcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmJhZGdlPy5sYWJlbCksXG4gICAgICB0aGlzLnJpZ2h0U3VidGl0bGVUZXh0XG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIHRoaXMuZXhwYW5kZWRcbiAgICAgICAgICAgID8gJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucm93X2NhcmRfZXhwYW5kZWQnXG4gICAgICAgICAgICA6ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2NvbGxhcHNlZCdcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldEJ1dHRvbkFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFjdGlvbiA9IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KFxuICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICB0aGlzLmRhdGE/LmJ1dHRvbkxhYmVsID8/IHRoaXMub3B0aW9ucz8uYnV0dG9uTGFiZWwsXG4gICAgICAncGxhdGZvcm0uZGF0YWNvcmUubGlzdC5kZWZhdWx0X2FjdGlvbl9sYWJlbCdcbiAgICApO1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5sZWZ0VGl0bGVUZXh0O1xuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucm93X2NhcmRfYnV0dG9uX2FjdGlvbicsIHsgYWN0aW9uLCB0aXRsZSB9KTtcbiAgfVxuXG4gIG9uS2V5Ym9hcmRBY3RpdmF0ZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICAgIHRoaXMub25FeHBhbmRDYXJkQ2xpY2soZXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkNhcmRDbGljaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlTGFiZWwodmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdlxuICAoY2xpY2spPVwib3B0aW9ucz8uZXhwYW5kYWJsZSA/IG9uRXhwYW5kQ2FyZENsaWNrKCRldmVudCkgOiBvbkNhcmRDbGljaygpXCJcbiAgKGtleWRvd24pPVwib25LZXlib2FyZEFjdGl2YXRlKCRldmVudClcIlxuICBbY2xhc3MuYm9yZGVyLWxlZnRdPVwiZGF0YS5oYXNCb3JkZXJcIlxuICBjbGFzcz1cInJvdy1jYXJkIHRyYW5zaXRpb24tYWxsIGN1cnNvci1wb2ludGVyIHctZnVsbFwiXG4gIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldENhcmRBcmlhTGFiZWwoKVwiXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSA/IGV4cGFuZGVkIDogbnVsbFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWljb25cIj5cbiAgICAgIEBpZiAob3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgPGkgW2NsYXNzLmZhLW1pbnVzXT1cImV4cGFuZGVkXCIgW2NsYXNzLmZhLXBsdXNdPVwiIWV4cGFuZGVkXCIgY2xhc3M9XCJmYXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXJvY2tldCBwLTIgbWwtMiB0ZXh0LXhsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLW1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGl0bGUtcm93IGZvbnQtc2VtaWJvbGRcIiBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0VGl0bGVDb2xvclwiPlxuICAgICAgICBAaWYgKGluZm9Ub29sdGlwKSB7XG4gICAgICAgIDxzZGMtaW5mby1zaWduXG4gICAgICAgICAgY2xhc3M9XCJyb3ctY2FyZC1pbmZvLXNpZ25cIlxuICAgICAgICAgIFt0b29sdGlwXT1cImluZm9Ub29sdGlwXCJcbiAgICAgICAgICBbYWxsb3dIdG1sXT1cImluZm9Ub29sdGlwQWxsb3dIdG1sXCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy1yb3ctY2FyZC10aXRsZS0tZWxsaXBzaXNdPVwidGl0bGVFbGxpcHNpc1wiXG4gICAgICAgICAgPnt7IGxlZnRUaXRsZVRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvc2RjLWluZm8tc2lnbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGVcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtcm93LWNhcmQtdGl0bGUtLWVsbGlwc2lzXT1cInRpdGxlRWxsaXBzaXNcIlxuICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobGVmdFN1YnRpdGxlVGV4dCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLXN1YnRpdGxlIHRleHQtc21cIiBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyBsZWZ0U3VidGl0bGVUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh0YWdUZXh0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtdGFnLXdyYXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFnXCI+e3sgdGFnVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNTdGF0dXNDb2x1bW4pIHtcbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzXCI+XG4gICAgICBAaWYgKHN0YXR1c1RpdGxlVGV4dCkge1xuICAgICAgICBAaWYgKHN0YXR1c1Rvb2x0aXApIHtcbiAgICAgICAgPHNkYy1pbmZvLXNpZ25cbiAgICAgICAgICBjbGFzcz1cInJvdy1jYXJkLWluZm8tc2lnblwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwic3RhdHVzVG9vbHRpcFwiXG4gICAgICAgICAgW2FsbG93SHRtbF09XCJzdGF0dXNUb29sdGlwQWxsb3dIdG1sXCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdy1jYXJkLXN0YXR1cy10aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0VGl0bGVDb2xvclwiPnt7IHN0YXR1c1RpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1zdGF0dXMtdGl0bGVcIiBbbmdDbGFzc109XCJvcHRpb25zPy5yaWdodFRpdGxlQ29sb3JcIj57eyBzdGF0dXNUaXRsZVRleHQgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmIChkYXRhLmJhZGdlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzLWJhZGdlXCI+XG4gICAgICAgIDxzZGMtYmFkZ2UgW3RleHRdPVwiZGF0YS5iYWRnZS5sYWJlbFwiIFtjb2xvcl09XCJiYWRnZUNvbG9yXCI+PC9zZGMtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtYWN0aW9uc1wiPlxuICAgICAgQGlmIChyaWdodFN1YnRpdGxlVGV4dCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1yaWdodC1zdWJ0aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyByaWdodFN1YnRpdGxlVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWJ1dHRvbi13cmFwXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZEJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm9wdGlvbnM/LmJ1dHRvblByaW9yaXR5IVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWQhXCJcbiAgICAgICAgICBbbG9hZGluZ109XCJpc0J1dHRvbkxvYWRpbmdcIlxuICAgICAgICAgIFtpY29uXT1cIm9wdGlvbnM/LmJ1dHRvbkljb25cIlxuICAgICAgICAgIFtsYWJlbF09XCJpc01vYmlsZSA/ICcnIDogYnV0dG9uTGFiZWxUZXh0XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEJ1dHRvbkFyaWFMYWJlbCgpXCJcbiAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKG9wdGlvbnM/LmV4cGFuZGFibGUpIHtcbiAgPGRpdlxuICAgICNjb250ZW50V3JhcHBlclxuICAgIGNsYXNzPVwiY29sbGFwc2Utd3JhcHBlclwiXG4gICAgW2NsYXNzLnNob3ddPVwiZXhwYW5kZWRcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtaW5uZXJcIj5cbiAgICAgIEBpZiAoZGV0YWlsVGVtcGxhdGUpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGF0YSwgZGF0YTogZGF0YSB9XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LTcwMFwiPnt7IHdyYXBwZXJEZXRhaWxUZXh0IH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUtoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBaUJ4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBSVI7SUFDQTtJQUpYLE1BQU0sQ0FBQyxjQUFjLENBQTRCO0lBRXpELFlBQ21CLEdBQXNCLEVBQ3RCLFNBQTJCO1FBRDNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBRTVDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMs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ZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgQmFkZ2VDb2xvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvYmFkZ2UudHlwZSc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbnNSb3dDYXJkLCBSb3dDYXJkIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9yb3ctY2FyZC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEluZm9TaWduQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtcm93LWNhcmQnLFxuICBpbXBvcnRzOiBbXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEluZm9TaWduQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcm93LWNhcmQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgUm93Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgbWVhc3VyZUNvbnRleHQ/OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0YSE6IFJvd0NhcmQ7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBPcHRpb25zUm93Q2FyZDtcbiAgQElucHV0KCkgaXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwQWxsb3dIdG1sID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN0YXR1c1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzdGF0dXNUb29sdGlwQWxsb3dIdG1sID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcblxuICBnZXQgaXNCdXR0b25Mb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJ1dHRvbkxvYWRpbmcgfHwgISF0aGlzLmRhdGE/LmxvYWRpbmc7XG4gIH1cblxuICBAT3V0cHV0KCkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dDYXJkPigpO1xuICBAT3V0cHV0KCkgY2FyZEJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dDYXJkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJykgY29udGVudFdyYXBwZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndGl0bGVJbm5lcicpIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVJbm5lclJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSBpc01vYmlsZSgpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRUaXRsZSA9ICcnO1xuXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgISF0aGlzLmlzRXhwYW5kZWQ7XG4gIH1cblxuICBnZXQgdGl0bGVFbGxpcHNpcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy50aXRsZUVsbGlwc2lzID8/IHRydWU7XG4gIH1cblxuICBnZXQgbGVmdFRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ubGVmdF90aXRsZSk7XG4gIH1cblxuICBnZXQgbGVmdFN1YnRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ubGVmdF9zdWJ0aXRsZSk7XG4gIH1cblxuICBnZXQgcmlnaHRUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnJpZ2h0X3RpdGxlKTtcbiAgfVxuXG4gIGdldCB0YWdUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy50YWcpO1xuICB9XG5cbiAgZ2V0IHJpZ2h0U3VidGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5yaWdodF9zdWJ0aXRsZSk7XG4gIH1cblxuICBnZXQgc3RhdHVzVGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUaXRsZVRleHQgfHwgdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLm9wdGlvbnM/LmJhZGdlVGl0bGUpO1xuICB9XG5cbiAgZ2V0IGhhc1N0YXR1c0NvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5zdGF0dXNUaXRsZVRleHQgfHwgdGhpcy5kYXRhPy5iYWRnZSk7XG4gIH1cblxuICBnZXQgd3JhcHBlckRldGFpbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LndyYXBwZXJEZXRhaWwpO1xuICB9XG5cbiAgZ2V0IGJ1dHRvbkxhYmVsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8uYnV0dG9uTGFiZWwgPz8gdGhpcy5vcHRpb25zPy5idXR0b25MYWJlbCk7XG4gIH1cblxuICBnZXQgYmFkZ2VDb2xvcigpOiBCYWRnZUNvbG9yIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5iYWRnZT8uY29sb3IgPz8gJ2JsdWUnO1xuICB9XG5cbiAgZ2V0IGluZm9Ub29sdGlwVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuaW5mb1Rvb2x0aXApIHx8IG51bGw7XG4gIH1cblxuICBnZXQgc3RhdHVzVG9vbHRpcFRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnN0YXR1c1Rvb2x0aXApIHx8IG51bGw7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2lzRXhwYW5kZWQnXSB8fCBjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VIZWlnaHQoKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSB8fCBjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkVGl0bGUgPSB0aGlzLmxlZnRUaXRsZVRleHQ7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLnVwZGF0ZVRydW5jYXRlZFRpdGxlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZFRpdGxlID0gdGhpcy5sZWZ0VGl0bGVUZXh0O1xuICAgIHRoaXMuc2V0dXBUaXRsZVJlc2l6ZU9ic2VydmVyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBvblRpdGxlTW91c2VFbnRlcihldmVudDogTW91c2VFdmVudCwgZnVsbFRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0aGlzLmRpc3BsYXllZFRpdGxlICE9PSBmdWxsVGV4dCkge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsIGZ1bGxUZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCd0aXRsZScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBUaXRsZVJlc2l6ZU9ic2VydmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy50aXRsZUlubmVyUmVmPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKCFlbCB8fCB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZVRydW5jYXRlZFRpdGxlKCkpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbCk7XG4gICAgdGhpcy51cGRhdGVUcnVuY2F0ZWRUaXRsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUcnVuY2F0ZWRUaXRsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudGl0bGVJbm5lclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBmdWxsVGV4dCA9IHRoaXMubGVmdFRpdGxlVGV4dDtcblxuICAgIGlmICghZWwgfHwgIXRoaXMudGl0bGVFbGxpcHNpcyB8fCAhZnVsbFRleHQpIHtcbiAgICAgIHRoaXMuc2V0RGlzcGxheWVkVGl0bGUoZnVsbFRleHQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0RGlzcGxheWVkVGl0bGUodGhpcy5jb21wdXRlVHJ1bmNhdGVkVGV4dChmdWxsVGV4dCwgZWwpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlzcGxheWVkVGl0bGUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRleHQgIT09IHRoaXMuZGlzcGxheWVkVGl0bGUpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkVGl0bGUgPSB0ZXh0O1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlVHJ1bmNhdGVkVGV4dCh0ZXh0OiBzdHJpbmcsIGVsOiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0TWVhc3VyZUNvbnRleHQoKTtcbiAgICBjb25zdCBhdmFpbGFibGVXaWR0aCA9IHRoaXMuZ2V0QXZhaWxhYmxlV2lkdGgoZWwpO1xuXG4gICAgaWYgKCFjb250ZXh0IHx8IGF2YWlsYWJsZVdpZHRoIDw9IDApIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG4gICAgY29udGV4dC5mb250ID0gYCR7c3R5bGUuZm9udFN0eWxlfSAke3N0eWxlLmZvbnRXZWlnaHR9ICR7c3R5bGUuZm9udFNpemV9ICR7c3R5bGUuZm9udEZhbWlseX1gO1xuXG4gICAgaWYgKGNvbnRleHQubWVhc3VyZVRleHQodGV4dCkud2lkdGggPD0gYXZhaWxhYmxlV2lkdGgpIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IGVsbGlwc2lzID0gJ+KApic7XG4gICAgbGV0IGxvdyA9IDA7XG4gICAgbGV0IGhpZ2ggPSB0ZXh0Lmxlbmd0aDtcblxuICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICBjb25zdCBtaWQgPSBNYXRoLmNlaWwoKGxvdyArIGhpZ2gpIC8gMik7XG4gICAgICBjb25zdCBjYW5kaWRhdGUgPSBgJHt0ZXh0LnNsaWNlKDAsIG1pZCkudHJpbUVuZCgpfSR7ZWxsaXBzaXN9YDtcblxuICAgICAgaWYgKGNvbnRleHQubWVhc3VyZVRleHQoY2FuZGlkYXRlKS53aWR0aCA8PSBhdmFpbGFibGVXaWR0aCkge1xuICAgICAgICBsb3cgPSBtaWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoaWdoID0gbWlkIC0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbG93ID4gMCA/IGAke3RleHQuc2xpY2UoMCwgbG93KS50cmltRW5kKCl9JHtlbGxpcHNpc31gIDogZWxsaXBzaXM7XG4gIH1cblxuICBwcml2YXRlIGdldEF2YWlsYWJsZVdpZHRoKGVsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZWwuY2xvc2VzdCgnLnNkYy1pbmZvLXNpZ24nKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIGVsLmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGljb24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignLnNkYy1pbmZvLXNpZ25fX2ljb24nKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBpZiAoIWljb24pIHtcbiAgICAgIHJldHVybiBjb250YWluZXIuY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3QgZ2FwID0gTnVtYmVyLnBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShjb250YWluZXIpLmNvbHVtbkdhcCkgfHwgMDtcbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gaWNvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIGdhcCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1lYXN1cmVDb250ZXh0KCk6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IHVuZGVmaW5lZCB7XG4gICAgUm93Q2FyZENvbXBvbmVudC5tZWFzdXJlQ29udGV4dCA/Pz0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKSA/PyB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gUm93Q2FyZENvbXBvbmVudC5tZWFzdXJlQ29udGV4dDtcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQodGhpcy5kYXRhKTtcbiAgfVxuXG4gIG9uRXhwYW5kQ2FyZENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcblxuICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuY2xvc2VzdCgnc2RjLWJ1dHRvbicpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQodGhpcy5kYXRhKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uQ2FyZEJ1dHRvbkNsaWNrKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uPy4oKTtcbiAgICBpZiAodGhpcy5kYXRhPy5kaXNhYmxlZCB8fCB0aGlzLmlzQnV0dG9uTG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhcmRCdXR0b25DbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbGxhcHNlSGVpZ2h0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5jb250ZW50V3JhcHBlcj8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICBlbC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWwuc3R5bGUuaGVpZ2h0ID0gdGhpcy5leHBhbmRlZCA/IGAke2VsLnNjcm9sbEhlaWdodH1weGAgOiAnMHB4JztcbiAgfVxuXG4gIGdldENhcmRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmxlZnRfdGl0bGUpLFxuICAgICAgdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGEubGVmdF9zdWJ0aXRsZSksXG4gICAgICB0aGlzLnN0YXR1c1RpdGxlVGV4dCxcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmJhZGdlPy5sYWJlbCksXG4gICAgICB0aGlzLnJpZ2h0U3VidGl0bGVUZXh0XG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIHRoaXMuZXhwYW5kZWRcbiAgICAgICAgICAgID8gJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfcm93X2NhcmRfZXhwYW5kZWQnXG4gICAgICAgICAgICA6ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X3Jvd19jYXJkX2NvbGxhcHNlZCdcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldEJ1dHRvbkFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFjdGlvbiA9IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KFxuICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICB0aGlzLmRhdGE/LmJ1dHRvbkxhYmVsID8/IHRoaXMub3B0aW9ucz8uYnV0dG9uTGFiZWwsXG4gICAgICAncGxhdGZvcm0uZGF0YWNvcmUubGlzdF9kZWZhdWx0X2FjdGlvbl9sYWJlbCdcbiAgICApO1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5sZWZ0VGl0bGVUZXh0O1xuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfcm93X2NhcmRfYnV0dG9uX2FjdGlvbicsIHsgYWN0aW9uLCB0aXRsZSB9KTtcbiAgfVxuXG4gIG9uS2V5Ym9hcmRBY3RpdmF0ZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICAgIHRoaXMub25FeHBhbmRDYXJkQ2xpY2soZXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkNhcmRDbGljaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlTGFiZWwodmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdlxuICAoY2xpY2spPVwib3B0aW9ucz8uZXhwYW5kYWJsZSA/IG9uRXhwYW5kQ2FyZENsaWNrKCRldmVudCkgOiBvbkNhcmRDbGljaygpXCJcbiAgKGtleWRvd24pPVwib25LZXlib2FyZEFjdGl2YXRlKCRldmVudClcIlxuICBbY2xhc3MuYm9yZGVyLWxlZnRdPVwiZGF0YS5oYXNCb3JkZXJcIlxuICBjbGFzcz1cInJvdy1jYXJkIHRyYW5zaXRpb24tYWxsIGN1cnNvci1wb2ludGVyIHctZnVsbFwiXG4gIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldENhcmRBcmlhTGFiZWwoKVwiXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSA/IGV4cGFuZGVkIDogbnVsbFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWljb25cIj5cbiAgICAgIEBpZiAob3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgPGkgW2NsYXNzLmZhLW1pbnVzXT1cImV4cGFuZGVkXCIgW2NsYXNzLmZhLXBsdXNdPVwiIWV4cGFuZGVkXCIgY2xhc3M9XCJmYXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXJvY2tldCBwLTIgbWwtMiB0ZXh0LXhsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLW1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGl0bGUtcm93IGZvbnQtc2VtaWJvbGRcIiBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0VGl0bGVDb2xvclwiPlxuICAgICAgICBAaWYgKGluZm9Ub29sdGlwKSB7XG4gICAgICAgIDxzZGMtaW5mby1zaWduXG4gICAgICAgICAgY2xhc3M9XCJyb3ctY2FyZC1pbmZvLXNpZ25cIlxuICAgICAgICAgIFt0b29sdGlwXT1cImluZm9Ub29sdGlwXCJcbiAgICAgICAgICBbYWxsb3dIdG1sXT1cImluZm9Ub29sdGlwQWxsb3dIdG1sXCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1yb3ctY2FyZC10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgI3RpdGxlSW5uZXJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGVfX2lubmVyXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnNkYy1yb3ctY2FyZC10aXRsZV9faW5uZXItLWVsbGlwc2lzXT1cInRpdGxlRWxsaXBzaXNcIlxuICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0aXRsZUVsbGlwc2lzICYmIG9uVGl0bGVNb3VzZUVudGVyKCRldmVudCwgbGVmdFRpdGxlVGV4dClcIlxuICAgICAgICAgICAgPnt7IGRpc3BsYXllZFRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGVcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgI3RpdGxlSW5uZXJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLXJvdy1jYXJkLXRpdGxlX19pbm5lclwiXG4gICAgICAgICAgICBbY2xhc3Muc2RjLXJvdy1jYXJkLXRpdGxlX19pbm5lci0tZWxsaXBzaXNdPVwidGl0bGVFbGxpcHNpc1wiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0aXRsZUVsbGlwc2lzICYmIG9uVGl0bGVNb3VzZUVudGVyKCRldmVudCwgbGVmdFRpdGxlVGV4dClcIlxuICAgICAgICAgID57eyBkaXNwbGF5ZWRUaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChsZWZ0U3VidGl0bGVUZXh0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3VidGl0bGUgdGV4dC1zbVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LmxlZnRTdWJ0aXRsZUNvbG9yXCI+XG4gICAgICAgIHt7IGxlZnRTdWJ0aXRsZVRleHQgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHRhZ1RleHQpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC10YWctd3JhcFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWdcIj57eyB0YWdUZXh0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGhhc1N0YXR1c0NvbHVtbikge1xuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1zdGF0dXNcIj5cbiAgICAgIEBpZiAoc3RhdHVzVGl0bGVUZXh0KSB7XG4gICAgICAgIEBpZiAoc3RhdHVzVG9vbHRpcCkge1xuICAgICAgICA8c2RjLWluZm8tc2lnblxuICAgICAgICAgIGNsYXNzPVwicm93LWNhcmQtaW5mby1zaWduXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJzdGF0dXNUb29sdGlwXCJcbiAgICAgICAgICBbYWxsb3dIdG1sXT1cInN0YXR1c1Rvb2x0aXBBbGxvd0h0bWxcIlxuICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicm93LWNhcmQtc3RhdHVzLXRpdGxlXCIgW25nQ2xhc3NdPVwib3B0aW9ucz8ucmlnaHRUaXRsZUNvbG9yXCI+e3sgc3RhdHVzVGl0bGVUZXh0IH19PC9zcGFuPlxuICAgICAgICA8L3NkYy1pbmZvLXNpZ24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInJvdy1jYXJkLXN0YXR1cy10aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0VGl0bGVDb2xvclwiPnt7IHN0YXR1c1RpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKGRhdGEuYmFkZ2UpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1zdGF0dXMtYmFkZ2VcIj5cbiAgICAgICAgPHNkYy1iYWRnZSBbdGV4dF09XCJkYXRhLmJhZGdlLmxhYmVsXCIgW2NvbG9yXT1cImJhZGdlQ29sb3JcIj48L3NkYy1iYWRnZT5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1hY3Rpb25zXCI+XG4gICAgICBAaWYgKHJpZ2h0U3VidGl0bGVUZXh0KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInJvdy1jYXJkLXJpZ2h0LXN1YnRpdGxlXCIgW25nQ2xhc3NdPVwib3B0aW9ucz8ucmlnaHRTdWJ0aXRsZUNvbG9yXCI+XG4gICAgICAgIHt7IHJpZ2h0U3VidGl0bGVUZXh0IH19XG4gICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtYnV0dG9uLXdyYXBcIj5cbiAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwib25DYXJkQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBbcHJpb3JpdHldPVwib3B0aW9ucz8uYnV0dG9uUHJpb3JpdHkhXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZCFcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cImlzQnV0dG9uTG9hZGluZ1wiXG4gICAgICAgICAgW2ljb25dPVwib3B0aW9ucz8uYnV0dG9uSWNvblwiXG4gICAgICAgICAgW2xhYmVsXT1cImlzTW9iaWxlID8gJycgOiBidXR0b25MYWJlbFRleHRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0QnV0dG9uQXJpYUxhYmVsKClcIlxuICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIEBpZiAob3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICA8ZGl2XG4gICAgI2NvbnRlbnRXcmFwcGVyXG4gICAgY2xhc3M9XCJjb2xsYXBzZS13cmFwcGVyXCJcbiAgICBbY2xhc3Muc2hvd109XCJleHBhbmRlZFwiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS1pbm5lclwiPlxuICAgICAgQGlmIChkZXRhaWxUZW1wbGF0ZSkge1xuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRldGFpbFRlbXBsYXRlXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBkYXRhLCBkYXRhOiBkYXRhIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtNzAwXCI+e3sgd3JhcHBlckRldGFpbFRleHQgfX08L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -3,6 +3,7 @@ import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, View
|
|
|
3
3
|
import { TranslateModule } from '@ngx-translate/core';
|
|
4
4
|
import { DEFAULT_ROW_CARD_LIST_OPTIONS } from '../../core/config/row-card.type.config';
|
|
5
5
|
import { ROW_CARD_LIST_FALLBACK_INITIAL_ROWS, ROW_CARD_LIST_FIRST_PAGE, ROW_CARD_LIST_MIN_SKELETON_ROWS } from '../../core/constants/row-card-list.const';
|
|
6
|
+
import { DEFAULT_LOADING_STATE_INDICATOR } from '../../core/constants/loading-state.const';
|
|
6
7
|
import { isMobile, isTablet } from '../../core/utils/layout.util';
|
|
7
8
|
import { stableStringify } from '../../core/utils/object.util';
|
|
8
9
|
import { EmptyStateComponent } from '../empty-state/empty-state.component';
|
|
@@ -17,6 +18,7 @@ export class RowCardListComponent {
|
|
|
17
18
|
this.loadingState.set(!!value);
|
|
18
19
|
}
|
|
19
20
|
config = DEFAULT_ROW_CARD_LIST_OPTIONS;
|
|
21
|
+
loadingIndicator = DEFAULT_LOADING_STATE_INDICATOR;
|
|
20
22
|
set loadingCardId(value) {
|
|
21
23
|
this.loadingCardIdState.set(value ?? null);
|
|
22
24
|
}
|
|
@@ -142,7 +144,7 @@ export class RowCardListComponent {
|
|
|
142
144
|
this.options.set(cfg);
|
|
143
145
|
}
|
|
144
146
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardListComponent, isStandalone: true, selector: "sdc-row-card-list", inputs: { data: "data", loading: "loading", config: "config", loadingCardId: "loadingCardId" }, outputs: { cardButtonClick: "cardButtonClick", cardClick: "cardClick" }, queries: [{ propertyName: "detailTemplate", first: true, predicate: ["rowCardDetail"], descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sdc-row-card-list\"\n [class.align-content-center]=\"isLoading() && pagedData().length === 0\"\n [attr.aria-label]=\"'platform.datacore.
|
|
147
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardListComponent, isStandalone: true, selector: "sdc-row-card-list", inputs: { data: "data", loading: "loading", config: "config", loadingIndicator: "loadingIndicator", loadingCardId: "loadingCardId" }, outputs: { cardButtonClick: "cardButtonClick", cardClick: "cardClick" }, queries: [{ propertyName: "detailTemplate", first: true, predicate: ["rowCardDetail"], descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sdc-row-card-list\"\n [class.align-content-center]=\"isLoading() && pagedData().length === 0\"\n [attr.aria-label]=\"'platform.datacore.accessibility_row_card_list' | translate\"\n [attr.aria-busy]=\"isLoading()\"\n>\n <sdc-loading-state\n [loading]=\"isLoading()\"\n [blockWindow]=\"false\"\n [indicator]=\"loadingIndicator\"\n class=\"sdc-cardlist-loading-state\"\n [blockDelayMs]=\"0\"\n [attr.aria-label]=\"'platform.datacore.accessibility_loading' | translate\"\n >\n @if (showSkeleton()) {\n <ul class=\"sdc-row-card-items\">\n @for (i of skeletonRows(); track i) {\n <li class=\"sdc-row-card-item sdc-row-card-item--skeleton\">\n <article class=\"sdc-row-card-skeleton\" aria-hidden=\"true\"></article>\n </li>\n }\n </ul>\n } @else if (pagedData().length) {\n <ul class=\"sdc-row-card-items\">\n @for (card of pagedData(); track card.id) {\n <li class=\"sdc-row-card-item\">\n <sdc-row-card\n (cardButtonClick)=\"onCardButtonClick(card)\"\n (cardClick)=\"onButtonExpand(card)\"\n [options]=\"options().customCard\"\n [data]=\"card\"\n [buttonLoading]=\"isCardButtonLoading(card)\"\n [isExpanded]=\"expandedCardId() === card.id\"\n [detailTemplate]=\"detailTemplate\"\n [infoTooltip]=\"options().customCard?.infoTooltip!\"\n [infoTooltipAllowHtml]=\"options().customCard?.infoTooltipAllowHtml ?? false\"\n [statusTooltip]=\"options().customCard?.statusTooltip!\"\n [statusTooltipAllowHtml]=\"options().customCard?.statusTooltipAllowHtml ?? false\"\n >\n </sdc-row-card>\n </li>\n }\n </ul>\n } @else if (!isLoading()) {\n <sdc-empty-state\n id=\"cardlist-empty\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-cardlist-empty-state\"\n >\n </sdc-empty-state>\n }\n\n @if (options().enablePagination) {\n <nav\n class=\"sdc-paginator-wrap flex justify-content-start\"\n [class.justify-content-center]=\"isMobile || isTablet\"\n [attr.aria-label]=\"'platform.datacore.accessibility_pagination_navigation' | translate\"\n >\n <sdc-paginator\n class=\"w-full\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onChangePaginator($event)\"\n [first]=\"page().first\"\n [rows]=\"page().rows\"\n [rowsPerPageOptions]=\"options().rowsPerPageOptions ?? []\"\n [totalRecords]=\"filtered().length\"\n [isMobile]=\"isMobile\"\n >\n </sdc-paginator>\n </nav>\n }\n </sdc-loading-state>\n</section>\n", styles: [":host{display:block;--sdc-row-card-padding: .5rem;--sdc-row-card-height: 5rem}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.sdc-cardlist-loading-state{display:block;width:100%}.sdc-row-card-list{min-height:30rem;min-width:17rem}.sdc-row-card-list .sdc-row-card-items{list-style:none;margin:0;padding:0}.sdc-row-card-list ::ng-deep .sdc-row-card-item sdc-row-card .row-card{border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;min-height:var(--sdc-row-card-height, 6.5rem);padding:var(--sdc-row-card-padding)!important;box-sizing:border-box}.sdc-row-card-list ::ng-deep .sdc-row-card-item:not(:last-child) sdc-row-card .row-card{border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-row-card-list ::ng-deep .sdc-row-card-item:first-child sdc-row-card .row-card{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list ::ng-deep .sdc-row-card-item:only-child sdc-row-card .row-card{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list ::ng-deep .sdc-row-card-item:nth-last-child(1 of.sdc-row-card-item) sdc-row-card .row-card{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list .sdc-row-card-item--skeleton .sdc-row-card-skeleton{width:100%;min-height:var(--sdc-row-card-height, 6.5rem);padding:var(--sdc-row-card-padding)!important;background:var(--p-surface-0, #fff);border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;box-sizing:border-box;display:flex;align-items:center}.sdc-row-card-list .sdc-row-card-item--skeleton:first-child .sdc-row-card-skeleton{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list .sdc-row-card-item--skeleton:not(:last-child) .sdc-row-card-skeleton{border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-row-card-list .sdc-row-card-item--skeleton:last-child .sdc-row-card-skeleton{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list .sdc-row-card-item--skeleton:only-child .sdc-row-card-skeleton{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-paginator-wrap{min-height:auto}.sdc-cardlist-empty-state{width:100%;min-height:var(--sdc-row-card-list-empty-min-height, 12rem);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);display:flex;align-items:center;justify-content:center;padding:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: RowCardComponent, selector: "sdc-row-card", inputs: ["data", "options", "isExpanded", "detailTemplate", "infoTooltip", "infoTooltipAllowHtml", "statusTooltip", "statusTooltipAllowHtml", "buttonLoading"], outputs: ["cardClick", "cardButtonClick"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "showRowsPerPageSelector", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }] });
|
|
146
148
|
}
|
|
147
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardListComponent, decorators: [{
|
|
148
150
|
type: Component,
|
|
@@ -153,13 +155,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
153
155
|
PaginatorComponent,
|
|
154
156
|
EmptyStateComponent,
|
|
155
157
|
LoadingStateComponent
|
|
156
|
-
], encapsulation: ViewEncapsulation.Emulated, template: "<section\n class=\"sdc-row-card-list\"\n [class.align-content-center]=\"isLoading() && pagedData().length === 0\"\n [attr.aria-label]=\"'platform.datacore.
|
|
158
|
+
], encapsulation: ViewEncapsulation.Emulated, template: "<section\n class=\"sdc-row-card-list\"\n [class.align-content-center]=\"isLoading() && pagedData().length === 0\"\n [attr.aria-label]=\"'platform.datacore.accessibility_row_card_list' | translate\"\n [attr.aria-busy]=\"isLoading()\"\n>\n <sdc-loading-state\n [loading]=\"isLoading()\"\n [blockWindow]=\"false\"\n [indicator]=\"loadingIndicator\"\n class=\"sdc-cardlist-loading-state\"\n [blockDelayMs]=\"0\"\n [attr.aria-label]=\"'platform.datacore.accessibility_loading' | translate\"\n >\n @if (showSkeleton()) {\n <ul class=\"sdc-row-card-items\">\n @for (i of skeletonRows(); track i) {\n <li class=\"sdc-row-card-item sdc-row-card-item--skeleton\">\n <article class=\"sdc-row-card-skeleton\" aria-hidden=\"true\"></article>\n </li>\n }\n </ul>\n } @else if (pagedData().length) {\n <ul class=\"sdc-row-card-items\">\n @for (card of pagedData(); track card.id) {\n <li class=\"sdc-row-card-item\">\n <sdc-row-card\n (cardButtonClick)=\"onCardButtonClick(card)\"\n (cardClick)=\"onButtonExpand(card)\"\n [options]=\"options().customCard\"\n [data]=\"card\"\n [buttonLoading]=\"isCardButtonLoading(card)\"\n [isExpanded]=\"expandedCardId() === card.id\"\n [detailTemplate]=\"detailTemplate\"\n [infoTooltip]=\"options().customCard?.infoTooltip!\"\n [infoTooltipAllowHtml]=\"options().customCard?.infoTooltipAllowHtml ?? false\"\n [statusTooltip]=\"options().customCard?.statusTooltip!\"\n [statusTooltipAllowHtml]=\"options().customCard?.statusTooltipAllowHtml ?? false\"\n >\n </sdc-row-card>\n </li>\n }\n </ul>\n } @else if (!isLoading()) {\n <sdc-empty-state\n id=\"cardlist-empty\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-cardlist-empty-state\"\n >\n </sdc-empty-state>\n }\n\n @if (options().enablePagination) {\n <nav\n class=\"sdc-paginator-wrap flex justify-content-start\"\n [class.justify-content-center]=\"isMobile || isTablet\"\n [attr.aria-label]=\"'platform.datacore.accessibility_pagination_navigation' | translate\"\n >\n <sdc-paginator\n class=\"w-full\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onChangePaginator($event)\"\n [first]=\"page().first\"\n [rows]=\"page().rows\"\n [rowsPerPageOptions]=\"options().rowsPerPageOptions ?? []\"\n [totalRecords]=\"filtered().length\"\n [isMobile]=\"isMobile\"\n >\n </sdc-paginator>\n </nav>\n }\n </sdc-loading-state>\n</section>\n", styles: [":host{display:block;--sdc-row-card-padding: .5rem;--sdc-row-card-height: 5rem}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.sdc-cardlist-loading-state{display:block;width:100%}.sdc-row-card-list{min-height:30rem;min-width:17rem}.sdc-row-card-list .sdc-row-card-items{list-style:none;margin:0;padding:0}.sdc-row-card-list ::ng-deep .sdc-row-card-item sdc-row-card .row-card{border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;min-height:var(--sdc-row-card-height, 6.5rem);padding:var(--sdc-row-card-padding)!important;box-sizing:border-box}.sdc-row-card-list ::ng-deep .sdc-row-card-item:not(:last-child) sdc-row-card .row-card{border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-row-card-list ::ng-deep .sdc-row-card-item:first-child sdc-row-card .row-card{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list ::ng-deep .sdc-row-card-item:only-child sdc-row-card .row-card{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list ::ng-deep .sdc-row-card-item:nth-last-child(1 of.sdc-row-card-item) sdc-row-card .row-card{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list .sdc-row-card-item--skeleton .sdc-row-card-skeleton{width:100%;min-height:var(--sdc-row-card-height, 6.5rem);padding:var(--sdc-row-card-padding)!important;background:var(--p-surface-0, #fff);border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;box-sizing:border-box;display:flex;align-items:center}.sdc-row-card-list .sdc-row-card-item--skeleton:first-child .sdc-row-card-skeleton{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list .sdc-row-card-item--skeleton:not(:last-child) .sdc-row-card-skeleton{border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-row-card-list .sdc-row-card-item--skeleton:last-child .sdc-row-card-skeleton{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-row-card-list .sdc-row-card-item--skeleton:only-child .sdc-row-card-skeleton{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-paginator-wrap{min-height:auto}.sdc-cardlist-empty-state{width:100%;min-height:var(--sdc-row-card-list-empty-min-height, 12rem);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);display:flex;align-items:center;justify-content:center;padding:1rem}\n"] }]
|
|
157
159
|
}], propDecorators: { data: [{
|
|
158
160
|
type: Input
|
|
159
161
|
}], loading: [{
|
|
160
162
|
type: Input
|
|
161
163
|
}], config: [{
|
|
162
164
|
type: Input
|
|
165
|
+
}], loadingIndicator: [{
|
|
166
|
+
type: Input
|
|
163
167
|
}], loadingCardId: [{
|
|
164
168
|
type: Input
|
|
165
169
|
}], cardButtonClick: [{
|
|
@@ -170,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
170
174
|
type: ContentChild,
|
|
171
175
|
args: ['rowCardDetail', { read: TemplateRef }]
|
|
172
176
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Jvdy1jYXJkLWxpc3Qvcm93LWNhcmQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Jvdy1jYXJkLWxpc3Qvcm93LWNhcmQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDaEMsTUFBTSwwQ0FBMEMsQ0FBQztBQUdsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBaUJqRSxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLElBQUksR0FBYyxFQUFF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QUM7SUFDeEgsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLElBQUksR0FBRyw2QkFBNkIsQ0FBQztRQUUzQyxNQUFNLEdBQUcsR0FBdUI7WUFDOUIsR0FBRyxJQUFJO1lBQ1AsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1NBQ3ZCLENBQUM7UUFFRixHQUFHLENBQUMsVUFBVSxHQUFHO1lBQ2YsR0FBRyxJQUFJLENBQUMsVUFBVTtZQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1NBQ25DLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO3dHQXJLVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw4VUFrQlEsV0FBVyxrRENqRXBELGlxRkEyRUEsbWdHRHZDSSxZQUFZLDhCQUNaLGVBQWUsNEZBQ2YsZ0JBQWdCLG9RQUNoQixrQkFBa0IsZ05BQ2xCLG1CQUFtQixtWEFDbkIscUJBQXFCOzs0RkFNWixvQkFBb0I7a0JBZmhDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3FCQUN0QixpQkFHYyxpQkFBaUIsQ0FBQyxRQUFROzhCQUdoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFHRixhQUFhO3NCQURoQixLQUFLO2dCQUtJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFK0MsY0FBYztzQkFBbkUsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEb0NoZWNrLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IERFRkFVTFRfUk9XX0NBUkRfTElTVF9PUFRJT05TIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWcvcm93LWNhcmQudHlwZS5jb25maWcnO1xuaW1wb3J0IHtcbiAgUk9XX0NBUkRfTElTVF9GQUxMQkFDS19JTklUSUFMX1JPV1MsXG4gIFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgUk9XX0NBUkRfTElTVF9NSU5fU0tFTEVUT05fUk9XU1xufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9yb3ctY2FyZC1saXN0LmNvbnN0JztcbmltcG9ydCB0eXBlIHsgUGFnaW5hdG9yU3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhZ2luYXRvci50eXBlJztcbmltcG9ydCB7IFJvd0NhcmQsIFJvd0NhcmRMaXN0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcm93LWNhcmQudHlwZSc7XG5pbXBvcnQgeyBpc01vYmlsZSwgaXNUYWJsZXQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IHN0YWJsZVN0cmluZ2lmeSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvb2JqZWN0LnV0aWwnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkaW5nLXN0YXRlL2xvYWRpbmctc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFJvd0NhcmRDb21wb25lbnQgfSBmcm9tICcuL3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1yb3ctY2FyZC1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUm93Q2FyZENvbXBvbmVudCxcbiAgICBQYWdpbmF0b3JDb21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBMb2FkaW5nU3RhdGVDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvdy1jYXJkLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcm93LWNhcmQtbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFJvd0NhcmRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgQElucHV0KCkgZGF0YTogUm93Q2FyZFtdID0gW107XG5cbiAgQElucHV0KClcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS5zZXQoISF2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBjb25maWc6IFJvd0NhcmRMaXN0T3B0aW9ucyA9IERFRkFVTFRfUk9XX0NBUkRfTElTVF9PUFRJT05TO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBsb2FkaW5nQ2FyZElkKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5sb2FkaW5nQ2FyZElkU3RhdGUuc2V0KHZhbHVlID8/IG51bGwpO1xuICB9XG5cbiAgQE91dHB1dCgpIGNhcmRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcblxuICBAQ29udGVudENoaWxkKCdyb3dDYXJkRGV0YWlsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc1RhYmxldCA9IGlzVGFibGV0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3RhdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdDYXJkSWRTdGF0ZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBzaWduYWw8Um93Q2FyZExpc3RPcHRpb25zPihERUZBVUxUX1JPV19DQVJEX0xJU1RfT1BUSU9OUyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVtcHR5VGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5lbXB0eT8udGl0bGUgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1wdHlUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuZW1wdHk/Lm1lc3NhZ2UgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG90YWxSZWNvcmRzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS50b3RhbFJlY29yZHNMYWJlbCA/PyAnJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGVkQ2FyZElkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsdGVyZWQgPSBzaWduYWw8Um93Q2FyZFtdPihbXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2UgPSBzaWduYWwoe1xuICAgIGZpcnN0OiBST1dfQ0FSRF9MSVNUX0ZJUlNUX1BBR0UsXG4gICAgcm93czogREVGQVVMVF9ST1dfQ0FSRF9MSVNUX09QVElPTlMuaW5pdGlhbFJvd3MgPz8gUk9XX0NBUkRfTElTVF9GQUxMQkFDS19JTklUSUFMX1JPV1NcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dTa2VsZXRvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMubG9hZGluZ1N0YXRlKCkgJiYgdGhpcy5maWx0ZXJlZCgpLmxlbmd0aCA9PT0gMCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNrZWxldG9uUm93cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5wYWdlKCkucm93cyA/PyB0aGlzLnJlc29sdmVSb3dzKCk7XG4gICAgY29uc3QgdG90YWwgPSBNYXRoLm1heChyb3dzLCBST1dfQ0FSRF9MSVNUX01JTl9TS0VMRVRPTl9ST1dTKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdG90YWwgfSwgKF8sIGluZGV4KSA9PiBpbmRleCk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0ZpcnN0UGFnZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFnZSgpLmZpcnN0ID09PSBST1dfQ0FSRF9MSVNUX0ZJUlNUX1BBR0UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0xhc3RQYWdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmZpbHRlcmVkKCk7XG4gICAgY29uc3QgeyBmaXJzdCwgcm93cyB9ID0gdGhpcy5wYWdlKCk7XG4gICAgY29uc3QgZW5kID0gdGhpcy5vcHRpb25zKCkuZW5hYmxlUGFnaW5hdGlvbiA/IGZpcnN0ICsgcm93cyA6IGxpc3QubGVuZ3RoO1xuICAgIHJldHVybiBlbmQgPj0gbGlzdC5sZW5ndGg7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYWdlZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZmlsdGVyZWQoKTtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MgfSA9IHRoaXMucGFnZSgpO1xuICAgIHJldHVybiBsaXN0LnNsaWNlKGZpcnN0LCBmaXJzdCArIHJvd3MpO1xuICB9KTtcblxuICBwcml2YXRlIGNvbmZpZ0hhc2ggPSAnJztcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRhdGEgPz8gW107XG4gICAgICB0aGlzLmZpbHRlcmVkLnNldCh2YWx1ZSk7XG4gICAgICB0aGlzLnBhZ2Uuc2V0KHtcbiAgICAgICAgZmlyc3Q6IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgICAgICAgcm93czogdGhpcy5yZXNvbHZlUm93cygpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICAgIHRoaXMuYXBwbHlDb25maWdPcHRpb25zKCk7XG4gICAgICB0aGlzLnBhZ2Uuc2V0KHtcbiAgICAgICAgZmlyc3Q6IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgICAgICAgcm93czogdGhpcy5yZXNvbHZlUm93cygpXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29uZmlnSGFzaCA9IHN0YWJsZVN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRIYXNoID0gc3RhYmxlU3RyaW5naWZ5KHRoaXMuY29uZmlnKTtcbiAgICBpZiAobmV4dEhhc2ggIT09IHRoaXMuY29uZmlnSGFzaCkge1xuICAgICAgdGhpcy5jb25maWdIYXNoID0gbmV4dEhhc2g7XG4gICAgICB0aGlzLmFwcGx5Q29uZmlnT3B0aW9ucygpO1xuICAgICAgdGhpcy5wYWdlLnNldCh7XG4gICAgICAgIGZpcnN0OiBST1dfQ0FSRF9MSVNUX0ZJUlNUX1BBR0UsXG4gICAgICAgIHJvd3M6IHRoaXMucmVzb2x2ZVJvd3MoKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NhcmRCdXR0b25Mb2FkaW5nKGNhcmQ6IFJvd0NhcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjYXJkPy5sb2FkaW5nIHx8IGNhcmQ/LmlkID09PSB0aGlzLmxvYWRpbmdDYXJkSWRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlUGFnaW5hdG9yKGV2ZW50OiBQYWdpbmF0b3JTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMucGFnZS5zZXQoe1xuICAgICAgZmlyc3Q6IGV2ZW50LmZpcnN0ID8/IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgICAgIHJvd3M6IGV2ZW50LnJvd3MgPz8gdGhpcy5yZXNvbHZlUm93cygpXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMoKS5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBmaXJzdCwgcm93cyB9ID0gdGhpcy5wYWdlKCk7XG4gICAgaWYgKHRoaXMuZmlsdGVyZWQoKS5sZW5ndGggPiBmaXJzdCArIHJvd3MpIHtcbiAgICAgIHRoaXMucGFnZS5zZXQoeyBmaXJzdDogZmlyc3QgKyByb3dzLCByb3dzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2UGFnZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGZpcnN0LCByb3dzIH0gPSB0aGlzLnBhZ2UoKTtcbiAgICBpZiAoZmlyc3QgLSByb3dzID49IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSkge1xuICAgICAgdGhpcy5wYWdlLnNldCh7IGZpcnN0OiBmaXJzdCAtIHJvd3MsIHJvd3MgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2FyZEJ1dHRvbkNsaWNrKGNhcmQ6IFJvd0NhcmQpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRCdXR0b25DbGljay5lbWl0KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQnV0dG9uRXhwYW5kKGNhcmQ6IFJvd0NhcmQpOiB2b2lkIHtcbiAgICBjb25zdCBpc09wZW4gPSB0aGlzLmV4cGFuZGVkQ2FyZElkKCkgPT09IGNhcmQuaWQ7XG4gICAgdGhpcy5leHBhbmRlZENhcmRJZC5zZXQoaXNPcGVuID8gbnVsbCA6IGNhcmQuaWQpO1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQoY2FyZCk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3dzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucygpLmluaXRpYWxSb3dzID8/IERFRkFVTFRfUk9XX0NBUkRfTElTVF9PUFRJT05TLmluaXRpYWxSb3dzID8/IFJPV19DQVJEX0xJU1RfRkFMTEJBQ0tfSU5JVElBTF9ST1dTO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ09wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZSA9IERFRkFVTFRfUk9XX0NBUkRfTElTVF9PUFRJT05TO1xuXG4gICAgY29uc3QgY2ZnOiBSb3dDYXJkTGlzdE9wdGlvbnMgPSB7XG4gICAgICAuLi5iYXNlLFxuICAgICAgLi4uKHRoaXMuY29uZmlnID8/IHt9KVxuICAgIH07XG5cbiAgICBjZmcuY3VzdG9tQ2FyZCA9IHtcbiAgICAgIC4uLmJhc2UuY3VzdG9tQ2FyZCxcbiAgICAgIC4uLih0aGlzLmNvbmZpZz8uY3VzdG9tQ2FyZCA/PyB7fSlcbiAgICB9O1xuXG4gICAgdGhpcy5vcHRpb25zLnNldChjZmcpO1xuICB9XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNkYy1yb3ctY2FyZC1saXN0XCJcbiAgW2NsYXNzLmFsaWduLWNvbnRlbnQtY2VudGVyXT1cImlzTG9hZGluZygpICYmIHBhZ2VkRGF0YSgpLmxlbmd0aCA9PT0gMFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucm93X2NhcmRfbGlzdCcgfCB0cmFuc2xhdGVcIlxuICBbYXR0ci5hcmlhLWJ1c3ldPVwiaXNMb2FkaW5nKClcIlxuPlxuICA8c2RjLWxvYWRpbmctc3RhdGVcbiAgICBbbG9hZGluZ109XCJpc0xvYWRpbmcoKVwiXG4gICAgW2Jsb2NrV2luZG93XT1cImZhbHNlXCJcbiAgICBbaW5kaWNhdG9yXT1cIidkb3RzJ1wiXG4gICAgY2xhc3M9XCJzZGMtY2FyZGxpc3QtbG9hZGluZy1zdGF0ZVwiXG4gICAgW2Jsb2NrRGVsYXlNc109XCIwXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmxvYWRpbmcnIHwgdHJhbnNsYXRlXCJcbiAgPlxuICAgIEBpZiAoc2hvd1NrZWxldG9uKCkpIHtcbiAgICA8dWwgY2xhc3M9XCJzZGMtcm93LWNhcmQtaXRlbXNcIj5cbiAgICAgIEBmb3IgKGkgb2Ygc2tlbGV0b25Sb3dzKCk7IHRyYWNrIGkpIHtcbiAgICAgIDxsaSBjbGFzcz1cInNkYy1yb3ctY2FyZC1pdGVtIHNkYy1yb3ctY2FyZC1pdGVtLS1za2VsZXRvblwiPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInNkYy1yb3ctY2FyZC1za2VsZXRvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvYXJ0aWNsZT5cbiAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgICB9IEBlbHNlIGlmIChwYWdlZERhdGEoKS5sZW5ndGgpIHtcbiAgICA8dWwgY2xhc3M9XCJzZGMtcm93LWNhcmQtaXRlbXNcIj5cbiAgICAgIEBmb3IgKGNhcmQgb2YgcGFnZWREYXRhKCk7IHRyYWNrIGNhcmQuaWQpIHtcbiAgICAgIDxsaSBjbGFzcz1cInNkYy1yb3ctY2FyZC1pdGVtXCI+XG4gICAgICAgIDxzZGMtcm93LWNhcmRcbiAgICAgICAgICAoY2FyZEJ1dHRvbkNsaWNrKT1cIm9uQ2FyZEJ1dHRvbkNsaWNrKGNhcmQpXCJcbiAgICAgICAgICAoY2FyZENsaWNrKT1cIm9uQnV0dG9uRXhwYW5kKGNhcmQpXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zKCkuY3VzdG9tQ2FyZFwiXG4gICAgICAgICAgW2RhdGFdPVwiY2FyZFwiXG4gICAgICAgICAgW2J1dHRvbkxvYWRpbmddPVwiaXNDYXJkQnV0dG9uTG9hZGluZyhjYXJkKVwiXG4gICAgICAgICAgW2lzRXhwYW5kZWRdPVwiZXhwYW5kZWRDYXJkSWQoKSA9PT0gY2FyZC5pZFwiXG4gICAgICAgICAgW2RldGFpbFRlbXBsYXRlXT1cImRldGFpbFRlbXBsYXRlXCJcbiAgICAgICAgICBbaW5mb1Rvb2x0aXBdPVwib3B0aW9ucygpLmN1c3RvbUNhcmQ/LmluZm9Ub29sdGlwIVwiXG4gICAgICAgICAgW2luZm9Ub29sdGlwQWxsb3dIdG1sXT1cIm9wdGlvbnMoKS5jdXN0b21DYXJkPy5pbmZvVG9vbHRpcEFsbG93SHRtbCA/PyBmYWxzZVwiXG4gICAgICAgICAgW3N0YXR1c1Rvb2x0aXBdPVwib3B0aW9ucygpLmN1c3RvbUNhcmQ/LnN0YXR1c1Rvb2x0aXAhXCJcbiAgICAgICAgICBbc3RhdHVzVG9vbHRpcEFsbG93SHRtbF09XCJvcHRpb25zKCkuY3VzdG9tQ2FyZD8uc3RhdHVzVG9vbHRpcEFsbG93SHRtbCA/PyBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zZGMtcm93LWNhcmQ+XG4gICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gICAgfSBAZWxzZSBpZiAoIWlzTG9hZGluZygpKSB7XG4gICAgPHNkYy1lbXB0eS1zdGF0ZVxuICAgICAgaWQ9XCJjYXJkbGlzdC1lbXB0eVwiXG4gICAgICBpY29uQ2xhc3M9XCJmYSBmYS1pbmJveFwiXG4gICAgICBbdGl0bGVdPVwiZW1wdHlUaXRsZSgpXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCJlbXB0eVRleHQoKVwiXG4gICAgICBjbGFzcz1cInNkYy1jYXJkbGlzdC1lbXB0eS1zdGF0ZVwiXG4gICAgPlxuICAgIDwvc2RjLWVtcHR5LXN0YXRlPlxuICAgIH1cblxuICAgIEBpZiAob3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICA8bmF2XG4gICAgICBjbGFzcz1cInNkYy1wYWdpbmF0b3Itd3JhcCBmbGV4IGp1c3RpZnktY29udGVudC1zdGFydFwiXG4gICAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LWNlbnRlcl09XCJpc01vYmlsZSB8fCBpc1RhYmxldFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnBhZ2luYXRpb25fbmF2aWdhdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgIDxzZGMtcGFnaW5hdG9yXG4gICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc0xhYmVsXT1cInRvdGFsUmVjb3Jkc0xhYmVsKClcIlxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvbkNoYW5nZVBhZ2luYXRvcigkZXZlbnQpXCJcbiAgICAgICAgW2ZpcnN0XT1cInBhZ2UoKS5maXJzdFwiXG4gICAgICAgIFtyb3dzXT1cInBhZ2UoKS5yb3dzXCJcbiAgICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJvcHRpb25zKCkucm93c1BlclBhZ2VPcHRpb25zID8/IFtdXCJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJmaWx0ZXJlZCgpLmxlbmd0aFwiXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICA+XG4gICAgICA8L3NkYy1wYWdpbmF0b3I+XG4gICAgPC9uYXY+XG4gICAgfVxuICA8L3NkYy1sb2FkaW5nLXN0YXRlPlxuPC9zZWN0aW9uPlxuIl19
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Jvdy1jYXJkLWxpc3Qvcm93LWNhcmQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Jvdy1jYXJkLWxpc3Qvcm93LWNhcmQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDaEMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUkzRixPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7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RUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERvQ2hlY2ssXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgREVGQVVMVF9ST1dfQ0FSRF9MSVNUX09QVElPTlMgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZy9yb3ctY2FyZC50eXBlLmNvbmZpZyc7XG5pbXBvcnQge1xuICBST1dfQ0FSRF9MSVNUX0ZBTExCQUNLX0lOSVRJQUxfUk9XUyxcbiAgUk9XX0NBUkRfTElTVF9GSVJTVF9QQUdFLFxuICBST1dfQ0FSRF9MSVNUX01JTl9TS0VMRVRPTl9ST1dTXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL3Jvdy1jYXJkLWxpc3QuY29uc3QnO1xuaW1wb3J0IHsgREVGQVVMVF9MT0FESU5HX1NUQVRFX0lORElDQVRPUiB9IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2xvYWRpbmctc3RhdGUuY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBQYWdpbmF0b3JTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcGFnaW5hdG9yLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBMb2FkaW5nU3RhdGVJbmRpY2F0b3IgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2xvYWRpbmctc3RhdGUudHlwZSc7XG5pbXBvcnQgeyBSb3dDYXJkLCBSb3dDYXJkTGlzdE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3Jvdy1jYXJkLnR5cGUnO1xuaW1wb3J0IHsgaXNNb2JpbGUsIGlzVGFibGV0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9sYXlvdXQudXRpbCc7XG5pbXBvcnQgeyBzdGFibGVTdHJpbmdpZnkgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL29iamVjdC51dGlsJztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy1zdGF0ZS9sb2FkaW5nLXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3dDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcm93LWNhcmQtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJvd0NhcmRDb21wb25lbnQsXG4gICAgUGFnaW5hdG9yQ29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgTG9hZGluZ1N0YXRlQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3ctY2FyZC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Jvdy1jYXJkLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDYXJkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgRG9DaGVjayB7XG4gIEBJbnB1dCgpIGRhdGE6IFJvd0NhcmRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUuc2V0KCEhdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgY29uZmlnOiBSb3dDYXJkTGlzdE9wdGlvbnMgPSBERUZBVUxUX1JPV19DQVJEX0xJU1RfT1BUSU9OUztcblxuICBASW5wdXQoKSBsb2FkaW5nSW5kaWNhdG9yOiBMb2FkaW5nU3RhdGVJbmRpY2F0b3IgPSBERUZBVUxUX0xPQURJTkdfU1RBVEVfSU5ESUNBVE9SO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBsb2FkaW5nQ2FyZElkKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5sb2FkaW5nQ2FyZElkU3RhdGUuc2V0KHZhbHVlID8/IG51bGwpO1xuICB9XG5cbiAgQE91dHB1dCgpIGNhcmRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcblxuICBAQ29udGVudENoaWxkKCdyb3dDYXJkRGV0YWlsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc1RhYmxldCA9IGlzVGFibGV0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3RhdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdDYXJkSWRTdGF0ZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBzaWduYWw8Um93Q2FyZExpc3RPcHRpb25zPihERUZBVUxUX1JPV19DQVJEX0xJU1RfT1BUSU9OUyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVtcHR5VGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5lbXB0eT8udGl0bGUgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1wdHlUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuZW1wdHk/Lm1lc3NhZ2UgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG90YWxSZWNvcmRzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS50b3RhbFJlY29yZHNMYWJlbCA/PyAnJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGVkQ2FyZElkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsdGVyZWQgPSBzaWduYWw8Um93Q2FyZFtdPihbXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2UgPSBzaWduYWwoe1xuICAgIGZpcnN0OiBST1dfQ0FSRF9MSVNUX0ZJUlNUX1BBR0UsXG4gICAgcm93czogREVGQVVMVF9ST1dfQ0FSRF9MSVNUX09QVElPTlMuaW5pdGlhbFJvd3MgPz8gUk9XX0NBUkRfTElTVF9GQUxMQkFDS19JTklUSUFMX1JPV1NcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dTa2VsZXRvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMubG9hZGluZ1N0YXRlKCkgJiYgdGhpcy5maWx0ZXJlZCgpLmxlbmd0aCA9PT0gMCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNrZWxldG9uUm93cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5wYWdlKCkucm93cyA/PyB0aGlzLnJlc29sdmVSb3dzKCk7XG4gICAgY29uc3QgdG90YWwgPSBNYXRoLm1heChyb3dzLCBST1dfQ0FSRF9MSVNUX01JTl9TS0VMRVRPTl9ST1dTKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdG90YWwgfSwgKF8sIGluZGV4KSA9PiBpbmRleCk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0ZpcnN0UGFnZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFnZSgpLmZpcnN0ID09PSBST1dfQ0FSRF9MSVNUX0ZJUlNUX1BBR0UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0xhc3RQYWdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmZpbHRlcmVkKCk7XG4gICAgY29uc3QgeyBmaXJzdCwgcm93cyB9ID0gdGhpcy5wYWdlKCk7XG4gICAgY29uc3QgZW5kID0gdGhpcy5vcHRpb25zKCkuZW5hYmxlUGFnaW5hdGlvbiA/IGZpcnN0ICsgcm93cyA6IGxpc3QubGVuZ3RoO1xuICAgIHJldHVybiBlbmQgPj0gbGlzdC5sZW5ndGg7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYWdlZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZmlsdGVyZWQoKTtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MgfSA9IHRoaXMucGFnZSgpO1xuICAgIHJldHVybiBsaXN0LnNsaWNlKGZpcnN0LCBmaXJzdCArIHJvd3MpO1xuICB9KTtcblxuICBwcml2YXRlIGNvbmZpZ0hhc2ggPSAnJztcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRhdGEgPz8gW107XG4gICAgICB0aGlzLmZpbHRlcmVkLnNldCh2YWx1ZSk7XG4gICAgICB0aGlzLnBhZ2Uuc2V0KHtcbiAgICAgICAgZmlyc3Q6IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgICAgICAgcm93czogdGhpcy5yZXNvbHZlUm93cygpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICAgIHRoaXMuYXBwbHlDb25maWdPcHRpb25zKCk7XG4gICAgICB0aGlzLnBhZ2Uuc2V0KHtcbiAgICAgICAgZmlyc3Q6IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgICAgICAgcm93czogdGhpcy5yZXNvbHZlUm93cygpXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29uZmlnSGFzaCA9IHN0YWJsZVN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRIYXNoID0gc3RhYmxlU3RyaW5naWZ5KHRoaXMuY29uZmlnKTtcbiAgICBpZiAobmV4dEhhc2ggIT09IHRoaXMuY29uZmlnSGFzaCkge1xuICAgICAgdGhpcy5jb25maWdIYXNoID0gbmV4dEhhc2g7XG4gICAgICB0aGlzLmFwcGx5Q29uZmlnT3B0aW9ucygpO1xuICAgICAgdGhpcy5wYWdlLnNldCh7XG4gICAgICAgIGZpcnN0OiBST1dfQ0FSRF9MSVNUX0ZJUlNUX1BBR0UsXG4gICAgICAgIHJvd3M6IHRoaXMucmVzb2x2ZVJvd3MoKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NhcmRCdXR0b25Mb2FkaW5nKGNhcmQ6IFJvd0NhcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjYXJkPy5sb2FkaW5nIHx8IGNhcmQ/LmlkID09PSB0aGlzLmxvYWRpbmdDYXJkSWRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlUGFnaW5hdG9yKGV2ZW50OiBQYWdpbmF0b3JTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMucGFnZS5zZXQoe1xuICAgICAgZmlyc3Q6IGV2ZW50LmZpcnN0ID8/IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSxcbiAgICAgIHJvd3M6IGV2ZW50LnJvd3MgPz8gdGhpcy5yZXNvbHZlUm93cygpXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMoKS5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBmaXJzdCwgcm93cyB9ID0gdGhpcy5wYWdlKCk7XG4gICAgaWYgKHRoaXMuZmlsdGVyZWQoKS5sZW5ndGggPiBmaXJzdCArIHJvd3MpIHtcbiAgICAgIHRoaXMucGFnZS5zZXQoeyBmaXJzdDogZmlyc3QgKyByb3dzLCByb3dzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2UGFnZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGZpcnN0LCByb3dzIH0gPSB0aGlzLnBhZ2UoKTtcbiAgICBpZiAoZmlyc3QgLSByb3dzID49IFJPV19DQVJEX0xJU1RfRklSU1RfUEFHRSkge1xuICAgICAgdGhpcy5wYWdlLnNldCh7IGZpcnN0OiBmaXJzdCAtIHJvd3MsIHJvd3MgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2FyZEJ1dHRvbkNsaWNrKGNhcmQ6IFJvd0NhcmQpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRCdXR0b25DbGljay5lbWl0KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQnV0dG9uRXhwYW5kKGNhcmQ6IFJvd0NhcmQpOiB2b2lkIHtcbiAgICBjb25zdCBpc09wZW4gPSB0aGlzLmV4cGFuZGVkQ2FyZElkKCkgPT09IGNhcmQuaWQ7XG4gICAgdGhpcy5leHBhbmRlZENhcmRJZC5zZXQoaXNPcGVuID8gbnVsbCA6IGNhcmQuaWQpO1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQoY2FyZCk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3dzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucygpLmluaXRpYWxSb3dzID8/IERFRkFVTFRfUk9XX0NBUkRfTElTVF9PUFRJT05TLmluaXRpYWxSb3dzID8/IFJPV19DQVJEX0xJU1RfRkFMTEJBQ0tfSU5JVElBTF9ST1dTO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ09wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZSA9IERFRkFVTFRfUk9XX0NBUkRfTElTVF9PUFRJT05TO1xuXG4gICAgY29uc3QgY2ZnOiBSb3dDYXJkTGlzdE9wdGlvbnMgPSB7XG4gICAgICAuLi5iYXNlLFxuICAgICAgLi4uKHRoaXMuY29uZmlnID8/IHt9KVxuICAgIH07XG5cbiAgICBjZmcuY3VzdG9tQ2FyZCA9IHtcbiAgICAgIC4uLmJhc2UuY3VzdG9tQ2FyZCxcbiAgICAgIC4uLih0aGlzLmNvbmZpZz8uY3VzdG9tQ2FyZCA/PyB7fSlcbiAgICB9O1xuXG4gICAgdGhpcy5vcHRpb25zLnNldChjZmcpO1xuICB9XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNkYy1yb3ctY2FyZC1saXN0XCJcbiAgW2NsYXNzLmFsaWduLWNvbnRlbnQtY2VudGVyXT1cImlzTG9hZGluZygpICYmIHBhZ2VkRGF0YSgpLmxlbmd0aCA9PT0gMFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfcm93X2NhcmRfbGlzdCcgfCB0cmFuc2xhdGVcIlxuICBbYXR0ci5hcmlhLWJ1c3ldPVwiaXNMb2FkaW5nKClcIlxuPlxuICA8c2RjLWxvYWRpbmctc3RhdGVcbiAgICBbbG9hZGluZ109XCJpc0xvYWRpbmcoKVwiXG4gICAgW2Jsb2NrV2luZG93XT1cImZhbHNlXCJcbiAgICBbaW5kaWNhdG9yXT1cImxvYWRpbmdJbmRpY2F0b3JcIlxuICAgIGNsYXNzPVwic2RjLWNhcmRsaXN0LWxvYWRpbmctc3RhdGVcIlxuICAgIFtibG9ja0RlbGF5TXNdPVwiMFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eV9sb2FkaW5nJyB8IHRyYW5zbGF0ZVwiXG4gID5cbiAgICBAaWYgKHNob3dTa2VsZXRvbigpKSB7XG4gICAgPHVsIGNsYXNzPVwic2RjLXJvdy1jYXJkLWl0ZW1zXCI+XG4gICAgICBAZm9yIChpIG9mIHNrZWxldG9uUm93cygpOyB0cmFjayBpKSB7XG4gICAgICA8bGkgY2xhc3M9XCJzZGMtcm93LWNhcmQtaXRlbSBzZGMtcm93LWNhcmQtaXRlbS0tc2tlbGV0b25cIj5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJzZGMtcm93LWNhcmQtc2tlbGV0b25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2FydGljbGU+XG4gICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gICAgfSBAZWxzZSBpZiAocGFnZWREYXRhKCkubGVuZ3RoKSB7XG4gICAgPHVsIGNsYXNzPVwic2RjLXJvdy1jYXJkLWl0ZW1zXCI+XG4gICAgICBAZm9yIChjYXJkIG9mIHBhZ2VkRGF0YSgpOyB0cmFjayBjYXJkLmlkKSB7XG4gICAgICA8bGkgY2xhc3M9XCJzZGMtcm93LWNhcmQtaXRlbVwiPlxuICAgICAgICA8c2RjLXJvdy1jYXJkXG4gICAgICAgICAgKGNhcmRCdXR0b25DbGljayk9XCJvbkNhcmRCdXR0b25DbGljayhjYXJkKVwiXG4gICAgICAgICAgKGNhcmRDbGljayk9XCJvbkJ1dHRvbkV4cGFuZChjYXJkKVwiXG4gICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9ucygpLmN1c3RvbUNhcmRcIlxuICAgICAgICAgIFtkYXRhXT1cImNhcmRcIlxuICAgICAgICAgIFtidXR0b25Mb2FkaW5nXT1cImlzQ2FyZEJ1dHRvbkxvYWRpbmcoY2FyZClcIlxuICAgICAgICAgIFtpc0V4cGFuZGVkXT1cImV4cGFuZGVkQ2FyZElkKCkgPT09IGNhcmQuaWRcIlxuICAgICAgICAgIFtkZXRhaWxUZW1wbGF0ZV09XCJkZXRhaWxUZW1wbGF0ZVwiXG4gICAgICAgICAgW2luZm9Ub29sdGlwXT1cIm9wdGlvbnMoKS5jdXN0b21DYXJkPy5pbmZvVG9vbHRpcCFcIlxuICAgICAgICAgIFtpbmZvVG9vbHRpcEFsbG93SHRtbF09XCJvcHRpb25zKCkuY3VzdG9tQ2FyZD8uaW5mb1Rvb2x0aXBBbGxvd0h0bWwgPz8gZmFsc2VcIlxuICAgICAgICAgIFtzdGF0dXNUb29sdGlwXT1cIm9wdGlvbnMoKS5jdXN0b21DYXJkPy5zdGF0dXNUb29sdGlwIVwiXG4gICAgICAgICAgW3N0YXR1c1Rvb2x0aXBBbGxvd0h0bWxdPVwib3B0aW9ucygpLmN1c3RvbUNhcmQ/LnN0YXR1c1Rvb2x0aXBBbGxvd0h0bWwgPz8gZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgIDwvc2RjLXJvdy1jYXJkPlxuICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICAgIH0gQGVsc2UgaWYgKCFpc0xvYWRpbmcoKSkge1xuICAgIDxzZGMtZW1wdHktc3RhdGVcbiAgICAgIGlkPVwiY2FyZGxpc3QtZW1wdHlcIlxuICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtaW5ib3hcIlxuICAgICAgW3RpdGxlXT1cImVtcHR5VGl0bGUoKVwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiZW1wdHlUZXh0KClcIlxuICAgICAgY2xhc3M9XCJzZGMtY2FyZGxpc3QtZW1wdHktc3RhdGVcIlxuICAgID5cbiAgICA8L3NkYy1lbXB0eS1zdGF0ZT5cbiAgICB9XG5cbiAgICBAaWYgKG9wdGlvbnMoKS5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLXdyYXAgZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIlxuICAgICAgW2NsYXNzLmp1c3RpZnktY29udGVudC1jZW50ZXJdPVwiaXNNb2JpbGUgfHwgaXNUYWJsZXRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eV9wYWdpbmF0aW9uX25hdmlnYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8c2RjLXBhZ2luYXRvclxuICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgIFt0b3RhbFJlY29yZHNMYWJlbF09XCJ0b3RhbFJlY29yZHNMYWJlbCgpXCJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25DaGFuZ2VQYWdpbmF0b3IoJGV2ZW50KVwiXG4gICAgICAgIFtmaXJzdF09XCJwYWdlKCkuZmlyc3RcIlxuICAgICAgICBbcm93c109XCJwYWdlKCkucm93c1wiXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwib3B0aW9ucygpLnJvd3NQZXJQYWdlT3B0aW9ucyA/PyBbXVwiXG4gICAgICAgIFt0b3RhbFJlY29yZHNdPVwiZmlsdGVyZWQoKS5sZW5ndGhcIlxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgPlxuICAgICAgPC9zZGMtcGFnaW5hdG9yPlxuICAgIDwvbmF2PlxuICAgIH1cbiAgPC9zZGMtbG9hZGluZy1zdGF0ZT5cbjwvc2VjdGlvbj5cbiJdfQ==
|